xv-webcomponents 0.1.41 → 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.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{xv-accordion-v2_33.cjs.entry.js → xv-accordion-v2_34.cjs.entry.js} +142 -43
- package/dist/cjs/xv-accordion-v2_34.cjs.entry.js.map +1 -0
- package/dist/cjs/xv-webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/xv-data-table/_vars.js +3 -0
- package/dist/collection/components/xv-data-table/_vars.js.map +1 -0
- package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.css +61 -1
- package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +104 -2
- package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js.map +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.css +7 -0
- package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +101 -0
- package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js.map +1 -0
- package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.css +67 -0
- package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +313 -1
- package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js.map +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table.css +67 -14
- package/dist/collection/components/xv-data-table/xv-data-table.js +19 -35
- package/dist/collection/components/xv-data-table/xv-data-table.js.map +1 -1
- package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
- package/dist/collection/components/xv-dropdown/xv-dropdown.js +1 -1
- package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +2 -2
- package/dist/collection/components/xv-footer/xv-footer.js +1 -1
- package/dist/collection/components/xv-header/xv-header.js +1 -1
- package/dist/collection/components/xv-link/xv-link.css +1 -0
- package/dist/collection/components/xv-link/xv-link.js +1 -1
- package/dist/collection/components/xv-modal/xv-modal.js +1 -1
- package/dist/collection/components/xv-notification/xv-notification.js +1 -1
- package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
- package/dist/collection/components/xv-table/_vars.js +0 -6
- package/dist/collection/components/xv-table/_vars.js.map +1 -1
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +4 -4
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +1 -1
- package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
- package/dist/collection/components/xv-table/xv-table.js +1 -1
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
- package/dist/collection/components/xv-tag/xv-tag.js +1 -1
- package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
- package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
- package/dist/collection/components/xv-tooltip/xv-tooltip.js +1 -1
- package/dist/collection/types/enum.js +6 -0
- package/dist/collection/types/enum.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{xv-accordion-v2_33.entry.js → xv-accordion-v2_34.entry.js} +142 -44
- package/dist/esm/xv-accordion-v2_34.entry.js.map +1 -0
- package/dist/esm/xv-webcomponents.js +1 -1
- package/dist/types/components/xv-data-table/_vars.d.ts +11 -0
- package/dist/types/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.d.ts +7 -0
- package/dist/types/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.d.ts +9 -0
- package/dist/types/components/xv-data-table/xv-data-table-row/xv-data-table-row.d.ts +21 -0
- package/dist/types/components/xv-data-table/xv-data-table.d.ts +2 -2
- package/dist/types/components/xv-table/_vars.d.ts +1 -5
- package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +2 -1
- package/dist/types/components.d.ts +160 -8
- package/dist/types/types/enum.d.ts +5 -0
- package/dist/xv-webcomponents/p-9c06f44c.entry.js +2 -0
- package/dist/xv-webcomponents/p-9c06f44c.entry.js.map +1 -0
- package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/xv-accordion-v2_33.cjs.entry.js.map +0 -1
- package/dist/esm/xv-accordion-v2_33.entry.js.map +0 -1
- package/dist/xv-webcomponents/p-ec72208c.entry.js +0 -2
- package/dist/xv-webcomponents/p-ec72208c.entry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["xvAccordionCss","XvAccordion","constructor","hostRef","this","multiple","xvId","uidGenerator","opened","Set","toggleItem","value","has","delete","clear","add","accordionChange","emit","id","componentWillLoad","render","h","Host","key","class","xvAccordionItemCss","XvAccordionItem","disabled","isOpen","handleAccordionChange","event","parentAccordionId","_a","el","closest","getAttribute","detail","toggle","_b","call","onClick","bind","label","SIZE_VAR","XV_SORT_DIR","xvButtonV2Css","XvButton","variant","size","MD","loading","block","type","hasLeftIcon","hasRightIcon","hasContent","handleSlotChangeLeft","target","assignedElements","length","handleSlotChangeContent","assignedNodes","some","node","nodeType","Node","ELEMENT_NODE","TEXT_NODE","textContent","trim","handleSlotChangeRight","handleClick","internals","form","requestSubmit","reset","part","undefined","ariaLabel","XL","LG","name","onSlotchange","xvCardCss","XvCard","media","src","alt","header","body","footer","xvCheckboxCss","XvCheckbox","checked","indeterminate","readonly","required","partial","hasFocus","onInput","e","inputEvent","onChange","changeEvent","onFocus","focusEvent","onBlur","blurEvent","attachInternals","connectedCallback","setFormValue","onCheckedChange","newValue","ref","inputEl","error","componentDidLoad","componentDidUpdate","formResetCallback","formStateRestoreCallback","state","xvDataTableCss","XvDataTable","columnWidths","hover","role","map","width","style","xvDataTableCellCss","XvDataTableCell","handleSort","sort","NONE","ASC","DESC","forEach","parentElement","children","cell","hasAttribute","setAttribute","sortChange","multiline","align","isNaN","XV_DATA_TABLE_TAG","XV_DATA_TABLE_ROW_TAG","xvDataTableCollapseCss","XvDataTableCollapse","collapsed","setCollapsed","collapsedChange","table","rows","querySelectorAll","row","className","expanded","xvDataTableRowCss","XvDataTableRow","collapseClick","async","collapse","collapseEl","setInitialState","querySelector","checkedChangeHandle","check","expandable","collapsable","open","onEventChange","DropdownItemSelector","xvDropdownCss","XvDropdown","selected","selectedMap","Map","setSelected","optionNodes","values","Array","from","options","v","text","handleOpen","handleClickOutside","ev","contains","addListeners","document","addEventListener","removeListeners","removeEventListener","setDefaultValues","defaultValue","setTimeout","option","dropdownItemData","innerText","setAttr","set","openChangeHandle","handleItemSelected","hasItem","optionElements","changeSelection","tabindex","info","message","join","placeholder","renderIcon","focusable","preserveAspectRatio","xmlns","fill","height","viewBox","d","helper","warning","disconnectedCallback","XS","xvDropdownItemCss","XvDropdownItem","itemSelected","XvFileUploaderVariants","xvFileUploaderCss","XvFileUploader","BUTTON","accept","maxFileSizeMB","maxFiles","files","loadingStates","errors","dragActive","errorMessages","onFileSelect","input","selectedFiles","handleFiles","onDrop","preventDefault","droppedFiles","dataTransfer","validation","filesChange","onDragOver","onDragLeave","maxSize","seenFileNames","uniqueFiles","file","push","extension","split","pop","toLowerCase","isAccepted","normalized","replace","removeFile","index","slice","fileInput","description","click","addText","active","hidden","withError","_renderLoaderState","_renderError","errorIcon","_c","Fragment","slot","primary","secondary","xvFooterCss","Xvfooter","htmlContent","response","fetch","console","innerHTML","xvHeaderCss","XvHeader","showLoginModal","openLoginModal","closeLoginModal","parser","DOMParser","doc","parseFromString","mixedMenu","allCategoriesGenerals","allCategoriesContainer","appendChild","href","display","visible","onClose","action","method","autocomplete","xvLinkCss","XvLink","preventLinkHandler","stopPropagation","xvLoaderCss","XvLoader","show","spinner","xvLoginModalCss","XvLoginModal","oauthProviders","bookNow","returnUrl","passwordLoginEnabled","oauthLoginEnabled","passwordRegistrationEnabled","configurationName","xvMvcConfigName","contactUrl","handleClose","close","setReturnUrl","readMetaNavCookie","displayName","providerName","icon","buttonClass","params","URLSearchParams","window","location","search","url","get","includes","metaNavCookie","cookie","find","startsWith","cookieValue","decodeURIComponent","metaNavObj","JSON","parse","PasswordLoginEnabled","PasswordRegistrationEnabled","ConfigurationName","XvMvcConfigName","ContactUrl","warn","renderPasswordLogin","rel","renderOAuthProviders","provider","maxWidth","title","toString","renderFooter","encodeURIComponent","tabIndex","autoComplete","htmlFor","xvModalCss","XvModal","permanent","overflow","triggerEl","onBackdropClick","currentTarget","closeModal","removeTriggerListener","openModal","setupTrigger","shadowRoot","assigned","openChange","backdrop","modal_content","NOTIFICATION_VARIANTS","xvNotificationCss","XvNotification","INFO","dismissible","closeHandle","cls","ERROR","SUCCESS","WARNING","xvNumberInputCss","XvNumberInput","step","increment","max","setValue","decrement","min","handleInput","num","parseFloat","valueChange","control_input","xvOverflowMenuCss","XvOverflowMenu","position","handleSelectItem","onOpenToggle","selectItem","handleKeyDown","btn","list","OverflowMenuVariant","xvOverflowMenuItemCss","XvOverflowMenuItem","DEFAULT","itemClick","PROGRESS_VARIANTS","PROGRESS_ITEM_STATUS","xvProgressIndicatorCss","XvProgressIndicator","progress","updateChildItems","items","itemsCount","childElementCount","progressPerItem","item","itemProgressStart","status","localProgress","Math","DONE","IN_PROGRESS","NO_STARTED","line","xvProgressIndicatorItemCss","XvProgressIndicatorItem","xvTabCss","XvTab","xvTableCss","XvTable","selectedCount","handleCheckedChange","setColsSizeTemplate","colsSize","setProperty","batchVisible","xvTableCellCss","XvTableCell","XV_EXPANDABLE_KEY","XV_TABLE_TAG","xvTableExpandCss","XvTableExpand","handleExpand","expandableContent","xvTableRowCss","XvTableRow","checkHandle","selectRow","checkedChange","setInitialAttrs","tableEl","TAB_TAGS","TABS_VATIANT","xvTabsCss","XvTabs","tabElements","showArrows","collectTabs","TAB","tab","updateArrowVisibility","container","scrollWidth","clientWidth","updateTabClasses","i","classList","handleTabClick","activeChange","Number","scrollToActiveTab","scrollIntoView","behavior","inline","setTab","count","currentIdx","findIndex","nextIdx","nextTab","emptyMessage","componentDidRender","xvTagCss","XvTag","color","bg","closeable","closeHandler","closeClick","background","xvTextInputCss","XvTextInput","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","concat","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","nodeName","getWindow","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","applyStyles","_ref","Object","keys","elements","styles","attributes","assign","removeAttribute","effect","_ref2","initialStyles","strategy","margin","arrow","styleProperties","hasOwnProperty","property","attribute","applyStyles$1","enabled","phase","fn","requires","getBasePlacement","round","getUAString","uaData","navigator","userAgentData","brands","isArray","brand","version","userAgent","isLayoutViewport","test","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","x","offsetLeft","y","offsetTop","getLayoutRect","abs","parent","child","rootNode","getRootNode","next","isSameNode","parentNode","host","getComputedStyle","isTableElement","indexOf","getDocumentElement","documentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","rects","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","centerToReference","center","offset","axisProp","centerOffset","_options$element","arrow$1","requiresIfExists","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","devicePixelRatio","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","data","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","update","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","pageXOffset","scrollTop","pageYOffset","getWindowScrollBarX","getViewportRect","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","scrollHeight","direction","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","isBody","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","clientTop","clientLeft","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","invertDistance","skidding","distance","_options$offset","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","order","modifiers","visited","result","modifier","dep","depModifier","orderModifiers","orderedModifiers","debounce","pending","Promise","resolve","then","mergeByName","merged","current","existing","DEFAULT_OPTIONS","areValidElements","arguments","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","createPopper","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","m","runModifierEffects","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","destroy","onFirstUpdate","_ref$options","cleanupFn","noopFn","xvToggleTipCss","XvToggleTip","destroyPopper","popperInstance","requestAnimationFrame","setPopover","popoverEl","popover","xvTooltipCss","XvTooltip","onMouseEnter","onMouseLeave","tooltipEl"],"sources":["src/components/xv-accordion/xv-accordion.scss?tag=xv-accordion-v2&encapsulation=shadow","src/components/xv-accordion/xv-accordion.tsx","src/components/xv-accordion-item/xv-accordion-item.scss?tag=xv-accordion-v2-item&encapsulation=shadow","src/components/xv-accordion-item/xv-accordion-item.tsx","src/types/enum.ts","src/components/xv-button/xv-button-v2.scss?tag=xv-button-v2&encapsulation=shadow","src/components/xv-button/xv-button.tsx","src/components/xv-card/xv-card.scss?tag=xv-card-v2&encapsulation=shadow","src/components/xv-card/xv-card.tsx","src/components/xv-checkbox/xv-checkbox.scss?tag=xv-checkbox-v2&encapsulation=shadow","src/components/xv-checkbox/xv-checkbox.tsx","src/components/xv-data-table/xv-data-table.scss?tag=xv-data-table&encapsulation=shadow","src/components/xv-data-table/xv-data-table.tsx","src/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.scss?tag=xv-data-table-cell&encapsulation=shadow","src/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.tsx","src/components/xv-data-table/_vars.ts","src/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.scss?tag=xv-data-table-collapse&encapsulation=shadow","src/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.tsx","src/components/xv-data-table/xv-data-table-row/xv-data-table-row.scss?tag=xv-data-table-row&encapsulation=shadow","src/components/xv-data-table/xv-data-table-row/xv-data-table-row.tsx","src/components/xv-dropdown/_vars.ts","src/components/xv-dropdown/xv-dropdown.scss?tag=xv-dropdown-v2&encapsulation=shadow","src/components/xv-dropdown/xv-dropdown.tsx","src/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.scss?tag=xv-dropdown-v2-item&encapsulation=shadow","src/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.tsx","src/components/xv-file-uploader/_vars.ts","src/components/xv-file-uploader/xv-file-uploader.scss?tag=xv-file-uploader&encapsulation=shadow","src/components/xv-file-uploader/xv-file-uploader.tsx","src/components/xv-footer/xv-footer.scss?tag=xv-footer","src/components/xv-footer/xv-footer.tsx","src/components/xv-header/xv-header.scss?tag=xv-header","src/components/xv-header/xv-header.tsx","src/components/xv-link/xv-link.scss?tag=xv-link-v2&encapsulation=shadow","src/components/xv-link/xv-link.tsx","src/components/xv-loader/xv-loader.scss?tag=xv-loader-v2&encapsulation=shadow","src/components/xv-loader/xv-loader.tsx","src/components/xv-login-modal/xv-login-modal.scss?tag=xv-login-modal&encapsulation=shadow","src/components/xv-login-modal/xv-login-modal.tsx","src/components/xv-modal/xv-modal.scss?tag=xv-modal-v2&encapsulation=shadow","src/components/xv-modal/xv-modal.tsx","src/components/xv-notification/_vars.ts","src/components/xv-notification/xv-notification.scss?tag=xv-notification-v2&encapsulation=shadow","src/components/xv-notification/xv-notification.tsx","src/components/xv-number-input/xv-number-input.scss?tag=xv-number-input-v2&encapsulation=shadow","src/components/xv-number-input/xv-number-input.tsx","src/components/xv-overflow-menu/xv-overflow-menu.scss?tag=xv-overflow-menu-v2&encapsulation=shadow","src/components/xv-overflow-menu/xv-overflow-menu.tsx","src/components/xv-overflow-menu/_vars.ts","src/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.scss?tag=xv-overflow-menu-v2-item&encapsulation=shadow","src/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.tsx","src/components/xv-progress-indicator/_vars.ts","src/components/xv-progress-indicator/xv-progress-indicator.scss?tag=xv-progress-indicator-v2&encapsulation=shadow","src/components/xv-progress-indicator/xv-progress-indicator.tsx","src/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.scss?tag=xv-progress-indicator-v2-item&encapsulation=shadow","src/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.tsx","src/components/xv-tabs/xv-tab/xv-tab.scss?tag=xv-tab-v2&encapsulation=shadow","src/components/xv-tabs/xv-tab/xv-tab.tsx","src/components/xv-table/xv-table.scss?tag=xv-table-v2&encapsulation=shadow","src/components/xv-table/xv-table.tsx","src/components/xv-table/xv-table-cell/xv-table-cell.scss?tag=xv-table-v2-cell&encapsulation=shadow","src/components/xv-table/xv-table-cell/xv-table-cell.tsx","src/components/xv-table/_vars.ts","src/components/xv-table/xv-table-expand/xv-table-expand.scss?tag=xv-table-v2-expand&encapsulation=shadow","src/components/xv-table/xv-table-expand/xv-table-expand.tsx","src/components/xv-table/xv-table-row/xv-table-row.scss?tag=xv-table-v2-row&encapsulation=shadow","src/components/xv-table/xv-table-row/xv-table-row.tsx","src/components/xv-tabs/_vars.ts","src/components/xv-tabs/xv-tabs.scss?tag=xv-tabs-v2&encapsulation=shadow","src/components/xv-tabs/xv-tabs.tsx","src/components/xv-tag/xv-tag.scss?tag=xv-tag-v2&encapsulation=shadow","src/components/xv-tag/xv-tag.tsx","src/components/xv-text-input/xv-text-input.scss?tag=xv-text-input-v2&encapsulation=shadow","src/components/xv-text-input/xv-text-input.tsx","node_modules/@popperjs/core/lib/enums.js","node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","node_modules/@popperjs/core/lib/dom-utils/getWindow.js","node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","node_modules/@popperjs/core/lib/modifiers/applyStyles.js","node_modules/@popperjs/core/lib/utils/getBasePlacement.js","node_modules/@popperjs/core/lib/utils/math.js","node_modules/@popperjs/core/lib/utils/userAgent.js","node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","node_modules/@popperjs/core/lib/dom-utils/contains.js","node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","node_modules/@popperjs/core/lib/utils/within.js","node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","node_modules/@popperjs/core/lib/utils/expandToHashMap.js","node_modules/@popperjs/core/lib/modifiers/arrow.js","node_modules/@popperjs/core/lib/utils/getVariation.js","node_modules/@popperjs/core/lib/modifiers/computeStyles.js","node_modules/@popperjs/core/lib/modifiers/eventListeners.js","node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","node_modules/@popperjs/core/lib/utils/rectToClientRect.js","node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","node_modules/@popperjs/core/lib/utils/computeOffsets.js","node_modules/@popperjs/core/lib/utils/detectOverflow.js","node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","node_modules/@popperjs/core/lib/modifiers/flip.js","node_modules/@popperjs/core/lib/modifiers/hide.js","node_modules/@popperjs/core/lib/modifiers/offset.js","node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","node_modules/@popperjs/core/lib/utils/getAltAxis.js","node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","node_modules/@popperjs/core/lib/utils/orderModifiers.js","node_modules/@popperjs/core/lib/utils/debounce.js","node_modules/@popperjs/core/lib/utils/mergeByName.js","node_modules/@popperjs/core/lib/createPopper.js","node_modules/@popperjs/core/lib/popper.js","src/components/xv-toggle-tip/xv-toggle-tip.scss?tag=xv-toggle-tip&encapsulation=shadow","src/components/xv-toggle-tip/xv-toggle-tip.tsx","src/components/xv-tooltip/xv-tooltip.scss?tag=xv-tooltip-v2","src/components/xv-tooltip/xv-tooltip.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h, Event, EventEmitter, Method, State, Prop } from '@stencil/core';\nimport { uidGenerator } from '../../utils/utils';\n\n@Component({\n tag: 'xv-accordion-v2',\n styleUrl: 'xv-accordion.scss',\n shadow: true,\n})\nexport class XvAccordion {\n @Prop() multiple: boolean = false;\n @Prop() xvId: string = uidGenerator();\n @Prop({ mutable: true }) value: string;\n @State() opened: Set<string> = new Set();\n @Event() accordionChange: EventEmitter<{ opened: Set<string>, id: string }>;\n\n @Method()\n async toggleItem(value: string) {\n if (this.opened.has(value)) {\n this.opened.delete(value);\n } else {\n if (!this.multiple) this.opened.clear();\n this.value = value;\n this.opened.add(this.value);\n }\n\n this.accordionChange.emit({ opened: this.opened, id: this.xvId });\n\n return { opened: this.opened, id: this.xvId };\n }\n\n componentWillLoad() {\n if (this.value) {\n return this.toggleItem(this.value);\n }\n }\n\n render() {\n return (\n <Host class=\"xv-accordion\" data-id={this.xvId}>\n <slot />\n </Host>\n );\n }\n}\n",":host {\n border-top: 1px solid var(--border-subtle-01);\n display: flex;\n flex-direction: column;\n font-family: var(--ff-body, inherit);\n}\n\n:host(.disabled) {\n .label {\n color: var(--text-disabled);\n &:hover {\n cursor: initial;\n background-color: transparent;\n }\n }\n}\n\n.label {\n padding: 14px 16px;\n display: inline-flex;\n align-items: center;\n column-gap: 20px;\n justify-content: space-between;\n text-align: left;\n color: var(--text-primary);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.16px;\n background-color: transparent;\n transition: background-color 200ms ease-in-out;\n &>span {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n }\n\n &:hover {\n cursor: pointer;\n background-color: var(--layer-hover-01);\n }\n\n &:after {\n content: '';\n border: solid black;\n border-width: 0 2px 2px 0;\n display: inline-block;\n padding: 4.66px;\n transition: transform 100ms ease-in-out;\n transform: rotate(45deg);\n }\n\n &.opened:after {\n transform: rotate(-135deg);\n }\n}\n\n.content {\n padding: 0 16px;\n text-align: left;\n color: var(--text-primary);\n font-size: 14px;\n overflow: hidden;\n max-height: 0;\n transition: max-height 300ms ease-in-out, padding 250ms ease 50ms;\n &.opened {\n padding: 14px 16px;\n max-height: 500px;\n }\n}\n","import { Component, Host, h, Element, Prop, State, Listen, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-accordion-v2-item',\n styleUrl: 'xv-accordion-item.scss',\n shadow: true,\n})\nexport class XvAccordionItem {\n @Element() el: HTMLElement;\n @Prop() disabled: boolean = false;\n @Prop() label: string;\n @Prop() value: string;\n @State() isOpen: boolean = false;\n @Event() itemToggle: EventEmitter;\n\n @Listen('accordionChange', { target: 'body' })\n handleAccordionChange(event: CustomEvent<{ opened: Set<string>, id: string }>) {\n const parentAccordionId = this.el.closest('[data-id]')?.getAttribute('data-id');\n if (event.detail.id !== parentAccordionId) return;\n this.isOpen = event.detail.opened.has(this.value);\n }\n\n toggle() {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n this.el.closest('xv-accordion-v2')?.toggleItem?.(this.value);\n }\n\n render() {\n return (\n <Host class={`${this.disabled ? 'disabled' : ''}`}>\n <label class={`label ${this.isOpen ? 'opened' : 'closed'}`} onClick={this.toggle.bind(this)}>\n <span>{this.label}</span>\n </label>\n <div class={`content ${this.isOpen ? 'opened' : 'closed'}`}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n","export enum SIZE_VAR {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n\nexport enum XV_SORT_DIR {\n ASC = 'asc',\n DESC = 'desc',\n NONE = 'none'\n}\n",":host {\n display: inline-block;\n}\n:host([block]) {\n display: block;\n width: 100%;\n}\n\n.xv-button {\n all: unset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-radius: 3px;\n font-size: var(--fz-md);\n font-family: var(--ff-body, Tahoma);\n font-style: normal;\n font-weight: 700;\n line-height: 128.571%;\n letter-spacing: 0.16px;\n cursor: pointer;\n position: relative;\n transition: background 0.2s, color 0.2s, border-color 0.2s;\n user-select: none;\n width: 100%;\n &:focus-visible {\n outline: 2px solid var(--focus);\n outline-offset: 2px;\n }\n\n // Base sizes\n &--xs {\n --xv-button-icon-size: 16px;\n\n padding: var(--spacing-02);\n height: var(--xv-button-icon-size);\n }\n\n &--sm {\n --xv-button-icon-size: 32px;\n padding: var(--spacing-03);\n height: var(--xv-button-icon-size);\n }\n\n &--md {\n --xv-button-icon-size: 40px;\n padding: var(--spacing-04);\n height: var(--xv-button-icon-size);\n }\n\n &--lg {\n --xv-button-icon-size: 48px;\n padding: var(--spacing-05);\n height: var(--xv-button-icon-size);\n }\n\n &--xl {\n --xv-button-icon-size: 60px;\n\n font-size: 1.1em;\n padding: var(--spacing-06);\n height: auto;\n }\n\n // Variant styles\n &--primary {\n background-color: var(--button-primary);\n color: var(--text-on-color);\n\n &:hover {\n background-color: var(--button-primary-hover);\n }\n\n &:active {\n background-color: var(--button-primary-active);\n }\n }\n\n &--accent {\n background-color: var(--button-accent);\n color: var(--text-on-color);\n\n &:hover {\n background-color: var(--button-accent-hover);\n }\n\n &:active {\n background-color: var(--button-accent-active);\n }\n }\n\n &--secondary {\n background-color: var(--button-secondary);\n border: 1px solid var(--border-subtle-01);\n\n &:hover {\n background-color: var(--button-secondary-hover);\n }\n\n &:active {\n background-color: var(--button-secondary-active);\n }\n }\n\n &--danger {\n background: var(--support-error);\n color: white;\n\n &:hover {\n background-color: #ba1b23;\n }\n\n &:active {\n background-color: #750e13;\n }\n\n &:disabled {\n background-color: var(--button-disabled);\n border-color: transparent;\n color: var(--text-on-color-disabled, #8B8B8B);\n }\n }\n\n &--tertiary {\n background-color: transparent;\n border: 1px solid var(--button-tertiary);\n\n &:hover {\n background-color: var(--button-tertiary-hover);\n }\n\n &:active {\n background-color: var(--button-tertiary-active);\n }\n\n &:disabled {\n color: var(--text-disabled);\n border-color: var(--button-disabled, #D1D1D1);\n background-color: transparent;\n }\n }\n\n &--ghost {\n background-color: transparent;\n color: var(--text-primary);\n\n &:hover {\n background-color: transparent;\n }\n\n &:active {\n background-color: rgba(139, 139, 139, 0.5);\n }\n\n &:disabled {\n color: var(--text-disabled);\n border-color: transparent;\n background-color: transparent;\n }\n }\n\n // Disabled & loading state\n &--primary:disabled,\n &--accent:disabled,\n &--secondary:disabled,\n &--danger:disabled {\n border-color: var(--border-subtle-01, #D1D1D1);\n background-color: var(--button-disabled, #D1D1D1);\n color: var(--text-on-color-disabled, #8B8B8B);\n }\n\n &--disabled {\n cursor: not-allowed;\n }\n\n // Loading state\n &--loading {\n pointer-events: none;\n opacity: 0.8;\n }\n\n // Label\n &__label {\n display: inline-flex;\n align-items: center;\n }\n\n // Loader\n &__loader {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n\n // Icon slots\n &__icon {\n display: inline-flex;\n align-items: center;\n }\n\n &--icon {\n &-left {\n .xv-button__icon--left {\n margin-inline-end: var(--spacing-05);\n }\n }\n\n &-right {\n .xv-button__icon--right {\n margin-inline-start: var(--spacing-05);\n }\n }\n\n // Button with icon only (no label)\n &-only {\n padding: 0;\n width: var(--xv-button-icon-size, 40px);\n height: var(--xv-button-icon-size, 40px);\n justify-content: center;\n\n .xv-button__icon {\n margin: 0;\n }\n }\n }\n}\n\n","import { Component, Prop, h, Element, State, Host, AttachInternals } from '@stencil/core';\r\nimport { SIZE_VAR } from '../../types/enum';\r\n\r\n\r\n@Component({\r\n tag: 'xv-button-v2',\r\n styleUrl: 'xv-button-v2.scss',\r\n shadow: true,\r\n formAssociated: true,\r\n})\r\nexport class XvButton {\r\n @Element() el: HTMLElement;\r\n\r\n /** Button label is optional you can use just inside content */\r\n @Prop({ reflect: true }) label?: string;\r\n /** Button variants */\r\n @Prop({ reflect: true }) variant: 'primary' | 'secondary' | 'ghost' | 'danger' | 'tertiary' = 'primary';\r\n /** Button size */\r\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\r\n /** Button disabled state */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n /** Button loading state */\r\n @Prop({ reflect: true }) loading: boolean = false;\r\n /** Button for full width */\r\n @Prop({ reflect: true }) block: boolean = false;\r\n /** Button type */\r\n @Prop({ reflect: true }) type: 'button' | 'submit' | 'reset' = 'button';\r\n\r\n @State() hasLeftIcon: boolean = false;\r\n @State() hasRightIcon: boolean = false;\r\n @State() hasContent: boolean = false;\r\n\r\n @AttachInternals() internals: ElementInternals;\r\n\r\n private handleSlotChangeLeft = (event: Event) => {\r\n this.hasLeftIcon = (event.target as HTMLSlotElement).assignedElements().length > 0;\r\n };\r\n\r\n private handleSlotChangeContent = (event: Event) => {\r\n this.hasContent = (event.target as HTMLSlotElement).assignedNodes().some(\r\n node =>\r\n node.nodeType === Node.ELEMENT_NODE ||\r\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== ''),\r\n );\r\n };\r\n\r\n private handleSlotChangeRight = (event: Event) => {\r\n this.hasRightIcon = (event.target as HTMLSlotElement).assignedElements().length > 0;\r\n };\r\n\r\n private handleClick = () => {\r\n if (this.type === 'submit') {\r\n this.internals.form?.requestSubmit();\r\n } else if (this.type === 'reset') {\r\n this.internals.form?.reset();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <button\r\n class={{\r\n 'xv-button': true,\r\n [`xv-button--${this.variant}`]: !!this.variant,\r\n [`xv-button--${this.size}`]: !!this.size,\r\n 'xv-button--disabled': this.disabled || this.loading,\r\n 'xv-button--block': this.block,\r\n 'xv-button--loading': this.loading,\r\n 'xv-button--icon-left': this.hasLeftIcon,\r\n 'xv-button--icon-right': this.hasRightIcon,\r\n 'xv-button--icon-only': !this.hasContent,\r\n }}\r\n part=\"button\"\r\n onClick={this.handleClick}\r\n type={this.type}\r\n disabled={this.disabled || this.loading}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n aria-label={this.el?.ariaLabel || 'XV button'}\r\n >\r\n {this.loading && (\r\n <xv-loader-v2 class=\"xv-button__loader\"\r\n size={this.size !== SIZE_VAR.XL ? this.size : SIZE_VAR.LG} />\r\n )}\r\n\r\n <span class=\"xv-button__icon xv-button__icon--left\">\r\n <slot name=\"icon-left\" onSlotchange={this.handleSlotChangeLeft}></slot>\r\n </span>\r\n\r\n <span class=\"xv-button__label\">\r\n <slot onSlotchange={this.handleSlotChangeContent}>\r\n {this.label}\r\n </slot>\r\n </span>\r\n\r\n <span class=\"xv-button__icon xv-button__icon--right\">\r\n <slot name=\"icon-right\" onSlotchange={this.handleSlotChangeRight}></slot>\r\n </span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n",":host {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n border: 1px solid var(--border-subtle-00);\n background: var(--layer-layer-02);\n box-shadow: 0 1px 3px 1px rgba(39, 52, 53, 0.15), 0 1px 2px 0 rgba(39, 52, 53, 0.30);\n font-family: var(--ff-body, inherit);\n overflow: visible !important;\n}\n\n:host(.xv-card_vertical) {\n //max-width: 298px;\n // TODO: wright down correct styling for card size\n width: 100%!important;\n}\n\n:host(.xv-card_horizontal) {\n flex-direction: row;\n display: flex;\n width: max-content;\n\n .xv-card_media {\n &__content, ::slotted([slot=\"media\"]) {\n min-height: 100%;\n max-height: 100%;\n max-width: 160px;\n min-width: 160px;\n }\n }\n}\n\n.xv-card {\n &_content {\n padding: 16px;\n display: flex;\n flex-direction: column;\n flex: 1;\n text-align: left;\n }\n\n &_media {\n &__content, ::slotted([slot=\"media\"]) {\n max-width: 100%;\n min-width: 100%;\n min-height: 199px;\n max-height: 199px;\n object-fit: cover;\n object-position: center;\n }\n }\n\n &_header {\n &__content, ::slotted([slot=\"header\"]) {\n margin: 0 0 8px;\n color: var(--text-primary);\n font-size: 16px;\n font-style: normal;\n font-weight: 700;\n line-height: 24px;\n letter-spacing: -0.6px;\n }\n }\n\n &_body {\n flex: 1;\n &__content, ::slotted([slot=\"body\"]) {\n margin: 0 0 8px;\n color: var(--text-secondary);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: -0.1px;\n }\n }\n\n &_footer {}\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-card-v2',\n styleUrl: 'xv-card.scss',\n shadow: true,\n})\nexport class XvCard {\n @Prop() variant: 'horizontal' | 'vertical' = 'vertical';\n @Prop() media: string;\n @Prop() header: string;\n @Prop() body: string;\n @Prop() footer: string;\n render() {\n return (\n <Host class={`xv-card xv-card_${this.variant}`} part={this.variant}>\n <div class=\"xv-card_media\">\n <slot name=\"media\">\n {this.media && <img class=\"xv-card_media__content\" src={this.media} alt={this.header} />}\n </slot>\n </div>\n\n <div class=\"xv-card_content\">\n <div class=\"xv-card_header\">\n <slot name=\"header\">\n {this.header && <p class=\"xv-card_header__content\">{this.header}</p>}\n </slot>\n </div>\n <div class=\"xv-card_body\">\n <slot name=\"body\">\n {this.body && <p class=\"xv-card_body__content\">{this.header}</p>}\n </slot>\n </div>\n <div class=\"xv-card_footer\">\n <slot name=\"footer\">{this.footer}</slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n","\n:host {\n --checkbox-size: max(1rem, 16px);\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: column;\n overflow: visible !important;\n}\n\n:host([error]) {\n .xv-checkbox .checkmark {\n border-color: var(--text-error, #D62512);\n }\n}\n\n.error,\n[name=\"info\"] {\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n font-size: var(--fz-sm, 12px);\n font-family: var(--ff-body, Tahoma);\n line-height: 133.333%;\n letter-spacing: 0.32px;\n}\n\n.error {\n margin-top: var(--gap-xs, 5px);\n color: var(--text-error, #D62512);\n &::before {\n margin-right: var(--gap-xs, 5px);\n content: \"!\";\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n font-size: var(--fz-sm, 12px);\n font-weight: bold;\n color: white;\n background-color: var(--text-error, #D62512);\n border-radius: 50%;\n }\n}\n\n.xv-checkbox {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n\n input[type='checkbox'] {\n position: absolute;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n margin: 0;\n padding: 0;\n opacity: 0;\n pointer-events: none;\n box-sizing: border-box;\n }\n\n .checkmark {\n width: var(--checkbox-size);\n min-width: var(--checkbox-size);\n height: var(--checkbox-size);\n min-height: var(--checkbox-size);\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 1.4px solid var(--icon-primary, #D1D1D1);\n border-radius: 2px;\n background-color: var(--background, #FFF);\n transition: all 0.2s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n input:checked + .checkmark {\n background-color: var(--background-brand, #97BF0D);\n border-color: var(--background-brand, #97BF0D);\n &:not(.checkmark-partial)::after {\n content: '';\n position: absolute;\n width: calc(var(--checkbox-size) / 4);\n height: calc(var(--checkbox-size) / 2.5);\n border: solid var(--background, #FFF);\n margin-bottom: calc(var(--checkbox-size) / 10);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n display: block;\n }\n &.checkmark-partial::after {\n content: '';\n position: absolute;\n width: calc(var(--checkbox-size) / 3);\n height: calc(var(--checkbox-size) / 10);\n background-color: var(--background, #FFF);\n }\n }\n\n input:focus + .checkmark {\n outline: 1.4px solid var(--focus, #8B8B8B);\n }\n\n .label {\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 128.571%;\n letter-spacing: 0.16px;\n &_str,\n ::slotted(*) {\n margin-left: 8px;\n }\n }\n\n &.readonly {\n cursor: initial;\n\n input:checked + .checkmark {\n background-color: var(--background, #FFF);\n border: 1.4px solid var(--icon-disabled, #D1D1D1);\n &:after {\n border-color: var(--icon-primary, #131313);\n }\n\n &-partial:after {\n background-color: var(--icon-primary, #131313);\n }\n }\n\n .checkmark {\n border: 1.4px solid var(--icon-disabled, #D1D1D1);\n }\n\n .label {\n color: var(--text-primary, #333);\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n .checkmark {\n border: 1.4px solid var(--icon-disabled, #D1D1D1);\n }\n\n .label {\n color: var(--text-disabled, rgba(19, 19, 19, 0.25));\n }\n }\n}\n","import { Component, h, Element, Prop, State, Event, EventEmitter, Watch, Host } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-checkbox-v2',\n styleUrl: 'xv-checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class XvCheckbox {\n private inputEl: HTMLInputElement;\n private internals: ElementInternals;\n\n @Element() el!: HTMLElement;\n\n /**\n * Default checked status\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false;\n /**\n * Using for forms\n */\n @Prop({ reflect: true }) indeterminate: boolean = false;\n /**\n * Disabled status\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n /**\n * Input name\n */\n @Prop({ reflect: true }) name: string;\n /**\n * Input value\n */\n @Prop({ reflect: true }) value: string = 'on';\n /**\n * Input readonly\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n /**\n * The same like default checkbox prop\n */\n @Prop({ reflect: true }) required: boolean = false;\n /**\n * Change checkmark icon to minus\n */\n @Prop({ reflect: true }) partial: boolean = false;\n /**\n * Can be used like property or like slot\n */\n @Prop() label: string;\n\n @Prop({ reflect: true }) size?: SIZE_VAR;\n @Prop({ reflect: true }) error?: string | boolean;\n\n @State() hasFocus: boolean = false;\n /**\n * event 'onEventChange'\n */\n @Event({ eventName: 'eventChange' }) changeEvent: EventEmitter<boolean>;\n /**\n * event 'onEventInput'\n */\n @Event({ eventName: 'eventInput' }) inputEvent: EventEmitter<boolean>;\n /**\n * event 'onEventFocus'\n */\n @Event({ eventName: 'eventFocus' }) focusEvent: EventEmitter<void>;\n /**\n * event 'onEventBlur'\n */\n @Event({ eventName: 'eventBlur' }) blurEvent: EventEmitter<void>;\n\n constructor() {\n this.internals = (this.el as any).attachInternals?.() || {};\n }\n\n connectedCallback() {\n if (this.internals?.setFormValue) {\n this.internals.setFormValue(this.checked ? this.value : null);\n }\n }\n\n @Watch('checked')\n onCheckedChange(newValue: boolean) {\n if (this.internals?.setFormValue) {\n this.internals.setFormValue(newValue ? this.value : null);\n }\n }\n\n private onInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.checked = target.checked;\n this.inputEvent.emit(this.checked);\n };\n\n private onChange = (e: Event) => {\n if (this.disabled || this.readonly) return;\n const target = e.target as HTMLInputElement;\n this.checked = target.checked;\n this.changeEvent.emit(this.checked);\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusEvent.emit();\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.blurEvent.emit();\n };\n\n render() {\n return (\n <Host>\n <label class={{ 'xv-checkbox': true, disabled: this.disabled, readonly: this.readonly }}>\n <input\n ref={el => (this.inputEl = el)}\n type=\"checkbox\"\n readonly={this.readonly}\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled || this.readonly}\n required={this.required}\n indeterminate={this.indeterminate}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n />\n <span class={`checkmark ${this.partial ? 'checkmark-partial' : ''}`} />\n <div class=\"label\">\n <slot>{this.label && <span class=\"label_str\">{this.label}</span>}</slot>\n </div>\n </label>\n <slot name=\"info\" />\n {!!this.error && <span class=\"error\">{this.error}</span>}\n </Host>\n );\n }\n\n componentDidLoad() {\n if (this.indeterminate) {\n this.inputEl.indeterminate = true;\n }\n }\n\n componentDidUpdate() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n formResetCallback() {\n this.checked = false;\n }\n\n formStateRestoreCallback(state: string) {\n this.checked = state === this.value;\n }\n}\n",":host {\n --xv-data-table-border-width: 1px;\n --xv-data-table-border-color: var(--border-subtle-01, #D1D1D1);\n --xv-data-table-padding-x: var(--spacing-05, 16px);\n --xv-data-table-padding-y: var(--spacing-05, 16px);\n --xv-data-table-row-bg: transparent;\n\n //display: contents;\n width: inherit;\n text-align: left;\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 18px;\n letter-spacing: 0.16px;\n @media screen and (max-width: 980px) {\n display: block;\n position: relative;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--layer-accent-03) transparent;\n ::slotted([slot=\"title\"]),\n &>table {\n min-width: 1000px;\n }\n }\n\n .bar {\n position: sticky;\n left: 0;\n &_batch {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: unset;\n user-select: unset;\n z-index: 2;\n background-color: var(--interactive-01, #273435);\n color: var(--text-on-color, #fff);\n border-radius: 3px 3px 0 0;\n display: flex;\n align-items: center;\n }\n\n &_toolbar {\n z-index: 1;\n border-radius: 3px 3px 0 0;\n }\n }\n\n ::slotted([slot=\"title\"]) {\n margin: 0!important;\n color: var(--text-primary, #333)!important;\n font-family: var(--ff-heading, \"Gill Sans\")!important;\n font-size: var(--fz-xl, 21px)!important;\n text-align: left;\n font-style: normal!important;\n font-weight: 400!important;\n line-height: normal!important;\n padding: var(--spacing-05) var(--spacing-05) var(--spacing-06) !important;\n }\n\n ::slotted([slot=\"toolbar\"]) {\n margin-bottom: var(--spacing-03);\n }\n\n &>table {\n width: inherit;\n border-collapse: collapse;\n table-layout: fixed;\n border-left: 1px solid var(--xv-data-table-border-color);\n border-right: 1px solid var(--xv-data-table-border-color);\n }\n\n &>caption {\n display: contents;\n }\n}\n\n:host([block]) {\n width: 100%;\n &>table {\n table-layout: fixed;\n }\n}\n\n:host([size=\"xs\"]) {\n --xv-data-table-padding-x: var(--spacing-02, 4px);\n --xv-data-table-padding-y: var(--spacing-02, 4px);\n}\n:host([size=\"sm\"]) {\n --xv-data-table-padding-x: var(--spacing-04, 12px);\n --xv-data-table-padding-y: var(--spacing-03, 8px);\n}\n:host([size=\"md\"]) {\n --xv-data-table-padding-x: var(--spacing-05, 16px);\n --xv-data-table-padding-y: var(--spacing-05, 16px);\n}\n:host([size=\"lg\"]) {\n --xv-data-table-padding-x: var(--spacing-05, 16px);\n --xv-data-table-padding-y: var(--spacing-06, 24px);\n}\n:host([size=\"xl\"]) {\n --xv-data-table-padding-x: var(--spacing-06, 24px);\n --xv-data-table-padding-y: var(--spacing-07, 32px);\n}\n","import { Component, h, Host, Prop, Element } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-data-table',\n styleUrl: 'xv-data-table.scss',\n shadow: true,\n})\nexport class XvDataTable {\n @Element() el: HTMLElement;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() block?: boolean;\n @Prop() columnWidths: (string | null)[] = [];\n @Prop() hover: boolean = false;\n\n render() {\n return (\n <Host class=\"xv-data-table\">\n <caption>\n <slot name=\"title\" />\n </caption>\n <div class=\"bar\">\n <div class=\"bar_batch\">\n <slot name=\"batch\" />\n </div>\n <div class=\"bar_toolbar\">\n <slot name=\"toolbar\" />\n </div>\n </div>\n <table role=\"table\">\n {this.columnWidths.length > 0 && (\n <colgroup>\n {this.columnWidths.map((width = 'auto') => <col style={{ width }} />)}\n </colgroup>\n )}\n\n <slot />\n </table>\n </Host>\n );\n }\n}\n",":host {\n display: table-cell;\n border-style: solid;\n border-left-width: 0;\n border-right-width: 0;\n border-top-width: var(--xv-data-table-border-width, 0);\n border-bottom-width: var(--xv-data-table-border-width, 0);\n border-color: var(--xv-data-table-border-color, transparent);\n padding-inline: var(--xv-data-table-padding-x, 0);\n padding-block: var(--xv-data-table-padding-y, 0);\n vertical-align: middle;\n word-break: break-all;\n font-style: normal;\n font-weight: 400;\n\n .line-clamp {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n:host(:not(.multiline)) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ::slotted(*) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n// region Sorting styles\n:host([sort]) {\n position: relative;\n cursor: pointer;\n user-select: none;\n &:before, &:after {\n font-size: 12px;\n line-height: 10px;\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 8px;\n pointer-events: none;\n transition: 350ms ease-in-out opacity;\n opacity: 0;\n }\n\n &:before {\n content: \"▲\";\n top: 50%;\n transform: translateY(calc(-50% - 5px));\n }\n\n &::after {\n content: \"▼\";\n top: 50%;\n transform: translateY(calc(-50% + 5px));\n }\n}\n:host([sort]:hover) {\n background-color: var(--layer-accent-hover-01, #E3E3E3);\n &::before, &::after {\n opacity: 1;\n }\n}\n:host([sort=\"asc\"]) {\n background-color: var(--layer-accent-active-01, #D1D1D1);\n &::before {\n opacity: 1;\n }\n\n &::after {\n display: none;\n }\n}\n:host([sort=\"desc\"]) {\n background-color: var(--layer-accent-active-01, #D1D1D1);\n &::before {\n display: none;\n }\n\n &::after {\n opacity: 1;\n }\n}\n// endregion\n","import { Component, Event, EventEmitter, Element, h, Host, Listen, Prop } from '@stencil/core';\nimport { forEach, uidGenerator } from '../../../utils/utils';\nimport { XV_SORT_DIR } from '../../../types/enum';\n\n@Component({\n tag: 'xv-data-table-cell',\n styleUrl: 'xv-data-table-cell.scss',\n shadow: true,\n})\nexport class XvDataTableCell {\n @Element() el: HTMLElement;\n @Prop({ mutable: true }) name?: string;\n @Prop({ reflect: true, mutable: true }) sort?: XV_SORT_DIR | '';\n @Prop() multiline: number;\n @Prop() width?: string;\n @Prop() align?: 'left' | 'right' | 'center';\n\n @Event({ eventName: 'sortChange' }) sortChange: EventEmitter<XV_SORT_DIR>;\n\n @Listen('click')\n handleSort() {\n if (this.sort === undefined) return;\n let sort: XV_SORT_DIR | '' = this.sort;\n if (this.sort === '') sort = XV_SORT_DIR.NONE;\n\n this.sort = sort === XV_SORT_DIR.NONE ?\n XV_SORT_DIR.ASC : sort === XV_SORT_DIR.ASC ?\n XV_SORT_DIR.DESC : XV_SORT_DIR.NONE;\n\n forEach(this.el.parentElement.children, (cell) => {\n if (cell !== this.el && cell.hasAttribute('sort')) {\n cell.setAttribute('sort', 'none');\n }\n });\n\n if (!this.name) this.name = uidGenerator();\n this.sortChange.emit(this.sort);\n };\n\n render() {\n return (\n <Host\n role=\"cell\"\n style={{ width: this.width }}\n class={{\n multiline: this.multiline !== undefined,\n [`align--${this.align}`]: !!this.align\n }}\n >\n {!this.multiline || isNaN(this.multiline) ? <slot /> : (\n <div class=\"line-clamp\" style={{ ['-webkit-line-clamp']: `${this.multiline}` }}>\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n","\nexport interface XvDataTableCheck {\n name: string;\n checked: boolean;\n value?: string | number | object;\n partial?: boolean;\n header?: boolean;\n footer?: boolean;\n expandable?: boolean;\n}\n\nexport const XV_DATA_TABLE_TAG = 'xv-data-table';\nexport const XV_DATA_TABLE_ROW_TAG = 'xv-data-table-row';\n",":host([collapsed]) {\n display: none;\n}\n\n:host([expanded]) {\n display: contents;\n}\n","import { Component, Host, h, Prop, Element, Method, Event, EventEmitter } from '@stencil/core';\nimport { XV_DATA_TABLE_ROW_TAG, XV_DATA_TABLE_TAG } from '../_vars';\n\n@Component({\n tag: 'xv-data-table-collapse',\n styleUrl: 'xv-data-table-collapse.scss',\n shadow: true,\n})\nexport class XvDataTableCollapse {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) collapsed: boolean = false;\n @Event({ eventName: 'collapsedChange' }) collapsedChange: EventEmitter<boolean>;\n\n @Method()\n async setCollapsed(collapsed: boolean): Promise<boolean> {\n this.collapsed = collapsed;\n this.collapsedChange.emit(this.collapsed);\n\n return this.collapsed;\n }\n\n componentWillLoad() {\n const table = this.el.closest(XV_DATA_TABLE_TAG);\n const rows = table.querySelectorAll(XV_DATA_TABLE_ROW_TAG);\n rows.forEach((row) => row?.setAttribute('collapsable', ''));\n }\n\n render() {\n return (\n <Host id={this.el.id}\n part=\"xv-collapse\"\n class={this.el.className}\n collapsed={this.collapsed}\n expanded={!this.collapsed}>\n <slot></slot>\n </Host>\n );\n }\n}\n",":host {\n display: table-row;\n background-color: var(--xv-data-table-row-bg, transparent);\n transition: .2s ease-in-out background-color;\n .cell-control {\n font-size: 8px;\n max-width: 16px;\n position: relative;\n padding-left: calc(var(--xv-data-table-padding-x) + (var(--xv-data-table-padding-x) + 10px + 1em));\n overflow: visible;\n &_collapse {\n font-size: inherit;\n width: 1em;\n height: 1em;\n margin: 0;\n padding: 0;\n position: absolute;\n overflow: visible;\n background-color: transparent;\n outline: none;\n top: calc(50% - 0.7em);\n left: var(--xv-data-table-padding-x);\n display: inline-flex;\n border-top: none;\n border-left: none;\n border-right: 2px solid var(--icon-primary, #333);\n border-bottom: 2px solid var(--icon-primary, #333);\n transform: rotate(45deg);\n transform-origin: center center;\n transition: .2s ease-in-out transform, .2s ease-in-out opacity;\n cursor: pointer;\n box-sizing: content-box;\n &:active {\n opacity: 0.4;\n }\n &.open {\n transform: rotate(-135deg);\n }\n }\n\n &_checkbox {\n display: flex;\n }\n }\n}\n\n:host(.hover:not([header]):hover) {\n background-color: var(--layer-hover-01, #E9E9E9);\n}\n\n:host([header]) {\n background-color: var(--layer-accent-01, #F7F7F7);\n}\n\n:host(.checked) {\n background-color: var(--layer-selected-01, #E3E3E3);\n}\n\n:host(.hover.checked:hover) {\n background-color: var(--layer-selected-hover-01, #DADADA);\n}\n\n:host([footer]),\n:host([footer]:hover),\n:host([footer].hover),\n:host([footer].hover:hover) {\n background-color: var(--layer-accent-02, #E3E3E3);\n}\n\n:host([disabled]) {\n opacity: 0.5;\n}\n","import { Component, h, Host, Prop, Element, State, Event, EventEmitter } from '@stencil/core';\nimport { uidGenerator } from '../../../utils/utils';\nimport { XV_DATA_TABLE_TAG, XvDataTableCheck } from '../_vars';\n\n@Component({\n tag: 'xv-data-table-row',\n styleUrl: 'xv-data-table-row.scss',\n shadow: true,\n})\nexport class XvDataTableRow {\n @Element() el: HTMLElement;\n @Prop() variant?: 'checkbox';\n @Prop({ mutable: true }) name?: string;\n @Prop() collapse?: string;\n @Prop({ reflect: true }) collapsable?: boolean;\n @Prop({ mutable: true }) checked: boolean = false;\n @Prop({ mutable: true }) partial: boolean = false;\n @Prop({ mutable: true }) hover: boolean = false;\n @Prop() header: boolean = false;\n @Prop() footer: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() required: boolean = false;\n @Prop() value?: string | number | object;\n\n @Event() check: EventEmitter<XvDataTableCheck>;\n\n @State() collapsed: boolean = false;\n\n private collapseEl?: HTMLXvDataTableCollapseElement;\n\n private collapseClick = async () => {\n if (!this.collapse || !this.collapseEl) return;\n\n this.collapsed = !this.collapsed;\n await this.collapseEl?.setCollapsed(this.collapsed);\n }\n\n private setInitialState = () => {\n if (this.collapse && !this.collapseEl) {\n this.collapseEl = this.el.parentElement.querySelector(`xv-data-table-collapse${this.collapse}`);\n this.collapsed = this.collapseEl?.hasAttribute('collapsed');\n }\n\n if (!this.hover) {\n const table = this.el.closest(XV_DATA_TABLE_TAG);\n this.hover = table.hasAttribute('hover');\n }\n }\n\n private checkedChangeHandle = ({ detail: checked }: CustomEvent<boolean>) => {\n if (!checked && this.partial) this.partial = checked;\n if (!this.name) this.name = uidGenerator();\n this.check.emit({\n checked,\n name: this.name,\n value: this.value,\n partial: this.partial,\n header: this.header,\n footer: this.footer,\n expandable: !!this.collapseEl,\n });\n };\n\n render() {\n return (\n <Host role=\"row\" part=\"xv-row\" class={{ checked: this.checked, hover: this.hover }}>\n {(!!this.variant || this.collapsable) && (\n <xv-data-table-cell width={!!this.variant ? '16px' : '0'} class=\"cell-control\">\n {!!this.collapse && (\n <button class={{ 'cell-control_collapse': true, open: !this.collapsed }} onClick={this.collapseClick}></button>\n )}\n {this.variant === 'checkbox' && (\n <xv-checkbox-v2\n name={this.name}\n partial={this.partial}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n readonly={this.readonly}\n required={this.required}\n onEventChange={this.checkedChangeHandle}\n class=\"cell-control_checkbox\"></xv-checkbox-v2>\n )}\n </xv-data-table-cell>\n )}\n <slot onSlotchange={this.setInitialState} />\n </Host>\n );\n }\n}\n","export interface DropdownItemData {\n value: string | number;\n text: string;\n selected: boolean;\n}\n\nexport const DropdownItemSelector = '.xv-dropdown-item';\n",":host {\n --dropdown-padding-x: 16px;\n --dropdown-padding-y: 11px;\n --dropdown-max-width: 300px;\n\n display: block;\n position: relative;\n text-align: left;\n max-width: min(var(--dropdown-max-width), 100%);\n\n .label {\n display: block;\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px;\n letter-spacing: 0.32px;\n margin-bottom: 8px;\n ::slotted([slot=\"label\"]) {\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px;\n letter-spacing: 0.32px;\n }\n\n &_info {\n margin-left: var(--spacing-02);\n }\n }\n\n .control {\n background-blend-mode: multiply;\n border-radius: 3px;\n box-shadow: 0 0 0 1px #8B8B8B inset;\n transition: 0.2s ease-in-out background-color;\n cursor: pointer;\n margin: 0;\n box-sizing: border-box;\n font-family: inherit;\n font-size: 100%;\n padding: 0;\n border: 0;\n appearance: none;\n background-color: var(--field-02, #FFF);\n text-align: start;\n inline-size: 100%;\n position: relative;\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n block-size: calc(100% + 1px);\n outline: none;\n padding-block: var(--dropdown-padding-y);\n padding-inline: var(--dropdown-padding-x);\n text-overflow: ellipsis;\n vertical-align: top;\n white-space: nowrap;\n\n &_value, &_placeholder {\n flex: 1;\n margin: 0;\n overflow: hidden;\n color: var(--text-primary, #333);\n user-select: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--fz-body, Tahoma);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n letter-spacing: 0.16px;\n padding-inline: 0 1rem;\n }\n\n &_placeholder {\n color: var(--text-placeholder, #ACACAC);\n }\n\n &_icon {\n width: 18px;\n height: 18px;\n &.error {\n color: var(--support-error, #F1290E);\n }\n\n &.warning {\n color: var(--support-warning, #FF7F04)\n }\n }\n\n &_arrow {\n box-sizing: border-box;\n margin: 0;\n font-size: 100%;\n vertical-align: baseline;\n padding: 0;\n border: 0;\n appearance: none;\n background: none;\n text-align: start;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 1.5rem;\n inline-size: 1.5rem;\n inset-inline-end: 0.75rem;\n outline: none;\n transition: transform 70ms cubic-bezier(0.2, 0, 0.38, 0.9);\n }\n\n &:hover {\n background-color: var(--field-hover-02, #E9E9E9);\n }\n\n &:active {\n background-color: var(--layer-selected-02, #E3E3E3);\n }\n }\n\n .options {\n inset-block-start: 100%;\n margin-block-start: 1px;\n display: block;\n max-block-size: 13.75rem;\n box-shadow: 0 2px 6px rgba(0, 0, 0, .3);\n position: absolute;\n z-index: 10;\n inline-size: 100%;\n inset-inline: 0;\n overflow-y: auto;\n transition: max-height 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);\n border-radius: 3px;\n background-color: var(--field-02, #FFF);\n scrollbar-width: thin;\n scrollbar-color: var(--layer-accent-03) transparent;\n\n ::slotted(.xv-dropdown-item) {\n display: block;\n max-block-size: 13.75rem;\n inset-inline: 0;\n box-sizing: border-box;\n padding:\n var(--dropdown-padding-y)\n calc(var(--dropdown-padding-x) + 16px)\n var(--dropdown-padding-y)\n var(--dropdown-padding-x);\n position: relative;\n cursor: pointer;\n overflow: hidden;\n color: var(--text-secondary, #515151);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n letter-spacing: 0.16px;\n transition: 0.2s ease-in-out background-color;\n user-select: none;\n &:after {\n content: '';\n position: absolute;\n bottom: 0;\n height: 1px;\n left: 10px;\n width: calc(100% - 20px);\n background-color: var(--border-subtle-01);\n }\n }\n\n ::slotted(.xv-dropdown-item:hover) {\n background-color: var(--layer-hover-02, #F7F7F7);\n }\n\n ::slotted(.xv-dropdown-item:active) {\n background-color: var(--layer-selected-hover-02, #DADADA);\n }\n\n ::slotted(.xv-dropdown-item[selected]) {\n background-color: var(--layer-selected-02, #E3E3E3);\n }\n\n ::slotted(.xv-dropdown-item[selected]:hover) {\n background-color: var(--layer-selected-hover-02, #DADADA);\n }\n\n ::slotted(.xv-dropdown-item[disabled]) {\n background-color: transparent;\n opacity: 0.4;\n cursor: not-allowed;\n }\n }\n\n .helper {\n color: var(--text-helper, #646464);\n font-family: var(--ff-heading, \"IBM Plex Sans\");\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.32px;\n margin: 4px 0 0;\n padding: 0;\n }\n}\n\n:host([open]) {\n .control_arrow {\n transform: rotate(180deg);\n }\n}\n\n:host([disabled]) {\n opacity: 0.4;\n cursor: not-allowed;\n .control {\n cursor: inherit;\n &:hover, &:active, &:focus-within {\n background-color: transparent;\n }\n }\n}\n\n:host([error]) {\n .control {\n box-shadow: none;\n outline: 2px solid var(--support-support-error, #F1290E);\n }\n\n .helper {\n color: var(--text-error, #D62512);\n }\n}\n\n:host([size=\"xs\"]) {\n --dropdown-padding-y: 4px;\n}\n:host([size=\"sm\"]) {\n --dropdown-padding-y: 7px;\n}\n:host([size=\"md\"]) {\n --dropdown-padding-y: 11px;\n}\n:host([size=\"lg\"]) {\n --dropdown-padding-y: 15px;\n}\n:host([size=\"xl\"]) {\n --dropdown-padding-y: 16px;\n}\n","import { Component, Host, h, Prop, State, Element, Watch, Listen, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { DropdownItemData, DropdownItemSelector } from './_vars';\nimport { forEach, setAttr } from '../../utils/utils';\n\n@Component({\n tag: 'xv-dropdown-v2',\n styleUrl: 'xv-dropdown.scss',\n shadow: true,\n})\nexport class XvDropdown {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) multiple?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, mutable: true }) open?: boolean;\n @Prop({ reflect: true }) error?: string;\n @Prop({ reflect: true }) label?: string;\n @Prop({ reflect: true }) helper?: string;\n @Prop({ reflect: true }) warning?: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: false }) info?: string;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop({ attribute: 'default-value'}) defaultValue?: DropdownItemData['value'];\n\n @State() selected: DropdownItemData['text'][] = [];\n @State() selectedMap: Map<DropdownItemData['value'], DropdownItemData> = new Map();\n\n @Event() changeSelection: EventEmitter<DropdownItemData[]>;\n\n @Watch('open')\n openChangeHandle() {\n if (this.disabled) return;\n\n if (this.open) {\n this.addListeners();\n } else {\n this.removeListeners();\n }\n }\n\n @Listen('itemSelected')\n handleItemSelected({ detail }: CustomEvent<DropdownItemData>) {\n const hasItem = this.selectedMap.has(detail.value);\n\n if (this.multiple) {\n if (detail.selected) {\n if (!hasItem) this.selectedMap.set(detail.value, detail);\n } else {\n if (hasItem) {\n if (this.required && this.selectedMap.size === 1) return;\n this.selectedMap.delete(detail.value);\n }\n }\n } else {\n if (detail.selected) {\n this.selectedMap.clear();\n this.selectedMap.set(detail.value, detail);\n } else {\n if (!this.required) this.selectedMap.clear();\n }\n this.open = false;\n }\n\n const optionElements = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n optionElements,\n (option) => setAttr(option, 'selected', this.selectedMap.has(option.getAttribute('value')))\n );\n\n this.changeSelection.emit(this.setSelected(this.selectedMap, optionElements));\n }\n\n private setSelected = (selectedMap: typeof this.selectedMap, optionNodes?: NodeListOf<Element>): DropdownItemData[] => {\n const values = Array.from(selectedMap.values());\n const options = optionNodes || this.el.querySelectorAll(DropdownItemSelector);\n\n this.selected = values.length === options.length ?\n ['Alle ausgewählt'] : values.length > 2 ?\n [`${values.length} ausgewählt`] : values.map((v) => v.text);\n\n return values;\n };\n\n private handleOpen = () => {\n if (this.disabled || this.open || this.loading) return;\n this.open = true;\n };\n\n private handleClickOutside = (ev: MouseEvent) => {\n if (!this.open || this.el.contains(ev.target as Node)) return;\n\n if (this.open) this.open = false;\n }\n\n private addListeners = () => {\n document.body.addEventListener('click', this.handleClickOutside);\n }\n\n private removeListeners = () => {\n document.body.removeEventListener('click', this.handleClickOutside);\n }\n\n private setDefaultValues = () => {\n if (!this.defaultValue) return;\n\n // Needs to wait next Javascript tik\n setTimeout(() => {\n const options = this.el.querySelectorAll(DropdownItemSelector);\n\n forEach(\n options,\n (option) => {\n const dropdownItemData: DropdownItemData = {\n value: option.getAttribute('value'),\n text: (option as any).innerText,\n selected: `${this.defaultValue}` === option.getAttribute('value'),\n };\n\n if (dropdownItemData.selected) {\n setAttr(option, 'selected', dropdownItemData.selected);\n this.selectedMap.set(dropdownItemData.value, dropdownItemData);\n }\n }\n );\n\n this.setSelected(this.selectedMap, options);\n });\n };\n\n render() {\n return (\n <Host\n class=\"xv-dropdown\"\n role=\"combobox\"\n size={this.size}\n open={this.open}\n error={this.error}\n disabled={this.disabled}\n tabindex={this.disabled ? -1 : false}>\n <label class=\"label\">\n <slot name=\"label\">{this.label}</slot>\n {this.info && <xv-tooltip-v2 class=\"label_info\" message={this.info}></xv-tooltip-v2>}\n </label>\n\n <div class=\"xv-dropdown-control control\" onClick={this.handleOpen}>\n {this.selected.length ? (\n <p class=\"control_value\">{this.selected.join(', ')}</p>\n ) : (\n <p class=\"control_placeholder\">{this.placeholder || ''}</p>\n )}\n\n {this.renderIcon()}\n\n <svg class=\"control_arrow\" focusable=\"false\" preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\" aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n </div>\n\n {this.open && <div class=\"options\">\n <slot key=\"xv-dropdown-options\" />\n </div>}\n\n {(this.helper || this.error || this.warning) && (\n <p class=\"helper\">{this.error || this.warning || this.helper}</p>\n )}\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setDefaultValues();\n }\n\n componentDidLoad() {\n this.openChangeHandle();\n }\n\n disconnectedCallback() {\n this.removeListeners();\n }\n\n private renderIcon(): undefined | HTMLElement {\n if (this.loading) {\n return <xv-loader-v2 class=\"control_icon error\" size={SIZE_VAR.XS} />\n }\n\n if (this.error) {\n return (\n <svg class=\"control_icon error\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\"\n 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\" />\n </svg>\n )\n }\n\n if (!this.error && !!this.warning) {\n return (\n <svg class=\"control_icon warning\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <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\" />\n </svg>\n );\n }\n\n return undefined;\n }\n}\n",":host {\n display: block;\n .checkmark {\n position: absolute;\n right: 12px;\n top: var(--dropdown-padding-y, 10px);\n width: 5px;\n height: 10px;\n border: solid var(--icon-primary, #333);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n transition: opacity 0.2s;\n }\n}\n\n\n","import { Component, Host, h, Event, EventEmitter, Listen, Prop, Element } from '@stencil/core';\nimport { DropdownItemData } from '../_vars';\n\n/**\n * xv-dropdown-item — custom dropdown list item\n * if you want to create new dropdown list item you need to extend current class properties and\n * events\n * should be created and emitted 'itemSelected' event\n */\n@Component({\n tag: 'xv-dropdown-v2-item',\n styleUrl: 'xv-dropdown-item.scss',\n shadow: true,\n})\nexport class XvDropdownItem {\n @Element() el: HTMLElement;\n @Prop() disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) value: DropdownItemData['value'] = '';\n @Prop({ reflect: true, mutable: true }) selected: DropdownItemData['selected'] = false;\n @Event() itemSelected: EventEmitter<DropdownItemData>;\n\n @Listen('click')\n handleClick() {\n if (this.disabled) return;\n\n this.itemSelected.emit({\n selected: !this.selected,\n value: this.value,\n text: this.el.innerText\n });\n }\n\n\n render() {\n return (\n <Host class=\"xv-dropdown-item\" value={this.value} role=\"option\" tabindex={this.disabled ? -1 : false}>\n <slot></slot>\n\n {this.selected && <span class=\"checkmark\" />}\n </Host>\n );\n }\n\n componentWillLoad() {\n if (!this.value) this.value = this.el.innerText;\n }\n}\n","export enum XvFileUploaderVariants {\n BUTTON = 'button',\n DRAG_DROP = 'drag-drop'\n}\n",":host {\n font-family: inherit;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05);\n font-size: 14px;\n\n .label {\n font-weight: 600;\n font-size: 1em;\n color: var(--text-primary);\n }\n\n .description {\n font-size: 1em;\n margin: 0;\n color: var(--text-secondary);\n }\n\n .upload-btn {\n padding: 0 1.14em;\n border-radius: 0.285em;\n background-color: var(--background-inverse);\n color: var(--text-inverse);\n border: none;\n cursor: pointer;\n font-size: 1em;\n height: 2.86em;\n transition: 250ms ease-in-out background-color;\n\n &:hover {\n background-color: var(--background-inverse-hover);\n }\n }\n\n .drop-zone {\n border: 1px dashed var(--border-strong-01);\n background-color: transparent;\n padding: 1.14em;\n border-radius: 0.285em;\n transition: border-color 0.2s ease, background-color 0.2s ease;\n font-size: 1em;\n cursor: pointer;\n\n &.active {\n border-color: var(--border-interactive);\n background-color: var(--background-active);\n }\n\n &:hover {\n background-color: var(--background-hover);\n }\n }\n\n .file-list {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n .file {\n border-radius: 3px;\n background-color: var(--layer-01, #F7F7F7);\n font-size: 1em;\n &_container {\n padding: var(--spacing-04) var(--spacing-05);\n display: flex;\n justify-content: space-between;\n align-items: center;\n &_name {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n color: var(--text-primary, #333);\n font-style: normal;\n font-weight: 400;\n line-height: 128.571%;\n letter-spacing: 0.16px;\n padding-right: var(--spacing-04);\n }\n\n &_errorIcon {\n color: var(--text-error);\n margin-right: var(--spacing-03);\n }\n }\n\n &.withError {\n outline: 2px solid var(--support-error);\n }\n }\n }\n\n .error-container {\n padding: var(--spacing-04) var(--spacing-05);\n border-top: 1px solid var(--border-subtle-01);\n font-size: 0.858em;\n font-style: normal;\n font-weight: 400;\n color: var(--text-error);\n &_primary,\n &_secondary {\n margin: 0;\n padding: 0;\n }\n\n &__secondary {\n color: var(--text-secondary, #515151);\n }\n }\n}\n\n:host(.disabled) {\n pointer-events: none;\n opacity: 0.6;\n\n .upload-btn,\n .drop-zone {\n cursor: not-allowed;\n background-color: var(--button-disabled-background, #ccc);\n color: var(--button-disabled-text, #666);\n border-color: var(--border-disabled, #bbb);\n }\n\n .remove-btn {\n display: none;\n }\n}\n\n// Size variants\n:host([size='xs']) {\n font-size: 10px;\n}\n:host([size='sm']) {\n font-size: 12px;\n}\n:host([size='md']) {\n font-size: 14px;\n}\n:host([size='lg']) {\n font-size: 18px;\n}\n:host([size='xl']) {\n font-size: 22px;\n}\n","import { Component, EventEmitter, Event, h, Host, Prop, State, Fragment } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { XvFileUploaderVariants } from './_vars';\n\n@Component({\n tag: 'xv-file-uploader',\n styleUrl: 'xv-file-uploader.scss',\n shadow: true,\n})\nexport class XvFileUploader {\n @Prop() label?: string;\n @Prop() description?: string;\n @Prop({ attribute: 'add-text' }) addText?: string;\n @Prop() variant: XvFileUploaderVariants = XvFileUploaderVariants.BUTTON;\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() accept: string[] = [];\n @Prop({ attribute: 'max-file-size-mb' }) maxFileSizeMB: number = 5;\n @Prop({ attribute: 'max-files' }) maxFiles: number = 20;\n @Prop() multiple: boolean = true;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true, mutable: true }) files: File[] = [];\n @Prop({ reflect: true, mutable: true, attribute: 'loading-states' }) loadingStates: ('loading' | 'success' | 'uploaded')[] = [];\n @Prop({ reflect: true, mutable: true }) error?: string;\n @Prop({ reflect: true, mutable: true }) errors: string[] | { primary: string; secondary: string; }[] = [];\n\n @State() dragActive = false;\n @State() errorMessages: string[] = [];\n\n @Event() filesChange: EventEmitter<File[]>;\n\n private fileInput: HTMLInputElement;\n\n private onFileSelect = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const selectedFiles = Array.from(input.files || []);\n this.handleFiles(selectedFiles);\n };\n\n private onDrop = (event: DragEvent) => {\n event.preventDefault();\n this.dragActive = false;\n const droppedFiles = Array.from(event.dataTransfer?.files || []);\n this.handleFiles(droppedFiles);\n };\n\n private handleFiles = (files: File[]) => {\n this.files = this.validation(this.multiple ? [...this.files, ...files] : files);\n this.filesChange.emit(this.files);\n };\n\n private validation(files: File[]): File[] {\n const maxSize = this.maxFileSizeMB * 1024 * 1024;\n const seenFileNames = new Set<string>();\n const errorMessages: (string | null)[] = [];\n const uniqueFiles: File[] = [];\n\n for (const file of files) {\n let error: string | undefined = null;\n\n if (!seenFileNames.has(file.name)) {\n seenFileNames.add(file.name);\n uniqueFiles.push(file);\n }\n\n const extension = file.name.split('.').pop()?.toLowerCase();\n const isAccepted =\n this.accept.length === 0 ||\n this.accept.some(type => {\n const normalized = type.toLowerCase().replace(/^\\./, '');\n return normalized === extension;\n });\n\n if (!isAccepted) {\n error = 'Unsupported file type.';\n } else if (file.size > maxSize) {\n error = `File ${file.name} is too large.`;\n }\n\n errorMessages.push(error);\n }\n\n this.error = uniqueFiles.length > this.maxFiles\n ? `Only ${this.maxFiles} file(s) allowed.`\n : null;\n\n this.errorMessages = errorMessages;\n\n return uniqueFiles;\n }\n\n private removeFile(index: number) {\n this.files = this.validation([...this.files.slice(0, index), ...this.files.slice(index + 1)]);\n this.filesChange.emit(this.files);\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n }\n\n private onDragOver = (event: DragEvent) => {\n event.preventDefault();\n this.dragActive = true;\n };\n\n private onDragLeave = () => {\n this.dragActive = false;\n };\n\n render() {\n return (\n <Host class={{ 'upload-wrapper': true, [`uploader-${this.size}`]: true, disabled: !!this.disabled }}>\n {this.label && <label class=\"label\">{this.label}</label>}\n {this.description && <p class=\"description\">{this.description}</p>}\n {this.variant === 'button' ? (\n <button disabled={this.disabled} class=\"upload-btn\" onClick={() => this.fileInput.click()}>\n {this.addText || 'Dateien auswählen'}\n </button>\n ) : (\n <div\n class={{ 'drop-zone': true, active: this.dragActive }}\n onDrop={this.onDrop}\n onDragOver={this.onDragOver}\n onDragLeave={this.onDragLeave}\n onClick={() => this.fileInput.click()}\n >\n {this.addText || 'Dateien hierher ziehen oder darauf klicken, um eine Datei auszuwählen.'}\n {this.accept?.length > 0 && <span> ({this.accept.join(', ')})</span>}\n </div>\n )}\n\n <input\n ref={el => (this.fileInput = el)}\n type=\"file\"\n hidden\n onChange={this.onFileSelect}\n multiple={this.multiple}\n accept={this.accept.map(type => `.${type}`).join(',')}\n />\n\n <ul class=\"file-list\">\n {this.files.map((file, index) => (\n <li class={{ file: true, withError: !!(this.errors?.[index] || this.errorMessages?.[index]) }}>\n <div class=\"file_container\">\n <span class=\"file_container_name\">{file.name}</span>\n {this._renderLoaderState(index)}\n </div>\n {this._renderError(index)}\n </li>\n ))}\n </ul>\n {this.error && (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{this.error}</p>\n </div>\n )}\n </Host>\n );\n }\n\n private _renderLoaderState(index: number) {\n const state = this.loadingStates?.[index] || null;\n\n const errorIcon = this.errors?.[index] || this.errorMessages?.[index] ? (\n <svg class=\"file_container_errorIcon\" width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path fill=\"currentColor\"\n 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\" />\n </svg>\n ) : null;\n\n switch (state) {\n case 'loading':\n return (\n <Fragment>\n {errorIcon}\n <xv-loader-v2 size={SIZE_VAR.XS} />\n </Fragment>\n );\n case 'success':\n return (\n <Fragment>\n {errorIcon}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 16\" fill=\"none\">\n <path\n 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\"\n fill=\"#97BF0D\" />\n </svg>\n </Fragment>\n );\n case 'uploaded':\n default:\n return (\n <Fragment>\n {errorIcon}\n <xv-button-v2 variant=\"ghost\" size={SIZE_VAR.XS} onClick={() => this.removeFile(index)}>\n <span slot=\"icon-left\">×</span>\n </xv-button-v2>\n </Fragment>\n );\n }\n }\n\n private _renderError(index: number) {\n const error = this.errors?.[index] || this.errorMessages?.[index];\n\n if (!error) return;\n\n if (typeof error === 'object') {\n return (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{error.primary}</p>\n <p class=\"error-container_secondary\">{error.secondary}</p>\n </div>\n );\n }\n\n if (typeof error === 'string') {\n return (\n <div class=\"error-container\">\n <p class=\"error-container_primary\">{error}</p>\n </div>\n );\n }\n\n return null;\n }\n}\n","%svg-common {\n background: url(\"https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.svg\") no-repeat;\n}\n\n.svg-assets--src--project--images--svg-sprite--facebook {\n @extend %svg-common;\n background-position: 0 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--instagram {\n @extend %svg-common;\n background-position: 14.545454545454545% 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--kauf-auf-rechnung {\n @extend %svg-common;\n background-position: 0 0;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--linkedin {\n @extend %svg-common;\n background-position: 29.09090909090909% 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--mastercard {\n @extend %svg-common;\n background-position: 50% 0;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--paypal {\n @extend %svg-common;\n background-position: 0 64.44444444444444%;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--sepa {\n @extend %svg-common;\n background-position: 50% 64.44444444444444%;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--visa {\n @extend %svg-common;\n background-position: 100% 0;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--vorkasse {\n @extend %svg-common;\n background-position: 100% 64.44444444444444%;\n width: 84px;\n height: 58px;\n}\n\n.svg-assets--src--project--images--svg-sprite--xing {\n @extend %svg-common;\n background-position: 43.63636363636363% 100%;\n width: 32px;\n height: 32px;\n}\n\n.svg-assets--src--project--images--svg-sprite--youtube {\n @extend %svg-common;\n background-position: 58.18181818181818% 100%;\n width: 32px;\n height: 32px;\n}\n\n.sprite-icon-beachten {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -90px 0px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-buchen {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px -82px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-direct {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -284px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-downloads {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -80px -82px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-kino {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -305px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-kosten {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -170px 0px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-kreation {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -170px -80px;\n\twidth: 80px;\n\theight: 80px;\n}\n.sprite-icon-logo-full {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px -242px;\n\twidth: 189px;\n\theight: 32px;\n}\n.sprite-icon-logo-small {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -99px;\n\twidth: 34px;\n\theight: 34px;\n}\n.sprite-icon-mobile {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -326px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-online {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -347px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-partner-agma {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -66px;\n\twidth: 88px;\n\theight: 33px;\n}\n.sprite-icon-partner-bvdw {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -338px -66px;\n\twidth: 88px;\n\theight: 33px;\n}\n.sprite-icon-partner-climate {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px 0px;\n\twidth: 186px;\n\theight: 33px;\n}\n.sprite-icon-partner-google {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px 0px;\n\twidth: 90px;\n\theight: 82px;\n}\n.sprite-icon-partner-microsoft {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -33px;\n\twidth: 186px;\n\theight: 33px;\n}\n.sprite-icon-plakat {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -368px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-print {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -389px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-radio {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -410px -99px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-services {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -250px -133px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-topangebote {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -271px -133px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-tv {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: -292px -133px;\n\twidth: 21px;\n\theight: 21px;\n}\n.sprite-icon-werbeformen {\n\tbackground-image: url(https://crossvertise.blob.core.windows.net/assets/images/xv-sprite.png?1739974291120);\n\tbackground-position: 0px -162px;\n\twidth: 80px;\n\theight: 80px;\n}\n","import { Component, h,Element, State } from '@stencil/core';\n\n@Component({\n tag: 'xv-footer',\n styleUrl: 'xv-footer.scss',\n})\nexport class Xvfooter {\n @State() htmlContent: string = '';\n @Element() el: HTMLElement;\n\n async componentWillLoad() {\n try {\n const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/footer.html');\n const text = await response.text();\n this.htmlContent = text;\n } catch (error) {\n console.error('Failed to fetch footer HTML:', error);\n }\n }\n\n render() {\n return (\n <footer>\n <div innerHTML={this.htmlContent}></div>\n </footer>\n );\n }\n}\n","@import '../../global.scss';\n.media-nav-dropdown:hover > .dropdown-menu {\n display: block;\n}\n\n.alle-kategorien-menu li:hover > ul{\n display: block;\n}\n\n#nav-container .media-nav #media-menu-item-alle-kategorien li:hover > ul{\n display: block;\n}","import { Component, h,Element, State } from '@stencil/core';\n\n@Component({\n tag: 'xv-header',\n styleUrl: 'xv-header.scss',\n})\nexport class XvHeader {\n @State() htmlContent: string = '';\n @State() showLoginModal = false;\n @Element() el: HTMLElement;\n\n\n private openLoginModal = () => {\n this.showLoginModal = true;\n };\n\n private closeLoginModal = () => {\n this.showLoginModal = false;\n };\n\n async componentWillLoad() {\n try {\n const response = await fetch('https://crossvertise.blob.core.windows.net/nav-sync-qa/nav.html');\n const text = await response.text();\n const parser = new DOMParser();\n const doc = parser.parseFromString(text, 'text/html');\n\n const mixedMenu = doc.querySelector('.alle-kategorien-menu');\n const allCategoriesGenerals = doc.querySelector('.alle-kategorien-allgemines');\n const allCategoriesContainer = doc.querySelector('#media-menu-item-alle-kategorien > .dropdown-menu');\n\n if (mixedMenu && allCategoriesGenerals && allCategoriesContainer) {\n allCategoriesContainer.appendChild(mixedMenu);\n allCategoriesContainer.appendChild(allCategoriesGenerals);\n }\n\n this.htmlContent = doc.body.innerHTML;\n } catch (error) {\n console.error('Failed to fetch header HTML:', error);\n }\n }\n\n render() {\n return (\n <div id=\"nav-container\" class=\"xv-header\">\n <nav class=\"navbar navbar-default navbar-fixed-top backend-force-relative\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-sm-3 col-xs-3 col-xxs-4 no-padding-right\">\n <div class=\"navbar-header\">\n <button class=\"btn btn-default navbar-toggle pull-left navbar-btn\" data-toggle=\"collapse\" data-target=\"#main-menu\">\n <i class=\"fa fa-bars fa-lg\" aria-hidden=\"true\"></i>\n </button>\n <div class=\"visible-xs-inline\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n <div class=\"hidden-xs\">\n <a href=\"https://www.crossvertise.com/\" class=\"navbar-brand\">\n <img loading=\"lazy\" src=\"https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg\" alt=\"Crossvertise\" />\n </a>\n </div>\n </div>\n </div>\n <div class=\"col-sm-9 col-xs-9 col-xxs-8 no-padding-left\">\n <ul class=\"nav nav-pills nav-meta pull-right\">\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">\n <i class=\"fa fa-user\"></i>\n <i class=\"fa fa-exchange-alt\"></i>\n </a>\n </li>\n <li>\n <a class=\"btn btn-link navbar-btn hidden-xs\" href=\"#\">Kontakt</a>\n <a href=\"https://www.crossvertise.com/contact\" class=\"btn btn-link navbar-btn hidden-xs\" style={{ display: 'none' }}>Kontakt</a>\n <a class=\"btn btn-default btn-link navbar-btn visible-xs hidden-xxs\" href=\"#\">\n <i class=\"fa fa-phone\"></i>\n </a>\n </li>\n <li class=\"dropdown\" id=\"my-xv-menu\">\n <a href=\"#\" class=\"dropdown-toggle btn btn-default navbar-btn btn-link\" data-toggle=\"dropdown\">\n <i class=\"fa fa-user fa-lg text-success\" aria-hidden=\"true\"></i> \n <span class=\"hidden-xs\">Mein Bereich</span>\n <span class=\"caret\"></span>\n </a>\n <ul class=\"dropdown-menu-left dropdown-menu navbar-myxv\">\n <li>\n <a href=\"#\"><i class=\"fa fa-tachometer-alt fa-fw\"></i> Cockpitfunktionen <i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"#\"><i class=\"fa fa-cubes\"></i> Entitäten <i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li role=\"separator\" class=\"divider\"></li>\n <li>\n <a href=\"#\"><i class=\"fa fa-user\"></i> Mein Crossvertise <span class=\"badge\">0</span><i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"https://www.crossvertise.com/de-de/mycrossvertise/account/logoff?returnUrl=https%3A%2F%2Fwww.crossvertise.com\">\n <i class=\"fa fa-sign-out-alt fa-fw\" aria-hidden=\"true\"></i> Logout\n </a>\n </li>\n </ul>\n </li>\n <li class=\"visible-sm-block visible-xs-block hidden-xxs\">\n <a class=\"btn btn-default navbar-btn btn-link\" data-toggle=\"collapse\" data-target=\"#search-collapse\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </a>\n </li>\n <li class=\"hidden-xs hidden-sm\">\n <a role=\"button\" onClick={this.openLoginModal} class=\"btn btn-default navbar-btn btn-link\">\n <i class=\"fa fa-user fa-lg\" aria-hidden=\"true\"></i>\n <span>Login</span>\n </a>\n </li>\n <xv-login-modal visible={this.showLoginModal} onClose={this.closeLoginModal}></xv-login-modal>\n <li class=\"hidden-xs\">\n <a class=\"btn btn-default navbar-btn btn-link\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/account/register\">\n <span>Registrieren</span>\n </a>\n </li>\n <li class=\"navbar-divider hidden-xs\"></li>\n <li>\n <a class=\"btn btn-success navbar-btn\" href=\"https://market.crossvertise.com/de-de/mycrossvertise/shoppingcart/activecart\">\n <span class=\"xv-font-icon-warenkorb fa-lg fa-fw\" aria-hidden=\"true\"></span>\n <span class=\"hidden-xs hidden-sm\"> Warenkorb </span>\n <span class=\"badge badge-success\">0</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"collapse hidden-md hidden-lg\" id=\"search-collapse\">\n <div class=\"container\">\n <form action=\"https://market.crossvertise.com/de-de/media/search\" class=\"navbar-form\" method=\"get\" role=\"search\">\n <div class=\"input-group\">\n <input class=\"form-control\" name=\"Q\" placeholder=\"Suche\" type=\"text\" autocomplete=\"off\" />\n <span class=\"input-group-btn force-full-width\">\n <button class=\"btn btn-default search-addon\" type=\"submit\">\n <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n </button>\n </span>\n </div>\n </form>\n </div>\n </div>\n </nav>\n <div innerHTML={this.htmlContent}></div>\n </div>\n );\n }\n}\n",":host {\n font-family: var(--ff-body, inherit);\n}\n\n:host(.xv-link_inline) {\n display: inline-block;\n .xv-link {\n text-decoration-line: underline;\n text-decoration-style: solid;\n text-decoration-skip-ink: none;\n text-decoration-thickness: auto;\n text-underline-offset: auto;\n text-underline-position: from-font;\n }\n}\n\n:host(.xv-link_standalone) {\n display: block;\n .xv-link {\n display: block;\n text-decoration-line: none;\n }\n}\n\n:host(.xv-link_ghost) {\n .xv-link {\n display: contents;\n color: inherit;\n text-decoration: none;\n }\n}\n\n.xv-link {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n color: var(--link-primary);\n font-family: var(--ff-body);\n font-style: normal;\n font-weight: 400;\n transition: color 200ms ease-in-out;\n\n &:active {\n color: var(--text-primary);\n }\n\n &:visited {\n color: var(--link-visted);\n }\n\n &:hover {\n color: var(--link-primary-hover);\n cursor: pointer;\n }\n\n &:disabled, &_disabled, &::part(disabled) {\n color: var(--text-disabled);\n pointer-events: none;\n cursor: initial;\n }\n\n &.sm {\n font-size: var(--fz-sm);\n line-height: 137.5%;\n }\n\n &.md {\n font-size: var(--fz-md);\n line-height: 128.571%;\n }\n\n &.lg {\n font-size: var(--fz-lg);\n line-height: 133.333%;\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-link-v2',\n styleUrl: 'xv-link.scss',\n shadow: true,\n})\nexport class XvLink {\n @Prop() href: string;\n @Prop() target: '_self' | '_blank' | '_parent' | '_top';\n @Prop() disabled: boolean = false;\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() variant: 'standalone' | 'inline' | 'ghost' = 'inline';\n\n preventLinkHandler(e: PointerEvent) {\n if (!this.disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n }\n\n render() {\n return (\n <Host class={`xv-link_${this.variant}`}>\n <a\n href={this.href}\n onClick={this.preventLinkHandler.bind(this)}\n class={`xv-link ${this.disabled ? 'xv-link_disabled' : ''} ${this.size}`}\n target={this.target}\n >\n <slot name=\"icon-left\"></slot>\n\n <slot></slot>\n\n <slot name=\"icon-right\"></slot>\n </a>\n </Host>\n );\n }\n}\n",":host(.xv-loader) {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .spinner {\n color: var(--text-secondary, #515151);\n font-size: inherit;\n border: calc(max(4px, 0.1em)) solid rgba(0, 0, 0, 0.1);\n border-top-color: var(--highlight-01, #CEDE94);\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-width: 1em;\n max-height: 1em;\n }\n\n ::slotted(*) {\n font-family: var(--ff-heading, \"IBM Plex Sans\");\n color: inherit;\n margin-top: 0;\n margin-bottom: 0;\n font-size: inherit;\n line-height: 133.333%;\n letter-spacing: 0.32px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n:host([variant=\"vertical\"]) {\n flex-direction: column;\n}\n\n:host([size=\"xs\"]) {\n font-size: var(--fz-xs, 9px);\n}\n:host([size=\"sm\"]) {\n font-size: var(--fz-sm, 12px);\n}\n:host([size=\"md\"]) {\n font-size: inherit;\n}\n:host([size=\"lg\"]) {\n font-size: var(--spacing-08, 40px);\n}\n:host([size=\"xl\"]) {\n font-size: var(--spacing-12, 96px);\n}\n\n/* Animation */\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-loader-v2',\n styleUrl: 'xv-loader.scss',\n shadow: true,\n})\nexport class XvLoader {\n /**\n * Is component displayed\n */\n @Prop() show: boolean = true;\n /**\n * Message direction\n */\n @Prop() variant: 'vertical' | 'horizontal' = 'horizontal';\n /**\n * Size of loader. Default size depends of font size\n */\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n\n render() {\n if (!this.show) return null;\n\n return (\n <Host class={{ 'xv-loader': true }} size={this.size}>\n <slot name=\"before\"></slot>\n <div class={{spinner: true }}></div>\n <slot></slot>\n </Host>\n );\n }\n}\n","@import '../../global.scss';\n","import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\n\ntype OAuthProvider = {\n displayName: string;\n providerName: string;\n icon: string;\n buttonClass: string;\n};\n\n@Component({\n tag: 'xv-login-modal',\n styleUrl: 'xv-login-modal.scss',\n shadow: true,\n})\nexport class XvLoginModal {\n @Prop() visible: boolean = false;\n @Event() close: EventEmitter<void>;\n @State() oauthProviders: OAuthProvider[] = [];\n @State() bookNow: boolean = false;\n @State() returnUrl: string = '/';\n @State() passwordLoginEnabled: boolean = true;\n @State() oauthLoginEnabled: boolean = true;\n @State() passwordRegistrationEnabled: boolean = true;\n @State() configurationName: string = 'Xv';\n @State() xvMvcConfigName: string = 'Xv';\n @State() contactUrl: string = 'https://sitefinity-qa.crossvertise.com/ueber-uns/kontakt';\n\n componentWillLoad() {\n this.setReturnUrl();\n this.readMetaNavCookie();\n this.oauthProviders = [\n {\n displayName: 'Google',\n providerName: 'Google',\n icon: 'fa fa-google',\n buttonClass: 'btn btn-block btn-google-primary btn-primary',\n },\n ];\n }\n\n private setReturnUrl() {\n const params = new URLSearchParams(window.location.search);\n let url = params.get('returnUrl') || window.location.href;\n if (url.toLowerCase().includes('resetpassword')) {\n url = '/';\n }\n this.returnUrl = url;\n }\n\n private readMetaNavCookie() {\n const metaNavCookie = document.cookie\n .split('; ')\n .find(row => row.startsWith('metaNav='));\n if (!metaNavCookie) return;\n try {\n const cookieValue = decodeURIComponent(metaNavCookie.split('=')[1]);\n const metaNavObj = JSON.parse(cookieValue);\n this.passwordLoginEnabled = !!metaNavObj.PasswordLoginEnabled;\n this.oauthLoginEnabled = !!metaNavObj.oauthLoginEnabled;\n this.passwordRegistrationEnabled = !!metaNavObj.PasswordRegistrationEnabled;\n this.configurationName = metaNavObj.ConfigurationName;\n this.xvMvcConfigName = metaNavObj.XvMvcConfigName;\n this.contactUrl = metaNavObj.ContactUrl;\n } catch (e) {\n console.warn('Could not parse metaNav cookie:', e);\n }\n }\n\n private handleClose = () => {\n this.close.emit();\n };\n\n private renderPasswordLogin() {\n if (!this.passwordLoginEnabled) return null;\n return (\n <label class=\"pull-right spacer\">\n <a href=\"/de-de/mycrossvertise/account/lostpassword\" target=\"_blank\" rel=\"noopener\">\n Passwort vergessen?\n </a>\n </label>\n );\n }\n\n private renderOAuthProviders() {\n if (!this.oauthLoginEnabled) return null;\n return (\n <div class=\"row\">\n <div class=\"col-xs-12\">\n <div class=\"col-xs-12\">\n <div class=\"row spacer spacer-bottom\">\n <div class=\"col-xs-5\"><hr /></div>\n <div class=\"col-xs-2 text-center placeholder\">oder</div>\n <div class=\"col-xs-5\"><hr /></div>\n <div class=\"col-xs-12\">\n <span>Alternative Anmeldung:</span>\n </div>\n </div>\n </div>\n <div class=\"col-sm-12\">\n <div class=\"col-xs-12 no-padding-right\">\n <form\n method=\"POST\"\n class=\"spacer\"\n action=\"/de-de/mycrossvertise/account/externallogin\"\n >\n <div class=\"row\">\n {this.oauthProviders.map(provider => (\n <div class=\"col-xs-6 col-sm-3 no-padding-left padding-bottom-10 center-cell\">\n <button\n type=\"submit\"\n style={{ maxWidth: '125px' }}\n name=\"provider\"\n class={`cell-content btn btn-primary ${provider.buttonClass} btn-block`}\n value={provider.providerName}\n title={`Mit ${provider.displayName} anmelden`}\n >\n <i class={`${provider.icon} pull-left`}></i>\n <span>{provider.displayName}</span>\n </button>\n </div>\n ))}\n </div>\n <input type=\"hidden\" name=\"BookNow\" value={this.bookNow.toString()} />\n </form>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n private renderFooter() {\n if (!this.passwordRegistrationEnabled && this.configurationName !== this.xvMvcConfigName) return null;\n return (\n <div class=\"modal-footer\">\n <div class=\"col-sm-12 text-left\">\n {this.passwordRegistrationEnabled && (\n <div>\n Noch kein Kunde?\n <a\n href={`/de-de/mycrossvertise/account/register?returnUrl=${encodeURIComponent(this.returnUrl)}`}\n >\n Jetzt kostenlos registrieren!\n </a>\n </div>\n )}\n {this.configurationName === this.xvMvcConfigName && (\n <div>\n <div class=\"spacer\">Sie sind bereits registriert, können sich aber nicht einloggen?</div>\n <div>\n <a href={this.contactUrl}>Kontaktieren Sie uns</a>, wir kümmern uns darum.\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.visible) return null;\n return (\n <div class=\"modal show\" style={{ display: 'block' }} id=\"login-modal\" tabIndex={-1} role=\"dialog\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <div class=\"row\">\n <div class=\"col-sm-10\">\n <div class=\"col-xs-12\">\n <h4 class=\"modal-title\">Login</h4>\n </div>\n </div>\n <div class=\"col-xs-1 pull-right\">\n <button onClick={this.handleClose} type=\"button\" class=\"close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <form\n autoComplete=\"off\"\n id=\"logon-modal-form\"\n action={`/de-de/mycrossvertise/account/logon?returnUrl=${encodeURIComponent(this.returnUrl)}`}\n method=\"post\"\n class=\"spacer\"\n >\n <input type=\"hidden\" name=\"returnUrl\" value={this.returnUrl} />\n <div class=\"form-group spacer-bottom\">\n <div class=\"control-label col-xs-12\">\n <label htmlFor=\"LoginPopup.UserName\">E-Mail</label>\n <strong class=\"text-danger\">*</strong>\n </div>\n <div class=\"col-xs-12\">\n <input class=\"form-control\" id=\"userName\" name=\"UserName\" type=\"text\" tabIndex={1} />\n </div>\n </div>\n <div class=\"form-group spacer\">\n <div class=\"control-label col-xs-6\">\n <label class=\"spacer\" htmlFor=\"LoginPopup.Password\">Passwort</label>\n <strong class=\"text-danger spacer\">*</strong>\n </div>\n <div class=\"col-xs-6\">\n {this.renderPasswordLogin()}\n </div>\n <div class=\"col-xs-12\">\n <input class=\"form-control\" id=\"password\" name=\"Password\" type=\"password\" tabIndex={2} />\n </div>\n </div>\n <div class=\"form-group spacer\">\n <div class=\"col-xs-12\">\n <button class=\"btn btn-primary btn-lg btn-block spacer\" type=\"submit\" tabIndex={3}>\n Anmelden\n </button>\n </div>\n </div>\n <div class=\"form-group\">\n <div class=\"checkbox col-xs-12\">\n <label htmlFor=\"RememberMe\">\n <input id=\"RememberMe\" name=\"RememberMe\" type=\"checkbox\" value=\"true\" />\n Angemeldet bleiben?\n </label>\n </div>\n </div>\n </form>\n </div>\n </div>\n {this.renderOAuthProviders()}\n </div>\n {this.renderFooter()}\n </div>\n </div>\n </div>\n );\n }\n}\n",":host {\n display: inline-flex;\n\n .backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.3s ease;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .modal {\n display: flex;\n flex-direction: column;\n max-height: 60vh;\n max-width: 960px;\n position: relative;\n animation: fadeIn 0.25s ease;\n padding-block: var(--gap-md, 16px);\n background: var(--layer-02, #FFF);\n box-shadow: 0 6px 10px 4px rgba(39, 52, 53, 0.15), 0 2px 3px 0 rgba(39, 52, 53, 0.30);\n\n &_header {\n position: relative;\n padding-inline: var(--gap-md, 16px);\n &__title {\n color: var(--text-text-primary, #333);\n font-family: var(--ff-heading, \"Gill Sans\");\n font-size: var(--fz-xl, 21px);\n line-height: 133.333%;\n margin: 0 20px 0 0;\n }\n }\n\n &_content {\n padding: var(--gap-md, 16px);\n overflow: visible;\n &.overflow {\n overflow: auto;\n }\n }\n\n &_footer {\n position: relative;\n padding-inline: var(--gap-md, 16px);\n }\n\n &_close {\n z-index: +1;\n cursor: pointer;\n border: none;\n outline: none;\n font-size: 28px;\n background-color: transparent;\n position: absolute;\n right: 10px;\n top: 10px;\n transition: 350ms ease-in-out opacity;\n &:hover {\n opacity: 0.6;\n }\n &:active {\n opacity: 0.3;\n }\n }\n }\n}\n\n:host([open]) {\n .backdrop {\n opacity: 1;\n pointer-events: all;\n }\n}\n\n:host([size=\"xs\"]) {\n .modal {\n max-width: min(300px, 90vw);\n }\n}\n:host([size=\"sm\"]) {\n .modal {\n max-width: min(480px, 90vw);\n }\n}\n:host([size=\"md\"]) {\n .modal {\n max-width: min(600px, 90vw);\n }\n}\n:host([size=\"lg\"]) {\n .modal {\n max-width: min(960px, 90vw);\n }\n}\n:host([size=\"xl\"]) {\n .modal {\n max-width: min(1200px, 80vw);\n }\n}\n\n@keyframes fadeIn {\n from {\n transform: translateY(-10px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n","import { Component, Host, h, Prop, Element, Event, EventEmitter, Method } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-modal-v2',\n styleUrl: 'xv-modal.scss',\n shadow: true,\n})\nexport class XvModal {\n @Element() el: HTMLElement;\n /**\n * Is modal opened\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n /**\n * If true then modal not be closed on backdrop click\n */\n @Prop({ reflect: true }) permanent: boolean = false;\n /**\n * Size of modal. But max size is 90% view width\n */\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n /**\n * When need scroll modal content\n */\n @Prop({ reflect: true }) overflow: boolean = true;\n\n @Event({ eventName: 'openChange' }) openChange!: EventEmitter<boolean>;\n\n private triggerEl: HTMLElement | null = null;\n\n @Method()\n async openModal() {\n this.open = true;\n this.openChange?.emit(this.open);\n return this.open\n };\n\n @Method()\n async closeModal() {\n this.open = false;\n this.openChange?.emit(this.open);\n return this.open\n }\n\n private onBackdropClick = async (e: MouseEvent) => {\n if (this.permanent) return;\n // click on backdrop\n if (e.target === e.currentTarget) {\n await this.closeModal();\n }\n };\n\n private removeTriggerListener = () => {\n this.triggerEl?.removeEventListener('click', this.openModal.bind(this));\n };\n\n private setupTrigger = () => {\n this.removeTriggerListener();\n const slot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n\n if (slot) {\n const assigned = slot.assignedElements();\n if (assigned.length > 0) {\n this.triggerEl = assigned[0] as HTMLElement;\n this.triggerEl.addEventListener('click', this.openModal.bind(this));\n }\n }\n }\n\n render() {\n return (\n <Host role=\"dialog\" size={this.size} id={this.el.id}>\n <slot name=\"trigger\" onSlotchange={this.setupTrigger} />\n\n <div class={{ backdrop: true }} onClick={this.onBackdropClick}>\n <div class=\"modal\">\n <button class=\"modal_close\" onClick={this.closeModal.bind(this)}>×</button>\n <div class=\"modal_header\">\n <slot name=\"header\">\n {this.el?.title && <h5 class=\"modal_header__title\">{this.el.title}</h5>}\n </slot>\n </div>\n\n <div class={{ 'modal_content': true, overflow: this.overflow }}>\n <slot />\n </div>\n\n <div class=\"modal_footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.removeTriggerListener();\n }\n}\n","export enum NOTIFICATION_VARIANTS {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error'\n}\n",":host {\n --notification-icon-size: 20px;\n\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n border-radius: 3px;\n padding: var(--gap-md, 16px);\n column-gap: var(--gap-md, 16px);\n border: 1px solid;\n\n .content {\n flex: 1;\n text-align: left;\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 128%;\n letter-spacing: 0.16px;\n display: flex;\n flex-direction: column;\n row-gap: var(--spacing-06, 24px);\n word-break: break-all;\n\n &_title {\n text-align: left;\n margin: 0;\n padding: 0;\n font-weight: 700;\n line-height: var(--notification-icon-size);\n }\n }\n\n .icon {\n width: var(--notification-icon-size);\n height: var(--notification-icon-size);\n font-size: var(--notification-icon-size);\n fill: currentColor;\n }\n\n .close {\n --notification-close-size: 16px;\n\n background-color: transparent;\n border: none;\n width: var(--notification-close-size);\n height: var(--notification-close-size);\n min-width: var(--notification-close-size);\n min-height: var(--notification-close-size);\n position: relative;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: 300ms ease-in-out opacity;\n\n &:after, &:before {\n content: '';\n position: absolute;\n top: calc(50% - (var(--notification-close-size) / 2));\n left: calc(50% - 1px);\n display: inline-block;\n width: 2px;\n height: 90%;\n background-color: var(--button-tertiary, #273435);\n }\n\n &:after {\n transform: rotate(45deg);\n }\n\n &:before {\n transform: rotate(-45deg);\n }\n\n &:hover {\n opacity: 0.7;\n }\n\n &:active {\n opacity: 0.3;\n }\n }\n\n ::slotted([slot=\"footer\"]) {\n margin: 0;\n padding: 0;\n }\n}\n\n:host([type=\"info\"]) {\n border-color: var(--support-info, #1B87B2);\n background-color: var(--support-info-background, #E2F5F8);\n .icon {\n color: var(--support-info, #1B87B2);\n }\n}\n\n:host([type=\"success\"]) {\n border-color: var(--support-success, #97BF0D);\n background-color: var(--support-success-background, #F4F7E5);\n .icon {\n color: var(--support-success, #1B87B2);\n }\n}\n\n:host([type=\"warning\"]) {\n border-color: var(--support-warning, #FF7F04);\n background-color: var(--support-warning-backround, #FFF9C2);\n .icon {\n color: var(--support-warning, #FF7F04);\n }\n}\n\n:host([type=\"error\"]) {\n border-color: var(--support-error, #F1290E);\n background-color: var(--support-error-background, #FEE9E8);\n .icon {\n color: var(--support-error, #F1290E);\n }\n}\n","import { Component, Host, h, Prop, Element, Event, EventEmitter } from '@stencil/core';\nimport { NOTIFICATION_VARIANTS } from './_vars';\n\n@Component({\n tag: 'xv-notification-v2',\n styleUrl: 'xv-notification.scss',\n shadow: true,\n assetsDirs: ['xv-notification/icons']\n})\nexport class XvNotification {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) variant: NOTIFICATION_VARIANTS = NOTIFICATION_VARIANTS.INFO;\n @Prop({ reflect: true }) dismissible: boolean = false;\n @Event() close: EventEmitter<MouseEvent>;\n\n private closeHandle = (e: MouseEvent) => this.close.emit(e);\n\n render() {\n return (\n <Host class=\"xv-notification\" type={this.variant}>\n {this.renderIcon(this.variant)}\n\n <div class=\"content\">\n <div class=\"content_wrapper\">\n {this.el.title && <h5 class=\"content_title\">{this.el.title}</h5>}\n <slot></slot>\n </div>\n <slot name=\"footer\"></slot>\n </div>\n\n {this.dismissible && <button class=\"close\" onClick={this.closeHandle} />}\n </Host>\n );\n }\n\n private renderIcon = (variant: NOTIFICATION_VARIANTS, cls: string = 'icon') => {\n switch (variant) {\n case NOTIFICATION_VARIANTS.ERROR: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\" />\n </svg>\n );\n }\n case NOTIFICATION_VARIANTS.INFO: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\" />\n </svg>\n );\n }\n case NOTIFICATION_VARIANTS.SUCCESS: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\" />\n </svg>\n )\n }\n case NOTIFICATION_VARIANTS.WARNING: {\n return (\n <svg class={cls} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path\n 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\" />\n </svg>\n );\n }\n default:\n return null;\n }\n };\n}\n",":host {\n display: inline-block;\n text-align: left;\n .control {\n &_label {\n display: block;\n margin-bottom: var(--spacing-03);\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 700;\n line-height: var(--fz-md);\n letter-spacing: 0.32px;\n }\n\n &_input {\n display: flex;\n border: 1px solid var(--border-subtle-01);\n outline: 2px solid transparent;\n background-color: transparent;\n border-radius: 3px;\n transition: 250ms ease-in-out border-color, 250ms ease-in-out outline-color;\n &:hover {\n border-color: var(--border-subtle-selected-01);\n }\n\n &:focus-within {\n outline-color: var(--focus);\n }\n\n &.error {\n outline-color: var(--support-error);\n }\n\n &.readonly {\n border-radius: 0;\n border-top-width: 0;\n border-left-width: 0;\n border-right-width: 0;\n outline-color: transparent;\n }\n\n input[type=\"number\"] {\n flex: 1;\n border: none;\n outline: none;\n -moz-appearance: textfield;\n background-color: transparent;\n margin: 0;\n padding-block: 0;\n padding-inline: var(--spacing-05);\n box-sizing: border-box;\n color: var(--text-primary);\n min-width: 20px;\n font-style: normal;\n font-weight: 400;\n letter-spacing: 0.16px;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n\n &__icons {\n display: inline-flex;\n align-items: stretch;\n column-gap: 2px;\n .status-icon {\n display: inline-flex;\n align-items: center;\n align-self: center;\n font-size: 1.35em;\n &.error {\n background-color: var(--support-error);\n color: white;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n }\n &.warning {\n color: var(--support-warning);\n }\n }\n\n hr {\n border: none;\n outline: none;\n width: 2px;\n height: 60%;\n align-self: center;\n background-color: var(--border-subtle-01);\n display: inline-flex;\n }\n }\n }\n }\n\n .message {\n margin: var(--spacing-02) 0 0;\n color: var(--text-helper, #646464);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--fz-md, 16px);\n letter-spacing: 0.32px;\n &.error {\n color: var(--text-error);\n }\n &.warning {\n color: var(--text-secondary, #515151);\n }\n }\n}\n\n:host(.disabled) {\n cursor: not-allowed;\n\n .control_label,\n .control_input input[type=\"number\"],\n .control_input input[type=\"number\"]::placeholder,\n .message:not(.error) {\n color: var(--text-disabled);\n cursor: not-allowed;\n }\n\n .control_input__icons,\n .message.error {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n:host([block]) {\n display: block;\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, AttachInternals } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-number-input-v2',\n styleUrl: 'xv-number-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class XvNumberInput {\n @Prop() label: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true, mutable: true }) value: number;\n @Event({ eventName: 'valueChange' }) valueChange: EventEmitter<number>;\n @Prop() helper?: string;\n @Prop() error?: string | boolean;\n @Prop() warning?: string | boolean;\n @Prop() step: number = 10;\n @Prop() max?: number;\n @Prop() min?: number;\n @Prop() readonly?: boolean;\n @Prop() disabled?: boolean;\n @Prop() loading: boolean = false;\n @Prop() block?: boolean;\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n\n @AttachInternals() internals: ElementInternals;\n\n private increment = () => {\n const newValue = (this.value || 0) + this.step;\n if (this.max !== undefined && newValue > this.max) return;\n this.setValue(newValue)\n };\n\n private decrement = () => {\n const newValue = (this.value || 0) - this.step;\n if (this.min !== undefined && newValue < this.min) return;\n this.setValue(newValue)\n };\n\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const num = parseFloat(input.value) || 0;\n\n if (isNaN(num)) return;\n\n this.setValue(num);\n };\n\n private setValue(value: number) {\n this.value = value;\n this.internals.setFormValue(this.value?.toString());\n this.valueChange.emit(this.value);\n }\n\n render() {\n return (\n <Host class={{ disabled: !!this.disabled }}>\n <label class=\"control\">\n {this.label && <span class=\"control_label\">{this.label}</span>}\n\n <div class={{\n 'control_input': true,\n readonly: !!this.readonly,\n error: !!this.error,\n warning: !!this.warning\n }}>\n <input\n type=\"number\"\n placeholder={this.placeholder}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleInput}\n name={this.name}\n min={this.min}\n max={this.max}\n step={this.step}\n value={this.value}\n />\n\n <div class=\"control_input__icons\">\n {this.loading ? (\n <xv-loader-v2 size={SIZE_VAR.XS} />\n ) : !!this.error ? (\n <span class=\"status-icon error\" aria-hidden=\"true\">!</span>\n ) : !!this.warning ? (\n <span class=\"status-icon warning\" aria-hidden=\"true\">⚠</span>\n ) : null}\n <xv-button-v2\n size={this.size}\n variant=\"ghost\"\n disabled={this.disabled || this.readonly}\n onClick={this.decrement}\n aria-label=\"Decrease\"\n ><span slot=\"icon-left\" class=\"status-icon\">−</span></xv-button-v2>\n <hr />\n <xv-button-v2\n size={this.size}\n variant=\"ghost\"\n disabled={this.disabled || this.readonly}\n onClick={this.increment}\n aria-label=\"Increase\"\n ><span slot=\"icon-left\" class=\"status-icon\">+</span></xv-button-v2>\n </div>\n </div>\n </label>\n\n\n {this.helper && <p class=\"message\">{this.helper}</p>}\n {typeof this.error === 'string' ? (\n <p class=\"message error\">{this.error}</p>\n ) : typeof this.warning === 'string' ? (\n <p class=\"message warning\">{this.warning}</p>\n ) : null}\n </Host>\n );\n }\n}\n","$tag: xv-overflow-menu-v2;\n\n:host {\n --overflow-menu-size: 40px;\n --overflow-menu-item-padding: 11px 16px;\n\n display: inline-flex;\n flex-direction: column;\n position: relative;\n\n .btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--overflow-menu-size);\n height: var(--overflow-menu-size);\n background-color: transparent;\n border: 1px solid transparent;\n transition: 300ms ease-in-out color, 300ms ease-in-out background-color, 200ms ease box-shadow;\n font-size: calc(var(--overflow-menu-size) / 2);\n color: var(--icon-primary);\n border-radius: 5%;\n margin: 0;\n padding: 0;\n\n &:hover {\n cursor: pointer;\n color: var(--link-primary-hover);\n background-color: var(--background-hover);\n }\n\n &:active {\n background-color: var(--background-active);\n color: var(--icon-disabled);\n }\n\n &:disabled {\n background-color: transparent;\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .list {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-start;\n background-color: var(--layer-01);\n position: absolute;\n top: 100%;\n left: 0;\n max-height: 0;\n overflow: hidden;\n border-radius: 3px;\n transition: 200ms ease-in-out max-height, 100ms ease box-shadow;\n min-width: 128px;\n max-width: 50vw;\n width: max-content;\n &.open {\n overflow: visible;\n }\n\n ::slotted(#{$tag}-item) {\n padding: var(--overflow-menu-item-padding);\n }\n\n &.position-right {\n left: initial;\n right: 0;\n border-top-right-radius: 0;\n }\n\n &.position-left {\n border-top-left-radius: 0;\n }\n }\n}\n\n:host([size=\"xs\"]) {\n --overflow-menu-item-padding: 4px 16px;\n --overflow-menu-size: 24px;\n}\n:host([size=\"sm\"]) {\n --overflow-menu-size: 32px;\n --overflow-menu-item-padding: 7px 16px;\n}\n:host([size=\"md\"]) {\n --overflow-menu-size: 40px;\n --overflow-menu-item-padding: 11px 16px;\n}\n:host([size=\"lg\"]) {\n --overflow-menu-size: 48px;\n --overflow-menu-item-padding: 16px;\n}\n:host([size=\"xl\"]) {\n --overflow-menu-size: 56px;\n --overflow-menu-item-padding: 16px;\n}\n\n:host([open]) {\n .btn {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n background-color: var(--layer-01);\n box-shadow: -2px 2px 2px 0 rgba(0, 0, 0, 0.1);\n z-index: 1;\n }\n\n .list {\n max-height: 500px;\n z-index: 2;\n box-shadow: -2px 2px 2px 0 rgba(0, 0, 0, 0.1);\n }\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { OverflowMenuEvent } from './_vars';\n\n@Component({\n tag: 'xv-overflow-menu-v2',\n styleUrl: 'xv-overflow-menu.scss',\n shadow: true,\n})\nexport class XvOverflowMenu {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop() position: 'left' | 'right' = 'left';\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Event() selectItem: EventEmitter<OverflowMenuEvent>;\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'Escape'){\n ev.stopPropagation();\n ev.preventDefault();\n this.handleClose();\n }\n }\n\n @Watch('open')\n openChangeHandle() {\n if (this.disabled) return;\n\n if (this.open) {\n this.el.addEventListener('itemClick', this.handleSelectItem);\n document.body.addEventListener('click', this.handleClick);\n } else {\n this.removeListeners();\n }\n }\n\n private handleClose = () => {\n if (this.open) this.open = false;\n }\n\n private removeListeners = () => {\n this.el.removeEventListener('itemClick', this.handleSelectItem);\n document.body.removeEventListener('click', this.handleClick);\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (!this.open || this.el.contains(ev.target as Node)) return;\n\n ev.stopPropagation();\n ev.preventDefault();\n this.handleClose()\n }\n\n private onOpenToggle = () => {\n this.open = !this.open;\n };\n\n private handleSelectItem = ({ detail }: CustomEvent<OverflowMenuEvent>) => {\n this.selectItem.emit(detail);\n this.handleClose();\n }\n\n render() {\n return (\n <Host\n class=\"xv-overflow-menu\"\n size={this.size}\n role=\"menu\"\n tabindex={-1}\n >\n <button class={{ btn: true, open: this.open }} onClick={this.onOpenToggle} disabled={this.disabled}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 128 512\">\n <path\n 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\" />\n </svg>\n </button>\n <div class={{list: true, open: this.open, [`position-${this.position}`]: true }}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n\n componentDidLoad() {\n this.openChangeHandle();\n }\n\n disconnectedCallback() {\n this.removeListeners();\n }\n}\n","export interface OverflowMenuEvent {\n value: string | number | object | undefined;\n event: PointerEvent;\n}\n\nexport enum OverflowMenuVariant {\n DEFAULT = '',\n DANGER = 'danger',\n}\n",":host {\n flex: 1;\n display: inline-block;\n background-color: transparent;\n transition: 200ms ease background-color;\n user-select: none;\n text-align: left;\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 128.571%;\n letter-spacing: 0.16px;\n}\n:host(:hover) {\n cursor: pointer;\n background-color: var(--layer-hover-01, #E9E9E9);\n}\n:host(:active) {\n background-color: var(--layer-active-01, #D1D1D1);\n}\n:host(:focus) {\n border: 2px solid var(--focus, #273435);\n}\n\n:host([variant=\"danger\"]) {\n background-color: var(--text-error, #D62512);\n color: var(--text-on-color, #FFF);\n}\n:host([variant=\"danger\"]:hover) {\n background-color: var(--support-error, #F1290E);\n}\n:host([variant=\"danger\"]:active) {\n background-color: var(--text-error, #D62512);\n}\n\n:host([disabled]) {\n background-color: var(--layer-01, #F7F7F7) !important;\n color: var(--text-disabled) !important;\n cursor: not-allowed;\n}\n","import { Component, Host, h, Prop, Listen, Event, EventEmitter } from '@stencil/core';\nimport { OverflowMenuEvent, OverflowMenuVariant } from '../_vars';\n\n@Component({\n tag: 'xv-overflow-menu-v2-item',\n styleUrl: 'xv-overflow-menu-item.scss',\n shadow: true,\n})\nexport class XvOverflowMenuItem {\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) value: OverflowMenuEvent['value'];\n @Prop() variant: OverflowMenuVariant = OverflowMenuVariant.DEFAULT;\n @Event() itemClick: EventEmitter<OverflowMenuEvent>;\n\n @Listen('click')\n handleClick(event: PointerEvent) {\n if (this.disabled) return;\n\n this.itemClick.emit({ event, value: this.value });\n }\n\n render() {\n return (\n <Host\n class=\"xv-overflow-menu-item\"\n role=\"menuitem\"\n disabled={this.disabled}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n","export enum PROGRESS_VARIANTS {\n DEFAULT = '',\n HORIZONTAL = 'horizontal'\n}\n\nexport enum PROGRESS_ITEM_STATUS {\n DONE = 'done',\n NO_STARTED = 'not_started',\n IN_PROGRESS = 'in_progress',\n}\n","$prefix: xv-progress-indicator-v2;\n\n:host {\n --progress-indicator-icon-size: 22px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n font-family: var(--ff-body, inherit);\n overflow-x: auto;\n}\n\n:host([variant=\"horizontal\"]) {\n ::slotted(#{$prefix}-item) {\n flex-direction: row;\n column-gap: var(--gap-xs, 8px);\n justify-content: flex-start;\n padding-left: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n }\n}\n\n:host([size=\"xs\"]) {\n --progress-indicator-icon-size: 14px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n}\n:host([size=\"sm\"]) {\n --progress-indicator-icon-size: 16px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n}\n:host([size=\"md\"]) {\n --progress-indicator-icon-size: 22px;\n --progress-indicator-font-size: var(--fz-md, 14px);\n}\n:host([size=\"lg\"]) {\n --progress-indicator-icon-size: 24px;\n --progress-indicator-font-size: var(--fz-lg, 18px);\n}\n:host([size=\"xl\"]) {\n --progress-indicator-icon-size: 32px;\n --progress-indicator-font-size: var(--fz-xl, 20px);\n}\n","import { Component, Host, h, Prop, Watch, Element } from '@stencil/core';\nimport { PROGRESS_ITEM_STATUS, PROGRESS_VARIANTS } from './_vars';\nimport { SIZE_VAR } from '../../types/enum';\nimport { forEach } from '../../utils/utils';\n\n@Component({\n tag: 'xv-progress-indicator-v2',\n styleUrl: 'xv-progress-indicator.scss',\n shadow: true,\n})\nexport class XvProgressIndicator {\n @Element() el: HTMLElement;\n /**\n * Current progress\n * from 0 to 100\n */\n @Prop({ reflect: true }) progress: number = 0;\n /**\n * Progress variant\n * enum PROGRESS_VARIANTS\n * possible option `horizontal`\n */\n @Prop() variant: PROGRESS_VARIANTS = PROGRESS_VARIANTS.DEFAULT;\n /**\n * Size of progress\n * enum SIZE_VAR\n * possible options `XS | SM | MD | LG | XL`\n */\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n\n // Update 'xv-progress-indicator-item' done status\n @Watch('progress')\n updateChildItems() {\n const items = this.el.children;\n const itemsCount = this.el.childElementCount;\n const progressPerItem = 100 / itemsCount;\n\n if (!items.length || !itemsCount) return;\n\n forEach(items, (item, index) => {\n const itemProgressStart = index * progressPerItem;\n let status: PROGRESS_ITEM_STATUS;\n const localProgress = Math.min(\n Math.max((this.progress - itemProgressStart) / progressPerItem, 0), 1\n ) * 100;\n\n if (localProgress >= 100) {\n status = PROGRESS_ITEM_STATUS.DONE;\n } else if (localProgress > 0) {\n status = PROGRESS_ITEM_STATUS.IN_PROGRESS;\n } else {\n status = PROGRESS_ITEM_STATUS.NO_STARTED;\n }\n\n // Set item current status\n (item as HTMLElement).setAttribute('status', status);\n\n // Update progress line\n const line = (item as HTMLElement)?.shadowRoot?.querySelector('.line') as HTMLElement;\n if (line) line.style.width = `${localProgress}%`;\n });\n }\n\n // Load initial done status\n componentDidLoad() {\n this.updateChildItems()\n }\n\n render() {\n return (\n <Host variant={this.variant} size={this.size} class={{ 'xv-progress-indicator': true }}>\n <slot></slot>\n </Host>\n );\n }\n}\n",":host(.xv-progress-indicator-item) {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n padding: 10px 16px;\n row-gap: var(--gap-sm, 10px);\n &:before {\n width: 100%;\n }\n\n &:before, .line {\n content: '';\n z-index: 1;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n color: inherit;\n background-color: var(--border-subtle-01, grey);\n }\n\n .line {\n width: 0;\n color: inherit;\n transition: width 250ms ease;\n background-color: var(--background-brand, currentColor);\n }\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--progress-indicator-icon-size, 22px);\n height: var(--progress-indicator-icon-size, 22px);\n min-width: var(--progress-indicator-icon-size, 22px);\n min-height: var(--progress-indicator-icon-size, 22px);\n max-width: var(--progress-indicator-icon-size, 22px);\n max-height: var(--progress-indicator-icon-size, 22px);\n border: 2px dashed var(--icon-primary, currentColor);\n border-radius: 50%;\n svg {\n width: calc(var(--progress-indicator-icon-size, 22px) * 0.637);\n height: calc(var(--progress-indicator-icon-size, 22px) * 0.637);\n opacity: 0;\n transition: opacity 500ms ease-in-out;\n }\n }\n\n .label {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--progress-indicator-font-size, 14px);\n line-height: 1.1;\n letter-spacing: 0.16px;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n}\n\n:host([status=\"done\"]),\n:host([status=\"in_progress\"]), {\n .icon {\n border-color: var(--background-brand, currentColor);\n color: var(--background-brand, inherit);\n border-style: solid;\n svg {\n opacity: 1;\n }\n }\n\n .line {\n width: 100%;\n background-color: var(--background-brand, currentColor);\n }\n}\n\n:host([status=\"in_progress\"]) {\n .icon {\n border-color: var(--background-brand, currentColor);\n color: var(--background-brand, inherit);\n border-style: solid;\n position: relative;\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n background-color: var(--background-brand, currentColor);\n border-top-left-radius: 50% 100%;\n border-bottom-left-radius: 50% 100%;\n }\n\n svg {\n opacity: 0;\n }\n }\n}\n","import { Component, Host, h, Element, Prop } from '@stencil/core';\nimport { PROGRESS_ITEM_STATUS } from '../_vars';\n\n@Component({\n tag: 'xv-progress-indicator-v2-item',\n styleUrl: 'xv-progress-indicator-item.scss',\n shadow: true,\n})\nexport class XvProgressIndicatorItem {\n @Element() el: HTMLElement;\n @Prop({ reflect: false }) status: PROGRESS_ITEM_STATUS = PROGRESS_ITEM_STATUS.NO_STARTED;\n\n render() {\n return (\n <Host\n status={this.status}\n class={{'xv-progress-indicator-item': true}}\n >\n <span class=\"line\"/>\n <span class=\"icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\">\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n </span>\n <p class=\"label\"><slot/></p>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n:host([loading]) {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 200px;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { SIZE_VAR } from '../../../types/enum';\n\n@Component({\n tag: 'xv-tab-v2',\n styleUrl: 'xv-tab.scss',\n shadow: true,\n})\nexport class XvTab {\n @Prop({ reflect: true }) label: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) loading: boolean = false;\n @Prop() name?: number | string;\n\n render() {\n return (\n <Host disabled={this.disabled} name={this.name}>\n {this.loading ? <xv-loader-v2 size={SIZE_VAR.LG} /> : <slot />}\n </Host>\n );\n }\n}\n","$tag-name: xv-table-v2;\n\n:host {\n --xv-table-min-height: 51.11px;\n --xv-table-padding-x: 16px;\n --xv-table-padding-y: 15px;\n --xv-table-cols-template: repeat(auto-fit, minmax(0, 1fr));\n\n display: block;\n .batch-actions {\n user-select: none;\n pointer-events: none;\n position: absolute;\n left: 0;\n bottom: 100%;\n width: 0;\n min-height: 48px;\n overflow: hidden;\n border-radius: 3px 3px 0 0;\n background-color: var(--interactive-01, #273435);\n display: flex;\n align-items: center;\n justify-content: space-between;\n column-gap: var(--spacing-04);\n flex-wrap: nowrap;\n box-sizing: border-box;\n transition: 250ms ease-in-out height, 250ms ease-in-out width, 250ms ease-in-out padding-inline;\n\n color: var(--text-on-color, #fff);\n\n &_content {\n display: block;\n overflow: hidden;\n white-space: nowrap;\n }\n\n &_count {\n margin: 0;\n white-space: nowrap;\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--fz-lg, 18px);\n letter-spacing: 0.16px;\n }\n }\n\n .xv-table {\n display: flex;\n flex-direction: column;\n position: relative;\n &_wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--layer-accent-03) transparent;\n ::slotted(*) {\n min-width: 1000px;\n }\n }\n ::slotted([checked]) {\n background-color: var(--layer-selected-01, #E3E3E3);\n }\n ::slotted([checked]:not([header]):hover) {\n background-color: var(--layer-selected-hover-01, #DADADA);\n }\n\n ::slotted(#{$tag-name}-row[disabled]) {\n pointer-events: none;\n opacity: 0.4;\n cursor: not-allowed;\n user-select: none;\n }\n\n ::slotted([slot=\"footer\"]:hover),\n ::slotted([slot=\"footer\"]) {\n background-color: var(--layer-accent-02, #E3E3E3);\n }\n\n &_loading {\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--xv-table-min-height, 51.11px);\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.8);\n }\n }\n\n .xv-table-title,\n ::slotted([slot=\"title\"]) {\n color: var(--text-primary, #333)!important;\n font-size: var(--fz-xl, 21px)!important;\n margin-top: var(--spacing-05, 16px)!important;\n margin-bottom: var(--spacing-06, 24px)!important;\n font-family: var(--ff-heading, \"Gill Sans\");\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n }\n}\n\n:host([hover]) {\n .xv-table {\n ::slotted(:hover:not([header])) {\n background-color: var(--layer-hover-01, #E9E9E9);\n }\n }\n}\n\n:host(.batchVisible) {\n .batch-actions {\n pointer-events: initial;\n user-select: initial;\n width: 100%;\n padding-inline: var(--xv-table-padding-x);\n }\n}\n\n:host([expandable]) {\n ::slotted(#{$tag-name}-row) {\n padding-inline-start: calc((max(10px, var(--xv-table-padding-x)) * 2) + 10px);\n }\n}\n\n:host([variant-checkbox]) {\n ::slotted([slot=\"footer\"]:not([variant])) {\n padding-inline-start: calc((max(10px, var(--xv-table-padding-x)) * 2) + 57.97px);\n }\n}\n\n// region Size Vars\n:host([size=\"xs\"]) {\n --xv-table-padding-y: 7px;\n --xv-table-min-height: 35.1px;\n}\n:host([size=\"sm\"]) {\n --xv-table-padding-y: 10px;\n --xv-table-min-height: 41.11px;\n}\n:host([size=\"lg\"]) {\n --xv-table-padding-y: 21px;\n --xv-table-min-height: 63.09px;\n}\n:host([size=\"xl\"]) {\n --xv-table-padding-y: 31px;\n --xv-table-min-height: 78.77px;\n}\n// endregion\n","import { Component, Host, h, Element, Prop, State, Listen, Fragment, Watch } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { SelectRowDto } from './_vars';\n\n@Component({\n tag: 'xv-table-v2',\n styleUrl: 'xv-table.scss',\n shadow: true,\n})\nexport class XvTable {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) size?: SIZE_VAR;\n @Prop({ reflect: true }) hover?: boolean;\n @Prop({ reflect: true }) loading?: boolean;\n @Prop({ reflect: true, attribute: 'colsSize' }) colsSize?: (string | null)[];\n @State() selected: Map<string, SelectRowDto> = new Map();\n @State() selectedCount: number = 0;\n\n @Listen('checkedChange')\n handleCheckedChange({ detail }: CustomEvent<SelectRowDto>) {\n if (detail.header || detail.expandable) return;\n if (detail.checked) {\n this.selected.set(detail.name, detail);\n } else {\n this.selected.delete(detail.name);\n }\n\n this.selectedCount = this.selected.size;\n }\n\n @Watch('colsSize')\n private setColsSizeTemplate() {\n if (!this.colsSize || !this.colsSize?.length) return;\n\n this.el.style.setProperty(\n '--xv-table-cols-template',\n this.colsSize\n .map((v) => {\n if (!v) return 'minmax(0, 1fr)';\n if (v === 'auto') return 'minmax(0, auto)';\n return `calc(${v} - ${50 / this.colsSize.length}px)`;\n })\n .join(' ') + ' repeat(auto-fit, minmax(0, 1fr))',\n );\n }\n\n render() {\n return (\n <Host class={{ batchVisible: !!this.selectedCount }}>\n <slot name=\"title\">\n {!!this.el.title && <h2 class=\"xv-table-title\">{this.el.title}</h2>}\n </slot>\n\n <slot name=\"toolbar\" />\n\n <div class=\"xv-table\">\n <div class=\"batch-actions\">\n <Fragment>\n <div class=\"batch-actions_content\">\n <slot name=\"batch\" />\n </div>\n <p class=\"batch-actions_count\">\n {!!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`}\n </p>\n </Fragment>\n </div>\n\n <div class=\"xv-table_wrapper\">\n <slot />\n\n <slot name=\"footer\" />\n </div>\n\n {!!this.loading && (\n <div class=\"xv-table_loading\">\n <xv-loader-v2 size={SIZE_VAR.LG} />\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setColsSizeTemplate();\n }\n}\n",":host {\n white-space: nowrap;\n\n overflow: hidden;\n text-overflow: ellipsis;\n padding: var(--xv-table-padding-y) var(--xv-table-padding-x);\n color: var(--text-primary, #333);\n font-family: var(--ff-body, Tahoma);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 1.2;\n letter-spacing: 0.16px;\n transition: .25s ease-in-out background-color;\n}\n\n:host([multiline]) {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n white-space: initial;\n padding-bottom: 1px; // overflow some symbols on bottom\n padding-top: 0;\n line-height: 1.2;\n}\n\n// region Cell Align\n:host([align=\"left\"]) {\n text-align: left;\n}\n:host([align=\"right\"]) {\n text-align: right;\n}\n:host([align=\"center\"]) {\n text-align: center;\n}\n// endregion\n\n// region Sorting styles\n:host([sort]) {\n position: relative;\n cursor: pointer;\n user-select: none;\n &:before, &:after {\n font-size: 12px;\n line-height: 10px;\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: 8px;\n pointer-events: none;\n transition: 350ms ease-in-out opacity;\n opacity: 0;\n }\n\n &:before {\n content: \"▲\";\n top: 50%;\n transform: translateY(calc(-50% - 5px));\n }\n\n &::after {\n content: \"▼\";\n top: 50%;\n transform: translateY(calc(-50% + 5px));\n }\n}\n:host([sort]:hover) {\n background-color: var(--layer-accent-hover-01, #E3E3E3);\n &::before, &::after {\n opacity: 1;\n }\n}\n:host([sort=\"asc\"]) {\n background-color: var(--layer-accent-active-01, #D1D1D1);\n &::before {\n opacity: 1;\n }\n\n &::after {\n display: none;\n }\n}\n:host([sort=\"desc\"]) {\n background-color: var(--layer-accent-active-01, #D1D1D1);\n &::before {\n display: none;\n }\n\n &::after {\n opacity: 1;\n }\n}\n// endregion\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, Listen } from '@stencil/core';\nimport { XVTableSortDto } from '../_vars';\nimport { forEach, uidGenerator } from '../../../utils/utils';\nimport { XV_SORT_DIR } from '../../../types/enum';\n\n@Component({\n tag: 'xv-table-v2-cell',\n styleUrl: 'xv-table-cell.scss',\n shadow: true,\n})\nexport class XvTableCell {\n @Element() el: HTMLElement;\n @Prop({ reflect: true }) multiline?: boolean;\n @Prop({ reflect: true, mutable: true }) name?: string;\n @Prop({ reflect: true }) align?: 'left' | 'right' | 'center';\n @Prop({ reflect: true, mutable: true }) sort?: XV_SORT_DIR | '';\n @Event({ eventName: 'sortChange' }) sortChange: EventEmitter<XVTableSortDto>;\n\n @Listen('click')\n handleSort() {\n if (this.sort === undefined) return;\n let sort: XV_SORT_DIR | '' = this.sort;\n if (this.sort === '') sort = XV_SORT_DIR.NONE;\n\n this.sort = sort === XV_SORT_DIR.NONE ?\n XV_SORT_DIR.ASC : sort === XV_SORT_DIR.ASC ?\n XV_SORT_DIR.DESC : XV_SORT_DIR.NONE;\n\n forEach(this.el.parentElement.children, (cell) => {\n if (cell !== this.el && cell.hasAttribute('sort')) {\n cell.setAttribute('sort', 'none');\n }\n });\n\n if (!this.name) this.name = uidGenerator();\n this.sortChange.emit({ name: this.name, value: this.sort });\n };\n\n render() {\n return (\n <Host><slot /></Host>\n );\n }\n}\n","import { XV_SORT_DIR } from '../../types/enum';\n\nexport interface SelectRowDto {\n name: string;\n checked: boolean;\n value?: string | number | object;\n partial?: boolean;\n header?: boolean;\n expandable?: boolean;\n}\n\nexport const XV_EXPANDABLE_KEY = 'expandable';\nexport const XV_TABLE_TAG = 'xv-table-v2';\n\nexport interface XVTableSortDto {\n name?: string;\n value: XV_SORT_DIR;\n}\n","$tag-name: xv-table-v2;\n\n:host {\n display: block;\n position: relative;\n transition: .25s ease-in-out background-color;\n\n .expand-btn {\n z-index: 9;\n position: absolute;\n left: max(10px, var(--xv-table-padding-x));\n top: max(2px, calc(var(--xv-table-padding-y) + 2px));\n background-color: transparent;\n cursor: pointer;\n outline: none;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n display: block;\n width: 8.5px;\n height: 8.5px;\n border-top: none;\n border-left: none;\n border-right: 2px solid var(--icon-primary, #333);\n border-bottom: 2px solid var(--icon-primary, #333);\n transform: rotate(45deg);\n transform-origin: center center;\n transition: .2s ease-in-out transform;\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n &.open {\n transform: rotate(-135deg);\n }\n }\n\n .expandableContent {\n overflow: hidden;\n margin: 0;\n padding: 0;\n max-height: 0;\n transition: 250ms ease max-height;\n &.open {\n max-height: 600px;\n }\n }\n\n ::slotted([slot=\"expandable\"]) {\n display: grid;\n align-items: center;\n }\n\n ::slotted(#{$tag-name}-row),\n ::slotted([slot=\"expandable\"]) {\n padding-inline-start: calc((max(10px, var(--xv-table-padding-x)) * 2) + 10px);\n }\n\n ::slotted([disabled]) {\n pointer-events: none;\n opacity: 0.4;\n cursor: not-allowed;\n user-select: none;\n }\n}\n","import { Component, Host, h, Element, Prop } from '@stencil/core';\nimport { XV_EXPANDABLE_KEY } from '../_vars';\nimport { setAttr } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-expand',\n styleUrl: 'xv-table-expand.scss',\n shadow: true,\n})\nexport class XvTableExpand {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n private handleExpand = () => {\n this.open = !this.open;\n };\n\n render() {\n return (\n <Host>\n <button\n class={{ 'expand-btn': true, open: this.open }}\n disabled={this.disabled}\n onClick={this.handleExpand}\n />\n <slot name={XV_EXPANDABLE_KEY} />\n\n <div class={{ expandableContent: true, open: this.open }}><slot /></div>\n </Host>\n );\n }\n\n componentDidLoad() {\n setAttr(this.el.parentElement, XV_EXPANDABLE_KEY, true);\n }\n}\n",":host {\n display: grid;\n grid-template-columns: var(--xv-table-cols-template, repeat(auto-fit, minmax(0, 1fr)));\n border-bottom: 1px solid #E3E3E3;\n border-right: 1px solid #E3E3E3;\n border-left: 1px solid #E3E3E3;\n min-height: var(--xv-table-min-height);\n align-items: center;\n align-content: center;\n transition: .25s ease-in-out background-color;\n .cell-control {\n min-height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n\n:host([variant]) {\n grid-template-columns: minmax(47.97px, min-content) var(--xv-table-cols-template, repeat(auto-fit, minmax(0, 1fr)));\n}\n\n:host([hover]:not([header]):hover) {\n background-color: var(--layer-hover-01, #E9E9E9);\n}\n:host([checked]) {\n background-color: var(--layer-selected-01, #E3E3E3);\n}\n:host([checked]:hover) {\n background-color: var(--layer-selected-hover-01, #DADADA);\n}\n\n:host([header]) {\n background-color: var(--layer-accent-01, #F7F7F7);\n box-shadow: 0 0 0 1px #E3E3E3 inset;\n border-bottom: none;\n}\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { SelectRowDto, XV_EXPANDABLE_KEY, XV_TABLE_TAG } from '../_vars';\nimport { setAttr, uidGenerator } from '../../../utils/utils';\n\n@Component({\n tag: 'xv-table-v2-row',\n styleUrl: 'xv-table-row.scss',\n shadow: true,\n})\nexport class XvTableRow {\n @Element() el: HTMLElement;\n @Prop({ reflect: true, mutable: true }) checked?: SelectRowDto['checked'];\n @Event({ eventName: 'checkedChange' }) checkedChange: EventEmitter<SelectRowDto>;\n @Prop({ reflect: true, mutable: true }) partial?: SelectRowDto['partial'];\n @Prop({ reflect: true, mutable: true }) name?: SelectRowDto['name'];\n @Prop({ reflect: true }) value?: SelectRowDto['value'];\n @Prop({ reflect: true, mutable: true }) hover?: boolean;\n @Prop({ reflect: true }) readonly?: boolean;\n @Prop({ reflect: true }) required?: boolean;\n @Prop({ reflect: true }) disabled?: boolean;\n @Prop({ reflect: true }) header?: boolean;\n @Prop({ reflect: true, mutable: true }) variant?: 'checkbox' | 'radio' | '';\n\n @Event({ eventName: 'selectRow' }) selectRow: EventEmitter<SelectRowDto>;\n\n @Watch('checked')\n checkedChangeHandle() {\n if (!this.name) this.name = uidGenerator();\n this.checkedChange.emit({\n name: this.name,\n value: this.value,\n checked: this.checked,\n partial: this.partial,\n header: this.header,\n expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,\n });\n }\n\n private checkHandle = ({ detail: checked }: CustomEvent<boolean>) => {\n if (!checked && this.partial) this.partial = checked;\n\n if (!this.name) this.name = uidGenerator();\n this.selectRow.emit({\n name: this.name,\n value: this.value,\n checked: checked,\n partial: this.partial,\n header: this.header,\n expandable: this.el.getAttribute('slot') === XV_EXPANDABLE_KEY,\n });\n };\n\n private setInitialAttrs() {\n if (this.variant || !this.hover) {\n const tableEl = this.el.closest(XV_TABLE_TAG);\n if (!this.hover) {\n this.hover = tableEl.hasAttribute('hover');\n }\n if (this.variant) {\n setAttr(this.el.closest(XV_TABLE_TAG), `variant-${this.variant}`, !!this.variant);\n }\n }\n }\n\n render() {\n return (\n <Host>\n {this.variant !== undefined && (\n <xv-table-v2-cell class=\"cell-control\">\n {this.variant === 'checkbox' && (\n <xv-checkbox-v2\n name={this.name}\n partial={this.partial}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n onEventChange={this.checkHandle}\n />\n )}\n {this.variant === 'radio' && (\n <input\n type=\"radio\"\n name={this.name}\n checked={this.checked || this.partial}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n />\n )}\n </xv-table-v2-cell>\n )}\n\n <slot />\n </Host>\n );\n }\n\n componentWillLoad() {\n this.setInitialAttrs();\n }\n}\n","export enum TAB_TAGS {\n TABS = 'xv-tabs-v2',\n TAB = 'xv-tab-v2'\n}\n\nexport enum TABS_VATIANT {\n DEFAULT = '',\n // other variants will be here\n}\n","$tab-tag: xv-tab-v2;\n$tab-text-active-color: var(--text-primary, #333);\n$tab-text-color: var(--text-secondary, #515151);\n$tab-border-active-color: var(--interactive-01, #273435);\n$tab-border-color: var(--border-border-subtle-01, #D1D1D1);\n\n:host(.xv-tabs) {\n display: flex;\n flex-direction: column;\n\n .tab-headers {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n &_container {\n display: flex;\n flex: 1 1 auto;\n white-space: nowrap;\n overflow-x: auto;\n scroll-behavior: smooth;\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n &_tab {\n background: none;\n padding: 11px var(--gap-md, 16px);\n cursor: pointer;\n font: inherit;\n transition: border-color 0.3s ease, font-weight 0.3s ease, color 0.3s ease;\n position: relative;\n border: 2px solid transparent;\n border-bottom-color: $tab-border-color;\n background-blend-mode: multiply;\n color: $tab-text-color;\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-md, 14px);\n line-height: 18px;\n letter-spacing: 0.16px;\n height: 40px;\n white-space: nowrap;\n\n &:after {\n content: '';\n position: absolute;\n transition: background-color 0.3s ease, width 0.3s ease;\n top: 100%;\n left: 0;\n right: 0;\n width: 0;\n height: 2px;\n background-color: $tab-border-active-color;\n }\n\n &:focus {\n outline: none;\n border: 2px solid $tab-border-color;\n }\n\n &:hover {\n border-bottom-color: var(--border-strong-01, #8B8B8B);\n }\n\n &.active {\n color: $tab-text-active-color;\n font-weight: 700;\n &:after {\n width: 100%;\n }\n\n &:focus {\n border-color: $tab-border-active-color;\n }\n }\n\n &:disabled {\n color: var(--text-on-color-disabled, #8B8B8B);\n border-bottom-color: var(--border-disabled, #D1D1D1);\n cursor: not-allowed;\n &:after {\n background-color: var(--border-disabled, #D1D1D1);\n }\n }\n }\n\n &_btn {\n outline: none;\n width: 40px;\n height: 40px;\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: 0.25s ease-in-out opacity;\n\n &:before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border: solid currentColor;\n border-width: 0 2px 2px 0;\n display: inline-block;\n padding: 5px;\n transform: translate(-50%, -50%) rotate(45deg);\n }\n\n &:active {\n opacity: 0.3;\n }\n\n &.prev:before {\n transform: translate(-50%, -50%) rotate(135deg);\n }\n &.next:before {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n }\n }\n\n .tab-content-wrapper {\n position: relative;\n overflow: hidden;\n padding: var(--gap-md, 16px) 0;\n }\n\n ::slotted(#{$tab-tag}) {\n position: absolute;\n opacity: 0;\n max-height: 0;\n transition: max-height 0.5s ease;\n width: 100%;\n pointer-events: none;\n }\n\n ::slotted(#{$tab-tag}.active) {\n position: relative;\n opacity: 1;\n overflow-y: auto;\n pointer-events: auto;\n max-height: 1000px;\n }\n\n .xv-tabs_empty {\n display: block;\n text-align: center;\n margin: 20px auto;\n font-size: var(--fz-xl);\n color: var(--text-primary);\n }\n}\n\n:host([loading]) {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 300px;\n}\n","import { Component, Host, h, Element, Prop, Event, EventEmitter, State, Listen } from '@stencil/core';\nimport { TAB_TAGS, TABS_VATIANT } from './_vars';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-tabs-v2',\n styleUrl: 'xv-tabs.scss',\n shadow: true,\n})\nexport class XvTabs {\n @Element() el: HTMLElement;\n /**\n * Index of active tab\n */\n @Prop({ reflect: true, mutable: true }) active: number | string = 0;\n /**\n * Emit event to outside\n */\n @Event() activeChange: EventEmitter<number | string>;\n /**\n * Show loader\n */\n @Prop({ reflect: true }) loading?: boolean;\n /**\n * Variant of tabs from TABS_VATIANT enum\n */\n @Prop() variant: TABS_VATIANT = TABS_VATIANT.DEFAULT;\n /**\n * Message when have no tabs\n */\n @Prop() emptyMessage?: string;\n /**\n * local variable for tab labels collection\n */\n @State() tabElements: HTMLElement[] = [];\n /**\n * Is show arrows for scroll\n */\n @State() showArrows: boolean = false;\n\n @Listen('resize', { target: 'window' })\n updateArrowVisibility() {\n const container = this.el.shadowRoot?.querySelector('.tab-headers_container') as HTMLElement | null;\n if (!container) return;\n\n this.showArrows = container.scrollWidth > container.clientWidth;\n }\n\n private collectTabs = () => {\n if (!this.tabElements.length) {\n this.tabElements = Array.from(this.el.querySelectorAll(TAB_TAGS.TAB));\n this.tabElements.forEach((tab) => {\n if (tab.hasAttribute('name') && !this.active) {\n this.active = tab.getAttribute('name');\n }\n })\n\n setTimeout(() => this.updateArrowVisibility(), 100);\n }\n }\n\n private updateTabClasses() {\n this.tabElements.forEach((tab, i) => {\n tab.classList.toggle(\n 'active',\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n });\n }\n\n private handleTabClick(active: string | number) {\n if (active === this.active) return;\n\n this.active = active;\n this.activeChange.emit(Number(this.active) || this.active);\n this.scrollToActiveTab();\n }\n\n private scrollToActiveTab() {\n if (!this.showArrows) return;\n\n // wait next JS tik\n setTimeout(() => {\n this.el.shadowRoot\n .querySelector('.tab-headers_tab.active')\n .scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\n });\n }\n\n private setTab(count: number = 1) {\n const currentIdx = this.tabElements.findIndex(\n (tab, i) =>\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n const nextIdx = currentIdx + count;\n\n if (nextIdx < 0 || nextIdx >= this.tabElements.length) return;\n\n const nextTab = this.tabElements[nextIdx];\n\n if (!nextTab || nextTab.hasAttribute('disabled')) return;\n\n this.handleTabClick(nextTab.getAttribute('name') || nextIdx);\n }\n\n render() {\n if (this.loading) {\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <xv-loader-v2 size={SIZE_VAR.XL} />\n </Host>\n )\n }\n\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <div class=\"tab-headers\" role=\"tablist\">\n <button\n hidden={!this.showArrows || !this.tabElements?.length}\n aria-label=\"Previous\"\n class=\"tab-headers_btn prev\"\n onClick={() => this.setTab(-1)}\n />\n <div class=\"tab-headers_container\">\n {this.tabElements?.length ? this.tabElements.map((tab, index) => (\n <button\n role=\"tab\"\n disabled={!!tab.getAttribute('disabled') || !!(tab as any)?.disabled}\n class={{\n 'tab-headers_tab': true,\n active: (tab.getAttribute('name') || `${index}`) === `${this.active}`,\n }}\n onClick={() => this.handleTabClick(tab.getAttribute('name') || `${index}`)}\n >\n {tab.getAttribute('label') || `Tab ${index + 1}`}\n </button>\n )) : this.emptyMessage && <p class=\"xv-tabs_empty\">{this.emptyMessage}</p>}\n </div>\n <button\n aria-label=\"Next\"\n hidden={!this.showArrows || !this.tabElements?.length}\n class=\"tab-headers_btn next\"\n onClick={() => this.setTab(1)}\n />\n </div>\n\n <div\n class=\"tab-content-wrapper\"\n role=\"tabpanel\"\n tabindex={-1}\n >\n <slot onSlotchange={this.collectTabs} />\n </div>\n </Host>\n );\n }\n\n componentDidRender() {\n this.updateTabClasses();\n }\n}\n",":host {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 1000px;\n background-color: var(--background);\n color: var(--text-primary);\n font-family: var(--ff-body, inherit);\n\n .xv-tag_content {\n padding-left: 8px;\n padding-right: 8px;\n color: inherit;\n font-family: var(--ff-body);\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.32px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .xv-tag_close {\n box-sizing: border-box;\n text-decoration: none;\n border: none;\n background-color: inherit;\n outline: none;\n border-spacing: 0;\n list-style: none outside none;\n margin: 0;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 62px;\n width: 15px;\n height: 15px;\n text-align: left;\n color: inherit;\n text-indent: 0;\n transition: opacity 300ms ease-in-out, filter 300ms ease-in-out;\n &:hover {\n cursor: pointer;\n filter: brightness(80%);\n }\n\n &:active {\n opacity: 0.7;\n }\n\n &:focus {\n outline: 1px solid currentColor;\n }\n\n &:after {\n overflow: hidden;\n width: inherit;\n height: inherit;\n color: inherit;\n font-size: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n content: \"\\00d7\";\n }\n }\n}\n\n:host(.sm) {\n font-size: var(--fz-sm);\n}\n\n:host(.md) {\n font-size: var(--fz-md);\n .xv-tag_content {\n line-height: 24px;\n }\n\n .xv-tag_close {\n height: 24px;\n width: 24px;\n }\n}\n\n:host(.lg) {\n font-size: var(--fz-lg);\n .xv-tag_content {\n line-height: 26px;\n }\n\n .xv-tag_close {\n height: 26px;\n width: 26px;\n }\n}\n\n:host(.disabled) {\n pointer-events: none;\n background-color: var(--layer-01);\n color: var(--text-disabled);\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-tag-v2',\n styleUrl: 'xv-tag.scss',\n shadow: true,\n})\nexport class XvTag {\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() color: string = '';\n @Prop() bg: string = '';\n @Prop() disabled: boolean = false;\n @Prop() closeable: boolean = false;\n @Event() closeClick: EventEmitter<PointerEvent>;\n\n closeHandler(e: PointerEvent) {\n if (this.disabled) return;\n\n this.closeClick.emit(e);\n }\n\n render() {\n return (\n <Host\n style={{ color: this.color, background: this.bg }}\n class={`xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}`}\n >\n <div class=\"xv-tag_content\">\n <slot></slot>\n </div>\n {this.closeable && (\n <button onClick={this.closeHandler.bind(this)} class=\"xv-tag_close\"></button>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n text-align: left;\n .control {\n &_label {\n display: block;\n margin-bottom: var(--spacing-03);\n color: var(--text-secondary, #515151);\n font-family: var(--ff-body, Tahoma);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 700;\n line-height: var(--fz-md);\n letter-spacing: 0.32px;\n }\n\n &_input {\n display: flex;\n border: 1px solid var(--border-subtle-01);\n outline: 2px solid transparent;\n background-color: transparent;\n border-radius: 3px;\n transition: 250ms ease-in-out border-color, 250ms ease-in-out outline-color;\n &:hover {\n border-color: var(--border-subtle-selected-01);\n }\n\n &:focus-within {\n outline-color: var(--focus);\n }\n\n &.error {\n outline-color: var(--support-error);\n }\n\n &.readonly {\n border-radius: 0;\n border-top-width: 0;\n border-left-width: 0;\n border-right-width: 0;\n outline-color: transparent;\n }\n\n input[type=\"text\"] {\n flex: 1;\n border: none;\n outline: none;\n -moz-appearance: textfield;\n background-color: transparent;\n margin: 0;\n padding-block: 0;\n padding-inline: var(--spacing-05);\n box-sizing: border-box;\n color: var(--text-primary);\n min-width: 20px;\n font-style: normal;\n font-weight: 400;\n letter-spacing: 0.16px;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n\n &__icons {\n display: inline-flex;\n align-items: stretch;\n column-gap: 2px;\n padding-right: var(--spacing-05);\n .status-icon {\n display: inline-flex;\n align-items: center;\n align-self: center;\n font-size: 1.35em;\n &.error {\n background-color: var(--support-error);\n color: white;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n }\n &.warning {\n color: var(--support-warning);\n }\n }\n\n hr {\n border: none;\n outline: none;\n width: 2px;\n height: 60%;\n align-self: center;\n background-color: var(--border-subtle-01);\n display: inline-flex;\n }\n }\n\n &.xs {\n height: 16px;\n }\n &.sm {\n height: 32px;\n }\n &.md {\n height: 40px;\n }\n &.lg {\n height: 48px;\n }\n &.xl {\n height: 60px;\n }\n }\n }\n\n .message {\n margin: var(--spacing-02) 0 0;\n color: var(--text-helper, #646464);\n font-size: var(--fz-sm, 12px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--fz-md, 16px);\n letter-spacing: 0.32px;\n &.error {\n color: var(--text-error);\n }\n &.warning {\n color: var(--text-secondary, #515151);\n }\n }\n}\n\n:host(.disabled) {\n cursor: not-allowed;\n\n .control_label,\n .control_input input[type=\"text\"],\n .control_input input[type=\"text\"]::placeholder,\n .message:not(.error) {\n color: var(--text-disabled);\n cursor: not-allowed;\n }\n\n .control_input__icons,\n .message.error {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n:host([block]) {\n display: block;\n}\n","import { AttachInternals, Component, h, Host, Prop, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\n\n/**\n * xv-text-input — custom input\n * ti get data you can use default Input event\n * Angular - (input), React - (onInput), Pure - addEventListener('input', e => ...)\n */\n@Component({\n tag: 'xv-text-input-v2',\n styleUrl: 'xv-text-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class XvTextInput {\n @Prop() type: 'text' | 'email' | 'password' | 'url' | 'tel' = 'text';\n @Prop() label: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: true }) name: string;\n @Prop({ mutable: true }) value: string = '';\n @Event({ eventName: 'valueChange' }) valueChange: EventEmitter<string>;\n @Prop() helper?: string;\n @Prop() error?: string | boolean;\n @Prop() warning?: string | boolean;\n @Prop() readonly?: boolean;\n @Prop() disabled?: boolean;\n @Prop() loading: boolean = false;\n @Prop() block?: boolean;\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n\n @AttachInternals() internals: ElementInternals;\n\n private handleInput = (e: InputEvent) => {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.valueChange.emit(this.value);\n this.internals.setFormValue(target.value);\n }\n\n render() {\n return (\n <Host class={{ disabled: !!this.disabled }}>\n <label class=\"control\">\n {this.label && <span class=\"control_label\">{this.label}</span>}\n\n <div class={{\n 'control_input': true,\n readonly: !!this.readonly,\n [this.size]: true,\n error: !!this.error,\n warning: !!this.warning,\n }}>\n <input\n type={this.type}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readonly={this.readonly}\n onInput={this.handleInput}\n name={this.name}\n value={this.value}\n />\n\n <div class=\"control_input__icons\">\n {this.loading && <xv-loader-v2 size={SIZE_VAR.XS} />}\n {!!this.error ? (\n <span class=\"status-icon error\" aria-hidden=\"true\">!</span>\n ) : !!this.warning ? (\n <span class=\"status-icon warning\" aria-hidden=\"true\">⚠</span>\n ) : null}\n </div>\n </div>\n </label>\n\n\n {this.helper && <p class=\"message\">{this.helper}</p>}\n {typeof this.error === 'string' ? (\n <p class=\"message error\">{this.error}</p>\n ) : typeof this.warning === 'string' ? (\n <p class=\"message warning\">{this.warning}</p>\n ) : null}\n </Host>\n );\n }\n}\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n 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') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n 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));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";",":host {\n display: inline-block;\n font-family: inherit;\n\n .trigger {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n transition: 250ms ease-in-out color;\n color: var(--icon-secondary);\n\n &_icon {\n color: inherit;\n }\n\n ::slotted([slot=\"trigger\"]) {\n transition: 250ms ease-in-out color;\n color: var(--icon-secondary);\n }\n\n &:hover,\n &:active,\n ::slotted([slot=\"trigger\"]:hover),\n ::slotted([slot=\"trigger\"]:active) {\n color: var(--icon-primary);\n }\n\n &:focus,\n ::slotted([slot=\"trigger\"]:focus) {\n color: var(--focus);\n }\n }\n\n .popover {\n opacity: 1;\n z-index: 1000;\n position: absolute;\n background-color: var(--background-inverse);\n color: var(--text-inverse);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);\n max-width: 288px;\n font-size: 0.875rem;\n line-height: 1.5;\n margin-top: 8px;\n flex-direction: column;\n display: flex;\n\n &[data-popper-placement^='top'] .popover-tip {\n bottom: -4px;\n }\n &[data-popper-placement^='bottom'] .popover-tip {\n top: -4px;\n }\n &[data-popper-placement^='left'] .popover-tip {\n right: -4px;\n }\n &[data-popper-placement^='right'] .popover-tip {\n left: -4px;\n }\n\n .popover-tip {\n width: 10px;\n height: 10px;\n background-color: transparent;\n z-index: -1;\n &:before {\n content: '';\n transform: rotate(45deg);\n background-color: var(--background-inverse);\n width: inherit;\n height: inherit;\n display: inline-block;\n }\n }\n\n .popover-content {\n padding: var(--gap-md);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-04);\n\n ::slotted([slot=\"header\"]) {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--text-secondary);\n }\n\n ::slotted([slot=\"body\"]) {\n font-size: 0.875rem;\n color: var(--text-inverse);\n }\n\n ::slotted([slot=\"footer\"]) {\n font-size: 0.75rem;\n color: var(--text-inverse);\n opacity: 0.8;\n }\n }\n }\n}\n\n:host(:not([open])) {\n .popover {\n opacity: 0;\n z-index: -1;\n user-select: none;\n pointer-events: none;\n }\n}\n","import { h, Event, Prop, Listen, Watch, Method, Element, Component, Host, EventEmitter } from '@stencil/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Component({\n tag: 'xv-toggle-tip',\n styleUrl: 'xv-toggle-tip.scss',\n shadow: true,\n})\nexport class XvToggleTip {\n @Element() el: HTMLElement;\n\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n @Prop() position: Placement = 'auto';\n @Event({ eventName: 'openChange' }) openChange: EventEmitter<boolean>;\n\n private triggerEl!: HTMLElement;\n private popoverEl!: HTMLElement;\n private popperInstance?: Instance;\n\n @Watch('open')\n openChangeHandle() {\n if (this.open) {\n requestAnimationFrame(() => this.createPopper());\n } else {\n this.destroyPopper();\n }\n this.openChange.emit(this.open);\n }\n\n @Listen('click', { target: 'document' })\n handleClickOutside(e: MouseEvent) {\n if (this.open && !this.el.contains(e.target as Node)) {\n this.open = false;\n }\n };\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.open) {\n this.open = false;\n }\n };\n\n @Method()\n async setPopover(open: boolean) {\n if (open === this.open) return;\n this.open = open;\n\n return this.open;\n };\n\n private createPopper() {\n if (!this.triggerEl || !this.popoverEl) {\n console.warn('XvToggleTip can`t find the trigger or popover container!');\n return;\n }\n\n this.popperInstance = createPopper(this.triggerEl, this.popoverEl, {\n placement: this.position,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: 'viewport',\n padding: 8,\n },\n },\n ],\n });\n };\n\n private destroyPopper = () => {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = undefined;\n }\n };\n\n render() {\n return (\n <Host class=\"xv-toggle-tip\">\n <div\n class=\"trigger\"\n role=\"button\"\n tabindex=\"0\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-controls=\"popover\"\n onClick={() => this.setPopover(!this.open)}\n ref={(el) => (this.triggerEl = el)}\n >\n <slot name=\"trigger\">\n <svg class=\"trigger_icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width={16} height={16}>\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n </slot>\n </div>\n\n <div\n class={{ popover: true }}\n role=\"tooltip\"\n tabindex=\"-1\"\n ref={(el) => (this.popoverEl = el)}\n >\n <div class=\"popover-tip\" part=\"tip\" data-popper-arrow=\"\"></div>\n <div class=\"popover-content\">\n <slot name=\"header\"></slot>\n <slot name=\"body\"></slot>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n\n disconnectedCallback() {\n this.destroyPopper();\n }\n}\n",":host {\n position: relative;\n display: contents;\n}\n\n.xv-tooltip[role=\"tooltip\"] {\n position: absolute;\n background-color: var(--background-inverse);\n color: var(--text-on-color);\n padding: var(--spacing-03) var(--spacing-04);\n border-radius: 3px;\n font-size: var(--fz-md);\n z-index: 999;\n max-width: min(400px, 90vw);\n overflow: visible;\n\n [data-popper-arrow] {\n position: absolute;\n width: 10px;\n height: 10px;\n background-color: transparent;\n z-index: -1;\n &:before {\n content: '';\n transform: rotate(45deg);\n background-color: var(--background-inverse);\n width: inherit;\n height: inherit;\n display: inline-block;\n }\n }\n\n &[data-popper-placement^='top'] [data-popper-arrow]{\n bottom: 1px;\n }\n\n &[data-popper-placement^='bottom'] [data-popper-arrow] {\n top: -10px;\n }\n\n &[data-popper-placement^='left'] [data-popper-arrow] {\n right: -4px;\n }\n\n &[data-popper-placement^='right'] [data-popper-arrow] {\n left: -4px;\n }\n}\n","import { Component, Host, h, Prop, Element, State, Listen } from '@stencil/core';\nimport { createPopper, Placement, Instance } from '@popperjs/core';\n\n@Component({\n tag: 'xv-tooltip-v2',\n styleUrl: 'xv-tooltip.scss',\n shadow: false,\n})\nexport class XvTooltip {\n @Element() el: HTMLElement;\n\n @Prop() message: string;\n @Prop() position: Placement = 'auto';\n\n @State() visible: boolean = false;\n\n private tooltipEl: HTMLElement;\n private popperInstance: Instance;\n\n @Listen('mouseenter')\n onMouseEnter() {\n this.visible = true;\n requestAnimationFrame(() => this.createPopper());\n }\n\n @Listen('mouseleave')\n onMouseLeave() {\n this.visible = false;\n this.destroyPopper();\n }\n\n private createPopper() {\n if (this.tooltipEl) {\n this.popperInstance = createPopper(this.el, this.tooltipEl, {\n placement: this.position,\n modifiers: [{ name: 'offset', options: { offset: [0, 8] } }],\n });\n }\n }\n\n private destroyPopper() {\n this.popperInstance?.destroy();\n this.popperInstance = null;\n }\n\n render() {\n return (\n <Host>\n <slot>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width={16} height={16}>\n <path\n fill=\"currentColor\"\n 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\"\n />\n </svg>\n </slot>\n {this.visible && (\n <div\n class=\"xv-tooltip\"\n ref={(el) => (this.tooltipEl = el)}\n role=\"tooltip\"\n >\n {this.message}\n <div class=\"xv-tooltip-arrow\" data-popper-arrow=\"\" />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|