@elliemae/ds-accordion 2.2.0-next.4 → 2.3.0-alpha.2

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 (61) hide show
  1. package/cjs/DSAccordion.js +50 -29
  2. package/cjs/DSAccordion.js.map +7 -0
  3. package/cjs/DSAccordionCTX.js +40 -14
  4. package/cjs/DSAccordionCTX.js.map +7 -0
  5. package/cjs/DSAccordionDatatestid.js +38 -10
  6. package/cjs/DSAccordionDatatestid.js.map +7 -0
  7. package/cjs/DSAccordionTypes.js +27 -2
  8. package/cjs/DSAccordionTypes.js.map +7 -0
  9. package/cjs/config/useAccordion.js +59 -36
  10. package/cjs/config/useAccordion.js.map +7 -0
  11. package/cjs/config/useAccordionRefs.js +46 -39
  12. package/cjs/config/useAccordionRefs.js.map +7 -0
  13. package/cjs/defaultProps.js +49 -39
  14. package/cjs/defaultProps.js.map +7 -0
  15. package/cjs/index.js +37 -14
  16. package/cjs/index.js.map +7 -0
  17. package/cjs/parts/accordionContent/AccordionContent.js +44 -35
  18. package/cjs/parts/accordionContent/AccordionContent.js.map +7 -0
  19. package/cjs/parts/accordionItem/DSAccordionItem.js +147 -174
  20. package/cjs/parts/accordionItem/DSAccordionItem.js.map +7 -0
  21. package/cjs/parts/accordionItem/styles.js +138 -128
  22. package/cjs/parts/accordionItem/styles.js.map +7 -0
  23. package/cjs/parts/accordionItem/useAccordionItem.js +52 -39
  24. package/cjs/parts/accordionItem/useAccordionItem.js.map +7 -0
  25. package/cjs/parts/accordionItem/useIsShowingEllipsis.js +42 -21
  26. package/cjs/parts/accordionItem/useIsShowingEllipsis.js.map +7 -0
  27. package/cjs/propTypes.js +53 -22
  28. package/cjs/propTypes.js.map +7 -0
  29. package/esm/DSAccordion.js +18 -16
  30. package/esm/DSAccordion.js.map +7 -0
  31. package/esm/DSAccordionCTX.js +10 -9
  32. package/esm/DSAccordionCTX.js.map +7 -0
  33. package/esm/DSAccordionDatatestid.js +9 -6
  34. package/esm/DSAccordionDatatestid.js.map +7 -0
  35. package/esm/DSAccordionTypes.js +2 -1
  36. package/esm/DSAccordionTypes.js.map +7 -0
  37. package/esm/config/useAccordion.js +25 -27
  38. package/esm/config/useAccordion.js.map +7 -0
  39. package/esm/config/useAccordionRefs.js +17 -31
  40. package/esm/config/useAccordionRefs.js.map +7 -0
  41. package/esm/defaultProps.js +21 -31
  42. package/esm/defaultProps.js.map +7 -0
  43. package/esm/index.js +8 -2
  44. package/esm/index.js.map +7 -0
  45. package/esm/parts/accordionContent/AccordionContent.js +14 -25
  46. package/esm/parts/accordionContent/AccordionContent.js.map +7 -0
  47. package/esm/parts/accordionItem/DSAccordionItem.js +114 -147
  48. package/esm/parts/accordionItem/DSAccordionItem.js.map +7 -0
  49. package/esm/parts/accordionItem/styles.js +112 -115
  50. package/esm/parts/accordionItem/styles.js.map +7 -0
  51. package/esm/parts/accordionItem/useAccordionItem.js +21 -33
  52. package/esm/parts/accordionItem/useAccordionItem.js.map +7 -0
  53. package/esm/parts/accordionItem/useIsShowingEllipsis.js +11 -15
  54. package/esm/parts/accordionItem/useIsShowingEllipsis.js.map +7 -0
  55. package/esm/propTypes.js +24 -17
  56. package/esm/propTypes.js.map +7 -0
  57. package/package.json +7 -7
  58. package/types/DSAccordion.d.ts +1 -1
  59. package/types/DSAccordionTypes.d.ts +3 -0
  60. package/types/parts/accordionItem/DSAccordionItem.d.ts +1 -1
  61. package/types/parts/accordionItem/styles.d.ts +2 -2
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/accordionItem/useAccordionItem.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useContext, useMemo } from 'react';\nimport { DSAccordionContext } from '../../DSAccordionCTX';\nimport type { UseAccordionPropsT, UseAccordionItemReturnTypeT } from '../../DSAccordionTypes';\n\nexport const useAccordionItem = ({ value, disabled }: UseAccordionPropsT): UseAccordionItemReturnTypeT => {\n const { actualActiveValue, setActiveValues, focusableChildrenReferences } = useContext(DSAccordionContext);\n\n const selected = useMemo(() => {\n if (Array.isArray(actualActiveValue)) {\n return actualActiveValue.some((currentValue) => currentValue === value);\n }\n return value === actualActiveValue;\n }, [actualActiveValue, value]);\n\n const handleOnClick = useCallback(\n (e: React.MouseEvent) => {\n if (!disabled) setActiveValues(value, e);\n },\n [disabled, setActiveValues, value],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent, _dsIndex: number) => {\n if (!disabled && e.key === 'ArrowDown') {\n const currentIndex = focusableChildrenReferences.findIndex((item) => item.index === _dsIndex);\n if (focusableChildrenReferences[currentIndex + 1]?.ref?.current)\n focusableChildrenReferences[currentIndex + 1]?.ref?.current?.focus();\n }\n\n if (!disabled && e.key === 'ArrowUp') {\n const currentIndex = focusableChildrenReferences.findIndex((item) => item.index === _dsIndex);\n if (focusableChildrenReferences[currentIndex - 1]?.ref?.current)\n focusableChildrenReferences[currentIndex - 1]?.ref?.current?.focus();\n }\n },\n [disabled, focusableChildrenReferences],\n );\n\n return {\n handleOnClick,\n handleOnKeyDown,\n selected,\n };\n};\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AAGO,MAAM,mBAAmB,CAAC,EAAE,OAAO,eAAgE;AACxG,QAAM,EAAE,mBAAmB,iBAAiB,gCAAgC,WAAW;AAEvF,QAAM,WAAW,QAAQ,MAAM;AAC7B,QAAI,MAAM,QAAQ,oBAAoB;AACpC,aAAO,kBAAkB,KAAK,CAAC,iBAAiB,iBAAiB;AAAA;AAEnE,WAAO,UAAU;AAAA,KAChB,CAAC,mBAAmB;AAEvB,QAAM,gBAAgB,YACpB,CAAC,MAAwB;AACvB,QAAI,CAAC;AAAU,sBAAgB,OAAO;AAAA,KAExC,CAAC,UAAU,iBAAiB;AAG9B,QAAM,kBAAkB,YACtB,CAAC,GAAwB,aAAqB;AAC5C,QAAI,CAAC,YAAY,EAAE,QAAQ,aAAa;AACtC,YAAM,eAAe,4BAA4B,UAAU,CAAC,SAAS,KAAK,UAAU;AACpF,UAAI,4BAA4B,eAAe,IAAI,KAAK;AACtD,oCAA4B,eAAe,IAAI,KAAK,SAAS;AAAA;AAGjE,QAAI,CAAC,YAAY,EAAE,QAAQ,WAAW;AACpC,YAAM,eAAe,4BAA4B,UAAU,CAAC,SAAS,KAAK,UAAU;AACpF,UAAI,4BAA4B,eAAe,IAAI,KAAK;AACtD,oCAA4B,eAAe,IAAI,KAAK,SAAS;AAAA;AAAA,KAGnE,CAAC,UAAU;AAGb,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,33 +1,29 @@
1
- import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { useState, useMemo, useEffect } from 'react';
3
-
1
+ import * as React from "react";
2
+ import { useEffect, useState, useMemo } from "react";
4
3
  const useIsShowingEllipsis = () => {
5
4
  const [element, setElement] = useState();
6
- const [isShowingEllipsis, setIsShowingEllipsis] = useState(false); // const isShowingEllipsis = element?.scrollWidth > primaryTitleWrapperEl?.clientWidth;
7
-
8
- const resizeObserver = useMemo(() => new ResizeObserver(entries => {
5
+ const [isShowingEllipsis, setIsShowingEllipsis] = useState(false);
6
+ const resizeObserver = useMemo(() => new ResizeObserver((entries) => {
9
7
  if (entries.length) {
10
8
  const [textWrapperEntry] = entries;
11
9
  const el = textWrapperEntry.target;
12
- setIsShowingEllipsis((el === null || el === void 0 ? void 0 : el.scrollWidth) > (el === null || el === void 0 ? void 0 : el.clientWidth));
10
+ setIsShowingEllipsis(el?.scrollWidth > el?.clientWidth);
13
11
  }
14
12
  }), []);
15
13
  useEffect(() => {
16
14
  if (element) {
17
- setIsShowingEllipsis((element === null || element === void 0 ? void 0 : element.scrollWidth) > (element === null || element === void 0 ? void 0 : element.clientWidth));
15
+ setIsShowingEllipsis(element?.scrollWidth > element?.clientWidth);
18
16
  resizeObserver.observe(element);
19
17
  }
20
-
21
18
  return () => {
22
19
  if (element) {
23
20
  resizeObserver.unobserve(element);
24
21
  }
25
22
  };
26
23
  }, [resizeObserver, element]);
27
- return {
28
- setElement,
29
- isShowingEllipsis
30
- };
24
+ return { setElement, isShowingEllipsis };
31
25
  };
32
-
33
- export { useIsShowingEllipsis };
26
+ export {
27
+ useIsShowingEllipsis
28
+ };
29
+ //# sourceMappingURL=useIsShowingEllipsis.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/accordionItem/useIsShowingEllipsis.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useEffect, useState, useMemo } from 'react';\n\nexport const useIsShowingEllipsis = () => {\n const [element, setElement] = useState<HTMLSpanElement>();\n\n const [isShowingEllipsis, setIsShowingEllipsis] = useState(false);\n // const isShowingEllipsis = element?.scrollWidth > primaryTitleWrapperEl?.clientWidth;\n\n const resizeObserver = useMemo(\n () =>\n new ResizeObserver((entries) => {\n if (entries.length) {\n const [textWrapperEntry] = entries;\n const el = textWrapperEntry.target;\n setIsShowingEllipsis(el?.scrollWidth > el?.clientWidth);\n }\n }),\n [],\n );\n\n useEffect(() => {\n if (element) {\n setIsShowingEllipsis(element?.scrollWidth > element?.clientWidth);\n resizeObserver.observe(element);\n }\n return () => {\n if (element) {\n resizeObserver.unobserve(element);\n }\n };\n }, [resizeObserver, element]);\n\n return { setElement, isShowingEllipsis };\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,QAAM,CAAC,SAAS,cAAc;AAE9B,QAAM,CAAC,mBAAmB,wBAAwB,SAAS;AAG3D,QAAM,iBAAiB,QACrB,MACE,IAAI,eAAe,CAAC,YAAY;AAC9B,QAAI,QAAQ,QAAQ;AAClB,YAAM,CAAC,oBAAoB;AAC3B,YAAM,KAAK,iBAAiB;AAC5B,2BAAqB,IAAI,cAAc,IAAI;AAAA;AAAA,MAGjD;AAGF,YAAU,MAAM;AACd,QAAI,SAAS;AACX,2BAAqB,SAAS,cAAc,SAAS;AACrD,qBAAe,QAAQ;AAAA;AAEzB,WAAO,MAAM;AACX,UAAI,SAAS;AACX,uBAAe,UAAU;AAAA;AAAA;AAAA,KAG5B,CAAC,gBAAgB;AAEpB,SAAO,EAAE,YAAY;AAAA;",
6
+ "names": []
7
+ }
package/esm/propTypes.js CHANGED
@@ -1,21 +1,28 @@
1
- import { PropTypes } from 'react-desc';
2
-
1
+ import * as React from "react";
2
+ import { PropTypes } from "react-desc";
3
3
  const accordionItemPropTypes = {
4
- children: PropTypes.node.description('Dimsum AccordionItem content.').isRequired,
5
- title: PropTypes.string.description('Set a primary title.'),
6
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Dimsum AccordionItem value, this value should be unique.').isRequired,
7
- iconClosed: PropTypes.node.description('Custom Dimsum Icon when it is closed.'),
8
- iconOpened: PropTypes.node.description('Custom Dimsum Icon when it is open.'),
9
- secondaryTitle: PropTypes.string.description('Set a secondary title'),
10
- customActions: PropTypes.arrayOf(PropTypes.object).description('Set Dimsum AccordionItem custom actions.'),
11
- renderCustomActions: PropTypes.func.description('This property will render any JSX in the custom actions area. You can access to all references and active values within the props.')
4
+ children: PropTypes.node.description("Dimsum AccordionItem content.").isRequired,
5
+ title: PropTypes.string.description("Set a primary title."),
6
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description("Dimsum AccordionItem value, this value should be unique.").isRequired,
7
+ iconClosed: PropTypes.node.description("Custom Dimsum Icon when it is closed."),
8
+ iconOpened: PropTypes.node.description("Custom Dimsum Icon when it is open."),
9
+ secondaryTitle: PropTypes.string.description("Set a secondary title"),
10
+ customActions: PropTypes.arrayOf(PropTypes.object).description("Set Dimsum AccordionItem custom actions."),
11
+ renderCustomActions: PropTypes.func.description("This property will render any JSX in the custom actions area. You can access to all references and active values within the props.")
12
12
  };
13
13
  const accordionPropTypes = {
14
- containerProps: PropTypes.object.description('Adds props to the container.'),
15
- activeValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])), PropTypes.string, PropTypes.number]).description('Selected active value. This property makes the component a controlled one.'),
16
- children: PropTypes.node.description('Dimsum AccordionItems to show.'),
17
- allowMultipleOpen: PropTypes.bool.description('Allows multiple Dimsum AccordionItems to be open at the same time.'),
18
- onChange: PropTypes.func.description('Callback function once the Dimsum Accordion changes.')
14
+ containerProps: PropTypes.object.description("Adds props to the container."),
15
+ activeValue: PropTypes.oneOfType([
16
+ PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
17
+ PropTypes.string,
18
+ PropTypes.number
19
+ ]).description("Selected active value. This property makes the component a controlled one."),
20
+ children: PropTypes.node.description("Dimsum AccordionItems to show."),
21
+ allowMultipleOpen: PropTypes.bool.description("Allows multiple Dimsum AccordionItems to be open at the same time."),
22
+ onChange: PropTypes.func.description("Callback function once the Dimsum Accordion changes.")
19
23
  };
20
-
21
- export { accordionItemPropTypes, accordionPropTypes };
24
+ export {
25
+ accordionItemPropTypes,
26
+ accordionPropTypes
27
+ };
28
+ //# sourceMappingURL=propTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/propTypes.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes } from 'react-desc';\n\nexport const accordionItemPropTypes = {\n children: PropTypes.node.description('Dimsum AccordionItem content.').isRequired,\n title: PropTypes.string.description('Set a primary title.'),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description(\n 'Dimsum AccordionItem value, this value should be unique.',\n ).isRequired,\n iconClosed: PropTypes.node.description('Custom Dimsum Icon when it is closed.'),\n iconOpened: PropTypes.node.description('Custom Dimsum Icon when it is open.'),\n secondaryTitle: PropTypes.string.description('Set a secondary title'),\n customActions: PropTypes.arrayOf(PropTypes.object).description('Set Dimsum AccordionItem custom actions.'),\n renderCustomActions: PropTypes.func.description(\n 'This property will render any JSX in the custom actions area. You can access to all references and active values within the props.',\n ),\n};\n\nexport const accordionPropTypes = {\n containerProps: PropTypes.object.description('Adds props to the container.'),\n activeValue: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.string,\n PropTypes.number,\n ]).description('Selected active value. This property makes the component a controlled one.'),\n children: PropTypes.node.description('Dimsum AccordionItems to show.'),\n allowMultipleOpen: PropTypes.bool.description('Allows multiple Dimsum AccordionItems to be open at the same time.'),\n onChange: PropTypes.func.description('Callback function once the Dimsum Accordion changes.'),\n};\n"],
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,yBAAyB;AAAA,EACpC,UAAU,UAAU,KAAK,YAAY,iCAAiC;AAAA,EACtE,OAAO,UAAU,OAAO,YAAY;AAAA,EACpC,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,SAAS,YAC/D,4DACA;AAAA,EACF,YAAY,UAAU,KAAK,YAAY;AAAA,EACvC,YAAY,UAAU,KAAK,YAAY;AAAA,EACvC,gBAAgB,UAAU,OAAO,YAAY;AAAA,EAC7C,eAAe,UAAU,QAAQ,UAAU,QAAQ,YAAY;AAAA,EAC/D,qBAAqB,UAAU,KAAK,YAClC;AAAA;AAIG,MAAM,qBAAqB;AAAA,EAChC,gBAAgB,UAAU,OAAO,YAAY;AAAA,EAC7C,aAAa,UAAU,UAAU;AAAA,IAC/B,UAAU,QAAQ,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU;AAAA,IACnE,UAAU;AAAA,IACV,UAAU;AAAA,KACT,YAAY;AAAA,EACf,UAAU,UAAU,KAAK,YAAY;AAAA,EACrC,mBAAmB,UAAU,KAAK,YAAY;AAAA,EAC9C,UAAU,UAAU,KAAK,YAAY;AAAA;",
6
+ "names": []
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-accordion",
3
- "version": "2.2.0-next.4",
3
+ "version": "2.3.0-alpha.2",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Accordion",
6
6
  "module": "./esm/index.js",
@@ -84,12 +84,12 @@
84
84
  "build": "node ../../scripts/build/build.js"
85
85
  },
86
86
  "dependencies": {
87
- "@elliemae/ds-button": "2.2.0-next.4",
88
- "@elliemae/ds-classnames": "2.2.0-next.4",
89
- "@elliemae/ds-icons": "2.2.0-next.4",
90
- "@elliemae/ds-shared": "2.2.0-next.4",
91
- "@elliemae/ds-system": "2.2.0-next.4",
92
- "@elliemae/ds-truncated-tooltip-text": "2.2.0-next.4",
87
+ "@elliemae/ds-button": "2.3.0-alpha.2",
88
+ "@elliemae/ds-classnames": "2.3.0-alpha.2",
89
+ "@elliemae/ds-icons": "2.3.0-alpha.2",
90
+ "@elliemae/ds-shared": "2.3.0-alpha.2",
91
+ "@elliemae/ds-system": "2.3.0-alpha.2",
92
+ "@elliemae/ds-truncated-tooltip-text": "2.3.0-alpha.2",
93
93
  "react-desc": "^4.1.3"
94
94
  },
95
95
  "devDependencies": {
@@ -37,7 +37,7 @@ declare const DSAccordion: {
37
37
  };
38
38
  };
39
39
  declare const DSAccordionWithSchema: {
40
- (props?: DSAccordionPropsT | undefined): JSX.Element;
40
+ (props?: unknown): JSX.Element;
41
41
  propTypes: unknown;
42
42
  toTypescript: () => import("react-desc").TypescriptSchema;
43
43
  };
@@ -132,3 +132,6 @@ export interface StyledItemAddonPropsT {
132
132
  disabled: boolean;
133
133
  isDSMobile: boolean;
134
134
  }
135
+ export interface StyledItemHeaderContainerPropsT {
136
+ disabled: boolean;
137
+ }
@@ -45,7 +45,7 @@ declare const DSAccordionItem: {
45
45
  };
46
46
  };
47
47
  declare const DSAccordionItemWithSchema: {
48
- (props?: DSAccordionItemPropsT | undefined): JSX.Element;
48
+ (props?: unknown): JSX.Element;
49
49
  propTypes: unknown;
50
50
  toTypescript: () => import("react-desc").TypescriptSchema;
51
51
  };
@@ -1,4 +1,4 @@
1
- import type { StyledItemAddonPropsT, StyledItemHeaderPropsT, StyledItemTitlesPropsT, StyledPrimaryTitlePropsT, StyledSecondaryTitlePropsT, StyledItemContentPropsT } from '../../DSAccordionTypes';
1
+ import type { StyledItemAddonPropsT, StyledItemHeaderPropsT, StyledItemTitlesPropsT, StyledPrimaryTitlePropsT, StyledSecondaryTitlePropsT, StyledItemContentPropsT, StyledItemHeaderContainerPropsT } from '../../DSAccordionTypes';
2
2
  export declare const StyledItemContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
3
3
  export declare const StyledItemHeader: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, StyledItemHeaderPropsT, never>;
4
4
  export declare const StyledItemContent: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, StyledItemContentPropsT, never>;
@@ -7,4 +7,4 @@ export declare const StyledItemTitles: import("styled-components").StyledCompone
7
7
  export declare const StyledPrimaryTitle: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, StyledPrimaryTitlePropsT, never>;
8
8
  export declare const StyledSecondaryTitle: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, StyledSecondaryTitlePropsT, never>;
9
9
  export declare const StyledItemCustomActions: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
10
- export declare const StyledItemHeaderContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
10
+ export declare const StyledItemHeaderContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, StyledItemHeaderContainerPropsT, never>;