--- /dev/null
+/*
+ * Fuel UX Pillbox
+ * https://github.com/ExactTarget/fuelux
+ *
+ * Copyright (c) 2012 ExactTarget
+ * Licensed under the MIT license.
+ */
+
+define(['require','jquery'],function(require) {
+
+ var $ = require('jquery');
+
+
+ // PILLBOX CONSTRUCTOR AND PROTOTYPE
+
+ var Pillbox = function (element, options) {
+ this.$element = $(element);
+ this.options = $.extend({}, $.fn.pillbox.defaults, options);
+ this.$element.on('click', 'li', $.proxy(this.itemclicked, this));
+ };
+
+ Pillbox.prototype = {
+ constructor: Pillbox,
+
+ items: function() {
+ return this.$element.find('li').map(function() {
+ var $this = $(this);
+ return $.extend({ text: $this.text() }, $this.data());
+ }).get();
+ },
+
+ itemclicked: function (e) {
+ $(e.currentTarget).remove();
+ e.preventDefault();
+ }
+ };
+
+
+ // PILLBOX PLUGIN DEFINITION
+
+ $.fn.pillbox = function (option) {
+ var methodReturn;
+
+ var $set = this.each(function () {
+ var $this = $(this);
+ var data = $this.data('pillbox');
+ var options = typeof option === 'object' && option;
+
+ if (!data) $this.data('pillbox', (data = new Pillbox(this, options)));
+ if (typeof option === 'string') methodReturn = data[option]();
+ });
+
+ return (methodReturn === undefined) ? $set : methodReturn;
+ };
+
+ $.fn.pillbox.defaults = {};
+
+ $.fn.pillbox.Constructor = Pillbox;
+
+
+ // PILLBOX DATA-API
+
+ $(function () {
+ $('body').on('mousedown.pillbox.data-api', '.pillbox', function (e) {
+ var $this = $(this);
+ if ($this.data('pillbox')) return;
+ $this.pillbox($this.data());
+ });
+ });
+
+});
+