@carbon/ibm-products-web-components 0.20.1 → 0.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 (216) hide show
  1. package/custom-elements.json +2374 -352
  2. package/es/components/about-modal/about-modal.scss.js +1 -1
  3. package/es/components/interstitial-screen/index.d.ts +13 -0
  4. package/es/components/interstitial-screen/index.js +13 -0
  5. package/es/components/interstitial-screen/index.js.map +1 -0
  6. package/es/components/interstitial-screen/interstitial-screen-body-item.d.ts +372 -0
  7. package/es/components/interstitial-screen/interstitial-screen-body-item.js +69 -0
  8. package/es/components/interstitial-screen/interstitial-screen-body-item.js.map +1 -0
  9. package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js +13 -0
  10. package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js.map +1 -0
  11. package/es/components/interstitial-screen/interstitial-screen-body.d.ts +384 -0
  12. package/es/components/interstitial-screen/interstitial-screen-body.js +129 -0
  13. package/es/components/interstitial-screen/interstitial-screen-body.js.map +1 -0
  14. package/es/components/interstitial-screen/interstitial-screen-body.scss.js +13 -0
  15. package/es/components/interstitial-screen/interstitial-screen-body.scss.js.map +1 -0
  16. package/es/components/interstitial-screen/interstitial-screen-context.d.ts +18 -0
  17. package/es/components/interstitial-screen/interstitial-screen-context.js +48 -0
  18. package/es/components/interstitial-screen/interstitial-screen-context.js.map +1 -0
  19. package/es/components/interstitial-screen/interstitial-screen-footer.d.ts +409 -0
  20. package/es/components/interstitial-screen/interstitial-screen-footer.js +229 -0
  21. package/es/components/interstitial-screen/interstitial-screen-footer.js.map +1 -0
  22. package/es/components/interstitial-screen/interstitial-screen-footer.scss.js +13 -0
  23. package/es/components/interstitial-screen/interstitial-screen-footer.scss.js.map +1 -0
  24. package/es/components/interstitial-screen/interstitial-screen-header.d.ts +394 -0
  25. package/es/components/interstitial-screen/interstitial-screen-header.js +157 -0
  26. package/es/components/interstitial-screen/interstitial-screen-header.js.map +1 -0
  27. package/es/components/interstitial-screen/interstitial-screen-header.scss.js +13 -0
  28. package/es/components/interstitial-screen/interstitial-screen-header.scss.js.map +1 -0
  29. package/es/components/interstitial-screen/interstitial-screen.d.ts +420 -0
  30. package/es/components/interstitial-screen/interstitial-screen.js +186 -0
  31. package/es/components/interstitial-screen/interstitial-screen.js.map +1 -0
  32. package/es/components/interstitial-screen/interstitial-screen.scss.js +13 -0
  33. package/es/components/interstitial-screen/interstitial-screen.scss.js.map +1 -0
  34. package/es/components/notification-panel/notification-panel.scss.js +1 -1
  35. package/es/components/page-header/_story-assets/overflowHandler.d.ts +98 -0
  36. package/es/components/page-header/_story-assets/overflowHandler.js +156 -0
  37. package/es/components/page-header/_story-assets/overflowHandler.js.map +1 -0
  38. package/es/components/page-header/_story-assets/set-of-breadcrumbs.d.ts +43 -0
  39. package/es/components/page-header/_story-assets/set-of-breadcrumbs.js +153 -0
  40. package/es/components/page-header/_story-assets/set-of-breadcrumbs.js.map +1 -0
  41. package/es/components/page-header/_story-assets/set-of-breadcrumbs.scss.js +13 -0
  42. package/es/components/page-header/_story-assets/set-of-breadcrumbs.scss.js.map +1 -0
  43. package/es/components/page-header/context.d.ts +14 -0
  44. package/es/components/page-header/context.js +26 -0
  45. package/es/components/page-header/context.js.map +1 -0
  46. package/es/components/page-header/index.d.ts +2 -0
  47. package/es/components/page-header/index.js +2 -0
  48. package/es/components/page-header/index.js.map +1 -1
  49. package/es/components/page-header/page-header-scroller.d.ts +56 -0
  50. package/es/components/page-header/page-header-scroller.js +165 -0
  51. package/es/components/page-header/page-header-scroller.js.map +1 -0
  52. package/es/components/page-header/page-header-tabs.js +1 -0
  53. package/es/components/page-header/page-header-tabs.js.map +1 -1
  54. package/es/components/page-header/page-header-title-breadcrumb.d.ts +20 -0
  55. package/es/components/page-header/page-header-title-breadcrumb.js +65 -0
  56. package/es/components/page-header/page-header-title-breadcrumb.js.map +1 -0
  57. package/es/components/page-header/page-header.d.ts +11 -1
  58. package/es/components/page-header/page-header.js +54 -71
  59. package/es/components/page-header/page-header.js.map +1 -1
  60. package/es/components/page-header/page-header.scss.js +1 -1
  61. package/es/components/page-header/page-header.test.js +136 -2
  62. package/es/components/page-header/page-header.test.js.map +1 -1
  63. package/es/components/page-header/utils.d.ts +32 -0
  64. package/es/components/page-header/utils.js +76 -0
  65. package/es/components/page-header/utils.js.map +1 -0
  66. package/es/components/side-panel/side-panel.d.ts +4 -0
  67. package/es/components/side-panel/side-panel.js +20 -5
  68. package/es/components/side-panel/side-panel.js.map +1 -1
  69. package/es/components/tearsheet/tearsheet.scss.js +1 -1
  70. package/es/components/truncated-text/truncated-text.d.ts +16 -11
  71. package/es/components/truncated-text/truncated-text.js +65 -58
  72. package/es/components/truncated-text/truncated-text.js.map +1 -1
  73. package/es/components/truncated-text/truncated-text.scss.js +1 -1
  74. package/es/components/truncated-text/truncated-text.test.js +6 -6
  75. package/es/components/user-avatar/user-avatar.d.ts +8 -0
  76. package/es/components/user-avatar/user-avatar.js +1 -0
  77. package/es/components/user-avatar/user-avatar.js.map +1 -1
  78. package/es/components/user-avatar/user-avatar.scss.js +1 -1
  79. package/es/packages/ibm-products-web-components/package.json.js +1 -1
  80. package/es/utilities/carousel/carousel.d.ts +8 -0
  81. package/es/utilities/carousel/carousel.js +210 -0
  82. package/es/utilities/carousel/carousel.js.map +1 -0
  83. package/es/utilities/carousel/index.d.ts +8 -0
  84. package/es/utilities/carousel/index.js +9 -0
  85. package/es/utilities/carousel/index.js.map +1 -0
  86. package/es/utilities/carousel/swipeEvents.d.ts +7 -0
  87. package/es/utilities/carousel/swipeEvents.js +109 -0
  88. package/es/utilities/carousel/swipeEvents.js.map +1 -0
  89. package/es/utilities/carousel/types.d.ts +36 -0
  90. package/es/utilities/carousel/types.js +8 -0
  91. package/es/utilities/carousel/types.js.map +1 -0
  92. package/es-custom/components/about-modal/about-modal.scss.js +1 -1
  93. package/es-custom/components/interstitial-screen/index.d.ts +13 -0
  94. package/es-custom/components/interstitial-screen/index.js +13 -0
  95. package/es-custom/components/interstitial-screen/index.js.map +1 -0
  96. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.d.ts +372 -0
  97. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.js +69 -0
  98. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.js.map +1 -0
  99. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js +13 -0
  100. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js.map +1 -0
  101. package/es-custom/components/interstitial-screen/interstitial-screen-body.d.ts +384 -0
  102. package/es-custom/components/interstitial-screen/interstitial-screen-body.js +129 -0
  103. package/es-custom/components/interstitial-screen/interstitial-screen-body.js.map +1 -0
  104. package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js +13 -0
  105. package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js.map +1 -0
  106. package/es-custom/components/interstitial-screen/interstitial-screen-context.d.ts +18 -0
  107. package/es-custom/components/interstitial-screen/interstitial-screen-context.js +48 -0
  108. package/es-custom/components/interstitial-screen/interstitial-screen-context.js.map +1 -0
  109. package/es-custom/components/interstitial-screen/interstitial-screen-footer.d.ts +409 -0
  110. package/es-custom/components/interstitial-screen/interstitial-screen-footer.js +229 -0
  111. package/es-custom/components/interstitial-screen/interstitial-screen-footer.js.map +1 -0
  112. package/es-custom/components/interstitial-screen/interstitial-screen-footer.scss.js +13 -0
  113. package/es-custom/components/interstitial-screen/interstitial-screen-footer.scss.js.map +1 -0
  114. package/es-custom/components/interstitial-screen/interstitial-screen-header.d.ts +394 -0
  115. package/es-custom/components/interstitial-screen/interstitial-screen-header.js +157 -0
  116. package/es-custom/components/interstitial-screen/interstitial-screen-header.js.map +1 -0
  117. package/es-custom/components/interstitial-screen/interstitial-screen-header.scss.js +13 -0
  118. package/es-custom/components/interstitial-screen/interstitial-screen-header.scss.js.map +1 -0
  119. package/es-custom/components/interstitial-screen/interstitial-screen.d.ts +420 -0
  120. package/es-custom/components/interstitial-screen/interstitial-screen.js +186 -0
  121. package/es-custom/components/interstitial-screen/interstitial-screen.js.map +1 -0
  122. package/es-custom/components/interstitial-screen/interstitial-screen.scss.js +13 -0
  123. package/es-custom/components/interstitial-screen/interstitial-screen.scss.js.map +1 -0
  124. package/es-custom/components/notification-panel/notification-panel.scss.js +1 -1
  125. package/es-custom/components/page-header/_story-assets/overflowHandler.d.ts +98 -0
  126. package/es-custom/components/page-header/_story-assets/overflowHandler.js +156 -0
  127. package/es-custom/components/page-header/_story-assets/overflowHandler.js.map +1 -0
  128. package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.d.ts +43 -0
  129. package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.js +153 -0
  130. package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.js.map +1 -0
  131. package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.scss.js +13 -0
  132. package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.scss.js.map +1 -0
  133. package/es-custom/components/page-header/context.d.ts +14 -0
  134. package/es-custom/components/page-header/context.js +26 -0
  135. package/es-custom/components/page-header/context.js.map +1 -0
  136. package/es-custom/components/page-header/index.d.ts +2 -0
  137. package/es-custom/components/page-header/index.js +2 -0
  138. package/es-custom/components/page-header/index.js.map +1 -1
  139. package/es-custom/components/page-header/page-header-scroller.d.ts +56 -0
  140. package/es-custom/components/page-header/page-header-scroller.js +165 -0
  141. package/es-custom/components/page-header/page-header-scroller.js.map +1 -0
  142. package/es-custom/components/page-header/page-header-tabs.js +1 -0
  143. package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
  144. package/es-custom/components/page-header/page-header-title-breadcrumb.d.ts +20 -0
  145. package/es-custom/components/page-header/page-header-title-breadcrumb.js +65 -0
  146. package/es-custom/components/page-header/page-header-title-breadcrumb.js.map +1 -0
  147. package/es-custom/components/page-header/page-header.d.ts +11 -1
  148. package/es-custom/components/page-header/page-header.js +54 -71
  149. package/es-custom/components/page-header/page-header.js.map +1 -1
  150. package/es-custom/components/page-header/page-header.scss.js +1 -1
  151. package/es-custom/components/page-header/page-header.test.js +136 -2
  152. package/es-custom/components/page-header/page-header.test.js.map +1 -1
  153. package/es-custom/components/page-header/utils.d.ts +32 -0
  154. package/es-custom/components/page-header/utils.js +76 -0
  155. package/es-custom/components/page-header/utils.js.map +1 -0
  156. package/es-custom/components/side-panel/side-panel.d.ts +4 -0
  157. package/es-custom/components/side-panel/side-panel.js +20 -5
  158. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  159. package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
  160. package/es-custom/components/truncated-text/truncated-text.d.ts +16 -11
  161. package/es-custom/components/truncated-text/truncated-text.js +65 -58
  162. package/es-custom/components/truncated-text/truncated-text.js.map +1 -1
  163. package/es-custom/components/truncated-text/truncated-text.scss.js +1 -1
  164. package/es-custom/components/truncated-text/truncated-text.test.js +6 -6
  165. package/es-custom/components/user-avatar/user-avatar.d.ts +8 -0
  166. package/es-custom/components/user-avatar/user-avatar.js +1 -0
  167. package/es-custom/components/user-avatar/user-avatar.js.map +1 -1
  168. package/es-custom/components/user-avatar/user-avatar.scss.js +1 -1
  169. package/es-custom/packages/ibm-products-web-components/package.json.js +1 -1
  170. package/es-custom/utilities/carousel/carousel.d.ts +8 -0
  171. package/es-custom/utilities/carousel/carousel.js +210 -0
  172. package/es-custom/utilities/carousel/carousel.js.map +1 -0
  173. package/es-custom/utilities/carousel/index.d.ts +8 -0
  174. package/es-custom/utilities/carousel/index.js +9 -0
  175. package/es-custom/utilities/carousel/index.js.map +1 -0
  176. package/es-custom/utilities/carousel/swipeEvents.d.ts +7 -0
  177. package/es-custom/utilities/carousel/swipeEvents.js +109 -0
  178. package/es-custom/utilities/carousel/swipeEvents.js.map +1 -0
  179. package/es-custom/utilities/carousel/types.d.ts +36 -0
  180. package/es-custom/utilities/carousel/types.js +8 -0
  181. package/es-custom/utilities/carousel/types.js.map +1 -0
  182. package/lib/components/interstitial-screen/index.d.ts +13 -0
  183. package/lib/components/interstitial-screen/interstitial-screen-body-item.d.ts +372 -0
  184. package/lib/components/interstitial-screen/interstitial-screen-body.d.ts +384 -0
  185. package/lib/components/interstitial-screen/interstitial-screen-context.d.ts +18 -0
  186. package/lib/components/interstitial-screen/interstitial-screen-footer.d.ts +409 -0
  187. package/lib/components/interstitial-screen/interstitial-screen-header.d.ts +394 -0
  188. package/lib/components/interstitial-screen/interstitial-screen.d.ts +420 -0
  189. package/lib/components/page-header/_story-assets/overflowHandler.d.ts +98 -0
  190. package/lib/components/page-header/_story-assets/set-of-breadcrumbs.d.ts +43 -0
  191. package/lib/components/page-header/context.d.ts +14 -0
  192. package/lib/components/page-header/index.d.ts +2 -0
  193. package/lib/components/page-header/page-header-scroller.d.ts +56 -0
  194. package/lib/components/page-header/page-header-title-breadcrumb.d.ts +20 -0
  195. package/lib/components/page-header/page-header.d.ts +11 -1
  196. package/lib/components/page-header/utils.d.ts +32 -0
  197. package/lib/components/side-panel/side-panel.d.ts +4 -0
  198. package/lib/components/truncated-text/truncated-text.d.ts +16 -11
  199. package/lib/components/user-avatar/user-avatar.d.ts +8 -0
  200. package/lib/utilities/carousel/carousel.d.ts +8 -0
  201. package/lib/utilities/carousel/index.d.ts +8 -0
  202. package/lib/utilities/carousel/swipeEvents.d.ts +7 -0
  203. package/lib/utilities/carousel/types.d.ts +36 -0
  204. package/package.json +7 -6
  205. package/scss/components/interstitial-screen/interstitial-screen-body-item.scss +18 -0
  206. package/scss/components/interstitial-screen/interstitial-screen-body.scss +30 -0
  207. package/scss/components/interstitial-screen/interstitial-screen-footer.scss +40 -0
  208. package/scss/components/interstitial-screen/interstitial-screen-header.scss +13 -0
  209. package/scss/components/interstitial-screen/interstitial-screen.scss +28 -0
  210. package/scss/components/interstitial-screen/story-styles.scss +27 -0
  211. package/scss/components/notification-panel/notification-panel.scss +0 -1
  212. package/scss/components/page-header/_story-assets/set-of-breadcrumbs.scss +41 -0
  213. package/scss/components/page-header/page-header.scss +85 -0
  214. package/scss/components/truncated-text/story-styles.scss +11 -10
  215. package/scss/components/truncated-text/truncated-text.scss +0 -15
  216. 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;;;;"}
@@ -12,3 +12,5 @@ import './page-header-content';
12
12
  import './page-header-content-text';
13
13
  import './page-header-hero-image';
14
14
  import './page-header-tabs';
15
+ import './page-header-title-breadcrumb';
16
+ import './page-header-scroller';
@@ -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/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/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-tooltip-content>
97
+ <slot name="tooltip-content"></slot>
98
+ </cds-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-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-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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"}
@@ -34,6 +34,7 @@ let CDSPageHeaderTabs = class CDSPageHeaderTabs extends LitElement {
34
34
  <slot name="tags"></slot>
35
35
  </div>
36
36
  </div>
37
+ <slot name="scroller"></slot>
37
38
  </div>`;
38
39
  }
39
40
  };
@@ -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;;;;;WAKjB;;;AAGF,iBAAM,CAAA,MAAA,GAAG,MAAH;AAdT,iBAAiB,GAAA,UAAA,CAAA;AADtB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB;AACrC,CAAA,EAAA,iBAAiB,CAetB;AAED,0BAAe,iBAAiB;;;;"}
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-breadcrumb-item class="${prefix}--page-header-title-breadcrumb">
50
+ <slot></slot>
51
+ </cds-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
- updated(): void;
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
- updated() {
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
- if (contentElement) {
88
- const resizeObserver = new ResizeObserver((entries) => {
89
- var _a, _b;
90
- const contentElEntry = entries[0];
91
- const contentHeight = contentElEntry.contentRect.height;
92
- const padding = parseFloat((_a = getComputedStyle(contentElement)) === null || _a === void 0 ? void 0 : _a.paddingBlockStart) +
93
- parseFloat((_b = getComputedStyle(contentElement)) === null || _b === void 0 ? void 0 : _b.paddingBlockEnd);
94
- const totalContentHeight = contentHeight + padding;
95
- const headerOffset = getHeaderOffset(this);
96
- this.style.setProperty(`--${prefix}-page-header-header-top`, `${(Math.round(totalContentHeight) - headerOffset) * -1}px`);
97
- this.style.setProperty(`--${prefix}-page-header-breadcrumb-top`, `${headerOffset}px`);
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
- resizeObserver.observe(contentElement);
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":"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"}
1
+ {"version":3,"file":"page-header.js","sources":["../../../src/components/page-header/page-header.ts"],"sourcesContent":[null],"names":["customElement"],"mappings":"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"}