New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@vizuaalog/bulmajs

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vizuaalog/bulmajs - npm Package Compare versions

Comparing version 0.7.0 to 0.8.0

.eslintignore

5

.eslintrc.json

@@ -8,3 +8,6 @@ {

"parserOptions": {
"sourceType": "module"
"sourceType": "module",
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
},

@@ -11,0 +14,0 @@ "rules": {

9

changelog.md

@@ -1,2 +0,9 @@

# 0.7.0 (Unreleased)
# 0.8.0 (unreleased)
+ **Feature** [#47](https://github.com/VizuaaLOG/BulmaJS/issues/47) Implement an alert box. This extends the modal plugin and uses the card style. The type of alert box can be specified, adjusting the colours used.
+ **Tweak** [#61](https://github.com/VizuaaLOG/BulmaJS/pull/61) Remove the assumed window assignment, if you rely on this then you'll need to ensure you add this to you applications JS.
+ **Tweak BREAKING** The modal's `type` attribute has been renamed to `style`. This value is changing the 'style' of the modal, and so this better reflects the option.
+ **Bug** [#61](https://github.com/VizuaaLOG/BulmaJS/pull/61) Add a default export for the full BulmaJS bundle.
+ **Deprecated** Wikiki's Accordion plugin has been Deprecated from the core and will be removed in the 1.0 release. If you are using Wikiki's Accordion extension then it's recommended to use the official JS integration for it.
+ **Deprecated** Wikiki's Calendar plugin has been Deprecated from the core and will be removed from the 1.0 release. If you are using Wikiki's Calendar extension then it's recommended to use the official JS integration for it.
# 0.7.0
+ **Feature** [#27](https://github.com/VizuaaLOG/BulmaJS/issues/27) Modals can now be closed by pressing the

@@ -3,0 +10,0 @@ `escape` key.

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Accordion\n * @since 0.3.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Accordion = function (_Plugin) {\n _inherits(Accordion, _Plugin);\n\n _createClass(Accordion, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The plugin's options\n * @return {Accordion} The newly created instance\n */\n value: function create(options) {\n return new Accordion(options);\n }\n\n /**\n * Handle parsing the DOM.\n * @param {HTMLElement} element The root element for this accordion\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n new Accordion({\n element: element\n });\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'accordions';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The plugin's options\n * @return {this} The new plugin instance\n */\n\n }]);\n\n function Accordion(options) {\n _classCallCheck(this, Accordion);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (Accordion.__proto__ || Object.getPrototypeOf(Accordion)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * Accordion element.\n * @type {string}\n */\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * Accordion items\n * @type {Array}\n */\n _this.accordions = _this.findAccordions();\n\n /**\n * Toggle buttons for each accordion item\n * @type {Array}\n */\n _this.toggleButtons = _this.findToggleButtons();\n\n _this.addToggleButtonEvents();\n return _this;\n }\n\n /**\n * Find the accordion items within this accordions element\n * @returns {Array} The accordion elements found\n */\n\n\n _createClass(Accordion, [{\n key: 'findAccordions',\n value: function findAccordions() {\n return this.element.querySelectorAll('.accordion');\n }\n\n /**\n * Find the toggle buttons within this accordions element\n * @returns {Array} The toggle buttons found\n */\n\n }, {\n key: 'findToggleButtons',\n value: function findToggleButtons() {\n var buttons = [];\n\n this.accordions.forEach(function (accordion) {\n buttons.push(accordion.querySelector('button.toggle'));\n });\n\n return buttons;\n }\n\n /**\n * Add click events to toggle buttons\n * @return {undefined}\n */\n\n }, {\n key: 'addToggleButtonEvents',\n value: function addToggleButtonEvents() {\n var _this2 = this;\n\n this.toggleButtons.forEach(function (toggleButton, index) {\n // If the button is null, the accordion item has no toggle button\n if (toggleButton !== null) {\n toggleButton.addEventListener('click', function (event) {\n _this2.handleToggleClick(event, index);\n });\n }\n });\n }\n\n /**\n * Handle the click\n * @param {Object} event The event object\n * @param {number} index Index of the accordion to toggle\n * @return {undefined}\n */\n\n }, {\n key: 'handleToggleClick',\n value: function handleToggleClick(event, index) {\n this.toggleAccordionVisibility(this.accordions[index]);\n }\n\n /**\n * Show or hide the accordion\n * @param {HTMLElement} accordion The accordion element\n * @return {undefined}\n */\n\n }, {\n key: 'toggleAccordionVisibility',\n value: function toggleAccordionVisibility(accordion) {\n this.accordions.forEach(function (a) {\n a.classList.remove('is-active');\n });\n\n if (accordion.classList.contains('is-active')) {\n accordion.classList.remove('is-active');\n } else {\n accordion.classList.add('is-active');\n }\n }\n\n /**\n * Destroy the accordion\n * @return {undefined}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.element = null;\n }\n }]);\n\n return Accordion;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('accordion', Accordion);\n\nexports.default = Accordion;\n\n//# sourceURL=webpack:///./src/plugins/accordion.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Accordion\n * @since 0.3.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Accordion = function (_Plugin) {\n _inherits(Accordion, _Plugin);\n\n _createClass(Accordion, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The plugin's options\n * @return {Accordion} The newly created instance\n */\n value: function create(options) {\n return new Accordion(options);\n }\n\n /**\n * Handle parsing the DOM.\n * @param {HTMLElement} element The root element for this accordion\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n new Accordion({\n element: element\n });\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'accordions';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The plugin's options\n * @return {this} The new plugin instance\n */\n\n }]);\n\n function Accordion(options) {\n _classCallCheck(this, Accordion);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (Accordion.__proto__ || Object.getPrototypeOf(Accordion)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * Accordion element.\n * @type {string}\n */\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * Accordion items\n * @type {Array}\n */\n _this.accordions = _this.findAccordions();\n\n /**\n * Toggle buttons for each accordion item\n * @type {Array}\n */\n _this.toggleButtons = _this.findToggleButtons();\n\n _this.addToggleButtonEvents();\n return _this;\n }\n\n /**\n * Find the accordion items within this accordions element\n * @returns {Array} The accordion elements found\n */\n\n\n _createClass(Accordion, [{\n key: 'findAccordions',\n value: function findAccordions() {\n return this.element.querySelectorAll('.accordion');\n }\n\n /**\n * Find the toggle buttons within this accordions element\n * @returns {Array} The toggle buttons found\n */\n\n }, {\n key: 'findToggleButtons',\n value: function findToggleButtons() {\n var buttons = [];\n\n this.accordions.forEach(function (accordion) {\n buttons.push(accordion.querySelector('button.toggle'));\n });\n\n return buttons;\n }\n\n /**\n * Add click events to toggle buttons\n * @return {undefined}\n */\n\n }, {\n key: 'addToggleButtonEvents',\n value: function addToggleButtonEvents() {\n var _this2 = this;\n\n this.toggleButtons.forEach(function (toggleButton, index) {\n // If the button is null, the accordion item has no toggle button\n if (toggleButton !== null) {\n toggleButton.addEventListener('click', function (event) {\n _this2.handleToggleClick(event, index);\n });\n }\n });\n }\n\n /**\n * Handle the click\n * @param {Object} event The event object\n * @param {number} index Index of the accordion to toggle\n * @return {undefined}\n */\n\n }, {\n key: 'handleToggleClick',\n value: function handleToggleClick(event, index) {\n this.toggleAccordionVisibility(this.accordions[index]);\n }\n\n /**\n * Show or hide the accordion\n * @param {HTMLElement} accordion The accordion element\n * @return {undefined}\n */\n\n }, {\n key: 'toggleAccordionVisibility',\n value: function toggleAccordionVisibility(accordion) {\n this.accordions.forEach(function (a) {\n a.classList.remove('is-active');\n });\n\n if (accordion.classList.contains('is-active')) {\n accordion.classList.remove('is-active');\n } else {\n accordion.classList.add('is-active');\n }\n }\n\n /**\n * Destroy the accordion\n * @return {undefined}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.element = null;\n }\n }]);\n\n return Accordion;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('accordion', Accordion);\n\nexports.default = Accordion;\n\n//# sourceURL=webpack://Bulma/./src/plugins/accordion.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Calendar\n * @since 0.3.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Calendar = function (_Plugin) {\n _inherits(Calendar, _Plugin);\n\n _createClass(Calendar, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The new calendar's options\n * @return {Calendar} The newly created calendar instance\n */\n value: function create(options) {\n return new Calendar(options);\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'calendar';\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n date: new Date(),\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n navButtons: true,\n format: 'yyyy-mm-dd',\n overlay: false\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options Plugin instance's options\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Calendar(options) {\n _classCallCheck(this, Calendar);\n\n /**\n * The root Calendar element.\n * @type {HTMLElement}\n */\n var _this = _possibleConstructorReturn(this, (Calendar.__proto__ || Object.getPrototypeOf(Calendar)).call(this, options));\n\n _this.element = _core2.default.createElement('div', ['calendar']);\n\n /**\n * The input element this calendar belongs to.\n * @type {HTMLElement|null}\n */\n _this.isInput = _this.parent.nodeName === 'INPUT';\n\n /**\n * The current date for today tests\n * @type {Date}\n */\n _this.now = new Date();\n\n /**\n * The date this calendar starts at\n * @type {Date}\n */\n _this.date = _this.option('date');\n\n /**\n * The current year for the calendar\n * @type {int}\n */\n _this.year = _this.date.getFullYear();\n\n /**\n * The current month for the calendar\n * @type {int}\n */\n _this.month = _this.date.getMonth();\n\n /**\n * Month names\n * @type {Array}\n */\n _this.months = _this.option('months');\n\n /**\n * Short day names\n * @type {Array}\n */\n _this.shortDays = _this.option('shortDays');\n\n /**\n * Number of days in each month\n * @type {Array}\n */\n _this.monthDays = [31, _this.isLeapYear(_this.year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n /**\n * Show the navigating buttons\n * @type {boolean}\n */\n _this.navButtons = _this.option('navButtons');\n\n /**\n * The format string for the date output. Used when attached to an input element.\n * @type {string}\n */\n _this.format = _this.option('format');\n\n /**\n * Should the calendar be shown as a modal. Used when attached to an input element\n * @type {boolean}\n */\n _this.overlay = _this.option('overlay');\n\n if (_this.overlay) {\n _this.buildModal();\n }\n\n if (_this.isInput) {\n _this.parent.addEventListener('focus', function (event) {\n _this.handleInputFocus(event);\n });\n }\n\n _this.render();\n return _this;\n }\n\n ////////////////////////////////////////\n ///// HELPER METHODS TO BUILD HTML /////\n ////////////////////////////////////////\n\n /**\n * If we are to show as an overlay, build the modal's HTML\n * @return {undefined}\n */\n\n\n _createClass(Calendar, [{\n key: 'buildModal',\n value: function buildModal() {\n var _this2 = this;\n\n this.modal = _core2.default.createElement('div', ['modal']);\n this.modalBackground = _core2.default.createElement('div', ['modal-background']);\n\n var modalClose = _core2.default.createElement('button', ['modal-close']);\n\n modalClose.addEventListener('click', function () {\n _this2.modal.classList.remove('is-active');\n });\n\n this.modal.appendChild(this.modalBackground);\n this.modal.appendChild(modalClose);\n\n this.element.appendChild(this.modal);\n\n this.element.style.zIndex = 40;\n }\n\n /**\n * Build the calendars nav HTML\n * @return {undefined}\n */\n\n }, {\n key: 'buildNav',\n value: function buildNav() {\n var _this3 = this;\n\n var prevIcon = void 0,\n nextIcon = void 0;\n var nav = _core2.default.createElement('div', 'calendar-nav');\n var navLeft = _core2.default.createElement('div', 'calendar-nav-left');\n var navRight = _core2.default.createElement('div', 'calendar-nav-right');\n\n // Left side of nav (prev year/month buttons)\n if (this.navButtons) {\n this.prevYearButton = _core2.default.createElement('button', ['button', 'is-text']);\n prevIcon = _core2.default.createElement('i', ['fa', 'fa-backward']);\n this.prevYearButton.appendChild(prevIcon);\n\n this.prevYearButton.addEventListener('click', function (event) {\n _this3.handlePrevYearClick(event);\n });\n\n navLeft.appendChild(this.prevYearButton);\n\n this.prevMonthButton = _core2.default.createElement('button', ['button', 'is-text']);\n prevIcon = _core2.default.createElement('i', ['fa', 'fa-chevron-left']);\n this.prevMonthButton.appendChild(prevIcon);\n\n this.prevMonthButton.addEventListener('click', function (event) {\n _this3.handlePrevMonthClick(event);\n });\n\n navLeft.appendChild(this.prevMonthButton);\n\n // Right side of nav (next year/month buttons)\n this.nextMonthButton = _core2.default.createElement('button', ['button', 'is-text']);\n nextIcon = _core2.default.createElement('i', ['fa', 'fa-chevron-right']);\n this.nextMonthButton.appendChild(nextIcon);\n\n this.nextMonthButton.addEventListener('click', function (event) {\n _this3.handleNextMonthClick(event);\n });\n\n navRight.appendChild(this.nextMonthButton);\n\n this.nextYearButton = _core2.default.createElement('button', ['button', 'is-text']);\n prevIcon = _core2.default.createElement('i', ['fa', 'fa-forward']);\n this.nextYearButton.appendChild(prevIcon);\n\n this.nextYearButton.addEventListener('click', function (event) {\n _this3.handleNextYearClick(event);\n });\n\n navRight.appendChild(this.nextYearButton);\n }\n\n // Month/year label\n this.monthYearLabel = _core2.default.createElement('div');\n this.monthYearLabel.innerHTML = this.months[this.month] + ' ' + this.year;\n\n nav.appendChild(navLeft);\n nav.appendChild(this.monthYearLabel);\n nav.appendChild(navRight);\n\n return nav;\n }\n\n /**\n * Build the calendar's container HTML\n * @return {HTMLElement} The calendar's container\n */\n\n }, {\n key: 'buildContainer',\n value: function buildContainer() {\n return _core2.default.createElement('div', 'calendar-container');\n }\n\n /**\n * Build the calendar's header HTML\n * @return {HTMLElement} The calendar's header element\n */\n\n }, {\n key: 'buildHeader',\n value: function buildHeader() {\n var calendarHeader = _core2.default.createElement('div', 'calendar-header');\n\n this.shortDays.forEach(function (dayName) {\n var day = _core2.default.createElement('div', 'calendar-date');\n day.innerHTML = dayName;\n calendarHeader.appendChild(day);\n });\n\n return calendarHeader;\n }\n\n /**\n * Build the calendar's body. This includes all days.\n * @return {HTMLElement} The calendar's body element\n */\n\n }, {\n key: 'buildBody',\n value: function buildBody() {\n var _this4 = this;\n\n var calendarBody = _core2.default.createElement('div', 'calendar-body');\n\n var daysInMonth = this.monthDays[this.now.getMonth()];\n\n // Number of days to show from the previous month.\n var daysBefore = new Date(this.year, this.month, 1).getDay();\n\n // Number of days to show from the next month\n var daysAfter = void 0;\n\n var numDays = daysInMonth + daysBefore;\n\n daysAfter = numDays;\n while (daysAfter > 7) {\n daysAfter -= 7;\n }\n\n numDays += 7 - daysAfter;\n\n var cells = [];\n\n for (var i = 0; i < numDays; i++) {\n var d = new Date(this.year, this.month, 1 + (i - daysBefore));\n\n var today = false;\n var thisMonth = false;\n\n if (d.getFullYear() === this.now.getFullYear() && d.getMonth() === this.now.getMonth() && d.getDate() === this.now.getDate()) {\n today = true;\n }\n\n if (d.getMonth() === this.month) {\n thisMonth = true;\n }\n\n cells.push({\n day: d.getDate(),\n isToday: today,\n isThisMonth: thisMonth\n });\n }\n\n cells.forEach(function (day) {\n var d = _core2.default.createElement('div', 'calendar-date');\n\n if (!day.isThisMonth) {\n d.classList.add('is-disabled');\n }\n\n var button = _core2.default.createElement('button', 'date-item');\n\n if (_this4.isInput && day.isThisMonth) {\n button.addEventListener('click', function (event) {\n _this4.handleDayClick(event, day);\n });\n }\n\n if (day.isToday) {\n button.classList.add('is-today');\n }\n\n button.innerHTML = day.day;\n\n d.appendChild(button);\n\n calendarBody.appendChild(d);\n });\n\n return calendarBody;\n }\n\n //////////////////////////\n ///// EVENT HANDLERS /////\n //////////////////////////\n\n /**\n * Called when the input box is in focus.\n * @return {undefined}\n */\n\n }, {\n key: 'handleInputFocus',\n value: function handleInputFocus() {\n if (this.overlay) {\n this.modal.classList.add('is-active');\n }\n\n this.parent.parentNode.insertBefore(this.element, this.parent.nextSibling);\n }\n\n /**\n * Event hander for when a day is clicked.\n * @param {Object} event The event object\n * @param {Object} day The day that was clicked\n * @return {undefined}\n */\n\n }, {\n key: 'handleDayClick',\n value: function handleDayClick(event, day) {\n day = new Date(this.year, this.month, day.day);\n\n var dateString = this.formatDateString(day);\n\n this.parent.value = dateString;\n\n if (this.overlay) {\n this.modal.classList.remove('is-active');\n } else {\n this.parent.parentNode.removeChild(this.element);\n }\n }\n\n /**\n * Event handler for the previous month button.\n * @return {undefined}\n */\n\n }, {\n key: 'handlePrevMonthClick',\n value: function handlePrevMonthClick() {\n this.month--;\n\n if (this.month < 0) {\n this.year--;\n this.month = 11;\n }\n\n this.render();\n }\n\n /**\n * Event handler for the next month button.\n * @return {undefined}\n */\n\n }, {\n key: 'handleNextMonthClick',\n value: function handleNextMonthClick() {\n this.month++;\n\n if (this.month > 11) {\n this.year++;\n this.month = 0;\n }\n\n this.render();\n }\n\n /**\n * Event handler for the previous year button.\n * @return {undefined}\n */\n\n }, {\n key: 'handlePrevYearClick',\n value: function handlePrevYearClick() {\n this.year--;\n\n this.render();\n }\n\n /**\n * Event handler for the next year button.\n * @return {undefined}\n */\n\n }, {\n key: 'handleNextYearClick',\n value: function handleNextYearClick() {\n this.year++;\n\n this.render();\n }\n\n /**\n * Format the date based on the supplied format string.\n * @param {Object} day Date object representing the day to format\n * @returns {string} The formatted date string\n */\n\n }, {\n key: 'formatDateString',\n value: function formatDateString(day) {\n var dateString = this.format;\n\n // May be a better/faster way of doing this?\n if (dateString.indexOf('yyyy') !== -1) {\n dateString = this.format.replace('yyyy', day.getFullYear());\n } else {\n dateString = this.format.replace('yy', day.getFullYear().toString().substr(-2));\n }\n\n if (dateString.indexOf('mm') !== -1) {\n var month = day.getMonth() + 1;\n if (month < 10) {\n month = '0' + month.toString();\n }\n dateString = dateString.replace('mm', month);\n } else {\n dateString = dateString.replace('m', day.getMonth() + 1);\n }\n\n if (dateString.indexOf('dd') !== -1) {\n var date = day.getDate();\n if (date < 10) {\n date = '0' + date.toString();\n }\n dateString = dateString.replace('dd', date);\n } else {\n dateString = dateString.replace('d', day.getDate());\n }\n\n return dateString;\n }\n\n /**\n * Clear the calendar HTML, ready for a re-render.\n * @return {undefined}\n */\n\n }, {\n key: 'clearCalendar',\n value: function clearCalendar() {\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n }\n\n /**\n * Check if the passed year is a leap year.\n * @param {int} year The year to check against\n * @return {boolean} Is the year a leap year or not\n */\n\n }, {\n key: 'isLeapYear',\n value: function isLeapYear(year) {\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n /**\n * Render/build the calendar's HTML.\n * @return {undefined}\n */\n\n }, {\n key: 'render',\n value: function render() {\n this.clearCalendar();\n\n this.element.appendChild(this.buildNav());\n\n var container = this.buildContainer();\n container.appendChild(this.buildHeader());\n container.appendChild(this.buildBody());\n\n this.element.appendChild(container);\n\n if (this.overlay) {\n this.modal.insertBefore(this.element, this.modalBackground.nextSibling);\n this.parent.appendChild(this.modal);\n } else {\n this.parent.appendChild(this.element);\n }\n }\n }]);\n\n return Calendar;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('calendar', Calendar);\n\nexports.default = Calendar;\n\n//# sourceURL=webpack:///./src/plugins/calendar.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Calendar\n * @since 0.3.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Calendar = function (_Plugin) {\n _inherits(Calendar, _Plugin);\n\n _createClass(Calendar, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The new calendar's options\n * @return {Calendar} The newly created calendar instance\n */\n value: function create(options) {\n return new Calendar(options);\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'calendar';\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n date: new Date(),\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n navButtons: true,\n format: 'yyyy-mm-dd',\n overlay: false\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options Plugin instance's options\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Calendar(options) {\n _classCallCheck(this, Calendar);\n\n /**\n * The root Calendar element.\n * @type {HTMLElement}\n */\n var _this = _possibleConstructorReturn(this, (Calendar.__proto__ || Object.getPrototypeOf(Calendar)).call(this, options));\n\n _this.element = _core2.default.createElement('div', ['calendar']);\n\n /**\n * The input element this calendar belongs to.\n * @type {HTMLElement|null}\n */\n _this.isInput = _this.parent.nodeName === 'INPUT';\n\n /**\n * The current date for today tests\n * @type {Date}\n */\n _this.now = new Date();\n\n /**\n * The date this calendar starts at\n * @type {Date}\n */\n _this.date = _this.option('date');\n\n /**\n * The current year for the calendar\n * @type {int}\n */\n _this.year = _this.date.getFullYear();\n\n /**\n * The current month for the calendar\n * @type {int}\n */\n _this.month = _this.date.getMonth();\n\n /**\n * Month names\n * @type {Array}\n */\n _this.months = _this.option('months');\n\n /**\n * Short day names\n * @type {Array}\n */\n _this.shortDays = _this.option('shortDays');\n\n /**\n * Number of days in each month\n * @type {Array}\n */\n _this.monthDays = [31, _this.isLeapYear(_this.year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n /**\n * Show the navigating buttons\n * @type {boolean}\n */\n _this.navButtons = _this.option('navButtons');\n\n /**\n * The format string for the date output. Used when attached to an input element.\n * @type {string}\n */\n _this.format = _this.option('format');\n\n /**\n * Should the calendar be shown as a modal. Used when attached to an input element\n * @type {boolean}\n */\n _this.overlay = _this.option('overlay');\n\n if (_this.overlay) {\n _this.buildModal();\n }\n\n if (_this.isInput) {\n _this.parent.addEventListener('focus', function (event) {\n _this.handleInputFocus(event);\n });\n }\n\n _this.render();\n return _this;\n }\n\n ////////////////////////////////////////\n ///// HELPER METHODS TO BUILD HTML /////\n ////////////////////////////////////////\n\n /**\n * If we are to show as an overlay, build the modal's HTML\n * @return {undefined}\n */\n\n\n _createClass(Calendar, [{\n key: 'buildModal',\n value: function buildModal() {\n var _this2 = this;\n\n this.modal = _core2.default.createElement('div', ['modal']);\n this.modalBackground = _core2.default.createElement('div', ['modal-background']);\n\n var modalClose = _core2.default.createElement('button', ['modal-close']);\n\n modalClose.addEventListener('click', function () {\n _this2.modal.classList.remove('is-active');\n });\n\n this.modal.appendChild(this.modalBackground);\n this.modal.appendChild(modalClose);\n\n this.element.appendChild(this.modal);\n\n this.element.style.zIndex = 40;\n }\n\n /**\n * Build the calendars nav HTML\n * @return {undefined}\n */\n\n }, {\n key: 'buildNav',\n value: function buildNav() {\n var _this3 = this;\n\n var prevIcon = void 0,\n nextIcon = void 0;\n var nav = _core2.default.createElement('div', 'calendar-nav');\n var navLeft = _core2.default.createElement('div', 'calendar-nav-left');\n var navRight = _core2.default.createElement('div', 'calendar-nav-right');\n\n // Left side of nav (prev year/month buttons)\n if (this.navButtons) {\n this.prevYearButton = _core2.default.createElement('button', ['button', 'is-text']);\n prevIcon = _core2.default.createElement('i', ['fa', 'fa-backward']);\n this.prevYearButton.appendChild(prevIcon);\n\n this.prevYearButton.addEventListener('click', function (event) {\n _this3.handlePrevYearClick(event);\n });\n\n navLeft.appendChild(this.prevYearButton);\n\n this.prevMonthButton = _core2.default.createElement('button', ['button', 'is-text']);\n prevIcon = _core2.default.createElement('i', ['fa', 'fa-chevron-left']);\n this.prevMonthButton.appendChild(prevIcon);\n\n this.prevMonthButton.addEventListener('click', function (event) {\n _this3.handlePrevMonthClick(event);\n });\n\n navLeft.appendChild(this.prevMonthButton);\n\n // Right side of nav (next year/month buttons)\n this.nextMonthButton = _core2.default.createElement('button', ['button', 'is-text']);\n nextIcon = _core2.default.createElement('i', ['fa', 'fa-chevron-right']);\n this.nextMonthButton.appendChild(nextIcon);\n\n this.nextMonthButton.addEventListener('click', function (event) {\n _this3.handleNextMonthClick(event);\n });\n\n navRight.appendChild(this.nextMonthButton);\n\n this.nextYearButton = _core2.default.createElement('button', ['button', 'is-text']);\n prevIcon = _core2.default.createElement('i', ['fa', 'fa-forward']);\n this.nextYearButton.appendChild(prevIcon);\n\n this.nextYearButton.addEventListener('click', function (event) {\n _this3.handleNextYearClick(event);\n });\n\n navRight.appendChild(this.nextYearButton);\n }\n\n // Month/year label\n this.monthYearLabel = _core2.default.createElement('div');\n this.monthYearLabel.innerHTML = this.months[this.month] + ' ' + this.year;\n\n nav.appendChild(navLeft);\n nav.appendChild(this.monthYearLabel);\n nav.appendChild(navRight);\n\n return nav;\n }\n\n /**\n * Build the calendar's container HTML\n * @return {HTMLElement} The calendar's container\n */\n\n }, {\n key: 'buildContainer',\n value: function buildContainer() {\n return _core2.default.createElement('div', 'calendar-container');\n }\n\n /**\n * Build the calendar's header HTML\n * @return {HTMLElement} The calendar's header element\n */\n\n }, {\n key: 'buildHeader',\n value: function buildHeader() {\n var calendarHeader = _core2.default.createElement('div', 'calendar-header');\n\n this.shortDays.forEach(function (dayName) {\n var day = _core2.default.createElement('div', 'calendar-date');\n day.innerHTML = dayName;\n calendarHeader.appendChild(day);\n });\n\n return calendarHeader;\n }\n\n /**\n * Build the calendar's body. This includes all days.\n * @return {HTMLElement} The calendar's body element\n */\n\n }, {\n key: 'buildBody',\n value: function buildBody() {\n var _this4 = this;\n\n var calendarBody = _core2.default.createElement('div', 'calendar-body');\n\n var daysInMonth = this.monthDays[this.now.getMonth()];\n\n // Number of days to show from the previous month.\n var daysBefore = new Date(this.year, this.month, 1).getDay();\n\n // Number of days to show from the next month\n var daysAfter = void 0;\n\n var numDays = daysInMonth + daysBefore;\n\n daysAfter = numDays;\n while (daysAfter > 7) {\n daysAfter -= 7;\n }\n\n numDays += 7 - daysAfter;\n\n var cells = [];\n\n for (var i = 0; i < numDays; i++) {\n var d = new Date(this.year, this.month, 1 + (i - daysBefore));\n\n var today = false;\n var thisMonth = false;\n\n if (d.getFullYear() === this.now.getFullYear() && d.getMonth() === this.now.getMonth() && d.getDate() === this.now.getDate()) {\n today = true;\n }\n\n if (d.getMonth() === this.month) {\n thisMonth = true;\n }\n\n cells.push({\n day: d.getDate(),\n isToday: today,\n isThisMonth: thisMonth\n });\n }\n\n cells.forEach(function (day) {\n var d = _core2.default.createElement('div', 'calendar-date');\n\n if (!day.isThisMonth) {\n d.classList.add('is-disabled');\n }\n\n var button = _core2.default.createElement('button', 'date-item');\n\n if (_this4.isInput && day.isThisMonth) {\n button.addEventListener('click', function (event) {\n _this4.handleDayClick(event, day);\n });\n }\n\n if (day.isToday) {\n button.classList.add('is-today');\n }\n\n button.innerHTML = day.day;\n\n d.appendChild(button);\n\n calendarBody.appendChild(d);\n });\n\n return calendarBody;\n }\n\n //////////////////////////\n ///// EVENT HANDLERS /////\n //////////////////////////\n\n /**\n * Called when the input box is in focus.\n * @return {undefined}\n */\n\n }, {\n key: 'handleInputFocus',\n value: function handleInputFocus() {\n if (this.overlay) {\n this.modal.classList.add('is-active');\n }\n\n this.parent.parentNode.insertBefore(this.element, this.parent.nextSibling);\n }\n\n /**\n * Event hander for when a day is clicked.\n * @param {Object} event The event object\n * @param {Object} day The day that was clicked\n * @return {undefined}\n */\n\n }, {\n key: 'handleDayClick',\n value: function handleDayClick(event, day) {\n day = new Date(this.year, this.month, day.day);\n\n var dateString = this.formatDateString(day);\n\n this.parent.value = dateString;\n\n if (this.overlay) {\n this.modal.classList.remove('is-active');\n } else {\n this.parent.parentNode.removeChild(this.element);\n }\n }\n\n /**\n * Event handler for the previous month button.\n * @return {undefined}\n */\n\n }, {\n key: 'handlePrevMonthClick',\n value: function handlePrevMonthClick() {\n this.month--;\n\n if (this.month < 0) {\n this.year--;\n this.month = 11;\n }\n\n this.render();\n }\n\n /**\n * Event handler for the next month button.\n * @return {undefined}\n */\n\n }, {\n key: 'handleNextMonthClick',\n value: function handleNextMonthClick() {\n this.month++;\n\n if (this.month > 11) {\n this.year++;\n this.month = 0;\n }\n\n this.render();\n }\n\n /**\n * Event handler for the previous year button.\n * @return {undefined}\n */\n\n }, {\n key: 'handlePrevYearClick',\n value: function handlePrevYearClick() {\n this.year--;\n\n this.render();\n }\n\n /**\n * Event handler for the next year button.\n * @return {undefined}\n */\n\n }, {\n key: 'handleNextYearClick',\n value: function handleNextYearClick() {\n this.year++;\n\n this.render();\n }\n\n /**\n * Format the date based on the supplied format string.\n * @param {Object} day Date object representing the day to format\n * @returns {string} The formatted date string\n */\n\n }, {\n key: 'formatDateString',\n value: function formatDateString(day) {\n var dateString = this.format;\n\n // May be a better/faster way of doing this?\n if (dateString.indexOf('yyyy') !== -1) {\n dateString = this.format.replace('yyyy', day.getFullYear());\n } else {\n dateString = this.format.replace('yy', day.getFullYear().toString().substr(-2));\n }\n\n if (dateString.indexOf('mm') !== -1) {\n var month = day.getMonth() + 1;\n if (month < 10) {\n month = '0' + month.toString();\n }\n dateString = dateString.replace('mm', month);\n } else {\n dateString = dateString.replace('m', day.getMonth() + 1);\n }\n\n if (dateString.indexOf('dd') !== -1) {\n var date = day.getDate();\n if (date < 10) {\n date = '0' + date.toString();\n }\n dateString = dateString.replace('dd', date);\n } else {\n dateString = dateString.replace('d', day.getDate());\n }\n\n return dateString;\n }\n\n /**\n * Clear the calendar HTML, ready for a re-render.\n * @return {undefined}\n */\n\n }, {\n key: 'clearCalendar',\n value: function clearCalendar() {\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n }\n\n /**\n * Check if the passed year is a leap year.\n * @param {int} year The year to check against\n * @return {boolean} Is the year a leap year or not\n */\n\n }, {\n key: 'isLeapYear',\n value: function isLeapYear(year) {\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n /**\n * Render/build the calendar's HTML.\n * @return {undefined}\n */\n\n }, {\n key: 'render',\n value: function render() {\n this.clearCalendar();\n\n this.element.appendChild(this.buildNav());\n\n var container = this.buildContainer();\n container.appendChild(this.buildHeader());\n container.appendChild(this.buildBody());\n\n this.element.appendChild(container);\n\n if (this.overlay) {\n this.modal.insertBefore(this.element, this.modalBackground.nextSibling);\n this.parent.appendChild(this.modal);\n } else {\n this.parent.appendChild(this.element);\n }\n }\n }]);\n\n return Calendar;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('calendar', Calendar);\n\nexports.default = Calendar;\n\n//# sourceURL=webpack://Bulma/./src/plugins/calendar.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Dropdown\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Dropdown = function (_Plugin) {\n _inherits(Dropdown, _Plugin);\n\n _createClass(Dropdown, null, [{\n key: 'parse',\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HtmlElement} element The root element for this instance\n * @return {undefined}\n */\n value: function parse(element) {\n new Dropdown({\n element: element\n });\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'dropdown';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Dropdown(options) {\n _classCallCheck(this, Dropdown);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * The root dropdown element.\n * @type {HTMLElement}\n */\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element to trigger when clicked.\n * @type {HTMLElement}\n */\n _this.trigger = _this.element.querySelector('.dropdown-trigger');\n\n _this.registerEvents();\n return _this;\n }\n\n /**\n * Register all the events this module needs.\n * @return {undefined}\n */\n\n\n _createClass(Dropdown, [{\n key: 'registerEvents',\n value: function registerEvents() {\n this.trigger.addEventListener('click', this.handleTriggerClick.bind(this));\n }\n\n /**\n * Handle the click event on the trigger.\n * @return {undefined}\n */\n\n }, {\n key: 'handleTriggerClick',\n value: function handleTriggerClick() {\n if (this.element.classList.contains('is-active')) {\n this.element.classList.remove('is-active');\n } else {\n this.element.classList.add('is-active');\n }\n }\n }]);\n\n return Dropdown;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('dropdown', Dropdown);\n\nexports.default = Dropdown;\n\n//# sourceURL=webpack:///./src/plugins/dropdown.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Dropdown\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Dropdown = function (_Plugin) {\n _inherits(Dropdown, _Plugin);\n\n _createClass(Dropdown, null, [{\n key: 'parse',\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HtmlElement} element The root element for this instance\n * @return {undefined}\n */\n value: function parse(element) {\n new Dropdown({\n element: element\n });\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'dropdown';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Dropdown(options) {\n _classCallCheck(this, Dropdown);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * The root dropdown element.\n * @type {HTMLElement}\n */\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element to trigger when clicked.\n * @type {HTMLElement}\n */\n _this.trigger = _this.element.querySelector('.dropdown-trigger');\n\n _this.registerEvents();\n return _this;\n }\n\n /**\n * Register all the events this module needs.\n * @return {undefined}\n */\n\n\n _createClass(Dropdown, [{\n key: 'registerEvents',\n value: function registerEvents() {\n this.trigger.addEventListener('click', this.handleTriggerClick.bind(this));\n }\n\n /**\n * Handle the click event on the trigger.\n * @return {undefined}\n */\n\n }, {\n key: 'handleTriggerClick',\n value: function handleTriggerClick() {\n if (this.element.classList.contains('is-active')) {\n this.element.classList.remove('is-active');\n } else {\n this.element.classList.add('is-active');\n }\n }\n }]);\n\n return Dropdown;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('dropdown', Dropdown);\n\nexports.default = Dropdown;\n\n//# sourceURL=webpack://Bulma/./src/plugins/dropdown.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module File\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar File = function (_Plugin) {\n _inherits(File, _Plugin);\n\n _createClass(File, null, [{\n key: 'parse',\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this plugin\n * @return {undefined}\n */\n value: function parse(element) {\n new File({\n element: element\n });\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'file';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created plugin instance\n */\n\n }]);\n\n function File(options) {\n _classCallCheck(this, File);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (File.__proto__ || Object.getPrototypeOf(File)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * The root file element.\n * @type {HTMLElement}\n */\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element to use as the trigger.\n * @type {HTMLELement}\n */\n _this.input = _this.element.querySelector('input');\n\n /**\n * The element to show the file name.\n * @type {HTMLElement}\n */\n _this.filename = _this.element.querySelector('.file-name');\n\n _this.registerEvents();\n return _this;\n }\n\n /**\n * Register all the events this module needs.\n * @return {undefined}\n */\n\n\n _createClass(File, [{\n key: 'registerEvents',\n value: function registerEvents() {\n var _this2 = this;\n\n if (this.filename) {\n this.input.addEventListener('change', this.handleTriggerChange.bind(this));\n }\n\n this.element.addEventListener('dragover', function (e) {\n e.preventDefault();\n _this2.addHoverClass();\n });\n\n this.element.addEventListener('dragleave', function (e) {\n e.preventDefault();\n _this2.addHoverClass();\n });\n\n this.element.addEventListener('drop', function (e) {\n e.preventDefault();\n _this2.removeHoverClass();\n _this2.input.files = e.dataTransfer.files;\n });\n }\n\n /**\n * Handle the click event on the trigger.\n * @param {Object} event The event object\n * @return {undefined}\n */\n\n }, {\n key: 'handleTriggerChange',\n value: function handleTriggerChange(event) {\n if (event.target.files.length === 0) {\n this.clearFileName();\n }\n\n if (event.target.files.length === 1) {\n this.setFileName(event.target.files[0].name);\n }\n\n if (event.target.files.length > 1) {\n this.setFileName(event.target.files.length + ' files');\n }\n }\n\n /**\n * Clear the file name element.\n * @return {undefined}\n */\n\n }, {\n key: 'clearFileName',\n value: function clearFileName() {\n this.filename.innerHTML = '';\n }\n\n /**\n * Set the text for the file name element.\n * @param {string} value The name of the file to update the label with\n * @return {undefined}\n */\n\n }, {\n key: 'setFileName',\n value: function setFileName(value) {\n this.filename.innerHTML = value;\n }\n\n /**\n * Add hover class to root element.\n * @return {undefined}\n */\n\n }, {\n key: 'addHoverClass',\n value: function addHoverClass() {\n this.element.classList.add('is-hovered');\n }\n\n /**\n * Remove hover class from root element.\n * @return {undefined}\n */\n\n }, {\n key: 'removeHoverClass',\n value: function removeHoverClass() {\n this.element.classList.remove('is-hovered');\n }\n }]);\n\n return File;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('file', File);\n\nexports.default = File;\n\n//# sourceURL=webpack:///./src/plugins/file.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module File\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar File = function (_Plugin) {\n _inherits(File, _Plugin);\n\n _createClass(File, null, [{\n key: 'parse',\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this plugin\n * @return {undefined}\n */\n value: function parse(element) {\n new File({\n element: element\n });\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'file';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created plugin instance\n */\n\n }]);\n\n function File(options) {\n _classCallCheck(this, File);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (File.__proto__ || Object.getPrototypeOf(File)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * The root file element.\n * @type {HTMLElement}\n */\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element to use as the trigger.\n * @type {HTMLELement}\n */\n _this.input = _this.element.querySelector('input');\n\n /**\n * The element to show the file name.\n * @type {HTMLElement}\n */\n _this.filename = _this.element.querySelector('.file-name');\n\n _this.registerEvents();\n return _this;\n }\n\n /**\n * Register all the events this module needs.\n * @return {undefined}\n */\n\n\n _createClass(File, [{\n key: 'registerEvents',\n value: function registerEvents() {\n var _this2 = this;\n\n if (this.filename) {\n this.input.addEventListener('change', this.handleTriggerChange.bind(this));\n }\n\n this.element.addEventListener('dragover', function (e) {\n e.preventDefault();\n _this2.addHoverClass();\n });\n\n this.element.addEventListener('dragleave', function (e) {\n e.preventDefault();\n _this2.addHoverClass();\n });\n\n this.element.addEventListener('drop', function (e) {\n e.preventDefault();\n _this2.removeHoverClass();\n _this2.input.files = e.dataTransfer.files;\n });\n }\n\n /**\n * Handle the click event on the trigger.\n * @param {Object} event The event object\n * @return {undefined}\n */\n\n }, {\n key: 'handleTriggerChange',\n value: function handleTriggerChange(event) {\n if (event.target.files.length === 0) {\n this.clearFileName();\n }\n\n if (event.target.files.length === 1) {\n this.setFileName(event.target.files[0].name);\n }\n\n if (event.target.files.length > 1) {\n this.setFileName(event.target.files.length + ' files');\n }\n }\n\n /**\n * Clear the file name element.\n * @return {undefined}\n */\n\n }, {\n key: 'clearFileName',\n value: function clearFileName() {\n this.filename.innerHTML = '';\n }\n\n /**\n * Set the text for the file name element.\n * @param {string} value The name of the file to update the label with\n * @return {undefined}\n */\n\n }, {\n key: 'setFileName',\n value: function setFileName(value) {\n this.filename.innerHTML = value;\n }\n\n /**\n * Add hover class to root element.\n * @return {undefined}\n */\n\n }, {\n key: 'addHoverClass',\n value: function addHoverClass() {\n this.element.classList.add('is-hovered');\n }\n\n /**\n * Remove hover class from root element.\n * @return {undefined}\n */\n\n }, {\n key: 'removeHoverClass',\n value: function removeHoverClass() {\n this.element.classList.remove('is-hovered');\n }\n }]);\n\n return File;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('file', File);\n\nexports.default = File;\n\n//# sourceURL=webpack://Bulma/./src/plugins/file.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _plugin = __webpack_require__(/*! ./plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module DismissableComponent\n * @since 0.2.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar DismissableComponent = function (_Plugin) {\n _inherits(DismissableComponent, _Plugin);\n\n _createClass(DismissableComponent, null, [{\n key: 'defaultOptions',\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n value: function defaultOptions() {\n return {\n isDismissable: false,\n destroyOnDismiss: true,\n element: null\n };\n }\n\n /**\n * Plugin constructor\n * @param {string} name Plugin's name\n * @param {Object} options Plugin's options\n * @return {this} The new plugin instance\n */\n\n }]);\n\n function DismissableComponent(name, options) {\n _classCallCheck(this, DismissableComponent);\n\n /**\n * The name of this component, this will be used as the root class\n * @type {string}\n */\n var _this = _possibleConstructorReturn(this, (DismissableComponent.__proto__ || Object.getPrototypeOf(DismissableComponent)).call(this, options));\n\n _this.name = name;\n\n /**\n * Body text.\n * @type {string}\n */\n _this.body = _this.option('body');\n\n /**\n * Color modifier.\n * @type {string} Possible values are null, primary, info, success, warning, danger\n */\n _this.color = _this.option('color');\n\n /**\n * How long to wait before auto dismissing the component.\n * @type {int|null} If null component must be dismissed manually.\n */\n _this.dismissInterval = _this.option('dismissInterval') ? _this.createDismissInterval(_this.option('dismissInterval')) : null;\n\n /**\n * Does this component have a dismiss button?\n * @type {Boolean}\n */\n _this.isDismissable = _this.option('isDismissable');\n\n /**\n * Should this component be destroyed when it is dismissed.\n * @type {Boolean}\n */\n _this.destroyOnDismiss = _this.option('destroyOnDismiss');\n\n /**\n * The root element.\n * @type {HTMLElement|null} If this is not provided a new element will be created.\n */\n _this.element = _this.option('element');\n\n if (!_this.element) {\n _this.createRootElement();\n _this.parent.appendChild(_this.element);\n }\n\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element used to close the component.\n * @type {HTMLElement}\n */\n _this.closeButton = _this.option('closeButton', _this.createCloseButton());\n\n if (_this.body) {\n _this.insertBody();\n }\n\n if (_this.color) {\n _this.setColor();\n }\n return _this;\n }\n\n /**\n * Create the main element.\n * @return {undefined}\n */\n\n\n _createClass(DismissableComponent, [{\n key: 'createRootElement',\n value: function createRootElement() {\n this.element = document.createElement('div');\n\n this.element.classList.add(this.name);\n this.hide();\n }\n\n /**\n * Show the component.\n * @return {undefined}\n */\n\n }, {\n key: 'show',\n value: function show() {\n this.element.classList.remove('is-hidden');\n }\n\n /**\n * Hide the component.\n * @return {undefined}\n */\n\n }, {\n key: 'hide',\n value: function hide() {\n this.element.classList.add('is-hidden');\n }\n\n /**\n * Insert the body text into the component.\n * @return {undefined}\n */\n\n }, {\n key: 'insertBody',\n value: function insertBody() {\n this.element.innerHTML = this.body;\n }\n\n /**\n * Create the element that will be used to close the component.\n * @return {HTMLElement} The newly created close button\n */\n\n }, {\n key: 'createCloseButton',\n value: function createCloseButton() {\n var closeButton = document.createElement('button');\n closeButton.setAttribute('type', 'button');\n closeButton.classList.add('delete');\n\n return closeButton;\n }\n\n /**\n * Create an interval to dismiss the component after the set number of ms.\n * @param {int} interval The time to wait before dismissing the component\n * @return {undefined}\n */\n\n }, {\n key: 'createDismissInterval',\n value: function createDismissInterval(interval) {\n var _this2 = this;\n\n return setInterval(function () {\n _this2.handleCloseEvent();\n }, interval);\n }\n\n /**\n * Insert the close button before our content.\n * @return {undefined}\n */\n\n }, {\n key: 'prependCloseButton',\n value: function prependCloseButton() {\n this.element.insertBefore(this.closeButton, this.element.firstChild);\n }\n\n /**\n * Setup the event listener for the close button.\n * @return {undefined}\n */\n\n }, {\n key: 'setupCloseEvent',\n value: function setupCloseEvent() {\n this.closeButton.addEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n /**\n * Handle the event when our close button is clicked.\n * @return {undefined}\n */\n\n }, {\n key: 'handleCloseEvent',\n value: function handleCloseEvent() {\n if (this.destroyOnDismiss) {\n this.destroy();\n } else {\n this.hide();\n }\n }\n\n /**\n * Set the colour of the component.\n * @return {undefined}\n */\n\n }, {\n key: 'setColor',\n value: function setColor() {\n this.element.classList.add('is-' + this.color);\n }\n\n /**\n * Destroy the component, removing the event listener, interval and element.\n * @return {undefined}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n if (this.closeButton) {\n this.closeButton.removeEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n clearInterval(this.dismissInterval);\n\n this.parent.removeChild(this.element);\n this.parent = null;\n this.element = null;\n }\n }]);\n\n return DismissableComponent;\n}(_plugin2.default);\n\nexports.default = DismissableComponent;\n\n//# sourceURL=webpack:///./src/dismissableComponent.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _plugin = __webpack_require__(/*! ./plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module DismissableComponent\n * @since 0.2.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar DismissableComponent = function (_Plugin) {\n _inherits(DismissableComponent, _Plugin);\n\n _createClass(DismissableComponent, null, [{\n key: 'defaultOptions',\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n value: function defaultOptions() {\n return {\n isDismissable: false,\n destroyOnDismiss: true,\n element: null\n };\n }\n\n /**\n * Plugin constructor\n * @param {string} name Plugin's name\n * @param {Object} options Plugin's options\n * @return {this} The new plugin instance\n */\n\n }]);\n\n function DismissableComponent(name, options) {\n _classCallCheck(this, DismissableComponent);\n\n /**\n * The name of this component, this will be used as the root class\n * @type {string}\n */\n var _this = _possibleConstructorReturn(this, (DismissableComponent.__proto__ || Object.getPrototypeOf(DismissableComponent)).call(this, options));\n\n _this.name = name;\n\n /**\n * Body text.\n * @type {string}\n */\n _this.body = _this.option('body');\n\n /**\n * Color modifier.\n * @type {string} Possible values are null, primary, info, success, warning, danger\n */\n _this.color = _this.option('color');\n\n /**\n * How long to wait before auto dismissing the component.\n * @type {int|null} If null component must be dismissed manually.\n */\n _this.dismissInterval = _this.option('dismissInterval') ? _this.createDismissInterval(_this.option('dismissInterval')) : null;\n\n /**\n * Does this component have a dismiss button?\n * @type {Boolean}\n */\n _this.isDismissable = _this.option('isDismissable');\n\n /**\n * Should this component be destroyed when it is dismissed.\n * @type {Boolean}\n */\n _this.destroyOnDismiss = _this.option('destroyOnDismiss');\n\n /**\n * The root element.\n * @type {HTMLElement|null} If this is not provided a new element will be created.\n */\n _this.element = _this.option('element');\n\n if (!_this.element) {\n _this.createRootElement();\n _this.parent.appendChild(_this.element);\n }\n\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element used to close the component.\n * @type {HTMLElement}\n */\n _this.closeButton = _this.option('closeButton', _this.createCloseButton());\n\n if (_this.body) {\n _this.insertBody();\n }\n\n if (_this.color) {\n _this.setColor();\n }\n return _this;\n }\n\n /**\n * Create the main element.\n * @return {undefined}\n */\n\n\n _createClass(DismissableComponent, [{\n key: 'createRootElement',\n value: function createRootElement() {\n this.element = document.createElement('div');\n\n this.element.classList.add(this.name);\n this.hide();\n }\n\n /**\n * Show the component.\n * @return {undefined}\n */\n\n }, {\n key: 'show',\n value: function show() {\n this.element.classList.remove('is-hidden');\n }\n\n /**\n * Hide the component.\n * @return {undefined}\n */\n\n }, {\n key: 'hide',\n value: function hide() {\n this.element.classList.add('is-hidden');\n }\n\n /**\n * Insert the body text into the component.\n * @return {undefined}\n */\n\n }, {\n key: 'insertBody',\n value: function insertBody() {\n this.element.innerHTML = this.body;\n }\n\n /**\n * Create the element that will be used to close the component.\n * @return {HTMLElement} The newly created close button\n */\n\n }, {\n key: 'createCloseButton',\n value: function createCloseButton() {\n var closeButton = document.createElement('button');\n closeButton.setAttribute('type', 'button');\n closeButton.classList.add('delete');\n\n return closeButton;\n }\n\n /**\n * Create an interval to dismiss the component after the set number of ms.\n * @param {int} interval The time to wait before dismissing the component\n * @return {undefined}\n */\n\n }, {\n key: 'createDismissInterval',\n value: function createDismissInterval(interval) {\n var _this2 = this;\n\n return setInterval(function () {\n _this2.handleCloseEvent();\n }, interval);\n }\n\n /**\n * Insert the close button before our content.\n * @return {undefined}\n */\n\n }, {\n key: 'prependCloseButton',\n value: function prependCloseButton() {\n this.element.insertBefore(this.closeButton, this.element.firstChild);\n }\n\n /**\n * Setup the event listener for the close button.\n * @return {undefined}\n */\n\n }, {\n key: 'setupCloseEvent',\n value: function setupCloseEvent() {\n this.closeButton.addEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n /**\n * Handle the event when our close button is clicked.\n * @return {undefined}\n */\n\n }, {\n key: 'handleCloseEvent',\n value: function handleCloseEvent() {\n if (this.destroyOnDismiss) {\n this.destroy();\n } else {\n this.hide();\n }\n }\n\n /**\n * Set the colour of the component.\n * @return {undefined}\n */\n\n }, {\n key: 'setColor',\n value: function setColor() {\n this.element.classList.add('is-' + this.color);\n }\n\n /**\n * Destroy the component, removing the event listener, interval and element.\n * @return {undefined}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n if (this.closeButton) {\n this.closeButton.removeEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n clearInterval(this.dismissInterval);\n\n this.parent.removeChild(this.element);\n this.parent = null;\n this.element = null;\n }\n }]);\n\n return DismissableComponent;\n}(_plugin2.default);\n\nexports.default = DismissableComponent;\n\n//# sourceURL=webpack://Bulma/./src/dismissableComponent.js?");

@@ -123,3 +133,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -136,6 +146,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _dismissableComponent = __webpack_require__(/*! ../dismissableComponent */ \"./src/dismissableComponent.js\");\n\nvar _dismissableComponent2 = _interopRequireDefault(_dismissableComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Message\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n * @extends DismissableComponent\n */\nvar Message = function (_DismissableComponent) {\n _inherits(Message, _DismissableComponent);\n\n _createClass(Message, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options THe options object for this instance\n * @return {Message} The newly created message instance\n */\n value: function create(options) {\n return new Message(options);\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this plugin\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n var closeBtn = element.querySelector('.delete');\n var dismissInterval = element.getAttribute('data-dismiss-interval');\n\n var options = {\n body: null,\n parent: element.parentNode,\n element: element,\n closeButton: closeBtn,\n isDismissable: !!closeBtn,\n destroyOnDismiss: true\n };\n\n if (dismissInterval) {\n options['dismissInterval'] = parseInt(dismissInterval);\n }\n\n new Message(options);\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'message';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Message(options) {\n _classCallCheck(this, Message);\n\n /**\n * The size of the message\n * @type {String} Possible values are small, normal, medium or large\n */\n var _this = _possibleConstructorReturn(this, (Message.__proto__ || Object.getPrototypeOf(Message)).call(this, 'message', options));\n\n _this.size = _this.option('size');\n\n /**\n * The title of the message\n * @type {String}\n */\n _this.title = _this.option('title');\n\n if (_this.title) {\n _this.createMessageHeader();\n }\n\n // TODO: Move this into the DismissableComponent class. Due to the required\n // changes between different components, we may need a way to trigger this\n // when the component is ready.\n if (_this.isDismissable) {\n if (!_this.option('closeButton')) {\n _this.prependCloseButton();\n }\n\n _this.setupCloseEvent();\n }\n\n if (_this.size) {\n _this.setSize();\n }\n return _this;\n }\n\n /**\n * Create the message header\n * @return {undefined}\n */\n\n\n _createClass(Message, [{\n key: 'createMessageHeader',\n value: function createMessageHeader() {\n var header = document.createElement('div');\n header.classList.add('message-header');\n\n header.innerHTML = '<p>' + this.title + '</p>';\n\n this.title = header;\n\n this.element.insertBefore(this.title, this.element.firstChild);\n }\n\n /**\n * Set the size of the message.\n * @return {undefined}\n */\n\n }, {\n key: 'setSize',\n value: function setSize() {\n this.element.classList.add('is-' + this.size);\n }\n\n /**\n * Insert the body text into the component.\n * @return {undefined}\n */\n\n }, {\n key: 'insertBody',\n value: function insertBody() {\n var body = document.createElement('div');\n body.classList.add('message-body');\n body.innerHTML = this.body;\n\n this.element.appendChild(body);\n }\n\n /**\n * Insert the close button before our content.\n * @return {undefined}\n */\n\n }, {\n key: 'prependCloseButton',\n value: function prependCloseButton() {\n this.title.appendChild(this.closeButton);\n }\n }]);\n\n return Message;\n}(_dismissableComponent2.default);\n\n_core2.default.registerPlugin('message', Message);\n\nexports.default = Message;\n\n//# sourceURL=webpack:///./src/plugins/message.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _dismissableComponent = __webpack_require__(/*! ../dismissableComponent */ \"./src/dismissableComponent.js\");\n\nvar _dismissableComponent2 = _interopRequireDefault(_dismissableComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Message\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n * @extends DismissableComponent\n */\nvar Message = function (_DismissableComponent) {\n _inherits(Message, _DismissableComponent);\n\n _createClass(Message, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options THe options object for this instance\n * @return {Message} The newly created message instance\n */\n value: function create(options) {\n return new Message(options);\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this plugin\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n var closeBtn = element.querySelector('.delete');\n var dismissInterval = element.getAttribute('data-dismiss-interval');\n\n var options = {\n body: null,\n parent: element.parentNode,\n element: element,\n closeButton: closeBtn,\n isDismissable: !!closeBtn,\n destroyOnDismiss: true\n };\n\n if (dismissInterval) {\n options['dismissInterval'] = parseInt(dismissInterval);\n }\n\n new Message(options);\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'message';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Message(options) {\n _classCallCheck(this, Message);\n\n /**\n * The size of the message\n * @type {String} Possible values are small, normal, medium or large\n */\n var _this = _possibleConstructorReturn(this, (Message.__proto__ || Object.getPrototypeOf(Message)).call(this, 'message', options));\n\n _this.size = _this.option('size');\n\n /**\n * The title of the message\n * @type {String}\n */\n _this.title = _this.option('title');\n\n if (_this.title) {\n _this.createMessageHeader();\n }\n\n // TODO: Move this into the DismissableComponent class. Due to the required\n // changes between different components, we may need a way to trigger this\n // when the component is ready.\n if (_this.isDismissable) {\n if (!_this.option('closeButton')) {\n _this.prependCloseButton();\n }\n\n _this.setupCloseEvent();\n }\n\n if (_this.size) {\n _this.setSize();\n }\n return _this;\n }\n\n /**\n * Create the message header\n * @return {undefined}\n */\n\n\n _createClass(Message, [{\n key: 'createMessageHeader',\n value: function createMessageHeader() {\n var header = document.createElement('div');\n header.classList.add('message-header');\n\n header.innerHTML = '<p>' + this.title + '</p>';\n\n this.title = header;\n\n this.element.insertBefore(this.title, this.element.firstChild);\n }\n\n /**\n * Set the size of the message.\n * @return {undefined}\n */\n\n }, {\n key: 'setSize',\n value: function setSize() {\n this.element.classList.add('is-' + this.size);\n }\n\n /**\n * Insert the body text into the component.\n * @return {undefined}\n */\n\n }, {\n key: 'insertBody',\n value: function insertBody() {\n var body = document.createElement('div');\n body.classList.add('message-body');\n body.innerHTML = this.body;\n\n this.element.appendChild(body);\n }\n\n /**\n * Insert the close button before our content.\n * @return {undefined}\n */\n\n }, {\n key: 'prependCloseButton',\n value: function prependCloseButton() {\n this.title.appendChild(this.closeButton);\n }\n }]);\n\n return Message;\n}(_dismissableComponent2.default);\n\n_core2.default.registerPlugin('message', Message);\n\nexports.default = Message;\n\n//# sourceURL=webpack://Bulma/./src/plugins/message.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Modal\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Modal = function (_Plugin) {\n _inherits(Modal, _Plugin);\n\n _createClass(Modal, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options THe options object for the new instance\n * @return {Modal} The newly created instance\n */\n value: function create(options) {\n return new Modal(options);\n }\n\n /**\n * Get the root class this plugin is responsible for.\n * This will tell the core to match this plugin to an element with a .modal class.\n * @returns {string} The class this plugin is responsible for.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'modal';\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n type: 'card',\n closable: true\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created plugin instance\n */\n\n }]);\n\n function Modal(options) {\n _classCallCheck(this, Modal);\n\n /** @param {string} */\n var _this = _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, options));\n\n _this.type = _this.option('type');\n\n /** @param {HTMLElement} */\n _this.element = _this.option('element');\n\n if (!_this.element) {\n _this.element = _core2.default.createElement('div', '.modal');\n\n if (!_this.element.classList.contains('modal')) {\n _this.element.classList.add('modal');\n }\n }\n\n /** @param {HTMLElement} */\n _this.parent = _this.option('parent');\n\n if (!_this.parent) {\n if (!_this.element.parentNode) {\n _this.parent = document.body;\n\n _this.parent.appendChild(_this.element);\n } else {\n _this.parent = _this.element.parentNode;\n }\n } else {\n _this.parent.appendChild(_this.element);\n }\n\n /** @param {HTMLElement} */\n _this.background = _core2.default.findOrCreateElement('.modal-background', _this.element);\n\n /** @param {HTMLElement} */\n _this.content = _this.type === 'card' ? _core2.default.findOrCreateElement('.modal-card', _this.element) : _core2.default.findOrCreateElement('.modal-content', _this.element);\n\n /** @param {boolean} */\n _this.closable = _this.option('closable');\n\n /** @param {string|null} */\n _this.body = _this.option('body');\n\n /** @param {string|null} */\n _this.title = _this.option('title');\n\n if (_this.type === 'card') {\n /** @param {HTMLElement} */\n _this.header = _core2.default.findOrCreateElement('.modal-card-head', _this.content, 'header');\n\n /** @param {HTMLElement} */\n _this.headerTitle = _core2.default.findOrCreateElement('.modal-card-title', _this.header, 'p');\n if (!_this.headerTitle.innerHTML) {\n _this.headerTitle.innerHTML = _this.title;\n }\n\n /** @param {HTMLElement} */\n _this.cardBody = _core2.default.findOrCreateElement('.modal-card-body', _this.content, 'section');\n if (!_this.cardBody.innerHTML) {\n _this.cardBody.innerHTML = _this.body;\n }\n\n /** @param {HTMLElement} */\n _this.footer = _core2.default.findOrCreateElement('.modal-card-foot', _this.content, 'footer');\n } else {\n if (!_this.content.innerHTML) {\n _this.content.innerHTML = _this.body;\n }\n }\n\n if (_this.closable) {\n /** @param {HTMLElement} */\n _this.closeButton = _this.type === 'card' ? _core2.default.findOrCreateElement('.delete', _this.header, 'button') : _core2.default.findOrCreateElement('.modal-close', _this.element, 'button');\n }\n\n /** @param {function} */\n _this.onOpen = _this.option('onOpen');\n\n /** @param {function} */\n _this.onClose = _this.option('onClose');\n\n if (_this.type === 'card') {\n _this.createButtons();\n }\n\n _this.setupEvents();\n return _this;\n }\n\n /**\n * Setup the events used by this modal.\n * @returns {void}\n */\n\n\n _createClass(Modal, [{\n key: 'setupEvents',\n value: function setupEvents() {\n var _this2 = this;\n\n if (this.closable) {\n this.closeButton.addEventListener('click', this.close.bind(this));\n\n document.addEventListener('keyup', function (event) {\n if (!_this2.element.classList.contains('is-active')) {\n return;\n }\n\n var key = event.key || event.keyCode;\n\n if (key === 'Escape' || key === 'Esc' || key === 27) {\n _this2.close();\n }\n });\n\n this.background.addEventListener('click', this.close.bind(this));\n }\n }\n\n /**\n * Go through the provided buttons option and create the buttons.\n * @returns {void}\n */\n\n }, {\n key: 'createButtons',\n value: function createButtons() {\n var buttonsConfig = this.option('buttons', []);\n var modal = this;\n\n buttonsConfig.forEach(function (buttonConfig) {\n var button = _core2.default.createElement('button', buttonConfig.classes);\n button.innerHTML = buttonConfig.label;\n\n button.addEventListener('click', function (event) {\n buttonConfig.onClick(event);\n });\n\n modal.footer.appendChild(button);\n });\n }\n\n /**\n * Open the modal\n * @returns {void}\n */\n\n }, {\n key: 'open',\n value: function open() {\n this.element.classList.add('is-active');\n document.body.classList.add('is-clipped');\n\n if (this.onOpen) {\n this.onOpen(this);\n }\n }\n\n /**\n * Close the modal\n * @returns {void} \n */\n\n }, {\n key: 'close',\n value: function close() {\n this.element.classList.remove('is-active');\n document.body.classList.remove('is-clipped');\n\n if (this.onClose) {\n this.onClose(this);\n }\n }\n\n /**\n * Destroy this modal, unregistering element references and removing the modal.\n * @returns {void}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.element.remove();\n\n this.parent = null;\n this.element = null;\n this.background = null;\n this.content = null;\n\n if (this.type === 'card') {\n this.header = null;\n this.headerTitle = null;\n this.cardBody = null;\n this.footer = null;\n }\n\n if (this.closable) {\n this.closeButton = null;\n }\n\n this.options = [];\n }\n }]);\n\n return Modal;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('modal', Modal);\n\nexports.default = Modal;\n\n//# sourceURL=webpack:///./src/plugins/modal.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Modal\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Modal = function (_Plugin) {\n _inherits(Modal, _Plugin);\n\n _createClass(Modal, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options THe options object for the new instance\n * @return {Modal} The newly created instance\n */\n value: function create(options) {\n return new Modal(options);\n }\n\n /**\n * Get the root class this plugin is responsible for.\n * This will tell the core to match this plugin to an element with a .modal class.\n * @returns {string} The class this plugin is responsible for.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'modal';\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n style: 'card',\n closable: true\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created plugin instance\n */\n\n }]);\n\n function Modal(options) {\n _classCallCheck(this, Modal);\n\n /** @param {string} */\n var _this = _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, options));\n\n _this.style = _this.option('style');\n\n /** @param {HTMLElement} */\n _this.element = _this.option('element');\n\n if (!_this.element) {\n _this.element = _core2.default.createElement('div', '.modal');\n\n if (!_this.element.classList.contains('modal')) {\n _this.element.classList.add('modal');\n }\n }\n\n /** @param {HTMLElement} */\n _this.parent = _this.option('parent');\n\n if (!_this.parent) {\n if (!_this.element.parentNode) {\n _this.parent = document.body;\n\n _this.parent.appendChild(_this.element);\n } else {\n _this.parent = _this.element.parentNode;\n }\n } else {\n _this.parent.appendChild(_this.element);\n }\n\n /** @param {HTMLElement} */\n _this.background = _core2.default.findOrCreateElement('.modal-background', _this.element);\n\n /** @param {HTMLElement} */\n _this.content = _this.style === 'card' ? _core2.default.findOrCreateElement('.modal-card', _this.element) : _core2.default.findOrCreateElement('.modal-content', _this.element);\n\n /** @param {boolean} */\n _this.closable = _this.option('closable');\n\n /** @param {string|null} */\n _this.body = _this.option('body');\n\n /** @param {string|null} */\n _this.title = _this.option('title');\n\n if (_this.style === 'card') {\n _this.createCardStructure();\n } else {\n if (!_this.content.innerHTML) {\n _this.content.innerHTML = _this.body;\n }\n }\n\n if (_this.closable) {\n /** @param {HTMLElement} */\n _this.closeButton = _this.style === 'card' ? _core2.default.findOrCreateElement('.delete', _this.header, 'button') : _core2.default.findOrCreateElement('.modal-close', _this.element, 'button');\n }\n\n /** @param {function} */\n _this.onOpen = _this.option('onOpen');\n\n /** @param {function} */\n _this.onClose = _this.option('onClose');\n\n if (_this.style === 'card') {\n _this.createButtons();\n }\n\n _this.setupEvents();\n return _this;\n }\n\n /**\n * Create the card style structure\n * @returns {void}\n */\n\n\n _createClass(Modal, [{\n key: 'createCardStructure',\n value: function createCardStructure() {\n /** @param {HTMLElement} */\n this.header = _core2.default.findOrCreateElement('.modal-card-head', this.content, 'header');\n\n /** @param {HTMLElement} */\n this.headerTitle = _core2.default.findOrCreateElement('.modal-card-title', this.header, 'p');\n if (!this.headerTitle.innerHTML) {\n this.headerTitle.innerHTML = this.title;\n }\n\n /** @param {HTMLElement} */\n this.cardBody = _core2.default.findOrCreateElement('.modal-card-body', this.content, 'section');\n if (!this.cardBody.innerHTML) {\n this.cardBody.innerHTML = this.body;\n }\n\n /** @param {HTMLElement} */\n this.footer = _core2.default.findOrCreateElement('.modal-card-foot', this.content, 'footer');\n }\n\n /**\n * Setup the events used by this modal.\n * @returns {void}\n */\n\n }, {\n key: 'setupEvents',\n value: function setupEvents() {\n var _this2 = this;\n\n if (this.closable) {\n this.closeButton.addEventListener('click', this.close.bind(this));\n\n document.addEventListener('keyup', function (event) {\n if (!_this2.element.classList.contains('is-active')) {\n return;\n }\n\n var key = event.key || event.keyCode;\n\n if (key === 'Escape' || key === 'Esc' || key === 27) {\n _this2.close();\n }\n });\n\n this.background.addEventListener('click', this.close.bind(this));\n }\n }\n\n /**\n * Go through the provided buttons option and create the buttons.\n * @returns {void}\n */\n\n }, {\n key: 'createButtons',\n value: function createButtons() {\n var buttonsConfig = this.option('buttons', []);\n var modal = this;\n\n buttonsConfig.forEach(function (buttonConfig) {\n var button = _core2.default.createElement('button', buttonConfig.classes);\n button.innerHTML = buttonConfig.label;\n\n button.addEventListener('click', function (event) {\n buttonConfig.onClick(event);\n });\n\n modal.footer.appendChild(button);\n });\n }\n\n /**\n * Open the modal\n * @returns {void}\n */\n\n }, {\n key: 'open',\n value: function open() {\n this.element.classList.add('is-active');\n document.body.classList.add('is-clipped');\n\n if (this.onOpen) {\n this.onOpen(this);\n }\n }\n\n /**\n * Close the modal\n * @returns {void} \n */\n\n }, {\n key: 'close',\n value: function close() {\n this.element.classList.remove('is-active');\n document.body.classList.remove('is-clipped');\n\n if (this.onClose) {\n this.onClose(this);\n }\n }\n\n /**\n * Destroy this modal, unregistering element references and removing the modal.\n * @returns {void}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.element.remove();\n\n this.parent = null;\n this.element = null;\n this.background = null;\n this.content = null;\n\n if (this.style === 'card') {\n this.header = null;\n this.headerTitle = null;\n this.cardBody = null;\n this.footer = null;\n }\n\n if (this.closable) {\n this.closeButton = null;\n }\n\n this.options = [];\n }\n }]);\n\n return Modal;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('modal', Modal);\n\nexports.default = Modal;\n\n//# sourceURL=webpack://Bulma/./src/plugins/modal.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Navbar\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Navbar = function (_Plugin) {\n _inherits(Navbar, _Plugin);\n\n _createClass(Navbar, null, [{\n key: 'getRootClass',\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n value: function getRootClass() {\n return 'navbar';\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this instance\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n new Navbar({\n element: element,\n sticky: element.hasAttribute('data-sticky') ? true : false,\n stickyOffset: element.hasAttribute('data-sticky-offset') ? element.getAttribute('data-sticky-offset') : 0,\n hideOnScroll: element.hasAttribute('data-hide-on-scroll') ? true : false,\n tolerance: element.hasAttribute('data-tolerance') ? element.getAttribute('data-tolerance') : 0,\n shadow: element.hasAttribute('data-sticky-shadow') ? true : false\n });\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n sticky: false,\n stickyOffset: 0,\n hideOnScroll: false,\n tolerance: 0,\n shadow: false\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created plugin instance\n */\n\n }]);\n\n function Navbar(options) {\n _classCallCheck(this, Navbar);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (Navbar.__proto__ || Object.getPrototypeOf(Navbar)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * The root navbar element.\n * @type {HTMLElement}\n */\n _this.element = _this.option('element');\n\n /**\n * The element used for the trigger.\n * @type {HTMLElement}\n */\n _this.trigger = _this.element.querySelector('.navbar-burger'),\n\n /**\n * The target element.\n * @type {HTMLELement}\n */\n _this.target = _this.element.querySelector('.navbar-menu');\n\n /**\n * Should this navbar stick to the top of the page?\n * @type {boolean}\n */\n _this.sticky = _this.option('sticky');\n\n /**\n * The offset in pixels before the navbar will stick to the top of the page\n * @type {number}\n */\n _this.stickyOffset = parseInt(_this.option('stickyOffset'));\n\n /**\n * Should the navbar hide when scrolling? Note: this just applies a 'is-hidden-scroll' class.\n * @type {boolean}\n */\n _this.hideOnScroll = _this.option('hideOnScroll');\n\n /**\n * The amount of tolerance required before checking the navbar should hide/show\n * @type {number}\n */\n _this.tolerance = _this.option('tolerance');\n\n /**\n * Add a shadow when the navbar is sticky?\n * @type {boolean}\n */\n _this.shadow = _this.option('shadow');\n\n /**\n * The last scroll Y known, this is used to calculate scroll direction\n * @type {number}\n */\n _this.lastScrollY = 0;\n\n _this.registerEvents();\n return _this;\n }\n\n /**\n * Register all the events this module needs.\n * @return {undefined}\n */\n\n\n _createClass(Navbar, [{\n key: 'registerEvents',\n value: function registerEvents() {\n this.trigger.addEventListener('click', this.handleTriggerClick.bind(this));\n\n if (this.sticky) {\n window.addEventListener('scroll', this.handleScroll.bind(this));\n }\n }\n\n /**\n * Handle the click event on the trigger.\n * @return {undefined}\n */\n\n }, {\n key: 'handleTriggerClick',\n value: function handleTriggerClick() {\n if (this.target.classList.contains('is-active')) {\n this.target.classList.remove('is-active');\n this.trigger.classList.remove('is-active');\n } else {\n this.target.classList.add('is-active');\n this.trigger.classList.add('is-active');\n }\n }\n\n /**\n * Handle the scroll event\n * @return {undefined}\n */\n\n }, {\n key: 'handleScroll',\n value: function handleScroll() {\n this.toggleSticky(window.pageYOffset);\n }\n\n /**\n * Toggle the navbar's sticky state\n * @param {number} scrollY The amount of pixels that has been scrolled\n * @return {undefined}\n */\n\n }, {\n key: 'toggleSticky',\n value: function toggleSticky(scrollY) {\n if (scrollY > this.stickyOffset) {\n this.element.classList.add('is-fixed-top');\n document.body.classList.add('has-navbar-fixed-top');\n\n if (this.shadow) {\n this.element.classList.add('has-shadow');\n }\n } else {\n this.element.classList.remove('is-fixed-top');\n document.body.classList.remove('has-navbar-fixed-top');\n\n if (this.shadow) {\n this.element.classList.remove('has-shadow');\n }\n }\n\n if (this.hideOnScroll) {\n var scrollDirection = this.calculateScrollDirection(scrollY, this.lastScrollY);\n var triggeredTolerance = this.difference(scrollY, this.lastScrollY) >= this.tolerance;\n\n if (triggeredTolerance) {\n if (scrollDirection === 'down') {\n this.element.classList.add('is-hidden-scroll');\n } else {\n this.element.classList.remove('is-hidden-scroll');\n }\n }\n\n this.lastScrollY = scrollY;\n }\n }\n }, {\n key: 'difference',\n value: function difference(a, b) {\n if (a > b) {\n return a - b;\n } else {\n return b - a;\n }\n }\n }, {\n key: 'calculateScrollDirection',\n value: function calculateScrollDirection(currentY, lastY) {\n return currentY >= lastY ? 'down' : 'up';\n }\n }]);\n\n return Navbar;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('navbar', Navbar);\n\nexports.default = Navbar;\n\n//# sourceURL=webpack:///./src/plugins/navbar.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Navbar\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Navbar = function (_Plugin) {\n _inherits(Navbar, _Plugin);\n\n _createClass(Navbar, null, [{\n key: 'getRootClass',\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n value: function getRootClass() {\n return 'navbar';\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this instance\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n new Navbar({\n element: element,\n sticky: element.hasAttribute('data-sticky') ? true : false,\n stickyOffset: element.hasAttribute('data-sticky-offset') ? element.getAttribute('data-sticky-offset') : 0,\n hideOnScroll: element.hasAttribute('data-hide-on-scroll') ? true : false,\n tolerance: element.hasAttribute('data-tolerance') ? element.getAttribute('data-tolerance') : 0,\n shadow: element.hasAttribute('data-sticky-shadow') ? true : false\n });\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n sticky: false,\n stickyOffset: 0,\n hideOnScroll: false,\n tolerance: 0,\n shadow: false\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created plugin instance\n */\n\n }]);\n\n function Navbar(options) {\n _classCallCheck(this, Navbar);\n\n // Work out the parent if it hasn't been supplied as an option.\n var _this = _possibleConstructorReturn(this, (Navbar.__proto__ || Object.getPrototypeOf(Navbar)).call(this, options));\n\n if (_this.parent === null) {\n _this.parent = _this.option('element').parentNode;\n }\n\n /**\n * The root navbar element.\n * @type {HTMLElement}\n */\n _this.element = _this.option('element');\n\n /**\n * The element used for the trigger.\n * @type {HTMLElement}\n */\n _this.trigger = _this.element.querySelector('.navbar-burger'),\n\n /**\n * The target element.\n * @type {HTMLELement}\n */\n _this.target = _this.element.querySelector('.navbar-menu');\n\n /**\n * Should this navbar stick to the top of the page?\n * @type {boolean}\n */\n _this.sticky = _this.option('sticky');\n\n /**\n * The offset in pixels before the navbar will stick to the top of the page\n * @type {number}\n */\n _this.stickyOffset = parseInt(_this.option('stickyOffset'));\n\n /**\n * Should the navbar hide when scrolling? Note: this just applies a 'is-hidden-scroll' class.\n * @type {boolean}\n */\n _this.hideOnScroll = _this.option('hideOnScroll');\n\n /**\n * The amount of tolerance required before checking the navbar should hide/show\n * @type {number}\n */\n _this.tolerance = _this.option('tolerance');\n\n /**\n * Add a shadow when the navbar is sticky?\n * @type {boolean}\n */\n _this.shadow = _this.option('shadow');\n\n /**\n * The last scroll Y known, this is used to calculate scroll direction\n * @type {number}\n */\n _this.lastScrollY = 0;\n\n _this.registerEvents();\n return _this;\n }\n\n /**\n * Register all the events this module needs.\n * @return {undefined}\n */\n\n\n _createClass(Navbar, [{\n key: 'registerEvents',\n value: function registerEvents() {\n this.trigger.addEventListener('click', this.handleTriggerClick.bind(this));\n\n if (this.sticky) {\n window.addEventListener('scroll', this.handleScroll.bind(this));\n }\n }\n\n /**\n * Handle the click event on the trigger.\n * @return {undefined}\n */\n\n }, {\n key: 'handleTriggerClick',\n value: function handleTriggerClick() {\n if (this.target.classList.contains('is-active')) {\n this.target.classList.remove('is-active');\n this.trigger.classList.remove('is-active');\n } else {\n this.target.classList.add('is-active');\n this.trigger.classList.add('is-active');\n }\n }\n\n /**\n * Handle the scroll event\n * @return {undefined}\n */\n\n }, {\n key: 'handleScroll',\n value: function handleScroll() {\n this.toggleSticky(window.pageYOffset);\n }\n\n /**\n * Toggle the navbar's sticky state\n * @param {number} scrollY The amount of pixels that has been scrolled\n * @return {undefined}\n */\n\n }, {\n key: 'toggleSticky',\n value: function toggleSticky(scrollY) {\n if (scrollY > this.stickyOffset) {\n this.element.classList.add('is-fixed-top');\n document.body.classList.add('has-navbar-fixed-top');\n\n if (this.shadow) {\n this.element.classList.add('has-shadow');\n }\n } else {\n this.element.classList.remove('is-fixed-top');\n document.body.classList.remove('has-navbar-fixed-top');\n\n if (this.shadow) {\n this.element.classList.remove('has-shadow');\n }\n }\n\n if (this.hideOnScroll) {\n var scrollDirection = this.calculateScrollDirection(scrollY, this.lastScrollY);\n var triggeredTolerance = this.difference(scrollY, this.lastScrollY) >= this.tolerance;\n\n if (triggeredTolerance) {\n if (scrollDirection === 'down') {\n this.element.classList.add('is-hidden-scroll');\n } else {\n this.element.classList.remove('is-hidden-scroll');\n }\n }\n\n this.lastScrollY = scrollY;\n }\n }\n }, {\n key: 'difference',\n value: function difference(a, b) {\n if (a > b) {\n return a - b;\n } else {\n return b - a;\n }\n }\n }, {\n key: 'calculateScrollDirection',\n value: function calculateScrollDirection(currentY, lastY) {\n return currentY >= lastY ? 'down' : 'up';\n }\n }]);\n\n return Navbar;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('navbar', Navbar);\n\nexports.default = Navbar;\n\n//# sourceURL=webpack://Bulma/./src/plugins/navbar.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _plugin = __webpack_require__(/*! ./plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module DismissableComponent\n * @since 0.2.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar DismissableComponent = function (_Plugin) {\n _inherits(DismissableComponent, _Plugin);\n\n _createClass(DismissableComponent, null, [{\n key: 'defaultOptions',\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n value: function defaultOptions() {\n return {\n isDismissable: false,\n destroyOnDismiss: true,\n element: null\n };\n }\n\n /**\n * Plugin constructor\n * @param {string} name Plugin's name\n * @param {Object} options Plugin's options\n * @return {this} The new plugin instance\n */\n\n }]);\n\n function DismissableComponent(name, options) {\n _classCallCheck(this, DismissableComponent);\n\n /**\n * The name of this component, this will be used as the root class\n * @type {string}\n */\n var _this = _possibleConstructorReturn(this, (DismissableComponent.__proto__ || Object.getPrototypeOf(DismissableComponent)).call(this, options));\n\n _this.name = name;\n\n /**\n * Body text.\n * @type {string}\n */\n _this.body = _this.option('body');\n\n /**\n * Color modifier.\n * @type {string} Possible values are null, primary, info, success, warning, danger\n */\n _this.color = _this.option('color');\n\n /**\n * How long to wait before auto dismissing the component.\n * @type {int|null} If null component must be dismissed manually.\n */\n _this.dismissInterval = _this.option('dismissInterval') ? _this.createDismissInterval(_this.option('dismissInterval')) : null;\n\n /**\n * Does this component have a dismiss button?\n * @type {Boolean}\n */\n _this.isDismissable = _this.option('isDismissable');\n\n /**\n * Should this component be destroyed when it is dismissed.\n * @type {Boolean}\n */\n _this.destroyOnDismiss = _this.option('destroyOnDismiss');\n\n /**\n * The root element.\n * @type {HTMLElement|null} If this is not provided a new element will be created.\n */\n _this.element = _this.option('element');\n\n if (!_this.element) {\n _this.createRootElement();\n _this.parent.appendChild(_this.element);\n }\n\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element used to close the component.\n * @type {HTMLElement}\n */\n _this.closeButton = _this.option('closeButton', _this.createCloseButton());\n\n if (_this.body) {\n _this.insertBody();\n }\n\n if (_this.color) {\n _this.setColor();\n }\n return _this;\n }\n\n /**\n * Create the main element.\n * @return {undefined}\n */\n\n\n _createClass(DismissableComponent, [{\n key: 'createRootElement',\n value: function createRootElement() {\n this.element = document.createElement('div');\n\n this.element.classList.add(this.name);\n this.hide();\n }\n\n /**\n * Show the component.\n * @return {undefined}\n */\n\n }, {\n key: 'show',\n value: function show() {\n this.element.classList.remove('is-hidden');\n }\n\n /**\n * Hide the component.\n * @return {undefined}\n */\n\n }, {\n key: 'hide',\n value: function hide() {\n this.element.classList.add('is-hidden');\n }\n\n /**\n * Insert the body text into the component.\n * @return {undefined}\n */\n\n }, {\n key: 'insertBody',\n value: function insertBody() {\n this.element.innerHTML = this.body;\n }\n\n /**\n * Create the element that will be used to close the component.\n * @return {HTMLElement} The newly created close button\n */\n\n }, {\n key: 'createCloseButton',\n value: function createCloseButton() {\n var closeButton = document.createElement('button');\n closeButton.setAttribute('type', 'button');\n closeButton.classList.add('delete');\n\n return closeButton;\n }\n\n /**\n * Create an interval to dismiss the component after the set number of ms.\n * @param {int} interval The time to wait before dismissing the component\n * @return {undefined}\n */\n\n }, {\n key: 'createDismissInterval',\n value: function createDismissInterval(interval) {\n var _this2 = this;\n\n return setInterval(function () {\n _this2.handleCloseEvent();\n }, interval);\n }\n\n /**\n * Insert the close button before our content.\n * @return {undefined}\n */\n\n }, {\n key: 'prependCloseButton',\n value: function prependCloseButton() {\n this.element.insertBefore(this.closeButton, this.element.firstChild);\n }\n\n /**\n * Setup the event listener for the close button.\n * @return {undefined}\n */\n\n }, {\n key: 'setupCloseEvent',\n value: function setupCloseEvent() {\n this.closeButton.addEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n /**\n * Handle the event when our close button is clicked.\n * @return {undefined}\n */\n\n }, {\n key: 'handleCloseEvent',\n value: function handleCloseEvent() {\n if (this.destroyOnDismiss) {\n this.destroy();\n } else {\n this.hide();\n }\n }\n\n /**\n * Set the colour of the component.\n * @return {undefined}\n */\n\n }, {\n key: 'setColor',\n value: function setColor() {\n this.element.classList.add('is-' + this.color);\n }\n\n /**\n * Destroy the component, removing the event listener, interval and element.\n * @return {undefined}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n if (this.closeButton) {\n this.closeButton.removeEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n clearInterval(this.dismissInterval);\n\n this.parent.removeChild(this.element);\n this.parent = null;\n this.element = null;\n }\n }]);\n\n return DismissableComponent;\n}(_plugin2.default);\n\nexports.default = DismissableComponent;\n\n//# sourceURL=webpack:///./src/dismissableComponent.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _plugin = __webpack_require__(/*! ./plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module DismissableComponent\n * @since 0.2.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar DismissableComponent = function (_Plugin) {\n _inherits(DismissableComponent, _Plugin);\n\n _createClass(DismissableComponent, null, [{\n key: 'defaultOptions',\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n value: function defaultOptions() {\n return {\n isDismissable: false,\n destroyOnDismiss: true,\n element: null\n };\n }\n\n /**\n * Plugin constructor\n * @param {string} name Plugin's name\n * @param {Object} options Plugin's options\n * @return {this} The new plugin instance\n */\n\n }]);\n\n function DismissableComponent(name, options) {\n _classCallCheck(this, DismissableComponent);\n\n /**\n * The name of this component, this will be used as the root class\n * @type {string}\n */\n var _this = _possibleConstructorReturn(this, (DismissableComponent.__proto__ || Object.getPrototypeOf(DismissableComponent)).call(this, options));\n\n _this.name = name;\n\n /**\n * Body text.\n * @type {string}\n */\n _this.body = _this.option('body');\n\n /**\n * Color modifier.\n * @type {string} Possible values are null, primary, info, success, warning, danger\n */\n _this.color = _this.option('color');\n\n /**\n * How long to wait before auto dismissing the component.\n * @type {int|null} If null component must be dismissed manually.\n */\n _this.dismissInterval = _this.option('dismissInterval') ? _this.createDismissInterval(_this.option('dismissInterval')) : null;\n\n /**\n * Does this component have a dismiss button?\n * @type {Boolean}\n */\n _this.isDismissable = _this.option('isDismissable');\n\n /**\n * Should this component be destroyed when it is dismissed.\n * @type {Boolean}\n */\n _this.destroyOnDismiss = _this.option('destroyOnDismiss');\n\n /**\n * The root element.\n * @type {HTMLElement|null} If this is not provided a new element will be created.\n */\n _this.element = _this.option('element');\n\n if (!_this.element) {\n _this.createRootElement();\n _this.parent.appendChild(_this.element);\n }\n\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * The element used to close the component.\n * @type {HTMLElement}\n */\n _this.closeButton = _this.option('closeButton', _this.createCloseButton());\n\n if (_this.body) {\n _this.insertBody();\n }\n\n if (_this.color) {\n _this.setColor();\n }\n return _this;\n }\n\n /**\n * Create the main element.\n * @return {undefined}\n */\n\n\n _createClass(DismissableComponent, [{\n key: 'createRootElement',\n value: function createRootElement() {\n this.element = document.createElement('div');\n\n this.element.classList.add(this.name);\n this.hide();\n }\n\n /**\n * Show the component.\n * @return {undefined}\n */\n\n }, {\n key: 'show',\n value: function show() {\n this.element.classList.remove('is-hidden');\n }\n\n /**\n * Hide the component.\n * @return {undefined}\n */\n\n }, {\n key: 'hide',\n value: function hide() {\n this.element.classList.add('is-hidden');\n }\n\n /**\n * Insert the body text into the component.\n * @return {undefined}\n */\n\n }, {\n key: 'insertBody',\n value: function insertBody() {\n this.element.innerHTML = this.body;\n }\n\n /**\n * Create the element that will be used to close the component.\n * @return {HTMLElement} The newly created close button\n */\n\n }, {\n key: 'createCloseButton',\n value: function createCloseButton() {\n var closeButton = document.createElement('button');\n closeButton.setAttribute('type', 'button');\n closeButton.classList.add('delete');\n\n return closeButton;\n }\n\n /**\n * Create an interval to dismiss the component after the set number of ms.\n * @param {int} interval The time to wait before dismissing the component\n * @return {undefined}\n */\n\n }, {\n key: 'createDismissInterval',\n value: function createDismissInterval(interval) {\n var _this2 = this;\n\n return setInterval(function () {\n _this2.handleCloseEvent();\n }, interval);\n }\n\n /**\n * Insert the close button before our content.\n * @return {undefined}\n */\n\n }, {\n key: 'prependCloseButton',\n value: function prependCloseButton() {\n this.element.insertBefore(this.closeButton, this.element.firstChild);\n }\n\n /**\n * Setup the event listener for the close button.\n * @return {undefined}\n */\n\n }, {\n key: 'setupCloseEvent',\n value: function setupCloseEvent() {\n this.closeButton.addEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n /**\n * Handle the event when our close button is clicked.\n * @return {undefined}\n */\n\n }, {\n key: 'handleCloseEvent',\n value: function handleCloseEvent() {\n if (this.destroyOnDismiss) {\n this.destroy();\n } else {\n this.hide();\n }\n }\n\n /**\n * Set the colour of the component.\n * @return {undefined}\n */\n\n }, {\n key: 'setColor',\n value: function setColor() {\n this.element.classList.add('is-' + this.color);\n }\n\n /**\n * Destroy the component, removing the event listener, interval and element.\n * @return {undefined}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n if (this.closeButton) {\n this.closeButton.removeEventListener('click', this.handleCloseEvent.bind(this));\n }\n\n clearInterval(this.dismissInterval);\n\n this.parent.removeChild(this.element);\n this.parent = null;\n this.element = null;\n }\n }]);\n\n return DismissableComponent;\n}(_plugin2.default);\n\nexports.default = DismissableComponent;\n\n//# sourceURL=webpack://Bulma/./src/dismissableComponent.js?");

@@ -123,3 +133,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -136,6 +146,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _dismissableComponent = __webpack_require__(/*! ../dismissableComponent */ \"./src/dismissableComponent.js\");\n\nvar _dismissableComponent2 = _interopRequireDefault(_dismissableComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Notification\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n * @extends DismissableComponent\n */\nvar Notification = function (_DismissableComponent) {\n _inherits(Notification, _DismissableComponent);\n\n _createClass(Notification, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The options object for this instance\n * @return {Notification} The newly created instance\n */\n value: function create(options) {\n return new Notification(options);\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this instance\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n var closeBtn = element.querySelector('.delete');\n var dismissInterval = element.getAttribute('data-dismiss-interval');\n\n var options = {\n body: null,\n parent: element.parentNode,\n element: element,\n closeButton: closeBtn,\n isDismissable: !!closeBtn,\n destroyOnDismiss: true\n };\n\n if (dismissInterval) {\n options['dismissInterval'] = parseInt(dismissInterval);\n }\n\n new Notification(options);\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'notification';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Notification(options) {\n _classCallCheck(this, Notification);\n\n // TODO: Move this into the DismissableComponent class. Due to the required\n // changes between different components, we may need a way to trigger this\n // when the component is ready.\n var _this = _possibleConstructorReturn(this, (Notification.__proto__ || Object.getPrototypeOf(Notification)).call(this, 'notification', options));\n\n if (_this.isDismissable) {\n if (!options.hasOwnProperty('closeButton')) {\n _this.prependCloseButton();\n }\n\n _this.setupCloseEvent();\n }\n return _this;\n }\n\n return Notification;\n}(_dismissableComponent2.default);\n\n_core2.default.registerPlugin('notification', Notification);\n\nexports.default = Notification;\n\n//# sourceURL=webpack:///./src/plugins/notification.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _dismissableComponent = __webpack_require__(/*! ../dismissableComponent */ \"./src/dismissableComponent.js\");\n\nvar _dismissableComponent2 = _interopRequireDefault(_dismissableComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Notification\n * @since 0.1.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n * @extends DismissableComponent\n */\nvar Notification = function (_DismissableComponent) {\n _inherits(Notification, _DismissableComponent);\n\n _createClass(Notification, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The options object for this instance\n * @return {Notification} The newly created instance\n */\n value: function create(options) {\n return new Notification(options);\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this instance\n * @return {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n var closeBtn = element.querySelector('.delete');\n var dismissInterval = element.getAttribute('data-dismiss-interval');\n\n var options = {\n body: null,\n parent: element.parentNode,\n element: element,\n closeButton: closeBtn,\n isDismissable: !!closeBtn,\n destroyOnDismiss: true\n };\n\n if (dismissInterval) {\n options['dismissInterval'] = parseInt(dismissInterval);\n }\n\n new Notification(options);\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'notification';\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Notification(options) {\n _classCallCheck(this, Notification);\n\n // TODO: Move this into the DismissableComponent class. Due to the required\n // changes between different components, we may need a way to trigger this\n // when the component is ready.\n var _this = _possibleConstructorReturn(this, (Notification.__proto__ || Object.getPrototypeOf(Notification)).call(this, 'notification', options));\n\n if (_this.isDismissable) {\n if (!options.hasOwnProperty('closeButton')) {\n _this.prependCloseButton();\n }\n\n _this.setupCloseEvent();\n }\n return _this;\n }\n\n return Notification;\n}(_dismissableComponent2.default);\n\n_core2.default.registerPlugin('notification', Notification);\n\nexports.default = Notification;\n\n//# sourceURL=webpack://Bulma/./src/plugins/notification.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -1,2 +0,12 @@

/******/ (function(modules) { // webpackBootstrap
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("Bulma", [], factory);
else if(typeof exports === 'object')
exports["Bulma"] = factory();
else
root["Bulma"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache

@@ -97,3 +107,3 @@ /******/ var installedModules = {};

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.7.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack:///./src/core.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Bulma = {\n /**\n * Current BulmaJS version.\n * @type {String}\n */\n VERSION: '0.8.0',\n\n /**\n * An index of the registered plugins\n * @type {Object}\n */\n plugins: {},\n\n /**\n * Helper method to create a new plugin.\n * @param {String} key The plugin's key\n * @param {Object} options The options to be passed to the plugin\n * @return {Object} The newly created plugin instance\n */\n create: function create(key, options) {\n if (!key || !Bulma.plugins.hasOwnProperty(key)) {\n throw new Error('[BulmaJS] A plugin with the key \\'' + key + '\\' has not been registered.');\n }\n\n return Bulma.plugins[key].handler.create(options);\n },\n\n\n /**\n * Register a new plugin\n * @param {String} key The key to register the plugin under\n * @param {Object} plugin The plugin's main constructor\n * @param {number?} priority The priority this plugin has over other plugins. Higher means the plugin is registered before lower.\n * @return {undefined}\n */\n registerPlugin: function registerPlugin(key, plugin) {\n var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!key) {\n throw new Error('[BulmaJS] Key attribute is required.');\n }\n\n this.plugins[key] = {\n priority: priority,\n handler: plugin\n };\n },\n\n\n /**\n * Parse the HTML DOM searching for data-bulma attributes. We will then pass\n * each element to the appropriate plugin to handle the required processing.\n * \n * @return {undefined}\n */\n traverseDOM: function traverseDOM() {\n var _this = this;\n\n var elements = document.querySelectorAll(this.getPluginClasses());\n\n elements.forEach(function (element) {\n if (element.hasAttribute('data-bulma-attached')) {\n return;\n }\n\n var plugins = _this.findCompatiblePlugins(element);\n\n plugins.forEach(function (plugin) {\n plugin.handler.parse(element);\n });\n });\n },\n\n\n /**\n * Return a string of classes to search the DOM for\n * @returns {string} The string containing the classes\n */\n getPluginClasses: function getPluginClasses() {\n var classes = [];\n\n for (var key in this.plugins) {\n if (!this.plugins[key].handler.getRootClass()) {\n continue;\n }\n\n classes.push('.' + this.plugins[key].handler.getRootClass());\n }\n\n return classes.join(',');\n },\n\n\n /**\n * Search our plugins and find one that matches the element\n * @param {HTMLElement} element The element we want to match for\n * @returns {Object} The plugin that matched\n */\n findCompatiblePlugins: function findCompatiblePlugins(element) {\n var _this2 = this;\n\n var compatiblePlugins = [];\n\n var sortedPlugins = Object.keys(this.plugins).sort(function (a, b) {\n return _this2.plugins[a].priority < _this2.plugins[b].priority;\n });\n\n sortedPlugins.forEach(function (key) {\n if (element.classList.contains(_this2.plugins[key].handler.getRootClass())) {\n compatiblePlugins.push(_this2.plugins[key]);\n }\n });\n\n return compatiblePlugins;\n },\n\n\n /**\n * Create an element and assign classes\n * @param {string} name The name of the element to create\n * @param {array} classes An array of classes to add to the element\n * @return {HTMLElement} The newly created element\n */\n createElement: function createElement(name, classes) {\n if (!classes) {\n classes = [];\n }\n\n if (typeof classes === 'string') {\n classes = [classes];\n }\n\n var elem = document.createElement(name);\n\n classes.forEach(function (className) {\n elem.classList.add(className);\n });\n\n return elem;\n },\n\n\n /**\n * Helper method to normalise a plugin finding an element.\n * @param {string} query The CSS selector to query for\n * @param {HTMLElement|null} context The element we want to search within\n * @param {boolean} nullable Do we except a null response?\n * @returns {null|HTMLElement} The element we found, or null if allowed.\n * @throws {TypeError}\n */\n findElement: function findElement(query) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!query && !nullable) {\n throw new TypeError('First argument to `findElement` required. Null given.');\n }\n\n if (!query) {\n return null;\n }\n\n if (query.toString() === '[object HTMLElement]') {\n return query;\n }\n\n return context.querySelector(query);\n },\n\n\n /**\n * Find an element otherwise create a new one.\n * @param {string} query The CSS selector query to find\n * @param {HTMLElement|null} parent The parent we want to search/create within\n * @param {[string]} elemName The name of the element to create\n * @param {[array]} classes The classes to apply to the element\n * @returns {HTMLElement} The HTML element we found or created\n */\n findOrCreateElement: function findOrCreateElement(query) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var elemName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'div';\n var classes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var elem = this.findElement(query, parent);\n\n if (!elem) {\n if (classes.length === 0) {\n classes = query.split('.').filter(function (item) {\n return item;\n });\n }\n\n var newElem = this.createElement(elemName, classes);\n\n if (parent) {\n parent.appendChild(newElem);\n }\n\n return newElem;\n }\n\n return elem;\n }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n Bulma.traverseDOM();\n});\n\nexports.default = Bulma;\n\n//# sourceURL=webpack://Bulma/./src/core.js?");

@@ -110,3 +120,3 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack:///./src/plugin.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base plugin class. Provides basic, common functionality.\n * @class Plugin\n * @since 0.7.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Plugin = function () {\n _createClass(Plugin, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object?} options The options object for this instance\n * @return {Plugin|boolean} The newly created instance or false if method is not used\n */\n value: function create() {\n return false;\n }\n\n /**\n * Handle parsing the DOM elements.\n * @param {HTMLElement?} element The root element for this instance\n * @return {Plugin|boolean} The new plugin instance, or false if method is not used\n */\n\n }, {\n key: 'parse',\n value: function parse() {\n return false;\n }\n\n /**\n * Returns a string containing the element class this plugin supports.\n * @returns {string} The class name.\n * @throws {Error} Thrown if this method has not been replaced.\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n throw new Error('The getRootClass method should have been replaced by the plugin being created.');\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {};\n }\n\n /**\n * Create a plugin.\n * @param {object} options The options for this plugin\n */\n\n }]);\n\n function Plugin() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Plugin);\n\n this.options = _extends({}, this.constructor.defaultOptions(), options);\n\n this.parent = this.option('parent', document.body);\n }\n\n /**\n * Find an option by key.\n * @param {string} key The option key to find.\n * @param {any} defaultValue Default value if an option with key is not found.\n * @returns {any} The value of the option we found, or defaultValue if none found.\n */\n\n\n _createClass(Plugin, [{\n key: 'option',\n value: function option(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this.options.hasOwnProperty(key) || this.options[key] === null) {\n if (typeof defaultValue === 'function') {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n return this.options[key];\n }\n }]);\n\n return Plugin;\n}();\n\nexports.default = Plugin;\n\n//# sourceURL=webpack://Bulma/./src/plugin.js?");

@@ -123,6 +133,7 @@ /***/ }),

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Tabs\n * @since 0.4.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Tabs = function (_Plugin) {\n _inherits(Tabs, _Plugin);\n\n _createClass(Tabs, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The options object for this instance\n * @returns {Tabs} The newly created instance\n */\n value: function create(options) {\n return new Tabs(options);\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this instance\n * @returns {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n var hover = element.hasAttribute('data-hover') ? true : false;\n\n var options = {\n element: element,\n hover: hover\n };\n\n new Tabs(options);\n }\n\n /**\n * The root class used for initialisation\n * @returns {string} The class this plugin is responsible for\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'tabs-wrapper';\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n hover: false\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Tabs(options) {\n _classCallCheck(this, Tabs);\n\n /**\n * The root tab element\n * @param {HTMLElement}\n */\n var _this = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).call(this, options));\n\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * Whether the tabs should be changed when the nav item is hovered over\n * @param {boolean}\n */\n _this.hover = _this.option('hover');\n\n /**\n * The tab nav container\n * @param {HTMLElement}\n */\n _this.nav = _this.findNav();\n\n /**\n * The tab's nav items\n * @param {HTMLElement[]}\n */\n _this.navItems = _this.findNavItems();\n\n /**\n * The tab content container\n * @param {HTMLElement}\n */\n _this.content = _this.findContent();\n\n /**\n * The tab's content items\n * @param {HTMLElement[]}\n */\n _this.contentItems = _this.findContentItems();\n\n _this.setupNavEvents();\n return _this;\n }\n\n /**\n * Find the tab navigation container.\n * @returns {HTMLElement} The navigation container\n */\n\n\n _createClass(Tabs, [{\n key: 'findNav',\n value: function findNav() {\n return this.element.querySelector('.tabs');\n }\n\n /**\n * Find each individual tab item\n * @returns {HTMLElement[]} An array of the found items\n */\n\n }, {\n key: 'findNavItems',\n value: function findNavItems() {\n return this.nav.querySelectorAll('li');\n }\n\n /**\n * Find the tab content container.\n * @returns {HTMLElement} The content container\n */\n\n }, {\n key: 'findContent',\n value: function findContent() {\n return this.element.querySelector('.tabs-content');\n }\n\n /**\n * Find each individual content item\n * @returns {HTMLElement[]} An array of the found items\n */\n\n }, {\n key: 'findContentItems',\n value: function findContentItems() {\n // We have to use the root here as the querySelectorAll API doesn't\n // support using '>' as the first character. So we have to have a\n // class to start with.\n return this.element.querySelectorAll('.tabs-content > ul > li');\n }\n\n /**\n * Setup the events to handle tab changing\n * @returns {void}\n */\n\n }, {\n key: 'setupNavEvents',\n value: function setupNavEvents() {\n var _this2 = this;\n\n this.navItems.forEach(function (navItem, index) {\n navItem.addEventListener('click', function () {\n _this2.handleNavClick(navItem, index);\n });\n\n if (_this2.hover) {\n navItem.addEventListener('mouseover', function () {\n _this2.handleNavClick(navItem, index);\n });\n }\n });\n }\n\n /**\n * Handle the changing of the visible tab\n * @param {HTMLelement} navItem The nav item we are changing to\n * @param {number} index The internal index of the nav item we're changing to\n * @returns {void}\n */\n\n }, {\n key: 'handleNavClick',\n value: function handleNavClick(navItem, index) {\n this.navItems.forEach(function (navItem) {\n navItem.classList.remove('is-active');\n });\n\n this.contentItems.forEach(function (contentItem) {\n contentItem.classList.remove('is-active');\n });\n\n navItem.classList.add('is-active');\n this.contentItems[index].classList.add('is-active');\n }\n }]);\n\n return Tabs;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('tabs', Tabs);\n\nexports.default = Tabs;\n\n//# sourceURL=webpack:///./src/plugins/tabs.js?");
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _core = __webpack_require__(/*! ../core */ \"./src/core.js\");\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _plugin = __webpack_require__(/*! ../plugin */ \"./src/plugin.js\");\n\nvar _plugin2 = _interopRequireDefault(_plugin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @module Tabs\n * @since 0.4.0\n * @author Thomas Erbe <vizuaalog@gmail.com>\n */\nvar Tabs = function (_Plugin) {\n _inherits(Tabs, _Plugin);\n\n _createClass(Tabs, null, [{\n key: 'create',\n\n /**\n * Helper method used by the Bulma core to create a new instance.\n * @param {Object} options The options object for this instance\n * @returns {Tabs} The newly created instance\n */\n value: function create(options) {\n return new Tabs(options);\n }\n\n /**\n * Handle parsing the DOMs data attribute API.\n * @param {HTMLElement} element The root element for this instance\n * @returns {undefined}\n */\n\n }, {\n key: 'parse',\n value: function parse(element) {\n var hover = element.hasAttribute('data-hover') ? true : false;\n\n var options = {\n element: element,\n hover: hover\n };\n\n new Tabs(options);\n }\n\n /**\n * The root class used for initialisation\n * @returns {string} The class this plugin is responsible for\n */\n\n }, {\n key: 'getRootClass',\n value: function getRootClass() {\n return 'tabs-wrapper';\n }\n\n /**\n * Returns an object containing the default options for this plugin.\n * @returns {object} The default options object.\n */\n\n }, {\n key: 'defaultOptions',\n value: function defaultOptions() {\n return {\n hover: false\n };\n }\n\n /**\n * Plugin constructor\n * @param {Object} options The options object for this plugin\n * @return {this} The newly created instance\n */\n\n }]);\n\n function Tabs(options) {\n _classCallCheck(this, Tabs);\n\n /**\n * The root tab element\n * @param {HTMLElement}\n */\n var _this = _possibleConstructorReturn(this, (Tabs.__proto__ || Object.getPrototypeOf(Tabs)).call(this, options));\n\n _this.element = _this.option('element');\n _this.element.setAttribute('data-bulma-attached', 'attached');\n\n /**\n * Whether the tabs should be changed when the nav item is hovered over\n * @param {boolean}\n */\n _this.hover = _this.option('hover');\n\n /**\n * The tab nav container\n * @param {HTMLElement}\n */\n _this.nav = _this.findNav();\n\n /**\n * The tab's nav items\n * @param {HTMLElement[]}\n */\n _this.navItems = _this.findNavItems();\n\n /**\n * The tab content container\n * @param {HTMLElement}\n */\n _this.content = _this.findContent();\n\n /**\n * The tab's content items\n * @param {HTMLElement[]}\n */\n _this.contentItems = _this.findContentItems();\n\n _this.setupNavEvents();\n return _this;\n }\n\n /**\n * Find the tab navigation container.\n * @returns {HTMLElement} The navigation container\n */\n\n\n _createClass(Tabs, [{\n key: 'findNav',\n value: function findNav() {\n return this.element.querySelector('.tabs');\n }\n\n /**\n * Find each individual tab item\n * @returns {HTMLElement[]} An array of the found items\n */\n\n }, {\n key: 'findNavItems',\n value: function findNavItems() {\n return this.nav.querySelectorAll('li');\n }\n\n /**\n * Find the tab content container.\n * @returns {HTMLElement} The content container\n */\n\n }, {\n key: 'findContent',\n value: function findContent() {\n return this.element.querySelector('.tabs-content');\n }\n\n /**\n * Find each individual content item\n * @returns {HTMLElement[]} An array of the found items\n */\n\n }, {\n key: 'findContentItems',\n value: function findContentItems() {\n // We have to use the root here as the querySelectorAll API doesn't\n // support using '>' as the first character. So we have to have a\n // class to start with.\n return this.element.querySelectorAll('.tabs-content > ul > li');\n }\n\n /**\n * Setup the events to handle tab changing\n * @returns {void}\n */\n\n }, {\n key: 'setupNavEvents',\n value: function setupNavEvents() {\n var _this2 = this;\n\n this.navItems.forEach(function (navItem, index) {\n navItem.addEventListener('click', function () {\n _this2.handleNavClick(navItem, index);\n });\n\n if (_this2.hover) {\n navItem.addEventListener('mouseover', function () {\n _this2.handleNavClick(navItem, index);\n });\n }\n });\n }\n\n /**\n * Handle the changing of the visible tab\n * @param {HTMLelement} navItem The nav item we are changing to\n * @param {number} index The internal index of the nav item we're changing to\n * @returns {void}\n */\n\n }, {\n key: 'handleNavClick',\n value: function handleNavClick(navItem, index) {\n this.navItems.forEach(function (navItem) {\n navItem.classList.remove('is-active');\n });\n\n this.contentItems.forEach(function (contentItem) {\n contentItem.classList.remove('is-active');\n });\n\n navItem.classList.add('is-active');\n this.contentItems[index].classList.add('is-active');\n }\n }]);\n\n return Tabs;\n}(_plugin2.default);\n\n_core2.default.registerPlugin('tabs', Tabs);\n\nexports.default = Tabs;\n\n//# sourceURL=webpack://Bulma/./src/plugins/tabs.js?");
/***/ })
/******/ });
/******/ })["default"];
});

@@ -41,3 +41,3 @@ // Docs side nav

versions: function() {
return _.keys(this.items);
return _.keys(this.items).sort();
},

@@ -44,0 +44,0 @@

{
"name": "@vizuaalog/bulmajs",
"version": "0.7.0",
"version": "0.8.0",
"description": "Unofficial javascript extension to the awesome Bulma CSS framework.",

@@ -5,0 +5,0 @@ "main": "src/bulma.js",

@@ -6,2 +6,3 @@ ![BulmaJS Logo](https://github.com/VizuaaLOG/BulmaJS/blob/master/docs/assets/images/bulmajs-logo.png)

[![Build Status](https://travis-ci.org/VizuaaLOG/BulmaJS.svg?branch=master)](https://travis-ci.org/VizuaaLOG/BulmaJS)
[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)

@@ -8,0 +9,0 @@ This is an unofficial Javascript extension for the [Bulma CSS framework](http://bulma.io).

@@ -9,2 +9,3 @@ /* eslint no-unused-vars: 0 */

import Modal from './plugins/modal';
import Alert from './plugins/alert';
import File from './plugins/file';

@@ -16,2 +17,2 @@ import Tabs from './plugins/tabs';

window.Bulma = Bulma;
export default Bulma;

@@ -6,3 +6,3 @@ const Bulma = {

*/
VERSION: '0.7.0',
VERSION: '0.8.0',

@@ -9,0 +9,0 @@ /**

@@ -34,3 +34,3 @@ import Bulma from '../core';

return {
type: 'card',
style: 'card',
closable: true

@@ -49,3 +49,3 @@ };

/** @param {string} */
this.type = this.option('type');
this.style = this.option('style');

@@ -82,3 +82,3 @@ /** @param {HTMLElement} */

/** @param {HTMLElement} */
this.content = this.type === 'card' ? Bulma.findOrCreateElement('.modal-card', this.element) : Bulma.findOrCreateElement('.modal-content', this.element);
this.content = this.style === 'card' ? Bulma.findOrCreateElement('.modal-card', this.element) : Bulma.findOrCreateElement('.modal-content', this.element);

@@ -94,20 +94,4 @@ /** @param {boolean} */

if(this.type === 'card') {
/** @param {HTMLElement} */
this.header = Bulma.findOrCreateElement('.modal-card-head', this.content, 'header');
/** @param {HTMLElement} */
this.headerTitle = Bulma.findOrCreateElement('.modal-card-title', this.header, 'p');
if(!this.headerTitle.innerHTML) {
this.headerTitle.innerHTML = this.title;
}
/** @param {HTMLElement} */
this.cardBody = Bulma.findOrCreateElement('.modal-card-body', this.content, 'section');
if(!this.cardBody.innerHTML) {
this.cardBody.innerHTML = this.body;
}
/** @param {HTMLElement} */
this.footer = Bulma.findOrCreateElement('.modal-card-foot', this.content, 'footer');
if(this.style === 'card') {
this.createCardStructure();
} else {

@@ -121,3 +105,3 @@ if(!this.content.innerHTML) {

/** @param {HTMLElement} */
this.closeButton = this.type === 'card' ? Bulma.findOrCreateElement('.delete', this.header, 'button') : Bulma.findOrCreateElement('.modal-close', this.element, 'button');
this.closeButton = this.style === 'card' ? Bulma.findOrCreateElement('.delete', this.header, 'button') : Bulma.findOrCreateElement('.modal-close', this.element, 'button');
}

@@ -131,3 +115,3 @@

if(this.type === 'card') {
if(this.style === 'card') {
this.createButtons();

@@ -140,2 +124,26 @@ }

/**
* Create the card style structure
* @returns {void}
*/
createCardStructure() {
/** @param {HTMLElement} */
this.header = Bulma.findOrCreateElement('.modal-card-head', this.content, 'header');
/** @param {HTMLElement} */
this.headerTitle = Bulma.findOrCreateElement('.modal-card-title', this.header, 'p');
if(!this.headerTitle.innerHTML) {
this.headerTitle.innerHTML = this.title;
}
/** @param {HTMLElement} */
this.cardBody = Bulma.findOrCreateElement('.modal-card-body', this.content, 'section');
if(!this.cardBody.innerHTML) {
this.cardBody.innerHTML = this.body;
}
/** @param {HTMLElement} */
this.footer = Bulma.findOrCreateElement('.modal-card-foot', this.content, 'footer');
}
/**
* Setup the events used by this modal.

@@ -222,3 +230,3 @@ * @returns {void}

if(this.type === 'card') {
if(this.style === 'card') {
this.header = null;

@@ -225,0 +233,0 @@ this.headerTitle = null;

@@ -8,3 +8,7 @@ const path = require('path');

filename: '[name].js',
path: path.resolve(__dirname, 'dist')
path: path.resolve(__dirname, 'dist'),
library: 'Bulma',
libraryTarget: 'umd',
libraryExport: 'default',
umdNamedDefine: true
},

@@ -11,0 +15,0 @@ module: {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc