@carbon/ibmdotcom-web-components 2.20.0 → 2.21.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.
Files changed (39) hide show
  1. package/dist/dotcom-shell.js +5 -5
  2. package/dist/dotcom-shell.min.js +6 -6
  3. package/dist/ibmdotcom-web-components-dotcom-shell.js +5 -5
  4. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +6 -6
  5. package/dist/{index-ca29a51a.js → index-e3ec2724.js} +184 -166
  6. package/dist/{index-da32acc5.js → index-e8791a02.js} +321 -321
  7. package/dist/{left-nav-menu-03ca4e6e.js → left-nav-menu-56460567.js} +6 -6
  8. package/dist/{left-nav-menu-73c960db.js → left-nav-menu-6d7ef1ea.js} +5 -5
  9. package/dist/{left-nav-menu-category-heading-cefcd3f0.js → left-nav-menu-category-heading-d849afd1.js} +6 -6
  10. package/dist/{left-nav-menu-category-heading-be0319c6.js → left-nav-menu-category-heading-e7b9a1d5.js} +5 -5
  11. package/dist/{left-nav-menu-item-83f4767e.js → left-nav-menu-item-038f4f32.js} +5 -5
  12. package/dist/{left-nav-menu-item-a2a18a4a.js → left-nav-menu-item-d5d61f65.js} +6 -6
  13. package/dist/{left-nav-menu-section-91e5a492.js → left-nav-menu-section-29f09097.js} +5 -5
  14. package/dist/{left-nav-menu-section-47c67bd8.js → left-nav-menu-section-a702419f.js} +6 -6
  15. package/dist/{left-nav-overlay-ad684e9d.js → left-nav-overlay-da72cb49.js} +6 -6
  16. package/dist/{left-nav-overlay-8d2ad9f9.js → left-nav-overlay-eaec1924.js} +5 -5
  17. package/dist/{megamenu-category-group-103d2863.js → megamenu-category-group-2ce1cfcd.js} +6 -6
  18. package/dist/{megamenu-category-group-5e6c9054.js → megamenu-category-group-8d5b8a00.js} +5 -5
  19. package/dist/{megamenu-category-group-copy-cc99c2a6.js → megamenu-category-group-copy-3f8b8d92.js} +6 -6
  20. package/dist/{megamenu-category-group-copy-85fc4ede.js → megamenu-category-group-copy-40334ef1.js} +5 -5
  21. package/dist/{megamenu-category-heading-4a2cb054.js → megamenu-category-heading-d9040ec4.js} +6 -6
  22. package/dist/{megamenu-category-heading-7de1ccc9.js → megamenu-category-heading-eb10286a.js} +5 -5
  23. package/dist/{megamenu-category-link-94a3a869.js → megamenu-category-link-128e49f1.js} +5 -5
  24. package/dist/{megamenu-category-link-e61ee8d2.js → megamenu-category-link-a40351df.js} +6 -6
  25. package/dist/{megamenu-category-link-group-58ddce41.js → megamenu-category-link-group-6becb24d.js} +5 -5
  26. package/dist/{megamenu-category-link-group-99a611b4.js → megamenu-category-link-group-868a6a66.js} +6 -6
  27. package/dist/{megamenu-left-navigation-d61da700.js → megamenu-left-navigation-5a26ce55.js} +5 -5
  28. package/dist/{megamenu-left-navigation-15fbe30b.js → megamenu-left-navigation-b38cd235.js} +6 -6
  29. package/dist/{megamenu-overlay-7809b18f.js → megamenu-overlay-16b7ccd4.js} +6 -6
  30. package/dist/{megamenu-overlay-3455b503.js → megamenu-overlay-291e4fd4.js} +5 -5
  31. package/dist/{megamenu-tab-bb86ecbf.js → megamenu-tab-0d8bdef8.js} +5 -5
  32. package/dist/{megamenu-tab-7cfc65ba.js → megamenu-tab-788452a2.js} +6 -6
  33. package/es/components/background-media/background-media.css.js +1 -1
  34. package/es/components/masthead/masthead-menu-button.d.ts +3 -1
  35. package/es/components/masthead/masthead-menu-button.js +25 -1
  36. package/es/components/masthead/masthead-menu-button.js.map +1 -1
  37. package/es/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
  38. package/lib/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
  39. package/package.json +5 -5
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2020, 2024
4
+ * Copyright IBM Corp. 2020, 2025
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -393,7 +393,9 @@ declare class C4DMastheadMenuButton extends C4DMastheadMenuButton_base {
393
393
  */
394
394
  hideMenuButton: boolean;
395
395
  focus(): void;
396
+ firstUpdated(): void;
396
397
  updated(changedProperties: any): void;
398
+ hideButtonIfNoNavItemsFound(): void;
397
399
  private _renderSentinel;
398
400
  render(): import("lit-html").TemplateResult<1>;
399
401
  /**
@@ -8,7 +8,7 @@ function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prot
8
8
  /**
9
9
  * @license
10
10
  *
11
- * Copyright IBM Corp. 2020, 2024
11
+ * Copyright IBM Corp. 2020, 2025
12
12
  *
13
13
  * This source code is licensed under the Apache-2.0 license found in the
14
14
  * LICENSE file in the root directory of this source tree.
@@ -153,6 +153,15 @@ let C4DMastheadMenuButton = _decorate([customElement(`${c4dPrefix}-masthead-menu
153
153
  buttonNode.focus();
154
154
  }
155
155
  }
156
+ }, {
157
+ kind: "method",
158
+ key: "firstUpdated",
159
+ value: function firstUpdated() {
160
+ const boundHideButton = this.hideButtonIfNoNavItemsFound.bind(this);
161
+ window.addEventListener(`load`, () => {
162
+ boundHideButton();
163
+ });
164
+ }
156
165
  }, {
157
166
  kind: "method",
158
167
  key: "updated",
@@ -172,6 +181,21 @@ let C4DMastheadMenuButton = _decorate([customElement(`${c4dPrefix}-masthead-menu
172
181
  if (changedProperties.has('hideMenuButton')) {
173
182
  this._hasSearchActive = this.hideMenuButton;
174
183
  }
184
+ this.hideButtonIfNoNavItemsFound();
185
+ }
186
+ }, {
187
+ kind: "method",
188
+ key: "hideButtonIfNoNavItemsFound",
189
+ value: function hideButtonIfNoNavItemsFound() {
190
+ var _this$closest;
191
+ const NavMenuItems = (_this$closest = this.closest(`${c4dPrefix}-masthead-container`)) === null || _this$closest === void 0 ? void 0 : _this$closest.querySelectorAll(`${c4dPrefix}-left-nav-menu`);
192
+ if (!(NavMenuItems !== null && NavMenuItems !== void 0 && NavMenuItems.length)) {
193
+ this.hideMenuButton = true;
194
+ this.style.display = 'none';
195
+ } else if (this.style.display == 'none') {
196
+ this.hideMenuButton = false;
197
+ this.style.display = '';
198
+ }
175
199
  }
176
200
  }, {
177
201
  kind: "field",
@@ -1 +1 @@
1
- {"version":3,"file":"masthead-menu-button.js","names":["classMap","html","property","query","state","HostListener","HostListenerMixin","CDSHeaderMenuButton","settings","focuswrap","styles","carbonElement","customElement","prefix","stablePrefix","c4dPrefix","C4DMastheadMenuButton","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","event","detail","active","undefined","_hasSearchActive","hideMenuButton","reflect","type","Boolean","attribute","focus","_buttonNode","buttonNode","updated","changedProperties","has","_startSentinelNode","startSentinelNode","_endSentinelNode","endSentinelNode","_hFocusWrap","shadowRoot","release","side","_t","_","render","hasSearchActive","_renderSentinel","renderSentinel","classes","startSentinel","endSentinel","_t2","_superPropGet","static"],"sources":["components/masthead/masthead-menu-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2024\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 { classMap } from 'lit/directives/class-map.js';\nimport { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport HostListener from '@carbon/web-components/es/globals/decorators/host-listener.js';\nimport HostListenerMixin from '@carbon/web-components/es/globals/mixins/host-listener.js';\nimport CDSHeaderMenuButton from '@carbon/web-components/es/components/ui-shell/header-menu-button.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport focuswrap from '@carbon/ibmdotcom-utilities/es/utilities/focuswrap/focuswrap.js';\nimport Handle from '../../globals/internal/handle';\nimport styles from './masthead.scss';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n/**\n * Toggle button for masthead left nav.\n *\n * @element c4d-masthead-menu-button\n * @csspart sentinel-button - The sentinel button for managing focus.\n * @csspart ce-header-menu-trigger-container - Container for the menu trigger button.\n * @csspart sentinel-button--start - The start sentinel button for managing focus. Usage: `c4d-masthead-menu-button::part(sentinel-button--start)`\n * @csspart sentinel-button--end - The end sentinel button for managing focus. Usage: `c4d-masthead-menu-button::part(sentinel-button--end)`\n */\n@customElement(`${c4dPrefix}-masthead-menu-button`)\nclass C4DMastheadMenuButton extends HostListenerMixin(CDSHeaderMenuButton) {\n /**\n * The handle for focus wrapping.\n */\n private _hFocusWrap: Handle | null = null;\n\n /**\n * Search bar opened flag.\n */\n @state()\n private _hasSearchActive = false;\n\n /**\n * Handles toggle event from the search component.\n *\n * @param event The event.\n */\n @HostListener('parentRoot:eventToggleSearch')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleSearchToggle = (event: Event) => {\n if ((event as CustomEvent).detail.active !== undefined) {\n this._hasSearchActive = (event as CustomEvent).detail.active;\n this.hideMenuButton = (event as CustomEvent).detail.active;\n }\n };\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * The `<button>`.\n */\n @query(`.${prefix}--header__menu-trigger`)\n private _buttonNode!: HTMLButtonElement;\n\n /**\n * The shadow slot this toggle button should be in.\n */\n @property({ reflect: true })\n slot = 'brand';\n\n /**\n * `true` to hide the logo at render\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-menu-button' })\n hideMenuButton = false;\n\n focus() {\n const { _buttonNode: buttonNode } = this;\n if (buttonNode) {\n buttonNode.focus();\n }\n }\n\n updated(changedProperties) {\n if (changedProperties.has('active')) {\n const {\n active,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n if (active) {\n this._hFocusWrap = focuswrap(this.shadowRoot!, [\n startSentinelNode,\n endSentinelNode,\n ]);\n } else if (this._hFocusWrap) {\n this._hFocusWrap = this._hFocusWrap.release();\n }\n }\n\n if (changedProperties.has('hideMenuButton')) {\n this._hasSearchActive = this.hideMenuButton;\n }\n }\n\n private _renderSentinel = (side: String) => {\n return html`\n <button\n part=\"sentinel-button sentinel-button--${side}\"\n id=\"${side}-sentinel\"\n type=\"button\"\n class=\"${prefix}--visually-hidden\"></button>\n `;\n };\n\n render() {\n const {\n active,\n _hasSearchActive: hasSearchActive,\n _renderSentinel: renderSentinel,\n } = this;\n const classes = classMap({\n [`${c4dPrefix}-ce--header__menu-trigger__container`]: true,\n [`${c4dPrefix}-ce--header__menu-trigger__container--has-search-active`]:\n hasSearchActive,\n });\n const startSentinel = active ? renderSentinel('start') : '';\n const endSentinel = active ? renderSentinel('end') : '';\n return html`\n <div part=\"ce-header-menu-trigger-container\" class=\"${classes}\">\n ${startSentinel}${super.render()}${endSentinel}\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired after the seach is toggled.\n */\n static get eventToggleSearch() {\n return `${c4dPrefix}-search-with-typeahead-toggled`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default C4DMastheadMenuButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"masthead-menu-button.js","names":["classMap","html","property","query","state","HostListener","HostListenerMixin","CDSHeaderMenuButton","settings","focuswrap","styles","carbonElement","customElement","prefix","stablePrefix","c4dPrefix","C4DMastheadMenuButton","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","event","detail","active","undefined","_hasSearchActive","hideMenuButton","reflect","type","Boolean","attribute","focus","_buttonNode","buttonNode","firstUpdated","boundHideButton","hideButtonIfNoNavItemsFound","bind","window","addEventListener","updated","changedProperties","has","_startSentinelNode","startSentinelNode","_endSentinelNode","endSentinelNode","_hFocusWrap","shadowRoot","release","_this$closest","NavMenuItems","closest","querySelectorAll","length","style","display","side","_t","_","render","hasSearchActive","_renderSentinel","renderSentinel","classes","startSentinel","endSentinel","_t2","_superPropGet","static"],"sources":["components/masthead/masthead-menu-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2025\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 { classMap } from 'lit/directives/class-map.js';\nimport { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport HostListener from '@carbon/web-components/es/globals/decorators/host-listener.js';\nimport HostListenerMixin from '@carbon/web-components/es/globals/mixins/host-listener.js';\nimport CDSHeaderMenuButton from '@carbon/web-components/es/components/ui-shell/header-menu-button.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport focuswrap from '@carbon/ibmdotcom-utilities/es/utilities/focuswrap/focuswrap.js';\nimport Handle from '../../globals/internal/handle';\nimport styles from './masthead.scss';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n/**\n * Toggle button for masthead left nav.\n *\n * @element c4d-masthead-menu-button\n * @csspart sentinel-button - The sentinel button for managing focus.\n * @csspart ce-header-menu-trigger-container - Container for the menu trigger button.\n * @csspart sentinel-button--start - The start sentinel button for managing focus. Usage: `c4d-masthead-menu-button::part(sentinel-button--start)`\n * @csspart sentinel-button--end - The end sentinel button for managing focus. Usage: `c4d-masthead-menu-button::part(sentinel-button--end)`\n */\n@customElement(`${c4dPrefix}-masthead-menu-button`)\nclass C4DMastheadMenuButton extends HostListenerMixin(CDSHeaderMenuButton) {\n /**\n * The handle for focus wrapping.\n */\n private _hFocusWrap: Handle | null = null;\n\n /**\n * Search bar opened flag.\n */\n @state()\n private _hasSearchActive = false;\n\n /**\n * Handles toggle event from the search component.\n *\n * @param event The event.\n */\n @HostListener('parentRoot:eventToggleSearch')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleSearchToggle = (event: Event) => {\n if ((event as CustomEvent).detail.active !== undefined) {\n this._hasSearchActive = (event as CustomEvent).detail.active;\n this.hideMenuButton = (event as CustomEvent).detail.active;\n }\n };\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * The `<button>`.\n */\n @query(`.${prefix}--header__menu-trigger`)\n private _buttonNode!: HTMLButtonElement;\n\n /**\n * The shadow slot this toggle button should be in.\n */\n @property({ reflect: true })\n slot = 'brand';\n\n /**\n * `true` to hide the logo at render\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-menu-button' })\n hideMenuButton = false;\n\n focus() {\n const { _buttonNode: buttonNode } = this;\n if (buttonNode) {\n buttonNode.focus();\n }\n }\n firstUpdated() {\n const boundHideButton = this.hideButtonIfNoNavItemsFound.bind(this);\n window.addEventListener(`load`, () => {\n boundHideButton();\n });\n }\n updated(changedProperties) {\n if (changedProperties.has('active')) {\n const {\n active,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n if (active) {\n this._hFocusWrap = focuswrap(this.shadowRoot!, [\n startSentinelNode,\n endSentinelNode,\n ]);\n } else if (this._hFocusWrap) {\n this._hFocusWrap = this._hFocusWrap.release();\n }\n }\n\n if (changedProperties.has('hideMenuButton')) {\n this._hasSearchActive = this.hideMenuButton;\n }\n this.hideButtonIfNoNavItemsFound();\n }\n\n hideButtonIfNoNavItemsFound() {\n const NavMenuItems = this.closest(\n `${c4dPrefix}-masthead-container`\n )?.querySelectorAll(`${c4dPrefix}-left-nav-menu`);\n if (!NavMenuItems?.length) {\n this.hideMenuButton = true;\n this.style.display = 'none';\n } else if (this.style.display == 'none') {\n this.hideMenuButton = false;\n this.style.display = '';\n }\n }\n\n private _renderSentinel = (side: String) => {\n return html`\n <button\n part=\"sentinel-button sentinel-button--${side}\"\n id=\"${side}-sentinel\"\n type=\"button\"\n class=\"${prefix}--visually-hidden\"></button>\n `;\n };\n\n render() {\n const {\n active,\n _hasSearchActive: hasSearchActive,\n _renderSentinel: renderSentinel,\n } = this;\n const classes = classMap({\n [`${c4dPrefix}-ce--header__menu-trigger__container`]: true,\n [`${c4dPrefix}-ce--header__menu-trigger__container--has-search-active`]:\n hasSearchActive,\n });\n const startSentinel = active ? renderSentinel('start') : '';\n const endSentinel = active ? renderSentinel('end') : '';\n return html`\n <div part=\"ce-header-menu-trigger-container\" class=\"${classes}\">\n ${startSentinel}${super.render()}${endSentinel}\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired after the seach is toggled.\n */\n static get eventToggleSearch() {\n return `${c4dPrefix}-search-with-typeahead-toggled`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default C4DMastheadMenuButton;\n"],"mappings":"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","ignoreList":[]}
@@ -12,10 +12,10 @@
12
12
  * @type {object} Settings object
13
13
  * @property {string} [stablePrefix=c4d] stable prefix
14
14
  * @property {string} [prefix=cds] core Carbon prefix
15
- * Carbon for IBM.com v2.20.0',
15
+ * Carbon for IBM.com v2.21.0',
16
16
  */
17
17
  var settings = {
18
- version: 'Carbon for IBM.com v2.20.0',
18
+ version: 'Carbon for IBM.com v2.21.0',
19
19
  stablePrefix: 'c4d',
20
20
  prefix: 'cds'
21
21
  };
@@ -18,10 +18,10 @@ exports.default = void 0;
18
18
  * @type {object} Settings object
19
19
  * @property {string} [stablePrefix=c4d] stable prefix
20
20
  * @property {string} [prefix=cds] core Carbon prefix
21
- * Carbon for IBM.com v2.20.0',
21
+ * Carbon for IBM.com v2.21.0',
22
22
  */
23
23
  var settings = {
24
- version: 'Carbon for IBM.com v2.20.0',
24
+ version: 'Carbon for IBM.com v2.21.0',
25
25
  stablePrefix: 'c4d',
26
26
  prefix: 'cds'
27
27
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbon/ibmdotcom-web-components",
3
- "version": "2.20.0",
3
+ "version": "2.21.0",
4
4
  "description": "Carbon for IBM.com Web Components",
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -92,9 +92,9 @@
92
92
  "cypress:verify": "cypress verify"
93
93
  },
94
94
  "dependencies": {
95
- "@carbon/ibmdotcom-services": "2.20.0",
96
- "@carbon/ibmdotcom-styles": "2.20.0",
97
- "@carbon/ibmdotcom-utilities": "2.20.0",
95
+ "@carbon/ibmdotcom-services": "2.21.0",
96
+ "@carbon/ibmdotcom-styles": "2.21.0",
97
+ "@carbon/ibmdotcom-utilities": "2.21.0",
98
98
  "@carbon/layout": "11.27.0",
99
99
  "@carbon/motion": "11.24.0",
100
100
  "@carbon/styles": "1.65.0",
@@ -243,5 +243,5 @@
243
243
  "web-component-analyzer": "1.2.0-next.0",
244
244
  "webpack": "^4.46.0"
245
245
  },
246
- "gitHead": "8384b655a392a9bdf6edd9e6d47974f23caaddae"
246
+ "gitHead": "6574e60647f425d56225e0909d80ae894376db99"
247
247
  }