### Install Feather Icons with npm Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/feather/README.md Install the Feather Icons library using npm for project integration. ```shell npm install feather-icons ``` -------------------------------- ### Install Ikonate with npm Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/ikonate/README.md Install the Ikonate package using the npm package manager. ```bash npm install ikonate ``` -------------------------------- ### Install Node.js Dependencies for Landing Template Source: https://github.com/givanz/vvvebjs/blob/master/README.md Install the necessary Node.js dependencies for the landing template using npm. This command should be run from the `demo/landing` folder. ```bash npm i ``` -------------------------------- ### Get Flutter packages Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/unicons/README.md Run this command in your Flutter project directory to download and install the specified dependencies, including Unicons. ```bash flutter pub get ``` -------------------------------- ### Install npm Dependencies for Build Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/ikonate/README.md Install npm dependencies required to generate demo files and SVG sprites. ```bash npm install ``` -------------------------------- ### Install Eva Icons via NPM Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/eva-icons/README.md Install the eva-icons package using npm. This is the recommended method for Node.js projects. ```bash npm i eva-icons ``` -------------------------------- ### Install and Use React Heroicons Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/heroicons/README.md Install the @heroicons/react package via npm. Import icons individually as React components. Supports outline and solid styles from different import paths. ```sh npm install @heroicons/react ``` ```javascript import { BeakerIcon } from '@heroicons/react/solid' function MyComponent() { return (

...

) } ``` -------------------------------- ### Install CoreUI Icons via Yarn Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/coreui-icons/README.md Install the CoreUI Icons package using Yarn for use in your projects. ```shell yarn add @coreui/icons ``` -------------------------------- ### Install css.gg via npm Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md Install the latest version of css.gg using npm. This is the recommended way to include the icon library in your project. ```shell npm i css.gg ``` -------------------------------- ### Full HTML Example with Icons Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md A complete HTML document demonstrating how to include and use CSS.gg icons with 'i', 'div', and 'gg-icon' tags. ```html Document
``` -------------------------------- ### Install Tabler Icons with npm Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/tabler-icons/README.md Install the Tabler Icons package using npm for use in your project. ```bash npm install @tabler/icons --save ``` -------------------------------- ### Local React Component Example Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md Import and use icons as local React components by specifying the correct import path. ```javascript import React from 'react'; // local path import { ICONNAME } from "./ {ICONNAME} " function App() { return (
); } export default App; ``` -------------------------------- ### Install CoreUI Icons via NPM Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/coreui-icons/README.md Install the CoreUI Icons package using npm for use in your Node.js projects. ```shell npm install @coreui/icons --save ``` -------------------------------- ### Initialize Vvveb.js Builder Source: https://github.com/givanz/vvvebjs/blob/master/README.md Include these scripts to bootstrap the Vvveb.js builder. This example initializes the builder with page data and sets up various GUI components. ```html ``` -------------------------------- ### Install Feather Icons with npm Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/feather/README.md Install the feather-icons package using npm for use in your project. This step can be skipped if using a CDN. ```shell npm install feather-icons --save ``` -------------------------------- ### Clone Ikonate Repository Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/ikonate/README.md Clone the Ikonate Git repository to manually install the icons in your project. ```bash git clone https://github.com/eucalyptuss/ikonate.git ``` -------------------------------- ### Example Usage of SVG Sprite Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md Demonstrates how to use a downloaded SVG sprite file within an HTML document by referencing the icon's ID. ```html Document ``` -------------------------------- ### Install CoreUI Icons via CDN Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/coreui-icons/README.md Include the CoreUI Icons CSS file in your HTML to use the icons. You can include all icons or specific sets like free, brand, and flag icons. ```html ``` ```html ``` -------------------------------- ### Install Ionicons Web Component Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/ionicons/readme.md Include this script tag near the end of your page to enable the Ionicons Web Component if not using Ionic Framework. ```html ``` -------------------------------- ### Include Eva Icons from NPM Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/eva-icons/README.md Include the Eva Icons script in your project after installing via NPM. The path may vary based on your build system. ```html ``` -------------------------------- ### Define a Custom Image Component Source: https://github.com/givanz/vvvebjs/wiki/Components Example of a complete component definition for an image, showcasing various configuration options and event handlers. This includes setting the component's name, image, default HTML, detection nodes, classes, attributes, and defining properties for editing. ```javascript Vvveb.Components.extend("_base", "html/image", { name: "Image", image: "icons/image.svg", html: ' ', nodes: ["img"], classes: ["btn", "btn-link"], attributes: ["data-component-maps"], afterDrop: function (node) {}, init: function (node) {}, beforeInit: function (node) {}, onChange: function (node, property, value) {}, resizable:true,//show select box resize handlers properties: [{ name: "Id", key: "id", htmlAttr: "id", inputtype: TextInput } ]); ``` -------------------------------- ### Font Compilation: Specify FontForge Path Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/tabler-icons/README.md Configure the path to the FontForge executable in `compile-options.json` if it's not in the system's PATH. This is particularly useful for custom installations. ```json { "fontForge":"/Applications/FontForge.app/Contents/MacOS/FontForge" } ``` -------------------------------- ### Toggle and Select Input for Class Properties Source: https://github.com/givanz/vvvebjs/wiki/Components Shows examples of ToggleInput for a 'Disabled' attribute and SelectInput for 'Size' class on a Bootstrap button, utilizing 'data' for options and 'validValues' for class constraints. ```javascript //ToggleInput { name: "Disabled", key: "disabled", htmlAttr: "disabled", inputtype: ToggleInput, data: { on: "disabled-true", off: "disabled-false" } } //SelectInput { name: "Size", key: "size", htmlAttr: "class", inputtype: SelectInput, validValues: ["btn-lg", "btn-sm"], data: { options: [{ value: "", text: "Default" }, { value: "btn-lg", text: "Large" }, { value: "btn-sm", text: "Small" }] } ``` -------------------------------- ### Include Remix Icon via CDN Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/remix-icon/README.md Link to the Remix Icon CSS file using a CDN in the `` section of your HTML document for quick integration without installation. ```html ``` -------------------------------- ### Vvveb.Gui.init() Source: https://context7.com/givanz/vvvebjs/llms.txt Initializes GUI actions and registers keyboard shortcuts for various editor functions like saving, undo/redo, and toggling panels. ```APIDOC ## Vvveb.Gui.init() ### Description Initializes GUI actions and keyboard shortcuts. Binds `data-vvveb-action` attributes to `Vvveb.Gui` methods and registers shortcuts for save, undo, redo, tree list, and code editor. ### Method `Vvveb.Gui.init()` ### Usage Examples ```js // Initialize GUI – must be called after Builder.init() Vvveb.Gui.init(); // Toggle dark/light mode Vvveb.Gui.darkMode.call(document.querySelector(".btn-dark-mode")); // Toggle the bottom code editor panel Vvveb.Gui.toggleEditor(); // Switch responsive viewport (sm | md | lg | xl | xxl) Vvveb.Gui.viewport.call(document.querySelector('[data-view="md"]')); // Trigger page download as HTML file Vvveb.Gui.download(); // Toggle preview mode Vvveb.Gui.preview(); // Save via AJAX Vvveb.Gui.saveAjax(null, "save.php", document.querySelector(".save-btn")); // Undo / Redo Vvveb.Gui.undo(); Vvveb.Gui.redo(); ``` ``` -------------------------------- ### Run Build Command Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/ikonate/README.md Execute the build command from the main repository directory to generate demo files and SVG sprites. ```bash npm run build ``` -------------------------------- ### Import All Icons CSS Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md Import all CSS icons at once using @import. Options include css.gg, UNPKG, and JSDelivr. ```css /* css.gg */ @import url('https://css.gg/css'); /* UNPKG */ @import url('https://unpkg.com/css.gg/icons/all.css'); /* JSDelivr */ @import url('https://cdn.jsdelivr.net/npm/css.gg/icons/all.css'); ``` -------------------------------- ### Initialize Vvveb.Gui and Keyboard Shortcuts Source: https://context7.com/givanz/vvvebjs/llms.txt Binds HTML attributes to Vvveb.Gui methods and registers essential keyboard shortcuts for actions like save, undo, redo, and editor toggling. Must be called after Builder.init(). ```javascript // Initialize GUI – must be called after Builder.init() Vvveb.Gui.init(); // Toggle dark/light mode Vvveb.Gui.darkMode.call(document.querySelector(".btn-dark-mode")); // Toggle the bottom code editor panel Vvveb.Gui.toggleEditor(); // Switch responsive viewport (sm | md | lg | xl | xxl) // Equivalent to clicking a responsive breakpoint button document.querySelector('[data-view="md"]').dataset.view = "md"; Vvveb.Gui.viewport.call(document.querySelector('[data-view="md"]')); // Trigger page download as HTML file Vvveb.Gui.download(); // Toggle preview mode (disables editing interactions) Vvveb.Gui.preview(); // Save via AJAX (triggered by Ctrl+S shortcut internally) Vvveb.Gui.saveAjax(null, "save.php", document.querySelector(".save-btn")); // Undo / Redo Vvveb.Gui.undo(); Vvveb.Gui.redo(); ``` -------------------------------- ### Vvveb.Builder.init(url, callback) Source: https://context7.com/givanz/vvvebjs/llms.txt Initializes the VvvebJs page builder by loading a target HTML page into the editor iframe. It sets up essential editor functionalities like drag-and-drop and highlight/select overlays. The callback function is executed once the iframe has finished loading. This method must be called before any other Builder methods. ```APIDOC ## Vvveb.Builder.init(url, callback) ### Description Loads the target HTML page into the editor iframe, sets up drag-and-drop handlers, the highlight/select overlay, and fires `callback` when the iframe finishes loading. Must be called before any other Builder method. ### Method JavaScript Function ### Parameters - **url** (string) - Required - The URL of the HTML page to load into the editor. - **callback** (function) - Required - A function to be called after the iframe has finished loading. ### Request Example ```javascript // Include dependencies in editor.html, then initialize: // // // // // // // const pages = [ { name: "home", title: "Home", url: "demo/narrow-jumbotron/index.html", file: "demo/narrow-jumbotron/index.html" }, { name: "landing", title: "Landing", url: "demo/landing/index.html", file: "demo/landing/index.html" }, ]; // Boot the builder with the first page Vvveb.Builder.init(pages[0].url, function () { console.log("Builder ready – iframe loaded"); }); // Initialize UI subsystems Vvveb.Gui.init(); Vvveb.FileManager.init(); Vvveb.SectionList.init(); Vvveb.Breadcrumb.init(); Vvveb.TreeList.init(); // Register all pages and load the first one Vvveb.FileManager.addPages(pages); Vvveb.FileManager.loadPage(pages[0].name); // Hide right panel for single-panel layout Vvveb.Gui.toggleRightColumn(false); ``` ### Response This method does not return a value, but initializes the builder and executes the callback upon successful iframe load. ``` -------------------------------- ### vvveb.iframe.loaded Source: https://github.com/givanz/vvvebjs/wiki/Events This event is triggered by the editor after the page/iframe has finished loading and the editor setup is complete. ```APIDOC ## vvveb.iframe.loaded ### Description The editor triggers this event after the page/iframe is loaded and the the editor finished setting up the page. ### Event Payload The detail parameter is set to iframe document object. ```javascript new CustomEvent("vvveb.iframe.loaded", {detail: self.frameDoc})); ``` ``` -------------------------------- ### Import Unicons in Dart Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/unicons/README.md Import the Unicons package into your Dart code to start using its Flutter components. ```dart import 'package:unicons/unicons.dart'; ``` -------------------------------- ### Initialize Vvveb.js Editor Source: https://github.com/givanz/vvvebjs/blob/master/editor.html Initializes the Vvveb.js builder with the first page from the provided list and then initializes the GUI and other components. ```javascript let pages = defaultPages; let firstPage = Object.keys(pages)[0]; Vvveb.Builder.init(pages[firstPage]["url"], function () { //load code after page is loaded here }); Vvveb.Gui.init(); Vvveb.FileManager.init(); Vvveb.SectionList.init(); Vvveb.StyleList.init(); Vvveb.TreeList.init(); Vvveb.Breadcrumb.init(); Vvveb.CssEditor.init(); Vvveb.FileManager.addPages(pages); Vvveb.FileManager.loadPage(pages[firstPage]["name"]); Vvveb.Gui.toggleRightColumn(false); Vvveb.Breadcrumb.init(); ``` -------------------------------- ### Import Iconoir in JavaScript Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/iconoir/README.md Import a specific icon from the iconoir package into your JavaScript project. Ensure you have installed the package first. ```javascript import Iconoir from 'iconoir/icons/iconoir.svg' ``` -------------------------------- ### Import Boxicons Module Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/boxicons/README.md Import the Boxicons module in your JavaScript file after installation. This makes the icon set available for use. ```javascript import 'boxicons'; ``` -------------------------------- ### Number Input with Initialization for Style Properties Source: https://github.com/givanz/vvvebjs/wiki/Components Configures a 'Width' property using NumberInput for style, demonstrating the use of the 'init' function to parse and set the initial value correctly by removing 'px'. ```javascript { name: "Width", key: "width", htmlAttr: "style", parent:"", inputtype: NumberInput,//can also be replaced with RangeInput data: { value: "320",//default min: "50", max: "1024", step: "10" }, init: function (node) {//use init because number input does not ignore "px" return parseInt(node.style.width);//remove px } } ``` -------------------------------- ### Basic HTML Structure with Feather Icons Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/feather/README.md A minimal HTML file demonstrating how to include Feather Icons via CDN and use them with the `feather.replace()` method. ```html ``` -------------------------------- ### CSS Customisation Parameters Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/ikonate/README.md Example CSS properties that can be used to customise Ikonate icons when used as inline SVG or SVG sprite. ```css width: 24px; height: 24px; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; ``` -------------------------------- ### Build All Assets with Gulp Source: https://github.com/givanz/vvvebjs/wiki/Sections The 'npm run gulp' command is used to build all necessary assets, including sections, blocks, and screenshots, for the VvvebJs project. ```bash npm run gulp ``` -------------------------------- ### Trigger Get HTML After Event Source: https://github.com/givanz/vvvebjs/wiki/Events This event is triggered by Vvveb.Builder.getHtml after HTML processing is finished. The detail parameter is the processed document object. ```javascript new CustomEvent("vvveb.getHtml.after", {detail: doc})); ``` -------------------------------- ### Trigger Get HTML Before Event Source: https://github.com/givanz/vvvebjs/wiki/Events This event is triggered by Vvveb.Builder.getHtml before helpers are removed and processing occurs. The detail parameter is the document object. ```javascript new CustomEvent("vvveb.getHtml.before", {detail: document}); ``` -------------------------------- ### Generate Section Screenshots with Gulp Source: https://github.com/givanz/vvvebjs/wiki/Sections Run 'gulp screenshots' to generate thumbnail images for each section, improving the visual representation in the editor. ```bash npm run gulp screenshots ``` -------------------------------- ### Example Usage of Inline SVG Sprite/Symbol Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md Shows how to define icons as symbols within a hidden SVG element and then reference them using xlink:href. ```html Document ``` -------------------------------- ### Style and Class Properties with Validations Source: https://github.com/givanz/vvvebjs/wiki/Components Demonstrates properties for 'Background Color' using ColorInput and 'Type' for Bootstrap container classes using SelectInput, including class manipulation with validValues. ```javascript properties: [ { name: "Background Color", key: "background-color", htmlAttr: "style", inputtype: ColorInput, }, { name: "Type", key: "type", htmlAttr: "class", inputtype: SelectInput, validValues: ["container", "container-fluid"], data: { options: [{ value: "container", text: "Default" }, { value: "container-fluid", text: "Fluid" }] } name: "Class", key: "class", htmlAttr: "class", inputtype: TextInput }] ``` -------------------------------- ### SelectInput Event Definition Source: https://github.com/givanz/vvvebjs/wiki/Inputs Example of defining event listeners for a SelectInput component, listening for 'change' events on the 'select' element and calling the 'onChange' method. ```javascript let SelectInput = { ...Input, ...{ events: { //event, listener, child element ["change", "onChange", "select"], }, ... ``` -------------------------------- ### Initialize VvvebJs Builder Source: https://github.com/givanz/vvvebjs/wiki/Home Initialize the VvvebJs editor by calling Vvveb.Builder.init. The first parameter is the URL of the page to edit, and the second is a callback function executed after the page loads. ```javascript let defaultPages = { "narrow-jumbotron":{name:"narrow-jumbotron", title:"Jumbotron", url: "demo/narrow-jumbotron/index.html", file: "demo/narrow-jumbotron/index.html"}, "album":{name:"album", title:"Album", url: "demo/album/index.html", file: "demo/album/index.html", folder:"content"}, "blog":{name:"blog", title:"Blog", url: "demo/blog/index.html", file: "demo/blog/index.html", folder:"content"}, "carousel":{name:"carousel", title:"Carousel", url: "demo/carousel/index.html", file: "demo/carousel/index.html", folder:"content"}, "offcanvas":{name:"offcanvas", title:"Offcanvas", url: "demo/offcanvas/index.html", file: "demo/offcanvas/index.html", folder:"content"}, "pricing":{name:"pricing", title:"Pricing", url: "demo/pricing/index.html", file: "demo/pricing/index.html", folder:"ecommerce"}, "product":{name:"product", title:"Product", url: "demo/product/index.html", file: "demo/product/index.html", folder:"ecommerce"} }; Vvveb.Gui.init(); let pages = defaultPages; let firstPage = Object.keys(pages)[0]; Vvveb.Builder.init(pages[firstPage]["url"], function() { //load code after page is loaded here }); Vvveb.Gui.init(); Vvveb.FileManager.init(); Vvveb.SectionList.init(); Vvveb.TreeList.init(); Vvveb.Breadcrumb.init(); Vvveb.FileManager.addPages(pages); Vvveb.FileManager.loadPage(pages[firstPage]["name"]); Vvveb.Gui.toggleRightColumn(false); Vvveb.Breadcrumb.init(); ``` -------------------------------- ### Style Tabler Icons with CSS Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/tabler-icons/README.md Apply custom styles to Tabler Icons using CSS classes. This example demonstrates changing color, size, and stroke-width. ```css .icon-tabler { color: red; width: 32px; height: 32px; stroke-width: 1.25; } ``` -------------------------------- ### CDN Alternatives for Older Versions Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/css.gg/README.md Access older versions (v.1.0.6) of css.gg using UNPKG or JSDelivr CDNs. ```html https://unpkg.com/browse/css.gg@1.0.6/ ``` ```html https://cdn.jsdelivr.net/npm/css.gg@1.0.6/ ``` -------------------------------- ### Including Open Iconic with Foundation Source: https://github.com/givanz/vvvebjs/blob/master/resources/svg/icons/open-iconic/README.md Link the Foundation-specific stylesheet to use Open Iconic with Foundation framework. Use the 'fi' class with the icon name. ```html ``` ```html ``` -------------------------------- ### Restore AOS Classes After Save Source: https://github.com/givanz/vvvebjs/wiki/Events Example of listening to the 'vvveb.getHtml.after' event to re-add AOS animation classes after the HTML has been saved. This restores the visual state for the editor. ```javascript window.addEventListener("vvveb.getHtml.after", function(event) { let doc = event.detail; doc.querySelectorAll("[data-aos]").forEach(e => e.classList.add("aos-animate", "aos-init")); }); ``` -------------------------------- ### Clean AOS Classes on Save Source: https://github.com/givanz/vvvebjs/wiki/Events Example of listening to the 'vvveb.getHtml.before' event to remove AOS animation classes before the HTML is saved. This ensures a clean HTML output. ```javascript //clean aos classes on save window.addEventListener("vvveb.getHtml.before", function(event) { let doc = event.detail; doc.querySelectorAll("[data-aos]").forEach(e => e.classList.remove("aos-animate", "aos-init")); }); ``` -------------------------------- ### Vvveb.Styles.add() Source: https://context7.com/givanz/vvvebjs/llms.txt Registers global theme styles that can be applied to the entire page, useful for switching color themes or typography presets. ```APIDOC ## Vvveb.Styles.add(type, data) — Register a global theme style ### Description Registers theme styles as CSS files that can be applied to the whole page and toggled from the Styles panel. Useful for switching between color themes or typography presets. ### Parameters - `type` (string): A unique identifier for the style (e.g., "theme/dark"). - `data` (object): An object containing style details: - `name` (string): The display name of the theme. - `image` (string): Path to a preview image for the theme. - `style` (string): Path to the CSS file for the theme. ### Usage Examples ```js Vvveb.Styles.add("theme/dark", { name: "Dark Theme", image: "img/dark-theme-preview.jpg", style: "css/themes/dark.css", }); Vvveb.Styles.add("theme/minimal", { name: "Minimal", image: "img/minimal-preview.jpg", style: "css/themes/minimal.css", }); Vvveb.StyleGroup["Themes"] = ["theme/dark", "theme/minimal"]; // Programmatically apply a theme Vvveb.StyleList.applyStyle("css/themes/dark.css"); // Remove active theme Vvveb.StyleList.applyStyle(null); ``` ``` -------------------------------- ### TextInput Event Definition Source: https://github.com/givanz/vvvebjs/wiki/Inputs Example of defining event listeners for a TextInput component, specifically listening for 'keyup' events on the 'input' element and calling the 'onChange' method. ```javascript let TextInput = { ...Input, ...{ events: { //event, listener, child element ["keyup", "onChange", "input"], }, ... ``` -------------------------------- ### Select and Manipulate Nodes with Vvveb.Builder Source: https://context7.com/givanz/vvvebjs/llms.txt Use Builder to programmatically select DOM nodes, load their components into the properties panel, and perform actions like moving, cloning, or deleting them. Listen for node selection events. ```javascript // Programmatically select an element in the iframe const targetNode = window.FrameDocument.querySelector(".hero-banner h1"); Vvveb.Builder.selectNode(targetNode); Vvveb.Builder.loadNodeComponent(targetNode); // Listen for node selection events window.addEventListener("vvveb.Builder.selectNode", (e) => { const { target } = e.detail; console.log("Node selected:", target.tagName, target.className); }); // Move selected node up/down in the DOM (also records undo mutation) Vvveb.Builder.moveNodeUp(); Vvveb.Builder.moveNodeDown(); // Clone selected node Vvveb.Builder.cloneNode(); // Delete selected node // (Equivalent to clicking the delete button in the UI) const node = Vvveb.Builder.selectedEl; Vvveb.Undo.addMutation({ type: "childList", target: node.parentNode, removedNodes: [node], nextSibling: node.nextSibling, }); node.remove(); ``` -------------------------------- ### Editor Iframe Loaded Event Source: https://github.com/givanz/vvvebjs/wiki/Events This event is triggered by the editor after the page/iframe has loaded and the editor setup is complete. The detail parameter is the iframe's document object. ```javascript new CustomEvent("vvveb.iframe.loaded", {detail: self.frameDoc})); ``` -------------------------------- ### Add Custom Theme with Holder.js Source: https://github.com/givanz/vvvebjs/blob/master/demo/product/index.html Demonstrates how to add a custom theme named 'thumb' to Holder.js. This theme defines background and foreground colors, as well as the text to be displayed. ```javascript Holder.addTheme('thumb', { bg: '#55595c', fg: '#eceeef', text: 'Thumbnail' }); ``` -------------------------------- ### Vvveb.StyleManager Source: https://context7.com/givanz/vvvebjs/llms.txt Manages CSS styles for elements within the Vvveb.js editor. It supports setting and getting CSS properties, handling responsive breakpoints, and managing pseudo-states. ```APIDOC ## Vvveb.StyleManager.setStyle(element, styleProp, value) / .getStyle(element, styleProp) ### Description Manages styles through a dedicated `