@carbon/ibm-products-web-components 0.20.1 → 0.21.0-rc.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 +2374 -352
- package/es/components/about-modal/about-modal.scss.js +1 -1
- package/es/components/interstitial-screen/index.d.ts +13 -0
- package/es/components/interstitial-screen/index.js +13 -0
- package/es/components/interstitial-screen/index.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-body-item.d.ts +372 -0
- package/es/components/interstitial-screen/interstitial-screen-body-item.js +69 -0
- package/es/components/interstitial-screen/interstitial-screen-body-item.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js +13 -0
- package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-body.d.ts +384 -0
- package/es/components/interstitial-screen/interstitial-screen-body.js +129 -0
- package/es/components/interstitial-screen/interstitial-screen-body.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-body.scss.js +13 -0
- package/es/components/interstitial-screen/interstitial-screen-body.scss.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-context.d.ts +18 -0
- package/es/components/interstitial-screen/interstitial-screen-context.js +48 -0
- package/es/components/interstitial-screen/interstitial-screen-context.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-footer.d.ts +409 -0
- package/es/components/interstitial-screen/interstitial-screen-footer.js +229 -0
- package/es/components/interstitial-screen/interstitial-screen-footer.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-footer.scss.js +13 -0
- package/es/components/interstitial-screen/interstitial-screen-footer.scss.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-header.d.ts +394 -0
- package/es/components/interstitial-screen/interstitial-screen-header.js +157 -0
- package/es/components/interstitial-screen/interstitial-screen-header.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen-header.scss.js +13 -0
- package/es/components/interstitial-screen/interstitial-screen-header.scss.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen.d.ts +420 -0
- package/es/components/interstitial-screen/interstitial-screen.js +186 -0
- package/es/components/interstitial-screen/interstitial-screen.js.map +1 -0
- package/es/components/interstitial-screen/interstitial-screen.scss.js +13 -0
- package/es/components/interstitial-screen/interstitial-screen.scss.js.map +1 -0
- package/es/components/notification-panel/notification-panel.scss.js +1 -1
- package/es/components/page-header/_story-assets/overflowHandler.d.ts +98 -0
- package/es/components/page-header/_story-assets/overflowHandler.js +156 -0
- package/es/components/page-header/_story-assets/overflowHandler.js.map +1 -0
- package/es/components/page-header/_story-assets/set-of-breadcrumbs.d.ts +43 -0
- package/es/components/page-header/_story-assets/set-of-breadcrumbs.js +153 -0
- package/es/components/page-header/_story-assets/set-of-breadcrumbs.js.map +1 -0
- package/es/components/page-header/_story-assets/set-of-breadcrumbs.scss.js +13 -0
- package/es/components/page-header/_story-assets/set-of-breadcrumbs.scss.js.map +1 -0
- package/es/components/page-header/context.d.ts +14 -0
- package/es/components/page-header/context.js +26 -0
- package/es/components/page-header/context.js.map +1 -0
- package/es/components/page-header/index.d.ts +2 -0
- package/es/components/page-header/index.js +2 -0
- package/es/components/page-header/index.js.map +1 -1
- package/es/components/page-header/page-header-scroller.d.ts +56 -0
- package/es/components/page-header/page-header-scroller.js +165 -0
- package/es/components/page-header/page-header-scroller.js.map +1 -0
- package/es/components/page-header/page-header-tabs.js +1 -0
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header-title-breadcrumb.d.ts +20 -0
- package/es/components/page-header/page-header-title-breadcrumb.js +65 -0
- package/es/components/page-header/page-header-title-breadcrumb.js.map +1 -0
- package/es/components/page-header/page-header.d.ts +11 -1
- package/es/components/page-header/page-header.js +54 -71
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/page-header/page-header.scss.js +1 -1
- package/es/components/page-header/page-header.test.js +136 -2
- package/es/components/page-header/page-header.test.js.map +1 -1
- package/es/components/page-header/utils.d.ts +32 -0
- package/es/components/page-header/utils.js +76 -0
- package/es/components/page-header/utils.js.map +1 -0
- package/es/components/side-panel/side-panel.d.ts +4 -0
- package/es/components/side-panel/side-panel.js +20 -5
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/tearsheet/tearsheet.scss.js +1 -1
- package/es/components/truncated-text/truncated-text.d.ts +16 -11
- package/es/components/truncated-text/truncated-text.js +65 -58
- package/es/components/truncated-text/truncated-text.js.map +1 -1
- package/es/components/truncated-text/truncated-text.scss.js +1 -1
- package/es/components/truncated-text/truncated-text.test.js +6 -6
- package/es/components/user-avatar/user-avatar.d.ts +8 -0
- package/es/components/user-avatar/user-avatar.js +1 -0
- package/es/components/user-avatar/user-avatar.js.map +1 -1
- package/es/components/user-avatar/user-avatar.scss.js +1 -1
- package/es/packages/ibm-products-web-components/package.json.js +1 -1
- package/es/utilities/carousel/carousel.d.ts +8 -0
- package/es/utilities/carousel/carousel.js +210 -0
- package/es/utilities/carousel/carousel.js.map +1 -0
- package/es/utilities/carousel/index.d.ts +8 -0
- package/es/utilities/carousel/index.js +9 -0
- package/es/utilities/carousel/index.js.map +1 -0
- package/es/utilities/carousel/swipeEvents.d.ts +7 -0
- package/es/utilities/carousel/swipeEvents.js +109 -0
- package/es/utilities/carousel/swipeEvents.js.map +1 -0
- package/es/utilities/carousel/types.d.ts +36 -0
- package/es/utilities/carousel/types.js +8 -0
- package/es/utilities/carousel/types.js.map +1 -0
- package/es-custom/components/about-modal/about-modal.scss.js +1 -1
- package/es-custom/components/interstitial-screen/index.d.ts +13 -0
- package/es-custom/components/interstitial-screen/index.js +13 -0
- package/es-custom/components/interstitial-screen/index.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body-item.d.ts +372 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body-item.js +69 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body-item.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js +13 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body.d.ts +384 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body.js +129 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js +13 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-context.d.ts +18 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-context.js +48 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-context.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-footer.d.ts +409 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-footer.js +229 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-footer.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-footer.scss.js +13 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-footer.scss.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-header.d.ts +394 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-header.js +157 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-header.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-header.scss.js +13 -0
- package/es-custom/components/interstitial-screen/interstitial-screen-header.scss.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen.d.ts +420 -0
- package/es-custom/components/interstitial-screen/interstitial-screen.js +186 -0
- package/es-custom/components/interstitial-screen/interstitial-screen.js.map +1 -0
- package/es-custom/components/interstitial-screen/interstitial-screen.scss.js +13 -0
- package/es-custom/components/interstitial-screen/interstitial-screen.scss.js.map +1 -0
- package/es-custom/components/notification-panel/notification-panel.scss.js +1 -1
- package/es-custom/components/page-header/_story-assets/overflowHandler.d.ts +98 -0
- package/es-custom/components/page-header/_story-assets/overflowHandler.js +156 -0
- package/es-custom/components/page-header/_story-assets/overflowHandler.js.map +1 -0
- package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.d.ts +43 -0
- package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.js +153 -0
- package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.js.map +1 -0
- package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.scss.js +13 -0
- package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.scss.js.map +1 -0
- package/es-custom/components/page-header/context.d.ts +14 -0
- package/es-custom/components/page-header/context.js +26 -0
- package/es-custom/components/page-header/context.js.map +1 -0
- package/es-custom/components/page-header/index.d.ts +2 -0
- package/es-custom/components/page-header/index.js +2 -0
- package/es-custom/components/page-header/index.js.map +1 -1
- package/es-custom/components/page-header/page-header-scroller.d.ts +56 -0
- package/es-custom/components/page-header/page-header-scroller.js +165 -0
- package/es-custom/components/page-header/page-header-scroller.js.map +1 -0
- package/es-custom/components/page-header/page-header-tabs.js +1 -0
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header-title-breadcrumb.d.ts +20 -0
- package/es-custom/components/page-header/page-header-title-breadcrumb.js +65 -0
- package/es-custom/components/page-header/page-header-title-breadcrumb.js.map +1 -0
- package/es-custom/components/page-header/page-header.d.ts +11 -1
- package/es-custom/components/page-header/page-header.js +54 -71
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/page-header/page-header.scss.js +1 -1
- package/es-custom/components/page-header/page-header.test.js +136 -2
- package/es-custom/components/page-header/page-header.test.js.map +1 -1
- package/es-custom/components/page-header/utils.d.ts +32 -0
- package/es-custom/components/page-header/utils.js +76 -0
- package/es-custom/components/page-header/utils.js.map +1 -0
- package/es-custom/components/side-panel/side-panel.d.ts +4 -0
- package/es-custom/components/side-panel/side-panel.js +20 -5
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
- package/es-custom/components/truncated-text/truncated-text.d.ts +16 -11
- package/es-custom/components/truncated-text/truncated-text.js +65 -58
- package/es-custom/components/truncated-text/truncated-text.js.map +1 -1
- package/es-custom/components/truncated-text/truncated-text.scss.js +1 -1
- package/es-custom/components/truncated-text/truncated-text.test.js +6 -6
- package/es-custom/components/user-avatar/user-avatar.d.ts +8 -0
- package/es-custom/components/user-avatar/user-avatar.js +1 -0
- package/es-custom/components/user-avatar/user-avatar.js.map +1 -1
- package/es-custom/components/user-avatar/user-avatar.scss.js +1 -1
- package/es-custom/packages/ibm-products-web-components/package.json.js +1 -1
- package/es-custom/utilities/carousel/carousel.d.ts +8 -0
- package/es-custom/utilities/carousel/carousel.js +210 -0
- package/es-custom/utilities/carousel/carousel.js.map +1 -0
- package/es-custom/utilities/carousel/index.d.ts +8 -0
- package/es-custom/utilities/carousel/index.js +9 -0
- package/es-custom/utilities/carousel/index.js.map +1 -0
- package/es-custom/utilities/carousel/swipeEvents.d.ts +7 -0
- package/es-custom/utilities/carousel/swipeEvents.js +109 -0
- package/es-custom/utilities/carousel/swipeEvents.js.map +1 -0
- package/es-custom/utilities/carousel/types.d.ts +36 -0
- package/es-custom/utilities/carousel/types.js +8 -0
- package/es-custom/utilities/carousel/types.js.map +1 -0
- package/lib/components/interstitial-screen/index.d.ts +13 -0
- package/lib/components/interstitial-screen/interstitial-screen-body-item.d.ts +372 -0
- package/lib/components/interstitial-screen/interstitial-screen-body.d.ts +384 -0
- package/lib/components/interstitial-screen/interstitial-screen-context.d.ts +18 -0
- package/lib/components/interstitial-screen/interstitial-screen-footer.d.ts +409 -0
- package/lib/components/interstitial-screen/interstitial-screen-header.d.ts +394 -0
- package/lib/components/interstitial-screen/interstitial-screen.d.ts +420 -0
- package/lib/components/page-header/_story-assets/overflowHandler.d.ts +98 -0
- package/lib/components/page-header/_story-assets/set-of-breadcrumbs.d.ts +43 -0
- package/lib/components/page-header/context.d.ts +14 -0
- package/lib/components/page-header/index.d.ts +2 -0
- package/lib/components/page-header/page-header-scroller.d.ts +56 -0
- package/lib/components/page-header/page-header-title-breadcrumb.d.ts +20 -0
- package/lib/components/page-header/page-header.d.ts +11 -1
- package/lib/components/page-header/utils.d.ts +32 -0
- package/lib/components/side-panel/side-panel.d.ts +4 -0
- package/lib/components/truncated-text/truncated-text.d.ts +16 -11
- package/lib/components/user-avatar/user-avatar.d.ts +8 -0
- package/lib/utilities/carousel/carousel.d.ts +8 -0
- package/lib/utilities/carousel/index.d.ts +8 -0
- package/lib/utilities/carousel/swipeEvents.d.ts +7 -0
- package/lib/utilities/carousel/types.d.ts +36 -0
- package/package.json +7 -6
- package/scss/components/interstitial-screen/interstitial-screen-body-item.scss +18 -0
- package/scss/components/interstitial-screen/interstitial-screen-body.scss +30 -0
- package/scss/components/interstitial-screen/interstitial-screen-footer.scss +40 -0
- package/scss/components/interstitial-screen/interstitial-screen-header.scss +13 -0
- package/scss/components/interstitial-screen/interstitial-screen.scss +28 -0
- package/scss/components/interstitial-screen/story-styles.scss +27 -0
- package/scss/components/notification-panel/notification-panel.scss +0 -1
- package/scss/components/page-header/_story-assets/set-of-breadcrumbs.scss +41 -0
- package/scss/components/page-header/page-header.scss +85 -0
- package/scss/components/truncated-text/story-styles.scss +11 -10
- package/scss/components/truncated-text/truncated-text.scss +0 -15
- package/scss/components/user-avatar/user-avatar.scss +5 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"set-of-breadcrumbs.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
*
|
4
|
+
* Copyright IBM Corp. 2025, 2025
|
5
|
+
*
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
8
|
+
*/
|
9
|
+
export declare const pageHeaderContext: import("@lit/context").Context<{
|
10
|
+
headerOffset: number;
|
11
|
+
breadcrumbOffset: number;
|
12
|
+
fullyCollapsed: boolean;
|
13
|
+
root: null;
|
14
|
+
}, unknown>;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { createContext } from '@lit/context';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @license
|
12
|
+
*
|
13
|
+
* Copyright IBM Corp. 2025, 2025
|
14
|
+
*
|
15
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
17
|
+
*/
|
18
|
+
const pageHeaderContext = createContext({
|
19
|
+
headerOffset: 0,
|
20
|
+
breadcrumbOffset: 0,
|
21
|
+
fullyCollapsed: false,
|
22
|
+
root: null,
|
23
|
+
});
|
24
|
+
|
25
|
+
export { pageHeaderContext };
|
26
|
+
//# sourceMappingURL=context.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/components/page-header/context.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;;AAOG;AAII,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC7C,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,IAAI,EAAE,IAAI;AACX,CAAA;;;;"}
|
@@ -11,4 +11,6 @@ import './page-header-content.js';
|
|
11
11
|
import './page-header-content-text.js';
|
12
12
|
import './page-header-hero-image.js';
|
13
13
|
import './page-header-tabs.js';
|
14
|
+
import './page-header-title-breadcrumb.js';
|
15
|
+
import './page-header-scroller.js';
|
14
16
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
*
|
4
|
+
* Copyright IBM Corp. 2025, 2025
|
5
|
+
*
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
8
|
+
*/
|
9
|
+
import '@carbon/web-components/es-custom/components/button/index.js';
|
10
|
+
import CDSButton from '@carbon/web-components/es/components/button/button';
|
11
|
+
/**
|
12
|
+
* Page header Scroller button
|
13
|
+
* @element c4p-page-header-scroller
|
14
|
+
*/
|
15
|
+
export declare class PageHeaderScroller extends CDSButton {
|
16
|
+
/**
|
17
|
+
* Specify how the trigger should align with the tooltip
|
18
|
+
*/
|
19
|
+
align: string;
|
20
|
+
/**
|
21
|
+
* Specify whether a auto align functionality should be applied
|
22
|
+
*/
|
23
|
+
autoalign: boolean;
|
24
|
+
/**
|
25
|
+
* Determines whether the tooltip should close when inner content is activated (click, Enter or Space)
|
26
|
+
*/
|
27
|
+
closeOnActivation: boolean;
|
28
|
+
/**
|
29
|
+
* Specify the collapse text for the scroller button
|
30
|
+
*/
|
31
|
+
collapseText: string;
|
32
|
+
/**
|
33
|
+
* Specify whether the tooltip should be open when it first renders
|
34
|
+
*/
|
35
|
+
defaultOpen: boolean;
|
36
|
+
/**
|
37
|
+
* Specify the duration in milliseconds to delay before displaying the tooltip
|
38
|
+
*/
|
39
|
+
enterDelayMs: number;
|
40
|
+
/**
|
41
|
+
* Specify the expand text for the scroller button
|
42
|
+
*/
|
43
|
+
expandText: string;
|
44
|
+
/**
|
45
|
+
* Specify the duration in milliseconds to delay before hiding the tooltip
|
46
|
+
*/
|
47
|
+
leaveDelayMs: number;
|
48
|
+
/**
|
49
|
+
* Specify the size of the Button. Defaults to `md`.
|
50
|
+
*/
|
51
|
+
size: string;
|
52
|
+
context: any;
|
53
|
+
protected _renderTooltipContent(): import("lit-html").TemplateResult<1>;
|
54
|
+
private _handleScroller;
|
55
|
+
render(): import("lit-html").TemplateResult<1>;
|
56
|
+
}
|
@@ -0,0 +1,165 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { __decorate } from 'tslib';
|
9
|
+
import { html } from 'lit';
|
10
|
+
import { property } from 'lit/decorators.js';
|
11
|
+
import { classMap } from 'lit/directives/class-map.js';
|
12
|
+
import { carbonElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';
|
13
|
+
import Chevron20 from '@carbon/web-components/es/icons/chevron--up/20';
|
14
|
+
import ChevronDown20 from '@carbon/web-components/es/icons/chevron--down/20';
|
15
|
+
import '@carbon/web-components/es-custom/components/button/index.js';
|
16
|
+
import { pageHeaderContext } from './context.js';
|
17
|
+
import { consume } from '@lit/context';
|
18
|
+
import CDSButton from '@carbon/web-components/es/components/button/button';
|
19
|
+
import { prefix } from '../../globals/settings.js';
|
20
|
+
import { scrollableAncestorInner } from './utils.js';
|
21
|
+
|
22
|
+
/**
|
23
|
+
* @license
|
24
|
+
*
|
25
|
+
* Copyright IBM Corp. 2025, 2025
|
26
|
+
*
|
27
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
28
|
+
* LICENSE file in the root directory of this source tree.
|
29
|
+
*/
|
30
|
+
/**
|
31
|
+
* Page header Scroller button
|
32
|
+
* @element c4p-page-header-scroller
|
33
|
+
*/
|
34
|
+
let PageHeaderScroller = class PageHeaderScroller extends CDSButton {
|
35
|
+
constructor() {
|
36
|
+
super(...arguments);
|
37
|
+
/**
|
38
|
+
* Specify how the trigger should align with the tooltip
|
39
|
+
*/
|
40
|
+
this.align = 'top';
|
41
|
+
/**
|
42
|
+
* Specify whether a auto align functionality should be applied
|
43
|
+
*/
|
44
|
+
this.autoalign = true;
|
45
|
+
/**
|
46
|
+
* Determines whether the tooltip should close when inner content is activated (click, Enter or Space)
|
47
|
+
*/
|
48
|
+
this.closeOnActivation = true;
|
49
|
+
/**
|
50
|
+
* Specify the collapse text for the scroller button
|
51
|
+
*/
|
52
|
+
this.collapseText = 'Collapse';
|
53
|
+
/**
|
54
|
+
* Specify whether the tooltip should be open when it first renders
|
55
|
+
*/
|
56
|
+
this.defaultOpen = false;
|
57
|
+
/**
|
58
|
+
* Specify the duration in milliseconds to delay before displaying the tooltip
|
59
|
+
*/
|
60
|
+
this.enterDelayMs = 100;
|
61
|
+
/**
|
62
|
+
* Specify the expand text for the scroller button
|
63
|
+
*/
|
64
|
+
this.expandText = 'Expand';
|
65
|
+
/**
|
66
|
+
* Specify the duration in milliseconds to delay before hiding the tooltip
|
67
|
+
*/
|
68
|
+
this.leaveDelayMs = 300;
|
69
|
+
/**
|
70
|
+
* Specify the size of the Button. Defaults to `md`.
|
71
|
+
*/
|
72
|
+
this.size = 'md';
|
73
|
+
this._handleScroller = () => {
|
74
|
+
const { root, fullyCollapsed } = this.context;
|
75
|
+
const contentElement = root.querySelector(`${prefix}-page-header-content`);
|
76
|
+
if (!contentElement) {
|
77
|
+
return;
|
78
|
+
}
|
79
|
+
const scrollableTarget = scrollableAncestorInner(contentElement);
|
80
|
+
// Page header content is not fully collapsed
|
81
|
+
if (!fullyCollapsed) {
|
82
|
+
const pageHeaderContentHeight = contentElement.offsetHeight;
|
83
|
+
scrollableTarget === null || scrollableTarget === void 0 ? void 0 : scrollableTarget.scrollTo({
|
84
|
+
top: pageHeaderContentHeight, // headerTopValue, check if breadcrumb bar is included
|
85
|
+
behavior: 'smooth',
|
86
|
+
});
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
// Page header content is fully collapsed
|
90
|
+
scrollableTarget === null || scrollableTarget === void 0 ? void 0 : scrollableTarget.scrollTo({ top: 0, behavior: 'smooth' });
|
91
|
+
}
|
92
|
+
};
|
93
|
+
}
|
94
|
+
_renderTooltipContent() {
|
95
|
+
return html `
|
96
|
+
<cds-custom-tooltip-content>
|
97
|
+
<slot name="tooltip-content"></slot>
|
98
|
+
</cds-custom-tooltip-content>
|
99
|
+
`;
|
100
|
+
}
|
101
|
+
render() {
|
102
|
+
const { align, closeOnActivation, defaultOpen, enterDelayMs, leaveDelayMs, disabled, isSelected, size, context, autoalign, } = this;
|
103
|
+
const iconClasses = classMap({
|
104
|
+
[`${prefix}--page-header-scroller-collapsed`]: !!(context === null || context === void 0 ? void 0 : context.fullyCollapsed),
|
105
|
+
[`${prefix}--page-header-scroller-icon`]: true,
|
106
|
+
});
|
107
|
+
return html `<cds-custom-icon-button
|
108
|
+
align=${align}
|
109
|
+
?close-on-activation=${closeOnActivation}
|
110
|
+
?defaultOpen=${defaultOpen}
|
111
|
+
?disabled=${disabled}
|
112
|
+
enter-delay-ms=${enterDelayMs}
|
113
|
+
?isSelected=${isSelected}
|
114
|
+
kind="ghost"
|
115
|
+
leave-delay-ms=${leaveDelayMs}
|
116
|
+
size=${size}
|
117
|
+
?autoalign=${autoalign}
|
118
|
+
class=${iconClasses}
|
119
|
+
@click=${this._handleScroller}
|
120
|
+
>
|
121
|
+
${(context === null || context === void 0 ? void 0 : context.fullyCollapsed)
|
122
|
+
? html `${ChevronDown20({ slot: 'icon' })}`
|
123
|
+
: html `${Chevron20({ slot: 'icon' })}`}
|
124
|
+
<span slot="tooltip-content">
|
125
|
+
${(context === null || context === void 0 ? void 0 : context.fullyCollapsed) ? this.expandText : this.collapseText}
|
126
|
+
</span>
|
127
|
+
</cds-custom-icon-button>`;
|
128
|
+
}
|
129
|
+
};
|
130
|
+
__decorate([
|
131
|
+
property({ reflect: true, type: String })
|
132
|
+
], PageHeaderScroller.prototype, "align", void 0);
|
133
|
+
__decorate([
|
134
|
+
property({ type: Boolean, reflect: true })
|
135
|
+
], PageHeaderScroller.prototype, "autoalign", void 0);
|
136
|
+
__decorate([
|
137
|
+
property({ attribute: 'close-on-activation', reflect: true, type: Boolean })
|
138
|
+
], PageHeaderScroller.prototype, "closeOnActivation", void 0);
|
139
|
+
__decorate([
|
140
|
+
property({ reflect: true, type: String })
|
141
|
+
], PageHeaderScroller.prototype, "collapseText", void 0);
|
142
|
+
__decorate([
|
143
|
+
property({ reflect: true, type: Boolean })
|
144
|
+
], PageHeaderScroller.prototype, "defaultOpen", void 0);
|
145
|
+
__decorate([
|
146
|
+
property({ attribute: 'enter-delay-ms', type: Number })
|
147
|
+
], PageHeaderScroller.prototype, "enterDelayMs", void 0);
|
148
|
+
__decorate([
|
149
|
+
property({ reflect: true, type: String })
|
150
|
+
], PageHeaderScroller.prototype, "expandText", void 0);
|
151
|
+
__decorate([
|
152
|
+
property({ attribute: 'leave-delay-ms', type: Number })
|
153
|
+
], PageHeaderScroller.prototype, "leaveDelayMs", void 0);
|
154
|
+
__decorate([
|
155
|
+
property({ reflect: true })
|
156
|
+
], PageHeaderScroller.prototype, "size", void 0);
|
157
|
+
__decorate([
|
158
|
+
consume({ context: pageHeaderContext, subscribe: true })
|
159
|
+
], PageHeaderScroller.prototype, "context", void 0);
|
160
|
+
PageHeaderScroller = __decorate([
|
161
|
+
carbonElement(`${prefix}-page-header-scroller`)
|
162
|
+
], PageHeaderScroller);
|
163
|
+
|
164
|
+
export { PageHeaderScroller };
|
165
|
+
//# sourceMappingURL=page-header-scroller.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"page-header-scroller.js","sources":["../../../src/components/page-header/page-header-scroller.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"page-header-tabs.js","sources":["../../../src/components/page-header/page-header-tabs.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;AAOG;AAOH;;;AAGG;AAEH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU,CAAA;IACxC,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,aAAA,EAAgB,YAAY,CAAA;;AAE1B,eAAA,EAAA,YAAY,CAAmB,gBAAA,EAAA,YAAY,CAAmB,gBAAA,EAAA,YAAY,oBAAoB,YAAY,CAAA;;sBAErG,MAAM,CAAA
|
1
|
+
{"version":3,"file":"page-header-tabs.js","sources":["../../../src/components/page-header/page-header-tabs.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;AAOG;AAOH;;;AAGG;AAEH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU,CAAA;IACxC,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,aAAA,EAAgB,YAAY,CAAA;;AAE1B,eAAA,EAAA,YAAY,CAAmB,gBAAA,EAAA,YAAY,CAAmB,gBAAA,EAAA,YAAY,oBAAoB,YAAY,CAAA;;sBAErG,MAAM,CAAA;;;;;;WAMjB;;;AAGF,iBAAM,CAAA,MAAA,GAAG,MAAH;AAfT,iBAAiB,GAAA,UAAA,CAAA;AADtB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB;AACrC,CAAA,EAAA,iBAAiB,CAgBtB;AAED,0BAAe,iBAAiB;;;;"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
*
|
4
|
+
* Copyright IBM Corp. 2025, 2025
|
5
|
+
*
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
8
|
+
*/
|
9
|
+
import { CDSBreadcrumbItem } from '@carbon/web-components/es/index';
|
10
|
+
/**
|
11
|
+
* Page header Title Breadcrumb
|
12
|
+
* @element c4p-page-header-title-breadcrumb
|
13
|
+
*/
|
14
|
+
declare class CDSPageHeaderTitleBreadcrumb extends CDSBreadcrumbItem {
|
15
|
+
context: any;
|
16
|
+
constructor();
|
17
|
+
render(): import("lit-html").TemplateResult<1>;
|
18
|
+
static styles: any;
|
19
|
+
}
|
20
|
+
export default CDSPageHeaderTitleBreadcrumb;
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { __decorate } from 'tslib';
|
9
|
+
import { html } from 'lit';
|
10
|
+
import { consume, ContextConsumer } from '@lit/context';
|
11
|
+
import { carbonElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';
|
12
|
+
import { CDSBreadcrumbItem } from '@carbon/web-components/es/index';
|
13
|
+
import { prefix } from '../../globals/settings.js';
|
14
|
+
import styles from './page-header.scss.js';
|
15
|
+
import { pageHeaderContext } from './context.js';
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @license
|
19
|
+
*
|
20
|
+
* Copyright IBM Corp. 2025, 2025
|
21
|
+
*
|
22
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
23
|
+
* LICENSE file in the root directory of this source tree.
|
24
|
+
*/
|
25
|
+
/**
|
26
|
+
* Page header Title Breadcrumb
|
27
|
+
* @element c4p-page-header-title-breadcrumb
|
28
|
+
*/
|
29
|
+
let CDSPageHeaderTitleBreadcrumb = class CDSPageHeaderTitleBreadcrumb extends CDSBreadcrumbItem {
|
30
|
+
constructor() {
|
31
|
+
super();
|
32
|
+
new ContextConsumer(this, {
|
33
|
+
context: pageHeaderContext,
|
34
|
+
subscribe: true,
|
35
|
+
callback: (state) => {
|
36
|
+
if (state.withContent) {
|
37
|
+
this.classList.add(`${prefix}--page-header-title-breadcrumb-show__with-content`);
|
38
|
+
this.classList.remove(`${prefix}--page-header-title-breadcrumb-show__by-default`);
|
39
|
+
}
|
40
|
+
else {
|
41
|
+
this.classList.remove(`${prefix}--page-header-title-breadcrumb-show__with-content`);
|
42
|
+
this.classList.add(`${prefix}--page-header-title-breadcrumb-show__by-default`);
|
43
|
+
}
|
44
|
+
},
|
45
|
+
});
|
46
|
+
}
|
47
|
+
render() {
|
48
|
+
return html `
|
49
|
+
<cds-custom-breadcrumb-item class="${prefix}--page-header-title-breadcrumb">
|
50
|
+
<slot></slot>
|
51
|
+
</cds-custom-breadcrumb-item>
|
52
|
+
`;
|
53
|
+
}
|
54
|
+
};
|
55
|
+
CDSPageHeaderTitleBreadcrumb.styles = styles;
|
56
|
+
__decorate([
|
57
|
+
consume({ context: pageHeaderContext, subscribe: true })
|
58
|
+
], CDSPageHeaderTitleBreadcrumb.prototype, "context", void 0);
|
59
|
+
CDSPageHeaderTitleBreadcrumb = __decorate([
|
60
|
+
carbonElement(`${prefix}-page-header-title-breadcrumb`)
|
61
|
+
], CDSPageHeaderTitleBreadcrumb);
|
62
|
+
var CDSPageHeaderTitleBreadcrumb$1 = CDSPageHeaderTitleBreadcrumb;
|
63
|
+
|
64
|
+
export { CDSPageHeaderTitleBreadcrumb$1 as default };
|
65
|
+
//# sourceMappingURL=page-header-title-breadcrumb.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"page-header-title-breadcrumb.js","sources":["../../../src/components/page-header/page-header-title-breadcrumb.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;AAOG;AAWH;;;AAGG;AAEH,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,iBAAiB,CAAA;AAI1D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QACP,IAAI,eAAe,CAAC,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClB,gBAAA,IAAK,KAA+B,CAAC,WAAW,EAAE;oBAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,CAAG,EAAA,MAAM,CAAmD,iDAAA,CAAA,CAC7D;oBACD,IAAI,CAAC,SAAS,CAAC,MAAM,CACnB,CAAG,EAAA,MAAM,CAAiD,+CAAA,CAAA,CAC3D;;qBACI;oBACL,IAAI,CAAC,SAAS,CAAC,MAAM,CACnB,CAAG,EAAA,MAAM,CAAmD,iDAAA,CAAA,CAC7D;oBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,CAAG,EAAA,MAAM,CAAiD,+CAAA,CAAA,CAC3D;;aAEJ;AACF,SAAA,CAAC;;IAEJ,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAA;oCACqB,MAAM,CAAA;;;KAGrC;;;AAGI,4BAAM,CAAA,MAAA,GAAG,MAAH;AAlCb,UAAA,CAAA;IADC,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,IAAI,EAAE;AAChD,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAFJ,4BAA4B,GAAA,UAAA,CAAA;AADjC,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B;AACjD,CAAA,EAAA,4BAA4B,CAqCjC;AAED,qCAAe,4BAA4B;;;;"}
|
@@ -7,12 +7,22 @@
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
8
8
|
*/
|
9
9
|
import { LitElement } from 'lit';
|
10
|
+
export interface pageHeaderContextType {
|
11
|
+
breadcrumbOffset?: number;
|
12
|
+
headerOffset?: number;
|
13
|
+
fullyCollapsed?: boolean;
|
14
|
+
root?: CDSPageHeader | null;
|
15
|
+
withContent?: boolean;
|
16
|
+
}
|
10
17
|
/**
|
11
18
|
* Page header.
|
12
19
|
* @element c4p-page-header
|
13
20
|
*/
|
14
21
|
declare class CDSPageHeader extends LitElement {
|
15
|
-
|
22
|
+
context: pageHeaderContextType;
|
23
|
+
private resizeObserver;
|
24
|
+
connectedCallback(): void;
|
25
|
+
disconnectedCallback(): void;
|
16
26
|
render(): import("lit-html").TemplateResult<1>;
|
17
27
|
static styles: any;
|
18
28
|
}
|
@@ -7,9 +7,14 @@
|
|
7
7
|
|
8
8
|
import { __decorate } from 'tslib';
|
9
9
|
import { LitElement, html } from 'lit';
|
10
|
+
import { state } from 'lit/decorators.js';
|
11
|
+
import { provide } from '@lit/context';
|
10
12
|
import { prefix } from '../../globals/settings.js';
|
11
13
|
import styles from './page-header.scss.js';
|
12
14
|
import { carbonElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';
|
15
|
+
import { pageHeaderContext } from './context.js';
|
16
|
+
import { getHeaderOffset } from './utils.js';
|
17
|
+
import CDSPageHeaderContent from './page-header-content.js';
|
13
18
|
|
14
19
|
/**
|
15
20
|
* @license
|
@@ -19,91 +24,69 @@ import { carbonElement } from '@carbon/web-components/es/globals/decorators/carb
|
|
19
24
|
* This source code is licensed under the Apache-2.0 license found in the
|
20
25
|
* LICENSE file in the root directory of this source tree.
|
21
26
|
*/
|
22
|
-
/**
|
23
|
-
* ----------
|
24
|
-
* Utilities
|
25
|
-
* ----------
|
26
|
-
*/
|
27
|
-
const getHeaderOffset = (el) => {
|
28
|
-
const scrollableContainer = scrollableAncestor(el);
|
29
|
-
const scrollableContainerTop = scrollableContainer
|
30
|
-
? scrollableContainer.getBoundingClientRect().top
|
31
|
-
: 0;
|
32
|
-
const offsetMeasuringTop = el ? el.getBoundingClientRect().top : 0;
|
33
|
-
const totalHeaderOffset = offsetMeasuringTop !== 0 ? offsetMeasuringTop - scrollableContainerTop : 0;
|
34
|
-
return totalHeaderOffset;
|
35
|
-
};
|
36
|
-
const windowExists = typeof window !== `undefined`;
|
37
|
-
/**
|
38
|
-
* Determines if the given target is scrollable
|
39
|
-
*
|
40
|
-
* @param {HTMLElement} target
|
41
|
-
* @returns {boolean}
|
42
|
-
*/
|
43
|
-
const scrollable = (target) => {
|
44
|
-
const style = window.getComputedStyle(target);
|
45
|
-
return /(auto|scroll|hidden)/.test(style.overflow);
|
46
|
-
};
|
47
|
-
/**
|
48
|
-
* Recursively looks for the scrollable ancestor
|
49
|
-
*/
|
50
|
-
const scrollableAncestorInner = (target) => {
|
51
|
-
if (target.parentNode && target.parentNode !== document) {
|
52
|
-
if (scrollable(target.parentNode)) {
|
53
|
-
return target.parentNode;
|
54
|
-
}
|
55
|
-
else {
|
56
|
-
return scrollableAncestorInner(target.parentNode);
|
57
|
-
}
|
58
|
-
}
|
59
|
-
else {
|
60
|
-
return document.scrollingElement;
|
61
|
-
}
|
62
|
-
};
|
63
|
-
/**
|
64
|
-
* Walks up the parent nodes to identify the first scrollable ancestor
|
65
|
-
*
|
66
|
-
* @param {HTMLElement} target
|
67
|
-
* @returns {HTMLElement}
|
68
|
-
*/
|
69
|
-
const scrollableAncestor = (target) => {
|
70
|
-
if (!windowExists || !target) {
|
71
|
-
return null;
|
72
|
-
}
|
73
|
-
// based on https://stackoverflow.com/questions/35939886/find-first-scrollable-parent
|
74
|
-
const style = window.getComputedStyle(target);
|
75
|
-
if (!target || !style || style.position === 'fixed') {
|
76
|
-
return document.scrollingElement;
|
77
|
-
}
|
78
|
-
return scrollableAncestorInner(target);
|
79
|
-
};
|
80
27
|
/**
|
81
28
|
* Page header.
|
82
29
|
* @element c4p-page-header
|
83
30
|
*/
|
84
31
|
let CDSPageHeader = class CDSPageHeader extends LitElement {
|
85
|
-
|
32
|
+
constructor() {
|
33
|
+
super(...arguments);
|
34
|
+
this.context = {};
|
35
|
+
}
|
36
|
+
connectedCallback() {
|
37
|
+
super.connectedCallback();
|
86
38
|
const contentElement = this.querySelector(`${prefix}-page-header-content`);
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
39
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
40
|
+
var _a, _b;
|
41
|
+
const pageHeaderElement = entries[0];
|
42
|
+
const contentEl = pageHeaderElement.target.querySelector(`${prefix}-page-header-content`);
|
43
|
+
const contentHeight = contentEl instanceof CDSPageHeaderContent ? contentEl.scrollHeight : 0;
|
44
|
+
const padding = contentEl instanceof CDSPageHeaderContent
|
45
|
+
? parseFloat((_a = getComputedStyle(contentEl)) === null || _a === void 0 ? void 0 : _a.paddingBlockStart) +
|
46
|
+
parseFloat((_b = getComputedStyle(contentEl)) === null || _b === void 0 ? void 0 : _b.paddingBlockEnd)
|
47
|
+
: 0;
|
48
|
+
const totalContentHeight = contentHeight + padding;
|
49
|
+
const headerOffset = getHeaderOffset(this);
|
50
|
+
const contentPadding = contentEl instanceof CDSPageHeaderContent ? 48 : 0;
|
51
|
+
this.style.setProperty(`--${prefix}-page-header-header-top`, `${(Math.round(totalContentHeight - contentPadding) - headerOffset) * -1}px`);
|
52
|
+
this.style.setProperty(`--${prefix}-page-header-breadcrumb-top`, `${headerOffset}px`);
|
53
|
+
this.context = Object.assign(Object.assign({}, this.context), { breadcrumbOffset: headerOffset, headerOffset: (Math.round(totalContentHeight) - headerOffset) * -1, root: this, withContent: !!contentEl });
|
54
|
+
});
|
55
|
+
this.resizeObserver.observe(this);
|
56
|
+
const predefinedContentPadding = 24;
|
57
|
+
const totalHeaderOffset = getHeaderOffset(this);
|
58
|
+
const contentObserver = new IntersectionObserver((entries) => {
|
59
|
+
entries.forEach((entry) => {
|
60
|
+
if (!entry.isIntersecting) {
|
61
|
+
this.context = Object.assign(Object.assign({}, this.context), { fullyCollapsed: true });
|
62
|
+
}
|
63
|
+
else {
|
64
|
+
this.context = Object.assign(Object.assign({}, this.context), { fullyCollapsed: false });
|
65
|
+
}
|
98
66
|
});
|
99
|
-
|
67
|
+
}, {
|
68
|
+
root: null,
|
69
|
+
rootMargin: `${(predefinedContentPadding + totalHeaderOffset + 40) * -1}px 0px 0px 0px`,
|
70
|
+
threshold: 0.1,
|
71
|
+
});
|
72
|
+
if (contentElement) {
|
73
|
+
contentObserver.observe(contentElement);
|
100
74
|
}
|
101
75
|
}
|
76
|
+
disconnectedCallback() {
|
77
|
+
var _a;
|
78
|
+
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect(); // Clean up
|
79
|
+
super.disconnectedCallback();
|
80
|
+
}
|
102
81
|
render() {
|
103
82
|
return html ` <slot></slot>`;
|
104
83
|
}
|
105
84
|
};
|
106
85
|
CDSPageHeader.styles = styles;
|
86
|
+
__decorate([
|
87
|
+
state(),
|
88
|
+
provide({ context: pageHeaderContext })
|
89
|
+
], CDSPageHeader.prototype, "context", void 0);
|
107
90
|
CDSPageHeader = __decorate([
|
108
91
|
carbonElement(`${prefix}-page-header`)
|
109
92
|
], CDSPageHeader);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"page-header.js","sources":["../../../src/components/page-header/page-header.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":"
|
1
|
+
{"version":3,"file":"page-header.js","sources":["../../../src/components/page-header/page-header.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":"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"}
|