xv-webcomponents 0.1.39 → 0.1.42

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 (119) hide show
  1. package/dist/cjs/{index-D41mMXvd.js → index-MLh9SbX2.js} +349 -8
  2. package/dist/cjs/index-MLh9SbX2.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{xv-accordion-v2_27.cjs.entry.js → xv-accordion-v2_34.cjs.entry.js} +2323 -97
  5. package/dist/cjs/xv-accordion-v2_34.cjs.entry.js.map +1 -0
  6. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +1 -1
  7. package/dist/cjs/xv-webcomponents.cjs.js +3 -3
  8. package/dist/cjs/xv-webcomponents.cjs.js.map +1 -1
  9. package/dist/collection/collection-manifest.json +8 -1
  10. package/dist/collection/components/xv-button/xv-button-v2.css +136 -118
  11. package/dist/collection/components/xv-button/xv-button.js +132 -67
  12. package/dist/collection/components/xv-button/xv-button.js.map +1 -1
  13. package/dist/collection/components/xv-card/xv-card.js +1 -1
  14. package/dist/collection/components/xv-checkbox/xv-checkbox.css +3 -0
  15. package/dist/collection/components/xv-checkbox/xv-checkbox.js +1 -1
  16. package/dist/collection/components/xv-data-table/_vars.js +3 -0
  17. package/dist/collection/components/xv-data-table/_vars.js.map +1 -0
  18. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.css +90 -0
  19. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +182 -0
  20. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js.map +1 -0
  21. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.css +7 -0
  22. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +101 -0
  23. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js.map +1 -0
  24. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.css +71 -0
  25. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +354 -0
  26. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js.map +1 -0
  27. package/dist/collection/components/xv-data-table/xv-data-table.css +104 -0
  28. package/dist/collection/components/xv-data-table/xv-data-table.js +114 -0
  29. package/dist/collection/components/xv-data-table/xv-data-table.js.map +1 -0
  30. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  31. package/dist/collection/components/xv-dropdown/xv-dropdown.css +6 -1
  32. package/dist/collection/components/xv-dropdown/xv-dropdown.js +20 -1
  33. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
  34. package/dist/collection/components/xv-file-uploader/_vars.js +6 -0
  35. package/dist/collection/components/xv-file-uploader/_vars.js.map +1 -0
  36. package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +136 -0
  37. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +448 -0
  38. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js.map +1 -0
  39. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  40. package/dist/collection/components/xv-header/xv-header.js +1 -1
  41. package/dist/collection/components/xv-link/xv-link.css +1 -0
  42. package/dist/collection/components/xv-link/xv-link.js +1 -1
  43. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  44. package/dist/collection/components/xv-notification/xv-notification.css +1 -0
  45. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  46. package/dist/collection/components/xv-number-input/xv-number-input.css +128 -0
  47. package/dist/collection/components/xv-number-input/xv-number-input.js +373 -0
  48. package/dist/collection/components/xv-number-input/xv-number-input.js.map +1 -0
  49. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
  50. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
  51. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  52. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  53. package/dist/collection/components/xv-table/_vars.js +0 -6
  54. package/dist/collection/components/xv-table/_vars.js.map +1 -1
  55. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +4 -4
  56. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +1 -1
  57. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  58. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  59. package/dist/collection/components/xv-table/xv-table.js +1 -1
  60. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  61. package/dist/collection/components/xv-tabs/xv-tabs.js +1 -2
  62. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
  63. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  64. package/dist/collection/components/xv-text-input/xv-text-input.css +110 -89
  65. package/dist/collection/components/xv-text-input/xv-text-input.js +113 -80
  66. package/dist/collection/components/xv-text-input/xv-text-input.js.map +1 -1
  67. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.css +95 -0
  68. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +201 -0
  69. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js.map +1 -0
  70. package/dist/collection/components/xv-tooltip/xv-tooltip.css +31 -147
  71. package/dist/collection/components/xv-tooltip/xv-tooltip.js +59 -34
  72. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
  73. package/dist/collection/types/enum.js +6 -0
  74. package/dist/collection/types/enum.js.map +1 -1
  75. package/dist/esm/{index-Datpns0U.js → index-DLYJiP99.js} +349 -8
  76. package/dist/esm/index-DLYJiP99.js.map +1 -0
  77. package/dist/esm/loader.js +3 -3
  78. package/dist/esm/{xv-accordion-v2_27.entry.js → xv-accordion-v2_34.entry.js} +2317 -98
  79. package/dist/esm/xv-accordion-v2_34.entry.js.map +1 -0
  80. package/dist/esm/xv-breadcrumbs-v2.entry.js +1 -1
  81. package/dist/esm/xv-webcomponents.js +4 -4
  82. package/dist/esm/xv-webcomponents.js.map +1 -1
  83. package/dist/types/components/xv-button/xv-button.d.ts +21 -12
  84. package/dist/types/components/xv-data-table/_vars.d.ts +11 -0
  85. package/dist/types/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.d.ts +13 -0
  86. package/dist/types/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.d.ts +9 -0
  87. package/dist/types/components/xv-data-table/xv-data-table-row/xv-data-table-row.d.ts +25 -0
  88. package/dist/types/components/xv-data-table/xv-data-table.d.ts +9 -0
  89. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +1 -0
  90. package/dist/types/components/xv-file-uploader/_vars.d.ts +4 -0
  91. package/dist/types/components/xv-file-uploader/xv-file-uploader.d.ts +36 -0
  92. package/dist/types/components/xv-number-input/xv-number-input.d.ts +26 -0
  93. package/dist/types/components/xv-table/_vars.d.ts +1 -5
  94. package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +2 -1
  95. package/dist/types/components/xv-text-input/xv-text-input.d.ts +10 -11
  96. package/dist/types/components/xv-toggle-tip/xv-toggle-tip.d.ts +19 -0
  97. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +10 -8
  98. package/dist/types/components.d.ts +761 -53
  99. package/dist/types/types/enum.d.ts +5 -0
  100. package/dist/xv-webcomponents/{p-054f5d59.entry.js → p-5b63a259.entry.js} +2 -2
  101. package/dist/xv-webcomponents/p-9c06f44c.entry.js +2 -0
  102. package/dist/xv-webcomponents/p-9c06f44c.entry.js.map +1 -0
  103. package/dist/xv-webcomponents/p-DLYJiP99.js +3 -0
  104. package/dist/xv-webcomponents/p-DLYJiP99.js.map +1 -0
  105. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  106. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  107. package/package.json +6 -4
  108. package/dist/cjs/index-D41mMXvd.js.map +0 -1
  109. package/dist/cjs/xv-accordion-v2_27.cjs.entry.js.map +0 -1
  110. package/dist/collection/components/xv-text-input/_vars.js +0 -7
  111. package/dist/collection/components/xv-text-input/_vars.js.map +0 -1
  112. package/dist/esm/index-Datpns0U.js.map +0 -1
  113. package/dist/esm/xv-accordion-v2_27.entry.js.map +0 -1
  114. package/dist/types/components/xv-text-input/_vars.d.ts +0 -5
  115. package/dist/xv-webcomponents/p-6a4cc790.entry.js +0 -2
  116. package/dist/xv-webcomponents/p-6a4cc790.entry.js.map +0 -1
  117. package/dist/xv-webcomponents/p-Datpns0U.js +0 -3
  118. package/dist/xv-webcomponents/p-Datpns0U.js.map +0 -1
  119. /package/dist/xv-webcomponents/{p-054f5d59.entry.js.map → p-5b63a259.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, F as Fragment } from './index-Datpns0U.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, F as Fragment } from './index-DLYJiP99.js';
2
2
  import { u as uidGenerator, f as forEach, s as setAttr } from './index-NvoCloOY.js';
3
3
 
4
4
  const xvAccordionCss = ":host{display:block}";
@@ -65,32 +65,87 @@ const XvAccordionItem = class {
65
65
  };
66
66
  XvAccordionItem.style = xvAccordionItemCss;
67
67
 
68
- const xvButtonV2Css = "@charset \"UTF-8\";:host{--button-font-size:14px;--focus-border-width:2px;--focus-border-style:solid;--button-ghost:tarnsparent;--text-disabled-opacity:0.25;--button-border-radius:3px;--button-border-width:1px;--button-border-style:solid;--button-border-color-accent:#97BF0D;--button-border-color-primary:#273435;--button-border-color-secondary:#D1D1D1;--button-border-color-ghost:tarnsparent;--button-ghost-hover:tarnsparent;--button-ghost-active:rgba(139, 139, 139, 0.5);--button-accent-disabled:#D1D1D1;--button-primary-disabled:#D1D1D1;--button-secondary-disabled:#D1D1D1;--button-tertiary-disabled:tarnsparent;--button-ghost-disabled:tarnsparent;--button-padding-x:20px}:host button{font-family:inherit;font-size:var(--button-font-size, 14px);font-weight:700;padding:0 var(--button-padding-x);min-height:40px;line-height:40px;cursor:pointer;box-sizing:border-box;transition:background-color 0.2s ease-in-out, filter 0.2s ease-in-out, transform 0.1s ease-in-out, border-color 0.2s ease-in-out, border-width 0.2s ease-in-out, box-shadow 0.2s ease-in-out}:host button.xv-button-block{width:100%}.xv-button{}.xv-button.accent{background-color:var(--button-accent);color:var(--text-on-color);border:var(--button-border-width) var(--button-border-style) var(--button-border-color-accent);border-radius:var(--button-border-radius)}.xv-button.accent:hover{background-color:var(--button-accent-hover)}.xv-button.accent:active{background-color:var(--button-accent-active);color:var(--text-on-color)}.xv-button.accent:focus{outline:none;border:var(--focus-border-width) var(--focus-border-style) var(--focus);transition:border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out}.xv-button.accent:disabled{background-color:var(--button-accent-disabled);color:var(--text-on-color-disabled);border:var(--button-border-width) var(--button-border-style) var(--button-accent-disabled)}.xv-button.primary{background-color:var(--button-primary);color:var(--text-on-color);border:var(--button-border-width) var(--button-border-style) var(--button-border-color-primary);border-radius:var(--button-border-radius)}.xv-button.primary:hover{background-color:var(--button-primary-hover)}.xv-button.primary:active{background-color:var(--button-primary-active)}.xv-button.primary:focus{outline:none;border:var(--focus-border-width) var(--focus-border-style) var(--focus);transition:border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out}.xv-button.primary:disabled{background-color:var(--button-primary-disabled);color:var(--text-on-color-disabled);border:var(--button-border-width) var(--button-border-style) var(--button-primary-disabled)}.xv-button.secondary{background-color:var(--button-secondary);color:var(--text-primary);border:var(--button-border-width) var(--button-border-style) var(--button-border-color-secondary);border-radius:var(--button-border-radius)}.xv-button.secondary:hover{background-color:var(--button-secondary-hover)}.xv-button.secondary:active{background-color:var(--button-secondary-active)}.xv-button.secondary:focus{outline:none;border:var(--focus-border-width) var(--focus-border-style) var(--focus);transition:border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out}.xv-button.secondary:disabled{background-color:var(--button-secondary-disabled);color:var(--text-on-color-disabled)}.xv-button.tertiary{background-color:var(--button-ghost);color:var(--text-primary);border:var(--button-border-width) var(--button-border-style) var(--button-tertiary);border-radius:var(--button-border-radius)}.xv-button.tertiary:hover{background-color:var(--button-tertiary-hover)}.xv-button.tertiary:active{background-color:var(--button-tertiary-active)}.xv-button.tertiary:focus{outline:none;border:var(--focus-border-width) var(--focus-border-style) var(--focus);transition:border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out}.xv-button.tertiary:disabled{background-color:var(--button-tertiary-disabled);color:var(--text-disabled);opacity:var(--text-disabled-opacity)}.xv-button.ghost{background-color:var(--button-ghost);color:var(--text-primary);border:var(--button-border-width) var(--button-border-style) var(--button-border-color-ghost);border-radius:var(--button-border-radius)}.xv-button.ghost:hover{background-color:var(--button-ghost-hover)}.xv-button.ghost:active{background-color:var(--button-ghost-active)}.xv-button.ghost:focus{outline:none;border:var(--focus-border-width) var(--focus-border-style) var(--focus);transition:border-color 0.2s ease-in-out}.xv-button.ghost:disabled{background-color:var(--button-ghost-disabled);color:var(--text-disabled);opacity:var(--text-disabled-opacity)}";
68
+ var SIZE_VAR;
69
+ (function (SIZE_VAR) {
70
+ SIZE_VAR["XS"] = "xs";
71
+ SIZE_VAR["SM"] = "sm";
72
+ SIZE_VAR["MD"] = "md";
73
+ SIZE_VAR["LG"] = "lg";
74
+ SIZE_VAR["XL"] = "xl";
75
+ })(SIZE_VAR || (SIZE_VAR = {}));
76
+ var XV_SORT_DIR;
77
+ (function (XV_SORT_DIR) {
78
+ XV_SORT_DIR["ASC"] = "asc";
79
+ XV_SORT_DIR["DESC"] = "desc";
80
+ XV_SORT_DIR["NONE"] = "none";
81
+ })(XV_SORT_DIR || (XV_SORT_DIR = {}));
82
+
83
+ const xvButtonV2Css = ":host{display:inline-block}:host([block]){display:block;width:100%}.xv-button{all:unset;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border-radius:3px;font-size:var(--fz-md);font-family:var(--ff-body, Tahoma);font-style:normal;font-weight:700;line-height:128.571%;letter-spacing:0.16px;cursor:pointer;position:relative;transition:background 0.2s, color 0.2s, border-color 0.2s;user-select:none;width:100%}.xv-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.xv-button--xs{--xv-button-icon-size:16px;padding:var(--spacing-02);height:var(--xv-button-icon-size)}.xv-button--sm{--xv-button-icon-size:32px;padding:var(--spacing-03);height:var(--xv-button-icon-size)}.xv-button--md{--xv-button-icon-size:40px;padding:var(--spacing-04);height:var(--xv-button-icon-size)}.xv-button--lg{--xv-button-icon-size:48px;padding:var(--spacing-05);height:var(--xv-button-icon-size)}.xv-button--xl{--xv-button-icon-size:60px;font-size:1.1em;padding:var(--spacing-06);height:auto}.xv-button--primary{background-color:var(--button-primary);color:var(--text-on-color)}.xv-button--primary:hover{background-color:var(--button-primary-hover)}.xv-button--primary:active{background-color:var(--button-primary-active)}.xv-button--accent{background-color:var(--button-accent);color:var(--text-on-color)}.xv-button--accent:hover{background-color:var(--button-accent-hover)}.xv-button--accent:active{background-color:var(--button-accent-active)}.xv-button--secondary{background-color:var(--button-secondary);border:1px solid var(--border-subtle-01)}.xv-button--secondary:hover{background-color:var(--button-secondary-hover)}.xv-button--secondary:active{background-color:var(--button-secondary-active)}.xv-button--danger{background:var(--support-error);color:white}.xv-button--danger:hover{background-color:#ba1b23}.xv-button--danger:active{background-color:#750e13}.xv-button--danger:disabled{background-color:var(--button-disabled);border-color:transparent;color:var(--text-on-color-disabled, #8B8B8B)}.xv-button--tertiary{background-color:transparent;border:1px solid var(--button-tertiary)}.xv-button--tertiary:hover{background-color:var(--button-tertiary-hover)}.xv-button--tertiary:active{background-color:var(--button-tertiary-active)}.xv-button--tertiary:disabled{color:var(--text-disabled);border-color:var(--button-disabled, #D1D1D1);background-color:transparent}.xv-button--ghost{background-color:transparent;color:var(--text-primary)}.xv-button--ghost:hover{background-color:transparent}.xv-button--ghost:active{background-color:rgba(139, 139, 139, 0.5)}.xv-button--ghost:disabled{color:var(--text-disabled);border-color:transparent;background-color:transparent}.xv-button--primary:disabled,.xv-button--accent:disabled,.xv-button--secondary:disabled,.xv-button--danger:disabled{border-color:var(--border-subtle-01, #D1D1D1);background-color:var(--button-disabled, #D1D1D1);color:var(--text-on-color-disabled, #8B8B8B)}.xv-button--disabled{cursor:not-allowed}.xv-button--loading{pointer-events:none;opacity:0.8}.xv-button__label{display:inline-flex;align-items:center}.xv-button__loader{position:absolute;left:50%;transform:translateX(-50%)}.xv-button__icon{display:inline-flex;align-items:center}.xv-button--icon-left .xv-button__icon--left{margin-inline-end:var(--spacing-05)}.xv-button--icon-right .xv-button__icon--right{margin-inline-start:var(--spacing-05)}.xv-button--icon-only{padding:0;width:var(--xv-button-icon-size, 40px);height:var(--xv-button-icon-size, 40px);justify-content:center}.xv-button--icon-only .xv-button__icon{margin:0}";
69
84
 
70
85
  const XvButton = class {
71
86
  constructor(hostRef) {
72
87
  registerInstance(this, hostRef);
73
- this.buttonClick = createEvent(this, "buttonClick");
74
- /** Button label */
75
- this.label = '';
76
- /** Container width Button */
88
+ if (hostRef.$hostElement$["s-ei"]) {
89
+ this.internals = hostRef.$hostElement$["s-ei"];
90
+ }
91
+ else {
92
+ this.internals = hostRef.$hostElement$.attachInternals();
93
+ hostRef.$hostElement$["s-ei"] = this.internals;
94
+ }
95
+ /** Button variants */
96
+ this.variant = 'primary';
97
+ /** Button size */
98
+ this.size = SIZE_VAR.MD;
99
+ /** Button disabled state */
100
+ this.disabled = false;
101
+ /** Button loading state */
102
+ this.loading = false;
103
+ /** Button for full width */
77
104
  this.block = false;
78
105
  /** Button type */
79
106
  this.type = 'button';
80
- /** Variant */
81
- this.variant = 'primary';
82
- /** Disabled state */
83
- this.disabled = false;
84
- /** Handle click only if not disabled */
85
- this.handleClick = (e) => {
86
- if (this.disabled)
87
- return;
88
- this.buttonClick.emit(e);
107
+ this.hasLeftIcon = false;
108
+ this.hasRightIcon = false;
109
+ this.hasContent = false;
110
+ this.handleSlotChangeLeft = (event) => {
111
+ this.hasLeftIcon = event.target.assignedElements().length > 0;
112
+ };
113
+ this.handleSlotChangeContent = (event) => {
114
+ this.hasContent = event.target.assignedNodes().some(node => {
115
+ var _a;
116
+ return node.nodeType === Node.ELEMENT_NODE ||
117
+ (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '');
118
+ });
119
+ };
120
+ this.handleSlotChangeRight = (event) => {
121
+ this.hasRightIcon = event.target.assignedElements().length > 0;
122
+ };
123
+ this.handleClick = () => {
124
+ var _a, _b;
125
+ if (this.type === 'submit') {
126
+ (_a = this.internals.form) === null || _a === void 0 ? void 0 : _a.requestSubmit();
127
+ }
128
+ else if (this.type === 'reset') {
129
+ (_b = this.internals.form) === null || _b === void 0 ? void 0 : _b.reset();
130
+ }
89
131
  };
90
132
  }
91
133
  render() {
92
- return (h("button", { key: '4a9a7d9eb8f0b9fb264c03e804fa157d14a15805', type: this.type, part: "button", class: `xv-button ${this.variant} ${this.block ? 'xv-button-block' : ''}`, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: 'd9102ce481222999d9f1a35b4782b550e1a3179c', name: "icon-left" }), h("slot", { key: '5960e30d35b9d403da9da635414cd4db95f165d6' }, this.label), h("slot", { key: 'aae667909ef6932eaa31a8a6b89165960d0cf8a3', name: "icon-right" })));
134
+ var _a;
135
+ return (h(Host, { key: 'ad8e2051c6023d13626e65861099114e2ff06db2' }, h("button", { key: '1f2b8e13a29a63b3f50ced928a83e92d0eb5c0ea', class: {
136
+ 'xv-button': true,
137
+ [`xv-button--${this.variant}`]: !!this.variant,
138
+ [`xv-button--${this.size}`]: !!this.size,
139
+ 'xv-button--disabled': this.disabled || this.loading,
140
+ 'xv-button--block': this.block,
141
+ 'xv-button--loading': this.loading,
142
+ 'xv-button--icon-left': this.hasLeftIcon,
143
+ 'xv-button--icon-right': this.hasRightIcon,
144
+ 'xv-button--icon-only': !this.hasContent,
145
+ }, part: "button", onClick: this.handleClick, type: this.type, disabled: this.disabled || this.loading, "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": ((_a = this.el) === null || _a === void 0 ? void 0 : _a.ariaLabel) || 'XV button' }, this.loading && (h("xv-loader-v2", { key: 'a7c55e4823b233f845f1a9e5e654f2c98a88001d', class: "xv-button__loader", size: this.size !== SIZE_VAR.XL ? this.size : SIZE_VAR.LG })), h("span", { key: '57f0ced69f7022ba8b602083b69fa2804061ccef', class: "xv-button__icon xv-button__icon--left" }, h("slot", { key: '8c6c0c1a12bfafe6a3674352b5e8ba77e0562eb3', name: "icon-left", onSlotchange: this.handleSlotChangeLeft })), h("span", { key: '8e19d4691b333a0d70a76ed476f59bacfeefa963', class: "xv-button__label" }, h("slot", { key: 'c9d9896b34e3137442b11db5d4f44d097d952d37', onSlotchange: this.handleSlotChangeContent }, this.label)), h("span", { key: '25a3256dff8ec326c081601dd46cff45149a7683', class: "xv-button__icon xv-button__icon--right" }, h("slot", { key: '90505c36d3620fa19c3d01fc1e66cc57e705a8db', name: "icon-right", onSlotchange: this.handleSlotChangeRight })))));
93
146
  }
147
+ static get formAssociated() { return true; }
148
+ get el() { return getElement(this); }
94
149
  };
95
150
  XvButton.style = xvButtonV2Css;
96
151
 
@@ -102,12 +157,12 @@ const XvCard = class {
102
157
  this.variant = 'vertical';
103
158
  }
104
159
  render() {
105
- return (h(Host, { key: '347b7aed9ce24e2e048bb4e6d0b07b23f0f60d5b', class: `xv-card xv-card_${this.variant}`, part: this.variant }, h("div", { key: '9cd9f38cfe7d93fc271907fc8435033df860c246', class: "xv-card_media" }, h("slot", { key: '35e2bae3084a0e7d26e13c0e3116daa9895ea6c1', name: "media" }, this.media && h("img", { key: '60d4305b136766e447653cb399f92ae70e3d9430', class: "xv-card_media__content", src: this.media, alt: this.header }))), h("div", { key: '3751defc0abf18997dca82ae5b5d6601c6e9f60b', class: "xv-card_content" }, h("div", { key: 'cca74475b9e5dba03c82f77851fb503a5323ce3c', class: "xv-card_header" }, h("slot", { key: '02c4e3ddfb73bd56ef8f5b44a22bfe710654171a', name: "header" }, this.header && h("p", { key: '56998aa4742cc7576a023fcbe3e0892f312805ee', class: "xv-card_header__content" }, this.header))), h("div", { key: '86da97df293ff58dbcfe0a2b7bc25c98053ac6a2', class: "xv-card_body" }, h("slot", { key: 'ff8d6dc3ef8e437d28f237c415bf43382df85f19', name: "body" }, this.body && h("p", { key: '7e8e351ac0fa2100fc7929e81cc380a4a32e7019', class: "xv-card_body__content" }, this.header))), h("div", { key: 'dc9824b523f2dbdb4f88dc05ac0e490f9b04f529', class: "xv-card_footer" }, h("slot", { key: 'ea4fbffc436ee2ef43f481be7656aad07dfc55ce', name: "footer" }, this.footer)))));
160
+ return (h(Host, { key: '7c19e1d91f9040c116dc18d6f58be859e66b0629', class: `xv-card xv-card_${this.variant}`, part: this.variant }, h("div", { key: '8ef942983bc31d278810372bfed3fe4cb8f1922a', class: "xv-card_media" }, h("slot", { key: '86bc68bcb80c563a91448c15ab1ebd89c1e5b245', name: "media" }, this.media && h("img", { key: 'c4351a7426b5b73ed37f038f1f355dcf46dae597', class: "xv-card_media__content", src: this.media, alt: this.header }))), h("div", { key: '906393c52bb7c27bfbc9527dfba34f712ec8a420', class: "xv-card_content" }, h("div", { key: 'd703353d99066a4f395f126f0ec8aa462c7a5c7b', class: "xv-card_header" }, h("slot", { key: '4fb9c65d701629dce6f99c8ad871adbd7659ecdd', name: "header" }, this.header && h("p", { key: 'e4a3f971b5dca8cdf3e44c9ba2a37baeff67fd59', class: "xv-card_header__content" }, this.header))), h("div", { key: '7029219d670fe9a94e5c50f657f5f2f2d45a2edb', class: "xv-card_body" }, h("slot", { key: '0f570bb3938b6c44e8cc3fb004ed1d7c487fb5a7', name: "body" }, this.body && h("p", { key: '02fc0abdc52c3a0bf833c0bfe24ec573f1457f21', class: "xv-card_body__content" }, this.header))), h("div", { key: '9734dca4512ace0e29e332acce27bf01c8a05e24', class: "xv-card_footer" }, h("slot", { key: '3cf0141845baf68e0149b823b921705978953ade', name: "footer" }, this.footer)))));
106
161
  }
107
162
  };
108
163
  XvCard.style = xvCardCss;
109
164
 
110
- const xvCheckboxCss = ":host{--checkbox-size:max(1rem, 16px);box-sizing:border-box;display:inline-flex;flex-direction:column}:host([error]) .xv-checkbox .checkmark{border-color:var(--text-error, #D62512)}.error,[name=info]{display:inline-flex;align-items:center;justify-content:flex-start;font-size:var(--fz-sm, 12px);font-family:var(--ff-body, Tahoma);line-height:133.333%;letter-spacing:0.32px}.error{margin-top:var(--gap-xs, 5px);color:var(--text-error, #D62512)}.error::before{margin-right:var(--gap-xs, 5px);content:\"!\";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:var(--fz-sm, 12px);font-weight:bold;color:white;background-color:var(--text-error, #D62512);border-radius:50%}.xv-checkbox{display:inline-flex;align-items:center;cursor:pointer;user-select:none}.xv-checkbox input[type=checkbox]{position:absolute;width:var(--checkbox-size);height:var(--checkbox-size);margin:0;padding:0;opacity:0;pointer-events:none;box-sizing:border-box}.xv-checkbox .checkmark{width:var(--checkbox-size);min-width:var(--checkbox-size);height:var(--checkbox-size);min-height:var(--checkbox-size);box-sizing:border-box;margin:0;padding:0;border:1.4px solid var(--icon-primary, #D1D1D1);border-radius:2px;background-color:var(--background, #FFF);transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:center}.xv-checkbox input:checked+.checkmark{background-color:var(--background-brand, #97BF0D);border-color:var(--background-brand, #97BF0D)}.xv-checkbox input:checked+.checkmark:not(.checkmark-partial)::after{content:\"\";width:calc(var(--checkbox-size) / 4);height:calc(var(--checkbox-size) / 2.5);border:solid var(--background, #FFF);margin-bottom:calc(var(--checkbox-size) / 10);border-width:0 2px 2px 0;transform:rotate(45deg);display:block}.xv-checkbox input:checked+.checkmark.checkmark-partial::after{content:\"\";width:calc(var(--checkbox-size) / 3);height:calc(var(--checkbox-size) / 10);background-color:var(--background, #FFF)}.xv-checkbox input:focus+.checkmark{outline:1.4px solid var(--focus, #8B8B8B)}.xv-checkbox .label{color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:128.571%;letter-spacing:0.16px}.xv-checkbox .label_str,.xv-checkbox .label ::slotted(*){margin-left:8px}.xv-checkbox.readonly{cursor:initial}.xv-checkbox.readonly input:checked+.checkmark{background-color:var(--background, #FFF);border:1.4px solid var(--icon-disabled, #D1D1D1)}.xv-checkbox.readonly input:checked+.checkmark:after{border-color:var(--icon-primary, #131313)}.xv-checkbox.readonly input:checked+.checkmark-partial:after{background-color:var(--icon-primary, #131313)}.xv-checkbox.readonly .checkmark{border:1.4px solid var(--icon-disabled, #D1D1D1)}.xv-checkbox.readonly .label{color:var(--text-primary, #333)}.xv-checkbox.disabled{cursor:not-allowed}.xv-checkbox.disabled .checkmark{border:1.4px solid var(--icon-disabled, #D1D1D1)}.xv-checkbox.disabled .label{color:var(--text-disabled, rgba(19, 19, 19, 0.25))}";
165
+ const xvCheckboxCss = ":host{--checkbox-size:max(1rem, 16px);box-sizing:border-box;display:inline-flex;flex-direction:column;overflow:visible !important}:host([error]) .xv-checkbox .checkmark{border-color:var(--text-error, #D62512)}.error,[name=info]{display:inline-flex;align-items:center;justify-content:flex-start;font-size:var(--fz-sm, 12px);font-family:var(--ff-body, Tahoma);line-height:133.333%;letter-spacing:0.32px}.error{margin-top:var(--gap-xs, 5px);color:var(--text-error, #D62512)}.error::before{margin-right:var(--gap-xs, 5px);content:\"!\";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:var(--fz-sm, 12px);font-weight:bold;color:white;background-color:var(--text-error, #D62512);border-radius:50%}.xv-checkbox{display:inline-flex;align-items:center;cursor:pointer;user-select:none}.xv-checkbox input[type=checkbox]{position:absolute;width:var(--checkbox-size);height:var(--checkbox-size);margin:0;padding:0;opacity:0;pointer-events:none;box-sizing:border-box}.xv-checkbox .checkmark{width:var(--checkbox-size);min-width:var(--checkbox-size);height:var(--checkbox-size);min-height:var(--checkbox-size);box-sizing:border-box;margin:0;padding:0;border:1.4px solid var(--icon-primary, #D1D1D1);border-radius:2px;background-color:var(--background, #FFF);transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:center}.xv-checkbox input:checked+.checkmark{background-color:var(--background-brand, #97BF0D);border-color:var(--background-brand, #97BF0D)}.xv-checkbox input:checked+.checkmark:not(.checkmark-partial)::after{content:\"\";position:absolute;width:calc(var(--checkbox-size) / 4);height:calc(var(--checkbox-size) / 2.5);border:solid var(--background, #FFF);margin-bottom:calc(var(--checkbox-size) / 10);border-width:0 2px 2px 0;transform:rotate(45deg);display:block}.xv-checkbox input:checked+.checkmark.checkmark-partial::after{content:\"\";position:absolute;width:calc(var(--checkbox-size) / 3);height:calc(var(--checkbox-size) / 10);background-color:var(--background, #FFF)}.xv-checkbox input:focus+.checkmark{outline:1.4px solid var(--focus, #8B8B8B)}.xv-checkbox .label{color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:128.571%;letter-spacing:0.16px}.xv-checkbox .label_str,.xv-checkbox .label ::slotted(*){margin-left:8px}.xv-checkbox.readonly{cursor:initial}.xv-checkbox.readonly input:checked+.checkmark{background-color:var(--background, #FFF);border:1.4px solid var(--icon-disabled, #D1D1D1)}.xv-checkbox.readonly input:checked+.checkmark:after{border-color:var(--icon-primary, #131313)}.xv-checkbox.readonly input:checked+.checkmark-partial:after{background-color:var(--icon-primary, #131313)}.xv-checkbox.readonly .checkmark{border:1.4px solid var(--icon-disabled, #D1D1D1)}.xv-checkbox.readonly .label{color:var(--text-primary, #333)}.xv-checkbox.disabled{cursor:not-allowed}.xv-checkbox.disabled .checkmark{border:1.4px solid var(--icon-disabled, #D1D1D1)}.xv-checkbox.disabled .label{color:var(--text-disabled, rgba(19, 19, 19, 0.25))}";
111
166
 
112
167
  const XvCheckbox = class {
113
168
  constructor(hostRef) {
@@ -181,7 +236,7 @@ const XvCheckbox = class {
181
236
  }
182
237
  }
183
238
  render() {
184
- return (h(Host, { key: 'bcaedf1b88ff4b64cec1ca477a214dc8987c6ed0' }, h("label", { key: '85770d8c9326340f63e024893c5fd28bc79f85a7', class: { 'xv-checkbox': true, disabled: this.disabled, readonly: this.readonly } }, h("input", { key: '156869a713eed4506123e267dc8e4b0ed74e73bb', ref: el => (this.inputEl = el), type: "checkbox", readonly: this.readonly, name: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.readonly, required: this.required, indeterminate: this.indeterminate, onInput: this.onInput, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur }), h("span", { key: '1b2a979ae6d31e48e03ab41a054236cd5dbaab26', class: `checkmark ${this.partial ? 'checkmark-partial' : ''}` }), h("div", { key: '5bb240548e68a3e44fd665a917ccc75d2bd423b1', class: "label" }, h("slot", { key: '7ac3876f675592624c2fd252d8dc9941ad823de9' }, this.label && h("span", { key: '263f592cf8f71cfbb6d4a53180b67e71260f36da', class: "label_str" }, this.label)))), h("slot", { key: 'aaf1a57125f9561f0902e943991ba8c91b763534', name: "info" }), !!this.error && h("span", { key: 'a7e94090ad70cf9929b6112965ff6da3965de627', class: "error" }, this.error)));
239
+ return (h(Host, { key: '9eb988ec6a7a02392b4ed77685eed2bc5814c137' }, h("label", { key: '3e4c7112c959897c5b61cbcff890eaf437e476fc', class: { 'xv-checkbox': true, disabled: this.disabled, readonly: this.readonly } }, h("input", { key: '3a2e68b5780ae3951f86d30f9b2e8d9af1805e97', ref: el => (this.inputEl = el), type: "checkbox", readonly: this.readonly, name: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.readonly, required: this.required, indeterminate: this.indeterminate, onInput: this.onInput, onChange: this.onChange, onFocus: this.onFocus, onBlur: this.onBlur }), h("span", { key: 'b57f073a258a1ea15d04969a68eab7c36023e596', class: `checkmark ${this.partial ? 'checkmark-partial' : ''}` }), h("div", { key: '1abe0c133bf203b228b86bd68053856b79cdf170', class: "label" }, h("slot", { key: '155a80701f1a050a73a0079308de0b932407549e' }, this.label && h("span", { key: 'f9d493bfb663fcf91712b754b4c1b841d10beb05', class: "label_str" }, this.label)))), h("slot", { key: 'fae7055dc73235126a633a705b6e8f045a20954c', name: "info" }), !!this.error && h("span", { key: '5c3bb7d31289862bf421614ee9906671e65c1b7c', class: "error" }, this.error)));
185
240
  }
186
241
  componentDidLoad() {
187
242
  if (this.indeterminate) {
@@ -207,18 +262,145 @@ const XvCheckbox = class {
207
262
  };
208
263
  XvCheckbox.style = xvCheckboxCss;
209
264
 
210
- var SIZE_VAR;
211
- (function (SIZE_VAR) {
212
- SIZE_VAR["XS"] = "xs";
213
- SIZE_VAR["SM"] = "sm";
214
- SIZE_VAR["MD"] = "md";
215
- SIZE_VAR["LG"] = "lg";
216
- SIZE_VAR["XL"] = "xl";
217
- })(SIZE_VAR || (SIZE_VAR = {}));
265
+ const xvDataTableCss = ":host{--xv-data-table-border-width:1px;--xv-data-table-border-color:var(--border-subtle-01, #D1D1D1);--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-05, 16px);--xv-data-table-row-bg:transparent;width:inherit;text-align:left;color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:18px;letter-spacing:0.16px}@media screen and (max-width: 980px){:host{display:block;position:relative;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--layer-accent-03) transparent}:host ::slotted([slot=title]),:host>table{min-width:1000px}}:host .bar{position:sticky;left:0}:host .bar_batch{position:absolute;bottom:0;left:0;right:0;pointer-events:unset;user-select:unset;z-index:2;background-color:var(--interactive-01, #273435);color:var(--text-on-color, #fff);border-radius:3px 3px 0 0;display:flex;align-items:center}:host .bar_toolbar{z-index:1;border-radius:3px 3px 0 0}:host ::slotted([slot=title]){margin:0 !important;color:var(--text-primary, #333) !important;font-family:var(--ff-heading, \"Gill Sans\") !important;font-size:var(--fz-xl, 21px) !important;text-align:left;font-style:normal !important;font-weight:400 !important;line-height:normal !important;padding:var(--spacing-05) var(--spacing-05) var(--spacing-06) !important}:host ::slotted([slot=toolbar]){margin-bottom:var(--spacing-03)}:host>table{width:inherit;border-collapse:collapse;table-layout:fixed;border-left:1px solid var(--xv-data-table-border-color);border-right:1px solid var(--xv-data-table-border-color)}:host>caption{display:contents}:host([block]){width:100%}:host([block])>table{table-layout:fixed}:host([size=xs]){--xv-data-table-padding-x:var(--spacing-02, 4px);--xv-data-table-padding-y:var(--spacing-02, 4px)}:host([size=sm]){--xv-data-table-padding-x:var(--spacing-04, 12px);--xv-data-table-padding-y:var(--spacing-03, 8px)}:host([size=md]){--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-05, 16px)}:host([size=lg]){--xv-data-table-padding-x:var(--spacing-05, 16px);--xv-data-table-padding-y:var(--spacing-06, 24px)}:host([size=xl]){--xv-data-table-padding-x:var(--spacing-06, 24px);--xv-data-table-padding-y:var(--spacing-07, 32px)}";
266
+
267
+ const XvDataTable = class {
268
+ constructor(hostRef) {
269
+ registerInstance(this, hostRef);
270
+ this.size = SIZE_VAR.MD;
271
+ this.columnWidths = [];
272
+ this.hover = false;
273
+ }
274
+ render() {
275
+ return (h(Host, { key: '207324db4e9adea03e0137788fa43f8e9a7eb677', class: "xv-data-table" }, h("caption", { key: 'f5925136510194c00db68b12ef921f6e68b56904' }, h("slot", { key: 'b0b40ae6031c154f75f84587c4fa54f2c86fb011', name: "title" })), h("div", { key: '69121d921fcdc8f1c82e44d7eede6cdcab9e22d4', class: "bar" }, h("div", { key: '6b3db04362ba12983581946f00a66738dee3c2da', class: "bar_batch" }, h("slot", { key: 'caac537802365f29fefb13ac7f2c3060849ac47e', name: "batch" })), h("div", { key: 'b918df57e54dca14d66dd8a14994ceab12ff7ad2', class: "bar_toolbar" }, h("slot", { key: 'a567d9d6258abf3b3ed888e5ecee3817962949f6', name: "toolbar" }))), h("table", { key: 'fd0e463d79710b09db9a6e5655279d6c6591ed2e', role: "table" }, this.columnWidths.length > 0 && (h("colgroup", { key: '05aa18155327d5ecb1c62081dc081efb1f3b8db3' }, this.columnWidths.map((width = 'auto') => h("col", { style: { width } })))), h("slot", { key: 'f95cdd075cad05b53bf8e3cef85eccd908c1191f' }))));
276
+ }
277
+ get el() { return getElement(this); }
278
+ };
279
+ XvDataTable.style = xvDataTableCss;
280
+
281
+ const xvDataTableCellCss = "@charset \"UTF-8\";:host{display:table-cell;border-style:solid;border-left-width:0;border-right-width:0;border-top-width:var(--xv-data-table-border-width, 0);border-bottom-width:var(--xv-data-table-border-width, 0);border-color:var(--xv-data-table-border-color, transparent);padding-inline:var(--xv-data-table-padding-x, 0);padding-block:var(--xv-data-table-padding-y, 0);vertical-align:middle;word-break:break-all;font-style:normal;font-weight:400}:host .line-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}:host(:not(.multiline)){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host(:not(.multiline)) ::slotted(*){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([sort]){position:relative;cursor:pointer;user-select:none}:host([sort]):before,:host([sort]):after{font-size:12px;line-height:10px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;right:8px;pointer-events:none;transition:350ms ease-in-out opacity;opacity:0}:host([sort]):before{content:\"▲\";top:50%;transform:translateY(calc(-50% - 5px))}:host([sort])::after{content:\"▼\";top:50%;transform:translateY(calc(-50% + 5px))}:host([sort]:hover){background-color:var(--layer-accent-hover-01, #E3E3E3)}:host([sort]:hover)::before,:host([sort]:hover)::after{opacity:1}:host([sort=asc]){background-color:var(--layer-accent-active-01, #D1D1D1)}:host([sort=asc])::before{opacity:1}:host([sort=asc])::after{display:none}:host([sort=desc]){background-color:var(--layer-accent-active-01, #D1D1D1)}:host([sort=desc])::before{display:none}:host([sort=desc])::after{opacity:1}";
282
+
283
+ const XvDataTableCell = class {
284
+ constructor(hostRef) {
285
+ registerInstance(this, hostRef);
286
+ this.sortChange = createEvent(this, "sortChange");
287
+ }
288
+ handleSort() {
289
+ if (this.sort === undefined)
290
+ return;
291
+ let sort = this.sort;
292
+ if (this.sort === '')
293
+ sort = XV_SORT_DIR.NONE;
294
+ this.sort = sort === XV_SORT_DIR.NONE ?
295
+ XV_SORT_DIR.ASC : sort === XV_SORT_DIR.ASC ?
296
+ XV_SORT_DIR.DESC : XV_SORT_DIR.NONE;
297
+ forEach(this.el.parentElement.children, (cell) => {
298
+ if (cell !== this.el && cell.hasAttribute('sort')) {
299
+ cell.setAttribute('sort', 'none');
300
+ }
301
+ });
302
+ if (!this.name)
303
+ this.name = uidGenerator();
304
+ this.sortChange.emit(this.sort);
305
+ }
306
+ ;
307
+ render() {
308
+ return (h(Host, { key: 'bfc254739fa56d47210d43d134ba6c3534c5e567', role: "cell", style: { width: this.width }, class: {
309
+ multiline: this.multiline !== undefined,
310
+ [`align--${this.align}`]: !!this.align
311
+ } }, !this.multiline || isNaN(this.multiline) ? h("slot", null) : (h("div", { class: "line-clamp", style: { ['-webkit-line-clamp']: `${this.multiline}` } }, h("slot", null)))));
312
+ }
313
+ get el() { return getElement(this); }
314
+ };
315
+ XvDataTableCell.style = xvDataTableCellCss;
316
+
317
+ const XV_DATA_TABLE_TAG = 'xv-data-table';
318
+ const XV_DATA_TABLE_ROW_TAG = 'xv-data-table-row';
319
+
320
+ const xvDataTableCollapseCss = ":host([collapsed]){display:none}:host([expanded]){display:contents}";
321
+
322
+ const XvDataTableCollapse = class {
323
+ constructor(hostRef) {
324
+ registerInstance(this, hostRef);
325
+ this.collapsedChange = createEvent(this, "collapsedChange");
326
+ this.collapsed = false;
327
+ }
328
+ async setCollapsed(collapsed) {
329
+ this.collapsed = collapsed;
330
+ this.collapsedChange.emit(this.collapsed);
331
+ return this.collapsed;
332
+ }
333
+ componentWillLoad() {
334
+ const table = this.el.closest(XV_DATA_TABLE_TAG);
335
+ const rows = table.querySelectorAll(XV_DATA_TABLE_ROW_TAG);
336
+ rows.forEach((row) => row === null || row === void 0 ? void 0 : row.setAttribute('collapsable', ''));
337
+ }
338
+ render() {
339
+ return (h(Host, { key: '7704e9d073c449d3efd35bada4f632129378308e', id: this.el.id, part: "xv-collapse", class: this.el.className, collapsed: this.collapsed, expanded: !this.collapsed }, h("slot", { key: 'a9684bbe4c0bf29fdf12c81344236d1b38865fd3' })));
340
+ }
341
+ get el() { return getElement(this); }
342
+ };
343
+ XvDataTableCollapse.style = xvDataTableCollapseCss;
344
+
345
+ const xvDataTableRowCss = ":host{display:table-row;background-color:var(--xv-data-table-row-bg, transparent);transition:0.2s ease-in-out background-color}:host .cell-control{font-size:8px;max-width:16px;position:relative;padding-left:calc(var(--xv-data-table-padding-x) + var(--xv-data-table-padding-x) + 10px + 1em);overflow:visible}:host .cell-control_collapse{font-size:inherit;width:1em;height:1em;margin:0;padding:0;position:absolute;overflow:visible;background-color:transparent;outline:none;top:calc(50% - 0.7em);left:var(--xv-data-table-padding-x);display:inline-flex;border-top:none;border-left:none;border-right:2px solid var(--icon-primary, #333);border-bottom:2px solid var(--icon-primary, #333);transform:rotate(45deg);transform-origin:center center;transition:0.2s ease-in-out transform, 0.2s ease-in-out opacity;cursor:pointer;box-sizing:content-box}:host .cell-control_collapse:active{opacity:0.4}:host .cell-control_collapse.open{transform:rotate(-135deg)}:host .cell-control_checkbox{display:flex}:host(.hover:not([header]):hover){background-color:var(--layer-hover-01, #E9E9E9)}:host([header]){background-color:var(--layer-accent-01, #F7F7F7)}:host(.checked){background-color:var(--layer-selected-01, #E3E3E3)}:host(.hover.checked:hover){background-color:var(--layer-selected-hover-01, #DADADA)}:host([footer]),:host([footer]:hover),:host([footer].hover),:host([footer].hover:hover){background-color:var(--layer-accent-02, #E3E3E3)}:host([disabled]){opacity:0.5}";
346
+
347
+ const XvDataTableRow = class {
348
+ constructor(hostRef) {
349
+ registerInstance(this, hostRef);
350
+ this.check = createEvent(this, "check");
351
+ this.checked = false;
352
+ this.partial = false;
353
+ this.hover = false;
354
+ this.header = false;
355
+ this.footer = false;
356
+ this.disabled = false;
357
+ this.readonly = false;
358
+ this.required = false;
359
+ this.collapsed = false;
360
+ this.collapseClick = async () => {
361
+ var _a;
362
+ if (!this.collapse || !this.collapseEl)
363
+ return;
364
+ this.collapsed = !this.collapsed;
365
+ await ((_a = this.collapseEl) === null || _a === void 0 ? void 0 : _a.setCollapsed(this.collapsed));
366
+ };
367
+ this.setInitialState = () => {
368
+ var _a;
369
+ if (this.collapse && !this.collapseEl) {
370
+ this.collapseEl = this.el.parentElement.querySelector(`xv-data-table-collapse${this.collapse}`);
371
+ this.collapsed = (_a = this.collapseEl) === null || _a === void 0 ? void 0 : _a.hasAttribute('collapsed');
372
+ }
373
+ if (!this.hover) {
374
+ const table = this.el.closest(XV_DATA_TABLE_TAG);
375
+ this.hover = table.hasAttribute('hover');
376
+ }
377
+ };
378
+ this.checkedChangeHandle = ({ detail: checked }) => {
379
+ if (!checked && this.partial)
380
+ this.partial = checked;
381
+ if (!this.name)
382
+ this.name = uidGenerator();
383
+ this.check.emit({
384
+ checked,
385
+ name: this.name,
386
+ value: this.value,
387
+ partial: this.partial,
388
+ header: this.header,
389
+ footer: this.footer,
390
+ expandable: !!this.collapseEl,
391
+ });
392
+ };
393
+ }
394
+ render() {
395
+ return (h(Host, { key: '4e452026f2b03d8d54811cb1de7342bc0a4d38b1', role: "row", part: "xv-row", class: { checked: this.checked, hover: this.hover } }, (!!this.variant || this.collapsable) && (h("xv-data-table-cell", { key: '28d1bb41ac6c4de32701315e1a201892041d4b42', width: !!this.variant ? '16px' : '0', class: "cell-control" }, !!this.collapse && (h("button", { key: 'b7d4c5d1e8121ce9797ca292d7367df734b356fe', class: { 'cell-control_collapse': true, open: !this.collapsed }, onClick: this.collapseClick })), this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: '6095d07a8626988bb863317284fb3ebd137ef58a', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, readonly: this.readonly, required: this.required, onEventChange: this.checkedChangeHandle, class: "cell-control_checkbox" })))), h("slot", { key: '0ae007a4595a3cc854246c2e46d058df0f596b17', onSlotchange: this.setInitialState })));
396
+ }
397
+ get el() { return getElement(this); }
398
+ };
399
+ XvDataTableRow.style = xvDataTableRowCss;
218
400
 
219
401
  const DropdownItemSelector = '.xv-dropdown-item';
220
402
 
221
- const xvDropdownCss = ":host{--dropdown-padding-x:16px;--dropdown-padding-y:11px;--dropdown-max-width:300px;display:block;position:relative;text-align:left;max-width:min(var(--dropdown-max-width), 100%)}:host .label{color:var(--text-secondary, #515151);font-family:var(--ff-body, Tahoma);font-size:12px;font-style:normal;font-weight:700;line-height:16px;letter-spacing:0.32px}:host .label ::slotted([slot=label]){color:var(--text-secondary, #515151);font-family:var(--ff-body, Tahoma);font-size:12px;font-style:normal;font-weight:700;line-height:16px;letter-spacing:0.32px}:host .control{background-blend-mode:multiply;border-radius:3px;box-shadow:0 0 0 1px #8B8B8B inset;transition:0.2s ease-in-out background-color;cursor:pointer;margin:0;box-sizing:border-box;font-family:inherit;font-size:100%;padding:0;border:0;appearance:none;background-color:var(--field-02, #FFF);text-align:start;inline-size:100%;position:relative;display:inline-flex;overflow:hidden;align-items:center;block-size:calc(100% + 1px);outline:none;padding-block:var(--dropdown-padding-y);padding-inline:var(--dropdown-padding-x);text-overflow:ellipsis;vertical-align:top;white-space:nowrap}:host .control_value,:host .control_placeholder{flex:1;margin:0;overflow:hidden;color:var(--text-primary, #333);user-select:none;text-overflow:ellipsis;white-space:nowrap;font-family:var(--fz-body, Tahoma);font-size:14px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:0.16px;padding-inline:0 1rem}:host .control_placeholder{color:var(--text-placeholder, #ACACAC)}:host .control_icon{width:18px;height:18px}:host .control_icon.error{color:var(--support-error, #F1290E)}:host .control_icon.warning{color:var(--support-warning, #FF7F04)}:host .control_arrow{box-sizing:border-box;margin:0;font-size:100%;vertical-align:baseline;padding:0;border:0;appearance:none;background:none;text-align:start;display:flex;align-items:center;justify-content:center;block-size:1.5rem;inline-size:1.5rem;inset-inline-end:0.75rem;outline:none;transition:transform 70ms cubic-bezier(0.2, 0, 0.38, 0.9)}:host .control:hover{background-color:var(--field-hover-02, #E9E9E9)}:host .control:active{background-color:var(--layer-selected-02, #E3E3E3)}:host .options{inset-block-start:100%;margin-block-start:1px;display:block;max-block-size:13.75rem;box-shadow:0 2px 6px rgba(0, 0, 0, 0.3);position:absolute;z-index:10;inline-size:100%;inset-inline:0;overflow-y:auto;transition:max-height 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);border-radius:3px;background-color:var(--field-02, #FFF);scrollbar-width:thin;scrollbar-color:var(--layer-accent-03) transparent}:host .options ::slotted(.xv-dropdown-item){display:block;max-block-size:13.75rem;inset-inline:0;box-sizing:border-box;padding:var(--dropdown-padding-y) calc(var(--dropdown-padding-x) + 16px) var(--dropdown-padding-y) var(--dropdown-padding-x);position:relative;cursor:pointer;overflow:hidden;color:var(--text-secondary, #515151);text-overflow:ellipsis;white-space:nowrap;font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);font-style:normal;font-weight:400;line-height:18px;letter-spacing:0.16px;transition:0.2s ease-in-out background-color;user-select:none}:host .options ::slotted(.xv-dropdown-item):after{content:\"\";position:absolute;bottom:0;height:1px;left:10px;width:calc(100% - 20px);background-color:var(--border-subtle-01)}:host .options ::slotted(.xv-dropdown-item:hover){background-color:var(--layer-hover-02, #F7F7F7)}:host .options ::slotted(.xv-dropdown-item:active){background-color:var(--layer-selected-hover-02, #DADADA)}:host .options ::slotted(.xv-dropdown-item[selected]){background-color:var(--layer-selected-02, #E3E3E3)}:host .options ::slotted(.xv-dropdown-item[selected]:hover){background-color:var(--layer-selected-hover-02, #DADADA)}:host .options ::slotted(.xv-dropdown-item[disabled]){background-color:transparent;opacity:0.4;cursor:not-allowed}:host .helper{color:var(--text-helper, #646464);font-family:var(--ff-heading, \"IBM Plex Sans\");font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:0.32px;margin:0;padding:0}:host([open]) .control_arrow{transform:rotate(180deg)}:host([disabled]){opacity:0.4;cursor:not-allowed}:host([disabled]) .control{cursor:inherit}:host([disabled]) .control:hover,:host([disabled]) .control:active,:host([disabled]) .control:focus-within{background-color:transparent}:host([error]) .control{box-shadow:none;outline:2px solid var(--support-support-error, #F1290E)}:host([error]) .helper{color:var(--text-error, #D62512)}:host([size=xs]){--dropdown-padding-y:4px}:host([size=sm]){--dropdown-padding-y:7px}:host([size=md]){--dropdown-padding-y:11px}:host([size=lg]){--dropdown-padding-y:15px}:host([size=xl]){--dropdown-padding-y:16px}";
403
+ const xvDropdownCss = ":host{--dropdown-padding-x:16px;--dropdown-padding-y:11px;--dropdown-max-width:300px;display:block;position:relative;text-align:left;max-width:min(var(--dropdown-max-width), 100%)}:host .label{display:block;color:var(--text-secondary, #515151);font-family:var(--ff-body, Tahoma);font-size:12px;font-style:normal;font-weight:700;line-height:16px;letter-spacing:0.32px;margin-bottom:8px}:host .label ::slotted([slot=label]){color:var(--text-secondary, #515151);font-family:var(--ff-body, Tahoma);font-size:12px;font-style:normal;font-weight:700;line-height:16px;letter-spacing:0.32px}:host .label_info{margin-left:var(--spacing-02)}:host .control{background-blend-mode:multiply;border-radius:3px;box-shadow:0 0 0 1px #8B8B8B inset;transition:0.2s ease-in-out background-color;cursor:pointer;margin:0;box-sizing:border-box;font-family:inherit;font-size:100%;padding:0;border:0;appearance:none;background-color:var(--field-02, #FFF);text-align:start;inline-size:100%;position:relative;display:inline-flex;overflow:hidden;align-items:center;block-size:calc(100% + 1px);outline:none;padding-block:var(--dropdown-padding-y);padding-inline:var(--dropdown-padding-x);text-overflow:ellipsis;vertical-align:top;white-space:nowrap}:host .control_value,:host .control_placeholder{flex:1;margin:0;overflow:hidden;color:var(--text-primary, #333);user-select:none;text-overflow:ellipsis;white-space:nowrap;font-family:var(--fz-body, Tahoma);font-size:14px;font-style:normal;font-weight:400;line-height:18px;letter-spacing:0.16px;padding-inline:0 1rem}:host .control_placeholder{color:var(--text-placeholder, #ACACAC)}:host .control_icon{width:18px;height:18px}:host .control_icon.error{color:var(--support-error, #F1290E)}:host .control_icon.warning{color:var(--support-warning, #FF7F04)}:host .control_arrow{box-sizing:border-box;margin:0;font-size:100%;vertical-align:baseline;padding:0;border:0;appearance:none;background:none;text-align:start;display:flex;align-items:center;justify-content:center;block-size:1.5rem;inline-size:1.5rem;inset-inline-end:0.75rem;outline:none;transition:transform 70ms cubic-bezier(0.2, 0, 0.38, 0.9)}:host .control:hover{background-color:var(--field-hover-02, #E9E9E9)}:host .control:active{background-color:var(--layer-selected-02, #E3E3E3)}:host .options{inset-block-start:100%;margin-block-start:1px;display:block;max-block-size:13.75rem;box-shadow:0 2px 6px rgba(0, 0, 0, 0.3);position:absolute;z-index:10;inline-size:100%;inset-inline:0;overflow-y:auto;transition:max-height 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);border-radius:3px;background-color:var(--field-02, #FFF);scrollbar-width:thin;scrollbar-color:var(--layer-accent-03) transparent}:host .options ::slotted(.xv-dropdown-item){display:block;max-block-size:13.75rem;inset-inline:0;box-sizing:border-box;padding:var(--dropdown-padding-y) calc(var(--dropdown-padding-x) + 16px) var(--dropdown-padding-y) var(--dropdown-padding-x);position:relative;cursor:pointer;overflow:hidden;color:var(--text-secondary, #515151);text-overflow:ellipsis;white-space:nowrap;font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);font-style:normal;font-weight:400;line-height:18px;letter-spacing:0.16px;transition:0.2s ease-in-out background-color;user-select:none}:host .options ::slotted(.xv-dropdown-item):after{content:\"\";position:absolute;bottom:0;height:1px;left:10px;width:calc(100% - 20px);background-color:var(--border-subtle-01)}:host .options ::slotted(.xv-dropdown-item:hover){background-color:var(--layer-hover-02, #F7F7F7)}:host .options ::slotted(.xv-dropdown-item:active){background-color:var(--layer-selected-hover-02, #DADADA)}:host .options ::slotted(.xv-dropdown-item[selected]){background-color:var(--layer-selected-02, #E3E3E3)}:host .options ::slotted(.xv-dropdown-item[selected]:hover){background-color:var(--layer-selected-hover-02, #DADADA)}:host .options ::slotted(.xv-dropdown-item[disabled]){background-color:transparent;opacity:0.4;cursor:not-allowed}:host .helper{color:var(--text-helper, #646464);font-family:var(--ff-heading, \"IBM Plex Sans\");font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:0.32px;margin:4px 0 0;padding:0}:host([open]) .control_arrow{transform:rotate(180deg)}:host([disabled]){opacity:0.4;cursor:not-allowed}:host([disabled]) .control{cursor:inherit}:host([disabled]) .control:hover,:host([disabled]) .control:active,:host([disabled]) .control:focus-within{background-color:transparent}:host([error]) .control{box-shadow:none;outline:2px solid var(--support-support-error, #F1290E)}:host([error]) .helper{color:var(--text-error, #D62512)}:host([size=xs]){--dropdown-padding-y:4px}:host([size=sm]){--dropdown-padding-y:7px}:host([size=md]){--dropdown-padding-y:11px}:host([size=lg]){--dropdown-padding-y:15px}:host([size=xl]){--dropdown-padding-y:16px}";
222
404
 
223
405
  const XvDropdown = class {
224
406
  constructor(hostRef) {
@@ -314,7 +496,7 @@ const XvDropdown = class {
314
496
  this.changeSelection.emit(this.setSelected(this.selectedMap, optionElements));
315
497
  }
316
498
  render() {
317
- return (h(Host, { key: 'c079d730375bac47e2990c414f78dbe5f0c819de', class: "xv-dropdown", role: "combobox", size: this.size, open: this.open, error: this.error, disabled: this.disabled, tabindex: this.disabled ? -1 : false }, h("label", { key: '89822575a8ba145cfbc54bd40ae50021069243ea', class: "label" }, h("slot", { key: 'd09fa78e0df2f911160b059a1254dd09b1c2edcf', name: "label" }, this.label)), h("div", { key: 'a4cb541ee3ccca7148b11ff2a5455d9efb75831e', class: "xv-dropdown-control control", onClick: this.handleOpen }, this.selected.length ? (h("p", { class: "control_value" }, this.selected.join(', '))) : (h("p", { class: "control_placeholder" }, this.placeholder || '')), this.renderIcon(), h("svg", { key: '698d39331ed3e1e09ae48db98244d0f8e2cecc47', class: "control_arrow", focusable: "false", preserveAspectRatio: "xMidYMid meet", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", "aria-hidden": "true", width: "16", height: "16", viewBox: "0 0 16 16" }, h("path", { key: '4e78ab3ba78ff63b21f2766887440b5d638fc5e6', d: "M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z" }))), this.open && h("div", { key: 'd3493338d8e5acd48a0c825843da13ba631e7050', class: "options" }, h("slot", { key: "xv-dropdown-options" })), (this.helper || this.error || this.warning) && (h("p", { key: 'b337cece3d8c4aeb4aedc10b0ef6669c19e27e30', class: "helper" }, this.error || this.warning || this.helper))));
499
+ return (h(Host, { key: '556a488d40dfcf1510f183fefbbf9d9bd1d0be80', class: "xv-dropdown", role: "combobox", size: this.size, open: this.open, error: this.error, disabled: this.disabled, tabindex: this.disabled ? -1 : false }, h("label", { key: '54550cb9b8a26cc4df4a55abc677bd3f5bb9730d', class: "label" }, h("slot", { key: '46270d1b0e6b5ee26a07aeaf318617c73e82cfdb', name: "label" }, this.label), this.info && h("xv-tooltip-v2", { key: 'f3b7c09e3346dbaeb0fd720e20e4bbcd58bde7eb', class: "label_info", message: this.info })), h("div", { key: '4b4a2794ba78378cd89b3b2ad67bc66edbf4c52f', class: "xv-dropdown-control control", onClick: this.handleOpen }, this.selected.length ? (h("p", { class: "control_value" }, this.selected.join(', '))) : (h("p", { class: "control_placeholder" }, this.placeholder || '')), this.renderIcon(), h("svg", { key: '7c79ee0d976229090c0c0a25d01d7beb9a0c3afc', class: "control_arrow", focusable: "false", preserveAspectRatio: "xMidYMid meet", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", "aria-hidden": "true", width: "16", height: "16", viewBox: "0 0 16 16" }, h("path", { key: 'a895b585e7750cf4a01f7bd0dff390e70f2c482c', d: "M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z" }))), this.open && h("div", { key: '846792bfd1683daeb3223fb68c3559543b540787', class: "options" }, h("slot", { key: "xv-dropdown-options" })), (this.helper || this.error || this.warning) && (h("p", { key: '741d4636d86a44091e4a4b275806f745ded156f7', class: "helper" }, this.error || this.warning || this.helper))));
318
500
  }
319
501
  componentWillLoad() {
320
502
  this.setDefaultValues();
@@ -364,7 +546,7 @@ const XvDropdownItem = class {
364
546
  });
365
547
  }
366
548
  render() {
367
- return (h(Host, { key: '50c0bf3d6da015580b84ba455cc5f5b02a836fbb', class: "xv-dropdown-item", value: this.value, role: "option", tabindex: this.disabled ? -1 : false }, h("slot", { key: '3833346442861a6669a6fea827f7da3ef872861c' }), this.selected && h("span", { key: '139e1a037467cf98f363f172454a8a9122667955', class: "checkmark" })));
549
+ return (h(Host, { key: '85ba648d8281168521c1ed8c4b0b861fb428ce8e', class: "xv-dropdown-item", value: this.value, role: "option", tabindex: this.disabled ? -1 : false }, h("slot", { key: '6c303d085e23e1ecfa433aefa22f02be1cd5711f' }), this.selected && h("span", { key: 'c555912f9727a0e42b09279b31fe3b3b740bf7eb', class: "checkmark" })));
368
550
  }
369
551
  componentWillLoad() {
370
552
  if (!this.value)
@@ -374,6 +556,129 @@ const XvDropdownItem = class {
374
556
  };
375
557
  XvDropdownItem.style = xvDropdownItemCss;
376
558
 
559
+ var XvFileUploaderVariants;
560
+ (function (XvFileUploaderVariants) {
561
+ XvFileUploaderVariants["BUTTON"] = "button";
562
+ XvFileUploaderVariants["DRAG_DROP"] = "drag-drop";
563
+ })(XvFileUploaderVariants || (XvFileUploaderVariants = {}));
564
+
565
+ const xvFileUploaderCss = ":host{font-family:inherit;display:flex;flex-direction:column;gap:var(--spacing-05);font-size:14px}:host .label{font-weight:600;font-size:1em;color:var(--text-primary)}:host .description{font-size:1em;margin:0;color:var(--text-secondary)}:host .upload-btn{padding:0 1.14em;border-radius:0.285em;background-color:var(--background-inverse);color:var(--text-inverse);border:none;cursor:pointer;font-size:1em;height:2.86em;transition:250ms ease-in-out background-color}:host .upload-btn:hover{background-color:var(--background-inverse-hover)}:host .drop-zone{border:1px dashed var(--border-strong-01);background-color:transparent;padding:1.14em;border-radius:0.285em;transition:border-color 0.2s ease, background-color 0.2s ease;font-size:1em;cursor:pointer}:host .drop-zone.active{border-color:var(--border-interactive);background-color:var(--background-active)}:host .drop-zone:hover{background-color:var(--background-hover)}:host .file-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}:host .file-list .file{border-radius:3px;background-color:var(--layer-01, #F7F7F7);font-size:1em}:host .file-list .file_container{padding:var(--spacing-04) var(--spacing-05);display:flex;justify-content:space-between;align-items:center}:host .file-list .file_container_name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:var(--text-primary, #333);font-style:normal;font-weight:400;line-height:128.571%;letter-spacing:0.16px;padding-right:var(--spacing-04)}:host .file-list .file_container_errorIcon{color:var(--text-error);margin-right:var(--spacing-03)}:host .file-list .file.withError{outline:2px solid var(--support-error)}:host .error-container{padding:var(--spacing-04) var(--spacing-05);border-top:1px solid var(--border-subtle-01);font-size:0.858em;font-style:normal;font-weight:400;color:var(--text-error)}:host .error-container_primary,:host .error-container_secondary{margin:0;padding:0}:host .error-container__secondary{color:var(--text-secondary, #515151)}:host(.disabled){pointer-events:none;opacity:0.6}:host(.disabled) .upload-btn,:host(.disabled) .drop-zone{cursor:not-allowed;background-color:var(--button-disabled-background, #ccc);color:var(--button-disabled-text, #666);border-color:var(--border-disabled, #bbb)}:host(.disabled) .remove-btn{display:none}:host([size=xs]){font-size:10px}:host([size=sm]){font-size:12px}:host([size=md]){font-size:14px}:host([size=lg]){font-size:18px}:host([size=xl]){font-size:22px}";
566
+
567
+ const XvFileUploader = class {
568
+ constructor(hostRef) {
569
+ registerInstance(this, hostRef);
570
+ this.filesChange = createEvent(this, "filesChange");
571
+ this.variant = XvFileUploaderVariants.BUTTON;
572
+ this.size = SIZE_VAR.MD;
573
+ this.accept = [];
574
+ this.maxFileSizeMB = 5;
575
+ this.maxFiles = 20;
576
+ this.multiple = true;
577
+ this.files = [];
578
+ this.loadingStates = [];
579
+ this.errors = [];
580
+ this.dragActive = false;
581
+ this.errorMessages = [];
582
+ this.onFileSelect = (event) => {
583
+ const input = event.target;
584
+ const selectedFiles = Array.from(input.files || []);
585
+ this.handleFiles(selectedFiles);
586
+ };
587
+ this.onDrop = (event) => {
588
+ var _a;
589
+ event.preventDefault();
590
+ this.dragActive = false;
591
+ const droppedFiles = Array.from(((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) || []);
592
+ this.handleFiles(droppedFiles);
593
+ };
594
+ this.handleFiles = (files) => {
595
+ this.files = this.validation(this.multiple ? [...this.files, ...files] : files);
596
+ this.filesChange.emit(this.files);
597
+ };
598
+ this.onDragOver = (event) => {
599
+ event.preventDefault();
600
+ this.dragActive = true;
601
+ };
602
+ this.onDragLeave = () => {
603
+ this.dragActive = false;
604
+ };
605
+ }
606
+ validation(files) {
607
+ var _a;
608
+ const maxSize = this.maxFileSizeMB * 1024 * 1024;
609
+ const seenFileNames = new Set();
610
+ const errorMessages = [];
611
+ const uniqueFiles = [];
612
+ for (const file of files) {
613
+ let error = null;
614
+ if (!seenFileNames.has(file.name)) {
615
+ seenFileNames.add(file.name);
616
+ uniqueFiles.push(file);
617
+ }
618
+ const extension = (_a = file.name.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
619
+ const isAccepted = this.accept.length === 0 ||
620
+ this.accept.some(type => {
621
+ const normalized = type.toLowerCase().replace(/^\./, '');
622
+ return normalized === extension;
623
+ });
624
+ if (!isAccepted) {
625
+ error = 'Unsupported file type.';
626
+ }
627
+ else if (file.size > maxSize) {
628
+ error = `File ${file.name} is too large.`;
629
+ }
630
+ errorMessages.push(error);
631
+ }
632
+ this.error = uniqueFiles.length > this.maxFiles
633
+ ? `Only ${this.maxFiles} file(s) allowed.`
634
+ : null;
635
+ this.errorMessages = errorMessages;
636
+ return uniqueFiles;
637
+ }
638
+ removeFile(index) {
639
+ this.files = this.validation([...this.files.slice(0, index), ...this.files.slice(index + 1)]);
640
+ this.filesChange.emit(this.files);
641
+ if (this.fileInput) {
642
+ this.fileInput.value = '';
643
+ }
644
+ }
645
+ render() {
646
+ var _a;
647
+ return (h(Host, { key: '1105dfa28937f83f3508498ecf3b00b181f3f062', class: { 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled } }, this.label && h("label", { key: 'bb7aeb7744325dc15cee88e63672ab2f1cac48fa', class: "label" }, this.label), this.description && h("p", { key: '17d6076cf70f1d69b9d760992739f5f8ae571711', class: "description" }, this.description), this.variant === 'button' ? (h("button", { disabled: this.disabled, class: "upload-btn", onClick: () => this.fileInput.click() }, this.addText || 'Dateien auswählen')) : (h("div", { class: { 'drop-zone': true, active: this.dragActive }, onDrop: this.onDrop, onDragOver: this.onDragOver, onDragLeave: this.onDragLeave, onClick: () => this.fileInput.click() }, this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.', ((_a = this.accept) === null || _a === void 0 ? void 0 : _a.length) > 0 && h("span", null, " (", this.accept.join(', '), ")"))), h("input", { key: 'bc25da9c977df0452fd8946b160d7b89487a5aee', ref: el => (this.fileInput = el), type: "file", hidden: true, onChange: this.onFileSelect, multiple: this.multiple, accept: this.accept.map(type => `.${type}`).join(',') }), h("ul", { key: '3d2b5a6505a70c4a14004f0e0f3c6da7213b0007', class: "file-list" }, this.files.map((file, index) => {
648
+ var _a, _b;
649
+ return (h("li", { class: { file: true, withError: !!(((_a = this.errors) === null || _a === void 0 ? void 0 : _a[index]) || ((_b = this.errorMessages) === null || _b === void 0 ? void 0 : _b[index])) } }, h("div", { class: "file_container" }, h("span", { class: "file_container_name" }, file.name), this._renderLoaderState(index)), this._renderError(index)));
650
+ })), this.error && (h("div", { key: '3918fcaf5c5660eb2a5553886e191e2969d81cb4', class: "error-container" }, h("p", { key: '26fcb672d89ec14e99b83dfc78712b72d9042d72', class: "error-container_primary" }, this.error)))));
651
+ }
652
+ _renderLoaderState(index) {
653
+ var _a, _b, _c;
654
+ const state = ((_a = this.loadingStates) === null || _a === void 0 ? void 0 : _a[index]) || null;
655
+ const errorIcon = ((_b = this.errors) === null || _b === void 0 ? void 0 : _b[index]) || ((_c = this.errorMessages) === null || _c === void 0 ? void 0 : _c[index]) ? (h("svg", { class: "file_container_errorIcon", width: "16", height: "16", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" }, h("path", { fill: "currentColor", d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" }))) : null;
656
+ switch (state) {
657
+ case 'loading':
658
+ return (h(Fragment, null, errorIcon, h("xv-loader-v2", { size: SIZE_VAR.XS })));
659
+ case 'success':
660
+ return (h(Fragment, null, errorIcon, h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 18 16", fill: "none" }, h("path", { d: "M9 16C6.125 16 3.5 14.5 2.0625 12C0.625 9.53125 0.625 6.5 2.0625 4C3.5 1.53125 6.125 0 9 0C11.8438 0 14.4688 1.53125 15.9062 4C17.3438 6.5 17.3438 9.53125 15.9062 12C14.4688 14.5 11.8438 16 9 16ZM12.5312 6.53125H12.5C12.8125 6.25 12.8125 5.78125 12.5 5.46875C12.2188 5.1875 11.75 5.1875 11.4688 5.46875L8 8.96875L6.53125 7.5C6.21875 7.1875 5.75 7.1875 5.46875 7.5C5.15625 7.78125 5.15625 8.25 5.46875 8.53125L7.46875 10.5312C7.75 10.8438 8.21875 10.8438 8.53125 10.5312L12.5312 6.53125Z", fill: "#97BF0D" }))));
661
+ case 'uploaded':
662
+ default:
663
+ return (h(Fragment, null, errorIcon, h("xv-button-v2", { variant: "ghost", size: SIZE_VAR.XS, onClick: () => this.removeFile(index) }, h("span", { slot: "icon-left" }, "\u00D7"))));
664
+ }
665
+ }
666
+ _renderError(index) {
667
+ var _a, _b;
668
+ const error = ((_a = this.errors) === null || _a === void 0 ? void 0 : _a[index]) || ((_b = this.errorMessages) === null || _b === void 0 ? void 0 : _b[index]);
669
+ if (!error)
670
+ return;
671
+ if (typeof error === 'object') {
672
+ return (h("div", { class: "error-container" }, h("p", { class: "error-container_primary" }, error.primary), h("p", { class: "error-container_secondary" }, error.secondary)));
673
+ }
674
+ if (typeof error === 'string') {
675
+ return (h("div", { class: "error-container" }, h("p", { class: "error-container_primary" }, error)));
676
+ }
677
+ return null;
678
+ }
679
+ };
680
+ XvFileUploader.style = xvFileUploaderCss;
681
+
377
682
  const xvFooterCss = ".svg-assets--src--project--images--svg-sprite--youtube,.svg-assets--src--project--images--svg-sprite--xing,.svg-assets--src--project--images--svg-sprite--vorkasse,.svg-assets--src--project--images--svg-sprite--visa,.svg-assets--src--project--images--svg-sprite--sepa,.svg-assets--src--project--images--svg-sprite--paypal,.svg-assets--src--project--images--svg-sprite--mastercard,.svg-assets--src--project--images--svg-sprite--linkedin,.svg-assets--src--project--images--svg-sprite--kauf-auf-rechnung,.svg-assets--src--project--images--svg-sprite--instagram,.svg-assets--src--project--images--svg-sprite--facebook{background:url(\"https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.svg\") no-repeat}.svg-assets--src--project--images--svg-sprite--facebook{background-position:0 100%;width:32px;height:32px}.svg-assets--src--project--images--svg-sprite--instagram{background-position:14.5454545455% 100%;width:32px;height:32px}.svg-assets--src--project--images--svg-sprite--kauf-auf-rechnung{background-position:0 0;width:84px;height:58px}.svg-assets--src--project--images--svg-sprite--linkedin{background-position:29.0909090909% 100%;width:32px;height:32px}.svg-assets--src--project--images--svg-sprite--mastercard{background-position:50% 0;width:84px;height:58px}.svg-assets--src--project--images--svg-sprite--paypal{background-position:0 64.4444444444%;width:84px;height:58px}.svg-assets--src--project--images--svg-sprite--sepa{background-position:50% 64.4444444444%;width:84px;height:58px}.svg-assets--src--project--images--svg-sprite--visa{background-position:100% 0;width:84px;height:58px}.svg-assets--src--project--images--svg-sprite--vorkasse{background-position:100% 64.4444444444%;width:84px;height:58px}.svg-assets--src--project--images--svg-sprite--xing{background-position:43.6363636364% 100%;width:32px;height:32px}.svg-assets--src--project--images--svg-sprite--youtube{background-position:58.1818181818% 100%;width:32px;height:32px}.sprite-icon-beachten{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-90px 0px;width:80px;height:80px}.sprite-icon-buchen{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:0px -82px;width:80px;height:80px}.sprite-icon-direct{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-284px -99px;width:21px;height:21px}.sprite-icon-downloads{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-80px -82px;width:80px;height:80px}.sprite-icon-kino{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-305px -99px;width:21px;height:21px}.sprite-icon-kosten{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-170px 0px;width:80px;height:80px}.sprite-icon-kreation{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-170px -80px;width:80px;height:80px}.sprite-icon-logo-full{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:0px -242px;width:189px;height:32px}.sprite-icon-logo-small{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-250px -99px;width:34px;height:34px}.sprite-icon-mobile{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-326px -99px;width:21px;height:21px}.sprite-icon-online{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-347px -99px;width:21px;height:21px}.sprite-icon-partner-agma{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-250px -66px;width:88px;height:33px}.sprite-icon-partner-bvdw{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-338px -66px;width:88px;height:33px}.sprite-icon-partner-climate{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-250px 0px;width:186px;height:33px}.sprite-icon-partner-google{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:0px 0px;width:90px;height:82px}.sprite-icon-partner-microsoft{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-250px -33px;width:186px;height:33px}.sprite-icon-plakat{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-368px -99px;width:21px;height:21px}.sprite-icon-print{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-389px -99px;width:21px;height:21px}.sprite-icon-radio{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-410px -99px;width:21px;height:21px}.sprite-icon-services{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-250px -133px;width:21px;height:21px}.sprite-icon-topangebote{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-271px -133px;width:21px;height:21px}.sprite-icon-tv{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:-292px -133px;width:21px;height:21px}.sprite-icon-werbeformen{background-image:url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);background-position:0px -162px;width:80px;height:80px}";
378
683
 
379
684
  const Xvfooter = class {
@@ -392,7 +697,7 @@ const Xvfooter = class {
392
697
  }
393
698
  }
394
699
  render() {
395
- return (h("footer", { key: '0db6bc4ceab1da36181d8a106677ee2b4c871a5d' }, h("div", { key: '4ed868bc230e7dd45ebca9255827c1cfeb40e1f7', innerHTML: this.htmlContent })));
700
+ return (h("footer", { key: 'ded377d47464f3f171b99929f6517d4a2bc0be7b' }, h("div", { key: 'f1cfbd7b0277f073ed45a7be034bc86d60bf8880', innerHTML: this.htmlContent })));
396
701
  }
397
702
  get el() { return getElement(this); }
398
703
  };
@@ -432,13 +737,13 @@ const XvHeader = class {
432
737
  }
433
738
  }
434
739
  render() {
435
- return (h("div", { key: '092ff32dfdc3a8abd588b4614cffadaf18ef73eb', id: "nav-container", class: "xv-header" }, h("nav", { key: 'c4981592dc5d6760999a4680cbdeeed4917bc86d', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: '63618147868e56c9ab0939468cddd0dc0808e242', class: "container" }, h("div", { key: '48621f92892e24388ee689f03a841feb68867cde', class: "row" }, h("div", { key: '05da27c68a7db429f80034e9d629aa3bd606d46e', class: "col-sm-3 col-xs-3 col-xxs-4 no-padding-right" }, h("div", { key: '1935f522fff8182eaaed782d9539e1f44e508229', class: "navbar-header" }, h("button", { key: 'f414e8f67289291087927ee5085f1420954ca576', class: "btn btn-default navbar-toggle pull-left navbar-btn", "data-toggle": "collapse", "data-target": "#main-menu" }, h("i", { key: 'cc9f95cb5ab19d72a529eda9075e9d365bd46f0b', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: 'a2a33abd90814d8625e329b87281bcad03c39bc3', class: "visible-xs-inline" }, h("a", { key: '2e39e2221e8258bfc4f44d6b6925b8d48586264c', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '226c442a5ff9f8b97188494ba19f4f0cbca48259', src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg", alt: "Crossvertise" }))), h("div", { key: '9004b25c4ce743423c3e906067620b75366ab72a', class: "hidden-xs" }, h("a", { key: 'ed1bddedf5cbfda77426059c937ec2a91e9e2ec9', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '77c9654a8f63113d22acdf9053ed82b37c68d05b', loading: "lazy", src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg", alt: "Crossvertise" }))))), h("div", { key: '3999ab34c55b0efc2239c8f6d1282d9c949980fb', class: "col-sm-9 col-xs-9 col-xxs-8 no-padding-left" }, h("ul", { key: '434ca6ae49f9dfc28f3f8ffce7b9191326ff4919', class: "nav nav-pills nav-meta pull-right" }, h("li", { key: 'e8ac4591296bfcc5c0c7e5f1a6487518402512b4' }, h("a", { key: '9856991d8faae8ead5cec36f4df6df447f98e1d9', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, h("i", { key: 'a49f4de9297931b7f374d3fc19992b5654e7a9d0', class: "fa fa-user" }), h("i", { key: '58f91f80fcc882ab3273f838773b551a0701d21e', class: "fa fa-exchange-alt" }))), h("li", { key: 'a3bca2f78dd035dfbda754998f0bc907f114d08b' }, h("a", { key: 'f47d0d34a272956b5d1945519f78a9b6d53f27c8', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, "Kontakt"), h("a", { key: '99a70355c8818a67c66d75515ae5b3dd2b87ee48', href: "https://www.crossvertise.com/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '1c82c6dc86ca379098d552ed3c10bf23b51ec7e9', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: 'ba7fb605ff015986524d5b38e8916e7c8846ea46', class: "fa fa-phone" }))), h("li", { key: '207d1e2d39abe0ecfc57b1e4e3b080a1e259d88e', class: "dropdown", id: "my-xv-menu" }, h("a", { key: 'a97520d3e14bbd7a9e4d65856b752410f84514e6', href: "#", class: "dropdown-toggle btn btn-default navbar-btn btn-link", "data-toggle": "dropdown" }, h("i", { key: '07ed030e3a41d20f3d719d164595a3aec9e700ed', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: 'b0f1ef955d12ddace3b277af8e735b1ca79bebf5', class: "hidden-xs" }, "Mein Bereich"), h("span", { key: 'f6df26451c6a379b8afbaf58dfeb1fbacabfac43', class: "caret" })), h("ul", { key: 'e696efc4e956d57d62c1bd681572a49cd4d6d783', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, h("li", { key: '45dc4ddcb0b72d85e937476f5b99c20b142ed1c1' }, h("a", { key: 'cd46060a5b67074979cf2b03ded35cca959c4338', href: "#" }, h("i", { key: '967e059a1db803ba7394b2142ebf8220081dac3f', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen\u00A0", h("i", { key: '83ab26e47b8f837bcfea1a4986384c07747f39c7', class: "fa fa-caret-down" }))), h("li", { key: '2be9da522fbe82772a448fd257ac9fd62614ab5b' }, h("a", { key: 'a45b735877d449df5147c9a21e1964dd352ea052', href: "#" }, h("i", { key: '4b7ffab0fde8dc7fea76264e1103538d72a22b93', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten\u00A0", h("i", { key: '06420beb12c2704067273fa011d95148c612604b', class: "fa fa-caret-down" }))), h("li", { key: '26c7b8be4bace85b9eda242f5927ddb9b4c7f3b7', role: "separator", class: "divider" }), h("li", { key: '4f31616186edfbbdad11246fed6779c84d9ae2e0' }, h("a", { key: '16edf08f7ba8acde9c94212573be770c76b1eed3', href: "#" }, h("i", { key: 'b2044b2cf5063653498883073a3ad5efde2db954', class: "fa fa-user" }), "\u00A0Mein Crossvertise\u00A0", h("span", { key: 'cee6cef1f81beeaa5d28463d56155d05cc7b5f87', class: "badge" }, "0"), h("i", { key: '5e578d9000ffb98011d0062cdf83043bc4b5169c', class: "fa fa-caret-down" }))), h("li", { key: 'f418159e0c6a8806635501c2d7baad966c851e6d' }, h("a", { key: 'cee19cd5bcbaf74b0c80a2223502dcd8bc5371a1', href: "https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com" }, h("i", { key: 'd00b0b21de34744023a54c7cf7e6a574f34821b1', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "\u00A0Logout")))), h("li", { key: '333cc819625326849f52013181128039c31826cc', class: "visible-sm-block visible-xs-block hidden-xxs" }, h("a", { key: '0591a5a4a2f4e1ca5c5fd6d49552dbdc339d0abf', class: "btn btn-default navbar-btn btn-link", "data-toggle": "collapse", "data-target": "#search-collapse" }, h("i", { key: '5be0f7d16d126ce5231f715d72a433c88849473f', class: "fa fa-search", "aria-hidden": "true" }))), h("li", { key: 'd1116671d564f5ac49ab15699eb0fa8ffaadbe8d', class: "hidden-xs hidden-sm" }, h("a", { key: '2004ef3c2c263310eb9d48349656001008b9e87a', role: "button", onClick: this.openLoginModal, class: "btn btn-default navbar-btn btn-link" }, h("i", { key: 'faa40979c470610be84536c2de5ea9965e185c67', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: 'de763e7c4931dfd2277c463f6a138e0ff832b6be' }, "Login"))), h("xv-login-modal", { key: '4c12a1af61cc8434d6c481a718c20b343db301bb', visible: this.showLoginModal, onClose: this.closeLoginModal }), h("li", { key: 'd65bbbe4ac0457f621e824bb6bd5447546bb5819', class: "hidden-xs" }, h("a", { key: '340e9428ddc74d380981f9c90056cb7cdac7c982', class: "btn btn-default navbar-btn btn-link", href: "https://market.crossvertise.com/de-de/mycrossvertise/account/register" }, h("span", { key: '8aafb94c374e0969fa96b7ea8cb22785369560f9' }, "Registrieren"))), h("li", { key: '0ed4c4aca90415ca106adf379d923909e82d49a2', class: "navbar-divider hidden-xs" }), h("li", { key: '852292a5ea933dd3e4bf9b34e6e3f853ca723eb6' }, h("a", { key: 'cf11c35ae760ef3909953289640ff955acd409aa', class: "btn btn-success navbar-btn", href: "https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart" }, h("span", { key: '531ef0b6c4134b7b15bbbd2e6c148f7be9c4edf4', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: 'b686810eae7cbb0c7c1ea9ee997ab31c68c678d1', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("span", { key: '325c83891e42b1c62ba46c53d1c49aa7c7fb9552', class: "badge badge-success" }, "0"))))))), h("div", { key: '0acef5ade9aefc444c5a3c6da2e10e95bf3080b9', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: '4ab01a657a0f6ea3b685b727fe0c3702f7273b1a', class: "container" }, h("form", { key: '946e797352ab2673b234d8c5e9c238882b9efc4c', action: "https://market.crossvertise.com/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: '3920252d9e5855f014748d672fdc5b9080182b72', class: "input-group" }, h("input", { key: '96f8aa465ebbeb7fc1e7e718f475618b94a60753', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '8aae5ca4431896964ef5019f7403f8bdbab313e5', class: "input-group-btn force-full-width" }, h("button", { key: '5b572fa6663314c19bb2fc7952be2845d7fbbb2a', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: '4a6727d827692c657761c5d00b53dacc4308ee00', class: "fa fa-search", "aria-hidden": "true" })))))))), h("div", { key: '6201355010079566c7e3c20fb4ef1f1f77bd5a45', innerHTML: this.htmlContent })));
740
+ return (h("div", { key: 'e23865373ad9ea2ad72b911763532a825f606bc5', id: "nav-container", class: "xv-header" }, h("nav", { key: '7a621ccedbbcea7752e8f0535718e714ac3b87a7', class: "navbar navbar-default navbar-fixed-top backend-force-relative" }, h("div", { key: '5d48c595a601eb4aecbf20acf7bad412173b0c43', class: "container" }, h("div", { key: '495a0c316a6eaf585704e5d8c7fc1ad6a98ef0a2', class: "row" }, h("div", { key: 'ae0135513b1afd15a8a732b433226ea4c2e5fb34', class: "col-sm-3 col-xs-3 col-xxs-4 no-padding-right" }, h("div", { key: '941dcc71efd9fcd591fc37d3b79658a5895c0cf5', class: "navbar-header" }, h("button", { key: '05422376a774a3fb2bad4f3d99260c14c9591ac3', class: "btn btn-default navbar-toggle pull-left navbar-btn", "data-toggle": "collapse", "data-target": "#main-menu" }, h("i", { key: '2724965e90ff27350749d35e4f334c896222adbd', class: "fa fa-bars fa-lg", "aria-hidden": "true" })), h("div", { key: '540e61643a05c89e92739af9e5639dae1c7a3a89', class: "visible-xs-inline" }, h("a", { key: 'a90967bfd343bfa84310f439e869d5cf6fd7b245', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '9a4a05061aab1c1b9f47f3c8a5f1d233f2d0585f', src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg", alt: "Crossvertise" }))), h("div", { key: '6be821a687b33ff2ec170722ced74f916380f351', class: "hidden-xs" }, h("a", { key: '30494848524505dfd30b205d781628ecd76d7133', href: "https://www.crossvertise.com/", class: "navbar-brand" }, h("img", { key: '3d295824a957db5789a0712bcce707679a0b61eb', loading: "lazy", src: "https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg", alt: "Crossvertise" }))))), h("div", { key: 'ccda27c0fc15d51d8bb36a0edc6449a2a0ad96ab', class: "col-sm-9 col-xs-9 col-xxs-8 no-padding-left" }, h("ul", { key: '11cb71d231254db9f1c5c53695aae2e721da4b20', class: "nav nav-pills nav-meta pull-right" }, h("li", { key: '50c5f81db2f1f0e85c5f6bbf9a253465d9e84b35' }, h("a", { key: '79bc7f4274fc938a35e38682ba0f65fccdfb4b03', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, h("i", { key: '21710845d33579fab0dc70d063b5d872387378c9', class: "fa fa-user" }), h("i", { key: 'c6061afb38e2b2ed44c03ce4e910d9d2b5801a17', class: "fa fa-exchange-alt" }))), h("li", { key: '49348a283e4ede773307681345099e57207fcdda' }, h("a", { key: '290fd16b3aafec374b449d5050a19f606894b1d7', class: "btn btn-link navbar-btn hidden-xs", href: "#" }, "Kontakt"), h("a", { key: 'b51214e7831f07a03ac866bda5266c8d525fe558', href: "https://www.crossvertise.com/contact", class: "btn btn-link navbar-btn hidden-xs", style: { display: 'none' } }, "Kontakt"), h("a", { key: '31fd0c8390e09334e1996330efa04c9899620cc6', class: "btn btn-default btn-link navbar-btn visible-xs hidden-xxs", href: "#" }, h("i", { key: '17684ce738751f491369695434ab9183008a9b0d', class: "fa fa-phone" }))), h("li", { key: '38ece1d7260b8d73c7e48e3bd3b6ac29d389b88b', class: "dropdown", id: "my-xv-menu" }, h("a", { key: '70ba7716137f93f52ea952ea401fb634a85bd672', href: "#", class: "dropdown-toggle btn btn-default navbar-btn btn-link", "data-toggle": "dropdown" }, h("i", { key: 'bba83584c110f747aeb7e1f64d1010eb76588e93', class: "fa fa-user fa-lg text-success", "aria-hidden": "true" }), "\u00A0", h("span", { key: '6438bc959dfd6245859425f8e325127f869a4a8a', class: "hidden-xs" }, "Mein Bereich"), h("span", { key: '48b03adc129165116ac53166508b7d85a50d9110', class: "caret" })), h("ul", { key: '41a1e53662bc7c4b01b4dc50ed498b904d3e1fe0', class: "dropdown-menu-left dropdown-menu navbar-myxv" }, h("li", { key: 'f74892854e52d7109b3f40aeb9f0df75db7df6b9' }, h("a", { key: '0b41a267d437bab5d1c721942901c90c2b5f544c', href: "#" }, h("i", { key: '8824476df69bb5efeed55b742c2bf660711e9946', class: "fa fa-tachometer-alt fa-fw" }), "\u00A0Cockpitfunktionen\u00A0", h("i", { key: 'eea0470f9510c6bb4be719edb4592511fbe9db2f', class: "fa fa-caret-down" }))), h("li", { key: '8db405011c404f6f62ca6f849fd1a5c7fb6130b5' }, h("a", { key: '2a07deb167ebeb88396424325057ded6a5d3bb79', href: "#" }, h("i", { key: 'c278dfc51bb82626032dda352ec0fef4fe292d0e', class: "fa fa-cubes" }), "\u00A0Entit\u00E4ten\u00A0", h("i", { key: 'df99378caeca61ff7fc34e0e5ba4ef300945c91b', class: "fa fa-caret-down" }))), h("li", { key: 'ac30718411da279c57fadadc62a6cd669a34d715', role: "separator", class: "divider" }), h("li", { key: '869b0c629487677b67c713ca73651755cbf6f383' }, h("a", { key: 'ac460c523ce2202ba08b7de10bdac67b48912dd6', href: "#" }, h("i", { key: 'feda1a2c2999dead3b2b3eb834f8b51cc63dd991', class: "fa fa-user" }), "\u00A0Mein Crossvertise\u00A0", h("span", { key: 'db19052087c8efff2cf408629775636aa1980250', class: "badge" }, "0"), h("i", { key: '5225f5b72738346c19fb1613950410bca93d8d2a', class: "fa fa-caret-down" }))), h("li", { key: '5590a102180218c69e065cc57794b835a5f224d1' }, h("a", { key: '316a47a72b47da1f68fd1f717f7246740f25a6a8', href: "https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com" }, h("i", { key: 'bb8ccc79300a525d4f8194d2fd00abb2581db9f6', class: "fa fa-sign-out-alt fa-fw", "aria-hidden": "true" }), "\u00A0Logout")))), h("li", { key: 'd0ba91f2c496398d5aa5dbb1117d6309e8f1e606', class: "visible-sm-block visible-xs-block hidden-xxs" }, h("a", { key: '22b74c5543d27d32c2d02e351b7c21e16b9ce78c', class: "btn btn-default navbar-btn btn-link", "data-toggle": "collapse", "data-target": "#search-collapse" }, h("i", { key: '01b86811a768fc2a19d72cb4f17c6a9785829ab0', class: "fa fa-search", "aria-hidden": "true" }))), h("li", { key: 'c0d72f6ddd76f3dfa9d96f12118d0a73241753e8', class: "hidden-xs hidden-sm" }, h("a", { key: '71a09c453ede7a36bc6b8fc5fa79d1e608a16cfb', role: "button", onClick: this.openLoginModal, class: "btn btn-default navbar-btn btn-link" }, h("i", { key: '74142f2bd13d8de2d85fc1e82377407152d14c92', class: "fa fa-user fa-lg", "aria-hidden": "true" }), h("span", { key: '1b5116849bca8e05dc349f8554b1b552c88369dc' }, "Login"))), h("xv-login-modal", { key: 'cb142ee870252f3633b90b4e9abcd05f9f7e2df7', visible: this.showLoginModal, onClose: this.closeLoginModal }), h("li", { key: 'bb2855d3c34440d8fb379624ddd5acda1a8df347', class: "hidden-xs" }, h("a", { key: 'ad31c42ae4f0cfffa369b8c6471f89dc21bbbfa8', class: "btn btn-default navbar-btn btn-link", href: "https://market.crossvertise.com/de-de/mycrossvertise/account/register" }, h("span", { key: '6a9faaac3cfe6211636be703df13a104762e2fb2' }, "Registrieren"))), h("li", { key: '2211f6d0672a708956f3cc615bf0c7ee7b3ce1ec', class: "navbar-divider hidden-xs" }), h("li", { key: '252bdabd42167b13a7e338c6554dc62f6dbf5156' }, h("a", { key: 'e4e3b75d0be8af70ca5e7fe64e3ee2b21eff072b', class: "btn btn-success navbar-btn", href: "https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart" }, h("span", { key: 'f5c1b26dd26a7baf67cfccfe4817aaa7b9cf0c9d', class: "xv-font-icon-warenkorb fa-lg fa-fw", "aria-hidden": "true" }), h("span", { key: '8e4e16628d7662e46bb92817e430471557390432', class: "hidden-xs hidden-sm" }, "\u00A0Warenkorb\u00A0"), h("span", { key: 'da18423a0585a0298ec080cb2526c1104f46e907', class: "badge badge-success" }, "0"))))))), h("div", { key: '282355ac46855e03ae8a3d64bb4eaf62c86e77ca', class: "collapse hidden-md hidden-lg", id: "search-collapse" }, h("div", { key: '5007ccb71a3ff29b7325f0fcf8bce09eb93f603c', class: "container" }, h("form", { key: '55627dcc8b419e24b65cd6f6ad5e4fdde1a368d0', action: "https://market.crossvertise.com/de-de/media/search", class: "navbar-form", method: "get", role: "search" }, h("div", { key: '0d39c0d7cd9b098f6d5ab5f1f1c3418128753816', class: "input-group" }, h("input", { key: 'fb554f8ba5df87ec3fe372c9834497accafdd451', class: "form-control", name: "Q", placeholder: "Suche", type: "text", autocomplete: "off" }), h("span", { key: '353cc24679f1092fea80f7c033525d8291ec8d0b', class: "input-group-btn force-full-width" }, h("button", { key: 'bbde50921f67baa753a65540f544bfcae80379c6', class: "btn btn-default search-addon", type: "submit" }, h("i", { key: '17749c3879831e532d36a08cc7c1ef43d72e5591', class: "fa fa-search", "aria-hidden": "true" })))))))), h("div", { key: '37675efdf9ad133373d0b4053d1007b92b9be622', innerHTML: this.htmlContent })));
436
741
  }
437
742
  get el() { return getElement(this); }
438
743
  };
439
744
  XvHeader.style = xvHeaderCss;
440
745
 
441
- const xvLinkCss = ":host{font-family:var(--ff-body, inherit)}:host(.xv-link_inline){display:inline-block}:host(.xv-link_inline) .xv-link{text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}:host(.xv-link_standalone){display:block}:host(.xv-link_standalone) .xv-link{display:block;text-decoration-line:none}:host(.xv-link_ghost) .xv-link{color:inherit;text-decoration:none}.xv-link{display:inline-flex;gap:8px;align-items:center;color:var(--link-primary);font-family:var(--ff-body);font-style:normal;font-weight:400;transition:color 200ms ease-in-out}.xv-link:active{color:var(--text-primary)}.xv-link:visited{color:var(--link-visted)}.xv-link:hover{color:var(--link-primary-hover);cursor:pointer}.xv-link:disabled,.xv-link_disabled,.xv-link::part(disabled){color:var(--text-disabled);pointer-events:none;cursor:initial}.xv-link.sm{font-size:var(--fz-sm);line-height:137.5%}.xv-link.md{font-size:var(--fz-md);line-height:128.571%}.xv-link.lg{font-size:var(--fz-lg);line-height:133.333%}";
746
+ const xvLinkCss = ":host{font-family:var(--ff-body, inherit)}:host(.xv-link_inline){display:inline-block}:host(.xv-link_inline) .xv-link{text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}:host(.xv-link_standalone){display:block}:host(.xv-link_standalone) .xv-link{display:block;text-decoration-line:none}:host(.xv-link_ghost) .xv-link{display:contents;color:inherit;text-decoration:none}.xv-link{display:inline-flex;gap:8px;align-items:center;color:var(--link-primary);font-family:var(--ff-body);font-style:normal;font-weight:400;transition:color 200ms ease-in-out}.xv-link:active{color:var(--text-primary)}.xv-link:visited{color:var(--link-visted)}.xv-link:hover{color:var(--link-primary-hover);cursor:pointer}.xv-link:disabled,.xv-link_disabled,.xv-link::part(disabled){color:var(--text-disabled);pointer-events:none;cursor:initial}.xv-link.sm{font-size:var(--fz-sm);line-height:137.5%}.xv-link.md{font-size:var(--fz-md);line-height:128.571%}.xv-link.lg{font-size:var(--fz-lg);line-height:133.333%}";
442
747
 
443
748
  const XvLink = class {
444
749
  constructor(hostRef) {
@@ -454,7 +759,7 @@ const XvLink = class {
454
759
  e.stopPropagation();
455
760
  }
456
761
  render() {
457
- return (h(Host, { key: 'e9c006db5f3b72c48b8a6c3597ee46e2451e156b', class: `xv-link_${this.variant}` }, h("a", { key: 'a534ebd8dce32cf261e8b5354d93d58064136ad8', href: this.href, onClick: this.preventLinkHandler.bind(this), class: `xv-link ${this.disabled ? 'xv-link_disabled' : ''} ${this.size}`, target: this.target }, h("slot", { key: '582553af67dd32e8c83d28a4488bb5fffbb2a064', name: "icon-left" }), h("slot", { key: 'ca4705fd7ead40197d019c451d6c3cf1cdacfde1' }), h("slot", { key: 'c9433d24cc3e6b5acdb8645d4816d93375df7a43', name: "icon-right" }))));
762
+ return (h(Host, { key: '8abd4142d08b9a55fe67a2c588655728e25dd159', class: `xv-link_${this.variant}` }, h("a", { key: 'b6fec7e701adf7a5caef4ae0610f6d83b2c08617', href: this.href, onClick: this.preventLinkHandler.bind(this), class: `xv-link ${this.disabled ? 'xv-link_disabled' : ''} ${this.size}`, target: this.target }, h("slot", { key: '0a68b77769f8681dfc44782f9e5ea2db1a8a7d6f', name: "icon-left" }), h("slot", { key: '3ecd19fef95c96c283f260a5ef5dea734bf318bd' }), h("slot", { key: '8f21cd979ccfc5e6e890092b6ebea3b0bd067f1d', name: "icon-right" }))));
458
763
  }
459
764
  };
460
765
  XvLink.style = xvLinkCss;
@@ -630,7 +935,7 @@ const XvModal = class {
630
935
  }
631
936
  render() {
632
937
  var _a;
633
- return (h(Host, { key: 'ef15c655a4e3e5020de233c8627dbefc62ed9e56', role: "dialog", size: this.size, id: this.el.id }, h("slot", { key: '55950e9d76cd33495f14eb159d998dc11277c0f9', name: "trigger", onSlotchange: this.setupTrigger }), h("div", { key: 'f3e941dec65ec9a7093dc88a82024b6d4db6324a', class: { backdrop: true }, onClick: this.onBackdropClick }, h("div", { key: '48142d79b4de6d1aa146c8c8033a0cfbe9e166da', class: "modal" }, h("button", { key: '6e9501a2b6f69755d93740ce334bfc4a5ea78f60', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), h("div", { key: '9aadbd409cace25b8e8e8bead47b0610d756e1c4', class: "modal_header" }, h("slot", { key: '32d0f7b10974856e3806e82ffc8d971b3b25e81b', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && h("h5", { key: '8e5ede7c5f8488adcb42a61f972562c8214aebae', class: "modal_header__title" }, this.el.title))), h("div", { key: 'd00616f0a7865d301a0b090dd91363bde4128867', class: { 'modal_content': true, overflow: this.overflow } }, h("slot", { key: 'd263d339bedadd0557e386e22c4526b98e446027' })), h("div", { key: 'cf96d19157c63b68abc85e95042a9619accd26fd', class: "modal_footer" }, h("slot", { key: '0b41d59fecf287e452d10aa6a6f4ab1a6e07f77f', name: "footer" }))))));
938
+ return (h(Host, { key: '227d7c8432c263024eb14ebcc906d45d01845143', role: "dialog", size: this.size, id: this.el.id }, h("slot", { key: 'e9c1c83f4d5e3a1ddfa765b17129ea13dce96582', name: "trigger", onSlotchange: this.setupTrigger }), h("div", { key: '3a5b9b557925edb299ce386e289f60d87cbf9341', class: { backdrop: true }, onClick: this.onBackdropClick }, h("div", { key: '77e793861e33d77ca59c5f3bc89e1a6d83b8ba38', class: "modal" }, h("button", { key: '5534a1306535847efa5c77d393323ca93d9b33f3', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), h("div", { key: 'c3dee869a2be046d2e216730fc122da92c21920d', class: "modal_header" }, h("slot", { key: '42c0d657d261841a8fcb6461a079e06b5b1d2fad', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && h("h5", { key: '48aae8d010464e9a06c92699ad9e1dfe5feb0e04', class: "modal_header__title" }, this.el.title))), h("div", { key: '4cb0e7c1fed672df57dc86e4ebc53859d9695d0d', class: { 'modal_content': true, overflow: this.overflow } }, h("slot", { key: '1df966114775ee209cab1311350cb9d005abae0c' })), h("div", { key: 'fc246530cac2cedb24a3b8be81e710cecd7b18fc', class: "modal_footer" }, h("slot", { key: '5b00a76e35824e041d8f891ca4e40ec27d72290f', name: "footer" }))))));
634
939
  }
635
940
  disconnectedCallback() {
636
941
  this.removeTriggerListener();
@@ -647,7 +952,7 @@ var NOTIFICATION_VARIANTS;
647
952
  NOTIFICATION_VARIANTS["ERROR"] = "error";
648
953
  })(NOTIFICATION_VARIANTS || (NOTIFICATION_VARIANTS = {}));
649
954
 
650
- const xvNotificationCss = ":host{--notification-icon-size:20px;display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;border-radius:3px;padding:var(--gap-md, 16px);column-gap:var(--gap-md, 16px);border:1px solid}:host .content{flex:1;text-align:left;color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:128%;letter-spacing:0.16px;display:flex;flex-direction:column;row-gap:var(--spacing-06, 24px)}:host .content_title{text-align:left;margin:0;padding:0;font-weight:700;line-height:var(--notification-icon-size)}:host .icon{width:var(--notification-icon-size);height:var(--notification-icon-size);font-size:var(--notification-icon-size);fill:currentColor}:host .close{--notification-close-size:16px;background-color:transparent;border:none;width:var(--notification-close-size);height:var(--notification-close-size);min-width:var(--notification-close-size);min-height:var(--notification-close-size);position:relative;padding:0;margin:0;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:300ms ease-in-out opacity}:host .close:after,:host .close:before{content:\"\";position:absolute;top:calc(50% - var(--notification-close-size) / 2);left:calc(50% - 1px);display:inline-block;width:2px;height:90%;background-color:var(--button-tertiary, #273435)}:host .close:after{transform:rotate(45deg)}:host .close:before{transform:rotate(-45deg)}:host .close:hover{opacity:0.7}:host .close:active{opacity:0.3}:host ::slotted([slot=footer]){margin:0;padding:0}:host([type=info]){border-color:var(--support-info, #1B87B2);background-color:var(--support-info-background, #E2F5F8)}:host([type=info]) .icon{color:var(--support-info, #1B87B2)}:host([type=success]){border-color:var(--support-success, #97BF0D);background-color:var(--support-success-background, #F4F7E5)}:host([type=success]) .icon{color:var(--support-success, #1B87B2)}:host([type=warning]){border-color:var(--support-warning, #FF7F04);background-color:var(--support-warning-backround, #FFF9C2)}:host([type=warning]) .icon{color:var(--support-warning, #FF7F04)}:host([type=error]){border-color:var(--support-error, #F1290E);background-color:var(--support-error-background, #FEE9E8)}:host([type=error]) .icon{color:var(--support-error, #F1290E)}";
955
+ const xvNotificationCss = ":host{--notification-icon-size:20px;display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;border-radius:3px;padding:var(--gap-md, 16px);column-gap:var(--gap-md, 16px);border:1px solid}:host .content{flex:1;text-align:left;color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:var(--fz-md, 14px);line-height:128%;letter-spacing:0.16px;display:flex;flex-direction:column;row-gap:var(--spacing-06, 24px);word-break:break-all}:host .content_title{text-align:left;margin:0;padding:0;font-weight:700;line-height:var(--notification-icon-size)}:host .icon{width:var(--notification-icon-size);height:var(--notification-icon-size);font-size:var(--notification-icon-size);fill:currentColor}:host .close{--notification-close-size:16px;background-color:transparent;border:none;width:var(--notification-close-size);height:var(--notification-close-size);min-width:var(--notification-close-size);min-height:var(--notification-close-size);position:relative;padding:0;margin:0;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:300ms ease-in-out opacity}:host .close:after,:host .close:before{content:\"\";position:absolute;top:calc(50% - var(--notification-close-size) / 2);left:calc(50% - 1px);display:inline-block;width:2px;height:90%;background-color:var(--button-tertiary, #273435)}:host .close:after{transform:rotate(45deg)}:host .close:before{transform:rotate(-45deg)}:host .close:hover{opacity:0.7}:host .close:active{opacity:0.3}:host ::slotted([slot=footer]){margin:0;padding:0}:host([type=info]){border-color:var(--support-info, #1B87B2);background-color:var(--support-info-background, #E2F5F8)}:host([type=info]) .icon{color:var(--support-info, #1B87B2)}:host([type=success]){border-color:var(--support-success, #97BF0D);background-color:var(--support-success-background, #F4F7E5)}:host([type=success]) .icon{color:var(--support-success, #1B87B2)}:host([type=warning]){border-color:var(--support-warning, #FF7F04);background-color:var(--support-warning-backround, #FFF9C2)}:host([type=warning]) .icon{color:var(--support-warning, #FF7F04)}:host([type=error]){border-color:var(--support-error, #F1290E);background-color:var(--support-error-background, #FEE9E8)}:host([type=error]) .icon{color:var(--support-error, #F1290E)}";
651
956
 
652
957
  const XvNotification = class {
653
958
  constructor(hostRef) {
@@ -676,13 +981,67 @@ const XvNotification = class {
676
981
  };
677
982
  }
678
983
  render() {
679
- return (h(Host, { key: '4600f7f3594935680e104bad02663f288460b39b', class: "xv-notification", type: this.variant }, this.renderIcon(this.variant), h("div", { key: 'ffc9842337dcaba886a58fc80d96810c33a47f76', class: "content" }, h("div", { key: '1236432271bf6cb93c5bfbb0614d87c0d1fb183b', class: "content_wrapper" }, this.el.title && h("h5", { key: '10cbc18d55fe9842e31a65b814015eb66a4641af', class: "content_title" }, this.el.title), h("slot", { key: 'e127dfc35e3e6542c417ef27ab01515fd83af9f2' })), h("slot", { key: 'beb7103db214900e7833187cf6c9ee3dffc18b03', name: "footer" })), this.dismissible && h("button", { key: '791ef115a1739271ec9d87e145691ecaf18b2498', class: "close", onClick: this.closeHandle })));
984
+ return (h(Host, { key: '828674420130a41adc1c21b7dac6ba7795142871', class: "xv-notification", type: this.variant }, this.renderIcon(this.variant), h("div", { key: '2f863367c6952b1974607f577d33d69a572b83ac', class: "content" }, h("div", { key: 'df968f2dc944bf7b8cad543fb64a3c9d124a11ff', class: "content_wrapper" }, this.el.title && h("h5", { key: '200f8de5f706f7b4318cb94b9966a6171d56e2f5', class: "content_title" }, this.el.title), h("slot", { key: '76e93f53912a25d9240b82434e05466bf16902b3' })), h("slot", { key: '0403b90c0e139d214356519a33c0c546e03953a0', name: "footer" })), this.dismissible && h("button", { key: '70f8219f0b7c2dc897d0bb36ea5c7c7fb7aa3288', class: "close", onClick: this.closeHandle })));
680
985
  }
681
986
  static get assetsDirs() { return ["xv-notification/icons"]; }
682
987
  get el() { return getElement(this); }
683
988
  };
684
989
  XvNotification.style = xvNotificationCss;
685
990
 
991
+ const xvNumberInputCss = ":host{display:inline-block;text-align:left}:host .control_label{display:block;margin-bottom:var(--spacing-03);color:var(--text-secondary, #515151);font-family:var(--ff-body, Tahoma);font-size:var(--fz-sm, 12px);font-style:normal;font-weight:700;line-height:var(--fz-md);letter-spacing:0.32px}:host .control_input{display:flex;border:1px solid var(--border-subtle-01);outline:2px solid transparent;background-color:transparent;border-radius:3px;transition:250ms ease-in-out border-color, 250ms ease-in-out outline-color}:host .control_input:hover{border-color:var(--border-subtle-selected-01)}:host .control_input:focus-within{outline-color:var(--focus)}:host .control_input.error{outline-color:var(--support-error)}:host .control_input.readonly{border-radius:0;border-top-width:0;border-left-width:0;border-right-width:0;outline-color:transparent}:host .control_input input[type=number]{flex:1;border:none;outline:none;-moz-appearance:textfield;background-color:transparent;margin:0;padding-block:0;padding-inline:var(--spacing-05);box-sizing:border-box;color:var(--text-primary);min-width:20px;font-style:normal;font-weight:400;letter-spacing:0.16px}:host .control_input input[type=number]::-webkit-inner-spin-button,:host .control_input input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:host .control_input__icons{display:inline-flex;align-items:stretch;column-gap:2px}:host .control_input__icons .status-icon{display:inline-flex;align-items:center;align-self:center;font-size:1.35em}:host .control_input__icons .status-icon.error{background-color:var(--support-error);color:white;width:16px;height:16px;border-radius:8px;font-size:12px;font-weight:bold;align-items:center;justify-content:center}:host .control_input__icons .status-icon.warning{color:var(--support-warning)}:host .control_input__icons hr{border:none;outline:none;width:2px;height:60%;align-self:center;background-color:var(--border-subtle-01);display:inline-flex}:host .message{margin:var(--spacing-02) 0 0;color:var(--text-helper, #646464);font-size:var(--fz-sm, 12px);font-style:normal;font-weight:400;line-height:var(--fz-md, 16px);letter-spacing:0.32px}:host .message.error{color:var(--text-error)}:host .message.warning{color:var(--text-secondary, #515151)}:host(.disabled){cursor:not-allowed}:host(.disabled) .control_label,:host(.disabled) .control_input input[type=number],:host(.disabled) .control_input input[type=number]::placeholder,:host(.disabled) .message:not(.error){color:var(--text-disabled);cursor:not-allowed}:host(.disabled) .control_input__icons,:host(.disabled) .message.error{opacity:0.5;cursor:not-allowed}:host([block]){display:block}";
992
+
993
+ const XvNumberInput = class {
994
+ constructor(hostRef) {
995
+ registerInstance(this, hostRef);
996
+ this.valueChange = createEvent(this, "valueChange");
997
+ if (hostRef.$hostElement$["s-ei"]) {
998
+ this.internals = hostRef.$hostElement$["s-ei"];
999
+ }
1000
+ else {
1001
+ this.internals = hostRef.$hostElement$.attachInternals();
1002
+ hostRef.$hostElement$["s-ei"] = this.internals;
1003
+ }
1004
+ this.step = 10;
1005
+ this.loading = false;
1006
+ this.size = SIZE_VAR.MD;
1007
+ this.increment = () => {
1008
+ const newValue = (this.value || 0) + this.step;
1009
+ if (this.max !== undefined && newValue > this.max)
1010
+ return;
1011
+ this.setValue(newValue);
1012
+ };
1013
+ this.decrement = () => {
1014
+ const newValue = (this.value || 0) - this.step;
1015
+ if (this.min !== undefined && newValue < this.min)
1016
+ return;
1017
+ this.setValue(newValue);
1018
+ };
1019
+ this.handleInput = (event) => {
1020
+ const input = event.target;
1021
+ const num = parseFloat(input.value) || 0;
1022
+ if (isNaN(num))
1023
+ return;
1024
+ this.setValue(num);
1025
+ };
1026
+ }
1027
+ setValue(value) {
1028
+ var _a;
1029
+ this.value = value;
1030
+ this.internals.setFormValue((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString());
1031
+ this.valueChange.emit(this.value);
1032
+ }
1033
+ render() {
1034
+ return (h(Host, { key: '9e9d338c9ff5f2191a7b93d75473455fcd0595e3', class: { disabled: !!this.disabled } }, h("label", { key: '94743e62549da23b3c63280d9a228bb7bab4dc86', class: "control" }, this.label && h("span", { key: 'a7feadfdb33ac4305a58b0634fafdfab56293a1e', class: "control_label" }, this.label), h("div", { key: '7e87334966533108284fad892e219c3d6e320da0', class: {
1035
+ 'control_input': true,
1036
+ readonly: !!this.readonly,
1037
+ error: !!this.error,
1038
+ warning: !!this.warning
1039
+ } }, h("input", { key: 'b241be77f4f61110fc00911bacf58f493a6dc648', type: "number", placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, onInput: this.handleInput, name: this.name, min: this.min, max: this.max, step: this.step, value: this.value }), h("div", { key: '4c13d73fa8ad210f1561ca9d924dc37b5d25f058', class: "control_input__icons" }, this.loading ? (h("xv-loader-v2", { size: SIZE_VAR.XS })) : !!this.error ? (h("span", { class: "status-icon error", "aria-hidden": "true" }, "!")) : !!this.warning ? (h("span", { class: "status-icon warning", "aria-hidden": "true" }, "\u26A0")) : null, h("xv-button-v2", { key: 'ded5d2e74f4ff8544d025ce2862422ac69f54f9b', size: this.size, variant: "ghost", disabled: this.disabled || this.readonly, onClick: this.decrement, "aria-label": "Decrease" }, h("span", { key: '84bebcdd58a31c59d52685c589361532033074ba', slot: "icon-left", class: "status-icon" }, "\u2212")), h("hr", { key: 'ec34eb763fd84994fd3dde49dbb53c5472ff46ed' }), h("xv-button-v2", { key: '2275bbefc228ab1147c002c204b93da04d2b001e', size: this.size, variant: "ghost", disabled: this.disabled || this.readonly, onClick: this.increment, "aria-label": "Increase" }, h("span", { key: 'c64d970edf867832d6ee74354df55aa1cf151007', slot: "icon-left", class: "status-icon" }, "+"))))), this.helper && h("p", { key: 'b463bea86f2fa93c89072898796d03a9cd6c03bd', class: "message" }, this.helper), typeof this.error === 'string' ? (h("p", { class: "message error" }, this.error)) : typeof this.warning === 'string' ? (h("p", { class: "message warning" }, this.warning)) : null));
1040
+ }
1041
+ static get formAssociated() { return true; }
1042
+ };
1043
+ XvNumberInput.style = xvNumberInputCss;
1044
+
686
1045
  const xvOverflowMenuCss = ":host{--overflow-menu-size:40px;--overflow-menu-item-padding:11px 16px;display:inline-flex;flex-direction:column;position:relative}:host .btn{display:inline-flex;align-items:center;justify-content:center;width:var(--overflow-menu-size);height:var(--overflow-menu-size);background-color:transparent;border:1px solid transparent;transition:300ms ease-in-out color, 300ms ease-in-out background-color, 200ms ease box-shadow;font-size:calc(var(--overflow-menu-size) / 2);color:var(--icon-primary);border-radius:5%;margin:0;padding:0}:host .btn:hover{cursor:pointer;color:var(--link-primary-hover);background-color:var(--background-hover)}:host .btn:active{background-color:var(--background-active);color:var(--icon-disabled)}:host .btn:disabled{background-color:transparent;opacity:0.5;cursor:not-allowed}:host .list{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background-color:var(--layer-01);position:absolute;top:100%;left:0;max-height:0;overflow:hidden;border-radius:3px;transition:200ms ease-in-out max-height, 100ms ease box-shadow;min-width:128px;max-width:50vw;width:max-content}:host .list.open{overflow:visible}:host .list ::slotted(xv-overflow-menu-v2-item){padding:var(--overflow-menu-item-padding)}:host .list.position-right{left:initial;right:0;border-top-right-radius:0}:host .list.position-left{border-top-left-radius:0}:host([size=xs]){--overflow-menu-item-padding:4px 16px;--overflow-menu-size:24px}:host([size=sm]){--overflow-menu-size:32px;--overflow-menu-item-padding:7px 16px}:host([size=md]){--overflow-menu-size:40px;--overflow-menu-item-padding:11px 16px}:host([size=lg]){--overflow-menu-size:48px;--overflow-menu-item-padding:16px}:host([size=xl]){--overflow-menu-size:56px;--overflow-menu-item-padding:16px}:host([open]) .btn{border-bottom-left-radius:0;border-bottom-right-radius:0;background-color:var(--layer-01);box-shadow:-2px 2px 2px 0 rgba(0, 0, 0, 0.1);z-index:1}:host([open]) .list{max-height:500px;z-index:2;box-shadow:-2px 2px 2px 0 rgba(0, 0, 0, 0.1)}";
687
1046
 
688
1047
  const XvOverflowMenu = class {
@@ -735,7 +1094,7 @@ const XvOverflowMenu = class {
735
1094
  }
736
1095
  }
737
1096
  render() {
738
- return (h(Host, { key: 'b375598d3169590a82225cc37f52c573bee30c9f', class: "xv-overflow-menu", size: this.size, role: "menu", tabindex: -1 }, h("button", { key: '693ff71c2c32b5eafe680701a519560d36aadf31', class: { btn: true, open: this.open }, onClick: this.onOpenToggle, disabled: this.disabled }, h("svg", { key: '23067a22dfbab57f4840bb31a46e18b311b58316', xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 128 512" }, h("path", { key: 'f3eeded9441704b3ec6fc378bb4518595684d1be', d: "M64 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-160a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM112 96A48 48 0 1 0 16 96a48 48 0 1 0 96 0z" }))), h("div", { key: '9b7abc36a3b00b02d654b9bf369630164fb25d19', class: { list: true, open: this.open, [`position-${this.position}`]: true } }, h("slot", { key: '4309141f86fb81e49438d033132bc460b7386c7a' }))));
1097
+ return (h(Host, { key: '49562a0f5cdd0ffc9d07c175f02133ebf91379f8', class: "xv-overflow-menu", size: this.size, role: "menu", tabindex: -1 }, h("button", { key: '512bfdab373dd6f91d747cd780588d743e995aba', class: { btn: true, open: this.open }, onClick: this.onOpenToggle, disabled: this.disabled }, h("svg", { key: 'ae162d6550bc87396f6f3307e15c3990b417768c', xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 128 512" }, h("path", { key: '25c4542139eec20f7e04892baab53347901450ec', d: "M64 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-160a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM112 96A48 48 0 1 0 16 96a48 48 0 1 0 96 0z" }))), h("div", { key: '4595e1d6334852bc13d9a1ead5534f1947a6697a', class: { list: true, open: this.open, [`position-${this.position}`]: true } }, h("slot", { key: '83c2cabf49ca7cb8e5c9e51526eae1d1b7202380' }))));
739
1098
  }
740
1099
  componentDidLoad() {
741
1100
  this.openChangeHandle();
@@ -771,7 +1130,7 @@ const XvOverflowMenuItem = class {
771
1130
  this.itemClick.emit({ event, value: this.value });
772
1131
  }
773
1132
  render() {
774
- return (h(Host, { key: 'e2cb692dfe47684c9ef1cb8cd9519126b98d3be3', class: "xv-overflow-menu-item", role: "menuitem", disabled: this.disabled }, h("slot", { key: '7202537314f9992ef86f5db66a76234d749c9e96' })));
1133
+ return (h(Host, { key: '3dd2a5251f385c53432fbe4964cfa6b506bea62e', class: "xv-overflow-menu-item", role: "menuitem", disabled: this.disabled }, h("slot", { key: 'c140fd224ff48c962a85401003d6fc94091d7b05' })));
775
1134
  }
776
1135
  };
777
1136
  XvOverflowMenuItem.style = xvOverflowMenuItemCss;
@@ -845,7 +1204,7 @@ const XvProgressIndicator = class {
845
1204
  this.updateChildItems();
846
1205
  }
847
1206
  render() {
848
- return (h(Host, { key: '5d3f317d147dd29f3e0a00064a2ca4a0a79f101d', variant: this.variant, size: this.size, class: { 'xv-progress-indicator': true } }, h("slot", { key: '1e6a9d655861024aee5d8a4e4e159d5fd06250a8' })));
1207
+ return (h(Host, { key: '05e84a5e734b88c4d2a3c2206e4e5ea75c0fc969', variant: this.variant, size: this.size, class: { 'xv-progress-indicator': true } }, h("slot", { key: '12dcb64216cfc45663d73d66bbd3225be005e897' })));
849
1208
  }
850
1209
  get el() { return getElement(this); }
851
1210
  static get watchers() { return {
@@ -862,7 +1221,7 @@ const XvProgressIndicatorItem = class {
862
1221
  this.status = PROGRESS_ITEM_STATUS.NO_STARTED;
863
1222
  }
864
1223
  render() {
865
- return (h(Host, { key: '7ab9049e23319e40102861c273bcdbe50a007d47', status: this.status, class: { 'xv-progress-indicator-item': true } }, h("span", { key: 'b354a67c14cce7dfbd4dcc1ea5fbefc322e8387f', class: "line" }), h("span", { key: 'ac9328b00220e878f41601ed622b4bd72f1f4525', class: "icon" }, h("svg", { key: '72315a3e5bdbc53b9c9bad11d0fc664ccbc71dfa', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" }, h("path", { key: 'a2fd19444c84e59ff52a28e60b77bf8a1a304b0d', fill: "currentColor", d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }))), h("p", { key: '8a61ee0d9f5b7cb2d5ec3a3a95de9c6520da3438', class: "label" }, h("slot", { key: '597cc0cd7efb06d78070fdf087537db220784183' }))));
1224
+ return (h(Host, { key: 'b648f0b889dbd13effc1e2df2d0b8df4a4310d33', status: this.status, class: { 'xv-progress-indicator-item': true } }, h("span", { key: '9f58d648cf7b954a3be77c2a09c1b0dea135831e', class: "line" }), h("span", { key: 'db4cedc2a3ae0894581658fc7e11059e89c6c805', class: "icon" }, h("svg", { key: '9418f257a253fe9c366fe148c5a24fa715a6f5ca', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512" }, h("path", { key: 'eb7497d0698fde8fbd8f6eedff617ea597802109', fill: "currentColor", d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }))), h("p", { key: 'e71ecb98094b46e8af831d3bc7efd5461819a1cd', class: "label" }, h("slot", { key: 'c2332223f5205aabf5501014e6a4521665c2d1f7' }))));
866
1225
  }
867
1226
  get el() { return getElement(this); }
868
1227
  };
@@ -877,7 +1236,7 @@ const XvTab = class {
877
1236
  this.loading = false;
878
1237
  }
879
1238
  render() {
880
- return (h(Host, { key: 'acf8d6047f8d0b12a4353c439bb8be5e96a6de2d', disabled: this.disabled, name: this.name }, this.loading ? h("xv-loader-v2", { size: SIZE_VAR.LG }) : h("slot", null)));
1239
+ return (h(Host, { key: 'ab7f5dbb607ca9c91a2503b4f5a739685e2ec45f', disabled: this.disabled, name: this.name }, this.loading ? h("xv-loader-v2", { size: SIZE_VAR.LG }) : h("slot", null)));
881
1240
  }
882
1241
  };
883
1242
  XvTab.style = xvTabCss;
@@ -916,7 +1275,7 @@ const XvTable = class {
916
1275
  .join(' ') + ' repeat(auto-fit, minmax(0, 1fr))');
917
1276
  }
918
1277
  render() {
919
- return (h(Host, { key: '4894a985912a52eb0173566d6c2daff7dfc39035', class: { batchVisible: !!this.selectedCount } }, h("slot", { key: 'c370d3fd370a78528ff5e540fb59239c6b416bd9', name: "title" }, !!this.el.title && h("h2", { key: 'aefcffd432a2c24c6f84924d03fad5f0498d4b10', class: "xv-table-title" }, this.el.title)), h("slot", { key: '227b2ace04ed35ce3cff88c34d99054d8c552bc3', name: "toolbar" }), h("div", { key: '810934177b689d49dc1402aac97502081982744b', class: "xv-table" }, h("div", { key: 'db7c19f33120457dbd53a491579379741187652f', class: "batch-actions" }, h(Fragment, { key: 'b9c688ccda045afc1fd46ebed503d96f3096f788' }, h("div", { key: '628767d1a33fa98195056441e871a4beccb5b1ec', class: "batch-actions_content" }, h("slot", { key: 'b73f2d55c5c65daaabce1a89eb61ed328445c804', name: "batch" })), h("p", { key: '162fa01f1027c4c0df8a784995b50a085f44e98b', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), h("div", { key: '68b9c4807c9e6dd297bc74867f3230154493d5e6', class: "xv-table_wrapper" }, h("slot", { key: 'fd28df98e8497825d4f4ecfb3e292c724952ae83' }), h("slot", { key: 'f1604b484a87f35fffa11fc55eb05ff52d3d55ac', name: "footer" })), !!this.loading && (h("div", { key: '6e7cae29ba018e5af760cdcb9a9387e5e33369ae', class: "xv-table_loading" }, h("xv-loader-v2", { key: '72f23f7b4de8edeae93565bccceeca9e78a071d4', size: SIZE_VAR.LG }))))));
1278
+ return (h(Host, { key: '7638ad48563703718ad0cc8fff24ee18cf3a48ff', class: { batchVisible: !!this.selectedCount } }, h("slot", { key: '434ff076e975190cc57b748ddea8eeece9cf88bd', name: "title" }, !!this.el.title && h("h2", { key: '65da06cb74c47d17b88e835bd7a6ef096af16b45', class: "xv-table-title" }, this.el.title)), h("slot", { key: '882e9653dc35963bf24aac581a8d03c4fedd1ae9', name: "toolbar" }), h("div", { key: '6c4c289d8bdd312e0d80648012ae8030125b2ed6', class: "xv-table" }, h("div", { key: '66ec508b2996535f00bebb8fa1d6639023f4ac23', class: "batch-actions" }, h(Fragment, { key: 'e28a6fb4c17ec7287d11ff1c6745df530795d7fd' }, h("div", { key: '3d9ad8d0757d390fa8beb04acff62848170c6d1c', class: "batch-actions_content" }, h("slot", { key: 'bc8fe38784469a85e323ed1d3a6c23acc51a98af', name: "batch" })), h("p", { key: '8f49764dfd6c521e31a58fd2a285d149950f3a1c', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), h("div", { key: '316cfca89ab6549abdbfadf0fe5806acbc347d0b', class: "xv-table_wrapper" }, h("slot", { key: 'a5a7c79f2bfc49b4825b87677899f16c6c8cd9bb' }), h("slot", { key: '7e82440672624b8e4c6a4b84c615db38b04fb031', name: "footer" })), !!this.loading && (h("div", { key: '3b656b4c0d355884589438f1da2c98d1129a9fac', class: "xv-table_loading" }, h("xv-loader-v2", { key: '873d51be85722147c5c52f44f5ba590e5033a529', size: SIZE_VAR.LG }))))));
920
1279
  }
921
1280
  componentWillLoad() {
922
1281
  this.setColsSizeTemplate();
@@ -928,15 +1287,6 @@ const XvTable = class {
928
1287
  };
929
1288
  XvTable.style = xvTableCss;
930
1289
 
931
- var XV_SORT_DIR;
932
- (function (XV_SORT_DIR) {
933
- XV_SORT_DIR["ASC"] = "asc";
934
- XV_SORT_DIR["DESC"] = "desc";
935
- XV_SORT_DIR["NONE"] = "none";
936
- })(XV_SORT_DIR || (XV_SORT_DIR = {}));
937
- const XV_EXPANDABLE_KEY = 'expandable';
938
- const XV_TABLE_TAG = 'xv-table-v2';
939
-
940
1290
  const xvTableCellCss = "@charset \"UTF-8\";:host{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:var(--xv-table-padding-y) var(--xv-table-padding-x);color:var(--text-primary, #333);font-family:var(--ff-body, Tahoma);font-size:14px;font-style:normal;font-weight:400;line-height:1.2;letter-spacing:0.16px;transition:0.25s ease-in-out background-color}:host([multiline]){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:initial;padding-bottom:1px;padding-top:0;line-height:1.2}:host([align=left]){text-align:left}:host([align=right]){text-align:right}:host([align=center]){text-align:center}:host([sort]){position:relative;cursor:pointer;user-select:none}:host([sort]):before,:host([sort]):after{font-size:12px;line-height:10px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;right:8px;pointer-events:none;transition:350ms ease-in-out opacity;opacity:0}:host([sort]):before{content:\"▲\";top:50%;transform:translateY(calc(-50% - 5px))}:host([sort])::after{content:\"▼\";top:50%;transform:translateY(calc(-50% + 5px))}:host([sort]:hover){background-color:var(--layer-accent-hover-01, #E3E3E3)}:host([sort]:hover)::before,:host([sort]:hover)::after{opacity:1}:host([sort=asc]){background-color:var(--layer-accent-active-01, #D1D1D1)}:host([sort=asc])::before{opacity:1}:host([sort=asc])::after{display:none}:host([sort=desc]){background-color:var(--layer-accent-active-01, #D1D1D1)}:host([sort=desc])::before{display:none}:host([sort=desc])::after{opacity:1}";
941
1291
 
942
1292
  const XvTableCell = class {
@@ -964,12 +1314,15 @@ const XvTableCell = class {
964
1314
  }
965
1315
  ;
966
1316
  render() {
967
- return (h(Host, { key: 'a43012499f2ab81a47702b6861fd39180729ce8d' }, h("slot", { key: 'bcb83a24979755ec0959e09e849dd8b9fa04a95b' })));
1317
+ return (h(Host, { key: '81ba9b0d8bd1652b30259af7a177b27185c49dee' }, h("slot", { key: '5b0517d3001ba92944f2032307541d7db6eb7b27' })));
968
1318
  }
969
1319
  get el() { return getElement(this); }
970
1320
  };
971
1321
  XvTableCell.style = xvTableCellCss;
972
1322
 
1323
+ const XV_EXPANDABLE_KEY = 'expandable';
1324
+ const XV_TABLE_TAG = 'xv-table-v2';
1325
+
973
1326
  const xvTableExpandCss = ":host{display:block;position:relative;transition:0.25s ease-in-out background-color}:host .expand-btn{z-index:9;position:absolute;left:max(10px, var(--xv-table-padding-x));top:max(2px, var(--xv-table-padding-y) + 2px);background-color:transparent;cursor:pointer;outline:none;margin:0;padding:0;box-sizing:border-box;display:block;width:8.5px;height:8.5px;border-top:none;border-left:none;border-right:2px solid var(--icon-primary, #333);border-bottom:2px solid var(--icon-primary, #333);transform:rotate(45deg);transform-origin:center center;transition:0.2s ease-in-out transform}:host .expand-btn:disabled{cursor:not-allowed;opacity:0.5}:host .expand-btn.open{transform:rotate(-135deg)}:host .expandableContent{overflow:hidden;margin:0;padding:0;max-height:0;transition:250ms ease max-height}:host .expandableContent.open{max-height:600px}:host ::slotted([slot=expandable]){display:grid;align-items:center}:host ::slotted(xv-table-v2-row),:host ::slotted([slot=expandable]){padding-inline-start:calc(max(10px, var(--xv-table-padding-x)) * 2 + 10px)}:host ::slotted([disabled]){pointer-events:none;opacity:0.4;cursor:not-allowed;user-select:none}";
974
1327
 
975
1328
  const XvTableExpand = class {
@@ -982,7 +1335,7 @@ const XvTableExpand = class {
982
1335
  };
983
1336
  }
984
1337
  render() {
985
- return (h(Host, { key: 'e1929797c81be1a2ea84916899d39da5d408e6bb' }, h("button", { key: 'd17ee91f88dcde48ccb2b1e0de40eb733d505a78', class: { 'expand-btn': true, open: this.open }, disabled: this.disabled, onClick: this.handleExpand }), h("slot", { key: '33c52bc864e741c66d448e80ec5d675c433aa649', name: XV_EXPANDABLE_KEY }), h("div", { key: '02795ad1ee52bdcf34519b9fcc4325698ef61919', class: { expandableContent: true, open: this.open } }, h("slot", { key: '185185f6fed3ae43a09c85903628eced54847cb7' }))));
1338
+ return (h(Host, { key: '6176a4e0845dbae0f6e28b7a31110e8b2ce6b6d9' }, h("button", { key: 'a4d9b8ec62e9a791f24355cba0397af7c5ad8fa6', class: { 'expand-btn': true, open: this.open }, disabled: this.disabled, onClick: this.handleExpand }), h("slot", { key: '9d4d815a424de28794a334c1ffeac6613b3bf380', name: XV_EXPANDABLE_KEY }), h("div", { key: '4acce147075c142a356f3fcb5cbe9cc5ccaea4c0', class: { expandableContent: true, open: this.open } }, h("slot", { key: '0e46f8843b84ddd7bf362b3c5178373b466fb96e' }))));
986
1339
  }
987
1340
  componentDidLoad() {
988
1341
  setAttr(this.el.parentElement, XV_EXPANDABLE_KEY, true);
@@ -1037,7 +1390,7 @@ const XvTableRow = class {
1037
1390
  }
1038
1391
  }
1039
1392
  render() {
1040
- return (h(Host, { key: '0fa754f2982bb475a1354cf8c7653cdbc9b710bc' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: '344b3acf23c6e96e7c2422bc87ba47ddc468fe32', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: '718a01dddcd1d5f3c354a26f8c4d7d0920048be1', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly, onEventChange: this.checkHandle })), this.variant === 'radio' && (h("input", { key: '8c49a2babdf5388004b1ab3cb1639206687f7535', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: '565e6e933a38fd71ccd49f28772014ca3cb06398' })));
1393
+ return (h(Host, { key: '1f48d141e4c4b1036332971c34bcd149fbc196f4' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: 'a637c7e8796fd48df9f96b8785e96a1b8bb92a2f', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: '01e7267f1ac891110c5d8d86ba7bb1965ccd0bcf', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly, onEventChange: this.checkHandle })), this.variant === 'radio' && (h("input", { key: 'ae2eed4ad0763d5c586e3788a9daa9a324ac2bf5', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: '1fa5632863f0386f1de3b8d869483e297b56c4bd' })));
1041
1394
  }
1042
1395
  componentWillLoad() {
1043
1396
  this.setInitialAttrs();
@@ -1131,8 +1484,7 @@ const XvTabs = class {
1131
1484
  const nextTab = this.tabElements[nextIdx];
1132
1485
  if (!nextTab || nextTab.hasAttribute('disabled'))
1133
1486
  return;
1134
- this.active = nextTab.getAttribute('name') || `${nextIdx}`;
1135
- this.scrollToActiveTab();
1487
+ this.handleTabClick(nextTab.getAttribute('name') || nextIdx);
1136
1488
  }
1137
1489
  render() {
1138
1490
  var _a, _b, _c;
@@ -1169,19 +1521,12 @@ const XvTag = class {
1169
1521
  this.closeClick.emit(e);
1170
1522
  }
1171
1523
  render() {
1172
- return (h(Host, { key: '14b055dd7dedf6b5fcba8b8b3eb2f5f508d805a9', style: { color: this.color, background: this.bg }, class: `xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}` }, h("div", { key: 'f68b22e13acb0cde1e9f80260625a72439a412df', class: "xv-tag_content" }, h("slot", { key: 'c4bbfc6909234057747f0cb4b13fd6a24f14a356' })), this.closeable && (h("button", { key: 'e05cd88033f44a852c7de9615fde4a4ebcee0d79', onClick: this.closeHandler.bind(this), class: "xv-tag_close" }))));
1524
+ return (h(Host, { key: '87520047c00d97194c91de7dac1caf125147c1b9', style: { color: this.color, background: this.bg }, class: `xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}` }, h("div", { key: '166e1f781942507532ad010e704d4f5a8fdc7da1', class: "xv-tag_content" }, h("slot", { key: '14020588654dfa8b6ddd1294c904796536a9020c' })), this.closeable && (h("button", { key: '222a7bd11a30e4c12cc45164ae4f294d4c6d6524', onClick: this.closeHandler.bind(this), class: "xv-tag_close" }))));
1173
1525
  }
1174
1526
  };
1175
1527
  XvTag.style = xvTagCss;
1176
1528
 
1177
- var TextInputStatus;
1178
- (function (TextInputStatus) {
1179
- TextInputStatus["ERROR"] = "error";
1180
- TextInputStatus["WARNING"] = "warning";
1181
- TextInputStatus["DEF"] = "";
1182
- })(TextInputStatus || (TextInputStatus = {}));
1183
-
1184
- const xvTextInputCss = ":host{--text-input-padding-x:16px;--text-input-padding-y:11px;display:inline-flex;flex-direction:column;row-gap:calc(var(--text-input-padding-y) / 2);text-align:left;font-family:var(--ff-body, Tahoma)}:host .label{margin:0;color:var(--text-secondary, #515151);font-size:var(--fz-sm, 12px);font-weight:700;line-height:133.333%;letter-spacing:0.32px}:host .control{margin:0;position:relative;box-sizing:border-box;display:flex;column-gap:5px;align-items:center;flex-direction:row}:host .control input{width:100%;background-color:var(--field-02, #FFF);border:1px solid var(--border-strong-01, #E3E3E3);border-radius:3px;padding-block:var(--text-input-padding-y);padding-inline-start:var(--text-input-padding-x);padding-inline-end:var(--text-input-padding-x);flex:1;outline:2px solid transparent;color:var(--text-primary, #333);font-size:var(--fz-md, 14px);font-style:normal;font-weight:400;line-height:128.571%;letter-spacing:0.16px;transition:0.2s ease-in-out border-color, 0.2s ease-in-out outline-color}:host .control input.withIcon{padding-inline-end:calc(var(--text-input-padding-x) + 22px)}:host .control input::placeholder{color:var(--text-placeholder, #ACACAC)}:host .control input:focus{outline:2px solid var(--focus, #273435)}:host .control_icon{position:absolute;top:calc(50% - 9px);right:var(--text-input-padding-y);width:18px;height:18px}:host .control_icon.error{color:var(--support-error, #F1290E)}:host .control_icon.warning{color:var(--support-warning, #FF7F04)}:host .helper{margin:0;color:var(--text-helper, #646464);font-size:var(--fz-sm, 12px);line-height:133.333%;letter-spacing:0.32px}:host([status=error]) .control input{border-color:var(--support-error, #F1290E)}:host([status=error]) .control input:focus{outline-color:var(--support-error, #F1290E)}:host([status=error]) .helper{color:var(--text-error, #D62512)}:host([readonly]) .control input{border-top-color:transparent;border-right-color:transparent;border-left-color:transparent;cursor:default;background-color:transparent}:host([readonly]) .control input:focus{outline-color:transparent}:host([disabled]){opacity:0.4}:host([disabled]) .control input{cursor:not-allowed}:host([size=xs]){--text-input-padding-y:4px;--text-input-padding-x:6px}:host([size=sm]){--text-input-padding-y:7px}:host([size=md]){--text-input-padding-y:11px}:host([size=lg]){--text-input-padding-y:15px}:host([size=xl]){--text-input-padding-y:16px;--text-input-padding-x:18px}";
1529
+ const xvTextInputCss = ":host{display:inline-block;text-align:left}:host .control_label{display:block;margin-bottom:var(--spacing-03);color:var(--text-secondary, #515151);font-family:var(--ff-body, Tahoma);font-size:var(--fz-sm, 12px);font-style:normal;font-weight:700;line-height:var(--fz-md);letter-spacing:0.32px}:host .control_input{display:flex;border:1px solid var(--border-subtle-01);outline:2px solid transparent;background-color:transparent;border-radius:3px;transition:250ms ease-in-out border-color, 250ms ease-in-out outline-color}:host .control_input:hover{border-color:var(--border-subtle-selected-01)}:host .control_input:focus-within{outline-color:var(--focus)}:host .control_input.error{outline-color:var(--support-error)}:host .control_input.readonly{border-radius:0;border-top-width:0;border-left-width:0;border-right-width:0;outline-color:transparent}:host .control_input input[type=text]{flex:1;border:none;outline:none;-moz-appearance:textfield;background-color:transparent;margin:0;padding-block:0;padding-inline:var(--spacing-05);box-sizing:border-box;color:var(--text-primary);min-width:20px;font-style:normal;font-weight:400;letter-spacing:0.16px}:host .control_input input[type=text]::-webkit-inner-spin-button,:host .control_input input[type=text]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:host .control_input__icons{display:inline-flex;align-items:stretch;column-gap:2px;padding-right:var(--spacing-05)}:host .control_input__icons .status-icon{display:inline-flex;align-items:center;align-self:center;font-size:1.35em}:host .control_input__icons .status-icon.error{background-color:var(--support-error);color:white;width:16px;height:16px;border-radius:8px;font-size:12px;font-weight:bold;align-items:center;justify-content:center}:host .control_input__icons .status-icon.warning{color:var(--support-warning)}:host .control_input__icons hr{border:none;outline:none;width:2px;height:60%;align-self:center;background-color:var(--border-subtle-01);display:inline-flex}:host .control_input.xs{height:16px}:host .control_input.sm{height:32px}:host .control_input.md{height:40px}:host .control_input.lg{height:48px}:host .control_input.xl{height:60px}:host .message{margin:var(--spacing-02) 0 0;color:var(--text-helper, #646464);font-size:var(--fz-sm, 12px);font-style:normal;font-weight:400;line-height:var(--fz-md, 16px);letter-spacing:0.32px}:host .message.error{color:var(--text-error)}:host .message.warning{color:var(--text-secondary, #515151)}:host(.disabled){cursor:not-allowed}:host(.disabled) .control_label,:host(.disabled) .control_input input[type=text],:host(.disabled) .control_input input[type=text]::placeholder,:host(.disabled) .message:not(.error){color:var(--text-disabled);cursor:not-allowed}:host(.disabled) .control_input__icons,:host(.disabled) .message.error{opacity:0.5;cursor:not-allowed}:host([block]){display:block}";
1185
1530
 
1186
1531
  const XvTextInput = class {
1187
1532
  constructor(hostRef) {
@@ -1194,63 +1539,1937 @@ const XvTextInput = class {
1194
1539
  this.internals = hostRef.$hostElement$.attachInternals();
1195
1540
  hostRef.$hostElement$["s-ei"] = this.internals;
1196
1541
  }
1197
- this.helper = '';
1198
- this.size = SIZE_VAR.MD;
1199
- this.status = TextInputStatus.DEF;
1542
+ this.type = 'text';
1200
1543
  this.value = '';
1201
- this.disabled = false;
1202
- this.readonly = false;
1203
1544
  this.loading = false;
1545
+ this.size = SIZE_VAR.MD;
1204
1546
  this.handleInput = (e) => {
1205
1547
  const target = e.target;
1206
1548
  this.value = target.value;
1207
1549
  this.valueChange.emit(this.value);
1208
1550
  this.internals.setFormValue(target.value);
1209
1551
  };
1210
- this.getControlIcon = (status) => {
1211
- if (this.loading) {
1212
- return h("xv-loader-v2", { class: "control_icon", size: SIZE_VAR.XS });
1213
- }
1214
- switch (status) {
1215
- case TextInputStatus.ERROR: {
1216
- return (h("svg", { class: "control_icon error", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" }, h("path", { fill: "currentColor", d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" })));
1217
- }
1218
- case TextInputStatus.WARNING:
1219
- return (h("svg", { class: "control_icon warning", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" }, h("path", { fill: "currentColor", d: "M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z" })));
1220
- default: return null;
1552
+ }
1553
+ render() {
1554
+ return (h(Host, { key: 'b9c4820d1f0ba4e6baf9cd405c42380577f5379d', class: { disabled: !!this.disabled } }, h("label", { key: 'e331f40fc28c74833276e75c8376270589a17279', class: "control" }, this.label && h("span", { key: '4d48b122402bd36b98495a9bfdf991512126049d', class: "control_label" }, this.label), h("div", { key: '7c4f26d5a943417b54500a54b993108a70a5ed83', class: {
1555
+ 'control_input': true,
1556
+ readonly: !!this.readonly,
1557
+ [this.size]: true,
1558
+ error: !!this.error,
1559
+ warning: !!this.warning,
1560
+ } }, h("input", { key: 'b6e5cf7ed95c5649b7c1aff16fe7668c2a05c71b', type: this.type, placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, onInput: this.handleInput, name: this.name, value: this.value }), h("div", { key: '739c31f7939b0baaa3e8d49ec61b016005c427ad', class: "control_input__icons" }, this.loading && h("xv-loader-v2", { key: '8aaa989d7ad0fe3b9f86908c648fe2e01c551bc9', size: SIZE_VAR.XS }), !!this.error ? (h("span", { class: "status-icon error", "aria-hidden": "true" }, "!")) : !!this.warning ? (h("span", { class: "status-icon warning", "aria-hidden": "true" }, "\u26A0")) : null))), this.helper && h("p", { key: '7d613edeffa7c6d8e2a76bc69217347187a3b008', class: "message" }, this.helper), typeof this.error === 'string' ? (h("p", { class: "message error" }, this.error)) : typeof this.warning === 'string' ? (h("p", { class: "message warning" }, this.warning)) : null));
1561
+ }
1562
+ static get formAssociated() { return true; }
1563
+ };
1564
+ XvTextInput.style = xvTextInputCss;
1565
+
1566
+ var top = 'top';
1567
+ var bottom = 'bottom';
1568
+ var right = 'right';
1569
+ var left = 'left';
1570
+ var auto = 'auto';
1571
+ var basePlacements = [top, bottom, right, left];
1572
+ var start = 'start';
1573
+ var end = 'end';
1574
+ var clippingParents = 'clippingParents';
1575
+ var viewport = 'viewport';
1576
+ var popper = 'popper';
1577
+ var reference = 'reference';
1578
+ var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
1579
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
1580
+ }, []);
1581
+ var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
1582
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
1583
+ }, []); // modifiers that need to read the DOM
1584
+
1585
+ var beforeRead = 'beforeRead';
1586
+ var read = 'read';
1587
+ var afterRead = 'afterRead'; // pure-logic modifiers
1588
+
1589
+ var beforeMain = 'beforeMain';
1590
+ var main = 'main';
1591
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
1592
+
1593
+ var beforeWrite = 'beforeWrite';
1594
+ var write = 'write';
1595
+ var afterWrite = 'afterWrite';
1596
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
1597
+
1598
+ function getNodeName(element) {
1599
+ return element ? (element.nodeName || '').toLowerCase() : null;
1600
+ }
1601
+
1602
+ function getWindow(node) {
1603
+ if (node == null) {
1604
+ return window;
1605
+ }
1606
+
1607
+ if (node.toString() !== '[object Window]') {
1608
+ var ownerDocument = node.ownerDocument;
1609
+ return ownerDocument ? ownerDocument.defaultView || window : window;
1610
+ }
1611
+
1612
+ return node;
1613
+ }
1614
+
1615
+ function isElement(node) {
1616
+ var OwnElement = getWindow(node).Element;
1617
+ return node instanceof OwnElement || node instanceof Element;
1618
+ }
1619
+
1620
+ function isHTMLElement(node) {
1621
+ var OwnElement = getWindow(node).HTMLElement;
1622
+ return node instanceof OwnElement || node instanceof HTMLElement;
1623
+ }
1624
+
1625
+ function isShadowRoot(node) {
1626
+ // IE 11 has no ShadowRoot
1627
+ if (typeof ShadowRoot === 'undefined') {
1628
+ return false;
1629
+ }
1630
+
1631
+ var OwnElement = getWindow(node).ShadowRoot;
1632
+ return node instanceof OwnElement || node instanceof ShadowRoot;
1633
+ }
1634
+
1635
+ // and applies them to the HTMLElements such as popper and arrow
1636
+
1637
+ function applyStyles(_ref) {
1638
+ var state = _ref.state;
1639
+ Object.keys(state.elements).forEach(function (name) {
1640
+ var style = state.styles[name] || {};
1641
+ var attributes = state.attributes[name] || {};
1642
+ var element = state.elements[name]; // arrow is optional + virtual elements
1643
+
1644
+ if (!isHTMLElement(element) || !getNodeName(element)) {
1645
+ return;
1646
+ } // Flow doesn't support to extend this property, but it's the most
1647
+ // effective way to apply styles to an HTMLElement
1648
+ // $FlowFixMe[cannot-write]
1649
+
1650
+
1651
+ Object.assign(element.style, style);
1652
+ Object.keys(attributes).forEach(function (name) {
1653
+ var value = attributes[name];
1654
+
1655
+ if (value === false) {
1656
+ element.removeAttribute(name);
1657
+ } else {
1658
+ element.setAttribute(name, value === true ? '' : value);
1659
+ }
1660
+ });
1661
+ });
1662
+ }
1663
+
1664
+ function effect$2(_ref2) {
1665
+ var state = _ref2.state;
1666
+ var initialStyles = {
1667
+ popper: {
1668
+ position: state.options.strategy,
1669
+ left: '0',
1670
+ top: '0',
1671
+ margin: '0'
1672
+ },
1673
+ arrow: {
1674
+ position: 'absolute'
1675
+ },
1676
+ reference: {}
1677
+ };
1678
+ Object.assign(state.elements.popper.style, initialStyles.popper);
1679
+ state.styles = initialStyles;
1680
+
1681
+ if (state.elements.arrow) {
1682
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
1683
+ }
1684
+
1685
+ return function () {
1686
+ Object.keys(state.elements).forEach(function (name) {
1687
+ var element = state.elements[name];
1688
+ var attributes = state.attributes[name] || {};
1689
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
1690
+
1691
+ var style = styleProperties.reduce(function (style, property) {
1692
+ style[property] = '';
1693
+ return style;
1694
+ }, {}); // arrow is optional + virtual elements
1695
+
1696
+ if (!isHTMLElement(element) || !getNodeName(element)) {
1697
+ return;
1698
+ }
1699
+
1700
+ Object.assign(element.style, style);
1701
+ Object.keys(attributes).forEach(function (attribute) {
1702
+ element.removeAttribute(attribute);
1703
+ });
1704
+ });
1705
+ };
1706
+ } // eslint-disable-next-line import/no-unused-modules
1707
+
1708
+
1709
+ var applyStyles$1 = {
1710
+ name: 'applyStyles',
1711
+ enabled: true,
1712
+ phase: 'write',
1713
+ fn: applyStyles,
1714
+ effect: effect$2,
1715
+ requires: ['computeStyles']
1716
+ };
1717
+
1718
+ function getBasePlacement(placement) {
1719
+ return placement.split('-')[0];
1720
+ }
1721
+
1722
+ var max = Math.max;
1723
+ var min = Math.min;
1724
+ var round = Math.round;
1725
+
1726
+ function getUAString() {
1727
+ var uaData = navigator.userAgentData;
1728
+
1729
+ if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
1730
+ return uaData.brands.map(function (item) {
1731
+ return item.brand + "/" + item.version;
1732
+ }).join(' ');
1733
+ }
1734
+
1735
+ return navigator.userAgent;
1736
+ }
1737
+
1738
+ function isLayoutViewport() {
1739
+ return !/^((?!chrome|android).)*safari/i.test(getUAString());
1740
+ }
1741
+
1742
+ function getBoundingClientRect(element, includeScale, isFixedStrategy) {
1743
+ if (includeScale === void 0) {
1744
+ includeScale = false;
1745
+ }
1746
+
1747
+ if (isFixedStrategy === void 0) {
1748
+ isFixedStrategy = false;
1749
+ }
1750
+
1751
+ var clientRect = element.getBoundingClientRect();
1752
+ var scaleX = 1;
1753
+ var scaleY = 1;
1754
+
1755
+ if (includeScale && isHTMLElement(element)) {
1756
+ scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
1757
+ scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
1758
+ }
1759
+
1760
+ var _ref = isElement(element) ? getWindow(element) : window,
1761
+ visualViewport = _ref.visualViewport;
1762
+
1763
+ var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
1764
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
1765
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
1766
+ var width = clientRect.width / scaleX;
1767
+ var height = clientRect.height / scaleY;
1768
+ return {
1769
+ width: width,
1770
+ height: height,
1771
+ top: y,
1772
+ right: x + width,
1773
+ bottom: y + height,
1774
+ left: x,
1775
+ x: x,
1776
+ y: y
1777
+ };
1778
+ }
1779
+
1780
+ // means it doesn't take into account transforms.
1781
+
1782
+ function getLayoutRect(element) {
1783
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
1784
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
1785
+
1786
+ var width = element.offsetWidth;
1787
+ var height = element.offsetHeight;
1788
+
1789
+ if (Math.abs(clientRect.width - width) <= 1) {
1790
+ width = clientRect.width;
1791
+ }
1792
+
1793
+ if (Math.abs(clientRect.height - height) <= 1) {
1794
+ height = clientRect.height;
1795
+ }
1796
+
1797
+ return {
1798
+ x: element.offsetLeft,
1799
+ y: element.offsetTop,
1800
+ width: width,
1801
+ height: height
1802
+ };
1803
+ }
1804
+
1805
+ function contains(parent, child) {
1806
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
1807
+
1808
+ if (parent.contains(child)) {
1809
+ return true;
1810
+ } // then fallback to custom implementation with Shadow DOM support
1811
+ else if (rootNode && isShadowRoot(rootNode)) {
1812
+ var next = child;
1813
+
1814
+ do {
1815
+ if (next && parent.isSameNode(next)) {
1816
+ return true;
1817
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
1818
+
1819
+
1820
+ next = next.parentNode || next.host;
1821
+ } while (next);
1822
+ } // Give up, the result is false
1823
+
1824
+
1825
+ return false;
1826
+ }
1827
+
1828
+ function getComputedStyle(element) {
1829
+ return getWindow(element).getComputedStyle(element);
1830
+ }
1831
+
1832
+ function isTableElement(element) {
1833
+ return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
1834
+ }
1835
+
1836
+ function getDocumentElement(element) {
1837
+ // $FlowFixMe[incompatible-return]: assume body is always available
1838
+ return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
1839
+ element.document) || window.document).documentElement;
1840
+ }
1841
+
1842
+ function getParentNode(element) {
1843
+ if (getNodeName(element) === 'html') {
1844
+ return element;
1845
+ }
1846
+
1847
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
1848
+ // $FlowFixMe[incompatible-return]
1849
+ // $FlowFixMe[prop-missing]
1850
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
1851
+ element.parentNode || ( // DOM Element detected
1852
+ isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
1853
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
1854
+ getDocumentElement(element) // fallback
1855
+
1856
+ );
1857
+ }
1858
+
1859
+ function getTrueOffsetParent(element) {
1860
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
1861
+ getComputedStyle(element).position === 'fixed') {
1862
+ return null;
1863
+ }
1864
+
1865
+ return element.offsetParent;
1866
+ } // `.offsetParent` reports `null` for fixed elements, while absolute elements
1867
+ // return the containing block
1868
+
1869
+
1870
+ function getContainingBlock(element) {
1871
+ var isFirefox = /firefox/i.test(getUAString());
1872
+ var isIE = /Trident/i.test(getUAString());
1873
+
1874
+ if (isIE && isHTMLElement(element)) {
1875
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
1876
+ var elementCss = getComputedStyle(element);
1877
+
1878
+ if (elementCss.position === 'fixed') {
1879
+ return null;
1880
+ }
1881
+ }
1882
+
1883
+ var currentNode = getParentNode(element);
1884
+
1885
+ if (isShadowRoot(currentNode)) {
1886
+ currentNode = currentNode.host;
1887
+ }
1888
+
1889
+ while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
1890
+ var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
1891
+ // create a containing block.
1892
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1893
+
1894
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
1895
+ return currentNode;
1896
+ } else {
1897
+ currentNode = currentNode.parentNode;
1898
+ }
1899
+ }
1900
+
1901
+ return null;
1902
+ } // Gets the closest ancestor positioned element. Handles some edge cases,
1903
+ // such as table ancestors and cross browser bugs.
1904
+
1905
+
1906
+ function getOffsetParent(element) {
1907
+ var window = getWindow(element);
1908
+ var offsetParent = getTrueOffsetParent(element);
1909
+
1910
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
1911
+ offsetParent = getTrueOffsetParent(offsetParent);
1912
+ }
1913
+
1914
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {
1915
+ return window;
1916
+ }
1917
+
1918
+ return offsetParent || getContainingBlock(element) || window;
1919
+ }
1920
+
1921
+ function getMainAxisFromPlacement(placement) {
1922
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
1923
+ }
1924
+
1925
+ function within(min$1, value, max$1) {
1926
+ return max(min$1, min(value, max$1));
1927
+ }
1928
+ function withinMaxClamp(min, value, max) {
1929
+ var v = within(min, value, max);
1930
+ return v > max ? max : v;
1931
+ }
1932
+
1933
+ function getFreshSideObject() {
1934
+ return {
1935
+ top: 0,
1936
+ right: 0,
1937
+ bottom: 0,
1938
+ left: 0
1939
+ };
1940
+ }
1941
+
1942
+ function mergePaddingObject(paddingObject) {
1943
+ return Object.assign({}, getFreshSideObject(), paddingObject);
1944
+ }
1945
+
1946
+ function expandToHashMap(value, keys) {
1947
+ return keys.reduce(function (hashMap, key) {
1948
+ hashMap[key] = value;
1949
+ return hashMap;
1950
+ }, {});
1951
+ }
1952
+
1953
+ var toPaddingObject = function toPaddingObject(padding, state) {
1954
+ padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
1955
+ placement: state.placement
1956
+ })) : padding;
1957
+ return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
1958
+ };
1959
+
1960
+ function arrow(_ref) {
1961
+ var _state$modifiersData$;
1962
+
1963
+ var state = _ref.state,
1964
+ name = _ref.name,
1965
+ options = _ref.options;
1966
+ var arrowElement = state.elements.arrow;
1967
+ var popperOffsets = state.modifiersData.popperOffsets;
1968
+ var basePlacement = getBasePlacement(state.placement);
1969
+ var axis = getMainAxisFromPlacement(basePlacement);
1970
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
1971
+ var len = isVertical ? 'height' : 'width';
1972
+
1973
+ if (!arrowElement || !popperOffsets) {
1974
+ return;
1975
+ }
1976
+
1977
+ var paddingObject = toPaddingObject(options.padding, state);
1978
+ var arrowRect = getLayoutRect(arrowElement);
1979
+ var minProp = axis === 'y' ? top : left;
1980
+ var maxProp = axis === 'y' ? bottom : right;
1981
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
1982
+ var startDiff = popperOffsets[axis] - state.rects.reference[axis];
1983
+ var arrowOffsetParent = getOffsetParent(arrowElement);
1984
+ var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
1985
+ var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
1986
+ // outside of the popper bounds
1987
+
1988
+ var min = paddingObject[minProp];
1989
+ var max = clientSize - arrowRect[len] - paddingObject[maxProp];
1990
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
1991
+ var offset = within(min, center, max); // Prevents breaking syntax highlighting...
1992
+
1993
+ var axisProp = axis;
1994
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
1995
+ }
1996
+
1997
+ function effect$1(_ref2) {
1998
+ var state = _ref2.state,
1999
+ options = _ref2.options;
2000
+ var _options$element = options.element,
2001
+ arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
2002
+
2003
+ if (arrowElement == null) {
2004
+ return;
2005
+ } // CSS selector
2006
+
2007
+
2008
+ if (typeof arrowElement === 'string') {
2009
+ arrowElement = state.elements.popper.querySelector(arrowElement);
2010
+
2011
+ if (!arrowElement) {
2012
+ return;
2013
+ }
2014
+ }
2015
+
2016
+ if (!contains(state.elements.popper, arrowElement)) {
2017
+ return;
2018
+ }
2019
+
2020
+ state.elements.arrow = arrowElement;
2021
+ } // eslint-disable-next-line import/no-unused-modules
2022
+
2023
+
2024
+ var arrow$1 = {
2025
+ name: 'arrow',
2026
+ enabled: true,
2027
+ phase: 'main',
2028
+ fn: arrow,
2029
+ effect: effect$1,
2030
+ requires: ['popperOffsets'],
2031
+ requiresIfExists: ['preventOverflow']
2032
+ };
2033
+
2034
+ function getVariation(placement) {
2035
+ return placement.split('-')[1];
2036
+ }
2037
+
2038
+ var unsetSides = {
2039
+ top: 'auto',
2040
+ right: 'auto',
2041
+ bottom: 'auto',
2042
+ left: 'auto'
2043
+ }; // Round the offsets to the nearest suitable subpixel based on the DPR.
2044
+ // Zooming can change the DPR, but it seems to report a value that will
2045
+ // cleanly divide the values into the appropriate subpixels.
2046
+
2047
+ function roundOffsetsByDPR(_ref, win) {
2048
+ var x = _ref.x,
2049
+ y = _ref.y;
2050
+ var dpr = win.devicePixelRatio || 1;
2051
+ return {
2052
+ x: round(x * dpr) / dpr || 0,
2053
+ y: round(y * dpr) / dpr || 0
2054
+ };
2055
+ }
2056
+
2057
+ function mapToStyles(_ref2) {
2058
+ var _Object$assign2;
2059
+
2060
+ var popper = _ref2.popper,
2061
+ popperRect = _ref2.popperRect,
2062
+ placement = _ref2.placement,
2063
+ variation = _ref2.variation,
2064
+ offsets = _ref2.offsets,
2065
+ position = _ref2.position,
2066
+ gpuAcceleration = _ref2.gpuAcceleration,
2067
+ adaptive = _ref2.adaptive,
2068
+ roundOffsets = _ref2.roundOffsets,
2069
+ isFixed = _ref2.isFixed;
2070
+ var _offsets$x = offsets.x,
2071
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
2072
+ _offsets$y = offsets.y,
2073
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
2074
+
2075
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
2076
+ x: x,
2077
+ y: y
2078
+ }) : {
2079
+ x: x,
2080
+ y: y
2081
+ };
2082
+
2083
+ x = _ref3.x;
2084
+ y = _ref3.y;
2085
+ var hasX = offsets.hasOwnProperty('x');
2086
+ var hasY = offsets.hasOwnProperty('y');
2087
+ var sideX = left;
2088
+ var sideY = top;
2089
+ var win = window;
2090
+
2091
+ if (adaptive) {
2092
+ var offsetParent = getOffsetParent(popper);
2093
+ var heightProp = 'clientHeight';
2094
+ var widthProp = 'clientWidth';
2095
+
2096
+ if (offsetParent === getWindow(popper)) {
2097
+ offsetParent = getDocumentElement(popper);
2098
+
2099
+ if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {
2100
+ heightProp = 'scrollHeight';
2101
+ widthProp = 'scrollWidth';
2102
+ }
2103
+ } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
2104
+
2105
+
2106
+ offsetParent = offsetParent;
2107
+
2108
+ if (placement === top || (placement === left || placement === right) && variation === end) {
2109
+ sideY = bottom;
2110
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
2111
+ offsetParent[heightProp];
2112
+ y -= offsetY - popperRect.height;
2113
+ y *= gpuAcceleration ? 1 : -1;
2114
+ }
2115
+
2116
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
2117
+ sideX = right;
2118
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
2119
+ offsetParent[widthProp];
2120
+ x -= offsetX - popperRect.width;
2121
+ x *= gpuAcceleration ? 1 : -1;
2122
+ }
2123
+ }
2124
+
2125
+ var commonStyles = Object.assign({
2126
+ position: position
2127
+ }, adaptive && unsetSides);
2128
+
2129
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
2130
+ x: x,
2131
+ y: y
2132
+ }, getWindow(popper)) : {
2133
+ x: x,
2134
+ y: y
2135
+ };
2136
+
2137
+ x = _ref4.x;
2138
+ y = _ref4.y;
2139
+
2140
+ if (gpuAcceleration) {
2141
+ var _Object$assign;
2142
+
2143
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
2144
+ }
2145
+
2146
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
2147
+ }
2148
+
2149
+ function computeStyles(_ref5) {
2150
+ var state = _ref5.state,
2151
+ options = _ref5.options;
2152
+ var _options$gpuAccelerat = options.gpuAcceleration,
2153
+ gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
2154
+ _options$adaptive = options.adaptive,
2155
+ adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
2156
+ _options$roundOffsets = options.roundOffsets,
2157
+ roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
2158
+ var commonStyles = {
2159
+ placement: getBasePlacement(state.placement),
2160
+ variation: getVariation(state.placement),
2161
+ popper: state.elements.popper,
2162
+ popperRect: state.rects.popper,
2163
+ gpuAcceleration: gpuAcceleration,
2164
+ isFixed: state.options.strategy === 'fixed'
2165
+ };
2166
+
2167
+ if (state.modifiersData.popperOffsets != null) {
2168
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
2169
+ offsets: state.modifiersData.popperOffsets,
2170
+ position: state.options.strategy,
2171
+ adaptive: adaptive,
2172
+ roundOffsets: roundOffsets
2173
+ })));
2174
+ }
2175
+
2176
+ if (state.modifiersData.arrow != null) {
2177
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
2178
+ offsets: state.modifiersData.arrow,
2179
+ position: 'absolute',
2180
+ adaptive: false,
2181
+ roundOffsets: roundOffsets
2182
+ })));
2183
+ }
2184
+
2185
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
2186
+ 'data-popper-placement': state.placement
2187
+ });
2188
+ } // eslint-disable-next-line import/no-unused-modules
2189
+
2190
+
2191
+ var computeStyles$1 = {
2192
+ name: 'computeStyles',
2193
+ enabled: true,
2194
+ phase: 'beforeWrite',
2195
+ fn: computeStyles,
2196
+ data: {}
2197
+ };
2198
+
2199
+ var passive = {
2200
+ passive: true
2201
+ };
2202
+
2203
+ function effect(_ref) {
2204
+ var state = _ref.state,
2205
+ instance = _ref.instance,
2206
+ options = _ref.options;
2207
+ var _options$scroll = options.scroll,
2208
+ scroll = _options$scroll === void 0 ? true : _options$scroll,
2209
+ _options$resize = options.resize,
2210
+ resize = _options$resize === void 0 ? true : _options$resize;
2211
+ var window = getWindow(state.elements.popper);
2212
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
2213
+
2214
+ if (scroll) {
2215
+ scrollParents.forEach(function (scrollParent) {
2216
+ scrollParent.addEventListener('scroll', instance.update, passive);
2217
+ });
2218
+ }
2219
+
2220
+ if (resize) {
2221
+ window.addEventListener('resize', instance.update, passive);
2222
+ }
2223
+
2224
+ return function () {
2225
+ if (scroll) {
2226
+ scrollParents.forEach(function (scrollParent) {
2227
+ scrollParent.removeEventListener('scroll', instance.update, passive);
2228
+ });
2229
+ }
2230
+
2231
+ if (resize) {
2232
+ window.removeEventListener('resize', instance.update, passive);
2233
+ }
2234
+ };
2235
+ } // eslint-disable-next-line import/no-unused-modules
2236
+
2237
+
2238
+ var eventListeners = {
2239
+ name: 'eventListeners',
2240
+ enabled: true,
2241
+ phase: 'write',
2242
+ fn: function fn() {},
2243
+ effect: effect,
2244
+ data: {}
2245
+ };
2246
+
2247
+ var hash$1 = {
2248
+ left: 'right',
2249
+ right: 'left',
2250
+ bottom: 'top',
2251
+ top: 'bottom'
2252
+ };
2253
+ function getOppositePlacement(placement) {
2254
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
2255
+ return hash$1[matched];
2256
+ });
2257
+ }
2258
+
2259
+ var hash = {
2260
+ start: 'end',
2261
+ end: 'start'
2262
+ };
2263
+ function getOppositeVariationPlacement(placement) {
2264
+ return placement.replace(/start|end/g, function (matched) {
2265
+ return hash[matched];
2266
+ });
2267
+ }
2268
+
2269
+ function getWindowScroll(node) {
2270
+ var win = getWindow(node);
2271
+ var scrollLeft = win.pageXOffset;
2272
+ var scrollTop = win.pageYOffset;
2273
+ return {
2274
+ scrollLeft: scrollLeft,
2275
+ scrollTop: scrollTop
2276
+ };
2277
+ }
2278
+
2279
+ function getWindowScrollBarX(element) {
2280
+ // If <html> has a CSS width greater than the viewport, then this will be
2281
+ // incorrect for RTL.
2282
+ // Popper 1 is broken in this case and never had a bug report so let's assume
2283
+ // it's not an issue. I don't think anyone ever specifies width on <html>
2284
+ // anyway.
2285
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
2286
+ // this (e.g. Edge 2019, IE11, Safari)
2287
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
2288
+ }
2289
+
2290
+ function getViewportRect(element, strategy) {
2291
+ var win = getWindow(element);
2292
+ var html = getDocumentElement(element);
2293
+ var visualViewport = win.visualViewport;
2294
+ var width = html.clientWidth;
2295
+ var height = html.clientHeight;
2296
+ var x = 0;
2297
+ var y = 0;
2298
+
2299
+ if (visualViewport) {
2300
+ width = visualViewport.width;
2301
+ height = visualViewport.height;
2302
+ var layoutViewport = isLayoutViewport();
2303
+
2304
+ if (layoutViewport || !layoutViewport && strategy === 'fixed') {
2305
+ x = visualViewport.offsetLeft;
2306
+ y = visualViewport.offsetTop;
2307
+ }
2308
+ }
2309
+
2310
+ return {
2311
+ width: width,
2312
+ height: height,
2313
+ x: x + getWindowScrollBarX(element),
2314
+ y: y
2315
+ };
2316
+ }
2317
+
2318
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable
2319
+
2320
+ function getDocumentRect(element) {
2321
+ var _element$ownerDocumen;
2322
+
2323
+ var html = getDocumentElement(element);
2324
+ var winScroll = getWindowScroll(element);
2325
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
2326
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
2327
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
2328
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
2329
+ var y = -winScroll.scrollTop;
2330
+
2331
+ if (getComputedStyle(body || html).direction === 'rtl') {
2332
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
2333
+ }
2334
+
2335
+ return {
2336
+ width: width,
2337
+ height: height,
2338
+ x: x,
2339
+ y: y
2340
+ };
2341
+ }
2342
+
2343
+ function isScrollParent(element) {
2344
+ // Firefox wants us to check `-x` and `-y` variations as well
2345
+ var _getComputedStyle = getComputedStyle(element),
2346
+ overflow = _getComputedStyle.overflow,
2347
+ overflowX = _getComputedStyle.overflowX,
2348
+ overflowY = _getComputedStyle.overflowY;
2349
+
2350
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
2351
+ }
2352
+
2353
+ function getScrollParent(node) {
2354
+ if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
2355
+ // $FlowFixMe[incompatible-return]: assume body is always available
2356
+ return node.ownerDocument.body;
2357
+ }
2358
+
2359
+ if (isHTMLElement(node) && isScrollParent(node)) {
2360
+ return node;
2361
+ }
2362
+
2363
+ return getScrollParent(getParentNode(node));
2364
+ }
2365
+
2366
+ /*
2367
+ given a DOM element, return the list of all scroll parents, up the list of ancesors
2368
+ until we get to the top window object. This list is what we attach scroll listeners
2369
+ to, because if any of these parent elements scroll, we'll need to re-calculate the
2370
+ reference element's position.
2371
+ */
2372
+
2373
+ function listScrollParents(element, list) {
2374
+ var _element$ownerDocumen;
2375
+
2376
+ if (list === void 0) {
2377
+ list = [];
2378
+ }
2379
+
2380
+ var scrollParent = getScrollParent(element);
2381
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
2382
+ var win = getWindow(scrollParent);
2383
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
2384
+ var updatedList = list.concat(target);
2385
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
2386
+ updatedList.concat(listScrollParents(getParentNode(target)));
2387
+ }
2388
+
2389
+ function rectToClientRect(rect) {
2390
+ return Object.assign({}, rect, {
2391
+ left: rect.x,
2392
+ top: rect.y,
2393
+ right: rect.x + rect.width,
2394
+ bottom: rect.y + rect.height
2395
+ });
2396
+ }
2397
+
2398
+ function getInnerBoundingClientRect(element, strategy) {
2399
+ var rect = getBoundingClientRect(element, false, strategy === 'fixed');
2400
+ rect.top = rect.top + element.clientTop;
2401
+ rect.left = rect.left + element.clientLeft;
2402
+ rect.bottom = rect.top + element.clientHeight;
2403
+ rect.right = rect.left + element.clientWidth;
2404
+ rect.width = element.clientWidth;
2405
+ rect.height = element.clientHeight;
2406
+ rect.x = rect.left;
2407
+ rect.y = rect.top;
2408
+ return rect;
2409
+ }
2410
+
2411
+ function getClientRectFromMixedType(element, clippingParent, strategy) {
2412
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2413
+ } // A "clipping parent" is an overflowable container with the characteristic of
2414
+ // clipping (or hiding) overflowing elements with a position different from
2415
+ // `initial`
2416
+
2417
+
2418
+ function getClippingParents(element) {
2419
+ var clippingParents = listScrollParents(getParentNode(element));
2420
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;
2421
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
2422
+
2423
+ if (!isElement(clipperElement)) {
2424
+ return [];
2425
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
2426
+
2427
+
2428
+ return clippingParents.filter(function (clippingParent) {
2429
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
2430
+ });
2431
+ } // Gets the maximum area that the element is visible in due to any number of
2432
+ // clipping parents
2433
+
2434
+
2435
+ function getClippingRect(element, boundary, rootBoundary, strategy) {
2436
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
2437
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
2438
+ var firstClippingParent = clippingParents[0];
2439
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
2440
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
2441
+ accRect.top = max(rect.top, accRect.top);
2442
+ accRect.right = min(rect.right, accRect.right);
2443
+ accRect.bottom = min(rect.bottom, accRect.bottom);
2444
+ accRect.left = max(rect.left, accRect.left);
2445
+ return accRect;
2446
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
2447
+ clippingRect.width = clippingRect.right - clippingRect.left;
2448
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
2449
+ clippingRect.x = clippingRect.left;
2450
+ clippingRect.y = clippingRect.top;
2451
+ return clippingRect;
2452
+ }
2453
+
2454
+ function computeOffsets(_ref) {
2455
+ var reference = _ref.reference,
2456
+ element = _ref.element,
2457
+ placement = _ref.placement;
2458
+ var basePlacement = placement ? getBasePlacement(placement) : null;
2459
+ var variation = placement ? getVariation(placement) : null;
2460
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
2461
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
2462
+ var offsets;
2463
+
2464
+ switch (basePlacement) {
2465
+ case top:
2466
+ offsets = {
2467
+ x: commonX,
2468
+ y: reference.y - element.height
2469
+ };
2470
+ break;
2471
+
2472
+ case bottom:
2473
+ offsets = {
2474
+ x: commonX,
2475
+ y: reference.y + reference.height
2476
+ };
2477
+ break;
2478
+
2479
+ case right:
2480
+ offsets = {
2481
+ x: reference.x + reference.width,
2482
+ y: commonY
2483
+ };
2484
+ break;
2485
+
2486
+ case left:
2487
+ offsets = {
2488
+ x: reference.x - element.width,
2489
+ y: commonY
2490
+ };
2491
+ break;
2492
+
2493
+ default:
2494
+ offsets = {
2495
+ x: reference.x,
2496
+ y: reference.y
2497
+ };
2498
+ }
2499
+
2500
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
2501
+
2502
+ if (mainAxis != null) {
2503
+ var len = mainAxis === 'y' ? 'height' : 'width';
2504
+
2505
+ switch (variation) {
2506
+ case start:
2507
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
2508
+ break;
2509
+
2510
+ case end:
2511
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
2512
+ break;
2513
+ }
2514
+ }
2515
+
2516
+ return offsets;
2517
+ }
2518
+
2519
+ function detectOverflow(state, options) {
2520
+ if (options === void 0) {
2521
+ options = {};
2522
+ }
2523
+
2524
+ var _options = options,
2525
+ _options$placement = _options.placement,
2526
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
2527
+ _options$strategy = _options.strategy,
2528
+ strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
2529
+ _options$boundary = _options.boundary,
2530
+ boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
2531
+ _options$rootBoundary = _options.rootBoundary,
2532
+ rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
2533
+ _options$elementConte = _options.elementContext,
2534
+ elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
2535
+ _options$altBoundary = _options.altBoundary,
2536
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
2537
+ _options$padding = _options.padding,
2538
+ padding = _options$padding === void 0 ? 0 : _options$padding;
2539
+ var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
2540
+ var altContext = elementContext === popper ? reference : popper;
2541
+ var popperRect = state.rects.popper;
2542
+ var element = state.elements[altBoundary ? altContext : elementContext];
2543
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
2544
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
2545
+ var popperOffsets = computeOffsets({
2546
+ reference: referenceClientRect,
2547
+ element: popperRect,
2548
+ placement: placement
2549
+ });
2550
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
2551
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
2552
+ // 0 or negative = within the clipping rect
2553
+
2554
+ var overflowOffsets = {
2555
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
2556
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
2557
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
2558
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
2559
+ };
2560
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
2561
+
2562
+ if (elementContext === popper && offsetData) {
2563
+ var offset = offsetData[placement];
2564
+ Object.keys(overflowOffsets).forEach(function (key) {
2565
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
2566
+ var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
2567
+ overflowOffsets[key] += offset[axis] * multiply;
2568
+ });
2569
+ }
2570
+
2571
+ return overflowOffsets;
2572
+ }
2573
+
2574
+ function computeAutoPlacement(state, options) {
2575
+ if (options === void 0) {
2576
+ options = {};
2577
+ }
2578
+
2579
+ var _options = options,
2580
+ placement = _options.placement,
2581
+ boundary = _options.boundary,
2582
+ rootBoundary = _options.rootBoundary,
2583
+ padding = _options.padding,
2584
+ flipVariations = _options.flipVariations,
2585
+ _options$allowedAutoP = _options.allowedAutoPlacements,
2586
+ allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
2587
+ var variation = getVariation(placement);
2588
+ var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
2589
+ return getVariation(placement) === variation;
2590
+ }) : basePlacements;
2591
+ var allowedPlacements = placements$1.filter(function (placement) {
2592
+ return allowedAutoPlacements.indexOf(placement) >= 0;
2593
+ });
2594
+
2595
+ if (allowedPlacements.length === 0) {
2596
+ allowedPlacements = placements$1;
2597
+ } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
2598
+
2599
+
2600
+ var overflows = allowedPlacements.reduce(function (acc, placement) {
2601
+ acc[placement] = detectOverflow(state, {
2602
+ placement: placement,
2603
+ boundary: boundary,
2604
+ rootBoundary: rootBoundary,
2605
+ padding: padding
2606
+ })[getBasePlacement(placement)];
2607
+ return acc;
2608
+ }, {});
2609
+ return Object.keys(overflows).sort(function (a, b) {
2610
+ return overflows[a] - overflows[b];
2611
+ });
2612
+ }
2613
+
2614
+ function getExpandedFallbackPlacements(placement) {
2615
+ if (getBasePlacement(placement) === auto) {
2616
+ return [];
2617
+ }
2618
+
2619
+ var oppositePlacement = getOppositePlacement(placement);
2620
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
2621
+ }
2622
+
2623
+ function flip(_ref) {
2624
+ var state = _ref.state,
2625
+ options = _ref.options,
2626
+ name = _ref.name;
2627
+
2628
+ if (state.modifiersData[name]._skip) {
2629
+ return;
2630
+ }
2631
+
2632
+ var _options$mainAxis = options.mainAxis,
2633
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
2634
+ _options$altAxis = options.altAxis,
2635
+ checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
2636
+ specifiedFallbackPlacements = options.fallbackPlacements,
2637
+ padding = options.padding,
2638
+ boundary = options.boundary,
2639
+ rootBoundary = options.rootBoundary,
2640
+ altBoundary = options.altBoundary,
2641
+ _options$flipVariatio = options.flipVariations,
2642
+ flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
2643
+ allowedAutoPlacements = options.allowedAutoPlacements;
2644
+ var preferredPlacement = state.options.placement;
2645
+ var basePlacement = getBasePlacement(preferredPlacement);
2646
+ var isBasePlacement = basePlacement === preferredPlacement;
2647
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
2648
+ var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
2649
+ return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
2650
+ placement: placement,
2651
+ boundary: boundary,
2652
+ rootBoundary: rootBoundary,
2653
+ padding: padding,
2654
+ flipVariations: flipVariations,
2655
+ allowedAutoPlacements: allowedAutoPlacements
2656
+ }) : placement);
2657
+ }, []);
2658
+ var referenceRect = state.rects.reference;
2659
+ var popperRect = state.rects.popper;
2660
+ var checksMap = new Map();
2661
+ var makeFallbackChecks = true;
2662
+ var firstFittingPlacement = placements[0];
2663
+
2664
+ for (var i = 0; i < placements.length; i++) {
2665
+ var placement = placements[i];
2666
+
2667
+ var _basePlacement = getBasePlacement(placement);
2668
+
2669
+ var isStartVariation = getVariation(placement) === start;
2670
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
2671
+ var len = isVertical ? 'width' : 'height';
2672
+ var overflow = detectOverflow(state, {
2673
+ placement: placement,
2674
+ boundary: boundary,
2675
+ rootBoundary: rootBoundary,
2676
+ altBoundary: altBoundary,
2677
+ padding: padding
2678
+ });
2679
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
2680
+
2681
+ if (referenceRect[len] > popperRect[len]) {
2682
+ mainVariationSide = getOppositePlacement(mainVariationSide);
2683
+ }
2684
+
2685
+ var altVariationSide = getOppositePlacement(mainVariationSide);
2686
+ var checks = [];
2687
+
2688
+ if (checkMainAxis) {
2689
+ checks.push(overflow[_basePlacement] <= 0);
2690
+ }
2691
+
2692
+ if (checkAltAxis) {
2693
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
2694
+ }
2695
+
2696
+ if (checks.every(function (check) {
2697
+ return check;
2698
+ })) {
2699
+ firstFittingPlacement = placement;
2700
+ makeFallbackChecks = false;
2701
+ break;
2702
+ }
2703
+
2704
+ checksMap.set(placement, checks);
2705
+ }
2706
+
2707
+ if (makeFallbackChecks) {
2708
+ // `2` may be desired in some cases – research later
2709
+ var numberOfChecks = flipVariations ? 3 : 1;
2710
+
2711
+ var _loop = function _loop(_i) {
2712
+ var fittingPlacement = placements.find(function (placement) {
2713
+ var checks = checksMap.get(placement);
2714
+
2715
+ if (checks) {
2716
+ return checks.slice(0, _i).every(function (check) {
2717
+ return check;
2718
+ });
2719
+ }
2720
+ });
2721
+
2722
+ if (fittingPlacement) {
2723
+ firstFittingPlacement = fittingPlacement;
2724
+ return "break";
2725
+ }
2726
+ };
2727
+
2728
+ for (var _i = numberOfChecks; _i > 0; _i--) {
2729
+ var _ret = _loop(_i);
2730
+
2731
+ if (_ret === "break") break;
2732
+ }
2733
+ }
2734
+
2735
+ if (state.placement !== firstFittingPlacement) {
2736
+ state.modifiersData[name]._skip = true;
2737
+ state.placement = firstFittingPlacement;
2738
+ state.reset = true;
2739
+ }
2740
+ } // eslint-disable-next-line import/no-unused-modules
2741
+
2742
+
2743
+ var flip$1 = {
2744
+ name: 'flip',
2745
+ enabled: true,
2746
+ phase: 'main',
2747
+ fn: flip,
2748
+ requiresIfExists: ['offset'],
2749
+ data: {
2750
+ _skip: false
2751
+ }
2752
+ };
2753
+
2754
+ function getSideOffsets(overflow, rect, preventedOffsets) {
2755
+ if (preventedOffsets === void 0) {
2756
+ preventedOffsets = {
2757
+ x: 0,
2758
+ y: 0
2759
+ };
2760
+ }
2761
+
2762
+ return {
2763
+ top: overflow.top - rect.height - preventedOffsets.y,
2764
+ right: overflow.right - rect.width + preventedOffsets.x,
2765
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
2766
+ left: overflow.left - rect.width - preventedOffsets.x
2767
+ };
2768
+ }
2769
+
2770
+ function isAnySideFullyClipped(overflow) {
2771
+ return [top, right, bottom, left].some(function (side) {
2772
+ return overflow[side] >= 0;
2773
+ });
2774
+ }
2775
+
2776
+ function hide(_ref) {
2777
+ var state = _ref.state,
2778
+ name = _ref.name;
2779
+ var referenceRect = state.rects.reference;
2780
+ var popperRect = state.rects.popper;
2781
+ var preventedOffsets = state.modifiersData.preventOverflow;
2782
+ var referenceOverflow = detectOverflow(state, {
2783
+ elementContext: 'reference'
2784
+ });
2785
+ var popperAltOverflow = detectOverflow(state, {
2786
+ altBoundary: true
2787
+ });
2788
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
2789
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
2790
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
2791
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
2792
+ state.modifiersData[name] = {
2793
+ referenceClippingOffsets: referenceClippingOffsets,
2794
+ popperEscapeOffsets: popperEscapeOffsets,
2795
+ isReferenceHidden: isReferenceHidden,
2796
+ hasPopperEscaped: hasPopperEscaped
2797
+ };
2798
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
2799
+ 'data-popper-reference-hidden': isReferenceHidden,
2800
+ 'data-popper-escaped': hasPopperEscaped
2801
+ });
2802
+ } // eslint-disable-next-line import/no-unused-modules
2803
+
2804
+
2805
+ var hide$1 = {
2806
+ name: 'hide',
2807
+ enabled: true,
2808
+ phase: 'main',
2809
+ requiresIfExists: ['preventOverflow'],
2810
+ fn: hide
2811
+ };
2812
+
2813
+ function distanceAndSkiddingToXY(placement, rects, offset) {
2814
+ var basePlacement = getBasePlacement(placement);
2815
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
2816
+
2817
+ var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
2818
+ placement: placement
2819
+ })) : offset,
2820
+ skidding = _ref[0],
2821
+ distance = _ref[1];
2822
+
2823
+ skidding = skidding || 0;
2824
+ distance = (distance || 0) * invertDistance;
2825
+ return [left, right].indexOf(basePlacement) >= 0 ? {
2826
+ x: distance,
2827
+ y: skidding
2828
+ } : {
2829
+ x: skidding,
2830
+ y: distance
2831
+ };
2832
+ }
2833
+
2834
+ function offset(_ref2) {
2835
+ var state = _ref2.state,
2836
+ options = _ref2.options,
2837
+ name = _ref2.name;
2838
+ var _options$offset = options.offset,
2839
+ offset = _options$offset === void 0 ? [0, 0] : _options$offset;
2840
+ var data = placements.reduce(function (acc, placement) {
2841
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
2842
+ return acc;
2843
+ }, {});
2844
+ var _data$state$placement = data[state.placement],
2845
+ x = _data$state$placement.x,
2846
+ y = _data$state$placement.y;
2847
+
2848
+ if (state.modifiersData.popperOffsets != null) {
2849
+ state.modifiersData.popperOffsets.x += x;
2850
+ state.modifiersData.popperOffsets.y += y;
2851
+ }
2852
+
2853
+ state.modifiersData[name] = data;
2854
+ } // eslint-disable-next-line import/no-unused-modules
2855
+
2856
+
2857
+ var offset$1 = {
2858
+ name: 'offset',
2859
+ enabled: true,
2860
+ phase: 'main',
2861
+ requires: ['popperOffsets'],
2862
+ fn: offset
2863
+ };
2864
+
2865
+ function popperOffsets(_ref) {
2866
+ var state = _ref.state,
2867
+ name = _ref.name;
2868
+ // Offsets are the actual position the popper needs to have to be
2869
+ // properly positioned near its reference element
2870
+ // This is the most basic placement, and will be adjusted by
2871
+ // the modifiers in the next step
2872
+ state.modifiersData[name] = computeOffsets({
2873
+ reference: state.rects.reference,
2874
+ element: state.rects.popper,
2875
+ placement: state.placement
2876
+ });
2877
+ } // eslint-disable-next-line import/no-unused-modules
2878
+
2879
+
2880
+ var popperOffsets$1 = {
2881
+ name: 'popperOffsets',
2882
+ enabled: true,
2883
+ phase: 'read',
2884
+ fn: popperOffsets,
2885
+ data: {}
2886
+ };
2887
+
2888
+ function getAltAxis(axis) {
2889
+ return axis === 'x' ? 'y' : 'x';
2890
+ }
2891
+
2892
+ function preventOverflow(_ref) {
2893
+ var state = _ref.state,
2894
+ options = _ref.options,
2895
+ name = _ref.name;
2896
+ var _options$mainAxis = options.mainAxis,
2897
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
2898
+ _options$altAxis = options.altAxis,
2899
+ checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
2900
+ boundary = options.boundary,
2901
+ rootBoundary = options.rootBoundary,
2902
+ altBoundary = options.altBoundary,
2903
+ padding = options.padding,
2904
+ _options$tether = options.tether,
2905
+ tether = _options$tether === void 0 ? true : _options$tether,
2906
+ _options$tetherOffset = options.tetherOffset,
2907
+ tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
2908
+ var overflow = detectOverflow(state, {
2909
+ boundary: boundary,
2910
+ rootBoundary: rootBoundary,
2911
+ padding: padding,
2912
+ altBoundary: altBoundary
2913
+ });
2914
+ var basePlacement = getBasePlacement(state.placement);
2915
+ var variation = getVariation(state.placement);
2916
+ var isBasePlacement = !variation;
2917
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
2918
+ var altAxis = getAltAxis(mainAxis);
2919
+ var popperOffsets = state.modifiersData.popperOffsets;
2920
+ var referenceRect = state.rects.reference;
2921
+ var popperRect = state.rects.popper;
2922
+ var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
2923
+ placement: state.placement
2924
+ })) : tetherOffset;
2925
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
2926
+ mainAxis: tetherOffsetValue,
2927
+ altAxis: tetherOffsetValue
2928
+ } : Object.assign({
2929
+ mainAxis: 0,
2930
+ altAxis: 0
2931
+ }, tetherOffsetValue);
2932
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
2933
+ var data = {
2934
+ x: 0,
2935
+ y: 0
2936
+ };
2937
+
2938
+ if (!popperOffsets) {
2939
+ return;
2940
+ }
2941
+
2942
+ if (checkMainAxis) {
2943
+ var _offsetModifierState$;
2944
+
2945
+ var mainSide = mainAxis === 'y' ? top : left;
2946
+ var altSide = mainAxis === 'y' ? bottom : right;
2947
+ var len = mainAxis === 'y' ? 'height' : 'width';
2948
+ var offset = popperOffsets[mainAxis];
2949
+ var min$1 = offset + overflow[mainSide];
2950
+ var max$1 = offset - overflow[altSide];
2951
+ var additive = tether ? -popperRect[len] / 2 : 0;
2952
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
2953
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
2954
+ // outside the reference bounds
2955
+
2956
+ var arrowElement = state.elements.arrow;
2957
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
2958
+ width: 0,
2959
+ height: 0
2960
+ };
2961
+ var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
2962
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
2963
+ var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
2964
+ // to include its full size in the calculation. If the reference is small
2965
+ // and near the edge of a boundary, the popper can overflow even if the
2966
+ // reference is not overflowing as well (e.g. virtual elements with no
2967
+ // width or height)
2968
+
2969
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
2970
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
2971
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
2972
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
2973
+ var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
2974
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
2975
+ var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
2976
+ var tetherMax = offset + maxOffset - offsetModifierValue;
2977
+ var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
2978
+ popperOffsets[mainAxis] = preventedOffset;
2979
+ data[mainAxis] = preventedOffset - offset;
2980
+ }
2981
+
2982
+ if (checkAltAxis) {
2983
+ var _offsetModifierState$2;
2984
+
2985
+ var _mainSide = mainAxis === 'x' ? top : left;
2986
+
2987
+ var _altSide = mainAxis === 'x' ? bottom : right;
2988
+
2989
+ var _offset = popperOffsets[altAxis];
2990
+
2991
+ var _len = altAxis === 'y' ? 'height' : 'width';
2992
+
2993
+ var _min = _offset + overflow[_mainSide];
2994
+
2995
+ var _max = _offset - overflow[_altSide];
2996
+
2997
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
2998
+
2999
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
3000
+
3001
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
3002
+
3003
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
3004
+
3005
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
3006
+
3007
+ popperOffsets[altAxis] = _preventedOffset;
3008
+ data[altAxis] = _preventedOffset - _offset;
3009
+ }
3010
+
3011
+ state.modifiersData[name] = data;
3012
+ } // eslint-disable-next-line import/no-unused-modules
3013
+
3014
+
3015
+ var preventOverflow$1 = {
3016
+ name: 'preventOverflow',
3017
+ enabled: true,
3018
+ phase: 'main',
3019
+ fn: preventOverflow,
3020
+ requiresIfExists: ['offset']
3021
+ };
3022
+
3023
+ function getHTMLElementScroll(element) {
3024
+ return {
3025
+ scrollLeft: element.scrollLeft,
3026
+ scrollTop: element.scrollTop
3027
+ };
3028
+ }
3029
+
3030
+ function getNodeScroll(node) {
3031
+ if (node === getWindow(node) || !isHTMLElement(node)) {
3032
+ return getWindowScroll(node);
3033
+ } else {
3034
+ return getHTMLElementScroll(node);
3035
+ }
3036
+ }
3037
+
3038
+ function isElementScaled(element) {
3039
+ var rect = element.getBoundingClientRect();
3040
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
3041
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
3042
+ return scaleX !== 1 || scaleY !== 1;
3043
+ } // Returns the composite rect of an element relative to its offsetParent.
3044
+ // Composite means it takes into account transforms as well as layout.
3045
+
3046
+
3047
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
3048
+ if (isFixed === void 0) {
3049
+ isFixed = false;
3050
+ }
3051
+
3052
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
3053
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3054
+ var documentElement = getDocumentElement(offsetParent);
3055
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
3056
+ var scroll = {
3057
+ scrollLeft: 0,
3058
+ scrollTop: 0
3059
+ };
3060
+ var offsets = {
3061
+ x: 0,
3062
+ y: 0
3063
+ };
3064
+
3065
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
3066
+ if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
3067
+ isScrollParent(documentElement)) {
3068
+ scroll = getNodeScroll(offsetParent);
3069
+ }
3070
+
3071
+ if (isHTMLElement(offsetParent)) {
3072
+ offsets = getBoundingClientRect(offsetParent, true);
3073
+ offsets.x += offsetParent.clientLeft;
3074
+ offsets.y += offsetParent.clientTop;
3075
+ } else if (documentElement) {
3076
+ offsets.x = getWindowScrollBarX(documentElement);
3077
+ }
3078
+ }
3079
+
3080
+ return {
3081
+ x: rect.left + scroll.scrollLeft - offsets.x,
3082
+ y: rect.top + scroll.scrollTop - offsets.y,
3083
+ width: rect.width,
3084
+ height: rect.height
3085
+ };
3086
+ }
3087
+
3088
+ function order(modifiers) {
3089
+ var map = new Map();
3090
+ var visited = new Set();
3091
+ var result = [];
3092
+ modifiers.forEach(function (modifier) {
3093
+ map.set(modifier.name, modifier);
3094
+ }); // On visiting object, check for its dependencies and visit them recursively
3095
+
3096
+ function sort(modifier) {
3097
+ visited.add(modifier.name);
3098
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
3099
+ requires.forEach(function (dep) {
3100
+ if (!visited.has(dep)) {
3101
+ var depModifier = map.get(dep);
3102
+
3103
+ if (depModifier) {
3104
+ sort(depModifier);
3105
+ }
3106
+ }
3107
+ });
3108
+ result.push(modifier);
3109
+ }
3110
+
3111
+ modifiers.forEach(function (modifier) {
3112
+ if (!visited.has(modifier.name)) {
3113
+ // check for visited object
3114
+ sort(modifier);
3115
+ }
3116
+ });
3117
+ return result;
3118
+ }
3119
+
3120
+ function orderModifiers(modifiers) {
3121
+ // order based on dependencies
3122
+ var orderedModifiers = order(modifiers); // order based on phase
3123
+
3124
+ return modifierPhases.reduce(function (acc, phase) {
3125
+ return acc.concat(orderedModifiers.filter(function (modifier) {
3126
+ return modifier.phase === phase;
3127
+ }));
3128
+ }, []);
3129
+ }
3130
+
3131
+ function debounce(fn) {
3132
+ var pending;
3133
+ return function () {
3134
+ if (!pending) {
3135
+ pending = new Promise(function (resolve) {
3136
+ Promise.resolve().then(function () {
3137
+ pending = undefined;
3138
+ resolve(fn());
3139
+ });
3140
+ });
3141
+ }
3142
+
3143
+ return pending;
3144
+ };
3145
+ }
3146
+
3147
+ function mergeByName(modifiers) {
3148
+ var merged = modifiers.reduce(function (merged, current) {
3149
+ var existing = merged[current.name];
3150
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
3151
+ options: Object.assign({}, existing.options, current.options),
3152
+ data: Object.assign({}, existing.data, current.data)
3153
+ }) : current;
3154
+ return merged;
3155
+ }, {}); // IE11 does not support Object.values
3156
+
3157
+ return Object.keys(merged).map(function (key) {
3158
+ return merged[key];
3159
+ });
3160
+ }
3161
+
3162
+ var DEFAULT_OPTIONS = {
3163
+ placement: 'bottom',
3164
+ modifiers: [],
3165
+ strategy: 'absolute'
3166
+ };
3167
+
3168
+ function areValidElements() {
3169
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3170
+ args[_key] = arguments[_key];
3171
+ }
3172
+
3173
+ return !args.some(function (element) {
3174
+ return !(element && typeof element.getBoundingClientRect === 'function');
3175
+ });
3176
+ }
3177
+
3178
+ function popperGenerator(generatorOptions) {
3179
+ if (generatorOptions === void 0) {
3180
+ generatorOptions = {};
3181
+ }
3182
+
3183
+ var _generatorOptions = generatorOptions,
3184
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
3185
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
3186
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
3187
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
3188
+ return function createPopper(reference, popper, options) {
3189
+ if (options === void 0) {
3190
+ options = defaultOptions;
3191
+ }
3192
+
3193
+ var state = {
3194
+ placement: 'bottom',
3195
+ orderedModifiers: [],
3196
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
3197
+ modifiersData: {},
3198
+ elements: {
3199
+ reference: reference,
3200
+ popper: popper
3201
+ },
3202
+ attributes: {},
3203
+ styles: {}
3204
+ };
3205
+ var effectCleanupFns = [];
3206
+ var isDestroyed = false;
3207
+ var instance = {
3208
+ state: state,
3209
+ setOptions: function setOptions(setOptionsAction) {
3210
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
3211
+ cleanupModifierEffects();
3212
+ state.options = Object.assign({}, defaultOptions, state.options, options);
3213
+ state.scrollParents = {
3214
+ reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
3215
+ popper: listScrollParents(popper)
3216
+ }; // Orders the modifiers based on their dependencies and `phase`
3217
+ // properties
3218
+
3219
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
3220
+
3221
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
3222
+ return m.enabled;
3223
+ });
3224
+ runModifierEffects();
3225
+ return instance.update();
3226
+ },
3227
+ // Sync update – it will always be executed, even if not necessary. This
3228
+ // is useful for low frequency updates where sync behavior simplifies the
3229
+ // logic.
3230
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
3231
+ // prefer the async Popper#update method
3232
+ forceUpdate: function forceUpdate() {
3233
+ if (isDestroyed) {
3234
+ return;
3235
+ }
3236
+
3237
+ var _state$elements = state.elements,
3238
+ reference = _state$elements.reference,
3239
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
3240
+ // anymore
3241
+
3242
+ if (!areValidElements(reference, popper)) {
3243
+ return;
3244
+ } // Store the reference and popper rects to be read by modifiers
3245
+
3246
+
3247
+ state.rects = {
3248
+ reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
3249
+ popper: getLayoutRect(popper)
3250
+ }; // Modifiers have the ability to reset the current update cycle. The
3251
+ // most common use case for this is the `flip` modifier changing the
3252
+ // placement, which then needs to re-run all the modifiers, because the
3253
+ // logic was previously ran for the previous placement and is therefore
3254
+ // stale/incorrect
3255
+
3256
+ state.reset = false;
3257
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
3258
+ // is filled with the initial data specified by the modifier. This means
3259
+ // it doesn't persist and is fresh on each update.
3260
+ // To ensure persistent data, use `${name}#persistent`
3261
+
3262
+ state.orderedModifiers.forEach(function (modifier) {
3263
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
3264
+ });
3265
+
3266
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
3267
+ if (state.reset === true) {
3268
+ state.reset = false;
3269
+ index = -1;
3270
+ continue;
3271
+ }
3272
+
3273
+ var _state$orderedModifie = state.orderedModifiers[index],
3274
+ fn = _state$orderedModifie.fn,
3275
+ _state$orderedModifie2 = _state$orderedModifie.options,
3276
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
3277
+ name = _state$orderedModifie.name;
3278
+
3279
+ if (typeof fn === 'function') {
3280
+ state = fn({
3281
+ state: state,
3282
+ options: _options,
3283
+ name: name,
3284
+ instance: instance
3285
+ }) || state;
3286
+ }
3287
+ }
3288
+ },
3289
+ // Async and optimistically optimized update – it will not be executed if
3290
+ // not necessary (debounced to run at most once-per-tick)
3291
+ update: debounce(function () {
3292
+ return new Promise(function (resolve) {
3293
+ instance.forceUpdate();
3294
+ resolve(state);
3295
+ });
3296
+ }),
3297
+ destroy: function destroy() {
3298
+ cleanupModifierEffects();
3299
+ isDestroyed = true;
3300
+ }
3301
+ };
3302
+
3303
+ if (!areValidElements(reference, popper)) {
3304
+ return instance;
3305
+ }
3306
+
3307
+ instance.setOptions(options).then(function (state) {
3308
+ if (!isDestroyed && options.onFirstUpdate) {
3309
+ options.onFirstUpdate(state);
3310
+ }
3311
+ }); // Modifiers have the ability to execute arbitrary code before the first
3312
+ // update cycle runs. They will be executed in the same order as the update
3313
+ // cycle. This is useful when a modifier adds some persistent data that
3314
+ // other modifiers need to use, but the modifier is run after the dependent
3315
+ // one.
3316
+
3317
+ function runModifierEffects() {
3318
+ state.orderedModifiers.forEach(function (_ref) {
3319
+ var name = _ref.name,
3320
+ _ref$options = _ref.options,
3321
+ options = _ref$options === void 0 ? {} : _ref$options,
3322
+ effect = _ref.effect;
3323
+
3324
+ if (typeof effect === 'function') {
3325
+ var cleanupFn = effect({
3326
+ state: state,
3327
+ name: name,
3328
+ instance: instance,
3329
+ options: options
3330
+ });
3331
+
3332
+ var noopFn = function noopFn() {};
3333
+
3334
+ effectCleanupFns.push(cleanupFn || noopFn);
3335
+ }
3336
+ });
3337
+ }
3338
+
3339
+ function cleanupModifierEffects() {
3340
+ effectCleanupFns.forEach(function (fn) {
3341
+ return fn();
3342
+ });
3343
+ effectCleanupFns = [];
3344
+ }
3345
+
3346
+ return instance;
3347
+ };
3348
+ }
3349
+
3350
+ var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
3351
+ var createPopper = /*#__PURE__*/popperGenerator({
3352
+ defaultModifiers: defaultModifiers
3353
+ }); // eslint-disable-next-line import/no-unused-modules
3354
+
3355
+ const xvToggleTipCss = ":host{display:inline-block;font-family:inherit}:host .trigger{display:inline-flex;align-items:center;cursor:pointer;transition:250ms ease-in-out color;color:var(--icon-secondary)}:host .trigger_icon{color:inherit}:host .trigger ::slotted([slot=trigger]){transition:250ms ease-in-out color;color:var(--icon-secondary)}:host .trigger:hover,:host .trigger:active,:host .trigger ::slotted([slot=trigger]:hover),:host .trigger ::slotted([slot=trigger]:active){color:var(--icon-primary)}:host .trigger:focus,:host .trigger ::slotted([slot=trigger]:focus){color:var(--focus)}:host .popover{opacity:1;z-index:1000;position:absolute;background-color:var(--background-inverse);color:var(--text-inverse);border-radius:4px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.25);max-width:288px;font-size:0.875rem;line-height:1.5;margin-top:8px;flex-direction:column;display:flex}:host .popover[data-popper-placement^=top] .popover-tip{bottom:-4px}:host .popover[data-popper-placement^=bottom] .popover-tip{top:-4px}:host .popover[data-popper-placement^=left] .popover-tip{right:-4px}:host .popover[data-popper-placement^=right] .popover-tip{left:-4px}:host .popover .popover-tip{width:10px;height:10px;background-color:transparent;z-index:-1}:host .popover .popover-tip:before{content:\"\";transform:rotate(45deg);background-color:var(--background-inverse);width:inherit;height:inherit;display:inline-block}:host .popover .popover-content{padding:var(--gap-md);display:flex;flex-direction:column;gap:var(--spacing-04)}:host .popover .popover-content ::slotted([slot=header]){font-size:0.875rem;font-weight:600;color:var(--text-secondary)}:host .popover .popover-content ::slotted([slot=body]){font-size:0.875rem;color:var(--text-inverse)}:host .popover .popover-content ::slotted([slot=footer]){font-size:0.75rem;color:var(--text-inverse);opacity:0.8}:host(:not([open])) .popover{opacity:0;z-index:-1;user-select:none;pointer-events:none}";
3356
+
3357
+ const XvToggleTip = class {
3358
+ constructor(hostRef) {
3359
+ registerInstance(this, hostRef);
3360
+ this.openChange = createEvent(this, "openChange");
3361
+ this.open = false;
3362
+ this.position = 'auto';
3363
+ this.destroyPopper = () => {
3364
+ if (this.popperInstance) {
3365
+ this.popperInstance.destroy();
3366
+ this.popperInstance = undefined;
1221
3367
  }
1222
3368
  };
1223
3369
  }
3370
+ openChangeHandle() {
3371
+ if (this.open) {
3372
+ requestAnimationFrame(() => this.createPopper());
3373
+ }
3374
+ else {
3375
+ this.destroyPopper();
3376
+ }
3377
+ this.openChange.emit(this.open);
3378
+ }
3379
+ handleClickOutside(e) {
3380
+ if (this.open && !this.el.contains(e.target)) {
3381
+ this.open = false;
3382
+ }
3383
+ }
3384
+ ;
3385
+ handleKeyDown(e) {
3386
+ if (e.key === 'Escape' && this.open) {
3387
+ this.open = false;
3388
+ }
3389
+ }
3390
+ ;
3391
+ async setPopover(open) {
3392
+ if (open === this.open)
3393
+ return;
3394
+ this.open = open;
3395
+ return this.open;
3396
+ }
3397
+ ;
3398
+ createPopper() {
3399
+ if (!this.triggerEl || !this.popoverEl) {
3400
+ console.warn('XvToggleTip can`t find the trigger or popover container!');
3401
+ return;
3402
+ }
3403
+ this.popperInstance = createPopper(this.triggerEl, this.popoverEl, {
3404
+ placement: this.position,
3405
+ modifiers: [
3406
+ {
3407
+ name: 'offset',
3408
+ options: {
3409
+ offset: [0, 8],
3410
+ },
3411
+ },
3412
+ {
3413
+ name: 'preventOverflow',
3414
+ options: {
3415
+ boundary: 'viewport',
3416
+ padding: 8,
3417
+ },
3418
+ },
3419
+ ],
3420
+ });
3421
+ }
3422
+ ;
1224
3423
  render() {
1225
- return (h(Host, { key: 'ff06aea5ae7498aaf2c855da8ee0f7a0522456e4', name: this.name, class: "xv-text-input", role: "textbox", tabindex: this.disabled ? -1 : false }, this.label && h("label", { key: 'cf8084b9c0aab74c87297e1af0ea6d069cb6b8f1', class: "label" }, this.label), h("div", { key: '9ebc989deb41e835f30c72f4777d94cadd68a023', class: "control" }, h("input", { key: '82b18d350f325ae32daad68552ac083dd2c3b157', type: "text", class: { withIcon: this.status !== TextInputStatus.DEF }, readonly: this.readonly, value: this.value, disabled: this.disabled, onInput: this.handleInput, placeholder: this.placeholder }), this.getControlIcon(this.status)), this.helper && h("p", { key: '070097a66e9a21872b8245305a24070fc5b8f443', class: "helper" }, this.helper)));
3424
+ return (h(Host, { key: '7b125738966144a7fdafe1ae26d77b72085b8003', class: "xv-toggle-tip" }, h("div", { key: '0fefcfc966714aa98d98672a1727aa2fc6bfadf2', class: "trigger", role: "button", tabindex: "0", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": "popover", onClick: () => this.setPopover(!this.open), ref: (el) => (this.triggerEl = el) }, h("slot", { key: '752b5bf8be01660d12a6911e4a594c69da6b1e0c', name: "trigger" }, h("svg", { key: '6a594cfd8a4ff05d30d70fdda25a01157f6f94ee', class: "trigger_icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: '133a8b6e0f4d04e3c4df60209517191d5fd508fe', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))), h("div", { key: 'ee2d9238662f276f76669353139a25867708f625', class: { popover: true }, role: "tooltip", tabindex: "-1", ref: (el) => (this.popoverEl = el) }, h("div", { key: '3c9f9455849855757051aeeac26cba84123f6f7d', class: "popover-tip", part: "tip", "data-popper-arrow": "" }), h("div", { key: 'cfb0da55d009997e002f072b7ff36efaf14fb06f', class: "popover-content" }, h("slot", { key: 'f2dc06851b50ed5002f819e018f2bf191011fbf3', name: "header" }), h("slot", { key: '2dc5b57ffd60fa4586dc43b3e9534e4ede376199', name: "body" }), h("slot", { key: '1c236e27d751fd957fdeaf2605d8b24495b59daf', name: "footer" })))));
1226
3425
  }
1227
- componentWillLoad() {
1228
- this.internals.setFormValue(this.value);
3426
+ disconnectedCallback() {
3427
+ this.destroyPopper();
1229
3428
  }
1230
- static get formAssociated() { return true; }
1231
3429
  get el() { return getElement(this); }
3430
+ static get watchers() { return {
3431
+ "open": ["openChangeHandle"]
3432
+ }; }
1232
3433
  };
1233
- XvTextInput.style = xvTextInputCss;
3434
+ XvToggleTip.style = xvToggleTipCss;
1234
3435
 
1235
- const xvTooltipCss = ":host{position:relative;display:inline-block;cursor:pointer;line-height:0.5}:host::before,:host::after{position:absolute;opacity:0;visibility:hidden;transition:opacity 0.2s ease-in-out 0.5s, transform 0.2s ease-in-out 0.5s;z-index:10}:host::before{content:attr(tooltip);background:var(--background-inverse, #333);color:var(--icon-inverse, #fff);padding:var(--gap-sm, 5px) var(--gap-md, 16px);border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70vw;font-family:var(--fz-body, Tahoma);font-size:var(fz-md, 14px);font-weight:400;line-height:18px;letter-spacing:0.16px}:host([multiline])::before{white-space:normal;min-width:300px}:host::after{content:\"\";border:6px solid transparent}:host(:hover)::before,:host(:hover)::after,:host(:focus)::before,:host(:focus)::after{opacity:1;visibility:visible}:host(.xv-tooltip_top)::before{bottom:100%;left:50%;transform:translateX(-50%) translateY(-5px)}:host(.xv-tooltip_top)::after{bottom:100%;left:50%;border-top-color:var(--background-inverse, #333);transform:translateX(-50%) translateY(5px)}:host(.xv-tooltip_top-left)::before{bottom:100%;left:0;transform:translateY(-5px)}:host(.xv-tooltip_top-left)::after{bottom:100%;left:10px;border-top-color:black;transform:translateY(5px)}:host(.xv-tooltip_top-right)::before{bottom:100%;right:0;transform:translateY(-5px)}:host(.xv-tooltip_top-right)::after{bottom:100%;right:10px;border-top-color:var(--background-inverse, #333);transform:translateY(5px)}:host(.xv-tooltip_bottom)::before{top:100%;left:50%;transform:translateX(-50%) translateY(5px)}:host(.xv-tooltip_bottom)::after{top:100%;left:50%;border-bottom-color:black;transform:translateX(-50%) translateY(-5px)}:host(.xv-tooltip_bottom-left)::before{top:100%;left:0;transform:translateY(5px)}:host(.xv-tooltip_bottom-left)::after{top:100%;left:10px;border-bottom-color:var(--background-inverse, #333);transform:translateY(-5px)}:host(.xv-tooltip_bottom-right)::before{top:100%;right:0;transform:translateY(5px)}:host(.xv-tooltip_bottom-right)::after{top:100%;right:10px;border-bottom-color:var(--background-inverse, #333);transform:translateY(-5px)}:host(.xv-tooltip_left)::before{right:100%;top:50%;transform:translateY(-50%) translateX(-5px)}:host(.xv-tooltip_left)::after{right:100%;top:50%;border-left-color:var(--background-inverse, #333);transform:translateY(-50%) translateX(5px)}:host(.xv-tooltip_right)::before{left:100%;top:50%;transform:translateY(-50%) translateX(5px)}:host(.xv-tooltip_right)::after{left:100%;top:50%;border-right-color:var(--background-inverse, #333);transform:translateY(-50%) translateX(-5px)}";
3436
+ const xvTooltipCss = ":host{position:relative;display:contents}.xv-tooltip[role=tooltip]{position:absolute;background-color:var(--background-inverse);color:var(--text-on-color);padding:var(--spacing-03) var(--spacing-04);border-radius:3px;font-size:var(--fz-md);z-index:999;max-width:min(400px, 90vw);overflow:visible}.xv-tooltip[role=tooltip] [data-popper-arrow]{position:absolute;width:10px;height:10px;background-color:transparent;z-index:-1}.xv-tooltip[role=tooltip] [data-popper-arrow]:before{content:\"\";transform:rotate(45deg);background-color:var(--background-inverse);width:inherit;height:inherit;display:inline-block}.xv-tooltip[role=tooltip][data-popper-placement^=top] [data-popper-arrow]{bottom:1px}.xv-tooltip[role=tooltip][data-popper-placement^=bottom] [data-popper-arrow]{top:-10px}.xv-tooltip[role=tooltip][data-popper-placement^=left] [data-popper-arrow]{right:-4px}.xv-tooltip[role=tooltip][data-popper-placement^=right] [data-popper-arrow]{left:-4px}";
1236
3437
 
1237
3438
  const XvTooltip = class {
1238
3439
  constructor(hostRef) {
1239
3440
  registerInstance(this, hostRef);
1240
- /**
1241
- * Tooltip and arrow position related to element
1242
- * possible options: 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'right'.
1243
- * By default, "top"
1244
- */
1245
- this.position = 'top';
3441
+ this.position = 'auto';
3442
+ this.visible = false;
3443
+ }
3444
+ onMouseEnter() {
3445
+ this.visible = true;
3446
+ requestAnimationFrame(() => this.createPopper());
3447
+ }
3448
+ onMouseLeave() {
3449
+ this.visible = false;
3450
+ this.destroyPopper();
3451
+ }
3452
+ createPopper() {
3453
+ if (this.tooltipEl) {
3454
+ this.popperInstance = createPopper(this.el, this.tooltipEl, {
3455
+ placement: this.position,
3456
+ modifiers: [{ name: 'offset', options: { offset: [0, 8] } }],
3457
+ });
3458
+ }
3459
+ }
3460
+ destroyPopper() {
3461
+ var _a;
3462
+ (_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.destroy();
3463
+ this.popperInstance = null;
1246
3464
  }
1247
3465
  render() {
1248
- return (h(Host, { key: '7de12b2a66877ad7be729a8d78056efeedb56d8f', tooltip: this.message, class: `xv-tooltip_${this.position}` }, h("slot", { key: 'd52506f97478e29652a7671b4cba6333961f5e61' }, h("svg", { key: 'e6f06c96135155d504577e6086f0a58fd8ae9b09', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: '6580f275c8400f37cafd96f2c68a4e1e9cbd12bd', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))));
3466
+ return (h(Host, { key: 'd1f0178c3853f96716217630ff0349a0396f33a0' }, h("slot", { key: '11af6ea09c3d833318118164f0493bf4c98316a3' }, h("svg", { key: '614c37cd6eda62cc3745f49252627f1383a46166', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: '11f2da0b818971c6f17145e1fa5b17b1852faafd', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" }))), this.visible && (h("div", { key: '8f0db2decd3ff2993b0b618e2111cac861fec058', class: "xv-tooltip", ref: (el) => (this.tooltipEl = el), role: "tooltip" }, this.message, h("div", { key: 'a8e05a8dbe988e7df14da6a16f42e528a68708c0', class: "xv-tooltip-arrow", "data-popper-arrow": "" })))));
1249
3467
  }
3468
+ get el() { return getElement(this); }
1250
3469
  };
1251
3470
  XvTooltip.style = xvTooltipCss;
1252
3471
 
1253
- export { XvAccordion as xv_accordion_v2, XvAccordionItem as xv_accordion_v2_item, XvButton as xv_button_v2, XvCard as xv_card_v2, XvCheckbox as xv_checkbox_v2, XvDropdown as xv_dropdown_v2, XvDropdownItem as xv_dropdown_v2_item, Xvfooter as xv_footer, XvHeader as xv_header, XvLink as xv_link_v2, XvLoader as xv_loader_v2, XvLoginModal as xv_login_modal, XvModal as xv_modal_v2, XvNotification as xv_notification_v2, XvOverflowMenu as xv_overflow_menu_v2, XvOverflowMenuItem as xv_overflow_menu_v2_item, XvProgressIndicator as xv_progress_indicator_v2, XvProgressIndicatorItem as xv_progress_indicator_v2_item, XvTab as xv_tab_v2, XvTable as xv_table_v2, XvTableCell as xv_table_v2_cell, XvTableExpand as xv_table_v2_expand, XvTableRow as xv_table_v2_row, XvTabs as xv_tabs_v2, XvTag as xv_tag_v2, XvTextInput as xv_text_input_v2, XvTooltip as xv_tooltip_v2 };
1254
- //# sourceMappingURL=xv-accordion-v2.xv-accordion-v2-item.xv-button-v2.xv-card-v2.xv-checkbox-v2.xv-dropdown-v2.xv-dropdown-v2-item.xv-footer.xv-header.xv-link-v2.xv-loader-v2.xv-login-modal.xv-modal-v2.xv-notification-v2.xv-overflow-menu-v2.xv-overflow-menu-v2-item.xv-progress-indicator-v2.xv-progress-indicator-v2-item.xv-tab-v2.xv-table-v2.xv-table-v2-cell.xv-table-v2-expand.xv-table-v2-row.xv-tabs-v2.xv-tag-v2.xv-text-input-v2.xv-tooltip-v2.entry.js.map
3472
+ export { XvAccordion as xv_accordion_v2, XvAccordionItem as xv_accordion_v2_item, XvButton as xv_button_v2, XvCard as xv_card_v2, XvCheckbox as xv_checkbox_v2, XvDataTable as xv_data_table, XvDataTableCell as xv_data_table_cell, XvDataTableCollapse as xv_data_table_collapse, XvDataTableRow as xv_data_table_row, XvDropdown as xv_dropdown_v2, XvDropdownItem as xv_dropdown_v2_item, XvFileUploader as xv_file_uploader, Xvfooter as xv_footer, XvHeader as xv_header, XvLink as xv_link_v2, XvLoader as xv_loader_v2, XvLoginModal as xv_login_modal, XvModal as xv_modal_v2, XvNotification as xv_notification_v2, XvNumberInput as xv_number_input_v2, XvOverflowMenu as xv_overflow_menu_v2, XvOverflowMenuItem as xv_overflow_menu_v2_item, XvProgressIndicator as xv_progress_indicator_v2, XvProgressIndicatorItem as xv_progress_indicator_v2_item, XvTab as xv_tab_v2, XvTable as xv_table_v2, XvTableCell as xv_table_v2_cell, XvTableExpand as xv_table_v2_expand, XvTableRow as xv_table_v2_row, XvTabs as xv_tabs_v2, XvTag as xv_tag_v2, XvTextInput as xv_text_input_v2, XvToggleTip as xv_toggle_tip, XvTooltip as xv_tooltip_v2 };
3473
+ //# sourceMappingURL=xv-accordion-v2.xv-accordion-v2-item.xv-button-v2.xv-card-v2.xv-checkbox-v2.xv-data-table.xv-data-table-cell.xv-data-table-collapse.xv-data-table-row.xv-dropdown-v2.xv-dropdown-v2-item.xv-file-uploader.xv-footer.xv-header.xv-link-v2.xv-loader-v2.xv-login-modal.xv-modal-v2.xv-notification-v2.xv-number-input-v2.xv-overflow-menu-v2.xv-overflow-menu-v2-item.xv-progress-indicator-v2.xv-progress-indicator-v2-item.xv-tab-v2.xv-table-v2.xv-table-v2-cell.xv-table-v2-expand.xv-table-v2-row.xv-tabs-v2.xv-tag-v2.xv-text-input-v2.xv-toggle-tip.xv-tooltip-v2.entry.js.map
1255
3474
 
1256
- //# sourceMappingURL=xv-accordion-v2_27.entry.js.map
3475
+ //# sourceMappingURL=xv-accordion-v2_34.entry.js.map