@carbon/web-components 2.59.0-rc.0 → 2.59.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/es/components/dropdown/dropdown-item.d.ts +2 -1
- package/es/components/dropdown/dropdown-item.d.ts.map +1 -1
- package/es/components/dropdown/dropdown-item.js +4 -3
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/feature-flags/index.d.ts +3 -0
- package/es/components/feature-flags/index.d.ts.map +1 -1
- package/es/components/feature-flags/index.js +33 -5
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/ui-shell/header-global-action.d.ts +1 -1
- package/es/components/ui-shell/header-global-action.d.ts.map +1 -1
- package/es/components/ui-shell/header-global-action.js +3 -3
- package/es/components/ui-shell/header-global-action.js.map +1 -1
- package/es/packages/feature-flags/es/index.js +12 -0
- package/es/packages/feature-flags/es/index.js.map +1 -1
- package/es-custom/components/dropdown/dropdown-item.d.ts +2 -1
- package/es-custom/components/dropdown/dropdown-item.d.ts.map +1 -1
- package/es-custom/components/dropdown/dropdown-item.js +4 -3
- package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
- package/es-custom/components/feature-flags/index.d.ts +3 -0
- package/es-custom/components/feature-flags/index.d.ts.map +1 -1
- package/es-custom/components/feature-flags/index.js +33 -5
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.d.ts +1 -1
- package/es-custom/components/ui-shell/header-global-action.d.ts.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.js +3 -3
- package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
- package/es-custom/packages/feature-flags/es/index.js +12 -0
- package/es-custom/packages/feature-flags/es/index.js.map +1 -1
- package/lib/components/dropdown/dropdown-item.d.ts +2 -1
- package/lib/components/dropdown/dropdown-item.d.ts.map +1 -1
- package/lib/components/feature-flags/index.d.ts +3 -0
- package/lib/components/feature-flags/index.d.ts.map +1 -1
- package/lib/components/ui-shell/header-global-action.d.ts +1 -1
- package/lib/components/ui-shell/header-global-action.d.ts.map +1 -1
- package/package.json +12 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
2
|
+
* Copyright IBM Corp. 2019, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -46,6 +46,7 @@ declare class CDSDropdownItem extends LitElement {
|
|
|
46
46
|
* Reference to the next sibling element for hover state management.
|
|
47
47
|
*/
|
|
48
48
|
protected _nextSiblingRef: Element | null;
|
|
49
|
+
private _textContainer;
|
|
49
50
|
/**
|
|
50
51
|
* Gets the next dropdown/combo-box item sibling.
|
|
51
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-item.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,gBAAwB;IAE5B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"dropdown-item.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,gBAAwB;IAE5B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGjD,OAAO,CAAC,cAAc,CAAyB;IAE/C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,OAAO,GAAG,IAAI;IAexC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IAchE,SAAS,CAAC,iBAAiB,aAKzB;IAEF,SAAS,CAAC,iBAAiB,aAEzB;IAEF,iBAAiB;IAiBjB,oBAAoB;IAOpB;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAsB7C,MAAM;IAeN;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAK;IAEd,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -13,11 +13,11 @@ import "./defs.js";
|
|
|
13
13
|
import dropdown_default from "./dropdown.scss.js";
|
|
14
14
|
import "./dropdown.js";
|
|
15
15
|
import { LitElement, html } from "lit";
|
|
16
|
-
import { property, state } from "lit/decorators.js";
|
|
16
|
+
import { property, query, state } from "lit/decorators.js";
|
|
17
17
|
import Checkmark16 from "@carbon/icons/es/checkmark/16.js";
|
|
18
18
|
//#region src/components/dropdown/dropdown-item.ts
|
|
19
19
|
/**
|
|
20
|
-
* Copyright IBM Corp. 2019,
|
|
20
|
+
* Copyright IBM Corp. 2019, 2026
|
|
21
21
|
*
|
|
22
22
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
23
23
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -94,7 +94,7 @@ let CDSDropdownItem = class CDSDropdownItem extends LitElement {
|
|
|
94
94
|
*/
|
|
95
95
|
_handleSlotChange({ target }) {
|
|
96
96
|
const text = target.assignedNodes().filter((node) => node.nodeType !== Node.TEXT_NODE || node.textContent.trim());
|
|
97
|
-
const textContainer = this.
|
|
97
|
+
const textContainer = this._textContainer;
|
|
98
98
|
if (!textContainer || this._hasEllipsisApplied === true) return;
|
|
99
99
|
new ResizeObserver(() => {
|
|
100
100
|
this._hasEllipsisApplied = textContainer.scrollWidth > textContainer.clientWidth;
|
|
@@ -135,6 +135,7 @@ __decorate([property({
|
|
|
135
135
|
__decorate([property({ reflect: true })], CDSDropdownItem.prototype, "size", void 0);
|
|
136
136
|
__decorate([property()], CDSDropdownItem.prototype, "value", void 0);
|
|
137
137
|
__decorate([state()], CDSDropdownItem.prototype, "_hasEllipsisApplied", void 0);
|
|
138
|
+
__decorate([query(`.cds--list-box__menu-item__option`)], CDSDropdownItem.prototype, "_textContainer", void 0);
|
|
138
139
|
CDSDropdownItem = __decorate([carbonElement(`cds-dropdown-item`)], CDSDropdownItem);
|
|
139
140
|
var dropdown_item_default = CDSDropdownItem;
|
|
140
141
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-item.js","names":["styles","customElement"],"sources":["../../../src/components/dropdown/dropdown-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019,
|
|
1
|
+
{"version":3,"file":"dropdown-item.js","names":["styles","customElement"],"sources":["../../../src/components/dropdown/dropdown-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport { DROPDOWN_SIZE } from './dropdown';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Dropdown item.\n *\n * @element cds-dropdown-item\n * @csspart selected-icon The selected icon.\n */\n@customElement(`${prefix}-dropdown-item`)\nclass CDSDropdownItem extends LitElement {\n /**\n * `true` if this dropdown item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this dropdown item should be highlighted.\n * If `true`, parent `<dropdown>` selects/deselects this dropdown item upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * `true` if this dropdown item should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `value` attribute that is set to the parent `<cds-dropdown>` when this dropdown item is selected.\n */\n @property()\n value = '';\n\n /**\n * true if menu item has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n /**\n * Reference to the next sibling element for hover state management.\n */\n protected _nextSiblingRef: Element | null = null;\n\n @query(`.${prefix}--list-box__menu-item__option`)\n private _textContainer!: HTMLDivElement | null;\n\n /**\n * Gets the next dropdown/combo-box item sibling.\n */\n protected _getNextItem(): Element | null {\n let next = this.nextElementSibling;\n while (next) {\n if (\n next instanceof HTMLElement &&\n (next.tagName.toLowerCase() === `${prefix}-dropdown-item` ||\n next.tagName.toLowerCase() === `${prefix}-combo-box-item`)\n ) {\n return next;\n }\n next = next.nextElementSibling;\n }\n return null;\n }\n\n /**\n * Syncs the hovered-next-sibling attribute with the next item.\n */\n protected _syncNextSibling(attribute: string, shouldSet: boolean) {\n const currentSibling = this._nextSiblingRef;\n currentSibling?.removeAttribute(attribute);\n if (shouldSet) {\n const next = this._getNextItem();\n if (next) {\n next.setAttribute(attribute, '');\n this._nextSiblingRef = next;\n return;\n }\n }\n this._nextSiblingRef = null;\n }\n\n protected _handleMouseEnter = () => {\n if (this.hasAttribute('disabled')) {\n return;\n }\n this._syncNextSibling('hovered-next-sibling', true);\n };\n\n protected _handleMouseLeave = () => {\n this._syncNextSibling('hovered-next-sibling', false);\n };\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'option');\n }\n if (!this.hasAttribute('id')) {\n this.setAttribute(\n 'id',\n `${prefix}-dropdown-item-${(this.constructor as typeof CDSDropdownItem)\n .id++}`\n );\n }\n this.setAttribute('aria-selected', String(this.selected));\n this.addEventListener('mouseenter', this._handleMouseEnter);\n this.addEventListener('mouseleave', this._handleMouseLeave);\n }\n\n disconnectedCallback() {\n this.removeEventListener('mouseenter', this._handleMouseEnter);\n this.removeEventListener('mouseleave', this._handleMouseLeave);\n this._syncNextSibling('hovered-next-sibling', false);\n super.disconnectedCallback();\n }\n\n /**\n * Handles `slotchange` event.\n *\n * Adds the `title` property to its parent element so the native\n * browser tooltip appears for menu items that result in ellipsis\n */\n protected _handleSlotChange({ target }: Event) {\n const text = (target as HTMLSlotElement).assignedNodes().filter(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n\n const textContainer = this._textContainer;\n\n if (!textContainer || this._hasEllipsisApplied === true) return;\n\n const observer = new ResizeObserver(() => {\n this._hasEllipsisApplied =\n textContainer.scrollWidth > textContainer.clientWidth;\n\n if (this._hasEllipsisApplied) {\n textContainer.setAttribute('title', text[0].textContent ?? '');\n }\n });\n\n observer.observe(textContainer);\n }\n\n render() {\n const { selected, _handleSlotChange: handleSlotChange } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\" part=\"menu-item\">\n <slot @slotchange=${handleSlotChange}></slot>\n ${!selected\n ? undefined\n : iconLoader(Checkmark16, {\n part: 'selected-icon',\n class: `${prefix}--list-box__menu-item__selected-icon`,\n })}\n </div>\n `;\n }\n\n /**\n * Store an identifier for use in composing this item's id.\n *\n * Auto-increments anytime a new dropdown-item appears.\n */\n static id = 0;\n\n static styles = styles;\n}\n\nexport default CDSDropdownItem;\n"],"mappings":"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"}
|
|
@@ -35,7 +35,10 @@ declare class FeatureFlagsElement extends LitElement {
|
|
|
35
35
|
constructor();
|
|
36
36
|
connectedCallback(): void;
|
|
37
37
|
attributeChangedCallback(name: string, _oldVal: string | null, newVal: string | null): void;
|
|
38
|
+
private syncFeatureFlagAttributes;
|
|
39
|
+
private getParentFeatureFlagsElement;
|
|
38
40
|
private getParentScope;
|
|
41
|
+
private syncChildFeatureFlagScopes;
|
|
39
42
|
private updateScope;
|
|
40
43
|
render(): import("lit-html").TemplateResult<1>;
|
|
41
44
|
isFeatureFlagEnabled(flag: string): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAYvC,cACM,mBAAoB,SAAQ,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAYvC,cACM,mBAAoB,SAAQ,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAW7B;IAEX,MAAM,KAAK,kBAAkB,aAE5B;;IAOD,iBAAiB;IAKjB,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBvB,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,WAAW;IAWnB,MAAM;IAIC,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAIxC,OAAO,CAAC,QAAQ;CAGjB;AAED,eAAe,mBAAmB,CAAC;AAKnC,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,WAAW,GACd,mBAAmB,GAAG,IAAI,CAa5B;AAGD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,OAAO,CAGT"}
|
|
@@ -43,6 +43,7 @@ let FeatureFlagsElement = class FeatureFlagsElement extends LitElement {
|
|
|
43
43
|
}
|
|
44
44
|
static {
|
|
45
45
|
this.flagComponentMap = {
|
|
46
|
+
"enable-v12-release": null,
|
|
46
47
|
"enable-v12-tile-default-icons": "CDS-CLICKABLE-TILE",
|
|
47
48
|
"enable-v12-tile-radio-icons": "CDS-TILE",
|
|
48
49
|
"enable-v12-overflowmenu": "CDS-OVERFLOW-MENU",
|
|
@@ -70,29 +71,56 @@ let FeatureFlagsElement = class FeatureFlagsElement extends LitElement {
|
|
|
70
71
|
attributeChangedCallback(name, _oldVal, newVal) {
|
|
71
72
|
const value = newVal !== null && newVal !== "false";
|
|
72
73
|
this.flags[name] = value;
|
|
73
|
-
const relatedComponent = hasOwn(_FeatureFlagsElement.flagComponentMap, name) ? _FeatureFlagsElement.flagComponentMap[name] :
|
|
74
|
-
if (this.firstElementChild?.tagName === relatedComponent) this.firstElementChild.setAttribute(name, "");
|
|
74
|
+
const relatedComponent = hasOwn(_FeatureFlagsElement.flagComponentMap, name) ? _FeatureFlagsElement.flagComponentMap[name] : null;
|
|
75
|
+
if (relatedComponent && this.firstElementChild?.tagName === relatedComponent) this.firstElementChild.setAttribute(name, "");
|
|
75
76
|
this.updateScope();
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
syncFeatureFlagAttributes() {
|
|
79
|
+
for (const [flag, relatedComponent] of Object.entries(_FeatureFlagsElement.flagComponentMap)) {
|
|
80
|
+
if (!relatedComponent) continue;
|
|
81
|
+
let isEnabled = false;
|
|
82
|
+
try {
|
|
83
|
+
isEnabled = this.scope.enabled(flag);
|
|
84
|
+
} catch {
|
|
85
|
+
isEnabled = false;
|
|
86
|
+
}
|
|
87
|
+
for (const element of this.querySelectorAll(relatedComponent.toLowerCase())) {
|
|
88
|
+
if (findParentFeatureFlags(element) !== this) continue;
|
|
89
|
+
if (isEnabled) element.setAttribute(flag, "");
|
|
90
|
+
else element.removeAttribute(flag);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
getParentFeatureFlagsElement() {
|
|
78
95
|
let parent = this.parentNode;
|
|
79
96
|
while (parent) {
|
|
80
|
-
if (parent instanceof
|
|
97
|
+
if (parent instanceof ShadowRoot) {
|
|
98
|
+
parent = parent.host;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (parent instanceof _FeatureFlagsElement) return parent;
|
|
81
102
|
parent = parent.parentNode;
|
|
82
103
|
}
|
|
83
104
|
return null;
|
|
84
105
|
}
|
|
106
|
+
getParentScope() {
|
|
107
|
+
return this.getParentFeatureFlagsElement()?.getScope() ?? null;
|
|
108
|
+
}
|
|
109
|
+
syncChildFeatureFlagScopes() {
|
|
110
|
+
for (const element of this.querySelectorAll("feature-flags")) if (element instanceof _FeatureFlagsElement && element.getParentFeatureFlagsElement() === this) element.updateScope();
|
|
111
|
+
}
|
|
85
112
|
updateScope() {
|
|
86
113
|
const newScope = createScope(this.flags);
|
|
87
114
|
const parentScope = this.getParentScope() || FeatureFlags;
|
|
88
115
|
if (parentScope) newScope.mergeWithScope(parentScope);
|
|
89
116
|
this.scope = newScope;
|
|
117
|
+
this.syncFeatureFlagAttributes();
|
|
118
|
+
this.syncChildFeatureFlagScopes();
|
|
90
119
|
}
|
|
91
120
|
render() {
|
|
92
121
|
return html` <slot></slot> `;
|
|
93
122
|
}
|
|
94
123
|
isFeatureFlagEnabled(flag) {
|
|
95
|
-
if (Object.prototype.hasOwnProperty.call(this.flags, flag)) return this.flags[flag];
|
|
96
124
|
return this.scope.enabled(flag);
|
|
97
125
|
}
|
|
98
126
|
getScope() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["GlobalFeatureFlags","customElement"],"sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\ntype FeatureFlags = Record<string, boolean>;\n\nconst hasOwn = <T extends object>(obj: T, key: PropertyKey): key is keyof T =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap = {\n 'enable-v12-tile-default-icons': 'CDS-CLICKABLE-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-MODAL',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n } as const;\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal !== null && newVal !== 'false';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent = hasOwn(FeatureFlagsElement.flagComponentMap, name)\n ? FeatureFlagsElement.flagComponentMap[name]\n :
|
|
1
|
+
{"version":3,"file":"index.js","names":["GlobalFeatureFlags","customElement"],"sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\ntype FeatureFlags = Record<string, boolean>;\n\nconst hasOwn = <T extends object>(obj: T, key: PropertyKey): key is keyof T =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap = {\n 'enable-v12-release': null,\n 'enable-v12-tile-default-icons': 'CDS-CLICKABLE-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-MODAL',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n } as const;\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal !== null && newVal !== 'false';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent = hasOwn(FeatureFlagsElement.flagComponentMap, name)\n ? FeatureFlagsElement.flagComponentMap[name]\n : null;\n if (\n relatedComponent &&\n this.firstElementChild?.tagName === relatedComponent\n ) {\n this.firstElementChild.setAttribute(name, '');\n }\n\n this.updateScope();\n }\n\n private syncFeatureFlagAttributes() {\n for (const [flag, relatedComponent] of Object.entries(\n FeatureFlagsElement.flagComponentMap\n )) {\n if (!relatedComponent) {\n continue;\n }\n\n let isEnabled = false;\n try {\n isEnabled = this.scope.enabled(flag);\n } catch {\n isEnabled = false;\n }\n\n for (const element of this.querySelectorAll(\n relatedComponent.toLowerCase()\n )) {\n if (findParentFeatureFlags(element as HTMLElement) !== this) {\n continue;\n }\n\n if (isEnabled) {\n element.setAttribute(flag, '');\n } else {\n element.removeAttribute(flag);\n }\n }\n }\n }\n\n private getParentFeatureFlagsElement() {\n let parent: Node | null = this.parentNode;\n while (parent) {\n if (parent instanceof ShadowRoot) {\n parent = parent.host;\n continue;\n }\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = parent.parentNode;\n }\n return null;\n }\n\n private getParentScope() {\n return this.getParentFeatureFlagsElement()?.getScope() ?? null;\n }\n\n private syncChildFeatureFlagScopes() {\n for (const element of this.querySelectorAll('feature-flags')) {\n if (\n element instanceof FeatureFlagsElement &&\n element.getParentFeatureFlagsElement() === this\n ) {\n element.updateScope();\n }\n }\n }\n\n private updateScope() {\n const newScope = createScope(this.flags);\n const parentScope = this.getParentScope() || GlobalFeatureFlags;\n if (parentScope) {\n newScope.mergeWithScope(parentScope);\n }\n this.scope = newScope;\n this.syncFeatureFlagAttributes();\n this.syncChildFeatureFlagScopes();\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n public isFeatureFlagEnabled(flag: string) {\n return this.scope.enabled(flag);\n }\n\n private getScope() {\n return this.scope;\n }\n}\n\nexport default FeatureFlagsElement;\n\n// Utility functions\n\n// Function to find the nearest parent FeatureFlagsElement\nexport function findParentFeatureFlags(\n el: HTMLElement\n): FeatureFlagsElement | null {\n let parent: Node | null = el.parentNode;\n while (parent) {\n if (parent instanceof ShadowRoot) {\n parent = parent.host;\n continue;\n }\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = (parent as HTMLElement).parentNode;\n }\n return null;\n}\n\n// function to check if a feature flag is enabled in components\nexport function isFeatureFlagEnabled(\n flag: string,\n context: HTMLElement\n): boolean {\n const instance = findParentFeatureFlags(context);\n return instance?.isFeatureFlagEnabled(flag) ?? false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,UAA4B,KAAQ,QACxC,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG;AAE/C,IAAA,sBAAA,MACM,4BAA4B,WAAW;;;;;0BAOA;GACzC,sBAAsB;GACtB,iCAAiC;GACjC,+BAA+B;GAC/B,2BAA2B;GAC3B,gCAAgC;GAChC,oDAAoD;GACpD,uCAAuC;GACvC,yBAAyB;GACzB,sCAAsC;GACtC,2CAA2C;EAC7C;;CAEA,WAAW,qBAAqB;EAC9B,OAAO,OAAO,KAAA,qBAAyB,gBAAgB;CACzD;CAEA,cAAc;EACZ,MAAM;eAxBQA;eACc,CAAC;EAwB7B,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;CACpC;CAEA,oBAAoB;EAClB,MAAM,kBAAkB;EACxB,KAAK,YAAY;CACnB;CAEA,yBACE,MACA,SACA,QACA;EACA,MAAM,QAAQ,WAAW,QAAQ,WAAW;EAC5C,KAAK,MAAM,QAAQ;EAGnB,MAAM,mBAAmB,OAAA,qBAA2B,kBAAkB,IAAI,IAAA,qBAClD,iBAAiB,QACrC;EACJ,IACE,oBACA,KAAK,mBAAmB,YAAY,kBAEpC,KAAK,kBAAkB,aAAa,MAAM,EAAE;EAG9C,KAAK,YAAY;CACnB;CAEA,4BAAoC;EAClC,KAAK,MAAM,CAAC,MAAM,qBAAqB,OAAO,QAAA,qBACxB,gBACtB,GAAG;GACD,IAAI,CAAC,kBACH;GAGF,IAAI,YAAY;GAChB,IAAI;IACF,YAAY,KAAK,MAAM,QAAQ,IAAI;GACrC,QAAQ;IACN,YAAY;GACd;GAEA,KAAK,MAAM,WAAW,KAAK,iBACzB,iBAAiB,YAAY,CAC/B,GAAG;IACD,IAAI,uBAAuB,OAAsB,MAAM,MACrD;IAGF,IAAI,WACF,QAAQ,aAAa,MAAM,EAAE;SAE7B,QAAQ,gBAAgB,IAAI;GAEhC;EACF;CACF;CAEA,+BAAuC;EACrC,IAAI,SAAsB,KAAK;EAC/B,OAAO,QAAQ;GACb,IAAI,kBAAkB,YAAY;IAChC,SAAS,OAAO;IAChB;GACF;GACA,IAAI,kBAAA,sBACF,OAAO;GAET,SAAS,OAAO;EAClB;EACA,OAAO;CACT;CAEA,iBAAyB;EACvB,OAAO,KAAK,6BAA6B,CAAC,EAAE,SAAS,KAAK;CAC5D;CAEA,6BAAqC;EACnC,KAAK,MAAM,WAAW,KAAK,iBAAiB,eAAe,GACzD,IACE,mBAAA,wBACA,QAAQ,6BAA6B,MAAM,MAE3C,QAAQ,YAAY;CAG1B;CAEA,cAAsB;EACpB,MAAM,WAAW,YAAY,KAAK,KAAK;EACvC,MAAM,cAAc,KAAK,eAAe,KAAKA;EAC7C,IAAI,aACF,SAAS,eAAe,WAAW;EAErC,KAAK,QAAQ;EACb,KAAK,0BAA0B;EAC/B,KAAK,2BAA2B;CAClC;CAEA,SAAS;EACP,OAAO,IAAI;CACb;CAEA,qBAA4B,MAAc;EACxC,OAAO,KAAK,MAAM,QAAQ,IAAI;CAChC;CAEA,WAAmB;EACjB,OAAO,KAAK;CACd;AACF;yDA5ICC,cAAc,eAAe,CAAA,GAAA,mBAAA;AA8I9B,IAAA,wBAAe;AAKf,SAAgB,uBACd,IAC4B;CAC5B,IAAI,SAAsB,GAAG;CAC7B,OAAO,QAAQ;EACb,IAAI,kBAAkB,YAAY;GAChC,SAAS,OAAO;GAChB;EACF;EACA,IAAI,kBAAkB,qBACpB,OAAO;EAET,SAAU,OAAuB;CACnC;CACA,OAAO;AACT;AAGA,SAAgB,qBACd,MACA,SACS;CAET,OADiB,uBAAuB,OAC1B,CAAC,EAAE,qBAAqB,IAAI,KAAK;AACjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-global-action.d.ts","sourceRoot":"","sources":["../../../src/components/ui-shell/header-global-action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,SAAS;IAE3C,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAE1C;;OAEG;IAEH,MAAM,MAAC;IAEP;;OAEG;IAEH,OAAO,MAAC;IAER;;OAEG;IAEH,iBAAiB,MAAC;IAElB;;OAEG;IAEH,mBAAmB,MAAC;IAEpB,iBAAiB;IAOjB,YAAY;IAKZ,oBAAoB;IAMpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"header-global-action.d.ts","sourceRoot":"","sources":["../../../src/components/ui-shell/header-global-action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,SAAS;IAE3C,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAE1C;;OAEG;IAEH,MAAM,MAAC;IAEP;;OAEG;IAEH,OAAO,MAAC;IAER;;OAEG;IAEH,iBAAiB,MAAC;IAElB;;OAEG;IAEH,mBAAmB,MAAC;IAEpB,iBAAiB;IAOjB,YAAY;IAKZ,oBAAoB;IAMpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB,KAAA;IAwBzB,YAAY,CAAC,iBAAiB,KAAA;IAmB9B,MAAM,CAAC,iBAAiB;;;;;;;MAGtB;IAEF,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -16,7 +16,7 @@ import { LitElement } from "lit";
|
|
|
16
16
|
import { property, query } from "lit/decorators.js";
|
|
17
17
|
//#region src/components/ui-shell/header-global-action.ts
|
|
18
18
|
/**
|
|
19
|
-
* Copyright IBM Corp. 2023,
|
|
19
|
+
* Copyright IBM Corp. 2023, 2026
|
|
20
20
|
*
|
|
21
21
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
22
22
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -75,8 +75,8 @@ let CDSHeaderGlobalAction = class CDSHeaderGlobalAction extends button_default {
|
|
|
75
75
|
else {
|
|
76
76
|
const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);
|
|
77
77
|
if (panel) {
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
const expanded = panel.hasAttribute("expanded");
|
|
79
|
+
panel.toggleAttribute("expanded", !expanded);
|
|
80
80
|
const active = !this.active;
|
|
81
81
|
this.active = active;
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-global-action.js","names":["CDSButton","styles","customElement"],"sources":["../../../src/components/ui-shell/header-global-action.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023,
|
|
1
|
+
{"version":3,"file":"header-global-action.js","names":["CDSButton","styles","customElement"],"sources":["../../../src/components/ui-shell/header-global-action.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport {\n BUTTON_TOOLTIP_POSITION,\n BUTTON_KIND,\n BUTTON_SIZE,\n} from '../button/button';\nimport CDSButton from '../button/button';\nimport HostListener from '../../globals/decorators/host-listener';\nimport styles from './header.scss?lit';\nimport { prefix } from '../../globals/settings';\n\n/**\n * Header global action button\n *\n * @element cds-header-global-action\n */\n@customElement(`${prefix}-header-global-action`)\nclass CDSHeaderGlobalAction extends CDSButton {\n @query('button')\n protected _buttonNode!: HTMLButtonElement;\n\n /**\n * Specify whether the action is currently active\n */\n @property({ type: Boolean, reflect: true })\n active;\n\n /**\n * Specify which header panel the button is associated with.\n */\n @property({ type: String, attribute: 'panel-id', reflect: true })\n panelId;\n\n /**\n * The `aria-label` attribute for the button in its active state.\n */\n @property({ attribute: 'button-label-active' })\n buttonLabelActive;\n\n /**\n * The `aria-label` attribute for the button in its inactive state.\n */\n @property({ attribute: 'button-label-inactive' })\n buttonLabelInactive;\n\n connectedCallback() {\n this.tooltipPosition = BUTTON_TOOLTIP_POSITION.BOTTOM;\n this.kind = BUTTON_KIND.GHOST;\n this.size = BUTTON_SIZE.LARGE;\n super.connectedCallback();\n }\n\n firstUpdated() {\n document.addEventListener('click', this._handleDocumentClick, true);\n document.addEventListener('focusin', this._handleDocumentFocusIn, true);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this._handleDocumentClick, true);\n document.removeEventListener('focusin', this._handleDocumentFocusIn, true);\n super.disconnectedCallback();\n }\n\n private _handleDocumentClick = (event: MouseEvent) => {\n const path = event.composedPath();\n this._handlePanelCloseIfFocusOutside(path);\n };\n\n private _handleDocumentFocusIn = (event: FocusEvent) => {\n const path = event.composedPath();\n this._handlePanelCloseIfFocusOutside(path);\n };\n\n private _handlePanelCloseIfFocusOutside(path: EventTarget[]) {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n const isInside = path.some(\n (el) =>\n el instanceof HTMLElement && (panel?.contains(el) || this.contains(el))\n );\n\n if (panel && !isInside) {\n panel.removeAttribute('expanded');\n this.active = false;\n }\n }\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleFocusOut(event: FocusEvent) {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n if (\n panel &&\n relatedTarget &&\n !this.contains(relatedTarget) &&\n !panel.contains(relatedTarget)\n ) {\n panel.removeAttribute('expanded');\n this.active = false;\n }\n }\n\n @HostListener('click', { capture: true })\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleClick(event: Event) {\n const { disabled } = this;\n if (disabled) {\n event.stopPropagation();\n } else {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n\n // see if there is related panel for header-global-action button first\n // and then set the expanded attr of it accordingly\n if (panel) {\n const expanded = panel.hasAttribute('expanded');\n\n panel.toggleAttribute('expanded', !expanded);\n\n const active = !this.active;\n this.active = active;\n }\n }\n }\n\n @HostListener('keydown', { capture: true })\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleKeyDown(event: KeyboardEvent) {\n const { key } = event;\n if (key === 'Enter' || key === ' ') {\n event.preventDefault();\n this._handleClick(event);\n } else if (key === 'Escape') {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n if (panel) {\n panel.removeAttribute('expanded');\n }\n this.active = false;\n }\n }\n\n updated(changedProperties) {\n if (this._buttonNode) {\n this._buttonNode.classList.add(`${prefix}--header__action`);\n\n if (changedProperties.has('active') || changedProperties.size === 0) {\n if (this.active) {\n this._buttonNode.classList.add(`${prefix}--header__action--active`);\n\n if (this.buttonLabelActive) {\n this.tooltipText = this.buttonLabelActive;\n }\n } else {\n this._buttonNode.classList.remove(\n `${prefix}--header__action--active`\n );\n\n if (this.buttonLabelInactive) {\n this.tooltipText = this.buttonLabelInactive;\n }\n }\n }\n }\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('active') && this._buttonNode) {\n if (this.active) {\n this._buttonNode.classList.add(`${prefix}--header__action--active`);\n\n if (this.buttonLabelActive) {\n this.tooltipText = this.buttonLabelActive;\n }\n } else {\n this._buttonNode.classList.remove(`${prefix}--header__action--active`);\n\n if (this.buttonLabelInactive) {\n this.tooltipText = this.buttonLabelInactive;\n }\n }\n }\n return true;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSHeaderGlobalAction;\n"],"mappings":"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"}
|
|
@@ -31,6 +31,9 @@ try {
|
|
|
31
31
|
if (process.env.CARBON_ENABLE_V11_RELEASE) if (process.env.CARBON_ENABLE_V11_RELEASE === "true") enabled$1.enableV11Release = true;
|
|
32
32
|
else enabled$1.enableV11Release = false;
|
|
33
33
|
else enabled$1.enableV11Release = true;
|
|
34
|
+
if (process.env.CARBON_ENABLE_V12_RELEASE) if (process.env.CARBON_ENABLE_V12_RELEASE === "true") enabled$1.enableV12Release = true;
|
|
35
|
+
else enabled$1.enableV12Release = false;
|
|
36
|
+
else enabled$1.enableV12Release = false;
|
|
34
37
|
if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === "true") enabled$1.enableExperimentalTileContrast = true;
|
|
35
38
|
else enabled$1.enableExperimentalTileContrast = false;
|
|
36
39
|
else enabled$1.enableExperimentalTileContrast = false;
|
|
@@ -77,6 +80,7 @@ try {
|
|
|
77
80
|
enabled$1.enableCssCustomProperties = false;
|
|
78
81
|
enabled$1.enableCssGrid = false;
|
|
79
82
|
enabled$1.enableV11Release = true;
|
|
83
|
+
enabled$1.enableV12Release = false;
|
|
80
84
|
enabled$1.enableExperimentalTileContrast = false;
|
|
81
85
|
enabled$1.enableTileContrast = false;
|
|
82
86
|
enabled$1.enableV12TileDefaultIcons = false;
|
|
@@ -108,6 +112,11 @@ const featureFlagInfo = [
|
|
|
108
112
|
description: "Enable the features and functionality for the v11 Release\n",
|
|
109
113
|
enabled: enabled$1.enableV11Release
|
|
110
114
|
},
|
|
115
|
+
{
|
|
116
|
+
name: "enable-v12-release",
|
|
117
|
+
description: "Enable the features and functionality for the v12 Release\n",
|
|
118
|
+
enabled: enabled$1.enableV12Release
|
|
119
|
+
},
|
|
111
120
|
{
|
|
112
121
|
name: "enable-experimental-tile-contrast",
|
|
113
122
|
description: "Deprecated, use enable-tile-contrast instead\n",
|
|
@@ -179,6 +188,8 @@ const featureFlagInfo = [
|
|
|
179
188
|
enabled: enabled$1.enablePresence
|
|
180
189
|
}
|
|
181
190
|
];
|
|
191
|
+
const v12ReleaseFlag = "enable-v12-release";
|
|
192
|
+
const v12FlagPrefix = "enable-v12-";
|
|
182
193
|
var FeatureFlagScope = class {
|
|
183
194
|
constructor(flags) {
|
|
184
195
|
this.flags = /* @__PURE__ */ new Map();
|
|
@@ -233,6 +244,7 @@ var FeatureFlagScope = class {
|
|
|
233
244
|
*/
|
|
234
245
|
enabled(name) {
|
|
235
246
|
this.checkForFlag(name);
|
|
247
|
+
if (name !== v12ReleaseFlag && name.startsWith(v12FlagPrefix) && this.flags.get(v12ReleaseFlag) === true) return true;
|
|
236
248
|
return this.flags.get(name) ?? false;
|
|
237
249
|
}
|
|
238
250
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../feature-flags/es/index.js"],"sourcesContent":["/**\n * Copyright IBM Corp. 2015, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n//#region src/generated/feature-flags.js\n/**\n* Code generated by @carbon/feature-flags. DO NOT EDIT.\n*\n* Copyright IBM Corp. 2015, 2023\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst enabled$1 = {};\ntry {\n\tif (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES) if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES === \"true\") enabled$1.enableCssCustomProperties = true;\n\telse enabled$1.enableCssCustomProperties = false;\n\telse enabled$1.enableCssCustomProperties = false;\n\tif (process.env.CARBON_ENABLE_CSS_GRID) if (process.env.CARBON_ENABLE_CSS_GRID === \"true\") enabled$1.enableCssGrid = true;\n\telse enabled$1.enableCssGrid = false;\n\telse enabled$1.enableCssGrid = false;\n\tif (process.env.CARBON_ENABLE_V11_RELEASE) if (process.env.CARBON_ENABLE_V11_RELEASE === \"true\") enabled$1.enableV11Release = true;\n\telse enabled$1.enableV11Release = false;\n\telse enabled$1.enableV11Release = true;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === \"true\") enabled$1.enableExperimentalTileContrast = true;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\tif (process.env.CARBON_ENABLE_TILE_CONTRAST) if (process.env.CARBON_ENABLE_TILE_CONTRAST === \"true\") enabled$1.enableTileContrast = true;\n\telse enabled$1.enableTileContrast = false;\n\telse enabled$1.enableTileContrast = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS === \"true\") enabled$1.enableV12TileDefaultIcons = true;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS === \"true\") enabled$1.enableV12TileRadioIcons = true;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_OVERFLOWMENU) if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU === \"true\") enabled$1.enableV12Overflowmenu = true;\n\telse enabled$1.enableV12Overflowmenu = false;\n\telse enabled$1.enableV12Overflowmenu = false;\n\tif (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE) if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE === \"true\") enabled$1.enableTreeviewControllable = true;\n\telse enabled$1.enableTreeviewControllable = false;\n\telse enabled$1.enableTreeviewControllable = false;\n\tif (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS) if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS === \"true\") enabled$1.enableV12StructuredListVisibleIcons = true;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableExperimentalFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_DIALOG_ELEMENT) if (process.env.CARBON_ENABLE_DIALOG_ELEMENT === \"true\") enabled$1.enableDialogElement = true;\n\telse enabled$1.enableDialogElement = false;\n\telse enabled$1.enableDialogElement = false;\n\tif (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES) if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES === \"true\") enabled$1.enableV12DynamicFloatingStyles = true;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\tif (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING) if (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING === \"true\") enabled$1.enableV12ToggleReducedLabelSpacing = true;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tif (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER) if (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER === \"true\") enabled$1.enableEnhancedFileUploader = true;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\tif (process.env.CARBON_ENABLE_PRESENCE) if (process.env.CARBON_ENABLE_PRESENCE === \"true\") enabled$1.enablePresence = true;\n\telse enabled$1.enablePresence = false;\n\telse enabled$1.enablePresence = false;\n} catch (error) {\n\tenabled$1.enableCssCustomProperties = false;\n\tenabled$1.enableCssGrid = false;\n\tenabled$1.enableV11Release = true;\n\tenabled$1.enableExperimentalTileContrast = false;\n\tenabled$1.enableTileContrast = false;\n\tenabled$1.enableV12TileDefaultIcons = false;\n\tenabled$1.enableV12TileRadioIcons = false;\n\tenabled$1.enableV12Overflowmenu = false;\n\tenabled$1.enableTreeviewControllable = false;\n\tenabled$1.enableV12StructuredListVisibleIcons = false;\n\tenabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tenabled$1.enableFocusWrapWithoutSentinels = false;\n\tenabled$1.enableDialogElement = false;\n\tenabled$1.enableV12DynamicFloatingStyles = false;\n\tenabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tenabled$1.enableEnhancedFileUploader = false;\n\tenabled$1.enablePresence = false;\n}\nconst featureFlagInfo = [\n\t{\n\t\tname: \"enable-css-custom-properties\",\n\t\tdescription: \"Describe what the flag does\",\n\t\tenabled: enabled$1.enableCssCustomProperties\n\t},\n\t{\n\t\tname: \"enable-css-grid\",\n\t\tdescription: \"Enable CSS Grid Layout in the Grid and Column React components\\n\",\n\t\tenabled: enabled$1.enableCssGrid\n\t},\n\t{\n\t\tname: \"enable-v11-release\",\n\t\tdescription: \"Enable the features and functionality for the v11 Release\\n\",\n\t\tenabled: enabled$1.enableV11Release\n\t},\n\t{\n\t\tname: \"enable-experimental-tile-contrast\",\n\t\tdescription: \"Deprecated, use enable-tile-contrast instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalTileContrast\n\t},\n\t{\n\t\tname: \"enable-tile-contrast\",\n\t\tdescription: \"Enable the experimental tile improved contrast styles\\n\",\n\t\tenabled: enabled$1.enableTileContrast\n\t},\n\t{\n\t\tname: \"enable-v12-tile-default-icons\",\n\t\tdescription: \"Enable rendering of default icons in the tile components\\n\",\n\t\tenabled: enabled$1.enableV12TileDefaultIcons\n\t},\n\t{\n\t\tname: \"enable-v12-tile-radio-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the RadioTile component\\n\",\n\t\tenabled: enabled$1.enableV12TileRadioIcons\n\t},\n\t{\n\t\tname: \"enable-v12-overflowmenu\",\n\t\tdescription: \"Enable the use of the v12 OverflowMenu leveraging the Menu subcomponents\\n\",\n\t\tenabled: enabled$1.enableV12Overflowmenu\n\t},\n\t{\n\t\tname: \"enable-treeview-controllable\",\n\t\tdescription: \"Enable the new TreeView controllable API\\n\",\n\t\tenabled: enabled$1.enableTreeviewControllable\n\t},\n\t{\n\t\tname: \"enable-v12-structured-list-visible-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the StructuredList component\\n\",\n\t\tenabled: enabled$1.enableV12StructuredListVisibleIcons\n\t},\n\t{\n\t\tname: \"enable-experimental-focus-wrap-without-sentinels\",\n\t\tdescription: \"Deprecated, use enable-focus-wrap-without-sentinels instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-focus-wrap-without-sentinels\",\n\t\tdescription: \"Enable the new focus wrap behavior that doesn't use sentinel nodes\\n\",\n\t\tenabled: enabled$1.enableFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-dialog-element\",\n\t\tdescription: \"Enable components to utilize the native dialog element\\n\",\n\t\tenabled: enabled$1.enableDialogElement\n\t},\n\t{\n\t\tname: \"enable-v12-dynamic-floating-styles\",\n\t\tdescription: \"Enable dynamic setting of floating styles for components like Popover, Tooltip, etc.\\n\",\n\t\tenabled: enabled$1.enableV12DynamicFloatingStyles\n\t},\n\t{\n\t\tname: \"enable-v12-toggle-reduced-label-spacing\",\n\t\tdescription: \"Enable a reduced spacing between the toggle control and its label\\n\",\n\t\tenabled: enabled$1.enableV12ToggleReducedLabelSpacing\n\t},\n\t{\n\t\tname: \"enable-enhanced-file-uploader\",\n\t\tdescription: \"Enable enhanced functionality for the FileUploader component, including richer callback data and expanded trigger events for onChange and onDelete.\\n\",\n\t\tenabled: enabled$1.enableEnhancedFileUploader\n\t},\n\t{\n\t\tname: \"enable-presence\",\n\t\tdescription: \"Enable components to remain unmounted in closed state and mount in open state.\\n\",\n\t\tenabled: enabled$1.enablePresence\n\t}\n];\n//#endregion\n//#region src/FeatureFlagScope.ts\nvar FeatureFlagScope = class {\n\tconstructor(flags) {\n\t\tthis.flags = /* @__PURE__ */ new Map();\n\t\tif (flags) Object.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\t/**\n\t* Check to see if a flag exists\n\t*/\n\tcheckForFlag(name) {\n\t\tif (!this.flags.has(name)) throw new Error(`Unable to find a feature flag with the name: \\`${name}\\``);\n\t}\n\t/**\n\t* Add a feature flag\n\t*/\n\tadd(name, enabled) {\n\t\tif (this.flags.has(name)) throw new Error(`The feature flag: ${name} already exists`);\n\t\tthis.flags.set(name, enabled);\n\t}\n\t/**\n\t* Enable a feature flag\n\t*/\n\tenable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, true);\n\t}\n\t/**\n\t* Disable a feature flag\n\t*/\n\tdisable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, false);\n\t}\n\t/**\n\t* Merge the given feature flags with the current set of feature flags.\n\t* Duplicate keys will be set to the value in the given feature flags.\n\t*/\n\tmerge(flags) {\n\t\tObject.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\tmergeWithScope(scope) {\n\t\tfor (const [key, value] of scope.flags) {\n\t\t\tif (this.flags.has(key)) continue;\n\t\t\tthis.flags.set(key, value);\n\t\t}\n\t}\n\t/**\n\t* Check if a feature flag is enabled\n\t*/\n\tenabled(name) {\n\t\tthis.checkForFlag(name);\n\t\treturn this.flags.get(name) ?? false;\n\t}\n};\n//#endregion\n//#region src/index.ts\n/**\n* Copyright IBM Corp. 2015, 2026\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst createScope = (flags) => new FeatureFlagScope(flags);\nconst createDefaultScope = () => {\n\tconst scope = createScope();\n\tfor (const featureFlag of featureFlagInfo) scope.add(featureFlag.name, featureFlag.enabled);\n\treturn scope;\n};\nconst FeatureFlags = createDefaultScope();\nconst add = FeatureFlags.add.bind(FeatureFlags);\nconst enable = FeatureFlags.enable.bind(FeatureFlags);\nconst disable = FeatureFlags.disable.bind(FeatureFlags);\nconst enabled = FeatureFlags.enabled.bind(FeatureFlags);\nconst merge = FeatureFlags.merge.bind(FeatureFlags);\n//#endregion\nexport { FeatureFlags, add, createScope, disable, enable, enabled, merge };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../feature-flags/es/index.js"],"sourcesContent":["/**\n * Copyright IBM Corp. 2015, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n//#region src/generated/feature-flags.js\n/**\n* Code generated by @carbon/feature-flags. DO NOT EDIT.\n*\n* Copyright IBM Corp. 2015, 2023\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst enabled$1 = {};\ntry {\n\tif (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES) if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES === \"true\") enabled$1.enableCssCustomProperties = true;\n\telse enabled$1.enableCssCustomProperties = false;\n\telse enabled$1.enableCssCustomProperties = false;\n\tif (process.env.CARBON_ENABLE_CSS_GRID) if (process.env.CARBON_ENABLE_CSS_GRID === \"true\") enabled$1.enableCssGrid = true;\n\telse enabled$1.enableCssGrid = false;\n\telse enabled$1.enableCssGrid = false;\n\tif (process.env.CARBON_ENABLE_V11_RELEASE) if (process.env.CARBON_ENABLE_V11_RELEASE === \"true\") enabled$1.enableV11Release = true;\n\telse enabled$1.enableV11Release = false;\n\telse enabled$1.enableV11Release = true;\n\tif (process.env.CARBON_ENABLE_V12_RELEASE) if (process.env.CARBON_ENABLE_V12_RELEASE === \"true\") enabled$1.enableV12Release = true;\n\telse enabled$1.enableV12Release = false;\n\telse enabled$1.enableV12Release = false;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === \"true\") enabled$1.enableExperimentalTileContrast = true;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\tif (process.env.CARBON_ENABLE_TILE_CONTRAST) if (process.env.CARBON_ENABLE_TILE_CONTRAST === \"true\") enabled$1.enableTileContrast = true;\n\telse enabled$1.enableTileContrast = false;\n\telse enabled$1.enableTileContrast = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS === \"true\") enabled$1.enableV12TileDefaultIcons = true;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS === \"true\") enabled$1.enableV12TileRadioIcons = true;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_OVERFLOWMENU) if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU === \"true\") enabled$1.enableV12Overflowmenu = true;\n\telse enabled$1.enableV12Overflowmenu = false;\n\telse enabled$1.enableV12Overflowmenu = false;\n\tif (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE) if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE === \"true\") enabled$1.enableTreeviewControllable = true;\n\telse enabled$1.enableTreeviewControllable = false;\n\telse enabled$1.enableTreeviewControllable = false;\n\tif (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS) if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS === \"true\") enabled$1.enableV12StructuredListVisibleIcons = true;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableExperimentalFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_DIALOG_ELEMENT) if (process.env.CARBON_ENABLE_DIALOG_ELEMENT === \"true\") enabled$1.enableDialogElement = true;\n\telse enabled$1.enableDialogElement = false;\n\telse enabled$1.enableDialogElement = false;\n\tif (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES) if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES === \"true\") enabled$1.enableV12DynamicFloatingStyles = true;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\tif (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING) if (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING === \"true\") enabled$1.enableV12ToggleReducedLabelSpacing = true;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tif (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER) if (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER === \"true\") enabled$1.enableEnhancedFileUploader = true;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\tif (process.env.CARBON_ENABLE_PRESENCE) if (process.env.CARBON_ENABLE_PRESENCE === \"true\") enabled$1.enablePresence = true;\n\telse enabled$1.enablePresence = false;\n\telse enabled$1.enablePresence = false;\n} catch (error) {\n\tenabled$1.enableCssCustomProperties = false;\n\tenabled$1.enableCssGrid = false;\n\tenabled$1.enableV11Release = true;\n\tenabled$1.enableV12Release = false;\n\tenabled$1.enableExperimentalTileContrast = false;\n\tenabled$1.enableTileContrast = false;\n\tenabled$1.enableV12TileDefaultIcons = false;\n\tenabled$1.enableV12TileRadioIcons = false;\n\tenabled$1.enableV12Overflowmenu = false;\n\tenabled$1.enableTreeviewControllable = false;\n\tenabled$1.enableV12StructuredListVisibleIcons = false;\n\tenabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tenabled$1.enableFocusWrapWithoutSentinels = false;\n\tenabled$1.enableDialogElement = false;\n\tenabled$1.enableV12DynamicFloatingStyles = false;\n\tenabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tenabled$1.enableEnhancedFileUploader = false;\n\tenabled$1.enablePresence = false;\n}\nconst featureFlagInfo = [\n\t{\n\t\tname: \"enable-css-custom-properties\",\n\t\tdescription: \"Describe what the flag does\",\n\t\tenabled: enabled$1.enableCssCustomProperties\n\t},\n\t{\n\t\tname: \"enable-css-grid\",\n\t\tdescription: \"Enable CSS Grid Layout in the Grid and Column React components\\n\",\n\t\tenabled: enabled$1.enableCssGrid\n\t},\n\t{\n\t\tname: \"enable-v11-release\",\n\t\tdescription: \"Enable the features and functionality for the v11 Release\\n\",\n\t\tenabled: enabled$1.enableV11Release\n\t},\n\t{\n\t\tname: \"enable-v12-release\",\n\t\tdescription: \"Enable the features and functionality for the v12 Release\\n\",\n\t\tenabled: enabled$1.enableV12Release\n\t},\n\t{\n\t\tname: \"enable-experimental-tile-contrast\",\n\t\tdescription: \"Deprecated, use enable-tile-contrast instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalTileContrast\n\t},\n\t{\n\t\tname: \"enable-tile-contrast\",\n\t\tdescription: \"Enable the experimental tile improved contrast styles\\n\",\n\t\tenabled: enabled$1.enableTileContrast\n\t},\n\t{\n\t\tname: \"enable-v12-tile-default-icons\",\n\t\tdescription: \"Enable rendering of default icons in the tile components\\n\",\n\t\tenabled: enabled$1.enableV12TileDefaultIcons\n\t},\n\t{\n\t\tname: \"enable-v12-tile-radio-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the RadioTile component\\n\",\n\t\tenabled: enabled$1.enableV12TileRadioIcons\n\t},\n\t{\n\t\tname: \"enable-v12-overflowmenu\",\n\t\tdescription: \"Enable the use of the v12 OverflowMenu leveraging the Menu subcomponents\\n\",\n\t\tenabled: enabled$1.enableV12Overflowmenu\n\t},\n\t{\n\t\tname: \"enable-treeview-controllable\",\n\t\tdescription: \"Enable the new TreeView controllable API\\n\",\n\t\tenabled: enabled$1.enableTreeviewControllable\n\t},\n\t{\n\t\tname: \"enable-v12-structured-list-visible-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the StructuredList component\\n\",\n\t\tenabled: enabled$1.enableV12StructuredListVisibleIcons\n\t},\n\t{\n\t\tname: \"enable-experimental-focus-wrap-without-sentinels\",\n\t\tdescription: \"Deprecated, use enable-focus-wrap-without-sentinels instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-focus-wrap-without-sentinels\",\n\t\tdescription: \"Enable the new focus wrap behavior that doesn't use sentinel nodes\\n\",\n\t\tenabled: enabled$1.enableFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-dialog-element\",\n\t\tdescription: \"Enable components to utilize the native dialog element\\n\",\n\t\tenabled: enabled$1.enableDialogElement\n\t},\n\t{\n\t\tname: \"enable-v12-dynamic-floating-styles\",\n\t\tdescription: \"Enable dynamic setting of floating styles for components like Popover, Tooltip, etc.\\n\",\n\t\tenabled: enabled$1.enableV12DynamicFloatingStyles\n\t},\n\t{\n\t\tname: \"enable-v12-toggle-reduced-label-spacing\",\n\t\tdescription: \"Enable a reduced spacing between the toggle control and its label\\n\",\n\t\tenabled: enabled$1.enableV12ToggleReducedLabelSpacing\n\t},\n\t{\n\t\tname: \"enable-enhanced-file-uploader\",\n\t\tdescription: \"Enable enhanced functionality for the FileUploader component, including richer callback data and expanded trigger events for onChange and onDelete.\\n\",\n\t\tenabled: enabled$1.enableEnhancedFileUploader\n\t},\n\t{\n\t\tname: \"enable-presence\",\n\t\tdescription: \"Enable components to remain unmounted in closed state and mount in open state.\\n\",\n\t\tenabled: enabled$1.enablePresence\n\t}\n];\n//#endregion\n//#region src/FeatureFlagScope.ts\nconst v12ReleaseFlag = \"enable-v12-release\";\nconst v12FlagPrefix = \"enable-v12-\";\nvar FeatureFlagScope = class {\n\tconstructor(flags) {\n\t\tthis.flags = /* @__PURE__ */ new Map();\n\t\tif (flags) Object.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\t/**\n\t* Check to see if a flag exists\n\t*/\n\tcheckForFlag(name) {\n\t\tif (!this.flags.has(name)) throw new Error(`Unable to find a feature flag with the name: \\`${name}\\``);\n\t}\n\t/**\n\t* Add a feature flag\n\t*/\n\tadd(name, enabled) {\n\t\tif (this.flags.has(name)) throw new Error(`The feature flag: ${name} already exists`);\n\t\tthis.flags.set(name, enabled);\n\t}\n\t/**\n\t* Enable a feature flag\n\t*/\n\tenable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, true);\n\t}\n\t/**\n\t* Disable a feature flag\n\t*/\n\tdisable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, false);\n\t}\n\t/**\n\t* Merge the given feature flags with the current set of feature flags.\n\t* Duplicate keys will be set to the value in the given feature flags.\n\t*/\n\tmerge(flags) {\n\t\tObject.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\tmergeWithScope(scope) {\n\t\tfor (const [key, value] of scope.flags) {\n\t\t\tif (this.flags.has(key)) continue;\n\t\t\tthis.flags.set(key, value);\n\t\t}\n\t}\n\t/**\n\t* Check if a feature flag is enabled\n\t*/\n\tenabled(name) {\n\t\tthis.checkForFlag(name);\n\t\tif (name !== v12ReleaseFlag && name.startsWith(v12FlagPrefix) && this.flags.get(v12ReleaseFlag) === true) return true;\n\t\treturn this.flags.get(name) ?? false;\n\t}\n};\n//#endregion\n//#region src/index.ts\n/**\n* Copyright IBM Corp. 2015, 2026\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst createScope = (flags) => new FeatureFlagScope(flags);\nconst createDefaultScope = () => {\n\tconst scope = createScope();\n\tfor (const featureFlag of featureFlagInfo) scope.add(featureFlag.name, featureFlag.enabled);\n\treturn scope;\n};\nconst FeatureFlags = createDefaultScope();\nconst add = FeatureFlags.add.bind(FeatureFlags);\nconst enable = FeatureFlags.enable.bind(FeatureFlags);\nconst disable = FeatureFlags.disable.bind(FeatureFlags);\nconst enabled = FeatureFlags.enabled.bind(FeatureFlags);\nconst merge = FeatureFlags.merge.bind(FeatureFlags);\n//#endregion\nexport { FeatureFlags, add, createScope, disable, enable, enabled, merge };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,YAAY,CAAC;AACnB,IAAI;CACH,IAAI,QAAQ,IAAI,qCAAqC,IAAI,QAAQ,IAAI,wCAAwC,QAAQ,UAAU,4BAA4B;MACtJ,UAAU,4BAA4B;MACtC,UAAU,4BAA4B;CAC3C,IAAI,QAAQ,IAAI,wBAAwB,IAAI,QAAQ,IAAI,2BAA2B,QAAQ,UAAU,gBAAgB;MAChH,UAAU,gBAAgB;MAC1B,UAAU,gBAAgB;CAC/B,IAAI,QAAQ,IAAI,2BAA2B,IAAI,QAAQ,IAAI,8BAA8B,QAAQ,UAAU,mBAAmB;MACzH,UAAU,mBAAmB;MAC7B,UAAU,mBAAmB;CAClC,IAAI,QAAQ,IAAI,2BAA2B,IAAI,QAAQ,IAAI,8BAA8B,QAAQ,UAAU,mBAAmB;MACzH,UAAU,mBAAmB;MAC7B,UAAU,mBAAmB;CAClC,IAAI,QAAQ,IAAI,0CAA0C,IAAI,QAAQ,IAAI,6CAA6C,QAAQ,UAAU,iCAAiC;MACrK,UAAU,iCAAiC;MAC3C,UAAU,iCAAiC;CAChD,IAAI,QAAQ,IAAI,6BAA6B,IAAI,QAAQ,IAAI,gCAAgC,QAAQ,UAAU,qBAAqB;MAC/H,UAAU,qBAAqB;MAC/B,UAAU,qBAAqB;CACpC,IAAI,QAAQ,IAAI,sCAAsC,IAAI,QAAQ,IAAI,yCAAyC,QAAQ,UAAU,4BAA4B;MACxJ,UAAU,4BAA4B;MACtC,UAAU,4BAA4B;CAC3C,IAAI,QAAQ,IAAI,oCAAoC,IAAI,QAAQ,IAAI,uCAAuC,QAAQ,UAAU,0BAA0B;MAClJ,UAAU,0BAA0B;MACpC,UAAU,0BAA0B;CACzC,IAAI,QAAQ,IAAI,gCAAgC,IAAI,QAAQ,IAAI,mCAAmC,QAAQ,UAAU,wBAAwB;MACxI,UAAU,wBAAwB;MAClC,UAAU,wBAAwB;CACvC,IAAI,QAAQ,IAAI,qCAAqC,IAAI,QAAQ,IAAI,wCAAwC,QAAQ,UAAU,6BAA6B;MACvJ,UAAU,6BAA6B;MACvC,UAAU,6BAA6B;CAC5C,IAAI,QAAQ,IAAI,iDAAiD,IAAI,QAAQ,IAAI,oDAAoD,QAAQ,UAAU,sCAAsC;MACxL,UAAU,sCAAsC;MAChD,UAAU,sCAAsC;CACrD,IAAI,QAAQ,IAAI,yDAAyD,IAAI,QAAQ,IAAI,4DAA4D,QAAQ,UAAU,8CAA8C;MAChN,UAAU,8CAA8C;MACxD,UAAU,8CAA8C;CAC7D,IAAI,QAAQ,IAAI,4CAA4C,IAAI,QAAQ,IAAI,+CAA+C,QAAQ,UAAU,kCAAkC;MAC1K,UAAU,kCAAkC;MAC5C,UAAU,kCAAkC;CACjD,IAAI,QAAQ,IAAI,8BAA8B,IAAI,QAAQ,IAAI,iCAAiC,QAAQ,UAAU,sBAAsB;MAClI,UAAU,sBAAsB;MAChC,UAAU,sBAAsB;CACrC,IAAI,QAAQ,IAAI,2CAA2C,IAAI,QAAQ,IAAI,8CAA8C,QAAQ,UAAU,iCAAiC;MACvK,UAAU,iCAAiC;MAC3C,UAAU,iCAAiC;CAChD,IAAI,QAAQ,IAAI,gDAAgD,IAAI,QAAQ,IAAI,mDAAmD,QAAQ,UAAU,qCAAqC;MACrL,UAAU,qCAAqC;MAC/C,UAAU,qCAAqC;CACpD,IAAI,QAAQ,IAAI,sCAAsC,IAAI,QAAQ,IAAI,yCAAyC,QAAQ,UAAU,6BAA6B;MACzJ,UAAU,6BAA6B;MACvC,UAAU,6BAA6B;CAC5C,IAAI,QAAQ,IAAI,wBAAwB,IAAI,QAAQ,IAAI,2BAA2B,QAAQ,UAAU,iBAAiB;MACjH,UAAU,iBAAiB;MAC3B,UAAU,iBAAiB;AACjC,SAAS,OAAO;CACf,UAAU,4BAA4B;CACtC,UAAU,gBAAgB;CAC1B,UAAU,mBAAmB;CAC7B,UAAU,mBAAmB;CAC7B,UAAU,iCAAiC;CAC3C,UAAU,qBAAqB;CAC/B,UAAU,4BAA4B;CACtC,UAAU,0BAA0B;CACpC,UAAU,wBAAwB;CAClC,UAAU,6BAA6B;CACvC,UAAU,sCAAsC;CAChD,UAAU,8CAA8C;CACxD,UAAU,kCAAkC;CAC5C,UAAU,sBAAsB;CAChC,UAAU,iCAAiC;CAC3C,UAAU,qCAAqC;CAC/C,UAAU,6BAA6B;CACvC,UAAU,iBAAiB;AAC5B;AACA,MAAM,kBAAkB;CACvB;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;CACA;EACC,MAAM;EACN,aAAa;EACb,SAAS,UAAU;CACpB;AACD;AAGA,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,IAAI,mBAAmB,MAAM;CAC5B,YAAY,OAAO;EAClB,KAAK,wBAAwB,IAAI,IAAI;EACrC,IAAI,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,QAAQ;GAC9C,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI;EAC/B,CAAC;CACF;;;;CAIA,aAAa,MAAM;EAClB,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,kDAAkD,KAAK,GAAG;CACtG;;;;CAIA,IAAI,MAAM,SAAS;EAClB,IAAI,KAAK,MAAM,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,qBAAqB,KAAK,gBAAgB;EACpF,KAAK,MAAM,IAAI,MAAM,OAAO;CAC7B;;;;CAIA,OAAO,MAAM;EACZ,KAAK,aAAa,IAAI;EACtB,KAAK,MAAM,IAAI,MAAM,IAAI;CAC1B;;;;CAIA,QAAQ,MAAM;EACb,KAAK,aAAa,IAAI;EACtB,KAAK,MAAM,IAAI,MAAM,KAAK;CAC3B;;;;;CAKA,MAAM,OAAO;EACZ,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,QAAQ;GACnC,KAAK,MAAM,IAAI,KAAK,MAAM,IAAI;EAC/B,CAAC;CACF;CACA,eAAe,OAAO;EACrB,KAAK,MAAM,CAAC,KAAK,UAAU,MAAM,OAAO;GACvC,IAAI,KAAK,MAAM,IAAI,GAAG,GAAG;GACzB,KAAK,MAAM,IAAI,KAAK,KAAK;EAC1B;CACD;;;;CAIA,QAAQ,MAAM;EACb,KAAK,aAAa,IAAI;EACtB,IAAI,SAAS,kBAAkB,KAAK,WAAW,aAAa,KAAK,KAAK,MAAM,IAAI,cAAc,MAAM,MAAM,OAAO;EACjH,OAAO,KAAK,MAAM,IAAI,IAAI,KAAK;CAChC;AACD;;;;;;;AASA,MAAM,eAAe,UAAU,IAAI,iBAAiB,KAAK;AACzD,MAAM,2BAA2B;CAChC,MAAM,QAAQ,YAAY;CAC1B,KAAK,MAAM,eAAe,iBAAiB,MAAM,IAAI,YAAY,MAAM,YAAY,OAAO;CAC1F,OAAO;AACR;AACA,MAAM,eAAe,mBAAmB;AAC5B,aAAa,IAAI,KAAK,YAAY;AAC/B,aAAa,OAAO,KAAK,YAAY;AACpC,aAAa,QAAQ,KAAK,YAAY;AACtC,aAAa,QAAQ,KAAK,YAAY;AACxC,aAAa,MAAM,KAAK,YAAY"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
2
|
+
* Copyright IBM Corp. 2019, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -46,6 +46,7 @@ declare class CDSDropdownItem extends LitElement {
|
|
|
46
46
|
* Reference to the next sibling element for hover state management.
|
|
47
47
|
*/
|
|
48
48
|
protected _nextSiblingRef: Element | null;
|
|
49
|
+
private _textContainer;
|
|
49
50
|
/**
|
|
50
51
|
* Gets the next dropdown/combo-box item sibling.
|
|
51
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-item.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,gBAAwB;IAE5B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"dropdown-item.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,gBAAwB;IAE5B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGjD,OAAO,CAAC,cAAc,CAAyB;IAE/C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,OAAO,GAAG,IAAI;IAexC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IAchE,SAAS,CAAC,iBAAiB,aAKzB;IAEF,SAAS,CAAC,iBAAiB,aAEzB;IAEF,iBAAiB;IAiBjB,oBAAoB;IAOpB;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAsB7C,MAAM;IAeN;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAK;IAEd,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -13,11 +13,11 @@ import "./defs.js";
|
|
|
13
13
|
import dropdown_default from "./dropdown.scss.js";
|
|
14
14
|
import "./dropdown.js";
|
|
15
15
|
import { LitElement, html } from "lit";
|
|
16
|
-
import { property, state } from "lit/decorators.js";
|
|
16
|
+
import { property, query, state } from "lit/decorators.js";
|
|
17
17
|
import Checkmark16 from "@carbon/icons/es/checkmark/16.js";
|
|
18
18
|
//#region src/components/dropdown/dropdown-item.ts
|
|
19
19
|
/**
|
|
20
|
-
* Copyright IBM Corp. 2019,
|
|
20
|
+
* Copyright IBM Corp. 2019, 2026
|
|
21
21
|
*
|
|
22
22
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
23
23
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -94,7 +94,7 @@ let CDSDropdownItem = class CDSDropdownItem extends LitElement {
|
|
|
94
94
|
*/
|
|
95
95
|
_handleSlotChange({ target }) {
|
|
96
96
|
const text = target.assignedNodes().filter((node) => node.nodeType !== Node.TEXT_NODE || node.textContent.trim());
|
|
97
|
-
const textContainer = this.
|
|
97
|
+
const textContainer = this._textContainer;
|
|
98
98
|
if (!textContainer || this._hasEllipsisApplied === true) return;
|
|
99
99
|
new ResizeObserver(() => {
|
|
100
100
|
this._hasEllipsisApplied = textContainer.scrollWidth > textContainer.clientWidth;
|
|
@@ -135,6 +135,7 @@ __decorate([property({
|
|
|
135
135
|
__decorate([property({ reflect: true })], CDSDropdownItem.prototype, "size", void 0);
|
|
136
136
|
__decorate([property()], CDSDropdownItem.prototype, "value", void 0);
|
|
137
137
|
__decorate([state()], CDSDropdownItem.prototype, "_hasEllipsisApplied", void 0);
|
|
138
|
+
__decorate([query(`.cds-custom--list-box__menu-item__option`)], CDSDropdownItem.prototype, "_textContainer", void 0);
|
|
138
139
|
CDSDropdownItem = __decorate([carbonElement(`cds-custom-dropdown-item`)], CDSDropdownItem);
|
|
139
140
|
var dropdown_item_default = CDSDropdownItem;
|
|
140
141
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-item.js","names":["styles","customElement"],"sources":["../../../src/components/dropdown/dropdown-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019,
|
|
1
|
+
{"version":3,"file":"dropdown-item.js","names":["styles","customElement"],"sources":["../../../src/components/dropdown/dropdown-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport { DROPDOWN_SIZE } from './dropdown';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Dropdown item.\n *\n * @element cds-custom-dropdown-item\n * @csspart selected-icon The selected icon.\n */\n@customElement(`${prefix}-dropdown-item`)\nclass CDSDropdownItem extends LitElement {\n /**\n * `true` if this dropdown item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this dropdown item should be highlighted.\n * If `true`, parent `<dropdown>` selects/deselects this dropdown item upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * `true` if this dropdown item should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `value` attribute that is set to the parent `<cds-custom-dropdown>` when this dropdown item is selected.\n */\n @property()\n value = '';\n\n /**\n * true if menu item has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n /**\n * Reference to the next sibling element for hover state management.\n */\n protected _nextSiblingRef: Element | null = null;\n\n @query(`.${prefix}--list-box__menu-item__option`)\n private _textContainer!: HTMLDivElement | null;\n\n /**\n * Gets the next dropdown/combo-box item sibling.\n */\n protected _getNextItem(): Element | null {\n let next = this.nextElementSibling;\n while (next) {\n if (\n next instanceof HTMLElement &&\n (next.tagName.toLowerCase() === `${prefix}-dropdown-item` ||\n next.tagName.toLowerCase() === `${prefix}-combo-box-item`)\n ) {\n return next;\n }\n next = next.nextElementSibling;\n }\n return null;\n }\n\n /**\n * Syncs the hovered-next-sibling attribute with the next item.\n */\n protected _syncNextSibling(attribute: string, shouldSet: boolean) {\n const currentSibling = this._nextSiblingRef;\n currentSibling?.removeAttribute(attribute);\n if (shouldSet) {\n const next = this._getNextItem();\n if (next) {\n next.setAttribute(attribute, '');\n this._nextSiblingRef = next;\n return;\n }\n }\n this._nextSiblingRef = null;\n }\n\n protected _handleMouseEnter = () => {\n if (this.hasAttribute('disabled')) {\n return;\n }\n this._syncNextSibling('hovered-next-sibling', true);\n };\n\n protected _handleMouseLeave = () => {\n this._syncNextSibling('hovered-next-sibling', false);\n };\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'option');\n }\n if (!this.hasAttribute('id')) {\n this.setAttribute(\n 'id',\n `${prefix}-dropdown-item-${(this.constructor as typeof CDSDropdownItem)\n .id++}`\n );\n }\n this.setAttribute('aria-selected', String(this.selected));\n this.addEventListener('mouseenter', this._handleMouseEnter);\n this.addEventListener('mouseleave', this._handleMouseLeave);\n }\n\n disconnectedCallback() {\n this.removeEventListener('mouseenter', this._handleMouseEnter);\n this.removeEventListener('mouseleave', this._handleMouseLeave);\n this._syncNextSibling('hovered-next-sibling', false);\n super.disconnectedCallback();\n }\n\n /**\n * Handles `slotchange` event.\n *\n * Adds the `title` property to its parent element so the native\n * browser tooltip appears for menu items that result in ellipsis\n */\n protected _handleSlotChange({ target }: Event) {\n const text = (target as HTMLSlotElement).assignedNodes().filter(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n\n const textContainer = this._textContainer;\n\n if (!textContainer || this._hasEllipsisApplied === true) return;\n\n const observer = new ResizeObserver(() => {\n this._hasEllipsisApplied =\n textContainer.scrollWidth > textContainer.clientWidth;\n\n if (this._hasEllipsisApplied) {\n textContainer.setAttribute('title', text[0].textContent ?? '');\n }\n });\n\n observer.observe(textContainer);\n }\n\n render() {\n const { selected, _handleSlotChange: handleSlotChange } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\" part=\"menu-item\">\n <slot @slotchange=${handleSlotChange}></slot>\n ${!selected\n ? undefined\n : iconLoader(Checkmark16, {\n part: 'selected-icon',\n class: `${prefix}--list-box__menu-item__selected-icon`,\n })}\n </div>\n `;\n }\n\n /**\n * Store an identifier for use in composing this item's id.\n *\n * Auto-increments anytime a new dropdown-item appears.\n */\n static id = 0;\n\n static styles = styles;\n}\n\nexport default CDSDropdownItem;\n"],"mappings":"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"}
|
|
@@ -35,7 +35,10 @@ declare class FeatureFlagsElement extends LitElement {
|
|
|
35
35
|
constructor();
|
|
36
36
|
connectedCallback(): void;
|
|
37
37
|
attributeChangedCallback(name: string, _oldVal: string | null, newVal: string | null): void;
|
|
38
|
+
private syncFeatureFlagAttributes;
|
|
39
|
+
private getParentFeatureFlagsElement;
|
|
38
40
|
private getParentScope;
|
|
41
|
+
private syncChildFeatureFlagScopes;
|
|
39
42
|
private updateScope;
|
|
40
43
|
render(): import("lit-html").TemplateResult<1>;
|
|
41
44
|
isFeatureFlagEnabled(flag: string): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAYvC,cACM,mBAAoB,SAAQ,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAYvC,cACM,mBAAoB,SAAQ,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAW7B;IAEX,MAAM,KAAK,kBAAkB,aAE5B;;IAOD,iBAAiB;IAKjB,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBvB,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,WAAW;IAWnB,MAAM;IAIC,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAIxC,OAAO,CAAC,QAAQ;CAGjB;AAED,eAAe,mBAAmB,CAAC;AAKnC,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,WAAW,GACd,mBAAmB,GAAG,IAAI,CAa5B;AAGD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,OAAO,CAGT"}
|
|
@@ -43,6 +43,7 @@ let FeatureFlagsElement = class FeatureFlagsElement extends LitElement {
|
|
|
43
43
|
}
|
|
44
44
|
static {
|
|
45
45
|
this.flagComponentMap = {
|
|
46
|
+
"enable-v12-release": null,
|
|
46
47
|
"enable-v12-tile-default-icons": "CDS-CLICKABLE-TILE",
|
|
47
48
|
"enable-v12-tile-radio-icons": "CDS-TILE",
|
|
48
49
|
"enable-v12-overflowmenu": "CDS-OVERFLOW-MENU",
|
|
@@ -70,29 +71,56 @@ let FeatureFlagsElement = class FeatureFlagsElement extends LitElement {
|
|
|
70
71
|
attributeChangedCallback(name, _oldVal, newVal) {
|
|
71
72
|
const value = newVal !== null && newVal !== "false";
|
|
72
73
|
this.flags[name] = value;
|
|
73
|
-
const relatedComponent = hasOwn(_FeatureFlagsElement.flagComponentMap, name) ? _FeatureFlagsElement.flagComponentMap[name] :
|
|
74
|
-
if (this.firstElementChild?.tagName === relatedComponent) this.firstElementChild.setAttribute(name, "");
|
|
74
|
+
const relatedComponent = hasOwn(_FeatureFlagsElement.flagComponentMap, name) ? _FeatureFlagsElement.flagComponentMap[name] : null;
|
|
75
|
+
if (relatedComponent && this.firstElementChild?.tagName === relatedComponent) this.firstElementChild.setAttribute(name, "");
|
|
75
76
|
this.updateScope();
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
syncFeatureFlagAttributes() {
|
|
79
|
+
for (const [flag, relatedComponent] of Object.entries(_FeatureFlagsElement.flagComponentMap)) {
|
|
80
|
+
if (!relatedComponent) continue;
|
|
81
|
+
let isEnabled = false;
|
|
82
|
+
try {
|
|
83
|
+
isEnabled = this.scope.enabled(flag);
|
|
84
|
+
} catch {
|
|
85
|
+
isEnabled = false;
|
|
86
|
+
}
|
|
87
|
+
for (const element of this.querySelectorAll(relatedComponent.toLowerCase())) {
|
|
88
|
+
if (findParentFeatureFlags(element) !== this) continue;
|
|
89
|
+
if (isEnabled) element.setAttribute(flag, "");
|
|
90
|
+
else element.removeAttribute(flag);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
getParentFeatureFlagsElement() {
|
|
78
95
|
let parent = this.parentNode;
|
|
79
96
|
while (parent) {
|
|
80
|
-
if (parent instanceof
|
|
97
|
+
if (parent instanceof ShadowRoot) {
|
|
98
|
+
parent = parent.host;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (parent instanceof _FeatureFlagsElement) return parent;
|
|
81
102
|
parent = parent.parentNode;
|
|
82
103
|
}
|
|
83
104
|
return null;
|
|
84
105
|
}
|
|
106
|
+
getParentScope() {
|
|
107
|
+
return this.getParentFeatureFlagsElement()?.getScope() ?? null;
|
|
108
|
+
}
|
|
109
|
+
syncChildFeatureFlagScopes() {
|
|
110
|
+
for (const element of this.querySelectorAll("feature-flags")) if (element instanceof _FeatureFlagsElement && element.getParentFeatureFlagsElement() === this) element.updateScope();
|
|
111
|
+
}
|
|
85
112
|
updateScope() {
|
|
86
113
|
const newScope = createScope(this.flags);
|
|
87
114
|
const parentScope = this.getParentScope() || FeatureFlags;
|
|
88
115
|
if (parentScope) newScope.mergeWithScope(parentScope);
|
|
89
116
|
this.scope = newScope;
|
|
117
|
+
this.syncFeatureFlagAttributes();
|
|
118
|
+
this.syncChildFeatureFlagScopes();
|
|
90
119
|
}
|
|
91
120
|
render() {
|
|
92
121
|
return html` <slot></slot> `;
|
|
93
122
|
}
|
|
94
123
|
isFeatureFlagEnabled(flag) {
|
|
95
|
-
if (Object.prototype.hasOwnProperty.call(this.flags, flag)) return this.flags[flag];
|
|
96
124
|
return this.scope.enabled(flag);
|
|
97
125
|
}
|
|
98
126
|
getScope() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["GlobalFeatureFlags","customElement"],"sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\ntype FeatureFlags = Record<string, boolean>;\n\nconst hasOwn = <T extends object>(obj: T, key: PropertyKey): key is keyof T =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap = {\n 'enable-v12-tile-default-icons': 'CDS-CLICKABLE-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-MODAL',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n } as const;\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal !== null && newVal !== 'false';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent = hasOwn(FeatureFlagsElement.flagComponentMap, name)\n ? FeatureFlagsElement.flagComponentMap[name]\n :
|
|
1
|
+
{"version":3,"file":"index.js","names":["GlobalFeatureFlags","customElement"],"sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\ntype FeatureFlags = Record<string, boolean>;\n\nconst hasOwn = <T extends object>(obj: T, key: PropertyKey): key is keyof T =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap = {\n 'enable-v12-release': null,\n 'enable-v12-tile-default-icons': 'CDS-CLICKABLE-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-MODAL',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n } as const;\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal !== null && newVal !== 'false';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent = hasOwn(FeatureFlagsElement.flagComponentMap, name)\n ? FeatureFlagsElement.flagComponentMap[name]\n : null;\n if (\n relatedComponent &&\n this.firstElementChild?.tagName === relatedComponent\n ) {\n this.firstElementChild.setAttribute(name, '');\n }\n\n this.updateScope();\n }\n\n private syncFeatureFlagAttributes() {\n for (const [flag, relatedComponent] of Object.entries(\n FeatureFlagsElement.flagComponentMap\n )) {\n if (!relatedComponent) {\n continue;\n }\n\n let isEnabled = false;\n try {\n isEnabled = this.scope.enabled(flag);\n } catch {\n isEnabled = false;\n }\n\n for (const element of this.querySelectorAll(\n relatedComponent.toLowerCase()\n )) {\n if (findParentFeatureFlags(element as HTMLElement) !== this) {\n continue;\n }\n\n if (isEnabled) {\n element.setAttribute(flag, '');\n } else {\n element.removeAttribute(flag);\n }\n }\n }\n }\n\n private getParentFeatureFlagsElement() {\n let parent: Node | null = this.parentNode;\n while (parent) {\n if (parent instanceof ShadowRoot) {\n parent = parent.host;\n continue;\n }\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = parent.parentNode;\n }\n return null;\n }\n\n private getParentScope() {\n return this.getParentFeatureFlagsElement()?.getScope() ?? null;\n }\n\n private syncChildFeatureFlagScopes() {\n for (const element of this.querySelectorAll('feature-flags')) {\n if (\n element instanceof FeatureFlagsElement &&\n element.getParentFeatureFlagsElement() === this\n ) {\n element.updateScope();\n }\n }\n }\n\n private updateScope() {\n const newScope = createScope(this.flags);\n const parentScope = this.getParentScope() || GlobalFeatureFlags;\n if (parentScope) {\n newScope.mergeWithScope(parentScope);\n }\n this.scope = newScope;\n this.syncFeatureFlagAttributes();\n this.syncChildFeatureFlagScopes();\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n public isFeatureFlagEnabled(flag: string) {\n return this.scope.enabled(flag);\n }\n\n private getScope() {\n return this.scope;\n }\n}\n\nexport default FeatureFlagsElement;\n\n// Utility functions\n\n// Function to find the nearest parent FeatureFlagsElement\nexport function findParentFeatureFlags(\n el: HTMLElement\n): FeatureFlagsElement | null {\n let parent: Node | null = el.parentNode;\n while (parent) {\n if (parent instanceof ShadowRoot) {\n parent = parent.host;\n continue;\n }\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = (parent as HTMLElement).parentNode;\n }\n return null;\n}\n\n// function to check if a feature flag is enabled in components\nexport function isFeatureFlagEnabled(\n flag: string,\n context: HTMLElement\n): boolean {\n const instance = findParentFeatureFlags(context);\n return instance?.isFeatureFlagEnabled(flag) ?? false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,UAA4B,KAAQ,QACxC,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG;AAE/C,IAAA,sBAAA,MACM,4BAA4B,WAAW;;;;;0BAOA;GACzC,sBAAsB;GACtB,iCAAiC;GACjC,+BAA+B;GAC/B,2BAA2B;GAC3B,gCAAgC;GAChC,oDAAoD;GACpD,uCAAuC;GACvC,yBAAyB;GACzB,sCAAsC;GACtC,2CAA2C;EAC7C;;CAEA,WAAW,qBAAqB;EAC9B,OAAO,OAAO,KAAA,qBAAyB,gBAAgB;CACzD;CAEA,cAAc;EACZ,MAAM;eAxBQA;eACc,CAAC;EAwB7B,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;CACpC;CAEA,oBAAoB;EAClB,MAAM,kBAAkB;EACxB,KAAK,YAAY;CACnB;CAEA,yBACE,MACA,SACA,QACA;EACA,MAAM,QAAQ,WAAW,QAAQ,WAAW;EAC5C,KAAK,MAAM,QAAQ;EAGnB,MAAM,mBAAmB,OAAA,qBAA2B,kBAAkB,IAAI,IAAA,qBAClD,iBAAiB,QACrC;EACJ,IACE,oBACA,KAAK,mBAAmB,YAAY,kBAEpC,KAAK,kBAAkB,aAAa,MAAM,EAAE;EAG9C,KAAK,YAAY;CACnB;CAEA,4BAAoC;EAClC,KAAK,MAAM,CAAC,MAAM,qBAAqB,OAAO,QAAA,qBACxB,gBACtB,GAAG;GACD,IAAI,CAAC,kBACH;GAGF,IAAI,YAAY;GAChB,IAAI;IACF,YAAY,KAAK,MAAM,QAAQ,IAAI;GACrC,QAAQ;IACN,YAAY;GACd;GAEA,KAAK,MAAM,WAAW,KAAK,iBACzB,iBAAiB,YAAY,CAC/B,GAAG;IACD,IAAI,uBAAuB,OAAsB,MAAM,MACrD;IAGF,IAAI,WACF,QAAQ,aAAa,MAAM,EAAE;SAE7B,QAAQ,gBAAgB,IAAI;GAEhC;EACF;CACF;CAEA,+BAAuC;EACrC,IAAI,SAAsB,KAAK;EAC/B,OAAO,QAAQ;GACb,IAAI,kBAAkB,YAAY;IAChC,SAAS,OAAO;IAChB;GACF;GACA,IAAI,kBAAA,sBACF,OAAO;GAET,SAAS,OAAO;EAClB;EACA,OAAO;CACT;CAEA,iBAAyB;EACvB,OAAO,KAAK,6BAA6B,CAAC,EAAE,SAAS,KAAK;CAC5D;CAEA,6BAAqC;EACnC,KAAK,MAAM,WAAW,KAAK,iBAAiB,eAAe,GACzD,IACE,mBAAA,wBACA,QAAQ,6BAA6B,MAAM,MAE3C,QAAQ,YAAY;CAG1B;CAEA,cAAsB;EACpB,MAAM,WAAW,YAAY,KAAK,KAAK;EACvC,MAAM,cAAc,KAAK,eAAe,KAAKA;EAC7C,IAAI,aACF,SAAS,eAAe,WAAW;EAErC,KAAK,QAAQ;EACb,KAAK,0BAA0B;EAC/B,KAAK,2BAA2B;CAClC;CAEA,SAAS;EACP,OAAO,IAAI;CACb;CAEA,qBAA4B,MAAc;EACxC,OAAO,KAAK,MAAM,QAAQ,IAAI;CAChC;CAEA,WAAmB;EACjB,OAAO,KAAK;CACd;AACF;yDA5ICC,cAAc,eAAe,CAAA,GAAA,mBAAA;AA8I9B,IAAA,wBAAe;AAKf,SAAgB,uBACd,IAC4B;CAC5B,IAAI,SAAsB,GAAG;CAC7B,OAAO,QAAQ;EACb,IAAI,kBAAkB,YAAY;GAChC,SAAS,OAAO;GAChB;EACF;EACA,IAAI,kBAAkB,qBACpB,OAAO;EAET,SAAU,OAAuB;CACnC;CACA,OAAO;AACT;AAGA,SAAgB,qBACd,MACA,SACS;CAET,OADiB,uBAAuB,OAC1B,CAAC,EAAE,qBAAqB,IAAI,KAAK;AACjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-global-action.d.ts","sourceRoot":"","sources":["../../../src/components/ui-shell/header-global-action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,SAAS;IAE3C,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAE1C;;OAEG;IAEH,MAAM,MAAC;IAEP;;OAEG;IAEH,OAAO,MAAC;IAER;;OAEG;IAEH,iBAAiB,MAAC;IAElB;;OAEG;IAEH,mBAAmB,MAAC;IAEpB,iBAAiB;IAOjB,YAAY;IAKZ,oBAAoB;IAMpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"header-global-action.d.ts","sourceRoot":"","sources":["../../../src/components/ui-shell/header-global-action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,SAAS;IAE3C,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAE1C;;OAEG;IAEH,MAAM,MAAC;IAEP;;OAEG;IAEH,OAAO,MAAC;IAER;;OAEG;IAEH,iBAAiB,MAAC;IAElB;;OAEG;IAEH,mBAAmB,MAAC;IAEpB,iBAAiB;IAOjB,YAAY;IAKZ,oBAAoB;IAMpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB,KAAA;IAwBzB,YAAY,CAAC,iBAAiB,KAAA;IAmB9B,MAAM,CAAC,iBAAiB;;;;;;;MAGtB;IAEF,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -16,7 +16,7 @@ import { LitElement } from "lit";
|
|
|
16
16
|
import { property, query } from "lit/decorators.js";
|
|
17
17
|
//#region src/components/ui-shell/header-global-action.ts
|
|
18
18
|
/**
|
|
19
|
-
* Copyright IBM Corp. 2023,
|
|
19
|
+
* Copyright IBM Corp. 2023, 2026
|
|
20
20
|
*
|
|
21
21
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
22
22
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -75,8 +75,8 @@ let CDSHeaderGlobalAction = class CDSHeaderGlobalAction extends button_default {
|
|
|
75
75
|
else {
|
|
76
76
|
const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);
|
|
77
77
|
if (panel) {
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
const expanded = panel.hasAttribute("expanded");
|
|
79
|
+
panel.toggleAttribute("expanded", !expanded);
|
|
80
80
|
const active = !this.active;
|
|
81
81
|
this.active = active;
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-global-action.js","names":["CDSButton","styles","customElement"],"sources":["../../../src/components/ui-shell/header-global-action.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023,
|
|
1
|
+
{"version":3,"file":"header-global-action.js","names":["CDSButton","styles","customElement"],"sources":["../../../src/components/ui-shell/header-global-action.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport {\n BUTTON_TOOLTIP_POSITION,\n BUTTON_KIND,\n BUTTON_SIZE,\n} from '../button/button';\nimport CDSButton from '../button/button';\nimport HostListener from '../../globals/decorators/host-listener';\nimport styles from './header.scss?lit';\nimport { prefix } from '../../globals/settings';\n\n/**\n * Header global action button\n *\n * @element cds-custom-header-global-action\n */\n@customElement(`${prefix}-header-global-action`)\nclass CDSHeaderGlobalAction extends CDSButton {\n @query('button')\n protected _buttonNode!: HTMLButtonElement;\n\n /**\n * Specify whether the action is currently active\n */\n @property({ type: Boolean, reflect: true })\n active;\n\n /**\n * Specify which header panel the button is associated with.\n */\n @property({ type: String, attribute: 'panel-id', reflect: true })\n panelId;\n\n /**\n * The `aria-label` attribute for the button in its active state.\n */\n @property({ attribute: 'button-label-active' })\n buttonLabelActive;\n\n /**\n * The `aria-label` attribute for the button in its inactive state.\n */\n @property({ attribute: 'button-label-inactive' })\n buttonLabelInactive;\n\n connectedCallback() {\n this.tooltipPosition = BUTTON_TOOLTIP_POSITION.BOTTOM;\n this.kind = BUTTON_KIND.GHOST;\n this.size = BUTTON_SIZE.LARGE;\n super.connectedCallback();\n }\n\n firstUpdated() {\n document.addEventListener('click', this._handleDocumentClick, true);\n document.addEventListener('focusin', this._handleDocumentFocusIn, true);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this._handleDocumentClick, true);\n document.removeEventListener('focusin', this._handleDocumentFocusIn, true);\n super.disconnectedCallback();\n }\n\n private _handleDocumentClick = (event: MouseEvent) => {\n const path = event.composedPath();\n this._handlePanelCloseIfFocusOutside(path);\n };\n\n private _handleDocumentFocusIn = (event: FocusEvent) => {\n const path = event.composedPath();\n this._handlePanelCloseIfFocusOutside(path);\n };\n\n private _handlePanelCloseIfFocusOutside(path: EventTarget[]) {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n const isInside = path.some(\n (el) =>\n el instanceof HTMLElement && (panel?.contains(el) || this.contains(el))\n );\n\n if (panel && !isInside) {\n panel.removeAttribute('expanded');\n this.active = false;\n }\n }\n\n @HostListener('focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleFocusOut(event: FocusEvent) {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n if (\n panel &&\n relatedTarget &&\n !this.contains(relatedTarget) &&\n !panel.contains(relatedTarget)\n ) {\n panel.removeAttribute('expanded');\n this.active = false;\n }\n }\n\n @HostListener('click', { capture: true })\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleClick(event: Event) {\n const { disabled } = this;\n if (disabled) {\n event.stopPropagation();\n } else {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n\n // see if there is related panel for header-global-action button first\n // and then set the expanded attr of it accordingly\n if (panel) {\n const expanded = panel.hasAttribute('expanded');\n\n panel.toggleAttribute('expanded', !expanded);\n\n const active = !this.active;\n this.active = active;\n }\n }\n }\n\n @HostListener('keydown', { capture: true })\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _handleKeyDown(event: KeyboardEvent) {\n const { key } = event;\n if (key === 'Enter' || key === ' ') {\n event.preventDefault();\n this._handleClick(event);\n } else if (key === 'Escape') {\n const panel = this.ownerDocument?.querySelector(`#${this.panelId}`);\n if (panel) {\n panel.removeAttribute('expanded');\n }\n this.active = false;\n }\n }\n\n updated(changedProperties) {\n if (this._buttonNode) {\n this._buttonNode.classList.add(`${prefix}--header__action`);\n\n if (changedProperties.has('active') || changedProperties.size === 0) {\n if (this.active) {\n this._buttonNode.classList.add(`${prefix}--header__action--active`);\n\n if (this.buttonLabelActive) {\n this.tooltipText = this.buttonLabelActive;\n }\n } else {\n this._buttonNode.classList.remove(\n `${prefix}--header__action--active`\n );\n\n if (this.buttonLabelInactive) {\n this.tooltipText = this.buttonLabelInactive;\n }\n }\n }\n }\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('active') && this._buttonNode) {\n if (this.active) {\n this._buttonNode.classList.add(`${prefix}--header__action--active`);\n\n if (this.buttonLabelActive) {\n this.tooltipText = this.buttonLabelActive;\n }\n } else {\n this._buttonNode.classList.remove(`${prefix}--header__action--active`);\n\n if (this.buttonLabelInactive) {\n this.tooltipText = this.buttonLabelInactive;\n }\n }\n }\n return true;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSHeaderGlobalAction;\n"],"mappings":"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"}
|
|
@@ -31,6 +31,9 @@ try {
|
|
|
31
31
|
if (process.env.CARBON_ENABLE_V11_RELEASE) if (process.env.CARBON_ENABLE_V11_RELEASE === "true") enabled$1.enableV11Release = true;
|
|
32
32
|
else enabled$1.enableV11Release = false;
|
|
33
33
|
else enabled$1.enableV11Release = true;
|
|
34
|
+
if (process.env.CARBON_ENABLE_V12_RELEASE) if (process.env.CARBON_ENABLE_V12_RELEASE === "true") enabled$1.enableV12Release = true;
|
|
35
|
+
else enabled$1.enableV12Release = false;
|
|
36
|
+
else enabled$1.enableV12Release = false;
|
|
34
37
|
if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === "true") enabled$1.enableExperimentalTileContrast = true;
|
|
35
38
|
else enabled$1.enableExperimentalTileContrast = false;
|
|
36
39
|
else enabled$1.enableExperimentalTileContrast = false;
|
|
@@ -77,6 +80,7 @@ try {
|
|
|
77
80
|
enabled$1.enableCssCustomProperties = false;
|
|
78
81
|
enabled$1.enableCssGrid = false;
|
|
79
82
|
enabled$1.enableV11Release = true;
|
|
83
|
+
enabled$1.enableV12Release = false;
|
|
80
84
|
enabled$1.enableExperimentalTileContrast = false;
|
|
81
85
|
enabled$1.enableTileContrast = false;
|
|
82
86
|
enabled$1.enableV12TileDefaultIcons = false;
|
|
@@ -108,6 +112,11 @@ const featureFlagInfo = [
|
|
|
108
112
|
description: "Enable the features and functionality for the v11 Release\n",
|
|
109
113
|
enabled: enabled$1.enableV11Release
|
|
110
114
|
},
|
|
115
|
+
{
|
|
116
|
+
name: "enable-v12-release",
|
|
117
|
+
description: "Enable the features and functionality for the v12 Release\n",
|
|
118
|
+
enabled: enabled$1.enableV12Release
|
|
119
|
+
},
|
|
111
120
|
{
|
|
112
121
|
name: "enable-experimental-tile-contrast",
|
|
113
122
|
description: "Deprecated, use enable-tile-contrast instead\n",
|
|
@@ -179,6 +188,8 @@ const featureFlagInfo = [
|
|
|
179
188
|
enabled: enabled$1.enablePresence
|
|
180
189
|
}
|
|
181
190
|
];
|
|
191
|
+
const v12ReleaseFlag = "enable-v12-release";
|
|
192
|
+
const v12FlagPrefix = "enable-v12-";
|
|
182
193
|
var FeatureFlagScope = class {
|
|
183
194
|
constructor(flags) {
|
|
184
195
|
this.flags = /* @__PURE__ */ new Map();
|
|
@@ -233,6 +244,7 @@ var FeatureFlagScope = class {
|
|
|
233
244
|
*/
|
|
234
245
|
enabled(name) {
|
|
235
246
|
this.checkForFlag(name);
|
|
247
|
+
if (name !== v12ReleaseFlag && name.startsWith(v12FlagPrefix) && this.flags.get(v12ReleaseFlag) === true) return true;
|
|
236
248
|
return this.flags.get(name) ?? false;
|
|
237
249
|
}
|
|
238
250
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../feature-flags/es/index.js"],"sourcesContent":["/**\n * Copyright IBM Corp. 2015, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n//#region src/generated/feature-flags.js\n/**\n* Code generated by @carbon/feature-flags. DO NOT EDIT.\n*\n* Copyright IBM Corp. 2015, 2023\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst enabled$1 = {};\ntry {\n\tif (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES) if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES === \"true\") enabled$1.enableCssCustomProperties = true;\n\telse enabled$1.enableCssCustomProperties = false;\n\telse enabled$1.enableCssCustomProperties = false;\n\tif (process.env.CARBON_ENABLE_CSS_GRID) if (process.env.CARBON_ENABLE_CSS_GRID === \"true\") enabled$1.enableCssGrid = true;\n\telse enabled$1.enableCssGrid = false;\n\telse enabled$1.enableCssGrid = false;\n\tif (process.env.CARBON_ENABLE_V11_RELEASE) if (process.env.CARBON_ENABLE_V11_RELEASE === \"true\") enabled$1.enableV11Release = true;\n\telse enabled$1.enableV11Release = false;\n\telse enabled$1.enableV11Release = true;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === \"true\") enabled$1.enableExperimentalTileContrast = true;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\tif (process.env.CARBON_ENABLE_TILE_CONTRAST) if (process.env.CARBON_ENABLE_TILE_CONTRAST === \"true\") enabled$1.enableTileContrast = true;\n\telse enabled$1.enableTileContrast = false;\n\telse enabled$1.enableTileContrast = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS === \"true\") enabled$1.enableV12TileDefaultIcons = true;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS === \"true\") enabled$1.enableV12TileRadioIcons = true;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_OVERFLOWMENU) if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU === \"true\") enabled$1.enableV12Overflowmenu = true;\n\telse enabled$1.enableV12Overflowmenu = false;\n\telse enabled$1.enableV12Overflowmenu = false;\n\tif (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE) if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE === \"true\") enabled$1.enableTreeviewControllable = true;\n\telse enabled$1.enableTreeviewControllable = false;\n\telse enabled$1.enableTreeviewControllable = false;\n\tif (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS) if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS === \"true\") enabled$1.enableV12StructuredListVisibleIcons = true;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableExperimentalFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_DIALOG_ELEMENT) if (process.env.CARBON_ENABLE_DIALOG_ELEMENT === \"true\") enabled$1.enableDialogElement = true;\n\telse enabled$1.enableDialogElement = false;\n\telse enabled$1.enableDialogElement = false;\n\tif (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES) if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES === \"true\") enabled$1.enableV12DynamicFloatingStyles = true;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\tif (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING) if (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING === \"true\") enabled$1.enableV12ToggleReducedLabelSpacing = true;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tif (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER) if (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER === \"true\") enabled$1.enableEnhancedFileUploader = true;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\tif (process.env.CARBON_ENABLE_PRESENCE) if (process.env.CARBON_ENABLE_PRESENCE === \"true\") enabled$1.enablePresence = true;\n\telse enabled$1.enablePresence = false;\n\telse enabled$1.enablePresence = false;\n} catch (error) {\n\tenabled$1.enableCssCustomProperties = false;\n\tenabled$1.enableCssGrid = false;\n\tenabled$1.enableV11Release = true;\n\tenabled$1.enableExperimentalTileContrast = false;\n\tenabled$1.enableTileContrast = false;\n\tenabled$1.enableV12TileDefaultIcons = false;\n\tenabled$1.enableV12TileRadioIcons = false;\n\tenabled$1.enableV12Overflowmenu = false;\n\tenabled$1.enableTreeviewControllable = false;\n\tenabled$1.enableV12StructuredListVisibleIcons = false;\n\tenabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tenabled$1.enableFocusWrapWithoutSentinels = false;\n\tenabled$1.enableDialogElement = false;\n\tenabled$1.enableV12DynamicFloatingStyles = false;\n\tenabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tenabled$1.enableEnhancedFileUploader = false;\n\tenabled$1.enablePresence = false;\n}\nconst featureFlagInfo = [\n\t{\n\t\tname: \"enable-css-custom-properties\",\n\t\tdescription: \"Describe what the flag does\",\n\t\tenabled: enabled$1.enableCssCustomProperties\n\t},\n\t{\n\t\tname: \"enable-css-grid\",\n\t\tdescription: \"Enable CSS Grid Layout in the Grid and Column React components\\n\",\n\t\tenabled: enabled$1.enableCssGrid\n\t},\n\t{\n\t\tname: \"enable-v11-release\",\n\t\tdescription: \"Enable the features and functionality for the v11 Release\\n\",\n\t\tenabled: enabled$1.enableV11Release\n\t},\n\t{\n\t\tname: \"enable-experimental-tile-contrast\",\n\t\tdescription: \"Deprecated, use enable-tile-contrast instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalTileContrast\n\t},\n\t{\n\t\tname: \"enable-tile-contrast\",\n\t\tdescription: \"Enable the experimental tile improved contrast styles\\n\",\n\t\tenabled: enabled$1.enableTileContrast\n\t},\n\t{\n\t\tname: \"enable-v12-tile-default-icons\",\n\t\tdescription: \"Enable rendering of default icons in the tile components\\n\",\n\t\tenabled: enabled$1.enableV12TileDefaultIcons\n\t},\n\t{\n\t\tname: \"enable-v12-tile-radio-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the RadioTile component\\n\",\n\t\tenabled: enabled$1.enableV12TileRadioIcons\n\t},\n\t{\n\t\tname: \"enable-v12-overflowmenu\",\n\t\tdescription: \"Enable the use of the v12 OverflowMenu leveraging the Menu subcomponents\\n\",\n\t\tenabled: enabled$1.enableV12Overflowmenu\n\t},\n\t{\n\t\tname: \"enable-treeview-controllable\",\n\t\tdescription: \"Enable the new TreeView controllable API\\n\",\n\t\tenabled: enabled$1.enableTreeviewControllable\n\t},\n\t{\n\t\tname: \"enable-v12-structured-list-visible-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the StructuredList component\\n\",\n\t\tenabled: enabled$1.enableV12StructuredListVisibleIcons\n\t},\n\t{\n\t\tname: \"enable-experimental-focus-wrap-without-sentinels\",\n\t\tdescription: \"Deprecated, use enable-focus-wrap-without-sentinels instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-focus-wrap-without-sentinels\",\n\t\tdescription: \"Enable the new focus wrap behavior that doesn't use sentinel nodes\\n\",\n\t\tenabled: enabled$1.enableFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-dialog-element\",\n\t\tdescription: \"Enable components to utilize the native dialog element\\n\",\n\t\tenabled: enabled$1.enableDialogElement\n\t},\n\t{\n\t\tname: \"enable-v12-dynamic-floating-styles\",\n\t\tdescription: \"Enable dynamic setting of floating styles for components like Popover, Tooltip, etc.\\n\",\n\t\tenabled: enabled$1.enableV12DynamicFloatingStyles\n\t},\n\t{\n\t\tname: \"enable-v12-toggle-reduced-label-spacing\",\n\t\tdescription: \"Enable a reduced spacing between the toggle control and its label\\n\",\n\t\tenabled: enabled$1.enableV12ToggleReducedLabelSpacing\n\t},\n\t{\n\t\tname: \"enable-enhanced-file-uploader\",\n\t\tdescription: \"Enable enhanced functionality for the FileUploader component, including richer callback data and expanded trigger events for onChange and onDelete.\\n\",\n\t\tenabled: enabled$1.enableEnhancedFileUploader\n\t},\n\t{\n\t\tname: \"enable-presence\",\n\t\tdescription: \"Enable components to remain unmounted in closed state and mount in open state.\\n\",\n\t\tenabled: enabled$1.enablePresence\n\t}\n];\n//#endregion\n//#region src/FeatureFlagScope.ts\nvar FeatureFlagScope = class {\n\tconstructor(flags) {\n\t\tthis.flags = /* @__PURE__ */ new Map();\n\t\tif (flags) Object.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\t/**\n\t* Check to see if a flag exists\n\t*/\n\tcheckForFlag(name) {\n\t\tif (!this.flags.has(name)) throw new Error(`Unable to find a feature flag with the name: \\`${name}\\``);\n\t}\n\t/**\n\t* Add a feature flag\n\t*/\n\tadd(name, enabled) {\n\t\tif (this.flags.has(name)) throw new Error(`The feature flag: ${name} already exists`);\n\t\tthis.flags.set(name, enabled);\n\t}\n\t/**\n\t* Enable a feature flag\n\t*/\n\tenable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, true);\n\t}\n\t/**\n\t* Disable a feature flag\n\t*/\n\tdisable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, false);\n\t}\n\t/**\n\t* Merge the given feature flags with the current set of feature flags.\n\t* Duplicate keys will be set to the value in the given feature flags.\n\t*/\n\tmerge(flags) {\n\t\tObject.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\tmergeWithScope(scope) {\n\t\tfor (const [key, value] of scope.flags) {\n\t\t\tif (this.flags.has(key)) continue;\n\t\t\tthis.flags.set(key, value);\n\t\t}\n\t}\n\t/**\n\t* Check if a feature flag is enabled\n\t*/\n\tenabled(name) {\n\t\tthis.checkForFlag(name);\n\t\treturn this.flags.get(name) ?? false;\n\t}\n};\n//#endregion\n//#region src/index.ts\n/**\n* Copyright IBM Corp. 2015, 2026\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst createScope = (flags) => new FeatureFlagScope(flags);\nconst createDefaultScope = () => {\n\tconst scope = createScope();\n\tfor (const featureFlag of featureFlagInfo) scope.add(featureFlag.name, featureFlag.enabled);\n\treturn scope;\n};\nconst FeatureFlags = createDefaultScope();\nconst add = FeatureFlags.add.bind(FeatureFlags);\nconst enable = FeatureFlags.enable.bind(FeatureFlags);\nconst disable = FeatureFlags.disable.bind(FeatureFlags);\nconst enabled = FeatureFlags.enabled.bind(FeatureFlags);\nconst merge = FeatureFlags.merge.bind(FeatureFlags);\n//#endregion\nexport { FeatureFlags, add, createScope, disable, enable, enabled, merge };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../feature-flags/es/index.js"],"sourcesContent":["/**\n * Copyright IBM Corp. 2015, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n//#region src/generated/feature-flags.js\n/**\n* Code generated by @carbon/feature-flags. DO NOT EDIT.\n*\n* Copyright IBM Corp. 2015, 2023\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst enabled$1 = {};\ntry {\n\tif (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES) if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES === \"true\") enabled$1.enableCssCustomProperties = true;\n\telse enabled$1.enableCssCustomProperties = false;\n\telse enabled$1.enableCssCustomProperties = false;\n\tif (process.env.CARBON_ENABLE_CSS_GRID) if (process.env.CARBON_ENABLE_CSS_GRID === \"true\") enabled$1.enableCssGrid = true;\n\telse enabled$1.enableCssGrid = false;\n\telse enabled$1.enableCssGrid = false;\n\tif (process.env.CARBON_ENABLE_V11_RELEASE) if (process.env.CARBON_ENABLE_V11_RELEASE === \"true\") enabled$1.enableV11Release = true;\n\telse enabled$1.enableV11Release = false;\n\telse enabled$1.enableV11Release = true;\n\tif (process.env.CARBON_ENABLE_V12_RELEASE) if (process.env.CARBON_ENABLE_V12_RELEASE === \"true\") enabled$1.enableV12Release = true;\n\telse enabled$1.enableV12Release = false;\n\telse enabled$1.enableV12Release = false;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === \"true\") enabled$1.enableExperimentalTileContrast = true;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\telse enabled$1.enableExperimentalTileContrast = false;\n\tif (process.env.CARBON_ENABLE_TILE_CONTRAST) if (process.env.CARBON_ENABLE_TILE_CONTRAST === \"true\") enabled$1.enableTileContrast = true;\n\telse enabled$1.enableTileContrast = false;\n\telse enabled$1.enableTileContrast = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS === \"true\") enabled$1.enableV12TileDefaultIcons = true;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\telse enabled$1.enableV12TileDefaultIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS) if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS === \"true\") enabled$1.enableV12TileRadioIcons = true;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\telse enabled$1.enableV12TileRadioIcons = false;\n\tif (process.env.CARBON_ENABLE_V12_OVERFLOWMENU) if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU === \"true\") enabled$1.enableV12Overflowmenu = true;\n\telse enabled$1.enableV12Overflowmenu = false;\n\telse enabled$1.enableV12Overflowmenu = false;\n\tif (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE) if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE === \"true\") enabled$1.enableTreeviewControllable = true;\n\telse enabled$1.enableTreeviewControllable = false;\n\telse enabled$1.enableTreeviewControllable = false;\n\tif (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS) if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS === \"true\") enabled$1.enableV12StructuredListVisibleIcons = true;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\telse enabled$1.enableV12StructuredListVisibleIcons = false;\n\tif (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableExperimentalFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS) if (process.env.CARBON_ENABLE_FOCUS_WRAP_WITHOUT_SENTINELS === \"true\") enabled$1.enableFocusWrapWithoutSentinels = true;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\telse enabled$1.enableFocusWrapWithoutSentinels = false;\n\tif (process.env.CARBON_ENABLE_DIALOG_ELEMENT) if (process.env.CARBON_ENABLE_DIALOG_ELEMENT === \"true\") enabled$1.enableDialogElement = true;\n\telse enabled$1.enableDialogElement = false;\n\telse enabled$1.enableDialogElement = false;\n\tif (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES) if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES === \"true\") enabled$1.enableV12DynamicFloatingStyles = true;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\telse enabled$1.enableV12DynamicFloatingStyles = false;\n\tif (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING) if (process.env.CARBON_ENABLE_V12_TOGGLE_REDUCED_LABEL_SPACING === \"true\") enabled$1.enableV12ToggleReducedLabelSpacing = true;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\telse enabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tif (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER) if (process.env.CARBON_ENABLE_ENHANCED_FILE_UPLOADER === \"true\") enabled$1.enableEnhancedFileUploader = true;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\telse enabled$1.enableEnhancedFileUploader = false;\n\tif (process.env.CARBON_ENABLE_PRESENCE) if (process.env.CARBON_ENABLE_PRESENCE === \"true\") enabled$1.enablePresence = true;\n\telse enabled$1.enablePresence = false;\n\telse enabled$1.enablePresence = false;\n} catch (error) {\n\tenabled$1.enableCssCustomProperties = false;\n\tenabled$1.enableCssGrid = false;\n\tenabled$1.enableV11Release = true;\n\tenabled$1.enableV12Release = false;\n\tenabled$1.enableExperimentalTileContrast = false;\n\tenabled$1.enableTileContrast = false;\n\tenabled$1.enableV12TileDefaultIcons = false;\n\tenabled$1.enableV12TileRadioIcons = false;\n\tenabled$1.enableV12Overflowmenu = false;\n\tenabled$1.enableTreeviewControllable = false;\n\tenabled$1.enableV12StructuredListVisibleIcons = false;\n\tenabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n\tenabled$1.enableFocusWrapWithoutSentinels = false;\n\tenabled$1.enableDialogElement = false;\n\tenabled$1.enableV12DynamicFloatingStyles = false;\n\tenabled$1.enableV12ToggleReducedLabelSpacing = false;\n\tenabled$1.enableEnhancedFileUploader = false;\n\tenabled$1.enablePresence = false;\n}\nconst featureFlagInfo = [\n\t{\n\t\tname: \"enable-css-custom-properties\",\n\t\tdescription: \"Describe what the flag does\",\n\t\tenabled: enabled$1.enableCssCustomProperties\n\t},\n\t{\n\t\tname: \"enable-css-grid\",\n\t\tdescription: \"Enable CSS Grid Layout in the Grid and Column React components\\n\",\n\t\tenabled: enabled$1.enableCssGrid\n\t},\n\t{\n\t\tname: \"enable-v11-release\",\n\t\tdescription: \"Enable the features and functionality for the v11 Release\\n\",\n\t\tenabled: enabled$1.enableV11Release\n\t},\n\t{\n\t\tname: \"enable-v12-release\",\n\t\tdescription: \"Enable the features and functionality for the v12 Release\\n\",\n\t\tenabled: enabled$1.enableV12Release\n\t},\n\t{\n\t\tname: \"enable-experimental-tile-contrast\",\n\t\tdescription: \"Deprecated, use enable-tile-contrast instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalTileContrast\n\t},\n\t{\n\t\tname: \"enable-tile-contrast\",\n\t\tdescription: \"Enable the experimental tile improved contrast styles\\n\",\n\t\tenabled: enabled$1.enableTileContrast\n\t},\n\t{\n\t\tname: \"enable-v12-tile-default-icons\",\n\t\tdescription: \"Enable rendering of default icons in the tile components\\n\",\n\t\tenabled: enabled$1.enableV12TileDefaultIcons\n\t},\n\t{\n\t\tname: \"enable-v12-tile-radio-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the RadioTile component\\n\",\n\t\tenabled: enabled$1.enableV12TileRadioIcons\n\t},\n\t{\n\t\tname: \"enable-v12-overflowmenu\",\n\t\tdescription: \"Enable the use of the v12 OverflowMenu leveraging the Menu subcomponents\\n\",\n\t\tenabled: enabled$1.enableV12Overflowmenu\n\t},\n\t{\n\t\tname: \"enable-treeview-controllable\",\n\t\tdescription: \"Enable the new TreeView controllable API\\n\",\n\t\tenabled: enabled$1.enableTreeviewControllable\n\t},\n\t{\n\t\tname: \"enable-v12-structured-list-visible-icons\",\n\t\tdescription: \"Enable rendering of radio icons in the StructuredList component\\n\",\n\t\tenabled: enabled$1.enableV12StructuredListVisibleIcons\n\t},\n\t{\n\t\tname: \"enable-experimental-focus-wrap-without-sentinels\",\n\t\tdescription: \"Deprecated, use enable-focus-wrap-without-sentinels instead\\n\",\n\t\tenabled: enabled$1.enableExperimentalFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-focus-wrap-without-sentinels\",\n\t\tdescription: \"Enable the new focus wrap behavior that doesn't use sentinel nodes\\n\",\n\t\tenabled: enabled$1.enableFocusWrapWithoutSentinels\n\t},\n\t{\n\t\tname: \"enable-dialog-element\",\n\t\tdescription: \"Enable components to utilize the native dialog element\\n\",\n\t\tenabled: enabled$1.enableDialogElement\n\t},\n\t{\n\t\tname: \"enable-v12-dynamic-floating-styles\",\n\t\tdescription: \"Enable dynamic setting of floating styles for components like Popover, Tooltip, etc.\\n\",\n\t\tenabled: enabled$1.enableV12DynamicFloatingStyles\n\t},\n\t{\n\t\tname: \"enable-v12-toggle-reduced-label-spacing\",\n\t\tdescription: \"Enable a reduced spacing between the toggle control and its label\\n\",\n\t\tenabled: enabled$1.enableV12ToggleReducedLabelSpacing\n\t},\n\t{\n\t\tname: \"enable-enhanced-file-uploader\",\n\t\tdescription: \"Enable enhanced functionality for the FileUploader component, including richer callback data and expanded trigger events for onChange and onDelete.\\n\",\n\t\tenabled: enabled$1.enableEnhancedFileUploader\n\t},\n\t{\n\t\tname: \"enable-presence\",\n\t\tdescription: \"Enable components to remain unmounted in closed state and mount in open state.\\n\",\n\t\tenabled: enabled$1.enablePresence\n\t}\n];\n//#endregion\n//#region src/FeatureFlagScope.ts\nconst v12ReleaseFlag = \"enable-v12-release\";\nconst v12FlagPrefix = \"enable-v12-\";\nvar FeatureFlagScope = class {\n\tconstructor(flags) {\n\t\tthis.flags = /* @__PURE__ */ new Map();\n\t\tif (flags) Object.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\t/**\n\t* Check to see if a flag exists\n\t*/\n\tcheckForFlag(name) {\n\t\tif (!this.flags.has(name)) throw new Error(`Unable to find a feature flag with the name: \\`${name}\\``);\n\t}\n\t/**\n\t* Add a feature flag\n\t*/\n\tadd(name, enabled) {\n\t\tif (this.flags.has(name)) throw new Error(`The feature flag: ${name} already exists`);\n\t\tthis.flags.set(name, enabled);\n\t}\n\t/**\n\t* Enable a feature flag\n\t*/\n\tenable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, true);\n\t}\n\t/**\n\t* Disable a feature flag\n\t*/\n\tdisable(name) {\n\t\tthis.checkForFlag(name);\n\t\tthis.flags.set(name, false);\n\t}\n\t/**\n\t* Merge the given feature flags with the current set of feature flags.\n\t* Duplicate keys will be set to the value in the given feature flags.\n\t*/\n\tmerge(flags) {\n\t\tObject.keys(flags).forEach((key) => {\n\t\t\tthis.flags.set(key, flags[key]);\n\t\t});\n\t}\n\tmergeWithScope(scope) {\n\t\tfor (const [key, value] of scope.flags) {\n\t\t\tif (this.flags.has(key)) continue;\n\t\t\tthis.flags.set(key, value);\n\t\t}\n\t}\n\t/**\n\t* Check if a feature flag is enabled\n\t*/\n\tenabled(name) {\n\t\tthis.checkForFlag(name);\n\t\tif (name !== v12ReleaseFlag && name.startsWith(v12FlagPrefix) && this.flags.get(v12ReleaseFlag) === true) return true;\n\t\treturn this.flags.get(name) ?? false;\n\t}\n};\n//#endregion\n//#region src/index.ts\n/**\n* Copyright IBM Corp. 2015, 2026\n*\n* This source code is licensed under the Apache-2.0 license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nconst createScope = (flags) => new FeatureFlagScope(flags);\nconst createDefaultScope = () => {\n\tconst scope = createScope();\n\tfor (const featureFlag of featureFlagInfo) scope.add(featureFlag.name, featureFlag.enabled);\n\treturn scope;\n};\nconst FeatureFlags = createDefaultScope();\nconst add = FeatureFlags.add.bind(FeatureFlags);\nconst enable = FeatureFlags.enable.bind(FeatureFlags);\nconst disable = FeatureFlags.disable.bind(FeatureFlags);\nconst enabled = FeatureFlags.enabled.bind(FeatureFlags);\nconst merge = FeatureFlags.merge.bind(FeatureFlags);\n//#endregion\nexport { FeatureFlags, add, createScope, disable, enable, enabled, merge };\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2019,
|
|
2
|
+
* Copyright IBM Corp. 2019, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -46,6 +46,7 @@ declare class CDSDropdownItem extends LitElement {
|
|
|
46
46
|
* Reference to the next sibling element for hover state management.
|
|
47
47
|
*/
|
|
48
48
|
protected _nextSiblingRef: Element | null;
|
|
49
|
+
private _textContainer;
|
|
49
50
|
/**
|
|
50
51
|
* Gets the next dropdown/combo-box item sibling.
|
|
51
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-item.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,gBAAwB;IAE5B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"dropdown-item.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C;;;;;GAKG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;;;;OAKG;IAEH,WAAW,UAAS;IAEpB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,gBAAwB;IAE5B;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,SAAS,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGjD,OAAO,CAAC,cAAc,CAAyB;IAE/C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,OAAO,GAAG,IAAI;IAexC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IAchE,SAAS,CAAC,iBAAiB,aAKzB;IAEF,SAAS,CAAC,iBAAiB,aAEzB;IAEF,iBAAiB;IAiBjB,oBAAoB;IAOpB;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK;IAsB7C,MAAM;IAeN;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAK;IAEd,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -35,7 +35,10 @@ declare class FeatureFlagsElement extends LitElement {
|
|
|
35
35
|
constructor();
|
|
36
36
|
connectedCallback(): void;
|
|
37
37
|
attributeChangedCallback(name: string, _oldVal: string | null, newVal: string | null): void;
|
|
38
|
+
private syncFeatureFlagAttributes;
|
|
39
|
+
private getParentFeatureFlagsElement;
|
|
38
40
|
private getParentScope;
|
|
41
|
+
private syncChildFeatureFlagScopes;
|
|
39
42
|
private updateScope;
|
|
40
43
|
render(): import("lit-html").TemplateResult<1>;
|
|
41
44
|
isFeatureFlagEnabled(flag: string): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAYvC,cACM,mBAAoB,SAAQ,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/feature-flags/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAYvC,cACM,mBAAoB,SAAQ,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAoB;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAW7B;IAEX,MAAM,KAAK,kBAAkB,aAE5B;;IAOD,iBAAiB;IAKjB,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBvB,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,WAAW;IAWnB,MAAM;IAIC,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAIxC,OAAO,CAAC,QAAQ;CAGjB;AAED,eAAe,mBAAmB,CAAC;AAKnC,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,WAAW,GACd,mBAAmB,GAAG,IAAI,CAa5B;AAGD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GACnB,OAAO,CAGT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-global-action.d.ts","sourceRoot":"","sources":["../../../src/components/ui-shell/header-global-action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,SAAS;IAE3C,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAE1C;;OAEG;IAEH,MAAM,MAAC;IAEP;;OAEG;IAEH,OAAO,MAAC;IAER;;OAEG;IAEH,iBAAiB,MAAC;IAElB;;OAEG;IAEH,mBAAmB,MAAC;IAEpB,iBAAiB;IAOjB,YAAY;IAKZ,oBAAoB;IAMpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"header-global-action.d.ts","sourceRoot":"","sources":["../../../src/components/ui-shell/header-global-action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;GAIG;AACH,cACM,qBAAsB,SAAQ,SAAS;IAE3C,SAAS,CAAC,WAAW,EAAG,iBAAiB,CAAC;IAE1C;;OAEG;IAEH,MAAM,MAAC;IAEP;;OAEG;IAEH,OAAO,MAAC;IAER;;OAEG;IAEH,iBAAiB,MAAC;IAElB;;OAEG;IAEH,mBAAmB,MAAC;IAEpB,iBAAiB;IAOjB,YAAY;IAKZ,oBAAoB;IAMpB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB,KAAA;IAwBzB,YAAY,CAAC,iBAAiB,KAAA;IAmB9B,MAAM,CAAC,iBAAiB;;;;;;;MAGtB;IAEF,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon/web-components",
|
|
3
3
|
"description": "Web components for the Carbon Design System",
|
|
4
|
-
"version": "2.59.0
|
|
4
|
+
"version": "2.59.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "es/index.js",
|
|
7
7
|
"module": "es/index.js",
|
|
@@ -52,12 +52,15 @@
|
|
|
52
52
|
"build:dist": "node tasks/build-dist.js",
|
|
53
53
|
"build:cdn": "yarn clean && yarn build:dist",
|
|
54
54
|
"ci-check": "yarn wca && yarn typecheck",
|
|
55
|
-
"clean": "rimraf es es-custom lib scss dist storybook-static",
|
|
55
|
+
"clean": "rimraf es es-custom lib scss dist storybook-static storybook-static-v12 .storybook-v12/generated",
|
|
56
56
|
"postinstall": "ibmtelemetry --config=telemetry.yml",
|
|
57
57
|
"serve": "node tasks/build.js --serve",
|
|
58
58
|
"start": "yarn storybook",
|
|
59
|
-
"storybook": "storybook dev -p
|
|
59
|
+
"storybook": "storybook dev -p 6011",
|
|
60
60
|
"storybook:build": "storybook build",
|
|
61
|
+
"storybook:v12": "yarn storybook:v12:prepare && storybook dev -p 6012 --config-dir .storybook-v12",
|
|
62
|
+
"storybook:v12:build": "yarn storybook:v12:prepare && storybook build --config-dir .storybook-v12 --output-dir storybook-static-v12",
|
|
63
|
+
"storybook:v12:prepare": "node ../../tasks/prepare-v12-storybook.mjs .",
|
|
61
64
|
"test": "web-test-runner \"src/components/**/__tests__/**/*.js\" --node-resolve --concurrency=1",
|
|
62
65
|
"test:updateSnapshots": "yarn test --update-snapshots",
|
|
63
66
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
@@ -66,8 +69,8 @@
|
|
|
66
69
|
},
|
|
67
70
|
"dependencies": {
|
|
68
71
|
"@carbon/icon-helpers": "10.47.0",
|
|
69
|
-
"@carbon/icons": "^11.84.0
|
|
70
|
-
"@carbon/styles": "^1.111.0
|
|
72
|
+
"@carbon/icons": "^11.84.0",
|
|
73
|
+
"@carbon/styles": "^1.111.0",
|
|
71
74
|
"@carbon/utilities": "^0.17.0",
|
|
72
75
|
"@floating-ui/dom": "^1.6.3",
|
|
73
76
|
"@ibm/telemetry-js": "^1.10.2",
|
|
@@ -77,8 +80,8 @@
|
|
|
77
80
|
"tslib": "^2.6.3"
|
|
78
81
|
},
|
|
79
82
|
"devDependencies": {
|
|
80
|
-
"@carbon/layout": "^11.55.0
|
|
81
|
-
"@carbon/motion": "^11.48.0
|
|
83
|
+
"@carbon/layout": "^11.55.0",
|
|
84
|
+
"@carbon/motion": "^11.48.0",
|
|
82
85
|
"@juggle/resize-observer": "^3.4.0",
|
|
83
86
|
"@mordech/vite-lit-loader": "^0.40.0",
|
|
84
87
|
"@open-wc/testing": "^4.0.0",
|
|
@@ -104,7 +107,7 @@
|
|
|
104
107
|
"storybook-addon-accessibility-checker": "^9.2.0-rc.4",
|
|
105
108
|
"tsdown": "^0.22.0",
|
|
106
109
|
"typescript": "^6.0.3",
|
|
107
|
-
"typescript-config-carbon": "^0.11.0
|
|
110
|
+
"typescript-config-carbon": "^0.11.0",
|
|
108
111
|
"vite": "^8.0.0",
|
|
109
112
|
"web-component-analyzer": "2.0.0"
|
|
110
113
|
},
|
|
@@ -127,5 +130,5 @@
|
|
|
127
130
|
}
|
|
128
131
|
]
|
|
129
132
|
},
|
|
130
|
-
"gitHead": "
|
|
133
|
+
"gitHead": "5102bd860864c2580048183ffaf50d1ffd4400b5"
|
|
131
134
|
}
|