wave-ui 1.52.0 → 1.53.2

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 (30) 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 +232 -148
  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 +51 -20
  8. package/src/wave-ui/components/w-checkbox.vue +11 -6
  9. package/src/wave-ui/components/w-checkboxes.vue +9 -19
  10. package/src/wave-ui/components/w-dialog.vue +18 -9
  11. package/src/wave-ui/components/w-divider.vue +4 -1
  12. package/src/wave-ui/components/w-drawer.vue +46 -21
  13. package/src/wave-ui/components/w-form-element.vue +19 -13
  14. package/src/wave-ui/components/w-form.vue +16 -11
  15. package/src/wave-ui/components/w-icon.vue +19 -17
  16. package/src/wave-ui/components/w-input.vue +14 -37
  17. package/src/wave-ui/components/w-menu.vue +9 -1
  18. package/src/wave-ui/components/w-notification.vue +3 -1
  19. package/src/wave-ui/components/w-overlay.vue +21 -15
  20. package/src/wave-ui/components/w-radio.vue +11 -6
  21. package/src/wave-ui/components/w-radios.vue +6 -15
  22. package/src/wave-ui/components/w-select.vue +13 -28
  23. package/src/wave-ui/components/w-slider.vue +21 -10
  24. package/src/wave-ui/components/w-switch.vue +44 -16
  25. package/src/wave-ui/components/w-tabs/index.vue +11 -1
  26. package/src/wave-ui/components/w-textarea.vue +16 -18
  27. package/src/wave-ui/components/w-toolbar.vue +2 -2
  28. package/src/wave-ui/components/w-tooltip.vue +1 -1
  29. package/src/wave-ui/mixins/detachable.js +17 -13
  30. 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,6 +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
+ })));
686
+ }
687
+ },
688
+ created() {
689
+ this.updateItems();
690
+ },
691
+ watch: {
692
+ value() {
693
+ this.updateItems();
694
+ },
695
+ items: {
696
+ handler() {
697
+ this.updateItems();
698
+ },
699
+ deep: true
677
700
  }
678
701
  }
679
702
  };
@@ -1394,6 +1417,15 @@ var FormElementMixin = {
1394
1417
  },
1395
1418
  isReadonly() {
1396
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
+ };
1397
1429
  }
1398
1430
  },
1399
1431
  methods: {
@@ -1422,10 +1454,14 @@ var render$H = function() {
1422
1454
  return null;
1423
1455
  }
1424
1456
  return _vm.onInput.apply(null, arguments);
1425
- } } }), _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) {
1426
1460
  _vm.$refs.input.focus();
1427
1461
  _vm.$refs.input.click();
1428
- } } }, [_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);
1429
1465
  };
1430
1466
  var staticRenderFns$H = [];
1431
1467
  var wCheckbox_vue_vue_type_style_index_0_lang = "";
@@ -1439,6 +1475,7 @@ const __vue2_script$H = {
1439
1475
  label: { type: String },
1440
1476
  labelOnLeft: { type: Boolean },
1441
1477
  color: { type: String, default: "primary" },
1478
+ labelColor: { type: String, default: "primary" },
1442
1479
  noRipple: { type: Boolean },
1443
1480
  indeterminate: { type: Boolean },
1444
1481
  round: { type: Boolean }
@@ -1514,11 +1551,11 @@ var render$G = function() {
1514
1551
  }, "reset": _vm.reset } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.checkboxItems.some(function(item) {
1515
1552
  return item._isChecked;
1516
1553
  }), disabled: _vm.isDisabled }, false), _vm._l(_vm.checkboxItems, function(item, i) {
1517
- 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) {
1518
1555
  return _vm.toggleCheck(item, $event);
1519
1556
  }, "focus": function($event) {
1520
1557
  return _vm.$emit("focus", $event);
1521
- } } }, [_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);
1522
1559
  }), 1);
1523
1560
  };
1524
1561
  var staticRenderFns$G = [];
@@ -1535,7 +1572,8 @@ const __vue2_script$G = {
1535
1572
  itemColorKey: { type: String, default: "color" },
1536
1573
  inline: { type: Boolean },
1537
1574
  round: { type: Boolean },
1538
- color: { type: String, default: "primary" }
1575
+ color: { type: String, default: "primary" },
1576
+ labelColor: { type: String, default: "primary" }
1539
1577
  },
1540
1578
  emits: ["input", "update:modelValue", "focus"],
1541
1579
  provide() {
@@ -1735,9 +1773,7 @@ var render$D = function() {
1735
1773
  var _vm = this;
1736
1774
  var _h = _vm.$createElement;
1737
1775
  var _c = _vm._self._c || _h;
1738
- 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) {
1739
- return _vm.$emit("closed");
1740
- } } }, [_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() {
1741
1777
  return [_vm._t("title")];
1742
1778
  }, proxy: true } : null, _vm.$slots.actions ? { key: "actions", fn: function() {
1743
1779
  return [_vm._t("actions")];
@@ -1764,7 +1800,12 @@ const __vue2_script$D = {
1764
1800
  bgColor: { type: String },
1765
1801
  overlayOpacity: { type: [Number, String, Boolean] }
1766
1802
  },
1767
- 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"],
1768
1809
  data() {
1769
1810
  return {
1770
1811
  showWrapper: this.value,
@@ -1794,11 +1835,14 @@ const __vue2_script$D = {
1794
1835
  if (!this.persistent) {
1795
1836
  this.showContent = false;
1796
1837
  if (this.transition === "fade")
1797
- this.onClose();
1838
+ this.onBeforeClose();
1798
1839
  }
1799
1840
  },
1800
- onClose() {
1841
+ onBeforeClose() {
1801
1842
  this.showWrapper = false;
1843
+ this.$emit("before-close");
1844
+ },
1845
+ onClose() {
1802
1846
  this.$emit("update:modelValue", false);
1803
1847
  this.$emit("input", false);
1804
1848
  this.$emit("close");
@@ -1806,8 +1850,7 @@ const __vue2_script$D = {
1806
1850
  },
1807
1851
  watch: {
1808
1852
  value(value) {
1809
- if (value)
1810
- this.showWrapper = value;
1853
+ this.showWrapper = value;
1811
1854
  this.showContent = value;
1812
1855
  }
1813
1856
  }
@@ -1826,7 +1869,7 @@ var render$C = function() {
1826
1869
  var _vm = this;
1827
1870
  var _h = _vm.$createElement;
1828
1871
  var _c = _vm._self._c || _h;
1829
- 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);
1830
1873
  };
1831
1874
  var staticRenderFns$C = [];
1832
1875
  var wDivider_vue_vue_type_style_index_0_lang = "";
@@ -1861,11 +1904,15 @@ var render$B = function() {
1861
1904
  var _vm = this;
1862
1905
  var _h = _vm.$createElement;
1863
1906
  var _c = _vm._self._c || _h;
1864
- 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) {
1865
1908
  _vm.showDrawer = $$v;
1866
- }, 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) {
1867
1912
  _vm.showDrawer = $$v;
1868
- }, 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();
1869
1916
  };
1870
1917
  var staticRenderFns$B = [];
1871
1918
  var wDrawer_vue_vue_type_style_index_0_lang = "";
@@ -1893,7 +1940,12 @@ const __vue2_script$B = {
1893
1940
  overlayOpacity: { type: [Number, String, Boolean] },
1894
1941
  tag: { type: String, default: "aside" }
1895
1942
  },
1896
- 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"],
1897
1949
  data() {
1898
1950
  return {
1899
1951
  showWrapper: this.value,
@@ -1934,7 +1986,7 @@ const __vue2_script$B = {
1934
1986
  },
1935
1987
  trackStyles() {
1936
1988
  return this.pushContent && this.showDrawer && {
1937
- transform: `translateX(${this.position === "left" ? "" : "-"}${this.size})`
1989
+ transform: `translateX(${this.position === "left" ? "" : "-"}${this.size || "200px"})`
1938
1990
  };
1939
1991
  },
1940
1992
  styles() {
@@ -1951,21 +2003,21 @@ const __vue2_script$B = {
1951
2003
  }
1952
2004
  },
1953
2005
  methods: {
1954
- close() {
1955
- this.showWrapper = false;
1956
- this.$emit("update:modelValue", false);
1957
- this.$emit("input", false);
1958
- this.$emit("close", false);
1959
- },
1960
2006
  onOutsideClick() {
1961
- if (!this.persistent) {
1962
- this.showDrawer = false;
1963
- if (this.pushContent)
1964
- this.close();
1965
- } else if (!this.persistentNoAnimation) {
2007
+ if (this.persistent && !this.persistentNoAnimation) {
1966
2008
  this.persistentAnimate = true;
1967
2009
  setTimeout(() => this.persistentAnimate = false, 200);
1968
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");
1969
2021
  }
1970
2022
  },
1971
2023
  watch: {
@@ -2068,23 +2120,24 @@ const asyncSome = async (array, predicate) => {
2068
2120
  };
2069
2121
  const __vue2_script$z = {
2070
2122
  name: "w-form",
2071
- provide() {
2072
- return {
2073
- formRegister: this.register,
2074
- formUnregister: this.unregister,
2075
- validateElement: this.validateElement,
2076
- formProps: this.$props
2077
- };
2078
- },
2079
2123
  props: {
2080
2124
  value: {},
2081
2125
  allowSubmit: { type: Boolean },
2082
2126
  noKeyupValidation: { type: Boolean },
2083
2127
  noBlurValidation: { type: Boolean },
2084
2128
  errorPlaceholders: { type: Boolean },
2129
+ validationColor: { type: String, default: "error" },
2085
2130
  disabled: { type: Boolean },
2086
2131
  readonly: { type: Boolean }
2087
2132
  },
2133
+ provide() {
2134
+ return {
2135
+ formRegister: this.register,
2136
+ formUnregister: this.unregister,
2137
+ validateElement: this.validateElement,
2138
+ formProps: this.$props
2139
+ };
2140
+ },
2088
2141
  emits: [
2089
2142
  "submit",
2090
2143
  "before-validate",
@@ -2202,12 +2255,22 @@ var render$y = function() {
2202
2255
  var _vm = this;
2203
2256
  var _h = _vm.$createElement;
2204
2257
  var _c = _vm._self._c || _h;
2205
- 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);
2206
2259
  };
2207
2260
  var staticRenderFns$y = [];
2208
2261
  var wFormElement_vue_vue_type_style_index_0_lang = "";
2209
2262
  const __vue2_script$y = {
2210
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
+ },
2211
2274
  inject: {
2212
2275
  formRegister: { default: null },
2213
2276
  formUnregister: { default: null },
@@ -2216,21 +2279,12 @@ const __vue2_script$y = {
2216
2279
  default: () => ({
2217
2280
  noKeyupValidation: false,
2218
2281
  noBlurValidation: false,
2282
+ validationColor: "error",
2219
2283
  disabled: false,
2220
2284
  readonly: false
2221
2285
  })
2222
2286
  }
2223
2287
  },
2224
- props: {
2225
- valid: { required: true },
2226
- disabled: { type: Boolean },
2227
- readonly: { type: Boolean },
2228
- inputValue: { required: true },
2229
- validators: { type: Array },
2230
- isFocused: { default: false },
2231
- column: { default: false },
2232
- wrap: { default: false }
2233
- },
2234
2288
  emits: ["reset", "update:valid"],
2235
2289
  data: () => ({
2236
2290
  Validation: {
@@ -2370,7 +2424,7 @@ var render$w = function() {
2370
2424
  var _vm = this;
2371
2425
  var _h = _vm.$createElement;
2372
2426
  var _c = _vm._self._c || _h;
2373
- 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);
2374
2428
  };
2375
2429
  var staticRenderFns$w = [];
2376
2430
  var wIcon_vue_vue_type_style_index_0_lang = "";
@@ -2400,14 +2454,12 @@ const __vue2_script$w = {
2400
2454
  },
2401
2455
  emits: [],
2402
2456
  data: () => ({
2403
- icon: ""
2457
+ icon: "",
2458
+ fontName: ""
2404
2459
  }),
2405
2460
  computed: {
2406
- ligature() {
2407
- if (!config.iconsLigature)
2408
- return false;
2409
- const [fontName, icon] = this.icon.split(" ");
2410
- return fontName === config.iconsLigature && { fontName, icon };
2461
+ hasLigature() {
2462
+ return config.iconsLigature === this.fontName;
2411
2463
  },
2412
2464
  forcedSize() {
2413
2465
  return this.size && (!isNaN(this.size) ? `${this.size}px` : this.size);
@@ -2417,7 +2469,8 @@ const __vue2_script$w = {
2417
2469
  },
2418
2470
  classes() {
2419
2471
  return {
2420
- [this.icon]: true,
2472
+ [this.fontName]: true,
2473
+ [!this.hasLigature && this.icon]: !this.hasLigature && this.icon,
2421
2474
  [this.color]: this.color,
2422
2475
  [`${this.bgColor}--bg`]: this.bgColor,
2423
2476
  [`size--${this.presetSize}`]: this.presetSize && !this.forcedSize,
@@ -2431,19 +2484,21 @@ const __vue2_script$w = {
2431
2484
  "w-icon--rotate-90": this.rotate90a,
2432
2485
  "w-icon--rotate-135": this.rotate135a,
2433
2486
  "w-icon--flip-x": this.flipX,
2434
- "w-icon--flip-y": this.flipY,
2435
- [this.ligature && this.ligature.fontName]: this.ligature
2487
+ "w-icon--flip-y": this.flipY
2436
2488
  };
2437
2489
  },
2438
2490
  styles() {
2439
2491
  return this.forcedSize && `font-size: ${this.forcedSize}`;
2440
2492
  }
2441
2493
  },
2442
- created() {
2443
- this.icon = this.$slots.default[0].text.trim() || "";
2444
- },
2445
- beforeUpdate() {
2446
- 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
+ }
2447
2502
  }
2448
2503
  };
2449
2504
  const __cssModules$w = {};
@@ -2611,7 +2666,9 @@ var render$u = function() {
2611
2666
  return;
2612
2667
  }
2613
2668
  _vm.inputValue = $event.target.value;
2614
- } } }) : [_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) {
2615
2672
  return _vm.$emit("click:inner-icon-left", $event);
2616
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) {
2617
2674
  var $$a = _vm.inputValue, $$el = $event.target, $$c = $$el.checked ? true : false;
@@ -2636,11 +2693,15 @@ var render$u = function() {
2636
2693
  return [_vm.$slots["no-file"] === void 0 ? [_vm._v("No file")] : _vm._e()];
2637
2694
  })], 2) : _vm._e(), _vm._l(_vm.inputFiles, function(file, i) {
2638
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 : ""))]);
2639
- })], 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) {
2640
2699
  return _vm.$emit("click:inner-icon-right", $event);
2641
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) {
2642
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" })];
2643
- })], 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);
2644
2705
  };
2645
2706
  var staticRenderFns$u = [];
2646
2707
  var wInput_vue_vue_type_style_index_0_lang = "";
@@ -2657,8 +2718,9 @@ const __vue2_script$u = {
2657
2718
  staticLabel: { type: Boolean },
2658
2719
  placeholder: { type: String },
2659
2720
  color: { type: String, default: "primary" },
2660
- progressColor: { type: String },
2661
2721
  bgColor: { type: String },
2722
+ labelColor: { type: String, default: "primary" },
2723
+ progressColor: { type: String },
2662
2724
  minlength: { type: [Number, String] },
2663
2725
  maxlength: { type: [Number, String] },
2664
2726
  step: { type: [Number, String] },
@@ -2727,7 +2789,7 @@ const __vue2_script$u = {
2727
2789
  return !this.staticLabel || !this.hasValue && !this.placeholder;
2728
2790
  },
2729
2791
  overallFilesProgress() {
2730
- const progress = this.inputFiles.reduce((total2, file) => total2 + file.progress, 0);
2792
+ const progress = +this.inputFiles.reduce((total2, file) => total2 + file.progress, 0);
2731
2793
  const total = progress / this.inputFiles.length;
2732
2794
  this.$emit("update:overallProgress", this.inputFiles.length ? total : void 0);
2733
2795
  return total;
@@ -2754,14 +2816,9 @@ const __vue2_script$u = {
2754
2816
  "w-input--inner-icon-right": this.innerIconRight
2755
2817
  };
2756
2818
  },
2757
- validationClasses() {
2758
- return this.isFocused && {
2759
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false
2760
- };
2761
- },
2762
2819
  inputWrapClasses() {
2763
2820
  return {
2764
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false,
2821
+ [this.valid === false ? this.validationColor : this.color]: this.color || this.valid === false,
2765
2822
  [`${this.bgColor}--bg`]: this.bgColor,
2766
2823
  "w-input__input-wrap--file": this.type === "file",
2767
2824
  "w-input__input-wrap--round": this.round,
@@ -3147,7 +3204,6 @@ var wList = /* @__PURE__ */ function() {
3147
3204
  }();
3148
3205
  var DetachableMixin = {
3149
3206
  props: {
3150
- detachTo: { type: [String, Boolean, Object], deprecated: true },
3151
3207
  appendTo: { type: [String, Boolean, Object] },
3152
3208
  fixed: { type: Boolean },
3153
3209
  top: { type: Boolean },
@@ -3162,16 +3218,19 @@ var DetachableMixin = {
3162
3218
  zIndex: { type: [Number, String, Boolean] },
3163
3219
  activator: { type: [String, Object, HTMLElement] }
3164
3220
  },
3221
+ inject: {
3222
+ detachableDefaultRoot: { default: null }
3223
+ },
3165
3224
  data: () => ({
3166
3225
  docEventListenersHandlers: []
3167
3226
  }),
3168
3227
  computed: {
3169
3228
  appendToTarget() {
3170
- const defaultTarget = ".w-app";
3171
- if (this.detachTo && !this.appendTo) {
3172
- 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;
3173
3232
  }
3174
- let target = this.appendTo || this.detachTo || defaultTarget;
3233
+ let target = this.appendTo || defaultTarget;
3175
3234
  if (target === true)
3176
3235
  target = defaultTarget;
3177
3236
  else if (this.appendTo === "activator")
@@ -3259,6 +3318,8 @@ var DetachableMixin = {
3259
3318
  },
3260
3319
  computeDetachableCoords() {
3261
3320
  let { top, left, width, height } = this.getActivatorCoordinates();
3321
+ if (!this.detachableEl)
3322
+ return;
3262
3323
  this.detachableEl.style.visibility = "hidden";
3263
3324
  this.detachableEl.style.display = "flex";
3264
3325
  const computedStyles2 = window.getComputedStyle(this.detachableEl, null);
@@ -3361,7 +3422,8 @@ var DetachableMixin = {
3361
3422
  this.bindActivatorEvents();
3362
3423
  else {
3363
3424
  this.$nextTick(() => {
3364
- this.activator && this.bindActivatorEvents();
3425
+ if (this.activator)
3426
+ this.bindActivatorEvents();
3365
3427
  if (this.value)
3366
3428
  this.toggle({ type: "click", target: this.activatorEl });
3367
3429
  });
@@ -3392,10 +3454,6 @@ var DetachableMixin = {
3392
3454
  if (!!bool !== this.detachableVisible)
3393
3455
  this.toggle({ type: "click", target: this.activatorEl });
3394
3456
  },
3395
- detachTo() {
3396
- this.removeFromDOM();
3397
- this.insertInDOM();
3398
- },
3399
3457
  appendTo() {
3400
3458
  this.removeFromDOM();
3401
3459
  this.insertInDOM();
@@ -3454,6 +3512,14 @@ const __vue2_script$s = {
3454
3512
  persistent: { type: Boolean },
3455
3513
  delay: { type: Number }
3456
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
+ },
3457
3523
  emits: ["input", "update:modelValue", "open", "close"],
3458
3524
  data: () => ({
3459
3525
  detachableVisible: false,
@@ -3743,7 +3809,7 @@ var render$q = function() {
3743
3809
  var _vm = this;
3744
3810
  var _h = _vm.$createElement;
3745
3811
  var _c = _vm._self._c || _h;
3746
- 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) {
3747
3813
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "escape", void 0, $event.key, void 0)) {
3748
3814
  return null;
3749
3815
  }
@@ -3763,7 +3829,12 @@ const __vue2_script$q = {
3763
3829
  persistent: { type: Boolean },
3764
3830
  persistentNoAnimation: { type: Boolean }
3765
3831
  },
3766
- 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"],
3767
3838
  data: () => ({
3768
3839
  persistentAnimate: false,
3769
3840
  showOverlay: false
@@ -3792,15 +3863,15 @@ const __vue2_script$q = {
3792
3863
  this.persistentAnimate = true;
3793
3864
  setTimeout(() => this.persistentAnimate = false, 150);
3794
3865
  } else if (!this.persistent) {
3795
- this.$emit("update:modelValue", false);
3796
- this.$emit("input", false);
3797
- this.$emit("close");
3866
+ this.showOverlay = false;
3867
+ this.$emit("before-close");
3798
3868
  }
3799
3869
  this.$emit("click", e);
3800
3870
  },
3801
- onClosed() {
3802
- this.showOverlay = false;
3803
- this.$emit("closed");
3871
+ onClose() {
3872
+ this.$emit("update:modelValue", false);
3873
+ this.$emit("input", false);
3874
+ this.$emit("close");
3804
3875
  }
3805
3876
  },
3806
3877
  created() {
@@ -3808,8 +3879,8 @@ const __vue2_script$q = {
3808
3879
  },
3809
3880
  watch: {
3810
3881
  value(bool) {
3811
- if (bool)
3812
- this.showOverlay = true;
3882
+ if (this.showOverlay !== bool)
3883
+ this.showOverlay = bool;
3813
3884
  }
3814
3885
  }
3815
3886
  };
@@ -3950,10 +4021,14 @@ var render$n = function() {
3950
4021
  return _vm.$emit("focus", $event);
3951
4022
  }, "change": function($event) {
3952
4023
  _vm.onInput($event);
3953
- } } }), _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) {
3954
4027
  _vm.$refs.input.focus();
3955
4028
  _vm.$refs.input.click();
3956
- } } }), _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);
3957
4032
  };
3958
4033
  var staticRenderFns$n = [];
3959
4034
  var wRadio_vue_vue_type_style_index_0_lang = "";
@@ -3967,6 +4042,7 @@ const __vue2_script$n = {
3967
4042
  label: { type: String },
3968
4043
  labelOnLeft: { type: Boolean },
3969
4044
  color: { type: String, default: "primary" },
4045
+ labelColor: { type: String, default: "primary" },
3970
4046
  noRipple: { type: Boolean }
3971
4047
  },
3972
4048
  emits: ["input", "update:modelValue", "focus"],
@@ -4045,11 +4121,11 @@ var render$m = function() {
4045
4121
  _vm.$emit("update:modelValue", _vm.inputValue = null);
4046
4122
  _vm.$emit("input", null);
4047
4123
  } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.inputValue, disabled: _vm.isDisabled }, false), _vm._l(_vm.radioItems, function(item, i) {
4048
- 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) {
4049
4125
  return _vm.onInput(item);
4050
4126
  }, "focus": function($event) {
4051
4127
  return _vm.$emit("focus", $event);
4052
- } } }, [_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);
4053
4129
  }), 1);
4054
4130
  };
4055
4131
  var staticRenderFns$m = [];
@@ -4065,7 +4141,8 @@ const __vue2_script$m = {
4065
4141
  itemValueKey: { type: String, default: "value" },
4066
4142
  itemColorKey: { type: String, default: "color" },
4067
4143
  inline: { type: Boolean },
4068
- color: { type: String, default: "primary" }
4144
+ color: { type: String, default: "primary" },
4145
+ labelColor: { type: String, default: "primary" }
4069
4146
  },
4070
4147
  emits: ["input", "update:modelValue", "focus"],
4071
4148
  provide() {
@@ -4252,12 +4329,9 @@ var render$k = function() {
4252
4329
  var _c = _vm._self._c || _h;
4253
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) {
4254
4331
  _vm.valid = $event;
4255
- }, "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) {
4256
- _vm.isFocused = true, _vm.selectingItem = true;
4257
- }, "mouseup": function($event) {
4258
- _vm.isFocused = true, _vm.selectingItem = false;
4259
- } }, scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
4260
- 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) {
4261
4335
  ref.on;
4262
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) {
4263
4337
  !_vm.isDisabled && !_vm.isReadonly && (_vm.showMenu ? _vm.closeMenu : _vm.openMenu)();
@@ -4269,7 +4343,9 @@ var render$k = function() {
4269
4343
  !_vm.isDisabled && !_vm.isReadonly && _vm.onKeydown($event);
4270
4344
  } } }), _vm._l(_vm.inputValue.length ? _vm.inputValue : [{}], function(val, i) {
4271
4345
  return _c("input", { key: i, attrs: { "type": "hidden", "name": _vm.inputName + (_vm.multiple ? "[]" : "") }, domProps: { "value": val.value || "" } });
4272
- }), _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) {
4273
4349
  return _vm.$emit("click:inner-icon-right", $event);
4274
4350
  } } }, [_vm._v(_vm._s(_vm.innerIconRight))]) : _vm._e()], 2)];
4275
4351
  } }], null, true), model: { value: _vm.showMenu, callback: function($$v) {
@@ -4294,7 +4370,9 @@ var render$k = function() {
4294
4370
  return [_vm._t("item", function() {
4295
4371
  return [_vm._v(_vm._s(item[_vm.itemLabelKey]))];
4296
4372
  }, { "item": item, "selected": selected, "index": index2 })];
4297
- } }], 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);
4298
4376
  };
4299
4377
  var staticRenderFns$k = [];
4300
4378
  var wSelect_vue_vue_type_style_index_0_lang = "";
@@ -4317,8 +4395,9 @@ const __vue2_script$k = {
4317
4395
  itemClass: { type: String },
4318
4396
  menuClass: { type: String },
4319
4397
  color: { type: String, default: "primary" },
4320
- selectionColor: { type: String, default: "primary" },
4321
4398
  bgColor: { type: String },
4399
+ labelColor: { type: String, default: "primary" },
4400
+ selectionColor: { type: String, default: "primary" },
4322
4401
  outline: { type: Boolean },
4323
4402
  round: { type: Boolean },
4324
4403
  shadow: { type: Boolean },
@@ -4334,7 +4413,6 @@ const __vue2_script$k = {
4334
4413
  showMenu: false,
4335
4414
  menuMinWidth: 0,
4336
4415
  isFocused: false,
4337
- selectingItem: false,
4338
4416
  selectionWrapRef: void 0
4339
4417
  }),
4340
4418
  computed: {
@@ -4364,7 +4442,7 @@ const __vue2_script$k = {
4364
4442
  "w-select--disabled": this.isDisabled,
4365
4443
  "w-select--readonly": this.isReadonly,
4366
4444
  [`w-select--${this.hasValue ? "filled" : "empty"}`]: true,
4367
- "w-select--focused": (this.isFocused || this.selectingItem) && !this.isReadonly,
4445
+ "w-select--focused": (this.isFocused || this.showMenu) && !this.isReadonly,
4368
4446
  "w-select--dark": this.dark,
4369
4447
  "w-select--floating-label": this.hasLabel && this.labelPosition === "inside" && !this.staticLabel,
4370
4448
  "w-select--no-padding": !this.outline && !this.bgColor && !this.shadow && !this.round,
@@ -4490,12 +4568,12 @@ var render$j = function() {
4490
4568
  var _vm = this;
4491
4569
  var _h = _vm.$createElement;
4492
4570
  var _c = _vm._self._c || _h;
4493
- 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) {
4494
4572
  _vm.valid = $event;
4495
4573
  }, "reset": function($event) {
4496
4574
  _vm.rangeValuePercent = 0;
4497
4575
  _vm.updateRangeValueScaled();
4498
- } } }, "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) {
4499
4577
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "left", 37, $event.key, ["Left", "ArrowLeft"])) {
4500
4578
  return null;
4501
4579
  }
@@ -4527,7 +4605,7 @@ var render$j = function() {
4527
4605
  } } }, [_vm._v(_vm._s(_vm.percentToScaled(currStep * (100 / _vm.numberOfSteps))))]);
4528
4606
  }), ~~_vm.numberOfSteps !== _vm.numberOfSteps ? _c("div", { staticClass: "w-slider__step-label", staticStyle: { "left": "100%" }, on: { "click": function($event) {
4529
4607
  return _vm.onStepLabelClick(100);
4530
- } } }, [_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()]);
4531
4609
  };
4532
4610
  var staticRenderFns$j = [];
4533
4611
  var wSlider_vue_vue_type_style_index_0_lang = "";
@@ -4538,6 +4616,7 @@ const __vue2_script$j = {
4538
4616
  value: { type: Number, default: 0 },
4539
4617
  color: { type: String, default: "primary" },
4540
4618
  bgColor: { type: String },
4619
+ labelColor: { type: String, default: "primary" },
4541
4620
  stepLabels: { type: [Boolean, Array] },
4542
4621
  thumbLabel: { type: [Boolean, String] },
4543
4622
  thumbLabelClass: { type: String },
@@ -4788,10 +4867,14 @@ var render$g = function() {
4788
4867
  _vm.onInput();
4789
4868
  }, "focus": function($event) {
4790
4869
  return _vm.$emit("focus", $event);
4791
- } } }), _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) {
4792
4873
  _vm.$refs.input.focus();
4793
4874
  _vm.$refs.input.click();
4794
- } } }, _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);
4795
4878
  };
4796
4879
  var staticRenderFns$g = [];
4797
4880
  var wSwitch_vue_vue_type_style_index_0_lang = "";
@@ -4803,6 +4886,7 @@ const __vue2_script$g = {
4803
4886
  label: { type: String, default: "" },
4804
4887
  labelOnLeft: { type: Boolean },
4805
4888
  color: { type: String, default: "primary" },
4889
+ labelColor: { type: String, default: "primary" },
4806
4890
  thin: { type: Boolean },
4807
4891
  noRipple: { type: Boolean }
4808
4892
  },
@@ -4828,6 +4912,8 @@ const __vue2_script$g = {
4828
4912
  "w-switch--disabled": this.isDisabled,
4829
4913
  "w-switch--readonly": this.isReadonly,
4830
4914
  "w-switch--ripple": this.ripple.start,
4915
+ "w-switch--custom-thumb": this.$slots.thumb,
4916
+ "w-switch--custom-track": this.$slots.track,
4831
4917
  "w-switch--rippled": this.ripple.end
4832
4918
  };
4833
4919
  },
@@ -4928,6 +5014,7 @@ const __vue2_script$e = {
4928
5014
  titleClass: { type: String },
4929
5015
  activeClass: { type: String, default: "primary" },
4930
5016
  noSlider: { type: Boolean },
5017
+ pillSlider: { type: Boolean },
4931
5018
  sliderColor: { type: String, default: "primary" },
4932
5019
  contentClass: { type: String },
4933
5020
  transition: { type: [String, Boolean], default: "" },
@@ -4974,6 +5061,7 @@ const __vue2_script$e = {
4974
5061
  return {
4975
5062
  "w-tabs--card": this.card,
4976
5063
  "w-tabs--no-slider": this.noSlider,
5064
+ "w-tabs--pill-slider": this.pillSlider,
4977
5065
  "w-tabs--fill-bar": this.fillBar,
4978
5066
  "w-tabs--init": this.init
4979
5067
  };
@@ -5473,7 +5561,6 @@ var wTag = /* @__PURE__ */ function() {
5473
5561
  return __component__$c.exports;
5474
5562
  }();
5475
5563
  var render$b = function() {
5476
- var _obj, _obj$1;
5477
5564
  var _vm = this;
5478
5565
  var _h = _vm.$createElement;
5479
5566
  var _c = _vm._self._c || _h;
@@ -5482,16 +5569,22 @@ var render$b = function() {
5482
5569
  }, "reset": function($event) {
5483
5570
  _vm.$emit("update:modelValue", _vm.inputValue = "");
5484
5571
  _vm.$emit("input", "");
5485
- } } }, "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) {
5486
5575
  return _vm.$emit("click:inner-icon-left", $event);
5487
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) {
5488
5577
  if ($event.target.composing) {
5489
5578
  return;
5490
5579
  }
5491
5580
  _vm.inputValue = $event.target.value;
5492
- }, _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) {
5493
5584
  return _vm.$emit("click:inner-icon-right", $event);
5494
- } } }, [_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);
5495
5588
  };
5496
5589
  var staticRenderFns$b = [];
5497
5590
  var wTextarea_vue_vue_type_style_index_0_lang = "";
@@ -5508,6 +5601,7 @@ const __vue2_script$b = {
5508
5601
  placeholder: { type: String },
5509
5602
  color: { type: String, default: "primary" },
5510
5603
  bgColor: { type: String },
5604
+ labelColor: { type: String, default: "primary" },
5511
5605
  dark: { type: Boolean },
5512
5606
  outline: { type: Boolean },
5513
5607
  shadow: { type: Boolean },
@@ -5559,7 +5653,7 @@ const __vue2_script$b = {
5559
5653
  },
5560
5654
  inputWrapClasses() {
5561
5655
  return {
5562
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false,
5656
+ [this.valid === false ? this.validationColor : this.color]: this.color || this.valid === false,
5563
5657
  [`${this.bgColor}--bg`]: this.bgColor,
5564
5658
  "w-textarea__textarea-wrap--tile": this.tile,
5565
5659
  "w-textarea__textarea-wrap--box": this.outline || this.bgColor || this.shadow,
@@ -5613,7 +5707,7 @@ const __vue2_script$b = {
5613
5707
  watch: {
5614
5708
  value(value) {
5615
5709
  this.inputValue = value;
5616
- this.computeHeight();
5710
+ this.$nextTick(this.computeHeight);
5617
5711
  },
5618
5712
  resizable(value) {
5619
5713
  if (value)
@@ -5902,7 +5996,7 @@ var render$6 = function() {
5902
5996
  var _vm = this;
5903
5997
  var _h = _vm.$createElement;
5904
5998
  var _c = _vm._self._c || _h;
5905
- 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);
5999
+ 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);
5906
6000
  };
5907
6001
  var staticRenderFns$6 = [];
5908
6002
  const __vue2_script$6 = {
@@ -5910,7 +6004,7 @@ const __vue2_script$6 = {
5910
6004
  props: {
5911
6005
  x: { type: Boolean },
5912
6006
  y: { type: Boolean },
5913
- duration: { type: Number, default: 200 }
6007
+ duration: { type: Number, default: 250 }
5914
6008
  },
5915
6009
  data: () => ({
5916
6010
  el: {
@@ -5945,53 +6039,44 @@ const __vue2_script$6 = {
5945
6039
  if (this.cleanTransitionCycle)
5946
6040
  this.saveOriginalStyles(el);
5947
6041
  this.cleanTransitionCycle = false;
5948
- this.$emit("before-appear");
5949
6042
  },
5950
6043
  appear(el, done) {
5951
6044
  this.show(el);
5952
6045
  setTimeout(done, this.duration);
5953
6046
  this.cleanTransitionCycle = false;
5954
- this.$emit("appear");
5955
6047
  },
5956
6048
  afterAppear(el) {
5957
6049
  this.applyOriginalStyles(el);
5958
6050
  el.style.cssText = el.style.cssText.replace("display: none;", "");
5959
6051
  this.cleanTransitionCycle = false;
5960
- this.$emit("after-appear");
5961
6052
  },
5962
6053
  beforeEnter(el) {
5963
6054
  if (this.cleanTransitionCycle)
5964
6055
  this.saveOriginalStyles(el);
5965
6056
  this.cleanTransitionCycle = false;
5966
- this.$emit("before-enter");
5967
6057
  },
5968
6058
  enter(el, done) {
5969
6059
  this.show(el);
5970
6060
  setTimeout(done, this.duration);
5971
6061
  this.cleanTransitionCycle = false;
5972
- this.$emit("enter");
5973
6062
  },
5974
6063
  afterEnter(el) {
5975
6064
  this.applyOriginalStyles(el);
5976
6065
  el.style.cssText = el.style.cssText.replace("display: none;", "");
5977
6066
  this.cleanTransitionCycle = false;
5978
- this.$emit("after-enter");
5979
6067
  },
5980
6068
  beforeLeave(el) {
5981
6069
  this.beforeHide(el);
5982
6070
  this.cleanTransitionCycle = false;
5983
- this.$emit("before-leave");
5984
6071
  },
5985
6072
  leave(el, done) {
5986
6073
  this.hide(el);
5987
6074
  setTimeout(done, this.duration);
5988
6075
  this.cleanTransitionCycle = false;
5989
- this.$emit("leave");
5990
6076
  },
5991
6077
  afterLeave(el) {
5992
6078
  this.applyOriginalStyles(el);
5993
6079
  this.cleanTransitionCycle = true;
5994
- this.$emit("after-leave");
5995
6080
  },
5996
6081
  applyHideStyles(el) {
5997
6082
  if (this.animX) {
@@ -6252,9 +6337,8 @@ function __vue2_injectStyles(context) {
6252
6337
  var wTransitionTwist = /* @__PURE__ */ function() {
6253
6338
  return __component__.exports;
6254
6339
  }();
6255
- var components = /* @__PURE__ */ Object.freeze({
6340
+ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6256
6341
  __proto__: null,
6257
- [Symbol.toStringTag]: "Module",
6258
6342
  WAccordion: wAccordion,
6259
6343
  WAlert: wAlert,
6260
6344
  WApp: wApp,
@@ -6305,7 +6389,7 @@ var components = /* @__PURE__ */ Object.freeze({
6305
6389
  WTransitionSlide: wTransitionSlide,
6306
6390
  WTransitionSlideFade: wTransitionSlideFade,
6307
6391
  WTransitionTwist: wTransitionTwist
6308
- });
6392
+ }, Symbol.toStringTag, { value: "Module" }));
6309
6393
  const install = WaveUI.install;
6310
6394
  WaveUI.install = (Vue2, options = {}) => install.call(WaveUI, Vue2, __spreadValues({ components }, options));
6311
6395
  if (typeof window !== "undefined" && window.Vue)