xv-webcomponents 0.1.39 → 0.1.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/cjs/{index-D41mMXvd.js → index-MLh9SbX2.js} +349 -8
  2. package/dist/cjs/index-MLh9SbX2.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{xv-accordion-v2_27.cjs.entry.js → xv-accordion-v2_34.cjs.entry.js} +2323 -97
  5. package/dist/cjs/xv-accordion-v2_34.cjs.entry.js.map +1 -0
  6. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +1 -1
  7. package/dist/cjs/xv-webcomponents.cjs.js +3 -3
  8. package/dist/cjs/xv-webcomponents.cjs.js.map +1 -1
  9. package/dist/collection/collection-manifest.json +8 -1
  10. package/dist/collection/components/xv-button/xv-button-v2.css +136 -118
  11. package/dist/collection/components/xv-button/xv-button.js +132 -67
  12. package/dist/collection/components/xv-button/xv-button.js.map +1 -1
  13. package/dist/collection/components/xv-card/xv-card.js +1 -1
  14. package/dist/collection/components/xv-checkbox/xv-checkbox.css +3 -0
  15. package/dist/collection/components/xv-checkbox/xv-checkbox.js +1 -1
  16. package/dist/collection/components/xv-data-table/_vars.js +3 -0
  17. package/dist/collection/components/xv-data-table/_vars.js.map +1 -0
  18. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.css +90 -0
  19. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +182 -0
  20. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js.map +1 -0
  21. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.css +7 -0
  22. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +101 -0
  23. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js.map +1 -0
  24. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.css +71 -0
  25. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +354 -0
  26. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js.map +1 -0
  27. package/dist/collection/components/xv-data-table/xv-data-table.css +104 -0
  28. package/dist/collection/components/xv-data-table/xv-data-table.js +114 -0
  29. package/dist/collection/components/xv-data-table/xv-data-table.js.map +1 -0
  30. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  31. package/dist/collection/components/xv-dropdown/xv-dropdown.css +6 -1
  32. package/dist/collection/components/xv-dropdown/xv-dropdown.js +20 -1
  33. package/dist/collection/components/xv-dropdown/xv-dropdown.js.map +1 -1
  34. package/dist/collection/components/xv-file-uploader/_vars.js +6 -0
  35. package/dist/collection/components/xv-file-uploader/_vars.js.map +1 -0
  36. package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +136 -0
  37. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +448 -0
  38. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js.map +1 -0
  39. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  40. package/dist/collection/components/xv-header/xv-header.js +1 -1
  41. package/dist/collection/components/xv-link/xv-link.css +1 -0
  42. package/dist/collection/components/xv-link/xv-link.js +1 -1
  43. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  44. package/dist/collection/components/xv-notification/xv-notification.css +1 -0
  45. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  46. package/dist/collection/components/xv-number-input/xv-number-input.css +128 -0
  47. package/dist/collection/components/xv-number-input/xv-number-input.js +373 -0
  48. package/dist/collection/components/xv-number-input/xv-number-input.js.map +1 -0
  49. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
  50. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +1 -1
  51. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  52. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  53. package/dist/collection/components/xv-table/_vars.js +0 -6
  54. package/dist/collection/components/xv-table/_vars.js.map +1 -1
  55. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +4 -4
  56. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js.map +1 -1
  57. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  58. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  59. package/dist/collection/components/xv-table/xv-table.js +1 -1
  60. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  61. package/dist/collection/components/xv-tabs/xv-tabs.js +1 -2
  62. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
  63. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  64. package/dist/collection/components/xv-text-input/xv-text-input.css +110 -89
  65. package/dist/collection/components/xv-text-input/xv-text-input.js +113 -80
  66. package/dist/collection/components/xv-text-input/xv-text-input.js.map +1 -1
  67. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.css +95 -0
  68. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +201 -0
  69. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js.map +1 -0
  70. package/dist/collection/components/xv-tooltip/xv-tooltip.css +31 -147
  71. package/dist/collection/components/xv-tooltip/xv-tooltip.js +59 -34
  72. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
  73. package/dist/collection/types/enum.js +6 -0
  74. package/dist/collection/types/enum.js.map +1 -1
  75. package/dist/esm/{index-Datpns0U.js → index-DLYJiP99.js} +349 -8
  76. package/dist/esm/index-DLYJiP99.js.map +1 -0
  77. package/dist/esm/loader.js +3 -3
  78. package/dist/esm/{xv-accordion-v2_27.entry.js → xv-accordion-v2_34.entry.js} +2317 -98
  79. package/dist/esm/xv-accordion-v2_34.entry.js.map +1 -0
  80. package/dist/esm/xv-breadcrumbs-v2.entry.js +1 -1
  81. package/dist/esm/xv-webcomponents.js +4 -4
  82. package/dist/esm/xv-webcomponents.js.map +1 -1
  83. package/dist/types/components/xv-button/xv-button.d.ts +21 -12
  84. package/dist/types/components/xv-data-table/_vars.d.ts +11 -0
  85. package/dist/types/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.d.ts +13 -0
  86. package/dist/types/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.d.ts +9 -0
  87. package/dist/types/components/xv-data-table/xv-data-table-row/xv-data-table-row.d.ts +25 -0
  88. package/dist/types/components/xv-data-table/xv-data-table.d.ts +9 -0
  89. package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +1 -0
  90. package/dist/types/components/xv-file-uploader/_vars.d.ts +4 -0
  91. package/dist/types/components/xv-file-uploader/xv-file-uploader.d.ts +36 -0
  92. package/dist/types/components/xv-number-input/xv-number-input.d.ts +26 -0
  93. package/dist/types/components/xv-table/_vars.d.ts +1 -5
  94. package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +2 -1
  95. package/dist/types/components/xv-text-input/xv-text-input.d.ts +10 -11
  96. package/dist/types/components/xv-toggle-tip/xv-toggle-tip.d.ts +19 -0
  97. package/dist/types/components/xv-tooltip/xv-tooltip.d.ts +10 -8
  98. package/dist/types/components.d.ts +761 -53
  99. package/dist/types/types/enum.d.ts +5 -0
  100. package/dist/xv-webcomponents/{p-054f5d59.entry.js → p-5b63a259.entry.js} +2 -2
  101. package/dist/xv-webcomponents/p-9c06f44c.entry.js +2 -0
  102. package/dist/xv-webcomponents/p-9c06f44c.entry.js.map +1 -0
  103. package/dist/xv-webcomponents/p-DLYJiP99.js +3 -0
  104. package/dist/xv-webcomponents/p-DLYJiP99.js.map +1 -0
  105. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  106. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  107. package/package.json +6 -4
  108. package/dist/cjs/index-D41mMXvd.js.map +0 -1
  109. package/dist/cjs/xv-accordion-v2_27.cjs.entry.js.map +0 -1
  110. package/dist/collection/components/xv-text-input/_vars.js +0 -7
  111. package/dist/collection/components/xv-text-input/_vars.js.map +0 -1
  112. package/dist/esm/index-Datpns0U.js.map +0 -1
  113. package/dist/esm/xv-accordion-v2_27.entry.js.map +0 -1
  114. package/dist/types/components/xv-text-input/_vars.d.ts +0 -5
  115. package/dist/xv-webcomponents/p-6a4cc790.entry.js +0 -2
  116. package/dist/xv-webcomponents/p-6a4cc790.entry.js.map +0 -1
  117. package/dist/xv-webcomponents/p-Datpns0U.js +0 -3
  118. package/dist/xv-webcomponents/p-Datpns0U.js.map +0 -1
  119. /package/dist/xv-webcomponents/{p-054f5d59.entry.js.map → p-5b63a259.entry.js.map} +0 -0
@@ -1 +0,0 @@
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","xvButtonV2Css","XvButton","block","type","variant","handleClick","e","buttonClick","part","name","xvCardCss","XvCard","media","src","alt","header","body","footer","xvCheckboxCss","XvCheckbox","checked","indeterminate","readonly","required","partial","hasFocus","onInput","target","inputEvent","onChange","changeEvent","onFocus","focusEvent","onBlur","blurEvent","internals","attachInternals","connectedCallback","setFormValue","onCheckedChange","newValue","ref","inputEl","error","componentDidLoad","componentDidUpdate","formResetCallback","formStateRestoreCallback","state","SIZE_VAR","DropdownItemSelector","xvDropdownCss","XvDropdown","size","MD","selected","selectedMap","Map","setSelected","optionNodes","values","Array","from","options","querySelectorAll","length","map","v","text","handleOpen","open","loading","handleClickOutside","ev","contains","addListeners","document","addEventListener","removeListeners","removeEventListener","setDefaultValues","defaultValue","setTimeout","forEach","option","dropdownItemData","innerText","setAttr","set","openChangeHandle","handleItemSelected","hasItem","optionElements","changeSelection","role","tabindex","join","placeholder","renderIcon","focusable","preserveAspectRatio","xmlns","fill","width","height","viewBox","d","helper","warning","disconnectedCallback","XS","undefined","xvDropdownItemCss","XvDropdownItem","itemSelected","xvFooterCss","Xvfooter","htmlContent","response","fetch","console","innerHTML","xvHeaderCss","XvHeader","showLoginModal","openLoginModal","closeLoginModal","parser","DOMParser","doc","parseFromString","mixedMenu","querySelector","allCategoriesGenerals","allCategoriesContainer","appendChild","href","style","display","visible","onClose","action","method","autocomplete","xvLinkCss","XvLink","preventLinkHandler","preventDefault","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","toLowerCase","includes","metaNavCookie","cookie","split","find","row","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","async","currentTarget","closeModal","removeTriggerListener","openModal","setupTrigger","slot","shadowRoot","assigned","assignedElements","openChange","onSlotchange","backdrop","modal_content","NOTIFICATION_VARIANTS","xvNotificationCss","XvNotification","INFO","dismissible","closeHandle","cls","ERROR","SUCCESS","WARNING","xvOverflowMenuCss","XvOverflowMenu","position","handleSelectItem","onOpenToggle","selectItem","handleKeyDown","btn","list","OverflowMenuVariant","xvOverflowMenuItemCss","XvOverflowMenuItem","DEFAULT","itemClick","PROGRESS_VARIANTS","PROGRESS_ITEM_STATUS","xvProgressIndicatorCss","XvProgressIndicator","progress","updateChildItems","items","children","itemsCount","childElementCount","progressPerItem","item","index","itemProgressStart","status","localProgress","Math","min","max","DONE","IN_PROGRESS","NO_STARTED","setAttribute","line","xvProgressIndicatorItemCss","XvProgressIndicatorItem","xvTabCss","XvTab","LG","xvTableCss","XvTable","selectedCount","handleCheckedChange","expandable","setColsSizeTemplate","colsSize","setProperty","batchVisible","Fragment","XV_SORT_DIR","XV_EXPANDABLE_KEY","XV_TABLE_TAG","xvTableCellCss","XvTableCell","handleSort","sort","NONE","ASC","DESC","parentElement","cell","hasAttribute","sortChange","xvTableExpandCss","XvTableExpand","handleExpand","expandableContent","xvTableRowCss","XvTableRow","checkHandle","selectRow","checkedChangeHandle","checkedChange","setInitialAttrs","hover","tableEl","onEventChange","TAB_TAGS","TABS_VATIANT","xvTabsCss","XvTabs","active","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","XL","hidden","emptyMessage","_c","componentDidRender","xvTagCss","XvTag","color","bg","closeable","closeHandler","closeClick","background","TextInputStatus","xvTextInputCss","XvTextInput","DEF","handleInput","valueChange","getControlIcon","withIcon","xvTooltipCss","XvTooltip","tooltip","message"],"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/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/types/enum.ts","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-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-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/_vars.ts","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/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/_vars.ts","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","src/components/xv-tooltip/xv-tooltip.scss?tag=xv-tooltip-v2&encapsulation=shadow","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",":host {\n --button-font-size: 14px;\n --focus-border-width: 2px;\n --focus-border-style: solid;\n --button-ghost: tarnsparent;\n --text-disabled-opacity: 0.25;\n --button-border-radius: 3px;\n --button-border-width: 1px;\n --button-border-style: solid;\n --button-border-color-accent: #97BF0D;\n --button-border-color-primary: #273435;\n --button-border-color-secondary: #D1D1D1;\n --button-border-color-ghost: tarnsparent;\n --button-ghost-hover: tarnsparent;\n --button-ghost-active: rgba(139, 139, 139, 0.5);\n --button-accent-disabled: #D1D1D1;\n --button-primary-disabled: #D1D1D1;\n --button-secondary-disabled: #D1D1D1;\n --button-tertiary-disabled: tarnsparent;\n --button-ghost-disabled: tarnsparent;\n --button-padding-x: 20px;\n\n button {\n font-family: inherit;\n font-size: var(--button-font-size, 14px);\n font-weight: 700;\n padding: 0 var(--button-padding-x);\n min-height: 40px;\n line-height: 40px;\n cursor: pointer;\n box-sizing: border-box;\n transition:\n background-color 0.2s ease-in-out,\n filter 0.2s ease-in-out,\n transform 0.1s ease-in-out,\n border-color 0.2s ease-in-out,\n border-width 0.2s ease-in-out,\n box-shadow 0.2s ease-in-out;\n\n &.xv-button-block {\n width: 100%;\n }\n }\n}\n\n.xv-button {\n /* ✅ Accent Button */\n &.accent {\n background-color: var(--button-accent);\n color: var(--text-on-color);\n border: var(--button-border-width) var(--button-border-style) var(--button-border-color-accent);\n border-radius: var(--button-border-radius);\n &:hover {\n background-color: var(--button-accent-hover);\n }\n &:active {\n background-color: var(--button-accent-active);\n color: var(--text-on-color);\n }\n &:focus {\n outline: none;\n border: var(--focus-border-width) var(--focus-border-style) var(--focus);\n transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n }\n &:disabled {\n background-color: var(--button-accent-disabled);\n color: var(--text-on-color-disabled);\n border: var(--button-border-width) var(--button-border-style) var(--button-accent-disabled);\n }\n\n }\n\n /* ✅ Primary Button */\n &.primary {\n background-color: var(--button-primary);\n color: var(--text-on-color);\n border: var(--button-border-width) var(--button-border-style) var(--button-border-color-primary);\n border-radius: var(--button-border-radius);\n &:hover {\n background-color: var(--button-primary-hover)\n }\n &:active {\n background-color: var(--button-primary-active)\n }\n &:focus {\n outline: none;\n border: var(--focus-border-width) var(--focus-border-style) var(--focus);\n transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n }\n &:disabled {\n background-color: var(--button-primary-disabled);\n color: var(--text-on-color-disabled);\n border: var(--button-border-width) var(--button-border-style) var(--button-primary-disabled);\n }\n }\n\n /* ✅ Secondary Button */\n &.secondary {\n background-color: var(--button-secondary);\n color: var(--text-primary);\n border: var(--button-border-width) var(--button-border-style) var(--button-border-color-secondary);\n border-radius: var(--button-border-radius);\n &:hover {\n background-color: var(--button-secondary-hover);\n }\n &:active {\n background-color: var(--button-secondary-active);\n }\n &:focus {\n outline: none;\n border: var(--focus-border-width) var(--focus-border-style) var(--focus);\n transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n }\n &:disabled {\n background-color: var(--button-secondary-disabled);\n color: var(--text-on-color-disabled);\n }\n }\n\n /* ✅ Tertiary Button */\n &.tertiary {\n background-color: var(--button-ghost);\n color: var(--text-primary);\n border: var(--button-border-width) var(--button-border-style) var(--button-tertiary);\n border-radius: var(--button-border-radius);\n &:hover {\n background-color: var(--button-tertiary-hover);\n }\n &:active {\n background-color: var(--button-tertiary-active);\n }\n &:focus {\n outline: none;\n border: var(--focus-border-width) var(--focus-border-style) var(--focus);\n transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;\n }\n &:disabled {\n background-color: var(--button-tertiary-disabled);\n color: var(--text-disabled);\n opacity: var(--text-disabled-opacity);\n }\n }\n\n /* ✅ Ghost Button */\n &.ghost {\n background-color: var(--button-ghost);\n color: var(--text-primary);\n border: var(--button-border-width) var(--button-border-style) var(--button-border-color-ghost);\n border-radius: var(--button-border-radius);\n &:hover {\n background-color: var(--button-ghost-hover);\n }\n &:active {\n background-color: var(--button-ghost-active);\n }\n &:focus {\n outline: none;\n border: var(--focus-border-width) var(--focus-border-style) var(--focus);\n transition: border-color 0.2s ease-in-out;\n }\n &:disabled {\n background-color: var(--button-ghost-disabled);\n color: var(--text-disabled);\n opacity: var(--text-disabled-opacity);\n }\n }\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\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})\r\nexport class XvButton {\r\n /** Button label */\r\n @Prop() label: string = '';\r\n\r\n /** Container width Button */\r\n @Prop() block: boolean = false;\r\n\r\n /** Button type */\r\n @Prop() type: 'button' | 'reset' | 'submit' = 'button';\r\n\r\n /** Variant */\r\n @Prop() variant: 'accent' | 'primary' | 'secondary' | 'tertiary' | 'ghost' = 'primary';\r\n\r\n /** Disabled state */\r\n @Prop() disabled: boolean = false;\r\n\r\n /** Emits when the button is clicked */\r\n @Event() buttonClick!: EventEmitter<MouseEvent>;\r\n\r\n /** Handle click only if not disabled */\r\n private handleClick = (e: MouseEvent) => {\r\n if (this.disabled) return;\r\n this.buttonClick.emit(e);\r\n };\r\n\r\n render() {\r\n return (\r\n <button\r\n type={this.type}\r\n part=\"button\"\r\n class={`xv-button ${this.variant} ${this.block ? 'xv-button-block' : ''}`}\r\n disabled={this.disabled}\r\n onClick={this.handleClick}\r\n >\r\n <slot name=\"icon-left\"></slot>\r\n\r\n <slot>\r\n {this.label}\r\n </slot>\r\n\r\n <slot name=\"icon-right\"></slot>\r\n </button>\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}\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 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 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","export enum SIZE_VAR {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\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 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 ::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\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: 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() 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 </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","%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>&nbsp;\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>&nbsp;Cockpitfunktionen&nbsp;<i class=\"fa fa-caret-down\"></i></a>\n </li>\n <li>\n <a href=\"#\"><i class=\"fa fa-cubes\"></i>&nbsp;Entitäten&nbsp;<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>&nbsp;Mein Crossvertise&nbsp;<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>&nbsp;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\">&nbsp;Warenkorb&nbsp;</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 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\">&times;</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)}>&times;</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\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","$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","export 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 enum XV_SORT_DIR {\n ASC = 'asc',\n DESC = 'desc',\n NONE = 'none'\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",":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 { XV_SORT_DIR, XVTableSortDto } from '../_vars';\nimport { forEach, uidGenerator } from '../../../utils/utils';\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","$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.active = nextTab.getAttribute('name') || `${nextIdx}`;\n this.scrollToActiveTab();\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","export enum TextInputStatus {\n ERROR = 'error',\n WARNING = 'warning',\n DEF = ''\n}\n",":host {\n --text-input-padding-x: 16px;\n --text-input-padding-y: 11px;\n\n display: inline-flex;\n flex-direction: column;\n row-gap: calc(var(--text-input-padding-y) / 2);\n text-align: left;\n font-family: var(--ff-body, Tahoma);\n\n .label {\n margin: 0;\n color: var(--text-secondary, #515151);\n font-size: var(--fz-sm, 12px);\n font-weight: 700;\n line-height: 133.333%;\n letter-spacing: 0.32px;\n }\n\n .control {\n margin: 0;\n position: relative;\n box-sizing: border-box;\n display: flex;\n column-gap: 5px;\n align-items: center;\n flex-direction: row;\n input {\n width: 100%;\n background-color: var(--field-02, #FFF);\n border: 1px solid var(--border-strong-01, #E3E3E3);\n border-radius: 3px;\n padding-block: var(--text-input-padding-y);\n padding-inline-start: var(--text-input-padding-x);\n padding-inline-end: var(--text-input-padding-x);\n flex: 1;\n outline: 2px solid transparent;\n color: var(--text-primary, #333);\n font-size: var(--fz-md, 14px);\n font-style: normal;\n font-weight: 400;\n line-height: 128.571%;\n letter-spacing: 0.16px;\n transition: 0.2s ease-in-out border-color, 0.2s ease-in-out outline-color;\n\n &.withIcon {\n padding-inline-end: calc(var(--text-input-padding-x) + 22px);\n }\n\n &::placeholder {\n color: var(--text-placeholder, #ACACAC);\n }\n\n &:focus {\n outline: 2px solid var(--focus, #273435);\n }\n }\n\n &_icon {\n position: absolute;\n top: calc(50% - 9px);\n right: var(--text-input-padding-y);\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 &:hover {\n\n }\n }\n\n .helper {\n margin: 0;\n color: var(--text-helper, #646464);\n font-size: var(--fz-sm, 12px);\n line-height: 133.333%;\n letter-spacing: 0.32px;\n }\n}\n\n:host([status=\"error\"]) {\n .control input {\n border-color: var(--support-error, #F1290E);\n &:focus {\n outline-color: var(--support-error, #F1290E);\n }\n }\n\n .helper {\n color: var(--text-error, #D62512);\n }\n}\n\n:host([readonly]) {\n .control input {\n border-top-color: transparent;\n border-right-color: transparent;\n border-left-color: transparent;\n cursor: default;\n background-color: transparent;\n\n &:focus {\n outline-color: transparent;\n }\n }\n}\n\n:host([disabled]) {\n opacity: 0.4;\n .control input {\n cursor: not-allowed;\n }\n}\n\n:host([size=\"xs\"]) {\n --text-input-padding-y: 4px;\n --text-input-padding-x: 6px;\n}\n:host([size=\"sm\"]) {\n --text-input-padding-y: 7px;\n}\n:host([size=\"md\"]) {\n --text-input-padding-y: 11px;\n}\n:host([size=\"lg\"]) {\n --text-input-padding-y: 15px;\n}\n:host([size=\"xl\"]) {\n --text-input-padding-y: 16px;\n --text-input-padding-x: 18px;\n}\n","import { AttachInternals, Component, h, Host, Element, Prop, Event, EventEmitter } from '@stencil/core';\nimport { SIZE_VAR } from '../../types/enum';\nimport { TextInputStatus } from './_vars';\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 @Element() el: HTMLElement;\n @Prop({ reflect: true }) label?: string;\n @Prop({ reflect: true }) placeholder?: string;\n @Prop({ reflect: true }) helper: string = '';\n @Prop({ reflect: true }) name?: string;\n @Prop({ reflect: true }) size: SIZE_VAR = SIZE_VAR.MD;\n @Prop({ reflect: true }) status: TextInputStatus = TextInputStatus.DEF;\n @Prop({ reflect: true, mutable: true }) value: string = '';\n @Event({ eventName: 'valueChange' }) valueChange: EventEmitter<string>;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) readonly: boolean = false;\n @Prop({ reflect: true }) loading: boolean = false;\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 name={this.name} class=\"xv-text-input\" role=\"textbox\" tabindex={this.disabled ? -1 : false}>\n {this.label && <label class=\"label\">{this.label}</label>}\n\n <div class=\"control\">\n <input\n type=\"text\"\n class={{ withIcon: this.status !== TextInputStatus.DEF }}\n readonly={this.readonly}\n value={this.value}\n disabled={this.disabled}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n />\n\n {this.getControlIcon(this.status)}\n </div>\n\n {this.helper && <p class=\"helper\">{this.helper}</p>}\n </Host>\n );\n }\n\n componentWillLoad() {\n this.internals.setFormValue(this.value);\n }\n\n private getControlIcon = (status: TextInputStatus) => {\n if (this.loading) {\n return <xv-loader-v2 class=\"control_icon\" size={SIZE_VAR.XS} />\n }\n switch (status) {\n case TextInputStatus.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 case TextInputStatus.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\"\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 default: return null;\n }\n };\n}\n",":host {\n position: relative;\n display: inline-block;\n cursor: pointer;\n line-height: 0.5;\n}\n\n/* General styles for tooltip */\n:host::before,\n:host::after {\n position: absolute;\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease-in-out 0.5s, transform 0.2s ease-in-out 0.5s;\n z-index: 10;\n}\n\n/* Tooltip */\n:host::before {\n content: attr(tooltip);\n background: var(--background-inverse, #333);\n color: var(--icon-inverse, #fff);\n padding: var(--gap-sm, 5px) var(--gap-md, 16px);\n border-radius: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: max(70vw);\n font-family: var(--fz-body, Tahoma);\n font-size: var(fz-md, 14px);\n font-weight: 400;\n line-height: 18px;\n letter-spacing: 0.16px;\n}\n:host([multiline])::before {\n white-space: normal;\n min-width: 300px;\n}\n\n/* Arrow */\n:host::after {\n content: \"\";\n border: 6px solid transparent;\n}\n\n/* Show Tooltip and arrow */\n:host(:hover)::before,\n:host(:hover)::after,\n:host(:focus)::before,\n:host(:focus)::after {\n opacity: 1;\n visibility: visible;\n}\n\n/* Tooltip positions */\n:host(.xv-tooltip_top)::before {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(-5px);\n}\n:host(.xv-tooltip_top)::after {\n bottom: 100%;\n left: 50%;\n border-top-color: var(--background-inverse, #333);\n transform: translateX(-50%) translateY(5px);\n}\n\n:host(.xv-tooltip_top-left)::before {\n bottom: 100%;\n left: 0;\n transform: translateY(-5px);\n}\n:host(.xv-tooltip_top-left)::after {\n bottom: 100%;\n left: 10px;\n border-top-color: black;\n transform: translateY(5px);\n}\n\n:host(.xv-tooltip_top-right)::before {\n bottom: 100%;\n right: 0;\n transform: translateY(-5px);\n}\n:host(.xv-tooltip_top-right)::after {\n bottom: 100%;\n right: 10px;\n border-top-color: var(--background-inverse, #333);\n transform: translateY(5px);\n}\n\n:host(.xv-tooltip_bottom)::before {\n top: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(5px);\n}\n:host(.xv-tooltip_bottom)::after {\n top: 100%;\n left: 50%;\n border-bottom-color: black;\n transform: translateX(-50%) translateY(-5px);\n}\n\n:host(.xv-tooltip_bottom-left)::before {\n top: 100%;\n left: 0;\n transform: translateY(5px);\n}\n:host(.xv-tooltip_bottom-left)::after {\n top: 100%;\n left: 10px;\n border-bottom-color: var(--background-inverse, #333);\n transform: translateY(-5px);\n}\n\n:host(.xv-tooltip_bottom-right)::before {\n top: 100%;\n right: 0;\n transform: translateY(5px);\n}\n:host(.xv-tooltip_bottom-right)::after {\n top: 100%;\n right: 10px;\n border-bottom-color: var(--background-inverse, #333);\n transform: translateY(-5px);\n}\n\n:host(.xv-tooltip_left)::before {\n right: 100%;\n top: 50%;\n transform: translateY(-50%) translateX(-5px);\n}\n:host(.xv-tooltip_left)::after {\n right: 100%;\n top: 50%;\n border-left-color: var(--background-inverse, #333);\n transform: translateY(-50%) translateX(5px);\n}\n\n:host(.xv-tooltip_right)::before {\n left: 100%;\n top: 50%;\n transform: translateY(-50%) translateX(5px);\n}\n:host(.xv-tooltip_right)::after {\n left: 100%;\n top: 50%;\n border-right-color: var(--background-inverse, #333);\n transform: translateY(-50%) translateX(-5px);\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xv-tooltip-v2',\n styleUrl: 'xv-tooltip.scss',\n shadow: true,\n})\nexport class XvTooltip {\n /** Message what will be shown for tooltip **/\n @Prop({ reflect: true }) message: string;\n /**\n * Tooltip and arrow position related to element\n * possible options: 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'right'.\n * By default, \"top\"\n */\n @Prop({ reflect: true }) position: 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'right' = 'top';\n\n @Prop({ reflect: true }) multiline: boolean;\n render() {\n return (\n <Host tooltip={this.message} class={`xv-tooltip_${this.position}`}>\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 </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- const e="xv-webcomponents";const t={hydratedSelectorName:"hydrated",lazyLoad:true,updatable:true};var n=Object.defineProperty;var r=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var s="http://www.w3.org/2000/svg";var i="http://www.w3.org/1999/xhtml";var o=e=>{if(e.__stencil__getHostRef){return e.__stencil__getHostRef()}return void 0};var l=(e,t)=>{e.__stencil__getHostRef=()=>t;t.t=e};var f=(e,t)=>{const n={i:0,$hostElement$:e,o:t,l:new Map};{n.u=new Promise((e=>n.v=e))}{n.p=new Promise((e=>n.h=e));e["s-p"]=[];e["s-rc"]=[]}const r=n;e.__stencil__getHostRef=()=>r;return r};var a=(e,t)=>t in e;var c=(e,t)=>(0,console.error)(e,t);var u=new Map;var v=(e,t,n)=>{const r=e.m.replace(/-/g,"_");const s=e.$;if(!s){return void 0}const i=u.get(s);if(i){return i[r]}
2
- /*!__STENCIL_STATIC_IMPORT_SWITCH__*/return import(`./${s}.entry.js${""}`).then((e=>{{u.set(s,e)}return e[r]}),(e=>{c(e,t.$hostElement$)}))};var d=new Map;var p="sty-id";var h="{visibility:hidden}.hydrated{visibility:inherit}";var m="slot-fb{display:contents}slot-fb[hidden]{display:none}";var y=["formAssociatedCallback","formResetCallback","formDisabledCallback","formStateRestoreCallback"];var b=typeof window!=="undefined"?window:{};var w={i:0,S:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,r)=>e.addEventListener(t,n,r),rel:(e,t,n,r)=>e.removeEventListener(t,n,r),ce:(e,t)=>new CustomEvent(e,t)};var g=(()=>{var e;let t=false;try{(e=b.document)==null?void 0:e.addEventListener("e",null,Object.defineProperty({},"passive",{get(){t=true}}))}catch(e){}return t})();var $=e=>Promise.resolve(e);var S=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replaceSync==="function"}catch(e){}return false})();var j=false;var k=[];var O=[];var C=(e,t)=>n=>{e.push(n);if(!j){j=true;if(t&&w.i&4){M(x)}else{w.raf(x)}}};var E=e=>{for(let t=0;t<e.length;t++){try{e[t](performance.now())}catch(e){c(e)}}e.length=0};var x=()=>{E(k);{E(O);if(j=k.length>0){w.raf(x)}}};var M=e=>$().then(e);var P=C(O,true);var R=e=>{e=typeof e;return e==="object"||e==="function"};function N(e){var t,n,r;return(r=(n=(t=e.head)==null?void 0:t.querySelector('meta[name="csp-nonce"]'))==null?void 0:n.getAttribute("content"))!=null?r:void 0}var U=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");var D={};r(D,{err:()=>W,map:()=>L,ok:()=>A,unwrap:()=>F,unwrapErr:()=>H});var A=e=>({isOk:true,isErr:false,value:e});var W=e=>({isOk:false,isErr:true,value:e});function L(e,t){if(e.isOk){const n=t(e.value);if(n instanceof Promise){return n.then((e=>A(e)))}else{return A(n)}}if(e.isErr){const t=e.value;return W(t)}throw"should never get here"}var F=e=>{if(e.isOk){return e.value}else{throw e.value}};var H=e=>{if(e.isErr){return e.value}else{throw e.value}};var T=(e,t="")=>{{return()=>{}}};var z=(e,t)=>{{return()=>{}}};var I=(e,t,...n)=>{let r=null;let s=null;let i=false;let o=false;const l=[];const f=t=>{for(let n=0;n<t.length;n++){r=t[n];if(Array.isArray(r)){f(r)}else if(r!=null&&typeof r!=="boolean"){if(i=typeof e!=="function"&&!R(r)){r=String(r)}if(i&&o){l[l.length-1].j+=r}else{l.push(i?V(null,r):r)}o=i}}};f(n);if(t){if(t.key){s=t.key}{const e=t.className||t.class;if(e){t.class=typeof e!=="object"?e:Object.keys(e).filter((t=>e[t])).join(" ")}}}if(typeof e==="function"){return e(t===null?{}:t,l,Y)}const a=V(e,null);a.k=t;if(l.length>0){a.O=l}{a.C=s}return a};var V=(e,t)=>{const n={i:0,M:e,j:t,P:null,O:null};{n.k=null}{n.C=null}return n};var q={};var G=e=>e&&e.M===q;var Y={forEach:(e,t)=>e.map(_).forEach(t),map:(e,t)=>e.map(_).map(t).map(B)};var _=e=>({vattrs:e.k,vchildren:e.O,vkey:e.C,vname:e.R,vtag:e.M,vtext:e.j});var B=e=>{if(typeof e.vtag==="function"){const t={...e.vattrs};if(e.vkey){t.key=e.vkey}if(e.vname){t.name=e.vname}return I(e.vtag,t,...e.vchildren||[])}const t=V(e.vtag,e.vtext);t.k=e.vattrs;t.O=e.vchildren;t.C=e.vkey;t.R=e.vname;return t};var J=e=>{const t=U(e);return new RegExp(`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${t}))(${t}\\b)`,"g")};J("::slotted");J(":host");J(":host-context");var K=(e,t)=>{if(e!=null&&!R(e)){if(t&4){return e==="false"?false:e===""||!!e}if(t&2){return typeof e==="string"?parseFloat(e):typeof e==="number"?e:NaN}if(t&1){return String(e)}return e}return e};var Q=e=>o(e).$hostElement$;var X=(e,t,n)=>{const r=Q(e);return{emit:e=>Z(r,t,{bubbles:true,composed:true,cancelable:true,detail:e})}};var Z=(e,t,n)=>{const r=w.ce(t,n);e.dispatchEvent(r);return r};var ee=new WeakMap;var te=(e,t,n)=>{let r=d.get(e);if(S&&n){r=r||new CSSStyleSheet;if(typeof r==="string"){r=t}else{r.replaceSync(t)}}else{r=t}d.set(e,r)};var ne=(e,t,n)=>{var r;const s=se(t);const i=d.get(s);if(!b.document){return s}e=e.nodeType===11?e:b.document;if(i){if(typeof i==="string"){e=e.head||e;let n=ee.get(e);let o;if(!n){ee.set(e,n=new Set)}if(!n.has(s)){{o=document.querySelector(`[${p}="${s}"]`)||b.document.createElement("style");o.innerHTML=i;const n=(r=w.N)!=null?r:N(b.document);if(n!=null){o.setAttribute("nonce",n)}if(!(t.i&1)){if(e.nodeName==="HEAD"){const t=e.querySelectorAll("link[rel=preconnect]");const n=t.length>0?t[t.length-1].nextSibling:e.querySelector("style");e.insertBefore(o,(n==null?void 0:n.parentNode)===e?n:null)}else if("host"in e){if(S){const t=new CSSStyleSheet;t.replaceSync(i);e.adoptedStyleSheets=[t,...e.adoptedStyleSheets]}else{const t=e.querySelector("style");if(t){t.innerHTML=i+t.innerHTML}else{e.prepend(o)}}}else{e.append(o)}}if(t.i&1){e.insertBefore(o,null)}}if(t.i&4){o.innerHTML+=m}if(n){n.add(s)}}}else if(!e.adoptedStyleSheets.includes(i)){e.adoptedStyleSheets=[...e.adoptedStyleSheets,i]}}return s};var re=e=>{const t=e.o;const n=e.$hostElement$;const r=t.i;const s=T("attachStyles",t.m);const i=ne(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);if(r&10){n["s-sc"]=i;n.classList.add(i+"-h")}s()};var se=(e,t)=>"sc-"+e.m;var ie=(e,t,n,r,s,i,o)=>{if(n===r){return}let l=a(e,t);let f=t.toLowerCase();if(t==="class"){const t=e.classList;const s=le(n);let i=le(r);{t.remove(...s.filter((e=>e&&!i.includes(e))));t.add(...i.filter((e=>e&&!s.includes(e))))}}else if(t==="style"){{for(const t in n){if(!r||r[t]==null){if(t.includes("-")){e.style.removeProperty(t)}else{e.style[t]=""}}}}for(const t in r){if(!n||r[t]!==n[t]){if(t.includes("-")){e.style.setProperty(t,r[t])}else{e.style[t]=r[t]}}}}else if(t==="key");else if(t==="ref"){if(r){r(e)}}else if(!l&&t[0]==="o"&&t[1]==="n"){if(t[2]==="-"){t=t.slice(3)}else if(a(b,f)){t=f.slice(2)}else{t=f[2]+t.slice(3)}if(n||r){const s=t.endsWith(fe);t=t.replace(ae,"");if(n){w.rel(e,t,n,s)}if(r){w.ael(e,t,r,s)}}}else{const o=R(r);if((l||o&&r!==null)&&!s){try{if(!e.tagName.includes("-")){const s=r==null?"":r;if(t==="list"){l=false}else if(n==null||e[t]!=s){if(typeof e.__lookupSetter__(t)==="function"){e[t]=s}else{e.setAttribute(t,s)}}}else if(e[t]!==r){e[t]=r}}catch(e){}}if(r==null||r===false){if(r!==false||e.getAttribute(t)===""){{e.removeAttribute(t)}}}else if((!l||i&4||s)&&!o&&e.nodeType===1){r=r===true?"":r;{e.setAttribute(t,r)}}}};var oe=/\s/;var le=e=>{if(typeof e==="object"&&e&&"baseVal"in e){e=e.baseVal}if(!e||typeof e!=="string"){return[]}return e.split(oe)};var fe="Capture";var ae=new RegExp(fe+"$");var ce=(e,t,n,r)=>{const s=t.P.nodeType===11&&t.P.host?t.P.host:t.P;const i=e&&e.k||{};const o=t.k||{};{for(const e of ue(Object.keys(i))){if(!(e in o)){ie(s,e,i[e],void 0,n,t.i)}}}for(const e of ue(Object.keys(o))){ie(s,e,i[e],o[e],n,t.i)}};function ue(e){return e.includes("ref")?[...e.filter((e=>e!=="ref")),"ref"]:e}var ve;var de=false;var pe=(e,t,n)=>{const r=t.O[n];let o=0;let l;let f;if(r.j!==null){l=r.P=b.document.createTextNode(r.j)}else{if(!de){de=r.M==="svg"}if(!b.document){throw new Error("You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.")}l=r.P=b.document.createElementNS(de?s:i,r.M);if(de&&r.M==="foreignObject"){de=false}{ce(null,r,de)}if(r.O){for(o=0;o<r.O.length;++o){f=pe(e,r,o);if(f){l.appendChild(f)}}}{if(r.M==="svg"){de=false}else if(l.tagName==="foreignObject"){de=true}}}l["s-hn"]=ve;return l};var he=(e,t,n,r,s,i)=>{let o=e;let l;if(o.shadowRoot&&o.tagName===ve){o=o.shadowRoot}for(;s<=i;++s){if(r[s]){l=pe(null,n,s);if(l){r[s].P=l;$e(o,l,t)}}}};var me=(e,t,n)=>{for(let r=t;r<=n;++r){const t=e[r];if(t){const e=t.P;ge(t);if(e){e.remove()}}}};var ye=(e,t,n,r,s=false)=>{let i=0;let o=0;let l=0;let f=0;let a=t.length-1;let c=t[0];let u=t[a];let v=r.length-1;let d=r[0];let p=r[v];let h;let m;while(i<=a&&o<=v){if(c==null){c=t[++i]}else if(u==null){u=t[--a]}else if(d==null){d=r[++o]}else if(p==null){p=r[--v]}else if(be(c,d,s)){we(c,d,s);c=t[++i];d=r[++o]}else if(be(u,p,s)){we(u,p,s);u=t[--a];p=r[--v]}else if(be(c,p,s)){we(c,p,s);$e(e,c.P,u.P.nextSibling);c=t[++i];p=r[--v]}else if(be(u,d,s)){we(u,d,s);$e(e,u.P,c.P);u=t[--a];d=r[++o]}else{l=-1;{for(f=i;f<=a;++f){if(t[f]&&t[f].C!==null&&t[f].C===d.C){l=f;break}}}if(l>=0){m=t[l];if(m.M!==d.M){h=pe(t&&t[o],n,l)}else{we(m,d,s);t[l]=void 0;h=m.P}d=r[++o]}else{h=pe(t&&t[o],n,o);d=r[++o]}if(h){{$e(c.P.parentNode,h,c.P)}}}}if(i>a){he(e,r[v+1]==null?null:r[v+1].P,n,r,o,v)}else if(o>v){me(t,i,a)}};var be=(e,t,n=false)=>{if(e.M===t.M){if(!n){return e.C===t.C}if(n&&!e.C&&t.C){e.C=t.C}return true}return false};var we=(e,n,r=false)=>{const s=n.P=e.P;const i=e.O;const o=n.O;const l=n.M;const f=n.j;if(f===null){{de=l==="svg"?true:l==="foreignObject"?false:de}{ce(e,n,de)}if(i!==null&&o!==null){ye(s,i,n,o,r)}else if(o!==null){if(e.j!==null){s.textContent=""}he(s,null,n,o,0,o.length-1)}else if(!r&&t.updatable&&i!==null){me(i,0,i.length-1)}if(de&&l==="svg"){de=false}}else if(e.j!==f){s.data=f}};var ge=e=>{{e.k&&e.k.ref&&e.k.ref(null);e.O&&e.O.map(ge)}};var $e=(e,t,n)=>{{return e==null?void 0:e.insertBefore(t,n)}};var Se=(e,t,n=false)=>{const r=e.$hostElement$;const s=e.o;const i=e.U||V(null,null);const o=G(t);const l=o?t:I(null,null,t);ve=r.tagName;if(s.D){l.k=l.k||{};s.D.map((([e,t])=>l.k[t]=r[e]))}if(n&&l.k){for(const e of Object.keys(l.k)){if(r.hasAttribute(e)&&!["key","ref","style","class"].includes(e)){l.k[e]=r[e]}}}l.M=null;l.i|=4;e.U=l;l.P=i.P=r.shadowRoot||r;we(i,l,n)};var je=(e,t)=>{if(t&&!e.A&&t["s-p"]){const n=t["s-p"].push(new Promise((r=>e.A=()=>{t["s-p"].splice(n-1,1);r()})))}};var ke=(e,t)=>{{e.i|=16}if(e.i&4){e.i|=512;return}je(e,e.W);const n=()=>Oe(e,t);return P(n)};var Oe=(e,t)=>{const n=e.$hostElement$;const r=T("scheduleUpdate",e.o.m);const s=e.t;if(!s){throw new Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`)}let i;if(t){{e.i|=256;if(e.L){e.L.map((([e,t])=>Ne(s,e,t,n)));e.L=void 0}}i=Ne(s,"componentWillLoad",void 0,n)}else{i=Ne(s,"componentWillUpdate",void 0,n)}i=Ce(i,(()=>Ne(s,"componentWillRender",void 0,n)));r();return Ce(i,(()=>xe(e,s,t)))};var Ce=(e,t)=>Ee(e)?e.then(t).catch((e=>{console.error(e);t()})):t();var Ee=e=>e instanceof Promise||e&&e.then&&typeof e.then==="function";var xe=async(e,t,n)=>{var r;const s=e.$hostElement$;const i=T("update",e.o.m);const o=s["s-rc"];if(n){re(e)}const l=T("render",e.o.m);{Me(e,t,s,n)}if(o){o.map((e=>e()));s["s-rc"]=void 0}l();i();{const t=(r=s["s-p"])!=null?r:[];const n=()=>Pe(e);if(t.length===0){n()}else{Promise.all(t).then(n);e.i|=4;t.length=0}}};var Me=(e,t,n,r)=>{try{t=t.render();{e.i&=-17}{e.i|=2}{{{Se(e,t,r)}}}}catch(t){c(t,e.$hostElement$)}return null};var Pe=e=>{const t=e.o.m;const n=e.$hostElement$;const r=T("postUpdate",t);const s=e.t;const i=e.W;Ne(s,"componentDidRender",void 0,n);if(!(e.i&64)){e.i|=64;{Ue(n)}Ne(s,"componentDidLoad",void 0,n);r();{e.h(n);if(!i){Re()}}}else{Ne(s,"componentDidUpdate",void 0,n);r()}{e.v(n)}{if(e.A){e.A();e.A=void 0}if(e.i&512){M((()=>ke(e,false)))}e.i&=-517}};var Re=t=>{M((()=>Z(b,"appload",{detail:{namespace:e}})))};var Ne=(e,t,n,r)=>{if(e&&e[t]){try{return e[t](n)}catch(e){c(e,r)}}return void 0};var Ue=e=>{var n;return e.classList.add((n=t.hydratedSelectorName)!=null?n:"hydrated")};var De=(e,t)=>o(e).l.get(t);var Ae=(e,t,n,r)=>{const s=o(e);if(!s){throw new Error(`Couldn't find host element for "${r.m}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`)}const i=s.$hostElement$;const l=s.l.get(t);const f=s.i;const a=s.t;n=K(n,r.F[t][0]);const u=Number.isNaN(l)&&Number.isNaN(n);const v=n!==l&&!u;if((!(f&8)||l===void 0)&&v){s.l.set(t,n);if(a){if(r.H&&f&128){const e=r.H[t];if(e){e.map((e=>{try{a[e](n,l,t)}catch(e){c(e,i)}}))}}if((f&(2|16))===2){if(a.componentShouldUpdate){if(a.componentShouldUpdate(n,l,t)===false){return}}ke(s,false)}}}};var We=(e,n,r)=>{var s,i;const l=e.prototype;if(n.i&64&&r&1){y.forEach((e=>{Object.defineProperty(l,e,{value(...t){const n=o(this);const r=n.t;if(!r){n.p.then((n=>{const r=n[e];typeof r==="function"&&r.call(n,...t)}))}else{const n=r[e];typeof n==="function"&&n.call(r,...t)}}})}))}if(n.F||(n.H||e.watchers)){if(e.watchers&&!n.H){n.H=e.watchers}const f=Object.entries((s=n.F)!=null?s:{});f.map((([e,[t]])=>{if(t&31||r&2&&t&32){const{get:s,set:i}=Object.getOwnPropertyDescriptor(l,e)||{};if(s)n.F[e][0]|=2048;if(i)n.F[e][0]|=4096;if(r&1||!s){Object.defineProperty(l,e,{get(){{if((n.F[e][0]&2048)===0){return De(this,e)}const t=o(this);const r=t?t.t:l;if(!r)return;return r[e]}},configurable:true,enumerable:true})}Object.defineProperty(l,e,{set(s){const l=o(this);if(i){const r=t&32?this[e]:l.$hostElement$[e];if(typeof r==="undefined"&&l.l.get(e)){s=l.l.get(e)}else if(!l.l.get(e)&&r){l.l.set(e,r)}i.apply(this,[K(s,t)]);s=t&32?this[e]:l.$hostElement$[e];Ae(this,e,s,n);return}{if((r&1)===0||(n.F[e][0]&4096)===0){Ae(this,e,s,n);if(r&1&&!l.t){l.p.then((()=>{if(n.F[e][0]&4096&&l.t[e]!==l.l.get(e)){l.t[e]=s}}))}return}const i=()=>{const r=l.t[e];if(!l.l.get(e)&&r){l.l.set(e,r)}l.t[e]=K(s,t);Ae(this,e,l.t[e],n)};if(l.t){i()}else{l.p.then((()=>i()))}}}})}else if(r&1&&t&64){Object.defineProperty(l,e,{value(...t){var n;const r=o(this);return(n=r==null?void 0:r.u)==null?void 0:n.then((()=>{var n;return(n=r.t)==null?void 0:n[e](...t)}))}})}}));if(r&1){const r=new Map;l.attributeChangedCallback=function(e,s,i){w.jmp((()=>{var f;const a=r.get(e);if(this.hasOwnProperty(a)&&t.lazyLoad){i=this[a];delete this[a]}else if(l.hasOwnProperty(a)&&typeof this[a]==="number"&&this[a]==i){return}else if(a==null){const t=o(this);const r=t==null?void 0:t.i;if(r&&!(r&8)&&r&128&&i!==s){const r=t.t;const o=(f=n.H)==null?void 0:f[e];o==null?void 0:o.forEach((t=>{if(r[t]!=null){r[t].call(r,i,s,e)}}))}return}const c=Object.getOwnPropertyDescriptor(l,a);i=i===null&&typeof this[a]==="boolean"?false:i;if(i!==this[a]&&(!c.get||!!c.set)){this[a]=i}}))};e.observedAttributes=Array.from(new Set([...Object.keys((i=n.H)!=null?i:{}),...f.filter((([e,t])=>t[0]&15)).map((([e,t])=>{var s;const i=t[1]||e;r.set(i,e);if(t[0]&512){(s=n.D)==null?void 0:s.push([e,i])}return i}))]))}}return e};var Le=async(e,t,n,r)=>{let s;if((t.i&32)===0){t.i|=32;const r=n.$;if(r){const r=v(n,t);if(r&&"then"in r){const e=z();s=await r;e()}else{s=r}if(!s){throw new Error(`Constructor for "${n.m}#${t.T}" was not found`)}if(!s.isProxied){{n.H=s.watchers}We(s,n,2);s.isProxied=true}const i=T("createInstance",n.m);{t.i|=8}try{new s(t)}catch(t){c(t,e)}{t.i&=-9}{t.i|=128}i();Fe(t.t,e)}else{s=e.constructor;const n=e.localName;customElements.whenDefined(n).then((()=>t.i|=128))}if(s&&s.style){let e;if(typeof s.style==="string"){e=s.style}const t=se(n);if(!d.has(t)){const r=T("registerStyles",n.m);te(t,e,!!(n.i&1));r()}}}const i=t.W;const o=()=>ke(t,true);if(i&&i["s-rc"]){i["s-rc"].push(o)}else{o()}};var Fe=(e,t)=>{{Ne(e,"connectedCallback",void 0,t)}};var He=e=>{if((w.i&1)===0){const t=o(e);const n=t.o;const r=T("connectedCallback",n.m);if(!(t.i&1)){t.i|=1;{let n=e;while(n=n.parentNode||n.host){if(n["s-p"]){je(t,t.W=n);break}}}if(n.F){Object.entries(n.F).map((([t,[n]])=>{if(n&31&&e.hasOwnProperty(t)){const n=e[t];delete e[t];e[t]=n}}))}{Le(e,t,n)}}else{qe(e,t,n.I);if(t==null?void 0:t.t){Fe(t.t,e)}else if(t==null?void 0:t.p){t.p.then((()=>Fe(t.t,e)))}}r()}};var Te=(e,t)=>{{Ne(e,"disconnectedCallback",void 0,t||e)}};var ze=async e=>{if((w.i&1)===0){const t=o(e);{if(t.V){t.V.map((e=>e()));t.V=void 0}}if(t==null?void 0:t.t){Te(t.t,e)}else if(t==null?void 0:t.p){t.p.then((()=>Te(t.t,e)))}}if(ee.has(e)){ee.delete(e)}if(e.shadowRoot&&ee.has(e.shadowRoot)){ee.delete(e.shadowRoot)}};var Ie=(e,t={})=>{var n;if(!b.document){console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");return}const r=T();const s=[];const i=t.exclude||[];const l=b.customElements;const a=b.document.head;const c=a.querySelector("meta[charset]");const u=b.document.createElement("style");const v=[];let d;let p=true;Object.assign(w,t);w.S=new URL(t.resourcesUrl||"./",b.document.baseURI).href;let y=false;e.map((e=>{e[1].map((t=>{var n;const r={i:t[0],m:t[1],F:t[2],I:t[3]};if(r.i&4){y=true}{r.F=t[2]}{r.I=t[3]}{r.D=[]}{r.H=(n=t[4])!=null?n:{}}const a=r.m;const c=class extends HTMLElement{constructor(e){super(e);this.hasRegisteredEventListeners=false;e=this;f(e,r);if(r.i&1){{if(!e.shadowRoot){{e.attachShadow({mode:"open"})}}else{if(e.shadowRoot.mode!=="open"){throw new Error(`Unable to re-use existing shadow root for ${r.m}! Mode is set to ${e.shadowRoot.mode} but Stencil only supports open shadow roots.`)}}}}}connectedCallback(){const e=o(this);if(!this.hasRegisteredEventListeners){this.hasRegisteredEventListeners=true;qe(this,e,r.I)}if(d){clearTimeout(d);d=null}if(p){v.push(this)}else{w.jmp((()=>He(this)))}}disconnectedCallback(){w.jmp((()=>ze(this)));w.raf((()=>{var e;const t=o(this);const n=v.findIndex((e=>e===this));if(n>-1){v.splice(n,1)}if(((e=t==null?void 0:t.U)==null?void 0:e.P)instanceof Node&&!t.U.P.isConnected){delete t.U.P}}))}componentOnReady(){return o(this).p}};if(r.i&64){c.formAssociated=true}r.$=e[0];if(!i.includes(a)&&!l.get(a)){s.push(a);l.define(a,We(c,r,1))}}))}));if(s.length>0){if(y){u.textContent+=m}{u.textContent+=s.sort()+h}if(u.innerHTML.length){u.setAttribute("data-styles","");const e=(n=w.N)!=null?n:N(b.document);if(e!=null){u.setAttribute("nonce",e)}a.insertBefore(u,c?c.nextSibling:a.firstChild)}}p=false;if(v.length){v.map((e=>e.connectedCallback()))}else{{w.jmp((()=>d=setTimeout(Re,30)))}}r()};var Ve=(e,t)=>t;var qe=(e,t,n,r)=>{if(n&&b.document){n.map((([n,r,s])=>{const i=Ye(b.document,e,n);const o=Ge(t,s);const l=_e(n);w.ael(i,r,o,l);(t.V=t.V||[]).push((()=>w.rel(i,r,o,l)))}))}};var Ge=(e,t)=>n=>{var r;try{{if(e.i&256){(r=e.t)==null?void 0:r[t](n)}else{(e.L=e.L||[]).push([t,n])}}}catch(t){c(t,e.$hostElement$)}};var Ye=(e,t,n)=>{if(n&8){return b}if(n&16){return e.body}return t};var _e=e=>g?{passive:(e&1)!==0,capture:(e&2)!==0}:(e&2)!==0;var Be=e=>w.N=e;export{Ve as F,q as H,Ie as b,X as c,Q as g,I as h,$ as p,l as r,Be as s};
3
- //# sourceMappingURL=p-Datpns0U.js.map