@elliemae/ds-tabs 3.60.0-next.1 → 3.60.0-next.11

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 (38) hide show
  1. package/dist/cjs/parts/carousel/Carousel.js +14 -49
  2. package/dist/cjs/parts/carousel/Carousel.js.map +2 -2
  3. package/dist/cjs/parts/carousel/styles.js +1 -1
  4. package/dist/cjs/parts/carousel/styles.js.map +1 -1
  5. package/dist/cjs/parts/carousel/useCarousel.js +28 -43
  6. package/dist/cjs/parts/carousel/useCarousel.js.map +3 -3
  7. package/dist/cjs/parts/tabBar/TabBar.js +3 -1
  8. package/dist/cjs/parts/tabBar/TabBar.js.map +2 -2
  9. package/dist/cjs/parts/tabBar/TabBarItemRenderer.js +20 -3
  10. package/dist/cjs/parts/tabBar/TabBarItemRenderer.js.map +2 -2
  11. package/dist/cjs/parts/tabsContent/TabsContent.js +13 -5
  12. package/dist/cjs/parts/tabsContent/TabsContent.js.map +2 -2
  13. package/dist/cjs/parts/tabsPanel/TabsPanels.js +15 -1
  14. package/dist/cjs/parts/tabsPanel/TabsPanels.js.map +2 -2
  15. package/dist/cjs/parts/tabsPanel/styles.js.map +2 -2
  16. package/dist/esm/parts/carousel/Carousel.js +16 -57
  17. package/dist/esm/parts/carousel/Carousel.js.map +2 -2
  18. package/dist/esm/parts/carousel/styles.js +1 -1
  19. package/dist/esm/parts/carousel/styles.js.map +1 -1
  20. package/dist/esm/parts/carousel/useCarousel.js +29 -44
  21. package/dist/esm/parts/carousel/useCarousel.js.map +2 -2
  22. package/dist/esm/parts/tabBar/TabBar.js +3 -1
  23. package/dist/esm/parts/tabBar/TabBar.js.map +2 -2
  24. package/dist/esm/parts/tabBar/TabBarItemRenderer.js +20 -3
  25. package/dist/esm/parts/tabBar/TabBarItemRenderer.js.map +2 -2
  26. package/dist/esm/parts/tabsContent/TabsContent.js +13 -5
  27. package/dist/esm/parts/tabsContent/TabsContent.js.map +2 -2
  28. package/dist/esm/parts/tabsPanel/TabsPanels.js +15 -1
  29. package/dist/esm/parts/tabsPanel/TabsPanels.js.map +2 -2
  30. package/dist/esm/parts/tabsPanel/styles.js.map +2 -2
  31. package/dist/types/parts/carousel/useCarousel.d.ts +0 -5
  32. package/dist/types/parts/tabsPanel/styles.d.ts +3 -2
  33. package/package.json +11 -11
  34. package/dist/cjs/parts/carousel/useCarouselCallbacks.js +0 -89
  35. package/dist/cjs/parts/carousel/useCarouselCallbacks.js.map +0 -7
  36. package/dist/esm/parts/carousel/useCarouselCallbacks.js +0 -59
  37. package/dist/esm/parts/carousel/useCarouselCallbacks.js.map +0 -7
  38. package/dist/types/parts/carousel/useCarouselCallbacks.d.ts +0 -12
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/parts/carousel/useCarouselCallbacks.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-statements */\nimport { useCallback, useContext, useMemo } from 'react';\nimport { debounce } from 'lodash-es';\nimport type { MouseEvent } from 'react';\nimport { isElementVisibleCarousel } from '../../utils/helpers.js';\nimport { DSTabsContext } from '../../DSTabsCTX.js';\n\ninterface UseCarouselCallbacksPropsT {\n getVisibleItemsOffset: () => number;\n recalcChevrons: () => void;\n}\ninterface UseCarouselCallbacksReturnTypeT {\n leftButtonOnClick: () => void;\n rightButtonOnClick: () => void;\n handleOnClick: (e: React.MouseEvent) => void;\n handleOnScroll: (e: React.UIEvent) => void;\n}\n\nexport const useCarouselCallbacks = ({\n getVisibleItemsOffset,\n recalcChevrons,\n}: UseCarouselCallbacksPropsT): UseCarouselCallbacksReturnTypeT => {\n const { focusableTabsRef, carouselOnlyListRef } = useContext(DSTabsContext);\n\n const rightButtonOnClick = useCallback(() => {\n if (carouselOnlyListRef.current) {\n carouselOnlyListRef.current.scrollLeft += getVisibleItemsOffset();\n }\n }, [getVisibleItemsOffset, carouselOnlyListRef]);\n\n const leftButtonOnClick = useCallback(() => {\n if (carouselOnlyListRef.current) {\n carouselOnlyListRef.current.scrollLeft -= getVisibleItemsOffset();\n }\n }, [getVisibleItemsOffset, carouselOnlyListRef]);\n\n /** [PUI-15772] - Tabs Pre Refactor\n * Scroll handler for carousel. It:\n * 1. Recalculates chevron visibility\n * 2. Updates indicator style\n * 3. May cause rerenders on every scroll event\n */\n const handleOnScroll = useMemo(() => debounce(recalcChevrons, 200), [recalcChevrons]);\n\n /** [PUI-15772] - Tabs Pre Refactor\n * Click handler for carousel tabs. It:\n * 1. Checks if clicked element is a tab\n * 2. Calculates scroll position to center the tab\n * 3. Updates scroll position with magic number adjustments\n * 4. May cause rerenders due to scroll position updates\n */\n const handleOnClick = useCallback(\n ({ target }: MouseEvent) => {\n if (focusableTabsRef.current && (target as HTMLButtonElement).getAttribute('role') === 'tab') {\n const tabList = carouselOnlyListRef.current;\n const tabButton = target as HTMLButtonElement;\n const tabButtonDimensions = tabButton.getBoundingClientRect();\n const tabListDimensions = tabList?.getBoundingClientRect();\n const tabButtonIndex = tabButton.dataset.index as string;\n const lastItemIndex = focusableTabsRef.current.length.toString();\n const magicNumber = 34;\n\n const firstOrLastItem = tabButtonIndex === '0' || tabButtonIndex === lastItemIndex;\n\n if (\n !isElementVisibleCarousel(tabButton, tabList, firstOrLastItem) &&\n tabListDimensions &&\n carouselOnlyListRef.current\n ) {\n const containerWidth = tabListDimensions.width;\n const halfContainer = containerWidth / 2;\n const elementScrollPosition = tabButtonDimensions.left - tabListDimensions.left;\n const positionInContainer = elementScrollPosition % containerWidth;\n const width = tabButton.offsetWidth + magicNumber;\n\n if (positionInContainer > halfContainer) {\n carouselOnlyListRef.current.scrollLeft += width + positionInContainer - containerWidth;\n } else {\n carouselOnlyListRef.current.scrollLeft += positionInContainer - magicNumber;\n }\n }\n }\n },\n [focusableTabsRef, carouselOnlyListRef],\n );\n\n return {\n handleOnClick,\n rightButtonOnClick,\n leftButtonOnClick,\n handleOnScroll,\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAiD;AACjD,uBAAyB;AAEzB,qBAAyC;AACzC,uBAA8B;AAavB,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AACF,MAAmE;AACjE,QAAM,EAAE,kBAAkB,oBAAoB,QAAI,yBAAW,8BAAa;AAE1E,QAAM,yBAAqB,0BAAY,MAAM;AAC3C,QAAI,oBAAoB,SAAS;AAC/B,0BAAoB,QAAQ,cAAc,sBAAsB;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,uBAAuB,mBAAmB,CAAC;AAE/C,QAAM,wBAAoB,0BAAY,MAAM;AAC1C,QAAI,oBAAoB,SAAS;AAC/B,0BAAoB,QAAQ,cAAc,sBAAsB;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,uBAAuB,mBAAmB,CAAC;AAQ/C,QAAM,qBAAiB,sBAAQ,UAAM,2BAAS,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC;AASpF,QAAM,oBAAgB;AAAA,IACpB,CAAC,EAAE,OAAO,MAAkB;AAC1B,UAAI,iBAAiB,WAAY,OAA6B,aAAa,MAAM,MAAM,OAAO;AAC5F,cAAM,UAAU,oBAAoB;AACpC,cAAM,YAAY;AAClB,cAAM,sBAAsB,UAAU,sBAAsB;AAC5D,cAAM,oBAAoB,SAAS,sBAAsB;AACzD,cAAM,iBAAiB,UAAU,QAAQ;AACzC,cAAM,gBAAgB,iBAAiB,QAAQ,OAAO,SAAS;AAC/D,cAAM,cAAc;AAEpB,cAAM,kBAAkB,mBAAmB,OAAO,mBAAmB;AAErE,YACE,KAAC,yCAAyB,WAAW,SAAS,eAAe,KAC7D,qBACA,oBAAoB,SACpB;AACA,gBAAM,iBAAiB,kBAAkB;AACzC,gBAAM,gBAAgB,iBAAiB;AACvC,gBAAM,wBAAwB,oBAAoB,OAAO,kBAAkB;AAC3E,gBAAM,sBAAsB,wBAAwB;AACpD,gBAAM,QAAQ,UAAU,cAAc;AAEtC,cAAI,sBAAsB,eAAe;AACvC,gCAAoB,QAAQ,cAAc,QAAQ,sBAAsB;AAAA,UAC1E,OAAO;AACL,gCAAoB,QAAQ,cAAc,sBAAsB;AAAA,UAClE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,mBAAmB;AAAA,EACxC;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,59 +0,0 @@
1
- import * as React from "react";
2
- import { useCallback, useContext, useMemo } from "react";
3
- import { debounce } from "lodash-es";
4
- import { isElementVisibleCarousel } from "../../utils/helpers.js";
5
- import { DSTabsContext } from "../../DSTabsCTX.js";
6
- const useCarouselCallbacks = ({
7
- getVisibleItemsOffset,
8
- recalcChevrons
9
- }) => {
10
- const { focusableTabsRef, carouselOnlyListRef } = useContext(DSTabsContext);
11
- const rightButtonOnClick = useCallback(() => {
12
- if (carouselOnlyListRef.current) {
13
- carouselOnlyListRef.current.scrollLeft += getVisibleItemsOffset();
14
- }
15
- }, [getVisibleItemsOffset, carouselOnlyListRef]);
16
- const leftButtonOnClick = useCallback(() => {
17
- if (carouselOnlyListRef.current) {
18
- carouselOnlyListRef.current.scrollLeft -= getVisibleItemsOffset();
19
- }
20
- }, [getVisibleItemsOffset, carouselOnlyListRef]);
21
- const handleOnScroll = useMemo(() => debounce(recalcChevrons, 200), [recalcChevrons]);
22
- const handleOnClick = useCallback(
23
- ({ target }) => {
24
- if (focusableTabsRef.current && target.getAttribute("role") === "tab") {
25
- const tabList = carouselOnlyListRef.current;
26
- const tabButton = target;
27
- const tabButtonDimensions = tabButton.getBoundingClientRect();
28
- const tabListDimensions = tabList?.getBoundingClientRect();
29
- const tabButtonIndex = tabButton.dataset.index;
30
- const lastItemIndex = focusableTabsRef.current.length.toString();
31
- const magicNumber = 34;
32
- const firstOrLastItem = tabButtonIndex === "0" || tabButtonIndex === lastItemIndex;
33
- if (!isElementVisibleCarousel(tabButton, tabList, firstOrLastItem) && tabListDimensions && carouselOnlyListRef.current) {
34
- const containerWidth = tabListDimensions.width;
35
- const halfContainer = containerWidth / 2;
36
- const elementScrollPosition = tabButtonDimensions.left - tabListDimensions.left;
37
- const positionInContainer = elementScrollPosition % containerWidth;
38
- const width = tabButton.offsetWidth + magicNumber;
39
- if (positionInContainer > halfContainer) {
40
- carouselOnlyListRef.current.scrollLeft += width + positionInContainer - containerWidth;
41
- } else {
42
- carouselOnlyListRef.current.scrollLeft += positionInContainer - magicNumber;
43
- }
44
- }
45
- }
46
- },
47
- [focusableTabsRef, carouselOnlyListRef]
48
- );
49
- return {
50
- handleOnClick,
51
- rightButtonOnClick,
52
- leftButtonOnClick,
53
- handleOnScroll
54
- };
55
- };
56
- export {
57
- useCarouselCallbacks
58
- };
59
- //# sourceMappingURL=useCarouselCallbacks.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/carousel/useCarouselCallbacks.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\nimport { useCallback, useContext, useMemo } from 'react';\nimport { debounce } from 'lodash-es';\nimport type { MouseEvent } from 'react';\nimport { isElementVisibleCarousel } from '../../utils/helpers.js';\nimport { DSTabsContext } from '../../DSTabsCTX.js';\n\ninterface UseCarouselCallbacksPropsT {\n getVisibleItemsOffset: () => number;\n recalcChevrons: () => void;\n}\ninterface UseCarouselCallbacksReturnTypeT {\n leftButtonOnClick: () => void;\n rightButtonOnClick: () => void;\n handleOnClick: (e: React.MouseEvent) => void;\n handleOnScroll: (e: React.UIEvent) => void;\n}\n\nexport const useCarouselCallbacks = ({\n getVisibleItemsOffset,\n recalcChevrons,\n}: UseCarouselCallbacksPropsT): UseCarouselCallbacksReturnTypeT => {\n const { focusableTabsRef, carouselOnlyListRef } = useContext(DSTabsContext);\n\n const rightButtonOnClick = useCallback(() => {\n if (carouselOnlyListRef.current) {\n carouselOnlyListRef.current.scrollLeft += getVisibleItemsOffset();\n }\n }, [getVisibleItemsOffset, carouselOnlyListRef]);\n\n const leftButtonOnClick = useCallback(() => {\n if (carouselOnlyListRef.current) {\n carouselOnlyListRef.current.scrollLeft -= getVisibleItemsOffset();\n }\n }, [getVisibleItemsOffset, carouselOnlyListRef]);\n\n /** [PUI-15772] - Tabs Pre Refactor\n * Scroll handler for carousel. It:\n * 1. Recalculates chevron visibility\n * 2. Updates indicator style\n * 3. May cause rerenders on every scroll event\n */\n const handleOnScroll = useMemo(() => debounce(recalcChevrons, 200), [recalcChevrons]);\n\n /** [PUI-15772] - Tabs Pre Refactor\n * Click handler for carousel tabs. It:\n * 1. Checks if clicked element is a tab\n * 2. Calculates scroll position to center the tab\n * 3. Updates scroll position with magic number adjustments\n * 4. May cause rerenders due to scroll position updates\n */\n const handleOnClick = useCallback(\n ({ target }: MouseEvent) => {\n if (focusableTabsRef.current && (target as HTMLButtonElement).getAttribute('role') === 'tab') {\n const tabList = carouselOnlyListRef.current;\n const tabButton = target as HTMLButtonElement;\n const tabButtonDimensions = tabButton.getBoundingClientRect();\n const tabListDimensions = tabList?.getBoundingClientRect();\n const tabButtonIndex = tabButton.dataset.index as string;\n const lastItemIndex = focusableTabsRef.current.length.toString();\n const magicNumber = 34;\n\n const firstOrLastItem = tabButtonIndex === '0' || tabButtonIndex === lastItemIndex;\n\n if (\n !isElementVisibleCarousel(tabButton, tabList, firstOrLastItem) &&\n tabListDimensions &&\n carouselOnlyListRef.current\n ) {\n const containerWidth = tabListDimensions.width;\n const halfContainer = containerWidth / 2;\n const elementScrollPosition = tabButtonDimensions.left - tabListDimensions.left;\n const positionInContainer = elementScrollPosition % containerWidth;\n const width = tabButton.offsetWidth + magicNumber;\n\n if (positionInContainer > halfContainer) {\n carouselOnlyListRef.current.scrollLeft += width + positionInContainer - containerWidth;\n } else {\n carouselOnlyListRef.current.scrollLeft += positionInContainer - magicNumber;\n }\n }\n }\n },\n [focusableTabsRef, carouselOnlyListRef],\n );\n\n return {\n handleOnClick,\n rightButtonOnClick,\n leftButtonOnClick,\n handleOnScroll,\n };\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,aAAa,YAAY,eAAe;AACjD,SAAS,gBAAgB;AAEzB,SAAS,gCAAgC;AACzC,SAAS,qBAAqB;AAavB,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AACF,MAAmE;AACjE,QAAM,EAAE,kBAAkB,oBAAoB,IAAI,WAAW,aAAa;AAE1E,QAAM,qBAAqB,YAAY,MAAM;AAC3C,QAAI,oBAAoB,SAAS;AAC/B,0BAAoB,QAAQ,cAAc,sBAAsB;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,uBAAuB,mBAAmB,CAAC;AAE/C,QAAM,oBAAoB,YAAY,MAAM;AAC1C,QAAI,oBAAoB,SAAS;AAC/B,0BAAoB,QAAQ,cAAc,sBAAsB;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,uBAAuB,mBAAmB,CAAC;AAQ/C,QAAM,iBAAiB,QAAQ,MAAM,SAAS,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC;AASpF,QAAM,gBAAgB;AAAA,IACpB,CAAC,EAAE,OAAO,MAAkB;AAC1B,UAAI,iBAAiB,WAAY,OAA6B,aAAa,MAAM,MAAM,OAAO;AAC5F,cAAM,UAAU,oBAAoB;AACpC,cAAM,YAAY;AAClB,cAAM,sBAAsB,UAAU,sBAAsB;AAC5D,cAAM,oBAAoB,SAAS,sBAAsB;AACzD,cAAM,iBAAiB,UAAU,QAAQ;AACzC,cAAM,gBAAgB,iBAAiB,QAAQ,OAAO,SAAS;AAC/D,cAAM,cAAc;AAEpB,cAAM,kBAAkB,mBAAmB,OAAO,mBAAmB;AAErE,YACE,CAAC,yBAAyB,WAAW,SAAS,eAAe,KAC7D,qBACA,oBAAoB,SACpB;AACA,gBAAM,iBAAiB,kBAAkB;AACzC,gBAAM,gBAAgB,iBAAiB;AACvC,gBAAM,wBAAwB,oBAAoB,OAAO,kBAAkB;AAC3E,gBAAM,sBAAsB,wBAAwB;AACpD,gBAAM,QAAQ,UAAU,cAAc;AAEtC,cAAI,sBAAsB,eAAe;AACvC,gCAAoB,QAAQ,cAAc,QAAQ,sBAAsB;AAAA,UAC1E,OAAO;AACL,gCAAoB,QAAQ,cAAc,sBAAsB;AAAA,UAClE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,mBAAmB;AAAA,EACxC;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,12 +0,0 @@
1
- interface UseCarouselCallbacksPropsT {
2
- getVisibleItemsOffset: () => number;
3
- recalcChevrons: () => void;
4
- }
5
- interface UseCarouselCallbacksReturnTypeT {
6
- leftButtonOnClick: () => void;
7
- rightButtonOnClick: () => void;
8
- handleOnClick: (e: React.MouseEvent) => void;
9
- handleOnScroll: (e: React.UIEvent) => void;
10
- }
11
- export declare const useCarouselCallbacks: ({ getVisibleItemsOffset, recalcChevrons, }: UseCarouselCallbacksPropsT) => UseCarouselCallbacksReturnTypeT;
12
- export {};