wave-ui 1.51.0 → 1.53.0

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 +255 -156
  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 +8 -0
  19. package/src/wave-ui/components/w-notification.vue +3 -1
  20. package/src/wave-ui/components/w-overlay.vue +35 -8
  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 +15 -17
  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 +6 -1
  31. package/src/wave-ui/mixins/detachable.js +18 -17
  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
  });
@@ -3383,7 +3435,7 @@ var DetachableMixin = {
3383
3435
  if (this.value && this.activator)
3384
3436
  this.toggle({ type: "click", target: this.activatorEl });
3385
3437
  },
3386
- destroy() {
3438
+ beforeDestroy() {
3387
3439
  var _a;
3388
3440
  this.close();
3389
3441
  this.removeFromDOM();
@@ -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,9 +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": function($event) {
3757
- return _vm.$emit("closed");
3758
- } } }, [_vm.value ? _c("div", { directives: [{ 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) {
3759
3813
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "escape", void 0, $event.key, void 0)) {
3760
3814
  return null;
3761
3815
  }
@@ -3775,9 +3829,15 @@ const __vue2_script$q = {
3775
3829
  persistent: { type: Boolean },
3776
3830
  persistentNoAnimation: { type: Boolean }
3777
3831
  },
3778
- 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"],
3779
3838
  data: () => ({
3780
- persistentAnimate: false
3839
+ persistentAnimate: false,
3840
+ showOverlay: false
3781
3841
  }),
3782
3842
  computed: {
3783
3843
  backgroundColor() {
@@ -3803,11 +3863,24 @@ const __vue2_script$q = {
3803
3863
  this.persistentAnimate = true;
3804
3864
  setTimeout(() => this.persistentAnimate = false, 150);
3805
3865
  } else if (!this.persistent) {
3806
- this.$emit("update:modelValue", false);
3807
- this.$emit("input", false);
3808
- this.$emit("close");
3866
+ this.showOverlay = false;
3867
+ this.$emit("before-close");
3809
3868
  }
3810
3869
  this.$emit("click", e);
3870
+ },
3871
+ onClose() {
3872
+ this.$emit("update:modelValue", false);
3873
+ this.$emit("input", false);
3874
+ this.$emit("close");
3875
+ }
3876
+ },
3877
+ created() {
3878
+ this.showOverlay = this.value;
3879
+ },
3880
+ watch: {
3881
+ value(bool) {
3882
+ if (this.showOverlay !== bool)
3883
+ this.showOverlay = bool;
3811
3884
  }
3812
3885
  }
3813
3886
  };
@@ -3948,10 +4021,14 @@ var render$n = function() {
3948
4021
  return _vm.$emit("focus", $event);
3949
4022
  }, "change": function($event) {
3950
4023
  _vm.onInput($event);
3951
- } } }), _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) {
3952
4027
  _vm.$refs.input.focus();
3953
4028
  _vm.$refs.input.click();
3954
- } } }), _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);
3955
4032
  };
3956
4033
  var staticRenderFns$n = [];
3957
4034
  var wRadio_vue_vue_type_style_index_0_lang = "";
@@ -3965,6 +4042,7 @@ const __vue2_script$n = {
3965
4042
  label: { type: String },
3966
4043
  labelOnLeft: { type: Boolean },
3967
4044
  color: { type: String, default: "primary" },
4045
+ labelColor: { type: String, default: "primary" },
3968
4046
  noRipple: { type: Boolean }
3969
4047
  },
3970
4048
  emits: ["input", "update:modelValue", "focus"],
@@ -4043,11 +4121,11 @@ var render$m = function() {
4043
4121
  _vm.$emit("update:modelValue", _vm.inputValue = null);
4044
4122
  _vm.$emit("input", null);
4045
4123
  } } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.inputValue, disabled: _vm.isDisabled }, false), _vm._l(_vm.radioItems, function(item, i) {
4046
- 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) {
4047
4125
  return _vm.onInput(item);
4048
4126
  }, "focus": function($event) {
4049
4127
  return _vm.$emit("focus", $event);
4050
- } } }, [_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);
4051
4129
  }), 1);
4052
4130
  };
4053
4131
  var staticRenderFns$m = [];
@@ -4063,7 +4141,8 @@ const __vue2_script$m = {
4063
4141
  itemValueKey: { type: String, default: "value" },
4064
4142
  itemColorKey: { type: String, default: "color" },
4065
4143
  inline: { type: Boolean },
4066
- color: { type: String, default: "primary" }
4144
+ color: { type: String, default: "primary" },
4145
+ labelColor: { type: String, default: "primary" }
4067
4146
  },
4068
4147
  emits: ["input", "update:modelValue", "focus"],
4069
4148
  provide() {
@@ -4250,12 +4329,9 @@ var render$k = function() {
4250
4329
  var _c = _vm._self._c || _h;
4251
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) {
4252
4331
  _vm.valid = $event;
4253
- }, "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) {
4254
- _vm.isFocused = true, _vm.selectingItem = true;
4255
- }, "mouseup": function($event) {
4256
- _vm.isFocused = true, _vm.selectingItem = false;
4257
- } }, scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
4258
- 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) {
4259
4335
  ref.on;
4260
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) {
4261
4337
  !_vm.isDisabled && !_vm.isReadonly && (_vm.showMenu ? _vm.closeMenu : _vm.openMenu)();
@@ -4267,7 +4343,9 @@ var render$k = function() {
4267
4343
  !_vm.isDisabled && !_vm.isReadonly && _vm.onKeydown($event);
4268
4344
  } } }), _vm._l(_vm.inputValue.length ? _vm.inputValue : [{}], function(val, i) {
4269
4345
  return _c("input", { key: i, attrs: { "type": "hidden", "name": _vm.inputName + (_vm.multiple ? "[]" : "") }, domProps: { "value": val.value || "" } });
4270
- }), _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) {
4271
4349
  return _vm.$emit("click:inner-icon-right", $event);
4272
4350
  } } }, [_vm._v(_vm._s(_vm.innerIconRight))]) : _vm._e()], 2)];
4273
4351
  } }], null, true), model: { value: _vm.showMenu, callback: function($$v) {
@@ -4292,7 +4370,9 @@ var render$k = function() {
4292
4370
  return [_vm._t("item", function() {
4293
4371
  return [_vm._v(_vm._s(item[_vm.itemLabelKey]))];
4294
4372
  }, { "item": item, "selected": selected, "index": index2 })];
4295
- } }], 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);
4296
4376
  };
4297
4377
  var staticRenderFns$k = [];
4298
4378
  var wSelect_vue_vue_type_style_index_0_lang = "";
@@ -4315,8 +4395,9 @@ const __vue2_script$k = {
4315
4395
  itemClass: { type: String },
4316
4396
  menuClass: { type: String },
4317
4397
  color: { type: String, default: "primary" },
4318
- selectionColor: { type: String, default: "primary" },
4319
4398
  bgColor: { type: String },
4399
+ labelColor: { type: String, default: "primary" },
4400
+ selectionColor: { type: String, default: "primary" },
4320
4401
  outline: { type: Boolean },
4321
4402
  round: { type: Boolean },
4322
4403
  shadow: { type: Boolean },
@@ -4332,7 +4413,6 @@ const __vue2_script$k = {
4332
4413
  showMenu: false,
4333
4414
  menuMinWidth: 0,
4334
4415
  isFocused: false,
4335
- selectingItem: false,
4336
4416
  selectionWrapRef: void 0
4337
4417
  }),
4338
4418
  computed: {
@@ -4362,7 +4442,7 @@ const __vue2_script$k = {
4362
4442
  "w-select--disabled": this.isDisabled,
4363
4443
  "w-select--readonly": this.isReadonly,
4364
4444
  [`w-select--${this.hasValue ? "filled" : "empty"}`]: true,
4365
- "w-select--focused": (this.isFocused || this.selectingItem) && !this.isReadonly,
4445
+ "w-select--focused": (this.isFocused || this.showMenu) && !this.isReadonly,
4366
4446
  "w-select--dark": this.dark,
4367
4447
  "w-select--floating-label": this.hasLabel && this.labelPosition === "inside" && !this.staticLabel,
4368
4448
  "w-select--no-padding": !this.outline && !this.bgColor && !this.shadow && !this.round,
@@ -4488,12 +4568,12 @@ var render$j = function() {
4488
4568
  var _vm = this;
4489
4569
  var _h = _vm.$createElement;
4490
4570
  var _c = _vm._self._c || _h;
4491
- 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) {
4492
4572
  _vm.valid = $event;
4493
4573
  }, "reset": function($event) {
4494
4574
  _vm.rangeValuePercent = 0;
4495
4575
  _vm.updateRangeValueScaled();
4496
- } } }, "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) {
4497
4577
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "left", 37, $event.key, ["Left", "ArrowLeft"])) {
4498
4578
  return null;
4499
4579
  }
@@ -4525,7 +4605,7 @@ var render$j = function() {
4525
4605
  } } }, [_vm._v(_vm._s(_vm.percentToScaled(currStep * (100 / _vm.numberOfSteps))))]);
4526
4606
  }), ~~_vm.numberOfSteps !== _vm.numberOfSteps ? _c("div", { staticClass: "w-slider__step-label", staticStyle: { "left": "100%" }, on: { "click": function($event) {
4527
4607
  return _vm.onStepLabelClick(100);
4528
- } } }, [_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()]);
4529
4609
  };
4530
4610
  var staticRenderFns$j = [];
4531
4611
  var wSlider_vue_vue_type_style_index_0_lang = "";
@@ -4536,6 +4616,7 @@ const __vue2_script$j = {
4536
4616
  value: { type: Number, default: 0 },
4537
4617
  color: { type: String, default: "primary" },
4538
4618
  bgColor: { type: String },
4619
+ labelColor: { type: String, default: "primary" },
4539
4620
  stepLabels: { type: [Boolean, Array] },
4540
4621
  thumbLabel: { type: [Boolean, String] },
4541
4622
  thumbLabelClass: { type: String },
@@ -4786,10 +4867,14 @@ var render$g = function() {
4786
4867
  _vm.onInput();
4787
4868
  }, "focus": function($event) {
4788
4869
  return _vm.$emit("focus", $event);
4789
- } } }), _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) {
4790
4873
  _vm.$refs.input.focus();
4791
4874
  _vm.$refs.input.click();
4792
- } } }, _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);
4793
4878
  };
4794
4879
  var staticRenderFns$g = [];
4795
4880
  var wSwitch_vue_vue_type_style_index_0_lang = "";
@@ -4801,6 +4886,7 @@ const __vue2_script$g = {
4801
4886
  label: { type: String, default: "" },
4802
4887
  labelOnLeft: { type: Boolean },
4803
4888
  color: { type: String, default: "primary" },
4889
+ labelColor: { type: String, default: "primary" },
4804
4890
  thin: { type: Boolean },
4805
4891
  noRipple: { type: Boolean }
4806
4892
  },
@@ -4826,6 +4912,8 @@ const __vue2_script$g = {
4826
4912
  "w-switch--disabled": this.isDisabled,
4827
4913
  "w-switch--readonly": this.isReadonly,
4828
4914
  "w-switch--ripple": this.ripple.start,
4915
+ "w-switch--custom-thumb": this.$slots.thumb,
4916
+ "w-switch--custom-track": this.$slots.track,
4829
4917
  "w-switch--rippled": this.ripple.end
4830
4918
  };
4831
4919
  },
@@ -4926,6 +5014,7 @@ const __vue2_script$e = {
4926
5014
  titleClass: { type: String },
4927
5015
  activeClass: { type: String, default: "primary" },
4928
5016
  noSlider: { type: Boolean },
5017
+ pillSlider: { type: Boolean },
4929
5018
  sliderColor: { type: String, default: "primary" },
4930
5019
  contentClass: { type: String },
4931
5020
  transition: { type: [String, Boolean], default: "" },
@@ -4972,6 +5061,7 @@ const __vue2_script$e = {
4972
5061
  return {
4973
5062
  "w-tabs--card": this.card,
4974
5063
  "w-tabs--no-slider": this.noSlider,
5064
+ "w-tabs--pill-slider": this.pillSlider,
4975
5065
  "w-tabs--fill-bar": this.fillBar,
4976
5066
  "w-tabs--init": this.init
4977
5067
  };
@@ -5471,7 +5561,6 @@ var wTag = /* @__PURE__ */ function() {
5471
5561
  return __component__$c.exports;
5472
5562
  }();
5473
5563
  var render$b = function() {
5474
- var _obj, _obj$1;
5475
5564
  var _vm = this;
5476
5565
  var _h = _vm.$createElement;
5477
5566
  var _c = _vm._self._c || _h;
@@ -5480,16 +5569,22 @@ var render$b = function() {
5480
5569
  }, "reset": function($event) {
5481
5570
  _vm.$emit("update:modelValue", _vm.inputValue = "");
5482
5571
  _vm.$emit("input", "");
5483
- } } }, "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) {
5484
5575
  return _vm.$emit("click:inner-icon-left", $event);
5485
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) {
5486
5577
  if ($event.target.composing) {
5487
5578
  return;
5488
5579
  }
5489
5580
  _vm.inputValue = $event.target.value;
5490
- }, _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) {
5491
5584
  return _vm.$emit("click:inner-icon-right", $event);
5492
- } } }, [_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);
5493
5588
  };
5494
5589
  var staticRenderFns$b = [];
5495
5590
  var wTextarea_vue_vue_type_style_index_0_lang = "";
@@ -5506,6 +5601,7 @@ const __vue2_script$b = {
5506
5601
  placeholder: { type: String },
5507
5602
  color: { type: String, default: "primary" },
5508
5603
  bgColor: { type: String },
5604
+ labelColor: { type: String, default: "primary" },
5509
5605
  dark: { type: Boolean },
5510
5606
  outline: { type: Boolean },
5511
5607
  shadow: { type: Boolean },
@@ -5557,7 +5653,7 @@ const __vue2_script$b = {
5557
5653
  },
5558
5654
  inputWrapClasses() {
5559
5655
  return {
5560
- [this.valid === false ? "error" : this.color]: this.color || this.valid === false,
5656
+ [this.valid === false ? this.validationColor : this.color]: this.color || this.valid === false,
5561
5657
  [`${this.bgColor}--bg`]: this.bgColor,
5562
5658
  "w-textarea__textarea-wrap--tile": this.tile,
5563
5659
  "w-textarea__textarea-wrap--box": this.outline || this.bgColor || this.shadow,
@@ -5643,7 +5739,7 @@ var render$a = function() {
5643
5739
  var _c = _vm._self._c || _h;
5644
5740
  return _c("ul", { staticClass: "w-timeline" }, _vm._l(_vm.items, function(item, i) {
5645
5741
  var _obj;
5646
- 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() {
5742
+ 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() {
5647
5743
  var _obj2;
5648
5744
  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]) } })];
5649
5745
  }, { "item": item, "index": i + 1 }) : _vm._t("item." + (i + 1), null, { "item": item, "index": i + 1 })], 2);
@@ -5690,6 +5786,10 @@ const __vue2_script$9 = {
5690
5786
  absolute: { type: Boolean },
5691
5787
  fixed: { type: Boolean },
5692
5788
  bottom: { type: Boolean },
5789
+ vertical: { type: Boolean },
5790
+ left: { type: Boolean },
5791
+ right: { type: Boolean },
5792
+ width: { type: [Number, String], default: null },
5693
5793
  height: { type: [Number, String], default: null },
5694
5794
  noBorder: { type: Boolean },
5695
5795
  shadow: { type: Boolean }
@@ -5700,19 +5800,27 @@ const __vue2_script$9 = {
5700
5800
  const h = this.height;
5701
5801
  return h && parseInt(h) == h ? h + "px" : h;
5702
5802
  },
5803
+ toolbarWidth() {
5804
+ const w = this.width;
5805
+ return w && parseInt(w) == w ? w + "px" : w;
5806
+ },
5703
5807
  classes() {
5704
5808
  return {
5705
5809
  [this.color]: !!this.color,
5706
5810
  [`${this.bgColor}--bg`]: !!this.bgColor,
5707
5811
  "w-toolbar--absolute": !!this.absolute,
5708
5812
  "w-toolbar--fixed": !!this.fixed,
5709
- [`w-toolbar--${this.bottom ? "bottom" : "top"}`]: true,
5813
+ [`w-toolbar--${this.bottom ? "bottom" : "top"}`]: !this.vertical,
5814
+ [`w-toolbar--vertical w-toolbar--${this.right ? "right" : "left"}`]: this.vertical,
5710
5815
  "w-toolbar--no-border": this.noBorder,
5711
5816
  "w-toolbar--shadow": !!this.shadow
5712
5817
  };
5713
5818
  },
5714
5819
  styles() {
5715
- return this.height ? `height: ${this.toolbarHeight}` : false;
5820
+ return {
5821
+ height: this.height && !this.vertical ? this.toolbarHeight : null,
5822
+ width: this.width && this.vertical ? this.toolbarWidth : null
5823
+ };
5716
5824
  }
5717
5825
  }
5718
5826
  };
@@ -5730,7 +5838,7 @@ var render$8 = function() {
5730
5838
  var _vm = this;
5731
5839
  var _h = _vm.$createElement;
5732
5840
  var _c = _vm._self._c || _h;
5733
- 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);
5841
+ 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);
5734
5842
  };
5735
5843
  var staticRenderFns$8 = [];
5736
5844
  var wTooltip_vue_vue_type_style_index_0_lang = "";
@@ -5888,7 +5996,7 @@ var render$6 = function() {
5888
5996
  var _vm = this;
5889
5997
  var _h = _vm.$createElement;
5890
5998
  var _c = _vm._self._c || _h;
5891
- 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);
5892
6000
  };
5893
6001
  var staticRenderFns$6 = [];
5894
6002
  const __vue2_script$6 = {
@@ -5896,7 +6004,7 @@ const __vue2_script$6 = {
5896
6004
  props: {
5897
6005
  x: { type: Boolean },
5898
6006
  y: { type: Boolean },
5899
- duration: { type: Number, default: 200 }
6007
+ duration: { type: Number, default: 250 }
5900
6008
  },
5901
6009
  data: () => ({
5902
6010
  el: {
@@ -5931,53 +6039,44 @@ const __vue2_script$6 = {
5931
6039
  if (this.cleanTransitionCycle)
5932
6040
  this.saveOriginalStyles(el);
5933
6041
  this.cleanTransitionCycle = false;
5934
- this.$emit("before-appear");
5935
6042
  },
5936
6043
  appear(el, done) {
5937
6044
  this.show(el);
5938
6045
  setTimeout(done, this.duration);
5939
6046
  this.cleanTransitionCycle = false;
5940
- this.$emit("appear");
5941
6047
  },
5942
6048
  afterAppear(el) {
5943
6049
  this.applyOriginalStyles(el);
5944
6050
  el.style.cssText = el.style.cssText.replace("display: none;", "");
5945
6051
  this.cleanTransitionCycle = false;
5946
- this.$emit("after-appear");
5947
6052
  },
5948
6053
  beforeEnter(el) {
5949
6054
  if (this.cleanTransitionCycle)
5950
6055
  this.saveOriginalStyles(el);
5951
6056
  this.cleanTransitionCycle = false;
5952
- this.$emit("before-enter");
5953
6057
  },
5954
6058
  enter(el, done) {
5955
6059
  this.show(el);
5956
6060
  setTimeout(done, this.duration);
5957
6061
  this.cleanTransitionCycle = false;
5958
- this.$emit("enter");
5959
6062
  },
5960
6063
  afterEnter(el) {
5961
6064
  this.applyOriginalStyles(el);
5962
6065
  el.style.cssText = el.style.cssText.replace("display: none;", "");
5963
6066
  this.cleanTransitionCycle = false;
5964
- this.$emit("after-enter");
5965
6067
  },
5966
6068
  beforeLeave(el) {
5967
6069
  this.beforeHide(el);
5968
6070
  this.cleanTransitionCycle = false;
5969
- this.$emit("before-leave");
5970
6071
  },
5971
6072
  leave(el, done) {
5972
6073
  this.hide(el);
5973
6074
  setTimeout(done, this.duration);
5974
6075
  this.cleanTransitionCycle = false;
5975
- this.$emit("leave");
5976
6076
  },
5977
6077
  afterLeave(el) {
5978
6078
  this.applyOriginalStyles(el);
5979
6079
  this.cleanTransitionCycle = true;
5980
- this.$emit("after-leave");
5981
6080
  },
5982
6081
  applyHideStyles(el) {
5983
6082
  if (this.animX) {