@namelivia/vue-components 0.1.4 → 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
@@ -159,8 +159,36 @@ staticRenderFns: [],
159
159
 
160
160
  };
161
161
 
162
+ var CheckBoxInput = {
163
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"mb-4"},[_c('input',{attrs:{"id":_vm.id,"name":_vm.id,"required":_vm.required,"type":"checkbox","unchecked-value":"false"},domProps:{"value":_vm.checked},on:{"input":_vm.onInput}}),_vm._v(" "),_c('label',{staticClass:"block text-gray-700 text-sm font-bold",attrs:{"for":_vm.id}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")])])},
164
+ staticRenderFns: [],
165
+ props: {
166
+ id: {
167
+ type: String,
168
+ },
169
+ required: {
170
+ type: Boolean,
171
+ },
172
+ placeholder: {
173
+ type: String,
174
+ },
175
+ label: {
176
+ type: String,
177
+ },
178
+ checked: {
179
+ type: Boolean,
180
+ },
181
+ },
182
+ methods: {
183
+ onInput(event) {
184
+ this.$emit('update', event.target.value);
185
+ },
186
+ },
187
+
188
+ };
189
+
162
190
  var NumberInput = {
163
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"mb-4"},[_c('label',{staticClass:"block text-gray-700 text-sm font-bold mb-2",attrs:{"for":_vm.id}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")]),_vm._v(" "),_c('input',{staticClass:"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline",attrs:{"id":_vm.id,"name":_vm.id,"required":_vm.required,"placeholder":_vm.placeholder,"type":"number","min":"1"},domProps:{"value":_vm.value},on:{"input":_vm.onInput}})])},
191
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"mb-4"},[_c('label',{staticClass:"block text-gray-700 text-sm font-bold mb-2",attrs:{"for":_vm.id}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")]),_vm._v(" "),_c('input',{staticClass:"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline",attrs:{"id":_vm.id,"name":_vm.id,"required":_vm.required,"placeholder":_vm.placeholder,"min":_vm.min,"step":_vm.step,"type":"number"},domProps:{"value":_vm.amount},on:{"input":_vm.onInput}})])},
164
192
  staticRenderFns: [],
165
193
  props: {
166
194
  id: {
@@ -175,9 +203,15 @@ staticRenderFns: [],
175
203
  label: {
176
204
  type: String,
177
205
  },
178
- value: {
206
+ amount: {
179
207
  type: Number,
180
208
  },
209
+ min: {
210
+ type: String,
211
+ },
212
+ step: {
213
+ type: String,
214
+ },
181
215
  },
182
216
  methods: {
183
217
  onInput(event) {
@@ -249,7 +283,7 @@ staticRenderFns: [],
249
283
  };
250
284
 
251
285
  var MobileNavigationLinks = {
252
- 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()])},
253
287
  staticRenderFns: [],
254
288
  components: {
255
289
  MobileNavigationLink: MobileNavigationLink,
@@ -258,6 +292,10 @@ staticRenderFns: [],
258
292
  links: {
259
293
  type: Array,
260
294
  },
295
+ open: {
296
+ type: Boolean,
297
+ default: false,
298
+ },
261
299
  },
262
300
  };
263
301
 
@@ -318,13 +356,23 @@ staticRenderFns: [],
318
356
  };
319
357
 
320
358
  var MobileMenuButton = {
321
- 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"}})])])},
322
360
  staticRenderFns: [],
323
- 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
+ }
324
372
  };
325
373
 
326
374
  var Navbar = {
327
- 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)},
328
376
  staticRenderFns: [],
329
377
  components: {
330
378
  NavbarTitle: NavbarTitle,
@@ -333,6 +381,11 @@ staticRenderFns: [],
333
381
  RightContent: RightContent,
334
382
  MobileMenuButton: MobileMenuButton,
335
383
  },
384
+ data() {
385
+ return {
386
+ mobileMenuOpen: false,
387
+ }
388
+ },
336
389
  props: {
337
390
  links: {
338
391
  type: Array,
@@ -344,7 +397,12 @@ staticRenderFns: [],
344
397
  type: String,
345
398
  },
346
399
  },
400
+ methods: {
401
+ onMobileMenuClick() {
402
+ this.mobileMenuOpen = !this.mobileMenuOpen;
403
+ },
404
+ }
347
405
  };
348
406
 
349
- export { Card, CardBody, CardGrid, CardImage, DangerButton, ImageInput, Loading, Navbar, NumberInput, RegularButton, ResetButton, SecondaryButton, SectionTitle, Selector, SubmitButton, TextInput };
407
+ export { Card, CardBody, CardGrid, CardImage, CheckBoxInput, DangerButton, ImageInput, Loading, Navbar, NumberInput, RegularButton, ResetButton, SecondaryButton, SectionTitle, Selector, SubmitButton, TextInput };
350
408
  //# sourceMappingURL=index.esm.js.map
@@ -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/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 <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=\"value\"\n @input=\"onInput\"\n type=\"number\"\n min=\"1\"\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 value: {\n type: Number,\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
@@ -163,8 +163,36 @@ staticRenderFns: [],
163
163
 
164
164
  };
165
165
 
166
+ var CheckBoxInput = {
167
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"mb-4"},[_c('input',{attrs:{"id":_vm.id,"name":_vm.id,"required":_vm.required,"type":"checkbox","unchecked-value":"false"},domProps:{"value":_vm.checked},on:{"input":_vm.onInput}}),_vm._v(" "),_c('label',{staticClass:"block text-gray-700 text-sm font-bold",attrs:{"for":_vm.id}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")])])},
168
+ staticRenderFns: [],
169
+ props: {
170
+ id: {
171
+ type: String,
172
+ },
173
+ required: {
174
+ type: Boolean,
175
+ },
176
+ placeholder: {
177
+ type: String,
178
+ },
179
+ label: {
180
+ type: String,
181
+ },
182
+ checked: {
183
+ type: Boolean,
184
+ },
185
+ },
186
+ methods: {
187
+ onInput(event) {
188
+ this.$emit('update', event.target.value);
189
+ },
190
+ },
191
+
192
+ };
193
+
166
194
  var NumberInput = {
167
- render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"mb-4"},[_c('label',{staticClass:"block text-gray-700 text-sm font-bold mb-2",attrs:{"for":_vm.id}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")]),_vm._v(" "),_c('input',{staticClass:"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline",attrs:{"id":_vm.id,"name":_vm.id,"required":_vm.required,"placeholder":_vm.placeholder,"type":"number","min":"1"},domProps:{"value":_vm.value},on:{"input":_vm.onInput}})])},
195
+ render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"mb-4"},[_c('label',{staticClass:"block text-gray-700 text-sm font-bold mb-2",attrs:{"for":_vm.id}},[_vm._v("\n "+_vm._s(_vm.label)+"\n ")]),_vm._v(" "),_c('input',{staticClass:"shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline",attrs:{"id":_vm.id,"name":_vm.id,"required":_vm.required,"placeholder":_vm.placeholder,"min":_vm.min,"step":_vm.step,"type":"number"},domProps:{"value":_vm.amount},on:{"input":_vm.onInput}})])},
168
196
  staticRenderFns: [],
169
197
  props: {
170
198
  id: {
@@ -179,9 +207,15 @@ staticRenderFns: [],
179
207
  label: {
180
208
  type: String,
181
209
  },
182
- value: {
210
+ amount: {
183
211
  type: Number,
184
212
  },
213
+ min: {
214
+ type: String,
215
+ },
216
+ step: {
217
+ type: String,
218
+ },
185
219
  },
186
220
  methods: {
187
221
  onInput(event) {
@@ -253,7 +287,7 @@ staticRenderFns: [],
253
287
  };
254
288
 
255
289
  var MobileNavigationLinks = {
256
- 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()])},
257
291
  staticRenderFns: [],
258
292
  components: {
259
293
  MobileNavigationLink: MobileNavigationLink,
@@ -262,6 +296,10 @@ staticRenderFns: [],
262
296
  links: {
263
297
  type: Array,
264
298
  },
299
+ open: {
300
+ type: Boolean,
301
+ default: false,
302
+ },
265
303
  },
266
304
  };
267
305
 
@@ -322,13 +360,23 @@ staticRenderFns: [],
322
360
  };
323
361
 
324
362
  var MobileMenuButton = {
325
- 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"}})])])},
326
364
  staticRenderFns: [],
327
- 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
+ }
328
376
  };
329
377
 
330
378
  var Navbar = {
331
- 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)},
332
380
  staticRenderFns: [],
333
381
  components: {
334
382
  NavbarTitle: NavbarTitle,
@@ -337,6 +385,11 @@ staticRenderFns: [],
337
385
  RightContent: RightContent,
338
386
  MobileMenuButton: MobileMenuButton,
339
387
  },
388
+ data() {
389
+ return {
390
+ mobileMenuOpen: false,
391
+ }
392
+ },
340
393
  props: {
341
394
  links: {
342
395
  type: Array,
@@ -348,12 +401,18 @@ staticRenderFns: [],
348
401
  type: String,
349
402
  },
350
403
  },
404
+ methods: {
405
+ onMobileMenuClick() {
406
+ this.mobileMenuOpen = !this.mobileMenuOpen;
407
+ },
408
+ }
351
409
  };
352
410
 
353
411
  exports.Card = Card;
354
412
  exports.CardBody = CardBody;
355
413
  exports.CardGrid = CardGrid;
356
414
  exports.CardImage = CardImage;
415
+ exports.CheckBoxInput = CheckBoxInput;
357
416
  exports.DangerButton = DangerButton;
358
417
  exports.ImageInput = ImageInput;
359
418
  exports.Loading = Loading;
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/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 <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=\"value\"\n @input=\"onInput\"\n type=\"number\"\n min=\"1\"\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 value: {\n type: Number,\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":";;;;AAKA,mBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH;;ACGA,cAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH;;ACXA,kBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH;;ACJA,mBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH;;ACJA,oBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAC;AAC9B,KAAK;AACL,GAAG;AACH;;ACTA,sBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAC;AAC9B,KAAK;AACL,GAAG;AACH;;ACTA,mBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAC;AAC9B,KAAK;AACL,GAAG;AACH;;ACdA;;;;;;ACKA,gBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,MAAM;AACf,IAAI,GAAG,EAAE,MAAM;AACf,GAAG;AACH,EAAE,IAAI,EAAE,YAAY;AACpB,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,cAAc,GAAG;AACrB,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW;AACzC,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE,YAAY;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,EAAC;AAC9C,GAAG;AACH;;ACbA,eAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,KAAK,EAAE,MAAM;AACjB,GAAG;AACH;;ACwBA,eAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,IAAI,EAAE,KAAK;AACjB,KAAK;AACL,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,OAAO;AACX,MAAM,QAAQ,EAAE,EAAE;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,QAAQ,GAAG;AACf,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAC;AAC3C,KAAK;AACL,GAAG;AACH;;AC1CA,gBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAC;AAC9C,KAAK;AACL,GAAG;AACH;AACA;;ACzBA,oBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAC;AAC9C,KAAK;AACL,GAAG;AACH;AACA;;ACrBA,kBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,GAAG,EAAE;AACT,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAC;AAC9C,KAAK;AACL,GAAG;AACH;AACA;;AC9BA,iBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE;AACR,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,eAAe,EAAE;AACrB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;AACjD,KAAK;AACL,GAAG;AACH;AACA;;AC/CA;;;;;;ACMA,2BAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,SAAS,EAAE,YAAY;AAC3B,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,yEAAyE;AACxF,OAAO;AACP,MAAM,OAAO,mGAAmG;AAChH,KAAK;AACL,GAAG;AACH;;ACFA,4BAAe;;;AACf,EAAE,UAAU,EAAE;AACd,IAAI,oBAAoB,EAAE,oBAAoB;AAC9C,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,OAAO,EAAE,KAAK;AACpB,KAAK;AACL,GAAG;AACH;;AC/BA,qBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,OAAO,EAAE;AACb,MAAM,IAAI,EAAE,OAAO;AACnB,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,SAAS,EAAE,YAAY;AAC3B,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,iEAAiE;AAChF,OAAO;AACP,MAAM,OAAO,2FAA2F;AACxG,KAAK;AACL,GAAG;AACH;;ACXA,sBAAe;;;AACf,EAAE,UAAU,EAAE;AACd,IAAI,cAAc,EAAE,cAAc;AAClC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,KAAK;AACL,GAAG;AACH;;ACxBA;;;;;;ACSA,mBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,MAAM,EAAE;AACZ,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,gBAAgB,EAAE;AACtB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,GAAG;AACH;;ACKA,uBAAe;;;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,OAAO,EAAE,KAAK;AACpB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAC;AAC9B,KAAK;AACL,GAAG;AACH;;ACNA,aAAe;;;AACf,EAAE,UAAU,EAAE;AACd,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,eAAe,EAAE,eAAe;AACpC,IAAI,qBAAqB,EAAE,qBAAqB;AAChD,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,OAAO;AACX,MAAM,cAAc,EAAE,KAAK;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,KAAK,EAAE;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,IAAI,gBAAgB,EAAE;AACtB,MAAM,IAAI,EAAE,MAAM;AAClB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,iBAAiB,GAAG;AACxB,MAAM,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,eAAc;AAChD,KAAK;AACL,GAAG;AACH;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namelivia/vue-components",
3
- "version": "0.1.4",
3
+ "version": "0.1.8",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.esm.js",
6
6
  "scripts": {
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <div class="mb-4">
3
+ <input
4
+ :id="id"
5
+ :name="id"
6
+ :required="required"
7
+ :value="checked"
8
+ @input="onInput"
9
+ type="checkbox"
10
+ unchecked-value="false"
11
+ />
12
+ <label class="block text-gray-700 text-sm font-bold" :for="id">
13
+ {{ label }}
14
+ </label>
15
+ </div>
16
+ </template>
17
+ <script>
18
+ export default {
19
+ props: {
20
+ id: {
21
+ type: String,
22
+ },
23
+ required: {
24
+ type: Boolean,
25
+ },
26
+ placeholder: {
27
+ type: String,
28
+ },
29
+ label: {
30
+ type: String,
31
+ },
32
+ checked: {
33
+ type: Boolean,
34
+ },
35
+ },
36
+ methods: {
37
+ onInput(event) {
38
+ this.$emit('update', event.target.value)
39
+ },
40
+ },
41
+
42
+ }
43
+ </script>
@@ -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>
@@ -9,10 +9,11 @@
9
9
  :name="id"
10
10
  :required="required"
11
11
  :placeholder="placeholder"
12
- :value="value"
12
+ :value="amount"
13
+ :min="min"
14
+ :step="step"
13
15
  @input="onInput"
14
16
  type="number"
15
- min="1"
16
17
  />
17
18
  </div>
18
19
  </template>
@@ -31,9 +32,15 @@ export default {
31
32
  label: {
32
33
  type: String,
33
34
  },
34
- value: {
35
+ amount: {
35
36
  type: Number,
36
37
  },
38
+ min: {
39
+ type: String,
40
+ },
41
+ step: {
42
+ type: String,
43
+ },
37
44
  },
38
45
  methods: {
39
46
  onInput(event) {
package/src/index.js CHANGED
@@ -10,6 +10,7 @@ import { default as CardImage } from './CardImage.vue'
10
10
  import { default as CardBody } from './CardBody.vue'
11
11
  import { default as Selector } from './Selector.vue'
12
12
  import { default as TextInput } from './TextInput.vue'
13
+ import { default as CheckBoxInput } from './CheckBoxInput.vue'
13
14
  import { default as NumberInput } from './NumberInput.vue'
14
15
  import { default as ImageInput } from './ImageInput.vue'
15
16
  import { default as CardGrid } from './CardGrid.vue'
@@ -27,6 +28,7 @@ export {
27
28
  CardBody,
28
29
  Selector,
29
30
  TextInput,
31
+ CheckBoxInput,
30
32
  NumberInput,
31
33
  ImageInput,
32
34
  CardGrid,