Source: elements.js

/**
/**
 * @namespace
 */
var elements = {};
// trick jsdoc

var Element = require('./element.js');
//var ElementsArray = require('./elements_array.js');


elements = function(element) {
    return element.$elt || new Element(element);
};

module.exports = elements;

/**
 * Create an element wrapper (or return the existing one)
 *
 * @method
 * @param {HTMLElement} element
 * @return {Element}
 */
elements.wrap = elements;



var _regexpSingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;

/**
 * Parse a html string
 *
 * @param {String} string
 * @param {Document} context
 * @return {HTMLElement} html fragment
 */
elements.parse = function(string, context) {
    context = context || document;
    var parsed = _regexpSingleTag.exec(string);
    if (parsed) {
        return context.createElement(parsed[1]);
    }
    var node, fragment = context.createDocumentFragment();
    var tmp = fragment.appendChild( context.createElement("div") );

    tmp.innerHTML = string;
    while (node = tmp.firstChild) {
        fragment.appendChild(node);
    }
    fragment.removeChild(tmp);
    return fragment;
};


require('./elements/dom.js');
require('./elements/dom_manipulation.js');
require('./elements/dom_visibility.js');