wave-ui 1.51.1 → 1.53.1

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.
Files changed (32) hide show
  1. package/dist/wave-ui.cjs.js +1 -1
  2. package/dist/wave-ui.css +1 -1
  3. package/dist/wave-ui.es.js +248 -161
  4. package/dist/wave-ui.umd.js +1 -1
  5. package/package.json +3 -2
  6. package/src/wave-ui/components/transitions/w-transition-expand.vue +1 -13
  7. package/src/wave-ui/components/w-accordion.vue +47 -24
  8. package/src/wave-ui/components/w-card.vue +12 -5
  9. package/src/wave-ui/components/w-checkbox.vue +11 -6
  10. package/src/wave-ui/components/w-checkboxes.vue +9 -19
  11. package/src/wave-ui/components/w-dialog.vue +18 -9
  12. package/src/wave-ui/components/w-divider.vue +10 -3
  13. package/src/wave-ui/components/w-drawer.vue +46 -21
  14. package/src/wave-ui/components/w-form-element.vue +19 -13
  15. package/src/wave-ui/components/w-form.vue +16 -11
  16. package/src/wave-ui/components/w-icon.vue +19 -17
  17. package/src/wave-ui/components/w-input.vue +14 -37
  18. package/src/wave-ui/components/w-menu.vue +9 -1
  19. package/src/wave-ui/components/w-notification.vue +3 -1
  20. package/src/wave-ui/components/w-overlay.vue +21 -15
  21. package/src/wave-ui/components/w-radio.vue +11 -6
  22. package/src/wave-ui/components/w-radios.vue +6 -15
  23. package/src/wave-ui/components/w-select.vue +13 -28
  24. package/src/wave-ui/components/w-slider.vue +21 -10
  25. package/src/wave-ui/components/w-switch.vue +44 -16
  26. package/src/wave-ui/components/w-tabs/index.vue +11 -1
  27. package/src/wave-ui/components/w-textarea.vue +17 -18
  28. package/src/wave-ui/components/w-timeline.vue +1 -1
  29. package/src/wave-ui/components/w-toolbar.vue +46 -6
  30. package/src/wave-ui/components/w-tooltip.vue +7 -2
  31. package/src/wave-ui/mixins/detachable.js +17 -13
  32. package/src/wave-ui/mixins/form-elements.js +9 -0
@@ -554,7 +554,9 @@ var render$P = function() {
554
554
  }, "click": function($event) {
555
555
  $event.stopPropagation();
556
556
  !item._disabled && _vm.toggleItem(item, $event);
557
- } } }) : _vm._e()], 2), _c("w-transition-expand", { attrs: { "y": "" } }, [item._expanded ? _c("div", { staticClass: "w-accordion__item-content", class: _vm.contentClass }, [_vm.$scopedSlots["item-content." + (item.id || i + 1)] ? _vm._t("item-content." + (item.id || i + 1), null, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 }) : _vm._t("item-content", function() {
557
+ } } }) : _vm._e()], 2), _c("w-transition-expand", { attrs: { "y": "", "duration": _vm.duration }, on: { "after-leave": function($event) {
558
+ return _vm.onEndOfCollapse(item);
559
+ } } }, [item._expanded ? _c("div", { staticClass: "w-accordion__item-content", class: _vm.contentClass }, [_vm.$scopedSlots["item-content." + (item.id || i + 1)] ? _vm._t("item-content." + (item.id || i + 1), null, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 }) : _vm._t("item-content", function() {
558
560
  return [_c("div", { domProps: { "innerHTML": _vm._s(item[_vm.itemContentKey]) } })];
559
561
  }, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 })], 2) : _vm._e()])], 1);
560
562
  }), 0);
@@ -629,18 +631,14 @@ const __vue2_script$P = {
629
631
  expandIconRight: { type: Boolean },
630
632
  expandSingle: { type: Boolean },
631
633
  collapseIcon: { type: String },
632
- shadow: { type: Boolean }
634
+ shadow: { type: Boolean },
635
+ duration: { type: Number, default: 250 }
633
636
  },
634
- emits: ["input", "update:modelValue", "focus", "item-expand"],
637
+ emits: ["input", "update:value", "focus", "item-expand", "item-collapsed"],
638
+ data: () => ({
639
+ accordionItems: []
640
+ }),
635
641
  computed: {
636
- accordionItems() {
637
- const items = typeof this.items === "number" ? Array(this.items).fill({}) : this.items || [];
638
- return items.map((item, _index) => new Vue.observable(__spreadProps(__spreadValues({}, item), {
639
- _index,
640
- _expanded: this.value && this.value[_index],
641
- _disabled: !!item.disabled
642
- })));
643
- },
644
642
  accordionClasses() {
645
643
  return {
646
644
  [this.color]: this.color,
@@ -658,12 +656,15 @@ const __vue2_script$P = {
658
656
  if (this.expandSingle)
659
657
  this.accordionItems.forEach((obj) => obj._index !== item._index && (obj._expanded = false));
660
658
  const expandedItems = this.accordionItems.map((item2) => item2._expanded || false);
661
- this.$emit("update:modelValue", expandedItems);
659
+ this.$emit("update:value", expandedItems);
662
660
  this.$emit("input", expandedItems);
663
661
  this.$emit("item-expand", { item, expanded: item._expanded });
664
662
  e.target.blur();
665
663
  setTimeout(() => e.target.focus(), 300);
666
664
  },
665
+ onEndOfCollapse(item) {
666
+ this.$emit("item-collapsed", { item, expanded: item._expanded });
667
+ },
667
668
  getOriginalItem(item) {
668
669
  return this.items[item._index];
669
670
  },
@@ -674,13 +675,28 @@ const __vue2_script$P = {
674
675
  "w-accordion__item--disabled": item._disabled,
675
676
  [item[this.itemColorKey]]: item[this.itemColorKey]
676
677
  };
678
+ },
679
+ updateItems() {
680
+ const items = typeof this.items === "number" ? Array(this.items).fill({}) : this.items || [];
681
+ this.$set(this, "accordionItems", items.map((item, _index) => __spreadProps(__spreadValues({}, item), {
682
+ _index,
683
+ _expanded: this.value && this.value[_index],
684
+ _disabled: !!item.disabled
685
+ })));
677
686
  }
678
687
  },
688
+ created() {
689
+ this.updateItems();
690
+ },
679
691
  watch: {
680
- value(array) {
681
- this.accordionItems.forEach((item, i) => {
682
- this.$set(item, "expanded", Array.isArray(array) && array[i] || false);
683
- });
692
+ value() {
693
+ this.updateItems();
694
+ },
695
+ items: {
696
+ handler() {
697
+ this.updateItems();
698
+ },
699
+ deep: true
684
700
  }
685
701
  }
686
702
  };
@@ -1315,7 +1331,7 @@ var render$I = function() {
1315
1331
  var _vm = this;
1316
1332
  var _h = _vm.$createElement;
1317
1333
  var _c = _vm._self._c || _h;
1318
- return _c("div", { staticClass: "w-card", class: _vm.classes, style: _vm.styles }, [_vm.$slots.title ? _c("div", { staticClass: "w-card__title", class: Object.assign({}, { "w-card__title--has-toolbar": _vm.titleHasToolbar }, _vm.titleClasses) }, [_vm._t("title")], 2) : _vm.title ? _c("div", { staticClass: "w-card__title", class: _vm.titleClasses, domProps: { "innerHTML": _vm._s(_vm.title) } }) : _vm._e(), _vm.image ? _c("w-image", _vm._b({ staticClass: "w-card__image", attrs: { "src": _vm.image } }, "w-image", _vm.imgProps, false), [_vm._t("image-content")], 2) : _vm._e(), _c("div", { staticClass: "w-card__content", class: _vm.contentClasses }, [_vm._t("default")], 2), _vm.$slots.actions ? _c("div", { staticClass: "w-card__actions", class: { "w-card__actions--has-toolbar": _vm.actionsHasToolbar } }, [_vm._t("actions")], 2) : _vm._e()], 1);
1334
+ return _c("div", { staticClass: "w-card", class: _vm.classes }, [_vm.$slots.title ? _c("div", { staticClass: "w-card__title", class: Object.assign({}, { "w-card__title--has-toolbar": _vm.titleHasToolbar }, _vm.titleClasses) }, [_vm._t("title")], 2) : _vm.title ? _c("div", { staticClass: "w-card__title", class: _vm.titleClasses, domProps: { "innerHTML": _vm._s(_vm.title) } }) : _vm._e(), _vm.image ? _c("w-image", _vm._b({ staticClass: "w-card__image", attrs: { "src": _vm.image } }, "w-image", _vm.imgProps, false), [_vm._t("image-content")], 2) : _vm._e(), _c("div", { staticClass: "w-card__content", class: _vm.contentClasses }, [_vm._t("default")], 2), _vm.$slots.actions ? _c("div", { staticClass: "w-card__actions", class: { "w-card__actions--has-toolbar": _vm.actionsHasToolbar } }, [_vm._t("actions")], 2) : _vm._e()], 1);
1319
1335
  };
1320
1336
  var staticRenderFns$I = [];
1321
1337
  var wCard_vue_vue_type_style_index_0_lang = "";
@@ -1363,9 +1379,6 @@ const __vue2_script$I = {
1363
1379
  "w-card--tile": this.tile,
1364
1380
  "w-card--shadow": this.shadow
1365
1381
  };
1366
- },
1367
- styles() {
1368
- return false;
1369
1382
  }
1370
1383
  }
1371
1384
  };
@@ -1404,6 +1417,15 @@ var FormElementMixin = {
1404
1417
  },
1405
1418
  isReadonly() {
1406
1419
  return this.readonly || this.formProps.readonly;
1420
+ },
1421
+ validationColor() {
1422
+ return this.formProps.validationColor;
1423
+ },
1424
+ labelClasses() {
1425
+ return {
1426
+ [this.labelColor]: this.labelColor && this.valid !== false,
1427
+ [this.validationColor]: this.valid === false
1428
+ };
1407
1429
  }
1408
1430
  },
1409
1431
  methods: {
@@ -1432,10 +1454,14 @@ var render$H = function() {
1432
1454
  return null;
1433
1455
  }
1434
1456
  return _vm.onInput.apply(null, arguments);
1435
- } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pr2", attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pr2", attrs: { "for": "w-checkbox--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-checkbox__input", class: this.color, on: { "click": function($event) {
1457
+ } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default", function() {
1458
+ return [_vm._v(_vm._s(_vm.label))];
1459
+ })], 2) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-checkbox__input", class: this.color, on: { "click": function($event) {
1436
1460
  _vm.$refs.input.focus();
1437
1461
  _vm.$refs.input.click();
1438
- } } }, [_c("svg", { attrs: { "width": "11px", "height": "9px", "viewbox": "0 0 12 9" } }, [_c("polyline", { attrs: { "points": "1 5 4 8 10 2" } })])]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pl2", attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pl2", attrs: { "for": "w-checkbox--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
1462
+ } } }, [_c("svg", { attrs: { "width": "11px", "height": "9px", "viewbox": "0 0 12 9" } }, [_c("polyline", { attrs: { "points": "1 5 4 8 10 2" } })])]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default", function() {
1463
+ return [_vm._v(_vm._s(_vm.label))];
1464
+ })], 2) : _vm._e()] : _vm._e()], 2);
1439
1465
  };
1440
1466
  var staticRenderFns$H = [];
1441
1467
  var wCheckbox_vue_vue_type_style_index_0_lang = "";
@@ -1449,6 +1475,7 @@ const __vue2_script$H = {
1449
1475
  label: { type: String },
1450
1476
  labelOnLeft: { type: Boolean },
1451
1477
  color: { type: String, default: "primary" },
1478
+ labelColor: { type: String, default: "primary" },
1452
1479
  noRipple: { type: Boolean },
1453
1480
  indeterminate: { type: Boolean },
1454
1481
  round: { type: Boolean }
@@ -1524,11 +1551,11 @@ var render$G = function() {
1524
1551
  }, "reset": _vm.reset } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.checkboxItems.some(function(item) {
1525
1552
  return item._isChecked;
1526
1553
  }), disabled: _vm.isDisabled }, false), _vm._l(_vm.checkboxItems, function(item, i) {
1527
- return _c("w-checkbox", { key: i, class: { mt1: !_vm.inline && i }, attrs: { "name": (_vm.name || "w-checkboxes--" + _vm._uid) + "[]", "label": item.label, "label-on-left": _vm.labelOnLeft, "value": item._isChecked, "color": item.color, "round": _vm.round, "disabled": _vm.isDisabled || null, "readonly": _vm.isReadonly || null }, on: { "input": function($event) {
1554
+ return _c("w-checkbox", _vm._b({ key: i, class: { mt1: !_vm.inline && i }, attrs: { "value": item._isChecked, "name": _vm.inputName + "[]", "disabled": _vm.isDisabled || null, "readonly": _vm.isReadonly || null }, on: { "input": function($event) {
1528
1555
  return _vm.toggleCheck(item, $event);
1529
1556
  }, "focus": function($event) {
1530
1557
  return _vm.$emit("focus", $event);
1531
- } } }, [_vm.$scopedSlots["item." + (i + 1)] ? _vm._t("item." + (i + 1), null, { "item": _vm.getOriginalItem(item), "checked": !!item._isChecked, "index": i + 1 }) : _vm.$scopedSlots.item ? _vm._t("item", null, { "item": _vm.getOriginalItem(item), "checked": !!item._isChecked, "index": i + 1 }) : _vm._e()], 2);
1558
+ } } }, "w-checkbox", { label: item.label, color: item.color, labelOnLeft: _vm.labelOnLeft, labelColor: _vm.labelColor, round: _vm.round }, false), [_vm.$slots["item." + (i + 1)] || _vm.$slots.item ? _vm._t(_vm.$slots["item." + (i + 1)] ? "item." + (i + 1) : "item", null, { "item": _vm.getOriginalItem(item), "checked": !!item._isChecked, "index": i + 1 }) : _vm._e()], 2);
1532
1559
  }), 1);
1533
1560
  };
1534
1561
  var staticRenderFns$G = [];
@@ -1545,7 +1572,8 @@ const __vue2_script$G = {
1545
1572
  itemColorKey: { type: String, default: "color" },
1546
1573
  inline: { type: Boolean },
1547
1574
  round: { type: Boolean },
1548
- color: { type: String, default: "primary" }
1575
+ color: { type: String, default: "primary" },
1576
+ labelColor: { type: String, default: "primary" }
1549
1577
  },
1550
1578
  emits: ["input", "update:modelValue", "focus"],
1551
1579
  provide() {
@@ -1745,9 +1773,7 @@ var render$D = function() {
1745
1773
  var _vm = this;
1746
1774
  var _h = _vm.$createElement;
1747
1775
  var _c = _vm._self._c || _h;
1748
- return _c("w-overlay", { staticClass: "w-dialog", class: _vm.classes, attrs: { "value": _vm.showWrapper, "persistent": _vm.persistent, "persistent-no-animation": _vm.persistentNoAnimation, "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick, "closed": function($event) {
1749
- return _vm.$emit("closed");
1750
- } } }, [_c("transition", { attrs: { "name": _vm.transition, "appear": "" }, on: { "after-leave": _vm.onClose } }, [_c("w-card", { directives: [{ name: "show", rawName: "v-show", value: _vm.showContent, expression: "showContent" }], staticClass: "w-dialog__content", class: _vm.dialogClass, style: _vm.contentStyles, attrs: { "no-border": "", "color": _vm.color, "bg-color": _vm.bgColor, "title-class": _vm.titleClass, "content-class": _vm.contentClass, "title": _vm.title || void 0 }, scopedSlots: _vm._u([_vm.$slots.title ? { key: "title", fn: function() {
1776
+ return _c("w-overlay", { staticClass: "w-dialog", class: _vm.classes, attrs: { "value": _vm.showWrapper, "persistent": _vm.persistent, "persistent-no-animation": _vm.persistentNoAnimation, "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick, "close": _vm.onClose } }, [_c("transition", { attrs: { "name": _vm.transition, "appear": "" }, on: { "after-leave": _vm.onBeforeClose } }, [_c("w-card", { directives: [{ name: "show", rawName: "v-show", value: _vm.showContent, expression: "showContent" }], ref: "dialog", staticClass: "w-dialog__content", class: _vm.dialogClass, style: _vm.contentStyles, attrs: { "no-border": "", "color": _vm.color, "bg-color": _vm.bgColor, "title-class": _vm.titleClass, "content-class": _vm.contentClass, "title": _vm.title || void 0 }, scopedSlots: _vm._u([_vm.$slots.title ? { key: "title", fn: function() {
1751
1777
  return [_vm._t("title")];
1752
1778
  }, proxy: true } : null, _vm.$slots.actions ? { key: "actions", fn: function() {
1753
1779
  return [_vm._t("actions")];
@@ -1774,7 +1800,12 @@ const __vue2_script$D = {
1774
1800
  bgColor: { type: String },
1775
1801
  overlayOpacity: { type: [Number, String, Boolean] }
1776
1802
  },
1777
- emits: ["input", "update:modelValue", "close", "closed"],
1803
+ provide() {
1804
+ return {
1805
+ detachableDefaultRoot: () => this.$refs.dialog.$el || null
1806
+ };
1807
+ },
1808
+ emits: ["input", "update:modelValue", "before-close", "close"],
1778
1809
  data() {
1779
1810
  return {
1780
1811
  showWrapper: this.value,
@@ -1804,11 +1835,14 @@ const __vue2_script$D = {
1804
1835
  if (!this.persistent) {
1805
1836
  this.showContent = false;
1806
1837
  if (this.transition === "fade")
1807
- this.onClose();
1838
+ this.onBeforeClose();
1808
1839
  }
1809
1840
  },
1810
- onClose() {
1841
+ onBeforeClose() {
1811
1842
  this.showWrapper = false;
1843
+ this.$emit("before-close");
1844
+ },
1845
+ onClose() {
1812
1846
  this.$emit("update:modelValue", false);
1813
1847
  this.$emit("input", false);
1814
1848
  this.$emit("close");
@@ -1816,8 +1850,7 @@ const __vue2_script$D = {
1816
1850
  },
1817
1851
  watch: {
1818
1852
  value(value) {
1819
- if (value)
1820
- this.showWrapper = value;
1853
+ this.showWrapper = value;
1821
1854
  this.showContent = value;
1822
1855
  }
1823
1856
  }
@@ -1836,7 +1869,7 @@ var render$C = function() {
1836
1869
  var _vm = this;
1837
1870
  var _h = _vm.$createElement;
1838
1871
  var _c = _vm._self._c || _h;
1839
- return _c("div", { staticClass: "w-divider", class: _vm.classes }, [_vm._t("default")], 2);
1872
+ return _c("div", { staticClass: "w-divider", class: _vm.classes, attrs: { "role": "presentation", "aria-orientation": _vm.vertical ? "vertical" : "horizontal" } }, [_vm._t("default")], 2);
1840
1873
  };
1841
1874
  var staticRenderFns$C = [];
1842
1875
  var wDivider_vue_vue_type_style_index_0_lang = "";
@@ -1851,7 +1884,7 @@ const __vue2_script$C = {
1851
1884
  classes() {
1852
1885
  return {
1853
1886
  [`w-divider--has-color ${this.color}`]: this.color,
1854
- "w-divider--vertical": this.vertical,
1887
+ [`w-divider--${this.vertical ? "vertical" : "horizontal"}`]: true,
1855
1888
  "w-divider--has-content": this.$slots.default
1856
1889
  };
1857
1890
  }
@@ -1871,11 +1904,15 @@ var render$B = function() {
1871
1904
  var _vm = this;
1872
1905
  var _h = _vm.$createElement;
1873
1906
  var _c = _vm._self._c || _h;
1874
- return _vm.showWrapper || _vm.pushContent ? _c("div", { staticClass: "w-drawer-wrap", class: _vm.wrapperClasses }, [_vm.pushContent ? _c("div", { staticClass: "w-drawer-wrap__track", style: _vm.trackStyles }, [_c("div", { staticClass: "w-drawer-wrap__pushable" }, [!_vm.noOverlay ? _c("w-overlay", { attrs: { "persistent": _vm.persistent, "persistent-no-animation": "", "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick }, model: { value: _vm.showDrawer, callback: function($$v) {
1907
+ return _vm.showWrapper || _vm.pushContent ? _c("div", { staticClass: "w-drawer-wrap", class: _vm.wrapperClasses }, [_vm.pushContent ? _c("div", { staticClass: "w-drawer-wrap__track", style: _vm.trackStyles }, [_c("div", { staticClass: "w-drawer-wrap__pushable" }, [!_vm.noOverlay ? _c("w-overlay", { attrs: { "persistent": _vm.persistent, "persistent-no-animation": "", "bg-color": _vm.overlayColor || "transparent", "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick, "before-close": _vm.onBeforeClose }, model: { value: _vm.showDrawer, callback: function($$v) {
1875
1908
  _vm.showDrawer = $$v;
1876
- }, expression: "showDrawer" } }) : _vm._e(), _vm._t("pushable")], 2), _c("transition", { attrs: { "name": "fade" } }, [!_vm.unmountDrawer ? _c("div", { staticClass: "w-drawer", class: _vm.drawerClasses, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()])], 1) : [!_vm.noOverlay ? _c("w-overlay", { attrs: { "persistent": _vm.persistent, "persistent-no-animation": "", "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick }, model: { value: _vm.showDrawer, callback: function($$v) {
1909
+ }, expression: "showDrawer" } }) : _vm._e(), _vm._t("pushable")], 2), _c("transition", { attrs: { "name": "fade" }, on: { "before-leave": function($event) {
1910
+ _vm.noOverlay && _vm.onBeforeClose();
1911
+ }, "after-leave": _vm.onClose } }, [_vm.showDrawer ? _c(_vm.tag || "aside", { ref: "drawer", tag: "component", staticClass: "w-drawer", class: _vm.drawerClasses, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()], 1)], 1) : [!_vm.noOverlay ? _c("w-overlay", { attrs: { "persistent": _vm.persistent, "persistent-no-animation": "", "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick, "before-close": _vm.onBeforeClose }, model: { value: _vm.showDrawer, callback: function($$v) {
1877
1912
  _vm.showDrawer = $$v;
1878
- }, expression: "showDrawer" } }) : _vm._e(), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" }, on: { "after-leave": _vm.close } }, [_vm.showDrawer ? _c(_vm.tag || "aside", { tag: "component", staticClass: "w-drawer", class: _vm.drawerClasses, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()], 1)]], 2) : _vm._e();
1913
+ }, expression: "showDrawer" } }) : _vm._e(), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" }, on: { "before-leave": function($event) {
1914
+ _vm.noOverlay && _vm.onBeforeClose();
1915
+ }, "after-leave": _vm.onClose } }, [_vm.showDrawer ? _c(_vm.tag || "aside", { ref: "drawer", tag: "component", staticClass: "w-drawer", class: _vm.drawerClasses, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()], 1)]], 2) : _vm._e();
1879
1916
  };
1880
1917
  var staticRenderFns$B = [];
1881
1918
  var wDrawer_vue_vue_type_style_index_0_lang = "";
@@ -1903,7 +1940,12 @@ const __vue2_script$B = {
1903
1940
  overlayOpacity: { type: [Number, String, Boolean] },
1904
1941
  tag: { type: String, default: "aside" }
1905
1942
  },
1906
- emits: ["input", "update:modelValue", "close"],
1943
+ provide() {
1944
+ return {
1945
+ detachableDefaultRoot: () => this.$refs.drawer || null
1946
+ };
1947
+ },
1948
+ emits: ["input", "update:modelValue", "before-close", "close"],
1907
1949
  data() {
1908
1950
  return {
1909
1951
  showWrapper: this.value,
@@ -1944,7 +1986,7 @@ const __vue2_script$B = {
1944
1986
  },
1945
1987
  trackStyles() {
1946
1988
  return this.pushContent && this.showDrawer && {
1947
- transform: `translateX(${this.position === "left" ? "" : "-"}${this.size})`
1989
+ transform: `translateX(${this.position === "left" ? "" : "-"}${this.size || "200px"})`
1948
1990
  };
1949
1991
  },
1950
1992
  styles() {
@@ -1961,21 +2003,21 @@ const __vue2_script$B = {
1961
2003
  }
1962
2004
  },
1963
2005
  methods: {
1964
- close() {
1965
- this.showWrapper = false;
1966
- this.$emit("update:modelValue", false);
1967
- this.$emit("input", false);
1968
- this.$emit("close", false);
1969
- },
1970
2006
  onOutsideClick() {
1971
- if (!this.persistent) {
1972
- this.showDrawer = false;
1973
- if (this.pushContent)
1974
- this.close();
1975
- } else if (!this.persistentNoAnimation) {
2007
+ if (this.persistent && !this.persistentNoAnimation) {
1976
2008
  this.persistentAnimate = true;
1977
2009
  setTimeout(() => this.persistentAnimate = false, 200);
1978
2010
  }
2011
+ },
2012
+ onBeforeClose() {
2013
+ this.$emit("before-close");
2014
+ this.showDrawer = false;
2015
+ },
2016
+ onClose() {
2017
+ this.showWrapper = false;
2018
+ this.$emit("update:modelValue", false);
2019
+ this.$emit("input", false);
2020
+ this.$emit("close");
1979
2021
  }
1980
2022
  },
1981
2023
  watch: {
@@ -2078,23 +2120,24 @@ const asyncSome = async (array, predicate) => {
2078
2120
  };
2079
2121
  const __vue2_script$z = {
2080
2122
  name: "w-form",
2081
- provide() {
2082
- return {
2083
- formRegister: this.register,
2084
- formUnregister: this.unregister,
2085
- validateElement: this.validateElement,
2086
- formProps: this.$props
2087
- };
2088
- },
2089
2123
  props: {
2090
2124
  value: {},
2091
2125
  allowSubmit: { type: Boolean },
2092
2126
  noKeyupValidation: { type: Boolean },
2093
2127
  noBlurValidation: { type: Boolean },
2094
2128
  errorPlaceholders: { type: Boolean },
2129
+ validationColor: { type: String, default: "error" },
2095
2130
  disabled: { type: Boolean },
2096
2131
  readonly: { type: Boolean }
2097
2132
  },
2133
+ provide() {
2134
+ return {
2135
+ formRegister: this.register,
2136
+ formUnregister: this.unregister,
2137
+ validateElement: this.validateElement,
2138
+ formProps: this.$props
2139
+ };
2140
+ },
2098
2141
  emits: [
2099
2142
  "submit",
2100
2143
  "before-validate",
@@ -2212,12 +2255,22 @@ var render$y = function() {
2212
2255
  var _vm = this;
2213
2256
  var _h = _vm.$createElement;
2214
2257
  var _c = _vm._self._c || _h;
2215
- return _c("div", { class: _vm.classes }, [_c("div", { staticClass: "w-flex grow", class: [_vm.column ? "column" : "align-center", _vm.wrap ? "wrap" : ""] }, [_vm._t("default")], 2), _c("w-transition-expand", { attrs: { "y": "" } }, [_vm.Validation.message ? [_vm.$slots["error-message"] ? _c("div", { staticClass: "w-form-el__error error w-form-el__error w-form-el__error" }, [_vm._t("error-message", null, { "message": _vm.Validation.message })], 2) : _c("div", { staticClass: "w-form-el__error error w-form-el__error w-form-el__error", domProps: { "innerHTML": _vm._s(_vm.Validation.message) } })] : _vm._e()], 2)], 1);
2258
+ return _c("div", { class: _vm.classes }, [_c("div", { staticClass: "w-flex grow", class: [_vm.column ? "column" : "align-center", _vm.wrap ? "wrap" : ""] }, [_vm._t("default")], 2), _c("w-transition-expand", { attrs: { "y": "" } }, [_vm.Validation.message ? [_vm.$slots["error-message"] ? _c("div", { staticClass: "w-form-el__error", class: _vm.formProps.validationColor }, [_vm._t("error-message", null, { "message": _vm.Validation.message })], 2) : _c("div", { staticClass: "w-form-el__error error", class: _vm.formProps.validationColor, domProps: { "innerHTML": _vm._s(_vm.Validation.message) } })] : _vm._e()], 2)], 1);
2216
2259
  };
2217
2260
  var staticRenderFns$y = [];
2218
2261
  var wFormElement_vue_vue_type_style_index_0_lang = "";
2219
2262
  const __vue2_script$y = {
2220
2263
  name: "w-form-element",
2264
+ props: {
2265
+ valid: { required: true },
2266
+ disabled: { type: Boolean },
2267
+ readonly: { type: Boolean },
2268
+ inputValue: { required: true },
2269
+ validators: { type: Array },
2270
+ isFocused: { default: false },
2271
+ column: { default: false },
2272
+ wrap: { default: false }
2273
+ },
2221
2274
  inject: {
2222
2275
  formRegister: { default: null },
2223
2276
  formUnregister: { default: null },
@@ -2226,21 +2279,12 @@ const __vue2_script$y = {
2226
2279
  default: () => ({
2227
2280
  noKeyupValidation: false,
2228
2281
  noBlurValidation: false,
2282
+ validationColor: "error",
2229
2283
  disabled: false,
2230
2284
  readonly: false
2231
2285
  })
2232
2286
  }
2233
2287
  },
2234
- props: {
2235
- valid: { required: true },
2236
- disabled: { type: Boolean },
2237
- readonly: { type: Boolean },
2238
- inputValue: { required: true },
2239
- validators: { type: Array },
2240
- isFocused: { default: false },
2241
- column: { default: false },
2242
- wrap: { default: false }
2243
- },
2244
2288
  emits: ["reset", "update:valid"],
2245
2289
  data: () => ({
2246
2290
  Validation: {
@@ -2380,7 +2424,7 @@ var render$w = function() {
2380
2424
  var _vm = this;
2381
2425
  var _h = _vm.$createElement;
2382
2426
  var _c = _vm._self._c || _h;
2383
- return _c(_vm.tag || "i", _vm._g({ tag: "component", staticClass: "w-icon", class: _vm.classes, style: _vm.styles, attrs: { "role": "icon", "aria-hidden": "true" } }, _vm.$listeners), [_vm.ligature ? [_vm._v(_vm._s(_vm.ligature.icon))] : _vm._e()], 2);
2427
+ return _c(_vm.tag || "i", _vm._g({ tag: "component", staticClass: "w-icon", class: _vm.classes, style: _vm.readIcon() && _vm.styles, attrs: { "role": "icon", "aria-hidden": "true" } }, _vm.$listeners), [_vm.hasLigature ? [_vm._v(_vm._s(_vm.icon))] : _vm._e()], 2);
2384
2428
  };
2385
2429
  var staticRenderFns$w = [];
2386
2430
  var wIcon_vue_vue_type_style_index_0_lang = "";
@@ -2410,14 +2454,12 @@ const __vue2_script$w = {
2410
2454
  },
2411
2455
  emits: [],
2412
2456
  data: () => ({
2413
- icon: ""
2457
+ icon: "",
2458
+ fontName: ""
2414
2459
  }),
2415
2460
  computed: {
2416
- ligature() {
2417
- if (!config.iconsLigature)
2418
- return false;
2419
- const [fontName, icon] = this.icon.split(" ");
2420
- return fontName === config.iconsLigature && { fontName, icon };
2461
+ hasLigature() {
2462
+ return config.iconsLigature === this.fontName;
2421
2463
  },
2422
2464
  forcedSize() {
2423
2465
  return this.size && (!isNaN(this.size) ? `${this.size}px` : this.size);
@@ -2427,7 +2469,8 @@ const __vue2_script$w = {
2427
2469
  },
2428
2470
  classes() {
2429
2471
  return {
2430
- [this.icon]: true,
2472
+ [this.fontName]: true,
2473
+ [!this.hasLigature && this.icon]: !this.hasLigature && this.icon,
2431
2474
  [this.color]: this.color,
2432
2475
  [`${this.bgColor}--bg`]: this.bgColor,
2433
2476
  [`size--${this.presetSize}`]: this.presetSize && !this.forcedSize,
@@ -2441,19 +2484,21 @@ const __vue2_script$w = {
2441
2484
  "w-icon--rotate-90": this.rotate90a,
2442
2485
  "w-icon--rotate-135": this.rotate135a,
2443
2486
  "w-icon--flip-x": this.flipX,
2444
- "w-icon--flip-y": this.flipY,
2445
- [this.ligature && this.ligature.fontName]: this.ligature
2487
+ "w-icon--flip-y": this.flipY
2446
2488
  };
2447
2489
  },
2448
2490
  styles() {
2449
2491
  return this.forcedSize && `font-size: ${this.forcedSize}`;
2450
2492
  }
2451
2493
  },
2452
- created() {
2453
- this.icon = this.$slots.default[0].text.trim() || "";
2454
- },
2455
- beforeUpdate() {
2456
- this.icon = this.$slots.default[0].text.trim();
2494
+ methods: {
2495
+ readIcon() {
2496
+ const { default: slot } = this.$slots;
2497
+ const [fontName = "", icon = ""] = slot[0].text.trim().split(" ") || [];
2498
+ this.fontName = fontName;
2499
+ this.icon = icon;
2500
+ return true;
2501
+ }
2457
2502
  }
2458
2503
  };
2459
2504
  const __cssModules$w = {};
@@ -2621,7 +2666,9 @@ var render$u = function() {
2621
2666
  return;
2622
2667
  }
2623
2668
  _vm.inputValue = $event.target.value;
2624
- } } }) : [_vm.labelPosition === "left" ? [_vm.$slots.default ? _c("label", { staticClass: "w-input__label w-input__label--left w-form-el-shakable", class: _vm.validationClasses, attrs: { "for": "w-input--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-input__label w-input__label--left w-form-el-shakable", class: _vm.validationClasses, attrs: { "for": "w-input--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-input__input-wrap", class: _vm.inputWrapClasses }, [_vm.innerIconLeft ? _c("w-icon", { staticClass: "w-input__icon w-input__icon--inner-left", attrs: { "tag": "label", "for": "w-input--" + _vm._uid }, on: { "click": function($event) {
2669
+ } } }) : [_vm.labelPosition === "left" ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-input__label w-input__label--left w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-input--" + _vm._uid } }, [_vm._t("default", function() {
2670
+ return [_vm._v(_vm._s(_vm.label))];
2671
+ })], 2) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-input__input-wrap", class: _vm.inputWrapClasses }, [_vm.innerIconLeft ? _c("w-icon", { staticClass: "w-input__icon w-input__icon--inner-left", attrs: { "tag": "label", "for": "w-input--" + _vm._uid }, on: { "click": function($event) {
2625
2672
  return _vm.$emit("click:inner-icon-left", $event);
2626
2673
  } } }, [_vm._v(_vm._s(_vm.innerIconLeft))]) : _vm._e(), _vm.type === "checkbox" && _vm.type !== "file" ? _c("input", _vm._g(_vm._b({ directives: [{ name: "model", rawName: "v-model", value: _vm.inputValue, expression: "inputValue" }], ref: "input", staticClass: "w-input__input", attrs: { "id": "w-input--" + _vm._uid, "name": _vm.inputName, "placeholder": _vm.placeholder || null, "step": _vm.step || null, "min": _vm.min || null, "max": _vm.max || null, "minlength": _vm.minlength || null, "maxlength": _vm.maxlength || null, "readonly": _vm.isReadonly || null, "aria-readonly": _vm.isReadonly ? "true" : "false", "disabled": _vm.isDisabled || null, "required": _vm.required || null, "tabindex": _vm.tabindex || null, "type": "checkbox" }, domProps: { "checked": Array.isArray(_vm.inputValue) ? _vm._i(_vm.inputValue, null) > -1 : _vm.inputValue }, on: { "input": _vm.onInput, "focus": _vm.onFocus, "blur": _vm.onBlur, "change": function($event) {
2627
2674
  var $$a = _vm.inputValue, $$el = $event.target, $$c = $$el.checked ? true : false;
@@ -2646,11 +2693,15 @@ var render$u = function() {
2646
2693
  return [_vm.$slots["no-file"] === void 0 ? [_vm._v("No file")] : _vm._e()];
2647
2694
  })], 2) : _vm._e(), _vm._l(_vm.inputFiles, function(file, i) {
2648
2695
  return _c("span", { key: file.lastModified }, [_vm._v(_vm._s(i ? ", " : "")), _c("span", { key: i + "b", staticClass: "filename" }, [_vm._v(_vm._s(file.base))]), _vm._v(_vm._s(file.extension ? "." + file.extension : ""))]);
2649
- })], 2)], _vm.labelPosition === "inside" && _vm.showLabelInside ? [_vm.$slots.default ? _c("label", { staticClass: "w-input__label w-input__label--inside w-form-el-shakable", class: _vm.validationClasses, attrs: { "for": "w-input--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-input__label w-input__label--inside w-form-el-shakable", class: _vm.validationClasses, attrs: { "for": "w-input--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _vm.innerIconRight ? _c("w-icon", { staticClass: "w-input__icon w-input__icon--inner-right", attrs: { "tag": "label", "for": "w-input--" + _vm._uid }, on: { "click": function($event) {
2696
+ })], 2)], _vm.labelPosition === "inside" && _vm.showLabelInside ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-input__label w-input__label--inside w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-input--" + _vm._uid } }, [_vm._t("default", function() {
2697
+ return [_vm._v(_vm._s(_vm.label))];
2698
+ })], 2) : _vm._e()] : _vm._e(), _vm.innerIconRight ? _c("w-icon", { staticClass: "w-input__icon w-input__icon--inner-right", attrs: { "tag": "label", "for": "w-input--" + _vm._uid }, on: { "click": function($event) {
2650
2699
  return _vm.$emit("click:inner-icon-right", $event);
2651
2700
  } } }, [_vm._v(_vm._s(_vm.innerIconRight))]) : _vm._e(), _vm.hasLoading || _vm.showProgress && (_vm.uploadInProgress || _vm.uploadComplete) ? _c("w-progress", { staticClass: "fill-width", attrs: { "size": "2", "color": _vm.progressColor || _vm.color, "value": _vm.showProgress ? (_vm.uploadInProgress || _vm.uploadComplete) && _vm.overallFilesProgress : _vm.loadingValue } }) : _vm._e()], 2), _vm.type === "file" && _vm.preview && _vm.inputFiles.length ? _c("label", { staticClass: "d-flex", attrs: { "for": "w-input--" + _vm._uid } }, [_vm._l(_vm.inputFiles, function(file, i) {
2652
2701
  return [file.progress < 100 ? _c("i", { key: i, staticClass: "w-icon wi-spinner w-icon--spin size--sm w-input__file-preview primary" }) : file.preview ? _c("img", { key: i, staticClass: "w-input__file-preview", attrs: { "src": file.preview, "alt": "" } }) : _c("i", { key: i, staticClass: "w-icon w-input__file-preview primary size--md", class: _vm.preview && typeof _vm.preview === "string" ? _vm.preview : "wi-file" })];
2653
- })], 2) : _vm._e(), _vm.labelPosition === "right" ? [_vm.$slots.default ? _c("label", { staticClass: "w-input__label w-input__label--right w-form-el-shakable", class: _vm.validationClasses, attrs: { "for": "w-input--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-input__label w-input__label--right w-form-el-shakable", class: _vm.validationClasses, attrs: { "for": "w-input--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()]], 2);
2702
+ })], 2) : _vm._e(), _vm.labelPosition === "right" ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-input__label w-input__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-input--" + _vm._uid } }, [_vm._t("default", function() {
2703
+ return [_vm._v(_vm._s(_vm.label))];
2704
+ })], 2) : _vm._e()] : _vm._e()]], 2);
2654
2705
  };
2655
2706
  var staticRenderFns$u = [];
2656
2707
  var wInput_vue_vue_type_style_index_0_lang = "";
@@ -2667,8 +2718,9 @@ const __vue2_script$u = {
2667
2718
  staticLabel: { type: Boolean },
2668
2719
  placeholder: { type: String },
2669
2720
  color: { type: String, default: "primary" },
2670
- progressColor: { type: String },
2671
2721
  bgColor: { type: String },
2722
+ labelColor: { type: String, default: "primary" },
2723
+ progressColor: { type: String },
2672
2724
  minlength: { type: [Number, String] },
2673
2725
  maxlength: { type: [Number, String] },
2674
2726
  step: { type: [Number, String] },
@@ -2737,7 +2789,7 @@ const __vue2_script$u = {
2737
2789
  return !this.staticLabel || !this.hasValue && !this.placeholder;
2738
2790
  },
2739
2791
  overallFilesProgress() {
2740
- const progress = this.inputFiles.reduce((total2, file) => total2 + file.progress, 0);
2792
+ const progress = +this.inputFiles.reduce((total2, file) => total2 + file.progress, 0);
2741
2793
  const total = progress / this.inputFiles.length;
2742
2794
  this.$emit("update:overallProgress", this.inputFiles.length ? total : void 0);
2743
2795
  return total;
@@ -2764,14 +2816,9 @@ const __vue2_script$u = {
2764
2816
  "w-input--inner-icon-right": this.innerIconRight
2765
2817
  };
2766
2818
  },
2767
- validationClasses() {
2768
- return this.isFocused && {
2769
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false
2770
- };
2771
- },
2772
2819
  inputWrapClasses() {
2773
2820
  return {
2774
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false,
2821
+ [this.valid === false ? this.validationColor : this.color]: this.color || this.valid === false,
2775
2822
  [`${this.bgColor}--bg`]: this.bgColor,
2776
2823
  "w-input__input-wrap--file": this.type === "file",
2777
2824
  "w-input__input-wrap--round": this.round,
@@ -3157,7 +3204,6 @@ var wList = /* @__PURE__ */ function() {
3157
3204
  }();
3158
3205
  var DetachableMixin = {
3159
3206
  props: {
3160
- detachTo: { type: [String, Boolean, Object], deprecated: true },
3161
3207
  appendTo: { type: [String, Boolean, Object] },
3162
3208
  fixed: { type: Boolean },
3163
3209
  top: { type: Boolean },
@@ -3172,16 +3218,19 @@ var DetachableMixin = {
3172
3218
  zIndex: { type: [Number, String, Boolean] },
3173
3219
  activator: { type: [String, Object, HTMLElement] }
3174
3220
  },
3221
+ inject: {
3222
+ detachableDefaultRoot: { default: null }
3223
+ },
3175
3224
  data: () => ({
3176
3225
  docEventListenersHandlers: []
3177
3226
  }),
3178
3227
  computed: {
3179
3228
  appendToTarget() {
3180
- const defaultTarget = ".w-app";
3181
- if (this.detachTo && !this.appendTo) {
3182
- consoleWarn(`The ${this.$options.name} prop \`detach-to\` is deprecated. You can replace it with \`append-to\`.`);
3229
+ let defaultTarget = ".w-app";
3230
+ if (typeof this.detachableDefaultRoot === "function") {
3231
+ defaultTarget = this.detachableDefaultRoot() || defaultTarget;
3183
3232
  }
3184
- let target = this.appendTo || this.detachTo || defaultTarget;
3233
+ let target = this.appendTo || defaultTarget;
3185
3234
  if (target === true)
3186
3235
  target = defaultTarget;
3187
3236
  else if (this.appendTo === "activator")
@@ -3269,6 +3318,8 @@ var DetachableMixin = {
3269
3318
  },
3270
3319
  computeDetachableCoords() {
3271
3320
  let { top, left, width, height } = this.getActivatorCoordinates();
3321
+ if (!this.detachableEl)
3322
+ return;
3272
3323
  this.detachableEl.style.visibility = "hidden";
3273
3324
  this.detachableEl.style.display = "flex";
3274
3325
  const computedStyles2 = window.getComputedStyle(this.detachableEl, null);
@@ -3371,7 +3422,8 @@ var DetachableMixin = {
3371
3422
  this.bindActivatorEvents();
3372
3423
  else {
3373
3424
  this.$nextTick(() => {
3374
- this.activator && this.bindActivatorEvents();
3425
+ if (this.activator)
3426
+ this.bindActivatorEvents();
3375
3427
  if (this.value)
3376
3428
  this.toggle({ type: "click", target: this.activatorEl });
3377
3429
  });
@@ -3402,10 +3454,6 @@ var DetachableMixin = {
3402
3454
  if (!!bool !== this.detachableVisible)
3403
3455
  this.toggle({ type: "click", target: this.activatorEl });
3404
3456
  },
3405
- detachTo() {
3406
- this.removeFromDOM();
3407
- this.insertInDOM();
3408
- },
3409
3457
  appendTo() {
3410
3458
  this.removeFromDOM();
3411
3459
  this.insertInDOM();
@@ -3464,6 +3512,14 @@ const __vue2_script$s = {
3464
3512
  persistent: { type: Boolean },
3465
3513
  delay: { type: Number }
3466
3514
  },
3515
+ provide() {
3516
+ return {
3517
+ detachableDefaultRoot: () => {
3518
+ var _a;
3519
+ return ((_a = this.$refs.detachable) == null ? void 0 : _a.$el) || this.$refs.detachable || null;
3520
+ }
3521
+ };
3522
+ },
3467
3523
  emits: ["input", "update:modelValue", "open", "close"],
3468
3524
  data: () => ({
3469
3525
  detachableVisible: false,
@@ -3753,7 +3809,7 @@ var render$q = function() {
3753
3809
  var _vm = this;
3754
3810
  var _h = _vm.$createElement;
3755
3811
  var _c = _vm._self._c || _h;
3756
- return _c("transition", { attrs: { "name": "fade", "appear": "" }, on: { "after-leave": _vm.onClosed } }, [_vm.showOverlay ? _c("div", { directives: [{ name: "show", rawName: "v-show", value: _vm.value, expression: "value" }, { name: "focus", rawName: "v-focus" }], staticClass: "w-overlay", class: _vm.classes, style: _vm.value && _vm.styles || null, attrs: { "tabindex": "0" }, on: { "keydown": function($event) {
3812
+ return _c("transition", { attrs: { "name": "fade", "appear": "" }, on: { "after-leave": _vm.onClose } }, [_vm.showOverlay ? _c("div", { directives: [{ name: "focus", rawName: "v-focus" }], ref: "overlay", staticClass: "w-overlay", class: _vm.classes, style: _vm.styles || null, attrs: { "tabindex": "0" }, on: { "keydown": function($event) {
3757
3813
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "escape", void 0, $event.key, void 0)) {
3758
3814
  return null;
3759
3815
  }
@@ -3773,7 +3829,12 @@ const __vue2_script$q = {
3773
3829
  persistent: { type: Boolean },
3774
3830
  persistentNoAnimation: { type: Boolean }
3775
3831
  },
3776
- emits: ["input", "update:modelValue", "click", "close", "closed"],
3832
+ provide() {
3833
+ return {
3834
+ detachableDefaultRoot: () => this.$refs.overlay || null
3835
+ };
3836
+ },
3837
+ emits: ["input", "update:modelValue", "click", "before-close", "close"],
3777
3838
  data: () => ({
3778
3839
  persistentAnimate: false,
3779
3840
  showOverlay: false
@@ -3802,15 +3863,15 @@ const __vue2_script$q = {
3802
3863
  this.persistentAnimate = true;
3803
3864
  setTimeout(() => this.persistentAnimate = false, 150);
3804
3865
  } else if (!this.persistent) {
3805
- this.$emit("update:modelValue", false);
3806
- this.$emit("input", false);
3807
- this.$emit("close");
3866
+ this.showOverlay = false;
3867
+ this.$emit("before-close");
3808
3868
  }
3809
3869
  this.$emit("click", e);
3810
3870
  },
3811
- onClosed() {
3812
- this.showOverlay = false;
3813
- this.$emit("closed");
3871
+ onClose() {
3872
+ this.$emit("update:modelValue", false);
3873
+ this.$emit("input", false);
3874
+ this.$emit("close");
3814
3875
  }
3815
3876
  },
3816
3877
  created() {
@@ -3818,8 +3879,8 @@ const __vue2_script$q = {
3818
3879
  },
3819
3880
  watch: {
3820
3881
  value(bool) {
3821
- if (bool)
3822
- this.showOverlay = true;
3882
+ if (this.showOverlay !== bool)
3883
+ this.showOverlay = bool;
3823
3884
  }
3824
3885
  }
3825
3886
  };
@@ -3960,10 +4021,14 @@ var render$n = function() {
3960
4021
  return _vm.$emit("focus", $event);
3961
4022
  }, "change": function($event) {
3962
4023
  _vm.onInput($event);
3963
- } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pr2", attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pr2", attrs: { "for": "w-radio--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-radio__input", class: this.color, on: { "click": function($event) {
4024
+ } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default", function() {
4025
+ return [_vm._v(_vm._s(_vm.label))];
4026
+ })], 2) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-radio__input", class: this.color, on: { "click": function($event) {
3964
4027
  _vm.$refs.input.focus();
3965
4028
  _vm.$refs.input.click();
3966
- } } }), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pl2", attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pl2", attrs: { "for": "w-radio--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
4029
+ } } }), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default", function() {
4030
+ return [_vm._v(_vm._s(_vm.label))];
4031
+ })], 2) : _vm._e()] : _vm._e()], 2);
3967
4032
  };
3968
4033
  var staticRenderFns$n = [];
3969
4034
  var wRadio_vue_vue_type_style_index_0_lang = "";
@@ -3977,6 +4042,7 @@ const __vue2_script$n = {
3977
4042
  label: { type: String },
3978
4043
  labelOnLeft: { type: Boolean },
3979
4044
  color: { type: String, default: "primary" },
4045
+ labelColor: { type: String, default: "primary" },
3980
4046
  noRipple: { type: Boolean }
3981
4047
  },
3982
4048
  emits: ["input", "update:modelValue", "focus"],
@@ -4055,11 +4121,11 @@ var render$m = function() {
4055
4121
  _vm.$emit("update:modelValue", _vm.inputValue = null);
4056
4122
  _vm.$emit("input", null);
4057
4123
  } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.inputValue, disabled: _vm.isDisabled }, false), _vm._l(_vm.radioItems, function(item, i) {
4058
- return _c("w-radio", { key: i, class: { mt1: !_vm.inline && i }, attrs: { "name": _vm.inputName, "value": item.value === _vm.value, "label": item.label, "label-on-left": _vm.labelOnLeft, "color": item.color, "disabled": _vm.isDisabled || null, "readonly": _vm.isReadonly || null }, on: { "input": function($event) {
4124
+ return _c("w-radio", _vm._b({ key: i, class: { mt1: !_vm.inline && i }, attrs: { "name": _vm.inputName, "value": item.value === _vm.value, "disabled": _vm.isDisabled || null, "readonly": _vm.isReadonly || null }, on: { "input": function($event) {
4059
4125
  return _vm.onInput(item);
4060
4126
  }, "focus": function($event) {
4061
4127
  return _vm.$emit("focus", $event);
4062
- } } }, [_vm.$scopedSlots["item." + (i + 1)] ? _vm._t("item." + (i + 1), null, { "item": _vm.getOriginalItem(item), "index": i + 1, "checked": item.value === _vm.value }) : _vm.$scopedSlots.item ? _vm._t("item", null, { "item": _vm.getOriginalItem(item), "index": i + 1, "checked": item.value === _vm.value }) : _vm._e()], 2);
4128
+ } } }, "w-radio", { label: item.label, color: item.color, labelOnLeft: _vm.labelOnLeft, labelColor: _vm.labelColor }, false), [_vm.$slots["item." + (i + 1)] || _vm.$slots.item ? _vm._t(_vm.$slots["item." + (i + 1)] ? "item." + (i + 1) : "item", null, { "item": _vm.getOriginalItem(item), "index": i + 1, "checked": item.value === _vm.value }) : _vm._e()], 2);
4063
4129
  }), 1);
4064
4130
  };
4065
4131
  var staticRenderFns$m = [];
@@ -4075,7 +4141,8 @@ const __vue2_script$m = {
4075
4141
  itemValueKey: { type: String, default: "value" },
4076
4142
  itemColorKey: { type: String, default: "color" },
4077
4143
  inline: { type: Boolean },
4078
- color: { type: String, default: "primary" }
4144
+ color: { type: String, default: "primary" },
4145
+ labelColor: { type: String, default: "primary" }
4079
4146
  },
4080
4147
  emits: ["input", "update:modelValue", "focus"],
4081
4148
  provide() {
@@ -4262,12 +4329,9 @@ var render$k = function() {
4262
4329
  var _c = _vm._self._c || _h;
4263
4330
  return _c(_vm.formRegister ? "w-form-element" : "div", _vm._b({ ref: "formEl", tag: "component", class: _vm.classes, attrs: { "valid": _vm.valid, "wrap": _vm.hasLabel && _vm.labelPosition !== "inside" }, on: { "update:valid": function($event) {
4264
4331
  _vm.valid = $event;
4265
- }, "reset": _vm.onReset } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.selectionString, disabled: _vm.isDisabled, readonly: _vm.isReadonly }, false), [_vm.labelPosition === "left" ? [_vm.$slots.default ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("w-menu", _vm._b({ attrs: { "menu-class": "w-select__menu " + (_vm.menuClass || ""), "transition": "slide-fade-down", "append-to": (_vm.menuProps || {}).appendTo !== void 0 ? (_vm.menuProps || {}).appendTo : ".w-app", "align-left": "", "custom": "", "min-width": "activator" }, on: { "mousedown": function($event) {
4266
- _vm.isFocused = true, _vm.selectingItem = true;
4267
- }, "mouseup": function($event) {
4268
- _vm.isFocused = true, _vm.selectingItem = false;
4269
- } }, scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
4270
- var _obj, _obj$1;
4332
+ }, "reset": _vm.onReset } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.selectionString, disabled: _vm.isDisabled, readonly: _vm.isReadonly }, false), [_vm.labelPosition === "left" ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default", function() {
4333
+ return [_vm._v(_vm._s(_vm.label))];
4334
+ })], 2) : _vm._e()] : _vm._e(), _c("w-menu", _vm._b({ attrs: { "menu-class": "w-select__menu " + (_vm.menuClass || ""), "transition": "slide-fade-down", "append-to": (_vm.menuProps || {}).appendTo !== void 0 ? (_vm.menuProps || {}).appendTo : void 0, "align-left": "", "custom": "", "min-width": "activator" }, scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
4271
4335
  ref.on;
4272
4336
  return [_c("div", { staticClass: "w-select__selection-wrap", class: _vm.inputWrapClasses, attrs: { "role": "button", "aria-haspopup": "listbox", "aria-expanded": _vm.showMenu ? "true" : "false", "aria-owns": "w-select-menu--" + _vm._uid, "aria-activedescendant": "w-select-menu--" + _vm._uid + "_item-1" }, on: { "click": function($event) {
4273
4337
  !_vm.isDisabled && !_vm.isReadonly && (_vm.showMenu ? _vm.closeMenu : _vm.openMenu)();
@@ -4279,7 +4343,9 @@ var render$k = function() {
4279
4343
  !_vm.isDisabled && !_vm.isReadonly && _vm.onKeydown($event);
4280
4344
  } } }), _vm._l(_vm.inputValue.length ? _vm.inputValue : [{}], function(val, i) {
4281
4345
  return _c("input", { key: i, attrs: { "type": "hidden", "name": _vm.inputName + (_vm.multiple ? "[]" : "") }, domProps: { "value": val.value || "" } });
4282
- }), _vm.labelPosition === "inside" && _vm.showLabelInside ? [_vm.$slots.default ? _c("label", { staticClass: "w-select__label w-select__label--inside w-form-el-shakable", class: _vm.isFocused && (_obj = {}, _obj[_vm.valid === false ? "error" : _vm.color] = _vm.color || _vm.valid === false, _obj), attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--inside w-form-el-shakable", class: _vm.isFocused && (_obj$1 = {}, _obj$1[_vm.valid === false ? "error" : _vm.color] = _vm.color || _vm.valid === false, _obj$1), attrs: { "for": "w-select--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _vm.innerIconRight ? _c("w-icon", { staticClass: "w-select__icon w-select__icon--inner-right", attrs: { "tag": "label" }, on: { "click": function($event) {
4346
+ }), _vm.labelPosition === "inside" && _vm.showLabelInside ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--inside w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default", function() {
4347
+ return [_vm._v(_vm._s(_vm.label))];
4348
+ })], 2) : _vm._e()] : _vm._e(), _vm.innerIconRight ? _c("w-icon", { staticClass: "w-select__icon w-select__icon--inner-right", attrs: { "tag": "label" }, on: { "click": function($event) {
4283
4349
  return _vm.$emit("click:inner-icon-right", $event);
4284
4350
  } } }, [_vm._v(_vm._s(_vm.innerIconRight))]) : _vm._e()], 2)];
4285
4351
  } }], null, true), model: { value: _vm.showMenu, callback: function($$v) {
@@ -4304,7 +4370,9 @@ var render$k = function() {
4304
4370
  return [_vm._t("item", function() {
4305
4371
  return [_vm._v(_vm._s(item[_vm.itemLabelKey]))];
4306
4372
  }, { "item": item, "selected": selected, "index": index2 })];
4307
- } }], null, true) })], 1), _vm.labelPosition === "right" ? [_vm.$slots.default ? _c("label", { staticClass: "w-select__label w-select__label--right w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--right w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
4373
+ } }], null, true) })], 1), _vm.labelPosition === "right" ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default", function() {
4374
+ return [_vm._v(_vm._s(_vm.label))];
4375
+ })], 2) : _vm._e()] : _vm._e()], 2);
4308
4376
  };
4309
4377
  var staticRenderFns$k = [];
4310
4378
  var wSelect_vue_vue_type_style_index_0_lang = "";
@@ -4327,8 +4395,9 @@ const __vue2_script$k = {
4327
4395
  itemClass: { type: String },
4328
4396
  menuClass: { type: String },
4329
4397
  color: { type: String, default: "primary" },
4330
- selectionColor: { type: String, default: "primary" },
4331
4398
  bgColor: { type: String },
4399
+ labelColor: { type: String, default: "primary" },
4400
+ selectionColor: { type: String, default: "primary" },
4332
4401
  outline: { type: Boolean },
4333
4402
  round: { type: Boolean },
4334
4403
  shadow: { type: Boolean },
@@ -4344,7 +4413,6 @@ const __vue2_script$k = {
4344
4413
  showMenu: false,
4345
4414
  menuMinWidth: 0,
4346
4415
  isFocused: false,
4347
- selectingItem: false,
4348
4416
  selectionWrapRef: void 0
4349
4417
  }),
4350
4418
  computed: {
@@ -4374,7 +4442,7 @@ const __vue2_script$k = {
4374
4442
  "w-select--disabled": this.isDisabled,
4375
4443
  "w-select--readonly": this.isReadonly,
4376
4444
  [`w-select--${this.hasValue ? "filled" : "empty"}`]: true,
4377
- "w-select--focused": (this.isFocused || this.selectingItem) && !this.isReadonly,
4445
+ "w-select--focused": (this.isFocused || this.showMenu) && !this.isReadonly,
4378
4446
  "w-select--dark": this.dark,
4379
4447
  "w-select--floating-label": this.hasLabel && this.labelPosition === "inside" && !this.staticLabel,
4380
4448
  "w-select--no-padding": !this.outline && !this.bgColor && !this.shadow && !this.round,
@@ -4500,12 +4568,12 @@ var render$j = function() {
4500
4568
  var _vm = this;
4501
4569
  var _h = _vm.$createElement;
4502
4570
  var _c = _vm._self._c || _h;
4503
- return _c(_vm.formRegister ? "w-form-element" : "div", _vm._b({ ref: "formEl", tag: "component", class: _vm.wrapperClasses, attrs: { "valid": _vm.valid, "wrap": "" }, on: { "update:valid": function($event) {
4571
+ return _c(_vm.formRegister ? "w-form-element" : "div", _vm._b({ ref: "formEl", tag: "component", class: _vm.wrapperClasses, attrs: { "valid": _vm.valid, "wrap": _vm.formRegister || null }, on: { "update:valid": function($event) {
4504
4572
  _vm.valid = $event;
4505
4573
  }, "reset": function($event) {
4506
4574
  _vm.rangeValuePercent = 0;
4507
4575
  _vm.updateRangeValueScaled();
4508
- } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.rangeValueScaled, disabled: _vm.isDisabled, readonly: _vm.isReadonly }, false), [_vm.$slots["label-left"] ? _c("label", { staticClass: "w-slider__label w-slider__label--left w-form-el-shakable", attrs: { "for": "button--" + _vm._uid } }, [_vm._t("label-left")], 2) : _vm.labelLeft ? _c("label", { staticClass: "w-slider__label w-slider__label--left w-form-el-shakable", attrs: { "for": "button--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.labelLeft) } }) : _vm._e(), _c("div", { staticClass: "w-slider__track-wrap" }, [_c("div", { ref: "track", staticClass: "w-slider__track", class: _vm.trackClasses, attrs: { "role": "slider", "aria-label": "Slider", "aria-valuemin": _vm.minVal, "aria-valuemax": _vm.maxVal, "aria-valuenow": _vm.rangeValueScaled, "aria-readonly": _vm.isReadonly ? "true" : "false", "aria-orientation": "horizontal" }, on: { "mousedown": _vm.onTrackMouseDown, "touchstart": _vm.onTrackMouseDown } }, [_c("div", { staticClass: "w-slider__range", class: _vm.rangeClasses, style: _vm.rangeStyles }), _c("div", { staticClass: "w-slider__thumb", style: _vm.thumbStyles }, [_c("button", { ref: "thumb", staticClass: "w-slider__thumb-button", class: [_vm.color], attrs: { "id": "button--" + _vm._uid, "name": _vm.inputName, "value": _vm.rangeValueScaled, "disabled": _vm.isDisabled || null, "readonly": _vm.isReadonly || null, "aria-readonly": _vm.isReadonly ? "true" : "false" }, on: { "keydown": [function($event) {
4576
+ } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.rangeValueScaled, disabled: _vm.isDisabled, readonly: _vm.isReadonly }, false), [_vm.$slots["label-left"] ? _c("label", { staticClass: "w-slider__label w-slider__label--left w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "button--" + _vm._uid } }, [_vm._t("label-left")], 2) : _vm.labelLeft ? _c("label", { staticClass: "w-slider__label w-slider__label--left w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "button--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.labelLeft) } }) : _vm._e(), _c("div", { staticClass: "w-slider__track-wrap" }, [_c("div", { ref: "track", staticClass: "w-slider__track", class: _vm.trackClasses, attrs: { "role": "slider", "aria-label": "Slider", "aria-valuemin": _vm.minVal, "aria-valuemax": _vm.maxVal, "aria-valuenow": _vm.rangeValueScaled, "aria-readonly": _vm.isReadonly ? "true" : "false", "aria-orientation": "horizontal" }, on: { "mousedown": _vm.onTrackMouseDown, "touchstart": _vm.onTrackMouseDown } }, [_c("div", { staticClass: "w-slider__range", class: _vm.rangeClasses, style: _vm.rangeStyles }), _c("div", { staticClass: "w-slider__thumb", style: _vm.thumbStyles }, [_c("button", { ref: "thumb", staticClass: "w-slider__thumb-button", class: [_vm.color], attrs: { "id": "button--" + _vm._uid, "name": _vm.inputName, "value": _vm.rangeValueScaled, "disabled": _vm.isDisabled || null, "readonly": _vm.isReadonly || null, "aria-readonly": _vm.isReadonly ? "true" : "false", "tabindex": _vm.isDisabled || _vm.isReadonly ? -1 : null }, on: { "keydown": [function($event) {
4509
4577
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "left", 37, $event.key, ["Left", "ArrowLeft"])) {
4510
4578
  return null;
4511
4579
  }
@@ -4537,7 +4605,7 @@ var render$j = function() {
4537
4605
  } } }, [_vm._v(_vm._s(_vm.percentToScaled(currStep * (100 / _vm.numberOfSteps))))]);
4538
4606
  }), ~~_vm.numberOfSteps !== _vm.numberOfSteps ? _c("div", { staticClass: "w-slider__step-label", staticStyle: { "left": "100%" }, on: { "click": function($event) {
4539
4607
  return _vm.onStepLabelClick(100);
4540
- } } }, [_vm._v(_vm._s(this.maxVal))]) : _vm._e()], 2) : _vm._e()]), _vm.$slots["label-right"] ? _c("label", { staticClass: "w-slider__label w-slider__label--right w-form-el-shakable", attrs: { "for": "button--" + _vm._uid } }, [_vm._t("label-right")], 2) : _vm.labelRight ? _c("label", { staticClass: "w-slider__label w-slider__label--right w-form-el-shakable", attrs: { "for": "button--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.labelRight) } }) : _vm._e()]);
4608
+ } } }, [_vm._v(_vm._s(this.maxVal))]) : _vm._e()], 2) : _vm._e()]), _vm.$slots["label-right"] ? _c("label", { staticClass: "w-slider__label w-slider__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "button--" + _vm._uid } }, [_vm._t("label-right")], 2) : _vm.labelRight ? _c("label", { staticClass: "w-slider__label w-slider__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "button--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.labelRight) } }) : _vm._e()]);
4541
4609
  };
4542
4610
  var staticRenderFns$j = [];
4543
4611
  var wSlider_vue_vue_type_style_index_0_lang = "";
@@ -4548,6 +4616,7 @@ const __vue2_script$j = {
4548
4616
  value: { type: Number, default: 0 },
4549
4617
  color: { type: String, default: "primary" },
4550
4618
  bgColor: { type: String },
4619
+ labelColor: { type: String, default: "primary" },
4551
4620
  stepLabels: { type: [Boolean, Array] },
4552
4621
  thumbLabel: { type: [Boolean, String] },
4553
4622
  thumbLabelClass: { type: String },
@@ -4798,10 +4867,14 @@ var render$g = function() {
4798
4867
  _vm.onInput();
4799
4868
  }, "focus": function($event) {
4800
4869
  return _vm.$emit("focus", $event);
4801
- } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-switch__label w-form-el-shakable", attrs: { "for": "w-switch--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-switch__label w-form-el-shakable", attrs: { "for": "w-switch--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", _vm._g({ staticClass: "w-switch__input", class: _vm.inputClasses, on: { "click": function($event) {
4870
+ } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-switch__label w-switch__label--left w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-switch--" + _vm._uid } }, [_vm._t("default", function() {
4871
+ return [_vm._v(_vm._s(_vm.label))];
4872
+ })], 2) : _vm._e()] : _vm._e(), _c("div", _vm._g({ staticClass: "w-switch__input", class: _vm.inputClasses, on: { "click": function($event) {
4802
4873
  _vm.$refs.input.focus();
4803
4874
  _vm.$refs.input.click();
4804
- } } }, _vm.$listeners)), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-switch__label w-form-el-shakable", attrs: { "for": "w-switch--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-switch__label w-form-el-shakable", attrs: { "for": "w-switch--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
4875
+ } } }, _vm.$listeners), [_vm.$slots.track ? _c("div", { staticClass: "w-switch__track" }, [_vm._t("track")], 2) : _vm._e(), _vm.$slots.thumb ? _c("div", { staticClass: "w-switch__thumb" }, [_vm._t("thumb")], 2) : _vm._e()]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-switch__label w-switch__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-switch--" + _vm._uid } }, [_vm._t("default", function() {
4876
+ return [_vm._v(_vm._s(_vm.label))];
4877
+ })], 2) : _vm._e()] : _vm._e()], 2);
4805
4878
  };
4806
4879
  var staticRenderFns$g = [];
4807
4880
  var wSwitch_vue_vue_type_style_index_0_lang = "";
@@ -4813,6 +4886,7 @@ const __vue2_script$g = {
4813
4886
  label: { type: String, default: "" },
4814
4887
  labelOnLeft: { type: Boolean },
4815
4888
  color: { type: String, default: "primary" },
4889
+ labelColor: { type: String, default: "primary" },
4816
4890
  thin: { type: Boolean },
4817
4891
  noRipple: { type: Boolean }
4818
4892
  },
@@ -4838,6 +4912,8 @@ const __vue2_script$g = {
4838
4912
  "w-switch--disabled": this.isDisabled,
4839
4913
  "w-switch--readonly": this.isReadonly,
4840
4914
  "w-switch--ripple": this.ripple.start,
4915
+ "w-switch--custom-thumb": this.$slots.thumb,
4916
+ "w-switch--custom-track": this.$slots.track,
4841
4917
  "w-switch--rippled": this.ripple.end
4842
4918
  };
4843
4919
  },
@@ -4938,6 +5014,7 @@ const __vue2_script$e = {
4938
5014
  titleClass: { type: String },
4939
5015
  activeClass: { type: String, default: "primary" },
4940
5016
  noSlider: { type: Boolean },
5017
+ pillSlider: { type: Boolean },
4941
5018
  sliderColor: { type: String, default: "primary" },
4942
5019
  contentClass: { type: String },
4943
5020
  transition: { type: [String, Boolean], default: "" },
@@ -4984,6 +5061,7 @@ const __vue2_script$e = {
4984
5061
  return {
4985
5062
  "w-tabs--card": this.card,
4986
5063
  "w-tabs--no-slider": this.noSlider,
5064
+ "w-tabs--pill-slider": this.pillSlider,
4987
5065
  "w-tabs--fill-bar": this.fillBar,
4988
5066
  "w-tabs--init": this.init
4989
5067
  };
@@ -5483,7 +5561,6 @@ var wTag = /* @__PURE__ */ function() {
5483
5561
  return __component__$c.exports;
5484
5562
  }();
5485
5563
  var render$b = function() {
5486
- var _obj, _obj$1;
5487
5564
  var _vm = this;
5488
5565
  var _h = _vm.$createElement;
5489
5566
  var _c = _vm._self._c || _h;
@@ -5492,16 +5569,22 @@ var render$b = function() {
5492
5569
  }, "reset": function($event) {
5493
5570
  _vm.$emit("update:modelValue", _vm.inputValue = "");
5494
5571
  _vm.$emit("input", "");
5495
- } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.inputValue, disabled: _vm.isDisabled, readonly: _vm.isReadonly, isFocused: _vm.isFocused }, false), [_vm.labelPosition === "left" ? [_vm.$slots.default ? _c("label", { staticClass: "w-textarea__label w-textarea__label--left w-form-el-shakable", attrs: { "for": "w-textarea--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-textarea__label w-textarea__label--left w-form-el-shakable", attrs: { "for": "w-textarea--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-textarea__textarea-wrap", class: _vm.inputWrapClasses }, [_vm.innerIconLeft ? _c("w-icon", { staticClass: "w-textarea__icon w-textarea__icon--inner-left", attrs: { "tag": "label", "for": "w-textarea--" + _vm._uid }, on: { "click": function($event) {
5572
+ } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.inputValue, disabled: _vm.isDisabled, readonly: _vm.isReadonly, isFocused: _vm.isFocused }, false), [_vm.labelPosition === "left" ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-textarea__label w-textarea__label--left w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-textarea--" + _vm._uid } }, [_vm._t("default", function() {
5573
+ return [_vm._v(_vm._s(_vm.label))];
5574
+ })], 2) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-textarea__textarea-wrap", class: _vm.inputWrapClasses }, [_vm.innerIconLeft ? _c("w-icon", { staticClass: "w-textarea__icon w-textarea__icon--inner-left", attrs: { "tag": "label", "for": "w-textarea--" + _vm._uid }, on: { "click": function($event) {
5496
5575
  return _vm.$emit("click:inner-icon-left", $event);
5497
5576
  } } }, [_vm._v(_vm._s(_vm.innerIconLeft))]) : _vm._e(), _c("textarea", _vm._g({ directives: [{ name: "model", rawName: "v-model", value: _vm.inputValue, expression: "inputValue" }], ref: "textarea", staticClass: "w-textarea__textarea", attrs: { "id": "w-textarea--" + _vm._uid, "name": _vm.inputName, "placeholder": _vm.placeholder || null, "rows": _vm.rows || null, "cols": _vm.cols || null, "readonly": _vm.isReadonly || null, "aria-readonly": _vm.isReadonly ? "true" : "false", "disabled": _vm.isDisabled || null, "required": _vm.required || null, "tabindex": _vm.tabindex || null }, domProps: { "value": _vm.inputValue }, on: { "input": [function($event) {
5498
5577
  if ($event.target.composing) {
5499
5578
  return;
5500
5579
  }
5501
5580
  _vm.inputValue = $event.target.value;
5502
- }, _vm.onInput], "focus": _vm.onFocus, "blur": _vm.onBlur } }, _vm.listeners)), _vm.labelPosition === "inside" && _vm.showLabelInside ? [_vm.$slots.default ? _c("label", { staticClass: "w-textarea__label w-textarea__label--inside w-form-el-shakable", class: _vm.isFocused && (_obj = {}, _obj[_vm.valid === false ? "error" : this.color] = this.color || _vm.valid === false, _obj), attrs: { "for": "w-textarea--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-textarea__label w-textarea__label--inside w-form-el-shakable", class: _vm.isFocused && (_obj$1 = {}, _obj$1[_vm.valid === false ? "error" : _vm.color] = _vm.color || _vm.valid === false, _obj$1), attrs: { "for": "w-textarea--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _vm.innerIconRight ? _c("w-icon", { staticClass: "w-textarea__icon w-textarea__icon--inner-right", attrs: { "tag": "label", "for": "w-textarea--" + _vm._uid }, on: { "click": function($event) {
5581
+ }, _vm.onInput], "focus": _vm.onFocus, "blur": _vm.onBlur } }, _vm.listeners)), _vm.labelPosition === "inside" && _vm.showLabelInside ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-textarea__label w-textarea__label--inside w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-textarea--" + _vm._uid } }, [_vm._t("default", function() {
5582
+ return [_vm._v(_vm._s(_vm.label))];
5583
+ })], 2) : _vm._e()] : _vm._e(), _vm.innerIconRight ? _c("w-icon", { staticClass: "w-textarea__icon w-textarea__icon--inner-right", attrs: { "tag": "label", "for": "w-textarea--" + _vm._uid }, on: { "click": function($event) {
5503
5584
  return _vm.$emit("click:inner-icon-right", $event);
5504
- } } }, [_vm._v(_vm._s(_vm.innerIconRight))]) : _vm._e()], 2), _vm.labelPosition === "right" ? [_vm.$slots.default ? _c("label", { staticClass: "w-textarea__label w-textarea__label--right w-form-el-shakable", attrs: { "for": "w-textarea--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-textarea__label w-textarea__label--right w-form-el-shakable", attrs: { "for": "w-textarea--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
5585
+ } } }, [_vm._v(_vm._s(_vm.innerIconRight))]) : _vm._e()], 2), _vm.labelPosition === "right" ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-textarea__label w-textarea__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-textarea--" + _vm._uid } }, [_vm._t("default", function() {
5586
+ return [_vm._v(_vm._s(_vm.label))];
5587
+ })], 2) : _vm._e()] : _vm._e()], 2);
5505
5588
  };
5506
5589
  var staticRenderFns$b = [];
5507
5590
  var wTextarea_vue_vue_type_style_index_0_lang = "";
@@ -5518,6 +5601,7 @@ const __vue2_script$b = {
5518
5601
  placeholder: { type: String },
5519
5602
  color: { type: String, default: "primary" },
5520
5603
  bgColor: { type: String },
5604
+ labelColor: { type: String, default: "primary" },
5521
5605
  dark: { type: Boolean },
5522
5606
  outline: { type: Boolean },
5523
5607
  shadow: { type: Boolean },
@@ -5569,7 +5653,7 @@ const __vue2_script$b = {
5569
5653
  },
5570
5654
  inputWrapClasses() {
5571
5655
  return {
5572
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false,
5656
+ [this.valid === false ? this.validationColor : this.color]: this.color || this.valid === false,
5573
5657
  [`${this.bgColor}--bg`]: this.bgColor,
5574
5658
  "w-textarea__textarea-wrap--tile": this.tile,
5575
5659
  "w-textarea__textarea-wrap--box": this.outline || this.bgColor || this.shadow,
@@ -5606,6 +5690,7 @@ const __vue2_script$b = {
5606
5690
  const linesCount = (this.$refs.textarea.scrollHeight - this.paddingY) / this.lineHeight;
5607
5691
  const height = Math.max(linesCount, this.rows) * this.lineHeight + this.paddingY;
5608
5692
  this.$refs.textarea.style.height = height + "px";
5693
+ console.log("recomputing height", height);
5609
5694
  },
5610
5695
  getLineHeight() {
5611
5696
  const computedStyles2 = window.getComputedStyle(this.$refs.textarea, null);
@@ -5623,7 +5708,7 @@ const __vue2_script$b = {
5623
5708
  watch: {
5624
5709
  value(value) {
5625
5710
  this.inputValue = value;
5626
- this.computeHeight();
5711
+ this.$nextTick(this.computeHeight);
5627
5712
  },
5628
5713
  resizable(value) {
5629
5714
  if (value)
@@ -5655,7 +5740,7 @@ var render$a = function() {
5655
5740
  var _c = _vm._self._c || _h;
5656
5741
  return _c("ul", { staticClass: "w-timeline" }, _vm._l(_vm.items, function(item, i) {
5657
5742
  var _obj;
5658
- return _c("li", { key: i, staticClass: "w-timeline-item" }, [_c(item[_vm.itemIconKey] || _vm.icon ? "w-icon" : "div", { tag: "div", staticClass: "w-timeline-item__bullet", class: (_obj = {}, _obj[item[_vm.itemColorKey] || _vm.color] = item[_vm.itemColorKey] || _vm.color, _obj) }, [_vm._v(_vm._s(item[_vm.itemIconKey] || _vm.icon))]), !_vm.$slots["item." + (i + 1)] ? _vm._t("item", function() {
5743
+ return _c("li", { key: i, staticClass: "w-timeline-item" }, [_c(item[_vm.itemIconKey] || _vm.icon ? "w-icon" : "div", { tag: "component", staticClass: "w-timeline-item__bullet", class: (_obj = {}, _obj[item[_vm.itemColorKey] || _vm.color] = item[_vm.itemColorKey] || _vm.color, _obj) }, [_vm._v(_vm._s(item[_vm.itemIconKey] || _vm.icon))]), !_vm.$slots["item." + (i + 1)] ? _vm._t("item", function() {
5659
5744
  var _obj2;
5660
5745
  return [_c("div", { staticClass: "w-timeline-item__title", class: (_obj2 = {}, _obj2[item[_vm.itemColorKey] || _vm.color] = item[_vm.itemColorKey] || _vm.color, _obj2), domProps: { "innerHTML": _vm._s(item[_vm.itemTitleKey]) } }), _c("div", { staticClass: "w-timeline-item__content", domProps: { "innerHTML": _vm._s(item[_vm.itemContentKey]) } })];
5661
5746
  }, { "item": item, "index": i + 1 }) : _vm._t("item." + (i + 1), null, { "item": item, "index": i + 1 })], 2);
@@ -5702,6 +5787,10 @@ const __vue2_script$9 = {
5702
5787
  absolute: { type: Boolean },
5703
5788
  fixed: { type: Boolean },
5704
5789
  bottom: { type: Boolean },
5790
+ vertical: { type: Boolean },
5791
+ left: { type: Boolean },
5792
+ right: { type: Boolean },
5793
+ width: { type: [Number, String], default: null },
5705
5794
  height: { type: [Number, String], default: null },
5706
5795
  noBorder: { type: Boolean },
5707
5796
  shadow: { type: Boolean }
@@ -5712,19 +5801,27 @@ const __vue2_script$9 = {
5712
5801
  const h = this.height;
5713
5802
  return h && parseInt(h) == h ? h + "px" : h;
5714
5803
  },
5804
+ toolbarWidth() {
5805
+ const w = this.width;
5806
+ return w && parseInt(w) == w ? w + "px" : w;
5807
+ },
5715
5808
  classes() {
5716
5809
  return {
5717
5810
  [this.color]: !!this.color,
5718
5811
  [`${this.bgColor}--bg`]: !!this.bgColor,
5719
5812
  "w-toolbar--absolute": !!this.absolute,
5720
5813
  "w-toolbar--fixed": !!this.fixed,
5721
- [`w-toolbar--${this.bottom ? "bottom" : "top"}`]: true,
5814
+ [`w-toolbar--${this.bottom ? "bottom" : "top"}`]: !this.vertical,
5815
+ [`w-toolbar--vertical w-toolbar--${this.right ? "right" : "left"}`]: this.vertical,
5722
5816
  "w-toolbar--no-border": this.noBorder,
5723
5817
  "w-toolbar--shadow": !!this.shadow
5724
5818
  };
5725
5819
  },
5726
5820
  styles() {
5727
- return this.height ? `height: ${this.toolbarHeight}` : false;
5821
+ return {
5822
+ height: this.height && !this.vertical ? this.toolbarHeight : null,
5823
+ width: this.width && this.vertical ? this.toolbarWidth : null
5824
+ };
5728
5825
  }
5729
5826
  }
5730
5827
  };
@@ -5742,7 +5839,7 @@ var render$8 = function() {
5742
5839
  var _vm = this;
5743
5840
  var _h = _vm.$createElement;
5744
5841
  var _c = _vm._self._c || _h;
5745
- return _c("div", { staticClass: "w-tooltip-wrap" }, [_vm._t("activator", null, { "on": _vm.activatorEventHandlers }), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" } }, [_vm.detachableVisible ? _c("div", { ref: "detachable", staticClass: "w-tooltip", class: _vm.classes, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()])], 2);
5842
+ return _c("div", { staticClass: "w-tooltip-wrap" }, [_vm._t("activator", null, { "on": _vm.activatorEventHandlers }), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" } }, [_vm.detachableVisible ? _c("div", { key: _vm._uid, ref: "detachable", staticClass: "w-tooltip", class: _vm.classes, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()])], 2);
5746
5843
  };
5747
5844
  var staticRenderFns$8 = [];
5748
5845
  var wTooltip_vue_vue_type_style_index_0_lang = "";
@@ -5900,7 +5997,7 @@ var render$6 = function() {
5900
5997
  var _vm = this;
5901
5998
  var _h = _vm.$createElement;
5902
5999
  var _c = _vm._self._c || _h;
5903
- return _c("transition", _vm._b({ attrs: { "name": "expand", "mode": "out-in", "css": false }, on: { "before-appear": _vm.beforeAppear, "appear": _vm.appear, "after-appear": _vm.afterAppear, "before-enter": _vm.beforeEnter, "enter": _vm.enter, "after-enter": _vm.afterEnter, "before-leave": _vm.beforeLeave, "leave": _vm.leave, "after-leave": _vm.afterLeave } }, "transition", _vm.$props, false), [_vm._t("default")], 2);
6000
+ return _c("transition", { attrs: { "name": "expand", "mode": "out-in", "css": false }, on: { "before-appear": _vm.beforeAppear, "appear": _vm.appear, "after-appear": _vm.afterAppear, "before-enter": _vm.beforeEnter, "enter": _vm.enter, "after-enter": _vm.afterEnter, "before-leave": _vm.beforeLeave, "leave": _vm.leave, "after-leave": _vm.afterLeave } }, [_vm._t("default")], 2);
5904
6001
  };
5905
6002
  var staticRenderFns$6 = [];
5906
6003
  const __vue2_script$6 = {
@@ -5908,7 +6005,7 @@ const __vue2_script$6 = {
5908
6005
  props: {
5909
6006
  x: { type: Boolean },
5910
6007
  y: { type: Boolean },
5911
- duration: { type: Number, default: 200 }
6008
+ duration: { type: Number, default: 250 }
5912
6009
  },
5913
6010
  data: () => ({
5914
6011
  el: {
@@ -5943,53 +6040,44 @@ const __vue2_script$6 = {
5943
6040
  if (this.cleanTransitionCycle)
5944
6041
  this.saveOriginalStyles(el);
5945
6042
  this.cleanTransitionCycle = false;
5946
- this.$emit("before-appear");
5947
6043
  },
5948
6044
  appear(el, done) {
5949
6045
  this.show(el);
5950
6046
  setTimeout(done, this.duration);
5951
6047
  this.cleanTransitionCycle = false;
5952
- this.$emit("appear");
5953
6048
  },
5954
6049
  afterAppear(el) {
5955
6050
  this.applyOriginalStyles(el);
5956
6051
  el.style.cssText = el.style.cssText.replace("display: none;", "");
5957
6052
  this.cleanTransitionCycle = false;
5958
- this.$emit("after-appear");
5959
6053
  },
5960
6054
  beforeEnter(el) {
5961
6055
  if (this.cleanTransitionCycle)
5962
6056
  this.saveOriginalStyles(el);
5963
6057
  this.cleanTransitionCycle = false;
5964
- this.$emit("before-enter");
5965
6058
  },
5966
6059
  enter(el, done) {
5967
6060
  this.show(el);
5968
6061
  setTimeout(done, this.duration);
5969
6062
  this.cleanTransitionCycle = false;
5970
- this.$emit("enter");
5971
6063
  },
5972
6064
  afterEnter(el) {
5973
6065
  this.applyOriginalStyles(el);
5974
6066
  el.style.cssText = el.style.cssText.replace("display: none;", "");
5975
6067
  this.cleanTransitionCycle = false;
5976
- this.$emit("after-enter");
5977
6068
  },
5978
6069
  beforeLeave(el) {
5979
6070
  this.beforeHide(el);
5980
6071
  this.cleanTransitionCycle = false;
5981
- this.$emit("before-leave");
5982
6072
  },
5983
6073
  leave(el, done) {
5984
6074
  this.hide(el);
5985
6075
  setTimeout(done, this.duration);
5986
6076
  this.cleanTransitionCycle = false;
5987
- this.$emit("leave");
5988
6077
  },
5989
6078
  afterLeave(el) {
5990
6079
  this.applyOriginalStyles(el);
5991
6080
  this.cleanTransitionCycle = true;
5992
- this.$emit("after-leave");
5993
6081
  },
5994
6082
  applyHideStyles(el) {
5995
6083
  if (this.animX) {
@@ -6250,9 +6338,8 @@ function __vue2_injectStyles(context) {
6250
6338
  var wTransitionTwist = /* @__PURE__ */ function() {
6251
6339
  return __component__.exports;
6252
6340
  }();
6253
- var components = /* @__PURE__ */ Object.freeze({
6341
+ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6254
6342
  __proto__: null,
6255
- [Symbol.toStringTag]: "Module",
6256
6343
  WAccordion: wAccordion,
6257
6344
  WAlert: wAlert,
6258
6345
  WApp: wApp,
@@ -6303,7 +6390,7 @@ var components = /* @__PURE__ */ Object.freeze({
6303
6390
  WTransitionSlide: wTransitionSlide,
6304
6391
  WTransitionSlideFade: wTransitionSlideFade,
6305
6392
  WTransitionTwist: wTransitionTwist
6306
- });
6393
+ }, Symbol.toStringTag, { value: "Module" }));
6307
6394
  const install = WaveUI.install;
6308
6395
  WaveUI.install = (Vue2, options = {}) => install.call(WaveUI, Vue2, __spreadValues({ components }, options));
6309
6396
  if (typeof window !== "undefined" && window.Vue)