@carbon/ibm-products-web-components 0.42.0 → 0.43.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/custom-elements.json +78 -0
- package/es/components/about-modal/about-modal.scss.js +1 -1
- package/es/components/action-set/action-set.scss.js +1 -1
- package/es/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts +2 -0
- package/es/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts.map +1 -1
- package/es/components/coachmark/coachmark-context.d.ts +1 -1
- package/es/components/coachmark/coachmark-context.d.ts.map +1 -1
- package/es/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +2 -0
- package/es/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts.map +1 -1
- package/es/components/guide-banner/guide-banner-element.scss.js +1 -1
- package/es/components/guide-banner/guide-banner.scss.js +1 -1
- package/es/components/interstitial-screen/interstitial-screen-context.d.ts +1 -1
- package/es/components/interstitial-screen/interstitial-screen-context.d.ts.map +1 -1
- package/es/components/page-header/page-header-actions-set/page-header-actions-set.d.ts +4 -0
- package/es/components/page-header/page-header-actions-set/page-header-actions-set.d.ts.map +1 -1
- package/es/components/page-header/page-header-actions-set/page-header-actions-set.js +13 -6
- package/es/components/page-header/page-header-actions-set/page-header-actions-set.js.map +1 -1
- package/es/components/page-header/page-header-actions-set/page-header-actions-set.scss.js +1 -1
- package/es/components/page-header/page-header-actions-set/page-header-actions-set.scss.js.map +1 -1
- package/es/components/page-header/page-header-breadcrumb.d.ts +4 -0
- package/es/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
- package/es/components/page-header/page-header-breadcrumb.js +20 -8
- package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts +8 -0
- package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts.map +1 -1
- package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js +18 -2
- package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js.map +1 -1
- package/es/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss.js +1 -1
- package/es/components/page-header/page-header-content-text.d.ts +4 -0
- package/es/components/page-header/page-header-content-text.d.ts.map +1 -1
- package/es/components/page-header/page-header-content-text.js +10 -3
- package/es/components/page-header/page-header-content-text.js.map +1 -1
- package/es/components/page-header/page-header-content.d.ts +4 -0
- package/es/components/page-header/page-header-content.d.ts.map +1 -1
- package/es/components/page-header/page-header-content.js +12 -5
- package/es/components/page-header/page-header-content.js.map +1 -1
- package/es/components/page-header/page-header-scroller.d.ts.map +1 -1
- package/es/components/page-header/page-header-scroller.js +1 -0
- package/es/components/page-header/page-header-scroller.js.map +1 -1
- package/es/components/page-header/page-header-tags-set/page-header-tags-set.scss.js +1 -1
- package/es/components/page-header/page-header-title-breadcrumb.d.ts.map +1 -1
- package/es/components/page-header/page-header-title-breadcrumb.js +9 -2
- package/es/components/page-header/page-header-title-breadcrumb.js.map +1 -1
- package/es/components/side-panel/side-panel.scss.js +1 -1
- package/es/components/tearsheet/tearsheet.scss.js +1 -1
- package/es/components/tearsheet-preview/tearsheet-header-content.scss.js +1 -1
- package/es/components/tearsheet-preview/tearsheet-header.scss.js +1 -1
- package/es/components/tearsheet-preview/tearsheet-navigation-bar.scss.js +1 -1
- package/es/components/tearsheet-preview/tearsheet-signal.d.ts +1 -1
- package/es/components/tearsheet-preview/tearsheet-signal.d.ts.map +1 -1
- package/es/components/tearsheet-preview/tearsheet.scss.js +1 -1
- package/es/components/tearsheet-preview/tearsheet.scss.js.map +1 -1
- package/es/components/user-avatar/user-avatar.d.ts +2 -0
- package/es/components/user-avatar/user-avatar.d.ts.map +1 -1
- package/es/ibm-products-web-components/package.js +1 -1
- package/es-custom/components/about-modal/about-modal.scss.js +1 -1
- package/es-custom/components/action-set/action-set.scss.js +1 -1
- package/es-custom/components/guide-banner/guide-banner-element.scss.js +1 -1
- package/es-custom/components/guide-banner/guide-banner.scss.js +1 -1
- package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.js +13 -6
- package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.js.map +1 -1
- package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.scss.js +1 -1
- package/es-custom/components/page-header/page-header-actions-set/page-header-actions-set.scss.js.map +1 -1
- package/es-custom/components/page-header/page-header-breadcrumb.js +20 -8
- package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js +18 -2
- package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js.map +1 -1
- package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.scss.js +1 -1
- package/es-custom/components/page-header/page-header-content-text.js +10 -3
- package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
- package/es-custom/components/page-header/page-header-content.js +12 -5
- package/es-custom/components/page-header/page-header-content.js.map +1 -1
- package/es-custom/components/page-header/page-header-scroller.js +1 -0
- package/es-custom/components/page-header/page-header-scroller.js.map +1 -1
- package/es-custom/components/page-header/page-header-tags-set/page-header-tags-set.scss.js +1 -1
- package/es-custom/components/page-header/page-header-title-breadcrumb.js +9 -2
- package/es-custom/components/page-header/page-header-title-breadcrumb.js.map +1 -1
- package/es-custom/components/side-panel/side-panel.scss.js +1 -1
- package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
- package/es-custom/components/tearsheet-preview/tearsheet-header-content.scss.js +1 -1
- package/es-custom/components/tearsheet-preview/tearsheet-header.scss.js +1 -1
- package/es-custom/components/tearsheet-preview/tearsheet-navigation-bar.scss.js +1 -1
- package/es-custom/components/tearsheet-preview/tearsheet.scss.js +1 -1
- package/es-custom/components/tearsheet-preview/tearsheet.scss.js.map +1 -1
- package/es-custom/ibm-products-web-components/package.js +1 -1
- package/lib/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts +2 -0
- package/lib/components/coachmark/coachmark-beacon/coachmark-beacon.d.ts.map +1 -1
- package/lib/components/coachmark/coachmark-context.d.ts +1 -1
- package/lib/components/coachmark/coachmark-context.d.ts.map +1 -1
- package/lib/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +2 -0
- package/lib/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts.map +1 -1
- package/lib/components/interstitial-screen/interstitial-screen-context.d.ts +1 -1
- package/lib/components/interstitial-screen/interstitial-screen-context.d.ts.map +1 -1
- package/lib/components/page-header/page-header-actions-set/page-header-actions-set.d.ts +4 -0
- package/lib/components/page-header/page-header-actions-set/page-header-actions-set.d.ts.map +1 -1
- package/lib/components/page-header/page-header-breadcrumb.d.ts +4 -0
- package/lib/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
- package/lib/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts +8 -0
- package/lib/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.d.ts.map +1 -1
- package/lib/components/page-header/page-header-content-text.d.ts +4 -0
- package/lib/components/page-header/page-header-content-text.d.ts.map +1 -1
- package/lib/components/page-header/page-header-content.d.ts +4 -0
- package/lib/components/page-header/page-header-content.d.ts.map +1 -1
- package/lib/components/page-header/page-header-scroller.d.ts.map +1 -1
- package/lib/components/page-header/page-header-title-breadcrumb.d.ts.map +1 -1
- package/lib/components/tearsheet-preview/tearsheet-signal.d.ts +1 -1
- package/lib/components/tearsheet-preview/tearsheet-signal.d.ts.map +1 -1
- package/lib/components/user-avatar/user-avatar.d.ts +2 -0
- package/lib/components/user-avatar/user-avatar.d.ts.map +1 -1
- package/package.json +13 -13
- package/scss/components/page-header/page-header-actions-set/page-header-actions-set.scss +4 -0
- package/scss/components/tearsheet-preview/tearsheet.scss +14 -3
- package/telemetry.yml +20 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header-breadcrumb.js","names":["styles","customElement"],"sources":["../../../src/components/page-header/page-header-breadcrumb.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2025, 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 { LitElement, html } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix, carbonPrefix } from '../../globals/settings';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './page-header.scss?lit';\nimport { consume } from '@lit/context';\nimport { pageHeaderContext } from './context';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\n/**\n * Page header Breadcrumb Bar.\n * @element c4p-page-header-breadcrumb\n */\n@customElement(`${prefix}-page-header-breadcrumb`)\nclass CDSPageHeaderBreadcrumb extends LitElement {\n /**\n * Specify if breadcrumb bar has bottom border.\n */\n @property({ reflect: true, type: Boolean })\n border = true;\n\n /**\n * Set to `true` if the breadcrumb bar is sitting within a grid\n * (ie. when used in tandem with page-header-hero-image)\n */\n @property({ attribute: 'within-grid', type: Boolean })\n withinGrid = false;\n\n /**\n * Set to `true` if page actions should be flush (no padding)\n */\n @property({ attribute: 'page-actions-flush', type: Boolean })\n pageActionsFlush = false;\n\n /**\n * Set to `true` if content actions should be flush (no padding)\n */\n @property({ attribute: 'content-actions-flush', type: Boolean })\n contentActionsFlush = false;\n\n @consume({ context: pageHeaderContext, subscribe: true })\n @state()\n context;\n\n connectedCallback() {\n super.connectedCallback();\n // Apply class on initial connection\n this.updateFixedClass();\n }\n\n updated(changedProperties: Map<string, any>) {\n super.updated(changedProperties);\n if (changedProperties.has('context')) {\n this.updateFixedClass();\n }\n }\n\n private updateFixedClass() {\n if (this.context?.disableStickyTabBar) {\n this.classList.add(`${prefix}--page-header-breadcrumb--fixed`);\n } else {\n this.classList.remove(`${prefix}--page-header-breadcrumb--fixed`);\n }\n }\n\n render() {\n const { withinGrid, context } = this;\n const { contentActionsClipped } = context ?? {};\n const gridClasses = classMap({\n [`${carbonPrefix}--css-grid`]: !withinGrid,\n [`${carbonPrefix}--subgrid ${carbonPrefix}--subgrid--wide`]: withinGrid,\n });\n\n const contentActionClasses = classMap({\n [`${prefix}--page-header__breadcrumb__content-actions-with-global-actions`]:\n true,\n [`${prefix}--page-header__breadcrumb__content-actions-with-global-actions--show`]:\n contentActionsClipped,\n });\n\n return html`\n <div class=\"${gridClasses}\">\n <div\n class=\"${carbonPrefix}--sm:col-span-4 ${carbonPrefix}--md:col-span-8 ${carbonPrefix}--lg:col-span-16 ${carbonPrefix}--css-grid-column\"\n >\n <div class=\"${prefix}--page-header__breadcrumb-container\">\n <div class=\"${prefix}--page-header__breadcrumb-wrapper\">\n <slot name=\"icon\"></slot>\n <slot></slot>\n </div>\n <div
|
|
1
|
+
{"version":3,"file":"page-header-breadcrumb.js","names":["styles","customElement"],"sources":["../../../src/components/page-header/page-header-breadcrumb.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2025, 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 { LitElement, html } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix, carbonPrefix } from '../../globals/settings';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './page-header.scss?lit';\nimport { consume } from '@lit/context';\nimport { pageHeaderContext } from './context';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\n\n/**\n * Page header Breadcrumb Bar.\n * @element c4p-page-header-breadcrumb\n */\n@customElement(`${prefix}-page-header-breadcrumb`)\nclass CDSPageHeaderBreadcrumb extends LitElement {\n /**\n * Specify if breadcrumb bar has bottom border.\n */\n @property({ reflect: true, type: Boolean })\n border = true;\n\n /**\n * Set to `true` if the breadcrumb bar is sitting within a grid\n * (ie. when used in tandem with page-header-hero-image)\n */\n @property({ attribute: 'within-grid', type: Boolean })\n withinGrid = false;\n\n /**\n * Set to `true` if page actions should be flush (no padding)\n */\n @property({ attribute: 'page-actions-flush', type: Boolean })\n pageActionsFlush = false;\n\n /**\n * Set to `true` if content actions should be flush (no padding)\n */\n @property({ attribute: 'content-actions-flush', type: Boolean })\n contentActionsFlush = false;\n\n /**\n * Aria label for the page header actions navigation.\n */\n @property({ type: String, attribute: 'actions-aria-label', reflect: true })\n actionsAriaLabel = 'Page header actions';\n\n @consume({ context: pageHeaderContext, subscribe: true })\n @state()\n context;\n\n connectedCallback() {\n super.connectedCallback();\n // Apply class on initial connection\n this.updateFixedClass();\n }\n\n updated(changedProperties: Map<string, any>) {\n super.updated(changedProperties);\n if (changedProperties.has('context')) {\n this.updateFixedClass();\n }\n }\n\n private updateFixedClass() {\n if (this.context?.disableStickyTabBar) {\n this.classList.add(`${prefix}--page-header-breadcrumb--fixed`);\n } else {\n this.classList.remove(`${prefix}--page-header-breadcrumb--fixed`);\n }\n }\n\n render() {\n const { withinGrid, context } = this;\n const { contentActionsClipped } = context ?? {};\n const gridClasses = classMap({\n [`${carbonPrefix}--css-grid`]: !withinGrid,\n [`${carbonPrefix}--subgrid ${carbonPrefix}--subgrid--wide`]: withinGrid,\n });\n\n const contentActionClasses = classMap({\n [`${prefix}--page-header__breadcrumb__content-actions-with-global-actions`]:\n true,\n [`${prefix}--page-header__breadcrumb__content-actions-with-global-actions--show`]:\n contentActionsClipped,\n });\n\n return html`\n <div class=\"${gridClasses}\">\n <div\n class=\"${carbonPrefix}--sm:col-span-4 ${carbonPrefix}--md:col-span-8 ${carbonPrefix}--lg:col-span-16 ${carbonPrefix}--css-grid-column\"\n >\n <div class=\"${prefix}--page-header__breadcrumb-container\">\n <div class=\"${prefix}--page-header__breadcrumb-wrapper\">\n <slot name=\"icon\"></slot>\n <slot></slot>\n </div>\n <div\n class=\"${prefix}--page-header__breadcrumb__actions\"\n role=\"navigation\"\n aria-label=\"${this.actionsAriaLabel}\"\n >\n <div class=\"${contentActionClasses}\">\n <slot name=\"content-actions\"></slot>\n </div>\n <slot name=\"page-actions\"></slot>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSPageHeaderBreadcrumb;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,IAAA,0BAAA,MACM,gCAAgC,WAAW;;;gBAKtC;oBAOI;0BAMM;6BAMG;0BAMH;;CAMnB,oBAAoB;AAClB,QAAM,mBAAmB;AAEzB,OAAK,kBAAkB;;CAGzB,QAAQ,mBAAqC;AAC3C,QAAM,QAAQ,kBAAkB;AAChC,MAAI,kBAAkB,IAAI,UAAU,CAClC,MAAK,kBAAkB;;CAI3B,mBAA2B;AACzB,MAAI,KAAK,SAAS,oBAChB,MAAK,UAAU,IAAI,qCAA2C;MAE9D,MAAK,UAAU,OAAO,qCAA2C;;CAIrE,SAAS;EACP,MAAM,EAAE,YAAY,YAAY;EAChC,MAAM,EAAE,0BAA0B,WAAW,EAAE;EAC/C,MAAM,cAAc,SAAS;IAC1B,kBAA8B,CAAC;IAC/B,oCAA4D;GAC9D,CAAC;EAEF,MAAM,uBAAuB,SAAS;IACnC,sEACC;IACD,4EACC;GACH,CAAC;AAEF,SAAO,IAAI;oBACK,YAAY;;yBAEA,kBAAA,MAA+B,kBAAA,MAA+B,mBAAA,MAAgC;;8BAE/F;gCACE;;;;;6BAKH;;4BAEF,KAAK,iBAAiB;;4BAEtB,qBAAqB;;;;;;;;;;;gBAW/BA;;;YA9Ff,SAAS;CAAE,SAAS;CAAM,MAAM;CAAS,CAAC,CAAA,EAAA,wBAAA,WAAA,UAAA,KAAA,EAAA;YAO1C,SAAS;CAAE,WAAW;CAAe,MAAM;CAAS,CAAC,CAAA,EAAA,wBAAA,WAAA,cAAA,KAAA,EAAA;YAMrD,SAAS;CAAE,WAAW;CAAsB,MAAM;CAAS,CAAC,CAAA,EAAA,wBAAA,WAAA,oBAAA,KAAA,EAAA;YAM5D,SAAS;CAAE,WAAW;CAAyB,MAAM;CAAS,CAAC,CAAA,EAAA,wBAAA,WAAA,uBAAA,KAAA,EAAA;YAM/D,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAsB,SAAS;CAAM,CAAC,CAAA,EAAA,wBAAA,WAAA,oBAAA,KAAA,EAAA;YAG1E,QAAQ;CAAE,SAAS;CAAmB,WAAW;CAAM,CAAC,EACxD,OAAO,CAAA,EAAA,wBAAA,WAAA,WAAA,KAAA,EAAA;sCAlCTC,cAAc,6BAAmC,CAAA,EAAA,wBAAA;AAsGlD,IAAA,iCAAe"}
|
package/es-custom/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.js
CHANGED
|
@@ -36,6 +36,8 @@ let CDSPageHeaderBreadcrumbsSet = class CDSPageHeaderBreadcrumbsSet extends LitE
|
|
|
36
36
|
this.hiddenItems = [];
|
|
37
37
|
this.breadcrumbsData = [];
|
|
38
38
|
this.title = "";
|
|
39
|
+
this.breadcrumbAriaLabel = "breadcrumbs";
|
|
40
|
+
this.overflowAriaLabel = "More breadcrumbs";
|
|
39
41
|
}
|
|
40
42
|
connectedCallback() {
|
|
41
43
|
super.connectedCallback();
|
|
@@ -77,7 +79,7 @@ let CDSPageHeaderBreadcrumbsSet = class CDSPageHeaderBreadcrumbsSet extends LitE
|
|
|
77
79
|
render() {
|
|
78
80
|
return html`
|
|
79
81
|
<cds-custom-breadcrumb
|
|
80
|
-
aria-label="
|
|
82
|
+
aria-label="${this.breadcrumbAriaLabel}"
|
|
81
83
|
class=${classMap({ [`${blockClass}`]: true })}
|
|
82
84
|
>
|
|
83
85
|
<cds-custom-breadcrumb-item
|
|
@@ -85,7 +87,11 @@ let CDSPageHeaderBreadcrumbsSet = class CDSPageHeaderBreadcrumbsSet extends LitE
|
|
|
85
87
|
data-offset
|
|
86
88
|
style="display: ${this.hiddenItems?.length >= 1 ? "flex" : "none"}"
|
|
87
89
|
>
|
|
88
|
-
<cds-custom-overflow-menu
|
|
90
|
+
<cds-custom-overflow-menu
|
|
91
|
+
breadcrumb=""
|
|
92
|
+
align="bottom"
|
|
93
|
+
aria-label="${this.overflowAriaLabel}"
|
|
94
|
+
>
|
|
89
95
|
${iconLoader(OverflowMenuHorizontal16, { slot: "icon" })}
|
|
90
96
|
<span slot="tooltip-content"> Breadcrumbs </span>
|
|
91
97
|
<cds-custom-overflow-menu-body size="sm">
|
|
@@ -127,6 +133,16 @@ __decorate([property({
|
|
|
127
133
|
reflect: true
|
|
128
134
|
})], CDSPageHeaderBreadcrumbsSet.prototype, "breadcrumbsData", void 0);
|
|
129
135
|
__decorate([property({ type: String })], CDSPageHeaderBreadcrumbsSet.prototype, "title", void 0);
|
|
136
|
+
__decorate([property({
|
|
137
|
+
type: String,
|
|
138
|
+
attribute: "breadcrumb-aria-label",
|
|
139
|
+
reflect: true
|
|
140
|
+
})], CDSPageHeaderBreadcrumbsSet.prototype, "breadcrumbAriaLabel", void 0);
|
|
141
|
+
__decorate([property({
|
|
142
|
+
type: String,
|
|
143
|
+
attribute: "overflow-aria-label",
|
|
144
|
+
reflect: true
|
|
145
|
+
})], CDSPageHeaderBreadcrumbsSet.prototype, "overflowAriaLabel", void 0);
|
|
130
146
|
__decorate([query(`.${blockClass}`)], CDSPageHeaderBreadcrumbsSet.prototype, "container", void 0);
|
|
131
147
|
CDSPageHeaderBreadcrumbsSet = __decorate([carbonElement(`c4p-page-header-breadcrumbs-set`)], CDSPageHeaderBreadcrumbsSet);
|
|
132
148
|
var page_header_breadcrumbs_set_default = CDSPageHeaderBreadcrumbsSet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header-breadcrumbs-set.js","names":["styles","customElement"],"sources":["../../../../src/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.ts"],"sourcesContent":["// cspell:words currentpage\n/**\n * @license\n *\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\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport '@carbon/web-components/es-custom/components/breadcrumb/index.js';\nimport '@carbon/web-components/es-custom/components/overflow-menu/index.js';\nimport { createOverflowHandler } from '../utils';\nimport OverflowMenuHorizontal16 from '@carbon/icons/es/overflow-menu--horizontal/16.js';\nimport { iconLoader } from '@carbon/web-components/es/globals/internal/icon-loader.js';\nimport '../../truncated-text';\nimport styles from './page-header-breadcrumbs-set.scss?lit';\nimport '../page-header-title-breadcrumb';\nimport { prefix } from '../../../globals/settings';\n\nconst blockClass = `${prefix}--page-header-breadcrumbs-set`;\n\ninterface Breadcrumb {\n text: string;\n href: string;\n}\n\n@customElement(`${prefix}-page-header-breadcrumbs-set`)\nexport default class CDSPageHeaderBreadcrumbsSet extends LitElement {\n /**\n * Hidden items that will be rendered in the overflow menu.\n */\n @property({ type: Array })\n hiddenItems: Breadcrumb[] = [];\n\n /**\n * The list of breadcrumbs.\n */\n @property({ type: Array, attribute: 'breadcrumbs-data', reflect: true })\n breadcrumbsData: Breadcrumb[] = [];\n\n /**\n * The page title to display in the title breadcrumb.\n */\n @property({ type: String })\n title = '';\n\n /**\n * Container holding all breadcrumbs and the overflow menu.\n */\n @query(`.${blockClass}`)\n private container!: HTMLElement;\n\n private overflowHandler: { disconnect: () => void } | undefined;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.style.visibility = 'hidden';\n }\n\n firstUpdated() {\n if (!this.container) {\n return;\n }\n const sr = this.shadowRoot;\n const breadcrumb = sr?.querySelector(\n 'cds-custom-breadcrumb'\n ) as HTMLElement | null;\n\n if (breadcrumb) {\n breadcrumb.style.display = 'block';\n\n requestAnimationFrame(() => {\n const ol = breadcrumb.shadowRoot?.querySelector(\n 'ol'\n ) as HTMLElement | null;\n if (ol) {\n ol.style.display = 'flex';\n ol.style.flexWrap = 'unset';\n }\n });\n }\n\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.overflowHandler = createOverflowHandler({\n offsetValue: 14,\n container: this.container,\n onChange: (visibleItems: HTMLElement[], _) => {\n const totalItems = (this.breadcrumbsData?.length ?? 1) - 1; // Exclude last item\n const hiddenCount = totalItems - visibleItems.length;\n this.hiddenItems =\n this.breadcrumbsData?.slice(0, hiddenCount) ?? [];\n },\n });\n });\n });\n // On first render, all elements are initially visible. so hiding `this` visibility in connectedCallback\n // The handler runs on the second render to hide specific elements as needed.\n // The following line restores visibility after layout settles, allowing for smoother transitions.\n setTimeout(() => {\n this.style.visibility = 'visible';\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.overflowHandler) {\n this.overflowHandler.disconnect();\n }\n }\n\n render() {\n return html`\n <cds-custom-breadcrumb\n aria-label=\"
|
|
1
|
+
{"version":3,"file":"page-header-breadcrumbs-set.js","names":["styles","customElement"],"sources":["../../../../src/components/page-header/page-header-breadcrumbs-set/page-header-breadcrumbs-set.ts"],"sourcesContent":["// cspell:words currentpage\n/**\n * @license\n *\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\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport '@carbon/web-components/es-custom/components/breadcrumb/index.js';\nimport '@carbon/web-components/es-custom/components/overflow-menu/index.js';\nimport { createOverflowHandler } from '../utils';\nimport OverflowMenuHorizontal16 from '@carbon/icons/es/overflow-menu--horizontal/16.js';\nimport { iconLoader } from '@carbon/web-components/es/globals/internal/icon-loader.js';\nimport '../../truncated-text';\nimport styles from './page-header-breadcrumbs-set.scss?lit';\nimport '../page-header-title-breadcrumb';\nimport { prefix } from '../../../globals/settings';\n\nconst blockClass = `${prefix}--page-header-breadcrumbs-set`;\n\ninterface Breadcrumb {\n text: string;\n href: string;\n}\n\n@customElement(`${prefix}-page-header-breadcrumbs-set`)\nexport default class CDSPageHeaderBreadcrumbsSet extends LitElement {\n /**\n * Hidden items that will be rendered in the overflow menu.\n */\n @property({ type: Array })\n hiddenItems: Breadcrumb[] = [];\n\n /**\n * The list of breadcrumbs.\n */\n @property({ type: Array, attribute: 'breadcrumbs-data', reflect: true })\n breadcrumbsData: Breadcrumb[] = [];\n\n /**\n * The page title to display in the title breadcrumb.\n */\n @property({ type: String })\n title = '';\n\n /**\n * Aria label for the breadcrumb navigation.\n */\n @property({ type: String, attribute: 'breadcrumb-aria-label', reflect: true })\n breadcrumbAriaLabel = 'breadcrumbs';\n\n /**\n * Aria label for the breadcrumb overflow menu button.\n */\n @property({ type: String, attribute: 'overflow-aria-label', reflect: true })\n overflowAriaLabel = 'More breadcrumbs';\n\n /**\n * Container holding all breadcrumbs and the overflow menu.\n */\n @query(`.${blockClass}`)\n private container!: HTMLElement;\n\n private overflowHandler: { disconnect: () => void } | undefined;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.style.visibility = 'hidden';\n }\n\n firstUpdated() {\n if (!this.container) {\n return;\n }\n const sr = this.shadowRoot;\n const breadcrumb = sr?.querySelector(\n 'cds-custom-breadcrumb'\n ) as HTMLElement | null;\n\n if (breadcrumb) {\n breadcrumb.style.display = 'block';\n\n requestAnimationFrame(() => {\n const ol = breadcrumb.shadowRoot?.querySelector(\n 'ol'\n ) as HTMLElement | null;\n if (ol) {\n ol.style.display = 'flex';\n ol.style.flexWrap = 'unset';\n }\n });\n }\n\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.overflowHandler = createOverflowHandler({\n offsetValue: 14,\n container: this.container,\n onChange: (visibleItems: HTMLElement[], _) => {\n const totalItems = (this.breadcrumbsData?.length ?? 1) - 1; // Exclude last item\n const hiddenCount = totalItems - visibleItems.length;\n this.hiddenItems =\n this.breadcrumbsData?.slice(0, hiddenCount) ?? [];\n },\n });\n });\n });\n // On first render, all elements are initially visible. so hiding `this` visibility in connectedCallback\n // The handler runs on the second render to hide specific elements as needed.\n // The following line restores visibility after layout settles, allowing for smoother transitions.\n setTimeout(() => {\n this.style.visibility = 'visible';\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.overflowHandler) {\n this.overflowHandler.disconnect();\n }\n }\n\n render() {\n return html`\n <cds-custom-breadcrumb\n aria-label=\"${this.breadcrumbAriaLabel}\"\n class=${classMap({\n [`${blockClass}`]: true,\n })}\n >\n <cds-custom-breadcrumb-item\n data-fixed\n data-offset\n style=\"display: ${this.hiddenItems?.length >= 1 ? 'flex' : 'none'}\"\n >\n <cds-custom-overflow-menu\n breadcrumb=\"\"\n align=\"bottom\"\n aria-label=\"${this.overflowAriaLabel}\"\n >\n ${iconLoader(OverflowMenuHorizontal16, {\n slot: 'icon',\n })}\n <span slot=\"tooltip-content\"> Breadcrumbs </span>\n <cds-custom-overflow-menu-body size=\"sm\">\n ${repeat(\n this.hiddenItems ?? [],\n (item) => item.href ?? item.text,\n (item) => html`\n <cds-custom-overflow-menu-item href=${item.href}>\n ${item.text}\n </cds-custom-overflow-menu-item>\n `\n )}\n </cds-custom-overflow-menu-body>\n </cds-custom-overflow-menu>\n </cds-custom-breadcrumb-item>\n ${repeat(\n this.breadcrumbsData?.slice(this.hiddenItems?.length ?? 0, -1) ?? [],\n (item) => item.href ?? item.text,\n (item) => html`\n <cds-custom-breadcrumb-item>\n <cds-custom-breadcrumb-link href=\"${item.href}\">\n ${item.text}\n </cds-custom-breadcrumb-link>\n </cds-custom-breadcrumb-item>\n `\n )}\n <c4p-page-header-title-breadcrumb data-fixed>\n <cds-custom-breadcrumb-link is-currentpage=\"\">\n <c4p-truncated-text\n value=\"${this.title}\"\n lines=\"1\"\n autoalign\n ></c4p-truncated-text>\n </cds-custom-breadcrumb-link>\n </c4p-page-header-title-breadcrumb>\n </cds-custom-breadcrumb>\n `;\n }\n static styles = styles;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'c4p-page-header-breadcrumbs-set': CDSPageHeaderBreadcrumbsSet;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,aAAa;AAQJ,IAAA,8BAAA,MAAM,oCAAoC,WAAW;;;qBAKtC,EAAE;yBAME,EAAE;eAM1B;6BAMc;2BAMF;;CAUpB,oBAA0B;AACxB,QAAM,mBAAmB;AACzB,OAAK,MAAM,aAAa;;CAG1B,eAAe;AACb,MAAI,CAAC,KAAK,UACR;EAGF,MAAM,aADK,KAAK,YACO,cACrB,iBACD;AAED,MAAI,YAAY;AACd,cAAW,MAAM,UAAU;AAE3B,+BAA4B;IAC1B,MAAM,KAAK,WAAW,YAAY,cAChC,KACD;AACD,QAAI,IAAI;AACN,QAAG,MAAM,UAAU;AACnB,QAAG,MAAM,WAAW;;KAEtB;;AAGJ,OAAK,eAAe,WAAW;AAC7B,+BAA4B;AAC1B,SAAK,kBAAkB,sBAAsB;KAC3C,aAAa;KACb,WAAW,KAAK;KAChB,WAAW,cAA6B,MAAM;MAE5C,MAAM,eADc,KAAK,iBAAiB,UAAU,KAAK,IACxB,aAAa;AAC9C,WAAK,cACH,KAAK,iBAAiB,MAAM,GAAG,YAAY,IAAI,EAAE;;KAEtD,CAAC;KACF;IACF;AAIF,mBAAiB;AACf,QAAK,MAAM,aAAa;IACxB;;CAGJ,uBAAuB;AACrB,QAAM,sBAAsB;AAC5B,MAAI,KAAK,gBACP,MAAK,gBAAgB,YAAY;;CAIrC,SAAS;AACP,SAAO,IAAI;;sBAEO,KAAK,oBAAoB;gBAC/B,SAAS,GACd,GAAG,eAAe,MACpB,CAAC,CAAC;;;;;4BAKiB,KAAK,aAAa,UAAU,IAAI,SAAS,OAAO;;;;;0BAKlD,KAAK,kBAAkB;;cAEnC,WAAW,0BAA0B,EACrC,MAAM,QACP,CAAC,CAAC;;;gBAGC,OACA,KAAK,eAAe,EAAE,GACrB,SAAS,KAAK,QAAQ,KAAK,OAC3B,SAAS,IAAI;iDACmB,KAAK,KAAK;sBACrC,KAAK,KAAK;;kBAGjB,CAAC;;;;UAIN,OACA,KAAK,iBAAiB,MAAM,KAAK,aAAa,UAAU,GAAG,GAAG,IAAI,EAAE,GACnE,SAAS,KAAK,QAAQ,KAAK,OAC3B,SAAS,IAAI;;2CAEmB,KAAK,KAAK;kBACnC,KAAK,KAAK;;;YAInB,CAAC;;;;uBAIa,KAAK,MAAM;;;;;;;;;;gBAShBA;;;YAtJf,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,EAAA,4BAAA,WAAA,eAAA,KAAA,EAAA;YAMzB,SAAS;CAAE,MAAM;CAAO,WAAW;CAAoB,SAAS;CAAM,CAAC,CAAA,EAAA,4BAAA,WAAA,mBAAA,KAAA,EAAA;YAMvE,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,4BAAA,WAAA,SAAA,KAAA,EAAA;YAM1B,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAyB,SAAS;CAAM,CAAC,CAAA,EAAA,4BAAA,WAAA,uBAAA,KAAA,EAAA;YAM7E,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAuB,SAAS;CAAM,CAAC,CAAA,EAAA,4BAAA,WAAA,qBAAA,KAAA,EAAA;YAM3E,MAAM,IAAI,aAAa,CAAA,EAAA,4BAAA,WAAA,aAAA,KAAA,EAAA;0CAnCzBC,cAAc,kCAAwC,CAAA,EAAA,4BAAA"}
|