@namelivia/vue-components 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -283,7 +283,7 @@ staticRenderFns: [],
283
283
  };
284
284
 
285
285
  var MobileNavigationLinks = {
286
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"sm:hidden",attrs:{"id":"mobile-menu"}},[_c('div',{staticClass:"px-2 pt-2 pb-3 space-y-1"},_vm._l((_vm.links),function(link){return _c('mobile-navigation-link',{key:link.id,attrs:{"href":link.href,"text":link.text}})}),1)])},
286
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"enter-active-class":"transition-all","leave-active-class":"transition-all","enter-class":"opacity-0 scale-70","enter-to-class":"opacity-100 scale-100","leave-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-70"}},[(_vm.open)?_c('div',{staticClass:"sm:hidden",attrs:{"id":"mobile-menu"}},[_c('div',{staticClass:"px-2 pt-2 pb-3 space-y-1"},_vm._l((_vm.links),function(link){return _c('mobile-navigation-link',{key:link.id,attrs:{"href":link.href,"text":link.text}})}),1)]):_vm._e()])},
287
287
  staticRenderFns: [],
288
288
  components: {
289
289
  MobileNavigationLink: MobileNavigationLink,
@@ -292,6 +292,10 @@ staticRenderFns: [],
292
292
  links: {
293
293
  type: Array,
294
294
  },
295
+ open: {
296
+ type: Boolean,
297
+ default: false,
298
+ },
295
299
  },
296
300
  };
297
301
 
@@ -352,13 +356,23 @@ staticRenderFns: [],
352
356
  };
353
357
 
354
358
  var MobileMenuButton = {
355
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white",attrs:{"type":"button","aria-controls":"mobile-menu","aria-expanded":"false"}},[_c('span',{staticClass:"sr-only"},[_vm._v("Open main menu")]),_vm._v(" "),_c('svg',{staticClass:"block h-6 w-6",attrs:{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","stroke":"currentColor","aria-hidden":"true"}},[_c('path',{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2","d":"M4 6h16M4 12h16M4 18h16"}})]),_vm._v(" "),_c('svg',{staticClass:"hidden h-6 w-6",attrs:{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","stroke":"currentColor","aria-hidden":"true"}},[_c('path',{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2","d":"M6 18L18 6M6 6l12 12"}})])])},
359
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white",attrs:{"type":"button"},on:{"click":_vm.onClick}},[_c('svg',{staticClass:"block h-6 w-6",attrs:{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","stroke":"currentColor"}},[_c('path',{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2","d":"M4 6h16M4 12h16M4 18h16"}})])])},
356
360
  staticRenderFns: [],
357
- stub: 1
361
+ props: {
362
+ open: {
363
+ type: Boolean,
364
+ default: false
365
+ },
366
+ },
367
+ methods: {
368
+ onClick(evt) {
369
+ this.$emit('click', evt);
370
+ }
371
+ }
358
372
  };
359
373
 
360
374
  var Navbar = {
361
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:"bg-gray-800"},[_c('div',{staticClass:"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8"},[_c('div',{staticClass:"relative flex items-center justify-between h-16"},[_c('div',{staticClass:"absolute inset-y-0 left-0 flex items-center sm:hidden"},[_c('mobile-menu-button')],1),_vm._v(" "),_c('div',{staticClass:"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start"},[_c('navbar-title'),_vm._v(" "),_c('navigation-links',{attrs:{"links":_vm.links}})],1),_vm._v(" "),_c('right-content',{attrs:{"locale":_vm.locale,"current-user-email":_vm.currentUserEmail}})],1)]),_vm._v(" "),_c('mobile-navigation-links',{attrs:{"links":_vm.links}})],1)},
375
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:"bg-gray-800"},[_c('div',{staticClass:"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8"},[_c('div',{staticClass:"relative flex items-center justify-between h-16"},[_c('div',{staticClass:"absolute inset-y-0 left-0 flex items-center sm:hidden"},[_c('mobile-menu-button',{attrs:{"open":_vm.mobileMenuOpen},on:{"click":_vm.onMobileMenuClick}})],1),_vm._v(" "),_c('div',{staticClass:"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start"},[_c('navbar-title'),_vm._v(" "),_c('navigation-links',{attrs:{"links":_vm.links}})],1),_vm._v(" "),_c('right-content',{attrs:{"locale":_vm.locale,"current-user-email":_vm.currentUserEmail}})],1)]),_vm._v(" "),_c('mobile-navigation-links',{attrs:{"links":_vm.links,"open":_vm.mobileMenuOpen}})],1)},
362
376
  staticRenderFns: [],
363
377
  components: {
364
378
  NavbarTitle: NavbarTitle,
@@ -367,6 +381,11 @@ staticRenderFns: [],
367
381
  RightContent: RightContent,
368
382
  MobileMenuButton: MobileMenuButton,
369
383
  },
384
+ data() {
385
+ return {
386
+ mobileMenuOpen: false,
387
+ }
388
+ },
370
389
  props: {
371
390
  links: {
372
391
  type: Array,
@@ -378,6 +397,11 @@ staticRenderFns: [],
378
397
  type: String,
379
398
  },
380
399
  },
400
+ methods: {
401
+ onMobileMenuClick() {
402
+ this.mobileMenuOpen = !this.mobileMenuOpen;
403
+ },
404
+ }
381
405
  };
382
406
 
383
407
  export { Card, CardBody, CardGrid, CardImage, CheckBoxInput, DangerButton, ImageInput, Loading, Navbar, NumberInput, RegularButton, ResetButton, SecondaryButton, SectionTitle, Selector, SubmitButton, TextInput };
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/SectionTitle.vue","../src/Loading.vue","../src/ResetButton.vue","../src/SubmitButton.vue","../src/RegularButton.vue","../src/SecondaryButton.vue","../src/DangerButton.vue","../src/Card.vue","../src/CardImage.vue","../src/CardBody.vue","../src/Selector.vue","../src/TextInput.vue","../src/CheckBoxInput.vue","../src/NumberInput.vue","../src/ImageInput.vue","../src/CardGrid.vue","../src/MobileNavigationLink.vue","../src/MobileNavigationLinks.vue","../src/NavigationLink.vue","../src/NavigationLinks.vue","../src/NavbarTitle.vue","../src/RightContent.vue","../src/MobileMenuButton.vue","../src/Navbar.vue"],"sourcesContent":["<template>\n <h1 class=\"text-center text-6xl leading-relaxed\"> {{text}} </h1>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n<div>\n <h1 class=\"text-center.text-1xl.leading-relaxed\"> Loading... </h1>\n <div class=\"flex items-center justify-center space-x-2 animate-bounce\">\n <div class=\"w-8 h-8 bg-blue-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-green-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-red-400 rounded-full\" />\n </div>\n</div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"reset\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"submit\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-gray-500 hover:bg-gray-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <div class=\"max-w-sm rounded overflow-hidden shadow-lg\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <img class=\"w-full\" :src=\"src\" :alt=\"alt\" ref=\"image\"/>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n src: String,\n alt: String,\n },\n data: function () {\n return {\n imageWidth: 0,\n }\n },\n methods: {\n calculateWidth() {\n return this.$refs.image.clientWidth\n },\n },\n mounted: function () {\n this.$emit('width', this.calculateWidth())\n },\n}\n</script>\n","<template>\n <div class=\"px-6 py-4\">\n <div class=\"font-bold text-xl mb-2\">{{ title }}</div>\n <p class=\"text-gray-700 text-base\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n title: String,\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <div class=\"relative\">\n <select\n :id=\"id\"\n v-model=\"selected\"\n class=\"block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500\"\n @change=\"onChange\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.value\"\n :value=\"option.value\"\n :disabled=\"option.disabled\"\n >\n {{ option.text }}\n </option>\n </select>\n <div\n class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700\"\n >\n <svg\n class=\"fill-current h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\"\n />\n </svg>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n label: {\n type: String,\n },\n options: {\n type: Array,\n },\n },\n data() {\n return {\n selected: '',\n }\n },\n methods: {\n onChange() {\n this.$emit('selected', this.selected)\n },\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"text\"\n @input=\"onInput\"\n type=\"text\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n text: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <input\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :value=\"checked\"\n @input=\"onInput\"\n type=\"checkbox\"\n unchecked-value=\"false\"\n />\n <label class=\"block text-gray-700 text-sm font-bold\" :for=\"id\">\n {{ label }}\n </label>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n checked: {\n type: Boolean,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"amount\"\n :min=\"min\"\n :step=\"step\"\n @input=\"onInput\"\n type=\"number\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n amount: {\n type: Number,\n },\n min: {\n type: String,\n },\n step: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"file\"\n :drop-placeholder=\"dropPlaceholder\"\n @input=\"onInput\"\n type=\"file\"\n accept=\"image/*\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n dropPlaceholder: {\n type: String,\n },\n label: {\n type: String,\n },\n file: {\n type: Object,\n }\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.files[0])\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"flex flex-wrap\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white block px-3 py-2 rounded-md text-base font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white block px-3 py-2 rounded-md text-base font-medium'\n },\n },\n}\n</script>\n","<template>\n <div id=\"mobile-menu\" class=\"sm:hidden\">\n <div class=\"px-2 pt-2 pb-3 space-y-1\">\n <mobile-navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n</template>\n<script>\nimport MobileNavigationLink from './MobileNavigationLink.vue'\n\nexport default {\n components: {\n MobileNavigationLink: MobileNavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n },\n}\n</script>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white px-3 py-2 rounded-md text-sm font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium'\n },\n },\n}\n</script>\n","<template>\n <div class=\"hidden sm:block sm:ml-6\">\n <div class=\"flex space-x-4\">\n <navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n</template>\n<script>\nimport NavigationLink from './NavigationLink.vue'\n\nexport default {\n components: {\n NavigationLink: NavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n },\n}\n</script>\n","<template>\n <div class=\"flex-shrink-0 flex items-center\">\n <img\n class=\"block lg:hidden h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-mark-indigo-500.svg\"\n alt=\"Workflow\"\n />\n <img\n class=\"hidden lg:block h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\"\n alt=\"Workflow\"\n />\n </div>\n</template>\n","<template>\n <div\n class=\"absolute inset-y-0 right-0 flex items-center pr-2 sm:static sm:inset-auto sm:ml-6 sm:pr-0\"\n >\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ $i18n.locale }}</span>\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ currentUserEmail }} </span>\n </div>\n</template>\n<script>\nexport default {\n props: {\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n}\n</script>\n","<template>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white\"\n aria-controls=\"mobile-menu\"\n aria-expanded=\"false\"\n >\n <span class=\"sr-only\">Open main menu</span>\n <!--\n Icon when menu is closed.\n\n Heroicon name: outline/menu\n\n Menu open: \"hidden\", Menu closed: \"block\"\n-->\n <svg\n class=\"block h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 6h16M4 12h16M4 18h16\"\n />\n </svg>\n <!--\n Icon when menu is open.\n\n Heroicon name: outline/x\n\n Menu open: \"block\", Menu closed: \"hidden\"\n-->\n <svg\n class=\"hidden h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n</template>\n","<template>\n <nav class=\"bg-gray-800\">\n <div class=\"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8\">\n <div class=\"relative flex items-center justify-between h-16\">\n <div class=\"absolute inset-y-0 left-0 flex items-center sm:hidden\">\n <mobile-menu-button />\n </div>\n <div\n class=\"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start\"\n >\n <navbar-title />\n <navigation-links :links=\"links\" />\n </div>\n <right-content\n :locale=\"locale\"\n :current-user-email=\"currentUserEmail\"\n />\n </div>\n </div>\n <mobile-navigation-links :links=\"links\" />\n </nav>\n</template>\n<script>\nimport MobileNavigationLinks from './MobileNavigationLinks.vue'\nimport NavigationLinks from './NavigationLinks.vue'\nimport NavbarTitle from './NavbarTitle.vue'\nimport RightContent from './RightContent.vue'\nimport MobileMenuButton from './MobileMenuButton.vue'\n\nexport default {\n components: {\n NavbarTitle: NavbarTitle,\n NavigationLinks: NavigationLinks,\n MobileNavigationLinks: MobileNavigationLinks,\n RightContent: RightContent,\n MobileMenuButton: MobileMenuButton,\n },\n props: {\n links: {\n type: Array,\n },\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n}\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/SectionTitle.vue","../src/Loading.vue","../src/ResetButton.vue","../src/SubmitButton.vue","../src/RegularButton.vue","../src/SecondaryButton.vue","../src/DangerButton.vue","../src/Card.vue","../src/CardImage.vue","../src/CardBody.vue","../src/Selector.vue","../src/TextInput.vue","../src/CheckBoxInput.vue","../src/NumberInput.vue","../src/ImageInput.vue","../src/CardGrid.vue","../src/MobileNavigationLink.vue","../src/MobileNavigationLinks.vue","../src/NavigationLink.vue","../src/NavigationLinks.vue","../src/NavbarTitle.vue","../src/RightContent.vue","../src/MobileMenuButton.vue","../src/Navbar.vue"],"sourcesContent":["<template>\n <h1 class=\"text-center text-6xl leading-relaxed\"> {{text}} </h1>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n<div>\n <h1 class=\"text-center.text-1xl.leading-relaxed\"> Loading... </h1>\n <div class=\"flex items-center justify-center space-x-2 animate-bounce\">\n <div class=\"w-8 h-8 bg-blue-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-green-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-red-400 rounded-full\" />\n </div>\n</div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"reset\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"submit\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-gray-500 hover:bg-gray-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <div class=\"max-w-sm rounded overflow-hidden shadow-lg\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <img class=\"w-full\" :src=\"src\" :alt=\"alt\" ref=\"image\"/>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n src: String,\n alt: String,\n },\n data: function () {\n return {\n imageWidth: 0,\n }\n },\n methods: {\n calculateWidth() {\n return this.$refs.image.clientWidth\n },\n },\n mounted: function () {\n this.$emit('width', this.calculateWidth())\n },\n}\n</script>\n","<template>\n <div class=\"px-6 py-4\">\n <div class=\"font-bold text-xl mb-2\">{{ title }}</div>\n <p class=\"text-gray-700 text-base\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n title: String,\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <div class=\"relative\">\n <select\n :id=\"id\"\n v-model=\"selected\"\n class=\"block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500\"\n @change=\"onChange\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.value\"\n :value=\"option.value\"\n :disabled=\"option.disabled\"\n >\n {{ option.text }}\n </option>\n </select>\n <div\n class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700\"\n >\n <svg\n class=\"fill-current h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\"\n />\n </svg>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n label: {\n type: String,\n },\n options: {\n type: Array,\n },\n },\n data() {\n return {\n selected: '',\n }\n },\n methods: {\n onChange() {\n this.$emit('selected', this.selected)\n },\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"text\"\n @input=\"onInput\"\n type=\"text\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n text: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <input\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :value=\"checked\"\n @input=\"onInput\"\n type=\"checkbox\"\n unchecked-value=\"false\"\n />\n <label class=\"block text-gray-700 text-sm font-bold\" :for=\"id\">\n {{ label }}\n </label>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n checked: {\n type: Boolean,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"amount\"\n :min=\"min\"\n :step=\"step\"\n @input=\"onInput\"\n type=\"number\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n amount: {\n type: Number,\n },\n min: {\n type: String,\n },\n step: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"file\"\n :drop-placeholder=\"dropPlaceholder\"\n @input=\"onInput\"\n type=\"file\"\n accept=\"image/*\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n dropPlaceholder: {\n type: String,\n },\n label: {\n type: String,\n },\n file: {\n type: Object,\n }\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.files[0])\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"flex flex-wrap\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white block px-3 py-2 rounded-md text-base font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white block px-3 py-2 rounded-md text-base font-medium'\n },\n },\n}\n</script>\n","<template>\n <transition\n enter-active-class=\"transition-all\"\n leave-active-class=\"transition-all\"\n enter-class=\"opacity-0 scale-70\"\n enter-to-class=\"opacity-100 scale-100\"\n leave-class=\"opacity-100 scale-100\"\n leave-to-class=\"opacity-0 scale-70\"\n >\n <div id=\"mobile-menu\" class=\"sm:hidden\" v-if=\"open\">\n <div class=\"px-2 pt-2 pb-3 space-y-1\">\n <mobile-navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n </transition>\n</template>\n<script>\nimport MobileNavigationLink from './MobileNavigationLink.vue'\n\nexport default {\n components: {\n MobileNavigationLink: MobileNavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n open: {\n type: Boolean,\n default: false,\n },\n },\n}\n</script>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white px-3 py-2 rounded-md text-sm font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium'\n },\n },\n}\n</script>\n","<template>\n <div class=\"hidden sm:block sm:ml-6\">\n <div class=\"flex space-x-4\">\n <navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n</template>\n<script>\nimport NavigationLink from './NavigationLink.vue'\n\nexport default {\n components: {\n NavigationLink: NavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n },\n}\n</script>\n","<template>\n <div class=\"flex-shrink-0 flex items-center\">\n <img\n class=\"block lg:hidden h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-mark-indigo-500.svg\"\n alt=\"Workflow\"\n />\n <img\n class=\"hidden lg:block h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\"\n alt=\"Workflow\"\n />\n </div>\n</template>\n","<template>\n <div\n class=\"absolute inset-y-0 right-0 flex items-center pr-2 sm:static sm:inset-auto sm:ml-6 sm:pr-0\"\n >\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ $i18n.locale }}</span>\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ currentUserEmail }} </span>\n </div>\n</template>\n<script>\nexport default {\n props: {\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n}\n</script>\n","<template>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white\"\n v-on:click=\"onClick\"\n >\n <svg\n class=\"block h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 6h16M4 12h16M4 18h16\"\n />\n </svg>\n </button>\n</template>\n<script lang=\"js\">\nexport default {\n props: {\n open: {\n type: Boolean,\n default: false\n },\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <nav class=\"bg-gray-800\">\n <div class=\"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8\">\n <div class=\"relative flex items-center justify-between h-16\">\n <div class=\"absolute inset-y-0 left-0 flex items-center sm:hidden\">\n <mobile-menu-button @click=\"onMobileMenuClick\" :open=\"mobileMenuOpen\"/>\n </div>\n <div\n class=\"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start\"\n >\n <navbar-title />\n <navigation-links :links=\"links\"/>\n </div>\n <right-content\n :locale=\"locale\"\n :current-user-email=\"currentUserEmail\"\n />\n </div>\n </div>\n <mobile-navigation-links :links=\"links\" :open=\"mobileMenuOpen\" />\n </nav>\n</template>\n<script>\nimport MobileNavigationLinks from './MobileNavigationLinks.vue'\nimport NavigationLinks from './NavigationLinks.vue'\nimport NavbarTitle from './NavbarTitle.vue'\nimport RightContent from './RightContent.vue'\nimport MobileMenuButton from './MobileMenuButton.vue'\n\nexport default {\n components: {\n NavbarTitle: NavbarTitle,\n NavigationLinks: NavigationLinks,\n MobileNavigationLinks: MobileNavigationLinks,\n RightContent: RightContent,\n MobileMenuButton: MobileMenuButton,\n },\n data() {\n return {\n mobileMenuOpen: false,\n }\n },\n props: {\n links: {\n type: Array,\n },\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n methods: {\n onMobileMenuClick() {\n this.mobileMenuOpen = !this.mobileMenuOpen\n },\n }\n}\n</script>\n"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -287,7 +287,7 @@ staticRenderFns: [],
287
287
  };
288
288
 
289
289
  var MobileNavigationLinks = {
290
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"sm:hidden",attrs:{"id":"mobile-menu"}},[_c('div',{staticClass:"px-2 pt-2 pb-3 space-y-1"},_vm._l((_vm.links),function(link){return _c('mobile-navigation-link',{key:link.id,attrs:{"href":link.href,"text":link.text}})}),1)])},
290
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"enter-active-class":"transition-all","leave-active-class":"transition-all","enter-class":"opacity-0 scale-70","enter-to-class":"opacity-100 scale-100","leave-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-70"}},[(_vm.open)?_c('div',{staticClass:"sm:hidden",attrs:{"id":"mobile-menu"}},[_c('div',{staticClass:"px-2 pt-2 pb-3 space-y-1"},_vm._l((_vm.links),function(link){return _c('mobile-navigation-link',{key:link.id,attrs:{"href":link.href,"text":link.text}})}),1)]):_vm._e()])},
291
291
  staticRenderFns: [],
292
292
  components: {
293
293
  MobileNavigationLink: MobileNavigationLink,
@@ -296,6 +296,10 @@ staticRenderFns: [],
296
296
  links: {
297
297
  type: Array,
298
298
  },
299
+ open: {
300
+ type: Boolean,
301
+ default: false,
302
+ },
299
303
  },
300
304
  };
301
305
 
@@ -356,13 +360,23 @@ staticRenderFns: [],
356
360
  };
357
361
 
358
362
  var MobileMenuButton = {
359
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white",attrs:{"type":"button","aria-controls":"mobile-menu","aria-expanded":"false"}},[_c('span',{staticClass:"sr-only"},[_vm._v("Open main menu")]),_vm._v(" "),_c('svg',{staticClass:"block h-6 w-6",attrs:{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","stroke":"currentColor","aria-hidden":"true"}},[_c('path',{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2","d":"M4 6h16M4 12h16M4 18h16"}})]),_vm._v(" "),_c('svg',{staticClass:"hidden h-6 w-6",attrs:{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","stroke":"currentColor","aria-hidden":"true"}},[_c('path',{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2","d":"M6 18L18 6M6 6l12 12"}})])])},
363
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white",attrs:{"type":"button"},on:{"click":_vm.onClick}},[_c('svg',{staticClass:"block h-6 w-6",attrs:{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","stroke":"currentColor"}},[_c('path',{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2","d":"M4 6h16M4 12h16M4 18h16"}})])])},
360
364
  staticRenderFns: [],
361
- stub: 1
365
+ props: {
366
+ open: {
367
+ type: Boolean,
368
+ default: false
369
+ },
370
+ },
371
+ methods: {
372
+ onClick(evt) {
373
+ this.$emit('click', evt);
374
+ }
375
+ }
362
376
  };
363
377
 
364
378
  var Navbar = {
365
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:"bg-gray-800"},[_c('div',{staticClass:"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8"},[_c('div',{staticClass:"relative flex items-center justify-between h-16"},[_c('div',{staticClass:"absolute inset-y-0 left-0 flex items-center sm:hidden"},[_c('mobile-menu-button')],1),_vm._v(" "),_c('div',{staticClass:"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start"},[_c('navbar-title'),_vm._v(" "),_c('navigation-links',{attrs:{"links":_vm.links}})],1),_vm._v(" "),_c('right-content',{attrs:{"locale":_vm.locale,"current-user-email":_vm.currentUserEmail}})],1)]),_vm._v(" "),_c('mobile-navigation-links',{attrs:{"links":_vm.links}})],1)},
379
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:"bg-gray-800"},[_c('div',{staticClass:"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8"},[_c('div',{staticClass:"relative flex items-center justify-between h-16"},[_c('div',{staticClass:"absolute inset-y-0 left-0 flex items-center sm:hidden"},[_c('mobile-menu-button',{attrs:{"open":_vm.mobileMenuOpen},on:{"click":_vm.onMobileMenuClick}})],1),_vm._v(" "),_c('div',{staticClass:"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start"},[_c('navbar-title'),_vm._v(" "),_c('navigation-links',{attrs:{"links":_vm.links}})],1),_vm._v(" "),_c('right-content',{attrs:{"locale":_vm.locale,"current-user-email":_vm.currentUserEmail}})],1)]),_vm._v(" "),_c('mobile-navigation-links',{attrs:{"links":_vm.links,"open":_vm.mobileMenuOpen}})],1)},
366
380
  staticRenderFns: [],
367
381
  components: {
368
382
  NavbarTitle: NavbarTitle,
@@ -371,6 +385,11 @@ staticRenderFns: [],
371
385
  RightContent: RightContent,
372
386
  MobileMenuButton: MobileMenuButton,
373
387
  },
388
+ data() {
389
+ return {
390
+ mobileMenuOpen: false,
391
+ }
392
+ },
374
393
  props: {
375
394
  links: {
376
395
  type: Array,
@@ -382,6 +401,11 @@ staticRenderFns: [],
382
401
  type: String,
383
402
  },
384
403
  },
404
+ methods: {
405
+ onMobileMenuClick() {
406
+ this.mobileMenuOpen = !this.mobileMenuOpen;
407
+ },
408
+ }
385
409
  };
386
410
 
387
411
  exports.Card = Card;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/SectionTitle.vue","../src/Loading.vue","../src/ResetButton.vue","../src/SubmitButton.vue","../src/RegularButton.vue","../src/SecondaryButton.vue","../src/DangerButton.vue","../src/Card.vue","../src/CardImage.vue","../src/CardBody.vue","../src/Selector.vue","../src/TextInput.vue","../src/CheckBoxInput.vue","../src/NumberInput.vue","../src/ImageInput.vue","../src/CardGrid.vue","../src/MobileNavigationLink.vue","../src/MobileNavigationLinks.vue","../src/NavigationLink.vue","../src/NavigationLinks.vue","../src/NavbarTitle.vue","../src/RightContent.vue","../src/MobileMenuButton.vue","../src/Navbar.vue"],"sourcesContent":["<template>\n <h1 class=\"text-center text-6xl leading-relaxed\"> {{text}} </h1>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n<div>\n <h1 class=\"text-center.text-1xl.leading-relaxed\"> Loading... </h1>\n <div class=\"flex items-center justify-center space-x-2 animate-bounce\">\n <div class=\"w-8 h-8 bg-blue-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-green-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-red-400 rounded-full\" />\n </div>\n</div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"reset\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"submit\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-gray-500 hover:bg-gray-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <div class=\"max-w-sm rounded overflow-hidden shadow-lg\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <img class=\"w-full\" :src=\"src\" :alt=\"alt\" ref=\"image\"/>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n src: String,\n alt: String,\n },\n data: function () {\n return {\n imageWidth: 0,\n }\n },\n methods: {\n calculateWidth() {\n return this.$refs.image.clientWidth\n },\n },\n mounted: function () {\n this.$emit('width', this.calculateWidth())\n },\n}\n</script>\n","<template>\n <div class=\"px-6 py-4\">\n <div class=\"font-bold text-xl mb-2\">{{ title }}</div>\n <p class=\"text-gray-700 text-base\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n title: String,\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <div class=\"relative\">\n <select\n :id=\"id\"\n v-model=\"selected\"\n class=\"block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500\"\n @change=\"onChange\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.value\"\n :value=\"option.value\"\n :disabled=\"option.disabled\"\n >\n {{ option.text }}\n </option>\n </select>\n <div\n class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700\"\n >\n <svg\n class=\"fill-current h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\"\n />\n </svg>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n label: {\n type: String,\n },\n options: {\n type: Array,\n },\n },\n data() {\n return {\n selected: '',\n }\n },\n methods: {\n onChange() {\n this.$emit('selected', this.selected)\n },\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"text\"\n @input=\"onInput\"\n type=\"text\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n text: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <input\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :value=\"checked\"\n @input=\"onInput\"\n type=\"checkbox\"\n unchecked-value=\"false\"\n />\n <label class=\"block text-gray-700 text-sm font-bold\" :for=\"id\">\n {{ label }}\n </label>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n checked: {\n type: Boolean,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"amount\"\n :min=\"min\"\n :step=\"step\"\n @input=\"onInput\"\n type=\"number\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n amount: {\n type: Number,\n },\n min: {\n type: String,\n },\n step: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"file\"\n :drop-placeholder=\"dropPlaceholder\"\n @input=\"onInput\"\n type=\"file\"\n accept=\"image/*\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n dropPlaceholder: {\n type: String,\n },\n label: {\n type: String,\n },\n file: {\n type: Object,\n }\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.files[0])\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"flex flex-wrap\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white block px-3 py-2 rounded-md text-base font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white block px-3 py-2 rounded-md text-base font-medium'\n },\n },\n}\n</script>\n","<template>\n <div id=\"mobile-menu\" class=\"sm:hidden\">\n <div class=\"px-2 pt-2 pb-3 space-y-1\">\n <mobile-navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n</template>\n<script>\nimport MobileNavigationLink from './MobileNavigationLink.vue'\n\nexport default {\n components: {\n MobileNavigationLink: MobileNavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n },\n}\n</script>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white px-3 py-2 rounded-md text-sm font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium'\n },\n },\n}\n</script>\n","<template>\n <div class=\"hidden sm:block sm:ml-6\">\n <div class=\"flex space-x-4\">\n <navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n</template>\n<script>\nimport NavigationLink from './NavigationLink.vue'\n\nexport default {\n components: {\n NavigationLink: NavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n },\n}\n</script>\n","<template>\n <div class=\"flex-shrink-0 flex items-center\">\n <img\n class=\"block lg:hidden h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-mark-indigo-500.svg\"\n alt=\"Workflow\"\n />\n <img\n class=\"hidden lg:block h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\"\n alt=\"Workflow\"\n />\n </div>\n</template>\n","<template>\n <div\n class=\"absolute inset-y-0 right-0 flex items-center pr-2 sm:static sm:inset-auto sm:ml-6 sm:pr-0\"\n >\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ $i18n.locale }}</span>\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ currentUserEmail }} </span>\n </div>\n</template>\n<script>\nexport default {\n props: {\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n}\n</script>\n","<template>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white\"\n aria-controls=\"mobile-menu\"\n aria-expanded=\"false\"\n >\n <span class=\"sr-only\">Open main menu</span>\n <!--\n Icon when menu is closed.\n\n Heroicon name: outline/menu\n\n Menu open: \"hidden\", Menu closed: \"block\"\n-->\n <svg\n class=\"block h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 6h16M4 12h16M4 18h16\"\n />\n </svg>\n <!--\n Icon when menu is open.\n\n Heroicon name: outline/x\n\n Menu open: \"block\", Menu closed: \"hidden\"\n-->\n <svg\n class=\"hidden h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n</template>\n","<template>\n <nav class=\"bg-gray-800\">\n <div class=\"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8\">\n <div class=\"relative flex items-center justify-between h-16\">\n <div class=\"absolute inset-y-0 left-0 flex items-center sm:hidden\">\n <mobile-menu-button />\n </div>\n <div\n class=\"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start\"\n >\n <navbar-title />\n <navigation-links :links=\"links\" />\n </div>\n <right-content\n :locale=\"locale\"\n :current-user-email=\"currentUserEmail\"\n />\n </div>\n </div>\n <mobile-navigation-links :links=\"links\" />\n </nav>\n</template>\n<script>\nimport MobileNavigationLinks from './MobileNavigationLinks.vue'\nimport NavigationLinks from './NavigationLinks.vue'\nimport NavbarTitle from './NavbarTitle.vue'\nimport RightContent from './RightContent.vue'\nimport MobileMenuButton from './MobileMenuButton.vue'\n\nexport default {\n components: {\n NavbarTitle: NavbarTitle,\n NavigationLinks: NavigationLinks,\n MobileNavigationLinks: MobileNavigationLinks,\n RightContent: RightContent,\n MobileMenuButton: MobileMenuButton,\n },\n props: {\n links: {\n type: Array,\n },\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n}\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/SectionTitle.vue","../src/Loading.vue","../src/ResetButton.vue","../src/SubmitButton.vue","../src/RegularButton.vue","../src/SecondaryButton.vue","../src/DangerButton.vue","../src/Card.vue","../src/CardImage.vue","../src/CardBody.vue","../src/Selector.vue","../src/TextInput.vue","../src/CheckBoxInput.vue","../src/NumberInput.vue","../src/ImageInput.vue","../src/CardGrid.vue","../src/MobileNavigationLink.vue","../src/MobileNavigationLinks.vue","../src/NavigationLink.vue","../src/NavigationLinks.vue","../src/NavbarTitle.vue","../src/RightContent.vue","../src/MobileMenuButton.vue","../src/Navbar.vue"],"sourcesContent":["<template>\n <h1 class=\"text-center text-6xl leading-relaxed\"> {{text}} </h1>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n<div>\n <h1 class=\"text-center.text-1xl.leading-relaxed\"> Loading... </h1>\n <div class=\"flex items-center justify-center space-x-2 animate-bounce\">\n <div class=\"w-8 h-8 bg-blue-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-green-400 rounded-full\" />\n <div class=\"w-8 h-8 bg-red-400 rounded-full\" />\n </div>\n</div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"reset\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button type=\"submit\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-gray-500 hover:bg-gray-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <button v-on:click=\"onClick\" class=\"bg-red-500 hover:bg-red-700 text-white font-bold py-2 px-4 rounded\"> {{text}} </button>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n text: String,\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <div class=\"max-w-sm rounded overflow-hidden shadow-lg\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <img class=\"w-full\" :src=\"src\" :alt=\"alt\" ref=\"image\"/>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n src: String,\n alt: String,\n },\n data: function () {\n return {\n imageWidth: 0,\n }\n },\n methods: {\n calculateWidth() {\n return this.$refs.image.clientWidth\n },\n },\n mounted: function () {\n this.$emit('width', this.calculateWidth())\n },\n}\n</script>\n","<template>\n <div class=\"px-6 py-4\">\n <div class=\"font-bold text-xl mb-2\">{{ title }}</div>\n <p class=\"text-gray-700 text-base\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"js\">\nexport default {\n props: {\n title: String,\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <div class=\"relative\">\n <select\n :id=\"id\"\n v-model=\"selected\"\n class=\"block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500\"\n @change=\"onChange\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.value\"\n :value=\"option.value\"\n :disabled=\"option.disabled\"\n >\n {{ option.text }}\n </option>\n </select>\n <div\n class=\"pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700\"\n >\n <svg\n class=\"fill-current h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n >\n <path\n d=\"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z\"\n />\n </svg>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n label: {\n type: String,\n },\n options: {\n type: Array,\n },\n },\n data() {\n return {\n selected: '',\n }\n },\n methods: {\n onChange() {\n this.$emit('selected', this.selected)\n },\n },\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"text\"\n @input=\"onInput\"\n type=\"text\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n text: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <input\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :value=\"checked\"\n @input=\"onInput\"\n type=\"checkbox\"\n unchecked-value=\"false\"\n />\n <label class=\"block text-gray-700 text-sm font-bold\" :for=\"id\">\n {{ label }}\n </label>\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n checked: {\n type: Boolean,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"amount\"\n :min=\"min\"\n :step=\"step\"\n @input=\"onInput\"\n type=\"number\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n label: {\n type: String,\n },\n amount: {\n type: Number,\n },\n min: {\n type: String,\n },\n step: {\n type: String,\n },\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.value)\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"mb-4\">\n <label class=\"block text-gray-700 text-sm font-bold mb-2\" :for=\"id\">\n {{ label }}\n </label>\n <input\n class=\"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline\"\n :id=\"id\"\n :name=\"id\"\n :required=\"required\"\n :placeholder=\"placeholder\"\n :value=\"file\"\n :drop-placeholder=\"dropPlaceholder\"\n @input=\"onInput\"\n type=\"file\"\n accept=\"image/*\"\n />\n </div>\n</template>\n<script>\nexport default {\n props: {\n id: {\n type: String,\n },\n required: {\n type: Boolean,\n },\n placeholder: {\n type: String,\n },\n dropPlaceholder: {\n type: String,\n },\n label: {\n type: String,\n },\n file: {\n type: Object,\n }\n },\n methods: {\n onInput(event) {\n this.$emit('update', event.target.files[0])\n },\n },\n\n}\n</script>\n","<template>\n <div class=\"flex flex-wrap\">\n <slot></slot>\n </div>\n</template>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white block px-3 py-2 rounded-md text-base font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white block px-3 py-2 rounded-md text-base font-medium'\n },\n },\n}\n</script>\n","<template>\n <transition\n enter-active-class=\"transition-all\"\n leave-active-class=\"transition-all\"\n enter-class=\"opacity-0 scale-70\"\n enter-to-class=\"opacity-100 scale-100\"\n leave-class=\"opacity-100 scale-100\"\n leave-to-class=\"opacity-0 scale-70\"\n >\n <div id=\"mobile-menu\" class=\"sm:hidden\" v-if=\"open\">\n <div class=\"px-2 pt-2 pb-3 space-y-1\">\n <mobile-navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n </transition>\n</template>\n<script>\nimport MobileNavigationLink from './MobileNavigationLink.vue'\n\nexport default {\n components: {\n MobileNavigationLink: MobileNavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n open: {\n type: Boolean,\n default: false,\n },\n },\n}\n</script>\n","<template>\n <a :href=\"href\" :class=\"linkClass\" aria-current=\"page\">\n {{ text }}\n </a>\n</template>\n<script>\nexport default {\n props: {\n text: {\n type: String,\n },\n href: {\n type: String,\n },\n current: {\n type: Boolean,\n },\n },\n computed: {\n linkClass: function () {\n if (this.current) {\n return 'bg-gray-900 text-white px-3 py-2 rounded-md text-sm font-medium'\n }\n return 'text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium'\n },\n },\n}\n</script>\n","<template>\n <div class=\"hidden sm:block sm:ml-6\">\n <div class=\"flex space-x-4\">\n <navigation-link\n v-for=\"link in links\"\n :key=\"link.id\"\n :href=\"link.href\"\n :text=\"link.text\"\n />\n </div>\n </div>\n</template>\n<script>\nimport NavigationLink from './NavigationLink.vue'\n\nexport default {\n components: {\n NavigationLink: NavigationLink,\n },\n props: {\n links: {\n type: Array,\n },\n },\n}\n</script>\n","<template>\n <div class=\"flex-shrink-0 flex items-center\">\n <img\n class=\"block lg:hidden h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-mark-indigo-500.svg\"\n alt=\"Workflow\"\n />\n <img\n class=\"hidden lg:block h-8 w-auto\"\n src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\"\n alt=\"Workflow\"\n />\n </div>\n</template>\n","<template>\n <div\n class=\"absolute inset-y-0 right-0 flex items-center pr-2 sm:static sm:inset-auto sm:ml-6 sm:pr-0\"\n >\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ $i18n.locale }}</span>\n <span class=\"bg-gray-800 p-1 text-gray-400\"> {{ currentUserEmail }} </span>\n </div>\n</template>\n<script>\nexport default {\n props: {\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n}\n</script>\n","<template>\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white\"\n v-on:click=\"onClick\"\n >\n <svg\n class=\"block h-6 w-6\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 6h16M4 12h16M4 18h16\"\n />\n </svg>\n </button>\n</template>\n<script lang=\"js\">\nexport default {\n props: {\n open: {\n type: Boolean,\n default: false\n },\n },\n methods: {\n onClick(evt) {\n this.$emit('click', evt)\n }\n }\n}\n</script>\n","<template>\n <nav class=\"bg-gray-800\">\n <div class=\"max-w-7xl mx-auto px-2 sm:px-6 lg:px-8\">\n <div class=\"relative flex items-center justify-between h-16\">\n <div class=\"absolute inset-y-0 left-0 flex items-center sm:hidden\">\n <mobile-menu-button @click=\"onMobileMenuClick\" :open=\"mobileMenuOpen\"/>\n </div>\n <div\n class=\"flex-1 flex items-center justify-center sm:items-stretch sm:justify-start\"\n >\n <navbar-title />\n <navigation-links :links=\"links\"/>\n </div>\n <right-content\n :locale=\"locale\"\n :current-user-email=\"currentUserEmail\"\n />\n </div>\n </div>\n <mobile-navigation-links :links=\"links\" :open=\"mobileMenuOpen\" />\n </nav>\n</template>\n<script>\nimport MobileNavigationLinks from './MobileNavigationLinks.vue'\nimport NavigationLinks from './NavigationLinks.vue'\nimport NavbarTitle from './NavbarTitle.vue'\nimport RightContent from './RightContent.vue'\nimport MobileMenuButton from './MobileMenuButton.vue'\n\nexport default {\n components: {\n NavbarTitle: NavbarTitle,\n NavigationLinks: NavigationLinks,\n MobileNavigationLinks: MobileNavigationLinks,\n RightContent: RightContent,\n MobileMenuButton: MobileMenuButton,\n },\n data() {\n return {\n mobileMenuOpen: false,\n }\n },\n props: {\n links: {\n type: Array,\n },\n locale: {\n type: String,\n },\n currentUserEmail: {\n type: String,\n },\n },\n methods: {\n onMobileMenuClick() {\n this.mobileMenuOpen = !this.mobileMenuOpen\n },\n }\n}\n</script>\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namelivia/vue-components",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "scripts": {
@@ -2,24 +2,14 @@
2
2
  <button
3
3
  type="button"
4
4
  class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white"
5
- aria-controls="mobile-menu"
6
- aria-expanded="false"
5
+ v-on:click="onClick"
7
6
  >
8
- <span class="sr-only">Open main menu</span>
9
- <!--
10
- Icon when menu is closed.
11
-
12
- Heroicon name: outline/menu
13
-
14
- Menu open: "hidden", Menu closed: "block"
15
- -->
16
7
  <svg
17
8
  class="block h-6 w-6"
18
9
  xmlns="http://www.w3.org/2000/svg"
19
10
  fill="none"
20
11
  viewBox="0 0 24 24"
21
12
  stroke="currentColor"
22
- aria-hidden="true"
23
13
  >
24
14
  <path
25
15
  stroke-linecap="round"
@@ -28,27 +18,20 @@
28
18
  d="M4 6h16M4 12h16M4 18h16"
29
19
  />
30
20
  </svg>
31
- <!--
32
- Icon when menu is open.
33
-
34
- Heroicon name: outline/x
35
-
36
- Menu open: "block", Menu closed: "hidden"
37
- -->
38
- <svg
39
- class="hidden h-6 w-6"
40
- xmlns="http://www.w3.org/2000/svg"
41
- fill="none"
42
- viewBox="0 0 24 24"
43
- stroke="currentColor"
44
- aria-hidden="true"
45
- >
46
- <path
47
- stroke-linecap="round"
48
- stroke-linejoin="round"
49
- stroke-width="2"
50
- d="M6 18L18 6M6 6l12 12"
51
- />
52
- </svg>
53
21
  </button>
54
22
  </template>
23
+ <script lang="js">
24
+ export default {
25
+ props: {
26
+ open: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ },
31
+ methods: {
32
+ onClick(evt) {
33
+ this.$emit('click', evt)
34
+ }
35
+ }
36
+ }
37
+ </script>
@@ -1,14 +1,23 @@
1
1
  <template>
2
- <div id="mobile-menu" class="sm:hidden">
3
- <div class="px-2 pt-2 pb-3 space-y-1">
4
- <mobile-navigation-link
5
- v-for="link in links"
6
- :key="link.id"
7
- :href="link.href"
8
- :text="link.text"
9
- />
2
+ <transition
3
+ enter-active-class="transition-all"
4
+ leave-active-class="transition-all"
5
+ enter-class="opacity-0 scale-70"
6
+ enter-to-class="opacity-100 scale-100"
7
+ leave-class="opacity-100 scale-100"
8
+ leave-to-class="opacity-0 scale-70"
9
+ >
10
+ <div id="mobile-menu" class="sm:hidden" v-if="open">
11
+ <div class="px-2 pt-2 pb-3 space-y-1">
12
+ <mobile-navigation-link
13
+ v-for="link in links"
14
+ :key="link.id"
15
+ :href="link.href"
16
+ :text="link.text"
17
+ />
18
+ </div>
10
19
  </div>
11
- </div>
20
+ </transition>
12
21
  </template>
13
22
  <script>
14
23
  import MobileNavigationLink from './MobileNavigationLink.vue'
@@ -21,6 +30,10 @@ export default {
21
30
  links: {
22
31
  type: Array,
23
32
  },
33
+ open: {
34
+ type: Boolean,
35
+ default: false,
36
+ },
24
37
  },
25
38
  }
26
39
  </script>
package/src/Navbar.vue CHANGED
@@ -3,13 +3,13 @@
3
3
  <div class="max-w-7xl mx-auto px-2 sm:px-6 lg:px-8">
4
4
  <div class="relative flex items-center justify-between h-16">
5
5
  <div class="absolute inset-y-0 left-0 flex items-center sm:hidden">
6
- <mobile-menu-button />
6
+ <mobile-menu-button @click="onMobileMenuClick" :open="mobileMenuOpen"/>
7
7
  </div>
8
8
  <div
9
9
  class="flex-1 flex items-center justify-center sm:items-stretch sm:justify-start"
10
10
  >
11
11
  <navbar-title />
12
- <navigation-links :links="links" />
12
+ <navigation-links :links="links"/>
13
13
  </div>
14
14
  <right-content
15
15
  :locale="locale"
@@ -17,7 +17,7 @@
17
17
  />
18
18
  </div>
19
19
  </div>
20
- <mobile-navigation-links :links="links" />
20
+ <mobile-navigation-links :links="links" :open="mobileMenuOpen" />
21
21
  </nav>
22
22
  </template>
23
23
  <script>
@@ -35,6 +35,11 @@ export default {
35
35
  RightContent: RightContent,
36
36
  MobileMenuButton: MobileMenuButton,
37
37
  },
38
+ data() {
39
+ return {
40
+ mobileMenuOpen: false,
41
+ }
42
+ },
38
43
  props: {
39
44
  links: {
40
45
  type: Array,
@@ -46,5 +51,10 @@ export default {
46
51
  type: String,
47
52
  },
48
53
  },
54
+ methods: {
55
+ onMobileMenuClick() {
56
+ this.mobileMenuOpen = !this.mobileMenuOpen
57
+ },
58
+ }
49
59
  }
50
60
  </script>