xv-webcomponents 1.17.1-staging.0 → 1.17.3-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{xv-accordion-v2_45.cjs.entry.js → xv-accordion-v2_47.cjs.entry.js} +402 -67
- package/dist/cjs/xv-header-next.cjs.entry.js +1 -1
- package/dist/cjs/xv-mega-menu-next.cjs.entry.js +2 -2
- package/dist/cjs/xv-webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/xv-content-switcher/_vars.js +14 -0
- package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.css +134 -0
- package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.js +118 -0
- package/dist/collection/components/xv-content-switcher/xv-content-switcher.css +275 -0
- package/dist/collection/components/xv-content-switcher/xv-content-switcher.js +310 -0
- package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +2 -2
- package/dist/collection/components/xv-data-table/xv-data-table.js +1 -1
- package/dist/collection/components/xv-datepicker/xv-datepicker.css +4 -4
- package/dist/collection/components/xv-datepicker/xv-datepicker.js +2 -2
- package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
- package/dist/collection/components/xv-dropdown/xv-dropdown.css +23 -6
- package/dist/collection/components/xv-dropdown/xv-dropdown.js +205 -4
- package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +1 -1
- package/dist/collection/components/xv-footer/xv-footer.js +1 -1
- package/dist/collection/components/xv-header/xv-header.js +1 -1
- package/dist/collection/components/xv-header-next/xv-header-next.js +1 -1
- package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
- package/dist/collection/components/xv-link/xv-link.js +1 -1
- package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
- package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +2 -2
- package/dist/collection/components/xv-modal/xv-modal.js +1 -1
- package/dist/collection/components/xv-notification/xv-notification.js +1 -1
- package/dist/collection/components/xv-number-input/xv-number-input.css +6 -3
- package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +1 -1
- package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +2 -2
- package/dist/collection/components/xv-pagination/xv-pagination.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
- package/dist/collection/components/xv-radio/xv-radio.css +2 -2
- package/dist/collection/components/xv-radio/xv-radio.js +2 -2
- package/dist/collection/components/xv-slider/xv-slider.css +2 -2
- package/dist/collection/components/xv-slider/xv-slider.js +1 -1
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
- package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
- package/dist/collection/components/xv-table/xv-table.js +1 -1
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
- package/dist/collection/components/xv-tag/xv-tag.js +1 -1
- package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.css +2 -2
- package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +2 -2
- package/dist/collection/components/xv-text-input/xv-text-input.css +1 -1
- package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
- package/dist/collection/components/xv-textarea/xv-textarea.css +2 -2
- package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
- package/dist/collection/components/xv-tile/xv-tile.js +2 -2
- package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
- package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
- package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{xv-accordion-v2_45.entry.js → xv-accordion-v2_47.entry.js} +401 -68
- package/dist/esm/xv-header-next.entry.js +1 -1
- package/dist/esm/xv-mega-menu-next.entry.js +2 -2
- package/dist/esm/xv-webcomponents.js +1 -1
- package/dist/types/components/xv-content-switcher/_vars.d.ts +13 -0
- package/dist/types/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.d.ts +32 -0
- package/dist/types/components/xv-content-switcher/xv-content-switcher.d.ts +78 -0
- package/dist/types/components/xv-dropdown/xv-dropdown.d.ts +24 -1
- package/dist/types/components.d.ts +249 -0
- package/dist/xv-webcomponents/{p-1b5a4f4c.entry.js → p-1cb6cc34.entry.js} +1 -1
- package/dist/xv-webcomponents/p-422065b1.entry.js +8 -0
- package/dist/xv-webcomponents/{p-50f8cd72.entry.js → p-dc64e134.entry.js} +1 -1
- package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
- package/package.json +1 -1
- package/dist/xv-webcomponents/p-593183a5.entry.js +0 -8
|
@@ -172,7 +172,7 @@ const XvHeaderNext = class {
|
|
|
172
172
|
render() {
|
|
173
173
|
var _a, _b, _c, _d, _e;
|
|
174
174
|
const isXvBrand = (((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a['WhitelabelName']) || 'Xv') === 'Xv';
|
|
175
|
-
return (h("header", { key: '
|
|
175
|
+
return (h("header", { key: '7d377e3b2ac6324c7371bcaf72b3f2089c2f30fd', class: "header" }, h("div", { key: 'fa3904a2640fd3c83755e08672ca5b66f19f87ee', class: "header-wrapper" }, h("div", { key: '9b57e62635aa0add1b0d885476c6381651c3da2a', class: "xv-container" }, h("div", { key: '48d6c42079ac532951754f932fe9a542b446c7fe', class: "header-top" }, h("div", { key: 'a44144dd311fed25c6e322228d22ebcb34125227', class: "header-top--left" }, h("xv-button-v2", { key: 'f2924c7863e72a4421b03de34725b4e17eaadd0c', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: '60a99967703e38681a593b47be5b244ca812d735', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (h("a", { key: 'b14cfd121dbe0bb043ba153f196d93517ad1aee6', href: `${window.location.origin}/` }, h("picture", { key: '368b0923c562d164bd2a13f35186198694a7f823' }, h("source", { key: 'ed184c898b435ee78d104e3f7ff0608797442ad5', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: '02f4efe1190fd7eaa9666bcfa09575655fc300fe', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: '6142c239875d1b38e6496348badce4f1d8929fa4', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: '4944e54fb6d0982df59e85113ce5c3634eb754b9', class: "header-top--right" }, this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: 'c67444522b75b8b6ec375e1bc08b82508313266b' }, h("xv-link-v2", { key: '6e16c1050a6ff936dcecd62110a268ab882aa044', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: 'e3eabf0359e4b90f06caafeda72525c137f5b42e', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'b5fbb44bc2661d19bf59e6c41e6d018853f55293', class: "header-icon far fa-envelope" }), h("span", { key: 'e4947be47ae5e2a31ef54d74426f620d27b43810', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: '5f4010c06c0dbd038aa4387f5fc7fac36e50ab19' }, h("xv-link-v2", { key: '09ad10e240aba834778e152fd061b6db767f2e57', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: '7f621f8c795377db2098a299f1c3476d6ad32ee3', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '2233a5168c8ac5992376e27a9dc85c9aa829c8cc', class: "header-icon far fa-question-circle" }), h("span", { key: '7a37ffc7f4722b24f99cf9c67462b3491db142bc', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), h("div", { key: '0d64d68220df76c72d937311031879cd3292888e', class: "header-wrapper--bg" }, h("div", { key: '9937bc0ca9eba8b352bc5a5a512f4d009e5e752c', class: "xv-container" }, h("xv-mega-menu-next", { key: 'ac5f444429de7bd72caedf44dbc205a439299185', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu, menuData: this.menuData })))), h("xv-login-modal", { key: '87c2405d6edc5d0b5721191e5055c906e78d55bf', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
|
|
176
176
|
}
|
|
177
177
|
get el() { return getElement(this); }
|
|
178
178
|
};
|
|
@@ -88,7 +88,7 @@ const XvMegaMenuNext = class {
|
|
|
88
88
|
void this.fetchMenuData();
|
|
89
89
|
}
|
|
90
90
|
render() {
|
|
91
|
-
return (h(Host, { key: '
|
|
91
|
+
return (h(Host, { key: 'd73cfabbc7e69a974abd5c1c219544c2b9c5345e' }, h("nav", { key: '6d2f78e2be424e7aaa8c1f1ee03430a800c14dcc', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (h("div", { key: '0481d8317f0a0cd58a10114898ab1b60574bfced', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: 'f4104fbbf285165932c092423fe2eb431e6d7496' }))), h("ul", { key: 'e28819ff9c5bcebb32518831faf843085add3601', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
|
|
92
92
|
var _a, _b;
|
|
93
93
|
return (h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, menuItem.route ? (h("xv-link-v2", { variant: "ghost", href: menuItem.route.route }, h("p", { class: "menu-item-label" }, (_b = menuItem.route) === null || _b === void 0 ? void 0 : _b.label))) : (h(Fragment, null, h("p", { class: "menu-item-label", onClick: () => this.setActiveItem(menuItem) }, menuItem === null || menuItem === void 0 ? void 0 : menuItem.label), h("ul", { class: "menu-item-groups" }, menuItem.groups.map((group) => {
|
|
94
94
|
var _a;
|
|
@@ -98,7 +98,7 @@ const XvMegaMenuNext = class {
|
|
|
98
98
|
} }, h("div", { class: "group-menus" }, h("ul", { class: { 'group-menus-categories': true, inline: group.layout === 'inline' } }, group.categories.map((category) => (h("li", { class: "category" }, h("p", { class: "category-label" }, category.label), h("ul", { class: "category-routes" }, category.routes.map((route) => (h("li", { class: "route" }, h("xv-link-v2", { size: "lg", variant: "ghost", href: route.route || '#' }, route.label), route.tag && (h("xv-tag-v2", { class: "route-tag", size: "sm", color: "#161616", bg: "#E0E0E0" }, route.tag)))))))))), h("ul", { class: "group-menus-actions" }, group.actions.map((action) => (h("li", { class: "action" }, action.type === 'link' && (h("xv-link-v2", { variant: "standalone", href: action === null || action === void 0 ? void 0 : action.url }, action.label, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))), action.type === 'button' &&
|
|
99
99
|
h("xv-button-v2", { onClick: () => this.navActionClick(action), block: true, variant: "tertiary" }, action.label)))))), (group === null || group === void 0 ? void 0 : group.card) && (h("div", { class: "group-card" }, h("xv-card-v2", { media: this.applicationContext !== 'Komsa' ? group.card.image : undefined, variant: this.isMobile ? 'horizontal' : 'vertical' }, h("h5", { slot: "header", class: "group-card-title" }, group.card.title), h("p", { slot: "body", class: "group-card-desc" }, group.card.description), group.card.linkLabel && (h("xv-link-v2", { slot: "footer", variant: "standalone", href: group.card.linkUrl || '#' }, group.card.linkLabel, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))))))))));
|
|
100
100
|
}))))));
|
|
101
|
-
}), h("li", { key: '
|
|
101
|
+
}), h("li", { key: 'fbdfe095e7fb1988754c9d2d705128cae8d233f8', class: "menu--right" }, h("slot", { key: '7de3bb434a940b67265b2b4e191f7a02a20f8404', name: "menu-right" })), this.open && (h("li", { key: 'a35128e640465fec15c990e46fc778602238d2a5', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
|
|
102
102
|
}
|
|
103
103
|
get el() { return getElement(this); }
|
|
104
104
|
static get watchers() { return {
|
|
@@ -16,5 +16,5 @@ var patchBrowser = () => {
|
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(async (options) => {
|
|
18
18
|
await globalScripts();
|
|
19
|
-
return bootstrapLazy([["xv-accordion-
|
|
19
|
+
return bootstrapLazy([["xv-accordion-v2_47",[[0,"xv-header",{"metaNav":[32],"orgUnit":[32],"baseUrl":[32],"loading":[32],"mobMenuOpen":[32],"suggestions":[32],"suggestionsLoading":[32],"notifications":[32],"showLoginModal":[32]},[[8,"xv:orgUnitChange","handleOrgUnitChange"],[8,"xv:metaNav-update","metaNavUpdate"]]],[257,"xv-dropdown-v2",{"search":[516],"disabled":[516],"multiple":[516],"required":[516],"loading":[516],"readonly":[516],"open":[1540],"error":[520],"label":[513],"helper":[513],"warning":[513],"placeholder":[513],"info":[1],"searchPlaceholder":[1,"search-placeholder"],"size":[1],"defaultValue":[8,"default-value"],"value":[1032],"variant":[1],"position":[1],"selected":[32],"selectedMap":[32],"resolvedPosition":[32]},[[0,"itemSelected","handleItemSelected"],[0,"keydown","handleKeyDown"]],{"open":[{"openChangeHandle":0}],"multiple":[{"multipleChangeHandle":0}],"value":[{"valueChange":1}]}],[257,"xv-data-table-row",{"variant":[1],"name":[1025],"collapse":[1],"collapsable":[516],"checked":[1028],"partial":[1028],"hover":[1028],"group":[4],"header":[4],"footer":[4],"disabled":[4],"readonly":[4],"required":[4],"value":[8],"collapsed":[32],"reorderable":[32],"reorderHandleMode":[32],"close":[64]}],[65,"xv-datepicker",{"value":[1040],"variant":[1],"label":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[4],"size":[513],"min":[1],"max":[1],"month":[32],"days":[32],"open":[32],"localError":[32]},[[4,"click","handleClickOutside"]],{"open":[{"openChange":0}],"month":[{"getCalendarGrid":0}],"value":[{"handleValueChange":0}]}],[1,"xv-file-uploader",{"label":[1],"description":[1],"addText":[1,"add-text"],"variant":[1],"size":[1],"accept":[16],"buttonVariant":[1,"button-variant"],"maxFileSizeMB":[2,"max-file-size-mb"],"maxFiles":[2,"max-files"],"multiple":[4],"disabled":[516],"files":[1040],"loadingStates":[1040],"error":[1537],"errors":[1040],"dragActive":[32],"errorMessages":[32],"clearFiles":[64]}],[65,"xv-number-input-v2",{"label":[1],"placeholder":[513],"name":[513],"value":[1538],"helper":[1],"error":[8],"warning":[8],"step":[2],"max":[2],"min":[2],"readonly":[4],"disabled":[4],"loading":[4],"block":[516],"size":[513]}],[1,"xv-pagination",{"total":[2],"page":[1026],"size":[1],"block":[4],"variant":[1],"responsiveVariant":[16],"totalItems":[2,"total-items"],"itemsPerPage":[32],"currentVariant":[32]}],[257,"xv-table-v2-row",{"checked":[1540],"partial":[1540],"name":[1537],"value":[520],"hover":[1540],"readonly":[516],"required":[516],"disabled":[516],"header":[516],"variant":[1537]},null,{"checked":[{"checkedChangeHandle":0}]}],[65,"xv-textarea",{"value":[1025],"name":[1],"label":[1],"placeholder":[1],"helper":[1],"info":[1],"error":[8],"warning":[8],"disabled":[4],"readonly":[4],"block":[4],"counterHide":[4,"counter-hide"],"noResize":[4,"no-resize"],"loading":[4],"max":[2],"rows":[2],"size":[513]}],[257,"xv-data-table",{"size":[1],"block":[520],"loading":[4],"columnWidths":[16],"multiple":[516],"hover":[4],"reorderable":[516],"reorderHandle":[513,"reorder-handle"]},null,{"reorderable":[{"reorderableChanged":0}],"reorderHandle":[{"reorderHandleChanged":0}]}],[257,"xv-dropdown-v2-item",{"disabled":[4],"value":[1544],"selected":[1540],"multiple":[516],"size":[513]},[[0,"click","handleClick"]]],[1,"xv-image-viewer",{"src":[1],"fullscreenSrc":[1,"fullscreen-src"],"alt":[1],"placeholder":[1],"lazy":[4],"isFullscreen":[32],"loaded":[32],"fullscreenLoaded":[32]}],[257,"xv-tab-v2",{"label":[513],"disabled":[516],"loading":[516],"name":[8]}],[257,"xv-table-v2",{"size":[513],"hover":[516],"loading":[516],"colsSize":[16],"selected":[32],"selectedCount":[32]},[[0,"checkedChange","handleCheckedChange"]],{"colsSize":[{"setColsSizeTemplate":0}]}],[257,"xv-tabs-v2",{"active":[1544],"loading":[516],"variant":[1],"emptyMessage":[1,"empty-message"],"hideSingleTab":[4,"hide-single-tab"],"tabElements":[32],"showArrows":[32]},[[9,"resize","updateArrowVisibility"]]],[1,"xv-tag-combobox",{"options":[16],"label":[1],"size":[1],"placeholder":[1],"allowCreate":[4,"allow-create"],"maxSuggestions":[2,"max-suggestions"],"disabled":[4],"readonly":[4],"error":[8],"warning":[8],"value":[16],"normalizedOptions":[32],"selected":[32],"inputValue":[32],"open":[32],"filtered":[32],"highlighted":[32],"focusInput":[64],"clear":[64]},null,{"options":[{"watchOptions":0}],"value":[{"watchValue":0}]}],[257,"xv-accordion-v2",{"multiple":[4],"xvId":[1,"xv-id"],"value":[1025],"opened":[32],"toggleItem":[64]}],[257,"xv-accordion-v2-item",{"disabled":[4],"label":[1],"value":[1],"isOpen":[32]},[[16,"accordionChange","handleAccordionChange"]]],[260,"xv-breadcrumbs-v2"],[257,"xv-content-switcher-item-v2",{"value":[520],"label":[513],"icon":[513],"disabled":[516]}],[257,"xv-content-switcher-v2",{"selected":[1544],"size":[513],"iconOnly":[516,"icon-only"],"disabled":[516],"block":[516],"controlled":[516],"items":[32]}],[257,"xv-data-table-collapse",{"collapsed":[1540],"setCollapsed":[64]}],[0,"xv-footer",{"data":[32]},[[8,"xv:metaNav-update","handleLoadData"]]],[257,"xv-progress-indicator-v2",{"progress":[514],"variant":[1],"size":[1]},null,{"progress":[{"updateChildItems":0}]}],[257,"xv-progress-indicator-v2-item",{"status":[1]}],[324,"xv-radio-v2",{"name":[1],"value":[1],"label":[1],"checked":[1028],"indeterminate":[4],"block":[4],"disabled":[4],"required":[4],"reverse":[4],"readonly":[4],"error":[8],"warning":[520],"size":[1]},null,{"checked":[{"onCheckedChange":0}]}],[65,"xv-slider-v2",{"label":[1],"name":[1],"min":[2],"max":[2],"value":[1026],"step":[2],"disabled":[4],"readonly":[4],"notEditable":[4,"not-editable"]}],[257,"xv-table-v2-expand",{"open":[1540],"disabled":[516]}],[260,"xv-tile",{"variant":[513],"label":[1],"error":[4],"multiple":[4],"disabled":[4],"block":[4],"name":[1],"message":[513],"value":[1025],"checked":[1028],"readonly":[1028]},[[4,"tileChange","tileChangeHandle"],[0,"click","handleClick"]]],[321,"xv-toggle",{"label":[1],"value":[1],"name":[1],"checked":[1540],"disabled":[4],"readonly":[4],"size":[513],"block":[4]}],[257,"xv-mega-menu",{"open":[1540],"activeItem":[32],"activeGroup":[32],"menuItems":[32],"applicationContext":[32],"menuLoading":[32]},[[4,"click","handleClickOutside"]]],[257,"xv-data-table-cell",{"name":[1025],"sort":[1537],"multiline":[520],"width":[1],"align":[1],"tooltip":[1]},[[0,"click","handleSort"]]],[257,"xv-table-v2-cell",{"multiline":[516],"name":[1537],"align":[513],"sort":[1537]},[[0,"click","handleSort"]]],[2,"xv-login-modal",{"visible":[4],"urls":[32],"loading":[32],"errorMessage":[32]}],[257,"xv-overflow-menu-v2",{"open":[1540],"disabled":[516],"position":[1],"size":[1],"tooltip":[1]},[[0,"keydown","handleKeyDown"]],{"open":[{"openChangeHandle":0}]}],[257,"xv-overflow-menu-v2-item",{"disabled":[516],"value":[520],"variant":[513],"clickable":[4]},[[0,"click","handleClick"]]],[257,"xv-toggle-tip",{"open":[1540],"autoSize":[516,"auto-size"],"block":[4],"position":[1],"setPopover":[64]},[[4,"click","handleClickOutside"],[0,"keydown","handleKeyDown"]],{"open":[{"openChangeHandle":0}]}],[257,"xv-modal-v2",{"open":[1540],"permanent":[516],"size":[513],"overflow":[516],"loading":[4],"openModal":[64],"closeModal":[64]}],[257,"xv-notification-v2",{"variant":[513],"dismissible":[516]}],[65,"xv-text-input-v2",{"type":[1],"label":[1],"placeholder":[513],"name":[513],"value":[1025],"autocomplete":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[516],"size":[513],"isPasswordVisible":[32]}],[257,"xv-card-v2",{"variant":[1],"media":[1],"header":[1],"body":[1],"footer":[1]}],[257,"xv-link-v2",{"href":[1],"target":[1],"disabled":[4],"size":[1],"variant":[1]}],[321,"xv-checkbox-v2",{"checked":[1540],"indeterminate":[516],"disabled":[516],"name":[513],"value":[513],"readonly":[516],"required":[516],"partial":[516],"label":[1],"size":[513],"error":[520],"align":[513],"hasFocus":[32]},null,{"checked":[{"onCheckedChange":0}]}],[257,"xv-tag-v2",{"size":[1],"color":[1],"bg":[1],"disabled":[4],"closeable":[4]}],[260,"xv-tooltip-v2",{"message":[1],"position":[1],"block":[4],"dashed":[4]},[[1,"mouseenter","onMouseEnter"],[1,"mouseleave","onMouseLeave"]]],[321,"xv-button-v2",{"value":[1],"name":[1],"label":[513],"variant":[513],"size":[513],"disabled":[516],"loading":[516],"block":[516],"type":[513],"hasLeftIcon":[32],"hasRightIcon":[32],"hasContent":[32]}],[257,"xv-loader-v2",{"show":[4],"variant":[1],"size":[1]}]]],["xv-mega-menu-next",[[257,"xv-mega-menu-next",{"open":[1540],"menuData":[1,"menu-data"],"activeItem":[32],"activeGroup":[32],"menuItems":[32],"applicationContext":[32],"menuLoading":[32]},[[4,"click","handleClickOutside"]],{"menuData":[{"onMenuDataChange":0}]}]]],["xv-header-next",[[0,"xv-header-next",{"menuData":[1,"menu-data"],"metaNav":[32],"orgUnit":[32],"baseUrl":[32],"loading":[32],"mobMenuOpen":[32],"suggestions":[32],"suggestionsLoading":[32],"notifications":[32],"showLoginModal":[32]},[[8,"xv:orgUnitChange","handleOrgUnitChange"],[8,"xv:metaNav-update","metaNavUpdate"]]]]]], options);
|
|
20
20
|
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum CONTENT_SWITCHER_TAGS {
|
|
2
|
+
SWITCHER = "xv-content-switcher-v2",
|
|
3
|
+
ITEM = "xv-content-switcher-item-v2"
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Keys that move the selection inside the switcher (Carbon: automatic activation).
|
|
7
|
+
*/
|
|
8
|
+
export declare const CONTENT_SWITCHER_NAV_KEYS: {
|
|
9
|
+
readonly NEXT: readonly ["ArrowRight", "ArrowDown"];
|
|
10
|
+
readonly PREV: readonly ["ArrowLeft", "ArrowUp"];
|
|
11
|
+
readonly FIRST: readonly ["Home"];
|
|
12
|
+
readonly LAST: readonly ["End"];
|
|
13
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xv-content-switcher-item-v2
|
|
3
|
+
*
|
|
4
|
+
* A single segment of an `xv-content-switcher-v2`. The parent reads `label`,
|
|
5
|
+
* `icon`, `value` and `disabled` to render the button; any slotted children are
|
|
6
|
+
* treated as the panel content and shown only while this item is selected.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: "shown" means CSS visibility only — slotted content is always mounted, never
|
|
9
|
+
* unmounted, so framework lifecycle hooks still run for non-selected items. See the
|
|
10
|
+
* `xv-content-switcher-v2` docs for when to render panels conditionally instead.
|
|
11
|
+
*
|
|
12
|
+
* @slot - Optional content shown (via CSS) when this item is selected.
|
|
13
|
+
*/
|
|
14
|
+
export declare class XvContentSwitcherItem {
|
|
15
|
+
/**
|
|
16
|
+
* Unique value used to identify the item; falls back to its index when omitted.
|
|
17
|
+
*/
|
|
18
|
+
value?: number | string;
|
|
19
|
+
/**
|
|
20
|
+
* Text shown on the button (and used as the accessible name in icon-only mode).
|
|
21
|
+
*/
|
|
22
|
+
label?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Icon class (e.g. Font Awesome `far fa-circle`) rendered before the label.
|
|
25
|
+
*/
|
|
26
|
+
icon?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Disable this single item.
|
|
29
|
+
*/
|
|
30
|
+
disabled: boolean;
|
|
31
|
+
render(): any;
|
|
32
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { SIZE_VAR_STR } from '../../types/enum';
|
|
3
|
+
/**
|
|
4
|
+
* xv-content-switcher-v2
|
|
5
|
+
*
|
|
6
|
+
* Carbon-style content switcher: a single-select segmented control that toggles
|
|
7
|
+
* between mutually exclusive sections of content.
|
|
8
|
+
* @see https://carbondesignsystem.com/components/content-switcher/usage/
|
|
9
|
+
*
|
|
10
|
+
* The buttons are derived from the `xv-content-switcher-item-v2` children, so the
|
|
11
|
+
* group can manage shared borders, dividers and rounded corners in one place.
|
|
12
|
+
* Each item may also hold slotted content that is shown only while it is selected.
|
|
13
|
+
*
|
|
14
|
+
* IMPORTANT — slotted panels are only HIDDEN (CSS `display: none`), never unmounted.
|
|
15
|
+
* Slotted content lives in the consumer's light DOM, so the framework instantiates
|
|
16
|
+
* it (and runs lifecycle hooks like Angular's `ngOnInit`, subscriptions, requests)
|
|
17
|
+
* regardless of which item is selected — the switcher cannot prevent that. Use this
|
|
18
|
+
* slotted convenience only for cheap, static markup. For panels with lifecycle or
|
|
19
|
+
* side effects, do NOT slot them: keep the switcher as a pure selection control and
|
|
20
|
+
* render the active panel yourself via a framework conditional (e.g. Angular `@if`
|
|
21
|
+
* on `selectedChange`), so only the selected panel is ever instantiated.
|
|
22
|
+
*
|
|
23
|
+
* @slot - One or more `xv-content-switcher-item-v2` elements.
|
|
24
|
+
*/
|
|
25
|
+
export declare class XvContentSwitcher {
|
|
26
|
+
el: HTMLElement;
|
|
27
|
+
/**
|
|
28
|
+
* Currently selected item — matched against each item's `value` attribute,
|
|
29
|
+
* or its zero-based index when it has no `value`.
|
|
30
|
+
*/
|
|
31
|
+
selected?: number | string;
|
|
32
|
+
/**
|
|
33
|
+
* Control size. Only `sm`, `md` and `lg` are supported (defaults to `md`).
|
|
34
|
+
*/
|
|
35
|
+
size: SIZE_VAR_STR;
|
|
36
|
+
/**
|
|
37
|
+
* Render items as icon-only buttons (the item `label` is used as the accessible name).
|
|
38
|
+
*/
|
|
39
|
+
iconOnly: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Disable the whole switcher.
|
|
42
|
+
*/
|
|
43
|
+
disabled: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Stretch the switcher to the full width of its container.
|
|
46
|
+
*/
|
|
47
|
+
block: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Controlled mode. When `true`, clicking/keyboard navigation does NOT change
|
|
50
|
+
* the selection on its own — it only emits `selectedChange` with the requested
|
|
51
|
+
* value. The consumer fully owns `selected` and decides whether to commit it
|
|
52
|
+
* (e.g. after an async confirmation), so a switch can be vetoed without flicker.
|
|
53
|
+
*/
|
|
54
|
+
controlled: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Emitted whenever the selection changes (value, or index when the item has no value).
|
|
57
|
+
* In `controlled` mode this carries the *requested* value before any commit.
|
|
58
|
+
*/
|
|
59
|
+
selectedChange: EventEmitter<number | string>;
|
|
60
|
+
/**
|
|
61
|
+
* Collected `xv-content-switcher-item-v2` children.
|
|
62
|
+
*/
|
|
63
|
+
items: HTMLElement[];
|
|
64
|
+
componentWillLoad(): void;
|
|
65
|
+
componentDidRender(): void;
|
|
66
|
+
private collectItems;
|
|
67
|
+
private getItemKey;
|
|
68
|
+
private isItemDisabled;
|
|
69
|
+
private isSelected;
|
|
70
|
+
private isSelectionValid;
|
|
71
|
+
private select;
|
|
72
|
+
/** Reflect the `active` class on items so their slotted content shows/hides. */
|
|
73
|
+
private updateItemsState;
|
|
74
|
+
private handleKeyDown;
|
|
75
|
+
/** Find the next non-disabled item starting at `from`, walking by `step`. */
|
|
76
|
+
private findEnabled;
|
|
77
|
+
render(): any;
|
|
78
|
+
}
|
|
@@ -21,9 +21,19 @@ export declare class XvDropdown {
|
|
|
21
21
|
defaultValue?: DropdownItemData['value'] | DropdownItemData['value'][];
|
|
22
22
|
value?: DropdownItemData['value'] | DropdownItemData['value'][];
|
|
23
23
|
variant?: 'ghost' | 'default';
|
|
24
|
+
position: 'auto' | 'right' | 'left';
|
|
24
25
|
selected: DropdownItemData['text'][];
|
|
25
26
|
selectedMap: Map<DropdownItemData['value'], DropdownItemData>;
|
|
26
|
-
|
|
27
|
+
/** Side the options panel is actually aligned to (computed when position === 'auto'). */
|
|
28
|
+
resolvedPosition: 'left' | 'right';
|
|
29
|
+
private optionsEl?;
|
|
30
|
+
private positionMeasured;
|
|
31
|
+
private readonly listboxId;
|
|
32
|
+
private optIdSeq;
|
|
33
|
+
private activeItem;
|
|
34
|
+
private pendingOpenInit;
|
|
35
|
+
private searchInputEl?;
|
|
36
|
+
private searchQuery;
|
|
27
37
|
private searchTimeout;
|
|
28
38
|
private dropdownItems;
|
|
29
39
|
changeSelection: EventEmitter<DropdownItemData[]>;
|
|
@@ -38,11 +48,24 @@ export declare class XvDropdown {
|
|
|
38
48
|
private handleClickOutside;
|
|
39
49
|
private addListeners;
|
|
40
50
|
private removeListeners;
|
|
51
|
+
handleKeyDown(ev: KeyboardEvent): void;
|
|
52
|
+
private getNavigableItems;
|
|
53
|
+
private moveActive;
|
|
54
|
+
private setActiveByEdge;
|
|
55
|
+
private setActiveItem;
|
|
41
56
|
private clearHandle;
|
|
42
57
|
private cacheItems;
|
|
43
58
|
private handleSearchInput;
|
|
59
|
+
private resetSearch;
|
|
44
60
|
render(): any;
|
|
45
61
|
componentDidLoad(): void;
|
|
62
|
+
/** Side the panel is rendered on: explicit prop wins, otherwise the auto-measured side. */
|
|
63
|
+
private _appliedPosition;
|
|
64
|
+
/** Runs once per open, after the panel is in the DOM: highlight an option and place focus. */
|
|
65
|
+
private initOpenState;
|
|
66
|
+
componentDidRender(): void;
|
|
67
|
+
/** Inline edges of the nearest ancestor that clips overflow; falls back to the viewport. */
|
|
68
|
+
private _clipBounds;
|
|
46
69
|
disconnectedCallback(): void;
|
|
47
70
|
private _renderIcon;
|
|
48
71
|
}
|
|
@@ -162,6 +162,82 @@ export namespace Components {
|
|
|
162
162
|
*/
|
|
163
163
|
"value": string;
|
|
164
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* xv-content-switcher-item-v2
|
|
167
|
+
* A single segment of an `xv-content-switcher-v2`. The parent reads `label`,
|
|
168
|
+
* `icon`, `value` and `disabled` to render the button; any slotted children are
|
|
169
|
+
* treated as the panel content and shown only while this item is selected.
|
|
170
|
+
* NOTE: "shown" means CSS visibility only — slotted content is always mounted, never
|
|
171
|
+
* unmounted, so framework lifecycle hooks still run for non-selected items. See the
|
|
172
|
+
* `xv-content-switcher-v2` docs for when to render panels conditionally instead.
|
|
173
|
+
*/
|
|
174
|
+
interface XvContentSwitcherItemV2 {
|
|
175
|
+
/**
|
|
176
|
+
* Disable this single item.
|
|
177
|
+
* @default false
|
|
178
|
+
*/
|
|
179
|
+
"disabled": boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Icon class (e.g. Font Awesome `far fa-circle`) rendered before the label.
|
|
182
|
+
*/
|
|
183
|
+
"icon"?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Text shown on the button (and used as the accessible name in icon-only mode).
|
|
186
|
+
*/
|
|
187
|
+
"label"?: string;
|
|
188
|
+
/**
|
|
189
|
+
* Unique value used to identify the item; falls back to its index when omitted.
|
|
190
|
+
*/
|
|
191
|
+
"value"?: number | string;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* xv-content-switcher-v2
|
|
195
|
+
* Carbon-style content switcher: a single-select segmented control that toggles
|
|
196
|
+
* between mutually exclusive sections of content.
|
|
197
|
+
* @see https://carbondesignsystem.com/components/content-switcher/usage/
|
|
198
|
+
* The buttons are derived from the `xv-content-switcher-item-v2` children, so the
|
|
199
|
+
* group can manage shared borders, dividers and rounded corners in one place.
|
|
200
|
+
* Each item may also hold slotted content that is shown only while it is selected.
|
|
201
|
+
* IMPORTANT — slotted panels are only HIDDEN (CSS `display: none`), never unmounted.
|
|
202
|
+
* Slotted content lives in the consumer's light DOM, so the framework instantiates
|
|
203
|
+
* it (and runs lifecycle hooks like Angular's `ngOnInit`, subscriptions, requests)
|
|
204
|
+
* regardless of which item is selected — the switcher cannot prevent that. Use this
|
|
205
|
+
* slotted convenience only for cheap, static markup. For panels with lifecycle or
|
|
206
|
+
* side effects, do NOT slot them: keep the switcher as a pure selection control and
|
|
207
|
+
* render the active panel yourself via a framework conditional (e.g. Angular `@if`
|
|
208
|
+
* on `selectedChange`), so only the selected panel is ever instantiated.
|
|
209
|
+
*/
|
|
210
|
+
interface XvContentSwitcherV2 {
|
|
211
|
+
/**
|
|
212
|
+
* Stretch the switcher to the full width of its container.
|
|
213
|
+
* @default false
|
|
214
|
+
*/
|
|
215
|
+
"block": boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Controlled mode. When `true`, clicking/keyboard navigation does NOT change the selection on its own — it only emits `selectedChange` with the requested value. The consumer fully owns `selected` and decides whether to commit it (e.g. after an async confirmation), so a switch can be vetoed without flicker.
|
|
218
|
+
* @default false
|
|
219
|
+
*/
|
|
220
|
+
"controlled": boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Disable the whole switcher.
|
|
223
|
+
* @default false
|
|
224
|
+
*/
|
|
225
|
+
"disabled": boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Render items as icon-only buttons (the item `label` is used as the accessible name).
|
|
228
|
+
* @default false
|
|
229
|
+
*/
|
|
230
|
+
"iconOnly": boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Currently selected item — matched against each item's `value` attribute, or its zero-based index when it has no `value`.
|
|
233
|
+
*/
|
|
234
|
+
"selected"?: number | string;
|
|
235
|
+
/**
|
|
236
|
+
* Control size. Only `sm`, `md` and `lg` are supported (defaults to `md`).
|
|
237
|
+
* @default SIZE_VAR.MD
|
|
238
|
+
*/
|
|
239
|
+
"size": SIZE_VAR_STR;
|
|
240
|
+
}
|
|
165
241
|
interface XvDataTable {
|
|
166
242
|
"block"?: boolean | "";
|
|
167
243
|
/**
|
|
@@ -299,6 +375,10 @@ export namespace Components {
|
|
|
299
375
|
"multiple"?: boolean;
|
|
300
376
|
"open"?: boolean;
|
|
301
377
|
"placeholder"?: string;
|
|
378
|
+
/**
|
|
379
|
+
* @default 'auto'
|
|
380
|
+
*/
|
|
381
|
+
"position": 'auto' | 'right' | 'left';
|
|
302
382
|
"readonly"?: boolean;
|
|
303
383
|
"required"?: boolean;
|
|
304
384
|
"search"?: boolean;
|
|
@@ -1012,6 +1092,10 @@ export interface XvCheckboxV2CustomEvent<T> extends CustomEvent<T> {
|
|
|
1012
1092
|
detail: T;
|
|
1013
1093
|
target: HTMLXvCheckboxV2Element;
|
|
1014
1094
|
}
|
|
1095
|
+
export interface XvContentSwitcherV2CustomEvent<T> extends CustomEvent<T> {
|
|
1096
|
+
detail: T;
|
|
1097
|
+
target: HTMLXvContentSwitcherV2Element;
|
|
1098
|
+
}
|
|
1015
1099
|
export interface XvDataTableCustomEvent<T> extends CustomEvent<T> {
|
|
1016
1100
|
detail: T;
|
|
1017
1101
|
target: HTMLXvDataTableElement;
|
|
@@ -1205,6 +1289,55 @@ declare global {
|
|
|
1205
1289
|
prototype: HTMLXvCheckboxV2Element;
|
|
1206
1290
|
new (): HTMLXvCheckboxV2Element;
|
|
1207
1291
|
};
|
|
1292
|
+
/**
|
|
1293
|
+
* xv-content-switcher-item-v2
|
|
1294
|
+
* A single segment of an `xv-content-switcher-v2`. The parent reads `label`,
|
|
1295
|
+
* `icon`, `value` and `disabled` to render the button; any slotted children are
|
|
1296
|
+
* treated as the panel content and shown only while this item is selected.
|
|
1297
|
+
* NOTE: "shown" means CSS visibility only — slotted content is always mounted, never
|
|
1298
|
+
* unmounted, so framework lifecycle hooks still run for non-selected items. See the
|
|
1299
|
+
* `xv-content-switcher-v2` docs for when to render panels conditionally instead.
|
|
1300
|
+
*/
|
|
1301
|
+
interface HTMLXvContentSwitcherItemV2Element extends Components.XvContentSwitcherItemV2, HTMLStencilElement {
|
|
1302
|
+
}
|
|
1303
|
+
var HTMLXvContentSwitcherItemV2Element: {
|
|
1304
|
+
prototype: HTMLXvContentSwitcherItemV2Element;
|
|
1305
|
+
new (): HTMLXvContentSwitcherItemV2Element;
|
|
1306
|
+
};
|
|
1307
|
+
interface HTMLXvContentSwitcherV2ElementEventMap {
|
|
1308
|
+
"selectedChange": number | string;
|
|
1309
|
+
}
|
|
1310
|
+
/**
|
|
1311
|
+
* xv-content-switcher-v2
|
|
1312
|
+
* Carbon-style content switcher: a single-select segmented control that toggles
|
|
1313
|
+
* between mutually exclusive sections of content.
|
|
1314
|
+
* @see https://carbondesignsystem.com/components/content-switcher/usage/
|
|
1315
|
+
* The buttons are derived from the `xv-content-switcher-item-v2` children, so the
|
|
1316
|
+
* group can manage shared borders, dividers and rounded corners in one place.
|
|
1317
|
+
* Each item may also hold slotted content that is shown only while it is selected.
|
|
1318
|
+
* IMPORTANT — slotted panels are only HIDDEN (CSS `display: none`), never unmounted.
|
|
1319
|
+
* Slotted content lives in the consumer's light DOM, so the framework instantiates
|
|
1320
|
+
* it (and runs lifecycle hooks like Angular's `ngOnInit`, subscriptions, requests)
|
|
1321
|
+
* regardless of which item is selected — the switcher cannot prevent that. Use this
|
|
1322
|
+
* slotted convenience only for cheap, static markup. For panels with lifecycle or
|
|
1323
|
+
* side effects, do NOT slot them: keep the switcher as a pure selection control and
|
|
1324
|
+
* render the active panel yourself via a framework conditional (e.g. Angular `@if`
|
|
1325
|
+
* on `selectedChange`), so only the selected panel is ever instantiated.
|
|
1326
|
+
*/
|
|
1327
|
+
interface HTMLXvContentSwitcherV2Element extends Components.XvContentSwitcherV2, HTMLStencilElement {
|
|
1328
|
+
addEventListener<K extends keyof HTMLXvContentSwitcherV2ElementEventMap>(type: K, listener: (this: HTMLXvContentSwitcherV2Element, ev: XvContentSwitcherV2CustomEvent<HTMLXvContentSwitcherV2ElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1329
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1330
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1331
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1332
|
+
removeEventListener<K extends keyof HTMLXvContentSwitcherV2ElementEventMap>(type: K, listener: (this: HTMLXvContentSwitcherV2Element, ev: XvContentSwitcherV2CustomEvent<HTMLXvContentSwitcherV2ElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1333
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1334
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1335
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1336
|
+
}
|
|
1337
|
+
var HTMLXvContentSwitcherV2Element: {
|
|
1338
|
+
prototype: HTMLXvContentSwitcherV2Element;
|
|
1339
|
+
new (): HTMLXvContentSwitcherV2Element;
|
|
1340
|
+
};
|
|
1208
1341
|
interface HTMLXvDataTableElementEventMap {
|
|
1209
1342
|
"reorderChange": XvDataTableReorder;
|
|
1210
1343
|
}
|
|
@@ -1824,6 +1957,8 @@ declare global {
|
|
|
1824
1957
|
"xv-button-v2": HTMLXvButtonV2Element;
|
|
1825
1958
|
"xv-card-v2": HTMLXvCardV2Element;
|
|
1826
1959
|
"xv-checkbox-v2": HTMLXvCheckboxV2Element;
|
|
1960
|
+
"xv-content-switcher-item-v2": HTMLXvContentSwitcherItemV2Element;
|
|
1961
|
+
"xv-content-switcher-v2": HTMLXvContentSwitcherV2Element;
|
|
1827
1962
|
"xv-data-table": HTMLXvDataTableElement;
|
|
1828
1963
|
"xv-data-table-cell": HTMLXvDataTableCellElement;
|
|
1829
1964
|
"xv-data-table-collapse": HTMLXvDataTableCollapseElement;
|
|
@@ -2015,6 +2150,86 @@ declare namespace LocalJSX {
|
|
|
2015
2150
|
*/
|
|
2016
2151
|
"value"?: string;
|
|
2017
2152
|
}
|
|
2153
|
+
/**
|
|
2154
|
+
* xv-content-switcher-item-v2
|
|
2155
|
+
* A single segment of an `xv-content-switcher-v2`. The parent reads `label`,
|
|
2156
|
+
* `icon`, `value` and `disabled` to render the button; any slotted children are
|
|
2157
|
+
* treated as the panel content and shown only while this item is selected.
|
|
2158
|
+
* NOTE: "shown" means CSS visibility only — slotted content is always mounted, never
|
|
2159
|
+
* unmounted, so framework lifecycle hooks still run for non-selected items. See the
|
|
2160
|
+
* `xv-content-switcher-v2` docs for when to render panels conditionally instead.
|
|
2161
|
+
*/
|
|
2162
|
+
interface XvContentSwitcherItemV2 {
|
|
2163
|
+
/**
|
|
2164
|
+
* Disable this single item.
|
|
2165
|
+
* @default false
|
|
2166
|
+
*/
|
|
2167
|
+
"disabled"?: boolean;
|
|
2168
|
+
/**
|
|
2169
|
+
* Icon class (e.g. Font Awesome `far fa-circle`) rendered before the label.
|
|
2170
|
+
*/
|
|
2171
|
+
"icon"?: string;
|
|
2172
|
+
/**
|
|
2173
|
+
* Text shown on the button (and used as the accessible name in icon-only mode).
|
|
2174
|
+
*/
|
|
2175
|
+
"label"?: string;
|
|
2176
|
+
/**
|
|
2177
|
+
* Unique value used to identify the item; falls back to its index when omitted.
|
|
2178
|
+
*/
|
|
2179
|
+
"value"?: number | string;
|
|
2180
|
+
}
|
|
2181
|
+
/**
|
|
2182
|
+
* xv-content-switcher-v2
|
|
2183
|
+
* Carbon-style content switcher: a single-select segmented control that toggles
|
|
2184
|
+
* between mutually exclusive sections of content.
|
|
2185
|
+
* @see https://carbondesignsystem.com/components/content-switcher/usage/
|
|
2186
|
+
* The buttons are derived from the `xv-content-switcher-item-v2` children, so the
|
|
2187
|
+
* group can manage shared borders, dividers and rounded corners in one place.
|
|
2188
|
+
* Each item may also hold slotted content that is shown only while it is selected.
|
|
2189
|
+
* IMPORTANT — slotted panels are only HIDDEN (CSS `display: none`), never unmounted.
|
|
2190
|
+
* Slotted content lives in the consumer's light DOM, so the framework instantiates
|
|
2191
|
+
* it (and runs lifecycle hooks like Angular's `ngOnInit`, subscriptions, requests)
|
|
2192
|
+
* regardless of which item is selected — the switcher cannot prevent that. Use this
|
|
2193
|
+
* slotted convenience only for cheap, static markup. For panels with lifecycle or
|
|
2194
|
+
* side effects, do NOT slot them: keep the switcher as a pure selection control and
|
|
2195
|
+
* render the active panel yourself via a framework conditional (e.g. Angular `@if`
|
|
2196
|
+
* on `selectedChange`), so only the selected panel is ever instantiated.
|
|
2197
|
+
*/
|
|
2198
|
+
interface XvContentSwitcherV2 {
|
|
2199
|
+
/**
|
|
2200
|
+
* Stretch the switcher to the full width of its container.
|
|
2201
|
+
* @default false
|
|
2202
|
+
*/
|
|
2203
|
+
"block"?: boolean;
|
|
2204
|
+
/**
|
|
2205
|
+
* Controlled mode. When `true`, clicking/keyboard navigation does NOT change the selection on its own — it only emits `selectedChange` with the requested value. The consumer fully owns `selected` and decides whether to commit it (e.g. after an async confirmation), so a switch can be vetoed without flicker.
|
|
2206
|
+
* @default false
|
|
2207
|
+
*/
|
|
2208
|
+
"controlled"?: boolean;
|
|
2209
|
+
/**
|
|
2210
|
+
* Disable the whole switcher.
|
|
2211
|
+
* @default false
|
|
2212
|
+
*/
|
|
2213
|
+
"disabled"?: boolean;
|
|
2214
|
+
/**
|
|
2215
|
+
* Render items as icon-only buttons (the item `label` is used as the accessible name).
|
|
2216
|
+
* @default false
|
|
2217
|
+
*/
|
|
2218
|
+
"iconOnly"?: boolean;
|
|
2219
|
+
/**
|
|
2220
|
+
* Emitted whenever the selection changes (value, or index when the item has no value). In `controlled` mode this carries the *requested* value before any commit.
|
|
2221
|
+
*/
|
|
2222
|
+
"onSelectedChange"?: (event: XvContentSwitcherV2CustomEvent<number | string>) => void;
|
|
2223
|
+
/**
|
|
2224
|
+
* Currently selected item — matched against each item's `value` attribute, or its zero-based index when it has no `value`.
|
|
2225
|
+
*/
|
|
2226
|
+
"selected"?: number | string;
|
|
2227
|
+
/**
|
|
2228
|
+
* Control size. Only `sm`, `md` and `lg` are supported (defaults to `md`).
|
|
2229
|
+
* @default SIZE_VAR.MD
|
|
2230
|
+
*/
|
|
2231
|
+
"size"?: SIZE_VAR_STR;
|
|
2232
|
+
}
|
|
2018
2233
|
interface XvDataTable {
|
|
2019
2234
|
"block"?: boolean | "";
|
|
2020
2235
|
/**
|
|
@@ -2158,6 +2373,10 @@ declare namespace LocalJSX {
|
|
|
2158
2373
|
"onOpenChange"?: (event: XvDropdownV2CustomEvent<boolean>) => void;
|
|
2159
2374
|
"open"?: boolean;
|
|
2160
2375
|
"placeholder"?: string;
|
|
2376
|
+
/**
|
|
2377
|
+
* @default 'auto'
|
|
2378
|
+
*/
|
|
2379
|
+
"position"?: 'auto' | 'right' | 'left';
|
|
2161
2380
|
"readonly"?: boolean;
|
|
2162
2381
|
"required"?: boolean;
|
|
2163
2382
|
"search"?: boolean;
|
|
@@ -2889,6 +3108,8 @@ declare namespace LocalJSX {
|
|
|
2889
3108
|
"xv-button-v2": XvButtonV2;
|
|
2890
3109
|
"xv-card-v2": XvCardV2;
|
|
2891
3110
|
"xv-checkbox-v2": XvCheckboxV2;
|
|
3111
|
+
"xv-content-switcher-item-v2": XvContentSwitcherItemV2;
|
|
3112
|
+
"xv-content-switcher-v2": XvContentSwitcherV2;
|
|
2892
3113
|
"xv-data-table": XvDataTable;
|
|
2893
3114
|
"xv-data-table-cell": XvDataTableCell;
|
|
2894
3115
|
"xv-data-table-collapse": XvDataTableCollapse;
|
|
@@ -2942,6 +3163,34 @@ declare module "@stencil/core" {
|
|
|
2942
3163
|
"xv-button-v2": LocalJSX.XvButtonV2 & JSXBase.HTMLAttributes<HTMLXvButtonV2Element>;
|
|
2943
3164
|
"xv-card-v2": LocalJSX.XvCardV2 & JSXBase.HTMLAttributes<HTMLXvCardV2Element>;
|
|
2944
3165
|
"xv-checkbox-v2": LocalJSX.XvCheckboxV2 & JSXBase.HTMLAttributes<HTMLXvCheckboxV2Element>;
|
|
3166
|
+
/**
|
|
3167
|
+
* xv-content-switcher-item-v2
|
|
3168
|
+
* A single segment of an `xv-content-switcher-v2`. The parent reads `label`,
|
|
3169
|
+
* `icon`, `value` and `disabled` to render the button; any slotted children are
|
|
3170
|
+
* treated as the panel content and shown only while this item is selected.
|
|
3171
|
+
* NOTE: "shown" means CSS visibility only — slotted content is always mounted, never
|
|
3172
|
+
* unmounted, so framework lifecycle hooks still run for non-selected items. See the
|
|
3173
|
+
* `xv-content-switcher-v2` docs for when to render panels conditionally instead.
|
|
3174
|
+
*/
|
|
3175
|
+
"xv-content-switcher-item-v2": LocalJSX.XvContentSwitcherItemV2 & JSXBase.HTMLAttributes<HTMLXvContentSwitcherItemV2Element>;
|
|
3176
|
+
/**
|
|
3177
|
+
* xv-content-switcher-v2
|
|
3178
|
+
* Carbon-style content switcher: a single-select segmented control that toggles
|
|
3179
|
+
* between mutually exclusive sections of content.
|
|
3180
|
+
* @see https://carbondesignsystem.com/components/content-switcher/usage/
|
|
3181
|
+
* The buttons are derived from the `xv-content-switcher-item-v2` children, so the
|
|
3182
|
+
* group can manage shared borders, dividers and rounded corners in one place.
|
|
3183
|
+
* Each item may also hold slotted content that is shown only while it is selected.
|
|
3184
|
+
* IMPORTANT — slotted panels are only HIDDEN (CSS `display: none`), never unmounted.
|
|
3185
|
+
* Slotted content lives in the consumer's light DOM, so the framework instantiates
|
|
3186
|
+
* it (and runs lifecycle hooks like Angular's `ngOnInit`, subscriptions, requests)
|
|
3187
|
+
* regardless of which item is selected — the switcher cannot prevent that. Use this
|
|
3188
|
+
* slotted convenience only for cheap, static markup. For panels with lifecycle or
|
|
3189
|
+
* side effects, do NOT slot them: keep the switcher as a pure selection control and
|
|
3190
|
+
* render the active panel yourself via a framework conditional (e.g. Angular `@if`
|
|
3191
|
+
* on `selectedChange`), so only the selected panel is ever instantiated.
|
|
3192
|
+
*/
|
|
3193
|
+
"xv-content-switcher-v2": LocalJSX.XvContentSwitcherV2 & JSXBase.HTMLAttributes<HTMLXvContentSwitcherV2Element>;
|
|
2945
3194
|
"xv-data-table": LocalJSX.XvDataTable & JSXBase.HTMLAttributes<HTMLXvDataTableElement>;
|
|
2946
3195
|
"xv-data-table-cell": LocalJSX.XvDataTableCell & JSXBase.HTMLAttributes<HTMLXvDataTableCellElement>;
|
|
2947
3196
|
"xv-data-table-collapse": LocalJSX.XvDataTableCollapse & JSXBase.HTMLAttributes<HTMLXvDataTableCollapseElement>;
|