@carbon/ibm-products-web-components 0.31.0 → 0.32.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.
Files changed (242) hide show
  1. package/custom-elements.json +414 -5
  2. package/es/components/about-modal/about-modal.scss.js +1 -1
  3. package/es/components/big-number/big-number-skeleton.d.ts +22 -0
  4. package/es/components/big-number/big-number-skeleton.js +56 -0
  5. package/es/components/big-number/big-number-skeleton.js.map +1 -0
  6. package/es/components/big-number/big-number-skeleton.scss.js +13 -0
  7. package/es/components/big-number/big-number-skeleton.scss.js.map +1 -0
  8. package/es/components/big-number/big-number.d.ts +37 -0
  9. package/es/components/big-number/big-number.js +184 -0
  10. package/es/components/big-number/big-number.js.map +1 -0
  11. package/es/components/big-number/big-number.scss.js +13 -0
  12. package/es/components/big-number/big-number.scss.js.map +1 -0
  13. package/es/{utilities/carousel/index.d.ts → components/big-number/big-number.test.d.ts} +1 -2
  14. package/es/components/big-number/big-number.test.js +113 -0
  15. package/es/components/big-number/big-number.test.js.map +1 -0
  16. package/es/components/big-number/constants.d.ts +19 -0
  17. package/es/components/big-number/constants.js +30 -0
  18. package/es/components/big-number/constants.js.map +1 -0
  19. package/es/components/big-number/index.d.ts +10 -0
  20. package/es/{node_modules/@carbon/utilities/es/dateTimeFormat → components/big-number}/index.js +2 -5
  21. package/es/components/big-number/index.js.map +1 -0
  22. package/es/components/checklist/checklist.scss.js +1 -1
  23. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +422 -0
  24. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.js +135 -0
  25. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.js.map +1 -0
  26. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.scss.js +13 -0
  27. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.scss.js.map +1 -0
  28. package/es/{utilities/carousel/types.js → components/coachmark/coachmark-tagline/coachmark-tagline.test.d.ts} +4 -3
  29. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.test.js +126 -0
  30. package/es/components/coachmark/coachmark-tagline/coachmark-tagline.test.js.map +1 -0
  31. package/es/components/coachmark/coachmark-tagline/index.d.ts +9 -0
  32. package/{es-custom/utilities/carousel → es/components/coachmark/coachmark-tagline}/index.js +1 -1
  33. package/es/components/coachmark/coachmark-tagline/index.js.map +1 -0
  34. package/es/components/guide-banner/guide-banner-element.d.ts +7 -0
  35. package/es/components/guide-banner/guide-banner-element.js +14 -0
  36. package/es/components/guide-banner/guide-banner-element.js.map +1 -1
  37. package/es/components/guide-banner/guide-banner-element.scss.js +13 -0
  38. package/es/components/guide-banner/guide-banner-element.scss.js.map +1 -0
  39. package/es/components/guide-banner/guide-banner-element.test.d.ts +7 -0
  40. package/es/components/guide-banner/guide-banner-element.test.js +58 -0
  41. package/es/components/guide-banner/guide-banner-element.test.js.map +1 -0
  42. package/es/components/guide-banner/guide-banner.d.ts +4 -4
  43. package/es/components/guide-banner/guide-banner.js +4 -4
  44. package/es/components/guide-banner/guide-banner.js.map +1 -1
  45. package/es/components/guide-banner/guide-banner.scss.js +1 -1
  46. package/es/components/guide-banner/guide-banner.test.d.ts +6 -0
  47. package/es/components/guide-banner/guide-banner.test.js +3 -3
  48. package/es/components/guide-banner/guide-banner.test.js.map +1 -1
  49. package/es/components/interstitial-screen/interstitial-screen-body-item.scss.js +1 -1
  50. package/es/components/interstitial-screen/interstitial-screen-body.d.ts +1 -0
  51. package/es/components/interstitial-screen/interstitial-screen-body.js +16 -4
  52. package/es/components/interstitial-screen/interstitial-screen-body.js.map +1 -1
  53. package/es/components/interstitial-screen/interstitial-screen-body.scss.js +1 -1
  54. package/es/components/interstitial-screen/interstitial-screen-context.d.ts +1 -0
  55. package/es/components/interstitial-screen/interstitial-screen-context.js +5 -0
  56. package/es/components/interstitial-screen/interstitial-screen-context.js.map +1 -1
  57. package/es/components/interstitial-screen/interstitial-screen.js +15 -0
  58. package/es/components/interstitial-screen/interstitial-screen.js.map +1 -1
  59. package/es/components/interstitial-screen/interstitial-screen.test.js +11 -0
  60. package/es/components/interstitial-screen/interstitial-screen.test.js.map +1 -1
  61. package/es/components/interstitial-screen/interstitial.figma.js +288 -0
  62. package/es/components/interstitial-screen/interstitial.figma.js.map +1 -0
  63. package/es/components/notification-panel/notification.js +2 -3
  64. package/es/components/notification-panel/notification.js.map +1 -1
  65. package/es/components/notification-panel/notification.test.js +2 -3
  66. package/es/components/notification-panel/notification.test.js.map +1 -1
  67. package/es/components/page-header/_story-assets/set-of-breadcrumbs.scss.js +1 -1
  68. package/es/components/page-header/_story-assets/set-of-tags/set-of-tags.js +2 -3
  69. package/es/components/page-header/_story-assets/set-of-tags/set-of-tags.js.map +1 -1
  70. package/es/components/page-header/_story-assets/set-of-tags/set-of-tags.scss.js +1 -1
  71. package/es/components/page-header/utils.js +17 -5
  72. package/es/components/page-header/utils.js.map +1 -1
  73. package/es/components/side-panel/side-panel.figma.js +229 -0
  74. package/es/components/side-panel/side-panel.figma.js.map +1 -0
  75. package/es/components/tearsheet/tearsheet.d.ts +33 -14
  76. package/es/components/tearsheet/tearsheet.js +65 -98
  77. package/es/components/tearsheet/tearsheet.js.map +1 -1
  78. package/es/components/tearsheet/tearsheet.scss.js +1 -1
  79. package/es/index.d.ts +4 -1
  80. package/es/index.js +3 -0
  81. package/es/index.js.map +1 -1
  82. package/es/packages/ibm-products-web-components/package.json.js +1 -1
  83. package/es/utilities/snapscroll/index.d.ts +7 -0
  84. package/es/utilities/snapscroll/index.js +9 -0
  85. package/es/utilities/snapscroll/index.js.map +1 -0
  86. package/es/utilities/snapscroll/snapscroll.d.ts +29 -0
  87. package/es/utilities/snapscroll/snapscroll.js +134 -0
  88. package/es/utilities/snapscroll/snapscroll.js.map +1 -0
  89. package/es/utilities/snapscroll/snapscroll.test.d.ts +1 -0
  90. package/es/utilities/snapscroll/snapscroll.test.js +41 -0
  91. package/es/utilities/snapscroll/snapscroll.test.js.map +1 -0
  92. package/es-custom/components/about-modal/about-modal.scss.js +1 -1
  93. package/es-custom/components/big-number/big-number-skeleton.d.ts +22 -0
  94. package/es-custom/components/big-number/big-number-skeleton.js +56 -0
  95. package/es-custom/components/big-number/big-number-skeleton.js.map +1 -0
  96. package/es-custom/components/big-number/big-number-skeleton.scss.js +13 -0
  97. package/es-custom/components/big-number/big-number-skeleton.scss.js.map +1 -0
  98. package/es-custom/components/big-number/big-number.d.ts +37 -0
  99. package/es-custom/components/big-number/big-number.js +184 -0
  100. package/es-custom/components/big-number/big-number.js.map +1 -0
  101. package/es-custom/components/big-number/big-number.scss.js +13 -0
  102. package/es-custom/components/big-number/big-number.scss.js.map +1 -0
  103. package/{lib/utilities/carousel/index.d.ts → es-custom/components/big-number/big-number.test.d.ts} +1 -2
  104. package/es-custom/components/big-number/big-number.test.js +113 -0
  105. package/es-custom/components/big-number/big-number.test.js.map +1 -0
  106. package/es-custom/components/big-number/constants.d.ts +19 -0
  107. package/es-custom/components/big-number/constants.js +30 -0
  108. package/es-custom/components/big-number/constants.js.map +1 -0
  109. package/es-custom/components/big-number/index.d.ts +10 -0
  110. package/es-custom/{node_modules/@carbon/utilities/es/dateTimeFormat → components/big-number}/index.js +2 -5
  111. package/es-custom/components/big-number/index.js.map +1 -0
  112. package/es-custom/components/checklist/checklist.scss.js +1 -1
  113. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +422 -0
  114. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.js +135 -0
  115. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.js.map +1 -0
  116. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.scss.js +13 -0
  117. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.scss.js.map +1 -0
  118. package/es-custom/{utilities/carousel/types.js → components/coachmark/coachmark-tagline/coachmark-tagline.test.d.ts} +4 -3
  119. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.test.js +126 -0
  120. package/es-custom/components/coachmark/coachmark-tagline/coachmark-tagline.test.js.map +1 -0
  121. package/es-custom/components/coachmark/coachmark-tagline/index.d.ts +9 -0
  122. package/{es/utilities/carousel → es-custom/components/coachmark/coachmark-tagline}/index.js +1 -1
  123. package/es-custom/components/guide-banner/guide-banner-element.d.ts +7 -0
  124. package/es-custom/components/guide-banner/guide-banner-element.js +14 -0
  125. package/es-custom/components/guide-banner/guide-banner-element.js.map +1 -1
  126. package/es-custom/components/guide-banner/guide-banner-element.scss.js +13 -0
  127. package/es-custom/components/guide-banner/guide-banner-element.scss.js.map +1 -0
  128. package/es-custom/{utilities/carousel/index.d.ts → components/guide-banner/guide-banner-element.test.d.ts} +1 -2
  129. package/es-custom/components/guide-banner/guide-banner-element.test.js +58 -0
  130. package/es-custom/components/guide-banner/guide-banner-element.test.js.map +1 -0
  131. package/es-custom/components/guide-banner/guide-banner.d.ts +4 -4
  132. package/es-custom/components/guide-banner/guide-banner.js +4 -4
  133. package/es-custom/components/guide-banner/guide-banner.js.map +1 -1
  134. package/es-custom/components/guide-banner/guide-banner.scss.js +1 -1
  135. package/es-custom/components/guide-banner/guide-banner.test.d.ts +6 -0
  136. package/es-custom/components/guide-banner/guide-banner.test.js +3 -3
  137. package/es-custom/components/guide-banner/guide-banner.test.js.map +1 -1
  138. package/es-custom/components/interstitial-screen/interstitial-screen-body-item.scss.js +1 -1
  139. package/es-custom/components/interstitial-screen/interstitial-screen-body.d.ts +1 -0
  140. package/es-custom/components/interstitial-screen/interstitial-screen-body.js +16 -4
  141. package/es-custom/components/interstitial-screen/interstitial-screen-body.js.map +1 -1
  142. package/es-custom/components/interstitial-screen/interstitial-screen-body.scss.js +1 -1
  143. package/es-custom/components/interstitial-screen/interstitial-screen-context.d.ts +1 -0
  144. package/es-custom/components/interstitial-screen/interstitial-screen-context.js +5 -0
  145. package/es-custom/components/interstitial-screen/interstitial-screen-context.js.map +1 -1
  146. package/es-custom/components/interstitial-screen/interstitial-screen.js +15 -0
  147. package/es-custom/components/interstitial-screen/interstitial-screen.js.map +1 -1
  148. package/es-custom/components/interstitial-screen/interstitial-screen.test.js +11 -0
  149. package/es-custom/components/interstitial-screen/interstitial-screen.test.js.map +1 -1
  150. package/es-custom/components/interstitial-screen/interstitial.figma.js +288 -0
  151. package/es-custom/components/interstitial-screen/interstitial.figma.js.map +1 -0
  152. package/es-custom/components/notification-panel/notification.js +2 -3
  153. package/es-custom/components/notification-panel/notification.js.map +1 -1
  154. package/es-custom/components/notification-panel/notification.test.js +2 -3
  155. package/es-custom/components/notification-panel/notification.test.js.map +1 -1
  156. package/es-custom/components/page-header/_story-assets/set-of-breadcrumbs.scss.js +1 -1
  157. package/es-custom/components/page-header/_story-assets/set-of-tags/set-of-tags.js +2 -3
  158. package/es-custom/components/page-header/_story-assets/set-of-tags/set-of-tags.js.map +1 -1
  159. package/es-custom/components/page-header/_story-assets/set-of-tags/set-of-tags.scss.js +1 -1
  160. package/es-custom/components/page-header/utils.js +17 -5
  161. package/es-custom/components/page-header/utils.js.map +1 -1
  162. package/es-custom/components/side-panel/side-panel.figma.js +229 -0
  163. package/es-custom/components/side-panel/side-panel.figma.js.map +1 -0
  164. package/es-custom/components/tearsheet/tearsheet.d.ts +33 -14
  165. package/es-custom/components/tearsheet/tearsheet.js +65 -98
  166. package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
  167. package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
  168. package/es-custom/index.d.ts +4 -1
  169. package/es-custom/index.js +3 -0
  170. package/es-custom/index.js.map +1 -1
  171. package/es-custom/packages/ibm-products-web-components/package.json.js +1 -1
  172. package/{es/utilities/carousel/swipeEvents.d.ts → es-custom/utilities/snapscroll/index.d.ts} +1 -1
  173. package/es-custom/utilities/snapscroll/index.js +9 -0
  174. package/es-custom/utilities/snapscroll/snapscroll.d.ts +29 -0
  175. package/es-custom/utilities/snapscroll/snapscroll.js +134 -0
  176. package/es-custom/utilities/snapscroll/snapscroll.js.map +1 -0
  177. package/es-custom/utilities/snapscroll/snapscroll.test.d.ts +1 -0
  178. package/es-custom/utilities/snapscroll/snapscroll.test.js +41 -0
  179. package/es-custom/utilities/snapscroll/snapscroll.test.js.map +1 -0
  180. package/lib/components/big-number/big-number-skeleton.d.ts +22 -0
  181. package/lib/components/big-number/big-number.d.ts +37 -0
  182. package/lib/components/big-number/big-number.test.d.ts +7 -0
  183. package/lib/components/big-number/constants.d.ts +19 -0
  184. package/lib/components/big-number/index.d.ts +10 -0
  185. package/lib/components/coachmark/coachmark-tagline/coachmark-tagline.d.ts +422 -0
  186. package/lib/components/coachmark/coachmark-tagline/coachmark-tagline.test.d.ts +9 -0
  187. package/lib/components/coachmark/coachmark-tagline/index.d.ts +9 -0
  188. package/lib/components/guide-banner/guide-banner-element.d.ts +7 -0
  189. package/lib/components/guide-banner/guide-banner-element.test.d.ts +7 -0
  190. package/lib/components/guide-banner/guide-banner.d.ts +4 -4
  191. package/lib/components/guide-banner/guide-banner.test.d.ts +6 -0
  192. package/lib/components/interstitial-screen/interstitial-screen-body.d.ts +1 -0
  193. package/lib/components/interstitial-screen/interstitial-screen-context.d.ts +1 -0
  194. package/lib/components/tearsheet/tearsheet.d.ts +33 -14
  195. package/lib/index.d.ts +4 -1
  196. package/lib/utilities/snapscroll/index.d.ts +7 -0
  197. package/lib/utilities/snapscroll/snapscroll.d.ts +29 -0
  198. package/lib/utilities/snapscroll/snapscroll.test.d.ts +1 -0
  199. package/package.json +6 -3
  200. package/scss/components/big-number/big-number-skeleton.scss +59 -0
  201. package/scss/components/big-number/big-number.scss +27 -0
  202. package/scss/components/coachmark/coachmark-tagline/coachmark-tagline.scss +22 -0
  203. package/scss/components/guide-banner/guide-banner-element.scss +31 -0
  204. package/scss/components/guide-banner/guide-banner.scss +2 -0
  205. package/scss/components/interstitial-screen/interstitial-screen-body-item.scss +1 -1
  206. package/scss/components/interstitial-screen/interstitial-screen-body.scss +1 -1
  207. package/scss/components/page-header/_story-assets/_storybook-styles.scss +6 -4
  208. package/telemetry.yml +12 -3
  209. package/es/node_modules/@carbon/utilities/es/dateTimeFormat/index.js.map +0 -1
  210. package/es/node_modules/@carbon/utilities/es/dateTimeFormat/relative.js +0 -11
  211. package/es/node_modules/@carbon/utilities/es/dateTimeFormat/relative.js.map +0 -1
  212. package/es/node_modules/@carbon/utilities/es/documentLang/documentLang.js +0 -9
  213. package/es/node_modules/@carbon/utilities/es/documentLang/documentLang.js.map +0 -1
  214. package/es/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js +0 -11
  215. package/es/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js.map +0 -1
  216. package/es/utilities/carousel/carousel.d.ts +0 -14
  217. package/es/utilities/carousel/carousel.js +0 -341
  218. package/es/utilities/carousel/carousel.js.map +0 -1
  219. package/es/utilities/carousel/swipeEvents.js +0 -109
  220. package/es/utilities/carousel/swipeEvents.js.map +0 -1
  221. package/es/utilities/carousel/types.d.ts +0 -37
  222. package/es/utilities/carousel/types.js.map +0 -1
  223. package/es-custom/node_modules/@carbon/utilities/es/dateTimeFormat/index.js.map +0 -1
  224. package/es-custom/node_modules/@carbon/utilities/es/dateTimeFormat/relative.js +0 -11
  225. package/es-custom/node_modules/@carbon/utilities/es/dateTimeFormat/relative.js.map +0 -1
  226. package/es-custom/node_modules/@carbon/utilities/es/documentLang/documentLang.js +0 -9
  227. package/es-custom/node_modules/@carbon/utilities/es/documentLang/documentLang.js.map +0 -1
  228. package/es-custom/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js +0 -11
  229. package/es-custom/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js.map +0 -1
  230. package/es-custom/utilities/carousel/carousel.d.ts +0 -14
  231. package/es-custom/utilities/carousel/carousel.js +0 -341
  232. package/es-custom/utilities/carousel/carousel.js.map +0 -1
  233. package/es-custom/utilities/carousel/swipeEvents.d.ts +0 -7
  234. package/es-custom/utilities/carousel/swipeEvents.js +0 -109
  235. package/es-custom/utilities/carousel/swipeEvents.js.map +0 -1
  236. package/es-custom/utilities/carousel/types.d.ts +0 -37
  237. package/es-custom/utilities/carousel/types.js.map +0 -1
  238. package/lib/utilities/carousel/carousel.d.ts +0 -14
  239. package/lib/utilities/carousel/swipeEvents.d.ts +0 -7
  240. package/lib/utilities/carousel/types.d.ts +0 -37
  241. /package/es-custom/{utilities/carousel → components/coachmark/coachmark-tagline}/index.js.map +0 -0
  242. /package/{es/utilities/carousel → es-custom/utilities/snapscroll}/index.js.map +0 -0
@@ -1,341 +0,0 @@
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 { registerSwipeEvents } from './swipeEvents.js';
9
-
10
- /**
11
- * Copyright IBM Corp. 2025
12
- *
13
- * This source code is licensed under the Apache-2.0 license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- */
16
- /**
17
- * Initializes a carousel with the given configuration.
18
- * @param carouselContainer - The HTMLElement representing the carousel container.
19
- * @param config - Optional configuration object.
20
- * @returns An object containing methods to control the carousel.
21
- */
22
- const initCarousel = (carouselContainer, config) => {
23
- const prefix = 'carousel';
24
- let viewIndexStack = [0];
25
- let previousViewIndexStack = [0];
26
- const refs = {};
27
- const minHeight = 10; // 10 rem
28
- const { onViewChangeStart, onViewChangeEnd, excludeSwipeSupport } = config || {};
29
- /**
30
- * Registers an HTMLElement at a specific index in the refs array.
31
- *
32
- * @param {number} index - The index at which to register the HTMLElement.
33
- * @param {HTMLElement} ref - The HTMLElement to register.
34
- *
35
- * @example
36
- * registerRef(0, document.getElementById('myElement'));
37
- */
38
- const registerRef = (index, ref) => {
39
- refs[index] = ref;
40
- };
41
- /**
42
- * Wraps all child elements of a given container into a new div with the specified class.
43
- * If an element with the specified class already exists as a child of the container, the function does nothing.
44
- *
45
- * @param {HTMLElement} container - The container element to wrap child elements of.
46
- * @param {string} wrapperClass - The class name to apply to the new wrapper div.
47
- * @returns {void}
48
- */
49
- const wrapAllItems = (container, wrapperClass) => {
50
- if (container.querySelector(`.${wrapperClass}`)) {
51
- return;
52
- }
53
- const wrapper = document.createElement('div');
54
- wrapper.classList.add(`${wrapperClass}`);
55
- while (container.firstChild) {
56
- wrapper.appendChild(container.firstChild);
57
- }
58
- container.appendChild(wrapper);
59
- };
60
- const getHistory = () => {
61
- return viewIndexStack.map((id) => ({
62
- id,
63
- elem: refs[id],
64
- }));
65
- };
66
- /**
67
- * Retrieves the current carousel response based on the view index stack and reference objects.
68
- * @returns {CarouselResponse} - An object containing carousel response details.
69
- */
70
- const getCallbackResponse = () => {
71
- const totalRefs = Object.keys(refs).length;
72
- const lastElementRef = refs[totalRefs - 1];
73
- const historicalData = getHistory();
74
- return {
75
- currentIndex: viewIndexStack[0],
76
- lastIndex: parseInt((lastElementRef === null || lastElementRef === void 0 ? void 0 : lastElementRef.dataset.index) || viewIndexStack[0].toString(), 10),
77
- totalViews: totalRefs,
78
- historyStack: historicalData,
79
- };
80
- };
81
- /**
82
- * Handles the start of a transition in the application.
83
- * This function is responsible for capturing the current state of the view index stack
84
- * and invoking a callback function if it exists.
85
- *
86
- * @function handleTransitionStart
87
- * @returns {void}
88
- */
89
- const handleTransitionStart = () => {
90
- previousViewIndexStack = [...viewIndexStack];
91
- const callbackData = getCallbackResponse();
92
- onViewChangeStart === null || onViewChangeStart === void 0 ? void 0 : onViewChangeStart(callbackData);
93
- };
94
- /**
95
- * Handles the 'transitionend' event for a given element.
96
- * This function checks if the element has a 'data-index' attribute and if its value matches the current view index.
97
- * If both conditions are met, it calls the 'onViewChangeEnd' callback with the response from 'getCallbackResponse'.
98
- *
99
- * @param {HTMLElement | null} el - The element to handle the 'transitionend' event for.
100
- * @returns {void}
101
- */
102
- const handleTransitionEnd = (el) => {
103
- if (!el) {
104
- return;
105
- }
106
- const tmpElementIndex = el.dataset.index;
107
- if (tmpElementIndex &&
108
- viewIndexStack[0] === parseInt(tmpElementIndex, 10)) {
109
- const callbackData = getCallbackResponse();
110
- onViewChangeEnd === null || onViewChangeEnd === void 0 ? void 0 : onViewChangeEnd(callbackData);
111
- }
112
- };
113
- /**
114
- * A utility function to sanitize an index value.
115
- * This function ensures the index stays within the bounds of the refs array.
116
- *
117
- * @param {number} idx - The index to be sanitized.
118
- * @returns {number} - The sanitized index.
119
- */
120
- const sanitizeIndex = (idx) => {
121
- const floorVal = 0;
122
- const ceilVal = Object.keys(refs).length - 1;
123
- return Math.max(floorVal, Math.min(idx, ceilVal));
124
- };
125
- /**
126
- * Handles the 'transitionend' event for a given element.
127
- * This function checks if the element has a 'data-index' attribute and if its value matches the current view index.
128
- * If both conditions are met, it calls the 'onViewChangeEnd' callback with the response from 'getCallbackResponse'.
129
- * @returns {void}
130
- */
131
- const transitionToViewIndex = (idx) => {
132
- const sanitizedIndex = sanitizeIndex(idx);
133
- if (viewIndexStack[0] !== sanitizedIndex) {
134
- handleTransitionStart();
135
- viewIndexStack = [sanitizedIndex, ...viewIndexStack];
136
- performAnimation(false);
137
- }
138
- };
139
- const transitionComplete = (ref) => {
140
- handleTransitionEnd(ref);
141
- };
142
- /**
143
- * Attaches class names to an HTMLElement based on given conditions.
144
- *
145
- * @param {HTMLElement} viewItem - The HTML element to which class names will be added.
146
- * @param {boolean} isInViewStack - Indicates if the view item is in the view stack.
147
- * @param {boolean} isActive - Indicates if the view item is active.
148
- * @param {boolean} isBeingRecycledOut - Indicates if the view item is being recycled out.
149
- * @param {boolean} isBeingRecycledIn - Indicates if the view item is being recycled in.
150
- * @returns {void}
151
- */
152
- const attachClassNames = (viewItem, isInViewStack, isActive, isBeingRecycledOut, isBeingRecycledIn) => {
153
- viewItem.classList.add(`${prefix}__view`);
154
- viewItem.classList.toggle(`${prefix}__view-in-stack`, isInViewStack && !isActive);
155
- viewItem.classList.toggle(`${prefix}__view-active`, isInViewStack && isActive);
156
- if (isBeingRecycledIn && !isBeingRecycledOut) {
157
- viewItem.classList.add(`${prefix}__view-recycle-in`);
158
- }
159
- if (!isBeingRecycledIn && isBeingRecycledOut) {
160
- viewItem.classList.add(`${prefix}__view-recycle-out`);
161
- }
162
- };
163
- const removeReCycleClasses = (viewItem) => {
164
- viewItem.classList.remove(`${prefix}__view-recycle-in`, `${prefix}__view-recycle-out`);
165
- };
166
- const remToPx = (rem) => {
167
- return (rem * parseFloat(getComputedStyle(document.documentElement).fontSize));
168
- };
169
- /**
170
- * Updates the height of the items wrapper in a carousel based on the smallest item height and a threshold height.
171
- * This function ensures that the items wrapper does not have a height smaller than the threshold, adjusting the item height if necessary.
172
- *
173
- * @param {number} itemHeightSmallest - The smallest height of an item in pixels.
174
- */
175
- const updateHeightForWrapper = (itemHeightSmallest) => {
176
- const thresholdHeight = remToPx(minHeight);
177
- const containerHeight = carouselContainer.clientHeight;
178
- if (containerHeight < thresholdHeight) {
179
- if (itemHeightSmallest < thresholdHeight) {
180
- itemHeightSmallest = thresholdHeight;
181
- }
182
- const itemsWrapper = carouselContainer.querySelector(`.${prefix}__itemsWrapper`);
183
- if (itemsWrapper) {
184
- itemsWrapper.style.blockSize = `${itemHeightSmallest}px`;
185
- }
186
- }
187
- };
188
- /**
189
- * Performs animation on view items based on their state in the view index stack.
190
- * @param {boolean} isInitial - A flag indicating if this is the initial animation.
191
- */
192
- const performAnimation = (isInitial) => {
193
- let itemHeightSmallest = 0;
194
- Array.from(viewItems).forEach((viewItem, index) => {
195
- const stackIndex = viewIndexStack.findIndex((idx) => idx === index);
196
- const stackIndexInstanceCount = previousViewIndexStack.filter((viIdx) => viIdx === index).length;
197
- const isBeingRecycledOut = previousViewIndexStack.length > viewIndexStack.length &&
198
- previousViewIndexStack[0] === index &&
199
- stackIndexInstanceCount > 0;
200
- const isBeingRecycledIn = previousViewIndexStack.length < viewIndexStack.length &&
201
- viewIndexStack[0] === index &&
202
- stackIndexInstanceCount > 0;
203
- const isInViewStack = stackIndex > -1;
204
- const isActive = index === viewIndexStack[0];
205
- attachClassNames(viewItem, isInViewStack, isActive, isBeingRecycledOut, isBeingRecycledIn);
206
- if (isInitial) {
207
- registerRef(index, viewItem);
208
- setTimeout(() => {
209
- if (!itemHeightSmallest ||
210
- (viewItem.offsetHeight < itemHeightSmallest &&
211
- itemHeightSmallest > remToPx(minHeight))) {
212
- itemHeightSmallest = viewItem.offsetHeight;
213
- }
214
- viewItem.style.position = 'absolute';
215
- updateHeightForWrapper(itemHeightSmallest);
216
- });
217
- const listener = (e) => {
218
- removeReCycleClasses(viewItem);
219
- if (e.target === refs[viewIndexStack[0]]) {
220
- //transitionend will trigger twice for pervious card and current card
221
- transitionComplete(viewItem);
222
- }
223
- };
224
- // store reference on the element for later removal
225
- viewItem._carouselListener = listener;
226
- viewItem.addEventListener('animationend', listener);
227
- viewItem.addEventListener('transitionend', listener);
228
- viewItem.setAttribute('data-index', index.toString());
229
- }
230
- });
231
- if (isInitial) {
232
- handleTransitionEnd(Array.from(viewItems)[0]);
233
- }
234
- };
235
- /**
236
- * A utility function to navigate to the next view in the stack.
237
- * This function increments the current view index and transitions to the new index.
238
- *
239
- * @returns {void} - This function does not return any value.
240
- */
241
- const navigateNext = () => {
242
- const targetViewIndex = viewIndexStack[0] + 1;
243
- transitionToViewIndex(targetViewIndex);
244
- };
245
- /**
246
- * Navigates to the previous view in the view stack.
247
- * @function navigatePrev
248
- * @description This function checks if there is a previous view in the stack. If so, it triggers a transition start, removes the current view from the stack, and performs an animation to transition to the previous view.
249
- * @returns {void} - This function does not return a value.
250
- */
251
- const navigatePrev = () => {
252
- if (viewIndexStack.length - 1 >= 1) {
253
- handleTransitionStart();
254
- viewIndexStack = viewIndexStack.slice(1);
255
- performAnimation(false);
256
- }
257
- };
258
- /**
259
- * A function that transitions the view to a specified index.
260
- *
261
- * @param {number} index - The index to transition to.
262
- * @returns {void} - This function does not return a value.
263
- */
264
- const goToIndex = (index) => {
265
- transitionToViewIndex(index);
266
- };
267
- /**
268
- * Retrieves the currently active item and its index from the view index stack and references.
269
- * @returns An object containing the index and the corresponding item reference.
270
- */
271
- const getActiveItem = () => {
272
- return {
273
- index: viewIndexStack[0],
274
- item: refs[viewIndexStack[0]],
275
- };
276
- };
277
- /**
278
- * Resets the view index stack and performs an animation.
279
- *
280
- * @returns {void}
281
- */
282
- const reset = () => {
283
- viewIndexStack = [0];
284
- performAnimation(false);
285
- };
286
- /**
287
- * Removes event listeners for 'animationend' and 'transitionend' events from all elements with references stored in the `refs` object.
288
- * Also registers swipe events if `excludeSwipeSupport` is false.
289
- */
290
- const destroyEvents = () => {
291
- Object.values(refs).forEach((el) => {
292
- if (el && el._carouselListener) {
293
- el.removeEventListener('animationend', el._carouselListener);
294
- el.removeEventListener('transitionend', el._carouselListener);
295
- }
296
- });
297
- if (!excludeSwipeSupport) {
298
- registerSwipeEvents(carouselContainer, navigateNext, navigatePrev, true);
299
- }
300
- };
301
- /**
302
- * Retrieves carousel items from a given container element.
303
- * If the container has a 'slot' element, it fetches all elements assigned to that slot.
304
- * Otherwise, it fetches all direct children of the container.
305
- *
306
- * @param {HTMLElement} container - The container element from which to extract carousel items.
307
- * @returns {HTMLElement[]} An array of HTMLElements representing the carousel items.
308
- *
309
- * @example
310
- * const carouselContainer = document.querySelector('.carousel-container');
311
- * const carouselItems = getCarouselItems(carouselContainer);
312
- * console.log(carouselItems); // Logs the carousel items as HTMLElements
313
- */
314
- const getCarouselItems = (container) => {
315
- const slot = container.querySelector('slot');
316
- return slot
317
- ? slot.assignedElements({ flatten: true })
318
- : Array.from(container.children);
319
- };
320
- // initialize
321
- wrapAllItems(carouselContainer, `${prefix}__itemsWrapper`);
322
- const wrapper = carouselContainer.querySelector(`.${prefix}__itemsWrapper`);
323
- const viewItems = getCarouselItems(wrapper);
324
- carouselContainer.classList.add(`${prefix}__view-stack`);
325
- performAnimation(true);
326
- if (!excludeSwipeSupport) {
327
- registerSwipeEvents(carouselContainer, navigateNext, navigatePrev, false);
328
- }
329
- return {
330
- next: navigateNext,
331
- prev: navigatePrev,
332
- reset,
333
- goToIndex,
334
- getActiveItem,
335
- destroyEvents,
336
- allViews: refs,
337
- };
338
- };
339
-
340
- export { initCarousel };
341
- //# sourceMappingURL=carousel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carousel.js","sources":["../../../src/utilities/carousel/carousel.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
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
- export declare const registerSwipeEvents: (carousel: HTMLElement, next: () => void, prev: () => void, destroy: boolean) => void;
@@ -1,109 +0,0 @@
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
- /**
9
- * Copyright IBM Corp. 2025
10
- *
11
- * This source code is licensed under the Apache-2.0 license found in the
12
- * LICENSE file in the root directory of this source tree.
13
- */
14
- const registerSwipeEvents = (carousel, next, prev, destroy) => {
15
- const minSwipeDistance = 50;
16
- // Touch support
17
- let touchStartX = null;
18
- let touchEndX = null;
19
- let lastScrollTime = 0;
20
- const scrollCoolDown = 400;
21
- let isMouseDown = false;
22
- let mouseStartX = null;
23
- let mouseEndX = null;
24
- //handlers
25
- const touchStartHandler = (e) => {
26
- touchStartX = e.touches[0].clientX;
27
- };
28
- const touchMoveHandler = (e) => {
29
- touchEndX = e.touches[0].clientX;
30
- };
31
- const touchEndHandler = () => {
32
- if (touchStartX !== null && touchEndX !== null) {
33
- const distance = touchStartX - touchEndX;
34
- if (Math.abs(distance) > minSwipeDistance) {
35
- if (distance > 0) {
36
- next();
37
- }
38
- else {
39
- prev();
40
- }
41
- }
42
- }
43
- touchStartX = null;
44
- touchEndX = null;
45
- };
46
- const mouseDownHandler = (e) => {
47
- isMouseDown = true;
48
- mouseStartX = e.clientX;
49
- };
50
- const mouseMoveHandler = (e) => {
51
- if (!isMouseDown) {
52
- return;
53
- }
54
- mouseEndX = e.clientX;
55
- };
56
- const mouseUpHandler = () => {
57
- if (isMouseDown && mouseStartX !== null && mouseEndX !== null) {
58
- const distance = mouseStartX - mouseEndX;
59
- if (Math.abs(distance) > minSwipeDistance) {
60
- if (distance > 0) {
61
- next();
62
- }
63
- else {
64
- prev();
65
- }
66
- }
67
- }
68
- isMouseDown = false;
69
- mouseStartX = null;
70
- mouseEndX = null;
71
- };
72
- const wheelHandler = (e) => {
73
- const now = Date.now();
74
- if (Math.abs(e.deltaX) > Math.abs(e.deltaY) && Math.abs(e.deltaX) > 20) {
75
- e.preventDefault(); // Prevent page from scrolling
76
- if (now - lastScrollTime < scrollCoolDown) {
77
- return;
78
- }
79
- if (e.deltaX > 0) {
80
- next();
81
- }
82
- else {
83
- prev();
84
- }
85
- lastScrollTime = now;
86
- }
87
- };
88
- if (destroy) {
89
- carousel.removeEventListener('touchstart', touchStartHandler);
90
- carousel.removeEventListener('touchmove', touchMoveHandler);
91
- carousel.removeEventListener('touchend', touchEndHandler);
92
- carousel.removeEventListener('mousedown', mouseDownHandler);
93
- carousel.removeEventListener('mousemove', mouseMoveHandler);
94
- carousel.removeEventListener('mouseup', mouseUpHandler);
95
- carousel.removeEventListener('wheel', wheelHandler);
96
- }
97
- carousel.addEventListener('touchstart', touchStartHandler);
98
- carousel.addEventListener('touchmove', touchMoveHandler);
99
- carousel.addEventListener('touchend', touchEndHandler);
100
- // Mouse drag support
101
- carousel.addEventListener('mousedown', mouseDownHandler);
102
- carousel.addEventListener('mousemove', mouseMoveHandler);
103
- carousel.addEventListener('mouseup', mouseUpHandler);
104
- // Wheel gesture support
105
- carousel.addEventListener('wheel', wheelHandler);
106
- };
107
-
108
- export { registerSwipeEvents };
109
- //# sourceMappingURL=swipeEvents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swipeEvents.js","sources":["../../../src/utilities/carousel/swipeEvents.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- /**
2
- * @license
3
- *
4
- * Copyright IBM Corp. 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
- interface CarouselStackHistory {
10
- id: number;
11
- elem: HTMLLIElement;
12
- }
13
- type CarouselResponse = {
14
- currentIndex: number;
15
- lastIndex: number;
16
- totalViews: number;
17
- historyStack: CarouselStackHistory[];
18
- };
19
- type ActiveItem = {
20
- index: number;
21
- item: HTMLElement | null;
22
- };
23
- export type Config = {
24
- onViewChangeStart?: (args: CarouselResponse) => void;
25
- onViewChangeEnd?: (args: CarouselResponse) => void;
26
- excludeSwipeSupport?: boolean;
27
- };
28
- interface InitCarousel {
29
- next: () => void;
30
- prev: () => void;
31
- reset: () => void;
32
- goToIndex: (index: number) => void;
33
- getActiveItem: () => ActiveItem;
34
- destroyEvents: (() => void) | null;
35
- allViews: Record<number, HTMLElement | null>;
36
- }
37
- export type { CarouselStackHistory, CarouselResponse, InitCarousel };
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
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
- import { InitCarousel, Config } from './types';
8
- /**
9
- * Initializes a carousel with the given configuration.
10
- * @param carouselContainer - The HTMLElement representing the carousel container.
11
- * @param config - Optional configuration object.
12
- * @returns An object containing methods to control the carousel.
13
- */
14
- export declare const initCarousel: (carouselContainer: HTMLElement, config?: Config) => InitCarousel;
@@ -1,7 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2025
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
- export declare const registerSwipeEvents: (carousel: HTMLElement, next: () => void, prev: () => void, destroy: boolean) => void;
@@ -1,37 +0,0 @@
1
- /**
2
- * @license
3
- *
4
- * Copyright IBM Corp. 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
- interface CarouselStackHistory {
10
- id: number;
11
- elem: HTMLLIElement;
12
- }
13
- type CarouselResponse = {
14
- currentIndex: number;
15
- lastIndex: number;
16
- totalViews: number;
17
- historyStack: CarouselStackHistory[];
18
- };
19
- type ActiveItem = {
20
- index: number;
21
- item: HTMLElement | null;
22
- };
23
- export type Config = {
24
- onViewChangeStart?: (args: CarouselResponse) => void;
25
- onViewChangeEnd?: (args: CarouselResponse) => void;
26
- excludeSwipeSupport?: boolean;
27
- };
28
- interface InitCarousel {
29
- next: () => void;
30
- prev: () => void;
31
- reset: () => void;
32
- goToIndex: (index: number) => void;
33
- getActiveItem: () => ActiveItem;
34
- destroyEvents: (() => void) | null;
35
- allViews: Record<number, HTMLElement | null>;
36
- }
37
- export type { CarouselStackHistory, CarouselResponse, InitCarousel };