@popsure/dirty-swan 0.66.16 → 0.66.18

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 (57) hide show
  1. package/dist/cjs/index.js +23 -19
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/lib/components/comparisonTable/index.stories.d.ts +4 -0
  4. package/dist/cjs/lib/components/table/Table.stories.d.ts +12 -0
  5. package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +2 -1
  6. package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +1 -1
  7. package/dist/esm/components/comparisonTable/components/AccordionItem/AccordionItem.js +2 -2
  8. package/dist/esm/components/comparisonTable/components/AccordionItem/AccordionItem.js.map +1 -1
  9. package/dist/esm/components/comparisonTable/components/Row/index.js +4 -3
  10. package/dist/esm/components/comparisonTable/components/Row/index.js.map +1 -1
  11. package/dist/esm/components/comparisonTable/index.js +6 -6
  12. package/dist/esm/components/comparisonTable/index.js.map +1 -1
  13. package/dist/esm/components/comparisonTable/index.stories.js +267 -6
  14. package/dist/esm/components/comparisonTable/index.stories.js.map +1 -1
  15. package/dist/esm/components/icon/icons/Activity.js +2 -2
  16. package/dist/esm/components/icon/icons/Activity.js.map +1 -1
  17. package/dist/esm/components/icon/icons/DentalToothTeeth.js +2 -2
  18. package/dist/esm/components/icon/icons/DentalToothTeeth.js.map +1 -1
  19. package/dist/esm/components/icon/icons/DependentsFamily.js +2 -2
  20. package/dist/esm/components/icon/icons/DependentsFamily.js.map +1 -1
  21. package/dist/esm/components/icon/icons/GlobeNetworkEarth.js +2 -2
  22. package/dist/esm/components/icon/icons/GlobeNetworkEarth.js.map +1 -1
  23. package/dist/esm/components/icon/icons/HospitalBuilding.js +2 -2
  24. package/dist/esm/components/icon/icons/HospitalBuilding.js.map +1 -1
  25. package/dist/esm/components/icon/icons.stories.js +1 -1
  26. package/dist/esm/components/icon/index.stories.js +1 -1
  27. package/dist/esm/components/table/Table.js +1 -1
  28. package/dist/esm/components/table/Table.stories.js +355 -1
  29. package/dist/esm/components/table/Table.stories.js.map +1 -1
  30. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +1 -1
  31. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js.map +1 -1
  32. package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js +4 -2
  33. package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js.map +1 -1
  34. package/dist/esm/components/table/components/TableCell/TableCell.js +4 -3
  35. package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
  36. package/dist/esm/components/table/components/TableContents/Collapsible.js +1 -1
  37. package/dist/esm/{index-BWJpOVlt.js → index-D41W71Hh.js} +11 -11
  38. package/dist/esm/{index-BWJpOVlt.js.map → index-D41W71Hh.js.map} +1 -1
  39. package/dist/esm/lib/components/comparisonTable/index.stories.d.ts +4 -0
  40. package/dist/esm/lib/components/table/Table.stories.d.ts +12 -0
  41. package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +2 -1
  42. package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +1 -1
  43. package/package.json +1 -1
  44. package/src/lib/components/comparisonTable/components/AccordionItem/AccordionItem.module.scss +15 -3
  45. package/src/lib/components/comparisonTable/components/AccordionItem/AccordionItem.tsx +1 -1
  46. package/src/lib/components/comparisonTable/components/Row/index.tsx +2 -1
  47. package/src/lib/components/comparisonTable/components/Row/style.module.scss +20 -5
  48. package/src/lib/components/comparisonTable/index.stories.tsx +370 -0
  49. package/src/lib/components/comparisonTable/index.tsx +1 -5
  50. package/src/lib/components/comparisonTable/style.module.scss +10 -8
  51. package/src/lib/components/table/Table.module.scss +1 -1
  52. package/src/lib/components/table/Table.stories.tsx +387 -0
  53. package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx +2 -2
  54. package/src/lib/components/table/components/TableCell/CTACell/CTACell.tsx +5 -1
  55. package/src/lib/components/table/components/TableCell/TableCell.module.scss +4 -0
  56. package/src/lib/components/table/components/TableCell/TableCell.tsx +4 -1
  57. package/src/lib/components/table/components/TableContents/Collapsible.module.scss +1 -0
@@ -176,5 +176,9 @@ export declare const ComparisonTableStory: {
176
176
  render: ({ data, headers, collapsibleSections, scrollOnOpen, scrollTopOffset, hideDetails, classNameOverrides, hideDetailsCaption, showDetailsCaption, hideScrollBars, hideScrollBarsMobile, cellWidth, firstColumnWidth, stickyHeaderTopOffset, growContent, }: ComparisonTableProps<Data>) => JSX.Element;
177
177
  name: string;
178
178
  };
179
+ export declare const PrivateHealthQuoteWidget: {
180
+ render: () => JSX.Element;
181
+ name: string;
182
+ };
179
183
  export declare const HeaderType: () => JSX.Element;
180
184
  export default story;
@@ -83,5 +83,17 @@ export declare const SinglePlanQuoteTable: {
83
83
  render: () => JSX.Element;
84
84
  name: string;
85
85
  };
86
+ export declare const SinglePlanQuoteWebsite: {
87
+ render: () => JSX.Element;
88
+ name: string;
89
+ };
90
+ export declare const TwoPlanQuoteWebsite: {
91
+ render: () => JSX.Element;
92
+ name: string;
93
+ };
94
+ export declare const ThreePlanQuoteWebsite: {
95
+ render: () => JSX.Element;
96
+ name: string;
97
+ };
86
98
  export declare const TableDataType: () => JSX.Element;
87
99
  export default story;
@@ -7,10 +7,11 @@ export type CTACellProps = {
7
7
  buttonCaption?: ReactNode;
8
8
  grey?: boolean;
9
9
  narrow?: boolean;
10
+ centered?: boolean;
10
11
  href: string;
11
12
  className?: string;
12
13
  dataTestId?: string;
13
14
  dataCy?: string;
14
15
  onClick?: () => void;
15
16
  };
16
- export declare const CTACell: ({ title, price, icon, grey, narrow, href, buttonCaption, imageComponent, className, dataCy, dataTestId, onClick, }: CTACellProps) => JSX.Element;
17
+ export declare const CTACell: ({ title, price, icon, grey, narrow, centered, href, buttonCaption, imageComponent, className, dataCy, dataTestId, onClick, }: CTACellProps) => JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { CTACell } from './CTACell';
2
2
  declare const story: {
3
3
  title: string;
4
- component: ({ title, price, icon, grey, narrow, href, buttonCaption, imageComponent, className, dataCy, dataTestId, onClick, }: import("./CTACell").CTACellProps) => JSX.Element;
4
+ component: ({ title, price, icon, grey, narrow, centered, href, buttonCaption, imageComponent, className, dataCy, dataTestId, onClick, }: import("./CTACell").CTACellProps) => JSX.Element;
5
5
  argTypes: {};
6
6
  args: {
7
7
  title: string;
@@ -5,7 +5,7 @@ import { useState, useRef } from 'react';
5
5
  import '../../../../index-DLQEsiym.js';
6
6
  import '../../../../_commonjsHelpers-BFTU3MAI.js';
7
7
 
8
- var css_248z = ".AccordionItem-module_container__29xle {\n width: min-content;\n width: var(--growContent, min-content);\n max-width: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.AccordionItem-module_chevron__1Pdoe {\n transition: filter 0.3s ease-in-out, transform 0.2s ease-in-out;\n}\n\n.AccordionItem-module_chevronClosed__1Sq5g {\n transform: rotate(180deg);\n}\n\n.AccordionItem-module_iconAndTextContainer__1K9NF {\n column-gap: 12px;\n}\n\n.AccordionItem-module_headerButton__1C03u {\n border: none;\n background: #FAF8F5;\n column-gap: 16px;\n cursor: pointer;\n font-family: inherit;\n outline: none;\n position: relative;\n text-align: inherit;\n transition: background-color 0.3s ease-in-out, transform 0.2s ease-in-out;\n}\n.AccordionItem-module_headerButton__1C03u:hover {\n background: #FCF7EF;\n}\n\n.AccordionItem-module_headerButton__1C03u:hover .AccordionItem-module_chevron__1Pdoe {\n filter: brightness(0.425);\n}";
8
+ var css_248z = ".AccordionItem-module_container__29xle {\n width: min-content;\n width: var(--growContent, min-content);\n max-width: 100%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.AccordionItem-module_chevron__1Pdoe {\n transition: filter 0.3s ease-in-out, transform 0.2s ease-in-out;\n}\n\n.AccordionItem-module_chevronClosed__1Sq5g {\n transform: rotate(180deg);\n}\n\n.AccordionItem-module_iconAndTextContainer__1K9NF {\n column-gap: 12px;\n}\n\n.AccordionItem-module_headerButton__1C03u {\n border: none;\n border-bottom: 1px solid #e7e7ed;\n background: white;\n color: #26262e;\n column-gap: 16px;\n cursor: pointer;\n font-family: inherit;\n outline: none;\n padding: 24px 0;\n position: relative;\n text-align: inherit;\n transition: color 0.3s ease-in-out, transform 0.2s ease-in-out;\n}\n@media (min-width: 34rem) {\n .AccordionItem-module_headerButton__1C03u {\n padding: 24px;\n }\n}\n.AccordionItem-module_headerButton__1C03u:hover {\n color: #696971;\n}\n.AccordionItem-module_headerButton__1C03u:hover .p-h3 {\n color: #696971;\n}\n\n.AccordionItem-module_headerButton__1C03u:hover .AccordionItem-module_chevron__1Pdoe {\n filter: brightness(0.425);\n}";
9
9
  var styles = {"container":"AccordionItem-module_container__29xle","chevron":"AccordionItem-module_chevron__1Pdoe","chevronClosed":"AccordionItem-module_chevronClosed__1Sq5g","iconAndTextContainer":"AccordionItem-module_iconAndTextContainer__1K9NF","headerButton":"AccordionItem-module_headerButton__1C03u"};
10
10
  styleInject(css_248z);
11
11
 
@@ -38,7 +38,7 @@ var AccordionItem = function (_a) {
38
38
  window.scrollTo({ top: top_1, behavior: 'smooth' });
39
39
  }
40
40
  };
41
- return (jsxs("section", { ref: sectionRef, className: "d-flex fd-column ".concat(styles.container, " ").concat(className), children: [jsxs("button", { className: "d-flex ai-center jc-between ".concat(styles.headerButton, " ").concat(headerClassName), onClick: handleClick, type: "button", children: [jsx("div", { className: "d-flex ai-center ".concat(styles.iconAndTextContainer), children: typeof label === 'string' ? (jsx("h4", { className: "p-h4", children: label })) : (jsx(Fragment, { children: label })) }), jsx(ChevronSVG, { className: "".concat(styles.chevron, " ").concat(!isOpen && styles.chevronClosed) })] }), jsx(AnimateHeight, { duration: 300, height: isOpen ? 'auto' : 0.1, onHeightAnimationEnd: handleAnimationEnd, children: children })] }));
41
+ return (jsxs("section", { ref: sectionRef, className: "d-flex fd-column ".concat(styles.container, " ").concat(className), children: [jsxs("button", { className: "d-flex ai-center jc-between ".concat(styles.headerButton, " ").concat(headerClassName), onClick: handleClick, type: "button", children: [jsx("div", { className: "d-flex ai-center ".concat(styles.iconAndTextContainer), children: typeof label === 'string' ? (jsx("h4", { className: "p-h3", children: label })) : (jsx(Fragment, { children: label })) }), jsx(ChevronSVG, { className: "".concat(styles.chevron, " ").concat(!isOpen && styles.chevronClosed) })] }), jsx(AnimateHeight, { duration: 300, height: isOpen ? 'auto' : 0.1, onHeightAnimationEnd: handleAnimationEnd, children: children })] }));
42
42
  };
43
43
 
44
44
  export { AccordionItem };
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.js","sources":["../../../../../../../src/lib/components/comparisonTable/components/AccordionItem/AccordionItem.tsx"],"sourcesContent":["import AnimateHeight from 'react-animate-height';\n\nimport styles from './AccordionItem.module.scss';\nimport { useRef, useState } from 'react';\n\nconst ChevronSVG = ({ className }: { className?: string }) => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M18 15L12 9L6 15\"\n stroke=\"#b4b4ba\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const AccordionItem = ({\n children,\n className = '',\n headerClassName = '',\n label,\n isOpen: controlledIsOpen,\n onToggle,\n scrollOnOpen,\n scrollTopOffset = 0,\n}: {\n children: React.ReactNode | string;\n className?: string;\n headerClassName?: string;\n label: React.ReactNode;\n isOpen?: boolean;\n onToggle?: () => void;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n}) => {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const sectionRef = useRef<HTMLElement>(null);\n const userToggled = useRef(false);\n\n const isControlled = controlledIsOpen !== undefined && onToggle !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const handleClick = () => {\n userToggled.current = true;\n if (isControlled) {\n onToggle();\n } else {\n setInternalIsOpen(!internalIsOpen);\n }\n };\n\n const handleAnimationEnd = () => {\n if (userToggled.current && isOpen && scrollOnOpen && sectionRef.current) {\n userToggled.current = false;\n const top =\n sectionRef.current.getBoundingClientRect().top +\n window.scrollY -\n scrollTopOffset;\n window.scrollTo({ top, behavior: 'smooth' });\n }\n };\n\n return (\n <section\n ref={sectionRef}\n className={`d-flex fd-column ${styles.container} ${className}`}\n >\n <button\n className={`d-flex ai-center jc-between ${styles.headerButton} ${headerClassName}`}\n onClick={handleClick}\n type=\"button\"\n >\n <div className={`d-flex ai-center ${styles.iconAndTextContainer}`}>\n {typeof label === 'string' ? (\n <h4 className=\"p-h4\">{label}</h4>\n ) : (\n <>{label}</>\n )}\n </div>\n <ChevronSVG\n className={`${styles.chevron} ${!isOpen && styles.chevronClosed}`}\n />\n </button>\n {/* Min height is 0.1 so that the scroll position is correctly synced across accordion items but is not actually shown.\n If set to 0, react-animate-height will set display to \"none\" which means scrolling is not synced. */}\n <AnimateHeight\n duration={300}\n height={isOpen ? 'auto' : 0.1}\n onHeightAnimationEnd={handleAnimationEnd}\n >\n {children}\n </AnimateHeight>\n </section>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"AccordionItem.js","sources":["../../../../../../../src/lib/components/comparisonTable/components/AccordionItem/AccordionItem.tsx"],"sourcesContent":["import AnimateHeight from 'react-animate-height';\n\nimport styles from './AccordionItem.module.scss';\nimport { useRef, useState } from 'react';\n\nconst ChevronSVG = ({ className }: { className?: string }) => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path\n d=\"M18 15L12 9L6 15\"\n stroke=\"#b4b4ba\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const AccordionItem = ({\n children,\n className = '',\n headerClassName = '',\n label,\n isOpen: controlledIsOpen,\n onToggle,\n scrollOnOpen,\n scrollTopOffset = 0,\n}: {\n children: React.ReactNode | string;\n className?: string;\n headerClassName?: string;\n label: React.ReactNode;\n isOpen?: boolean;\n onToggle?: () => void;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n}) => {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const sectionRef = useRef<HTMLElement>(null);\n const userToggled = useRef(false);\n\n const isControlled = controlledIsOpen !== undefined && onToggle !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const handleClick = () => {\n userToggled.current = true;\n if (isControlled) {\n onToggle();\n } else {\n setInternalIsOpen(!internalIsOpen);\n }\n };\n\n const handleAnimationEnd = () => {\n if (userToggled.current && isOpen && scrollOnOpen && sectionRef.current) {\n userToggled.current = false;\n const top =\n sectionRef.current.getBoundingClientRect().top +\n window.scrollY -\n scrollTopOffset;\n window.scrollTo({ top, behavior: 'smooth' });\n }\n };\n\n return (\n <section\n ref={sectionRef}\n className={`d-flex fd-column ${styles.container} ${className}`}\n >\n <button\n className={`d-flex ai-center jc-between ${styles.headerButton} ${headerClassName}`}\n onClick={handleClick}\n type=\"button\"\n >\n <div className={`d-flex ai-center ${styles.iconAndTextContainer}`}>\n {typeof label === 'string' ? (\n <h4 className=\"p-h3\">{label}</h4>\n ) : (\n <>{label}</>\n )}\n </div>\n <ChevronSVG\n className={`${styles.chevron} ${!isOpen && styles.chevronClosed}`}\n />\n </button>\n {/* Min height is 0.1 so that the scroll position is correctly synced across accordion items but is not actually shown.\n If set to 0, react-animate-height will set display to \"none\" which means scrolling is not synced. */}\n <AnimateHeight\n duration={300}\n height={isOpen ? 'auto' : 0.1}\n onHeightAnimationEnd={handleAnimationEnd}\n >\n {children}\n </AnimateHeight>\n </section>\n );\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -4,8 +4,8 @@ import { s as styleInject } from '../../../../style-inject.es-tgCJW-Cu.js';
4
4
  import { c as classNames } from '../../../../index-DLQEsiym.js';
5
5
  import '../../../../_commonjsHelpers-BFTU3MAI.js';
6
6
 
7
- var css_248z = ".style-module_header__32rw- {\n position: relative;\n}\n.style-module_header__32rw- > div {\n width: var(--tableWidth);\n max-width: 100vw;\n}\n.style-module_header__32rw- > div:nth-child(n+3) {\n margin: 0;\n}\n@media (min-width: 34rem) {\n .style-module_header__32rw- > div {\n width: 211px;\n width: var(--cellWidth, 211px);\n max-width: var(--tableWidth);\n scroll-snap-align: unset;\n }\n}\n\n.style-module_cell__1NoZ6 {\n display: flex;\n justify-content: center;\n align-items: center;\n scroll-snap-align: end;\n line-height: 24px;\n padding: 16px 8px;\n}\n.style-module_cell__1NoZ6:first-child {\n padding: 16px 8px 16px 0;\n}\n@media (min-width: 34rem) {\n .style-module_cell__1NoZ6:first-child {\n padding: 16px 8px 16px 16px;\n }\n}\n.style-module_cell__1NoZ6 {\n color: #26262e;\n width: 50vw;\n max-width: calc(var(--tableWidth) / 2);\n}\n.style-module_cell__1NoZ6:first-child {\n background-color: white;\n /** Add scroll snap to every column except the first one */\n scroll-snap-align: unset;\n}\n.style-module_cell__1NoZ6:nth-child(n+3) {\n margin-left: 50vw;\n}\n@media (min-width: 34rem) {\n .style-module_cell__1NoZ6:nth-child(n+3) {\n margin-left: unset;\n }\n}\n@media (min-width: 34rem) {\n .style-module_cell__1NoZ6 {\n flex: 1 0 211px;\n flex: 1 0 var(--cellWidth, 211px);\n width: 211px;\n width: var(--cellWidth, 211px);\n }\n .style-module_cell__1NoZ6:first-child {\n padding: 24px 8px 24px 24px;\n }\n .style-module_cell__1NoZ6 {\n padding: 24px 8px;\n }\n}\n\nh4.style-module_cell__1NoZ6 {\n max-width: min(212px, var(--tableWidth) / 2);\n max-width: min(var(--firstColumnWidth, 212px), var(--tableWidth) / 2);\n}\n\n.style-module_title__1xYvu {\n position: relative;\n color: #26262e;\n display: none;\n line-height: 38px;\n}\n@media (min-width: 34rem) {\n .style-module_title__1xYvu {\n display: flex;\n }\n}\n\n.style-module_sticky__2T5jm {\n position: sticky;\n justify-content: flex-start;\n z-index: 1;\n top: 0;\n left: 0;\n width: 50vw;\n}\n@media (min-width: 34rem) {\n .style-module_sticky__2T5jm {\n border-right: 1px solid #f9f9fd;\n flex: 1 0 288px;\n }\n}\n\nh4.style-module_addon__CPf60 {\n border-right: none;\n max-width: calc(100vw - 64px);\n width: 100%;\n}\n@media (min-width: 64rem) {\n h4.style-module_addon__CPf60 {\n max-width: 976px;\n }\n}";
8
- var styles = {"header":"style-module_header__32rw-","cell":"style-module_cell__1NoZ6","title":"style-module_title__1xYvu","sticky":"style-module_sticky__2T5jm","addon":"style-module_addon__CPf60"};
7
+ var css_248z = ".style-module_row__3IzmA {\n border-bottom: 1px solid #e7e7ed;\n}\n.style-module_row__3IzmA:last-child {\n border-bottom: none;\n}\n\n.style-module_header__32rw- {\n position: relative;\n}\n.style-module_header__32rw- .style-module_cell__1NoZ6 {\n align-items: flex-start;\n justify-content: center;\n text-align: center;\n}\n@media (min-width: 34rem) {\n .style-module_header__32rw- .style-module_cell__1NoZ6 {\n justify-content: flex-start;\n text-align: left;\n }\n}\n.style-module_header__32rw- > div {\n width: var(--tableWidth);\n max-width: 100vw;\n}\n.style-module_header__32rw- > div:nth-child(n+3) {\n margin: 0;\n}\n@media (min-width: 34rem) {\n .style-module_header__32rw- > div {\n width: 211px;\n width: var(--cellWidth, 211px);\n max-width: var(--tableWidth);\n scroll-snap-align: unset;\n }\n}\n\n.style-module_cell__1NoZ6 {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n scroll-snap-align: end;\n line-height: 24px;\n padding: 16px 8px;\n}\n.style-module_cell__1NoZ6:first-child {\n padding: 16px 8px 16px 0;\n}\n@media (min-width: 34rem) {\n .style-module_cell__1NoZ6:first-child {\n padding: 16px 8px 16px 16px;\n }\n}\n.style-module_cell__1NoZ6 {\n color: #26262e;\n width: 50vw;\n max-width: calc(var(--tableWidth) / 2);\n}\n.style-module_cell__1NoZ6:first-child {\n background-color: white;\n /** Add scroll snap to every column except the first one */\n scroll-snap-align: unset;\n}\n.style-module_cell__1NoZ6:nth-child(n+3) {\n margin-left: 50vw;\n}\n@media (min-width: 34rem) {\n .style-module_cell__1NoZ6:nth-child(n+3) {\n margin-left: unset;\n }\n}\n@media (min-width: 34rem) {\n .style-module_cell__1NoZ6 {\n flex: 1 0 211px;\n flex: 1 0 var(--cellWidth, 211px);\n width: 211px;\n width: var(--cellWidth, 211px);\n }\n .style-module_cell__1NoZ6:first-child {\n padding: 24px 8px 24px 24px;\n }\n .style-module_cell__1NoZ6 {\n padding: 24px 8px;\n }\n}\n\nh4.style-module_cell__1NoZ6 {\n max-width: min(212px, var(--tableWidth) / 2);\n max-width: min(var(--firstColumnWidth, 212px), var(--tableWidth) / 2);\n}\n\n.style-module_title__1xYvu {\n position: relative;\n color: #26262e;\n display: none;\n}\n@media (min-width: 34rem) {\n .style-module_title__1xYvu {\n display: flex;\n }\n}\n\n.style-module_sticky__2T5jm {\n position: sticky;\n justify-content: flex-start;\n z-index: 1;\n top: 0;\n left: 0;\n width: 50vw;\n}\n@media (min-width: 34rem) {\n .style-module_sticky__2T5jm {\n flex: 1 0 288px;\n }\n}\n\nh4.style-module_addon__CPf60 {\n max-width: calc(100vw - 64px);\n width: 100%;\n}\n@media (min-width: 64rem) {\n h4.style-module_addon__CPf60 {\n max-width: 976px;\n }\n}";
8
+ var styles = {"row":"style-module_row__3IzmA","header":"style-module_header__32rw-","cell":"style-module_cell__1NoZ6","title":"style-module_title__1xYvu","sticky":"style-module_sticky__2T5jm","addon":"style-module_addon__CPf60"};
9
9
  styleInject(css_248z);
10
10
 
11
11
  var Row = function (props) {
@@ -13,6 +13,7 @@ var Row = function (props) {
13
13
  var cell = props.cell, data = props.data, isRowHeader = props.isRowHeader, rowId = props.rowId, cellClassName = props.cellClassName;
14
14
  return (jsxs("div", { className: classNames('d-flex w-100', (_a = {},
15
15
  _a[styles.header] = isRowHeader,
16
+ _a[styles.row] = !isRowHeader,
16
17
  _a)), children: [jsx("h4", { className: classNames(styles.cell, styles.sticky, (_b = {},
17
18
  _b["p-h2 p--serif ".concat(styles.title)] = isRowHeader,
18
19
  _b[styles.addon] = typeof cell.key === 'undefined',
@@ -26,7 +27,7 @@ var Row = function (props) {
26
27
  return null;
27
28
  if (typeof item[cell.key] === 'undefined')
28
29
  return null;
29
- return (jsx("div", { className: classNames('ta-center', styles.cell, cellClassName), children:
30
+ return (jsx("div", { className: classNames('ta-left', styles.cell, cellClassName), children:
30
31
  /**
31
32
  * Return a function if `render` option is present
32
33
  * else print the current data source value
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../src/lib/components/comparisonTable/components/Row/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Cell } from '../../index';\nimport styles from './style.module.scss';\nimport classNames from 'classnames';\n\ninterface RowProps<T> {\n cell: Cell<T>;\n data: Array<T>;\n isRowHeader?: boolean;\n rowId: string;\n cellClassName?: string;\n}\n\nconst Row = <T extends { id: number }>(props: RowProps<T>) => {\n const { cell, data, isRowHeader, rowId, cellClassName } = props;\n\n return (\n <div\n key={rowId}\n className={classNames('d-flex w-100', {\n [styles.header]: isRowHeader,\n })}\n >\n <h4\n className={classNames(\n styles.cell,\n styles.sticky,\n {\n [`p-h2 p--serif ${styles.title}`]: isRowHeader,\n [styles.addon]: typeof cell.key === 'undefined',\n },\n cellClassName\n )}\n >\n {cell.label}\n </h4>\n\n {Array.isArray(data) &&\n data.map((item) => {\n /**\n * Do not render a cell if\n * the data source object doesn't have the current key\n */\n if (typeof cell.key === 'undefined') return null;\n if (typeof item[cell.key] === 'undefined') return null;\n\n return (\n <div\n className={classNames('ta-center', styles.cell, cellClassName)}\n key={`${rowId}-${item.id}`}\n >\n {\n /**\n * Return a function if `render` option is present\n * else print the current data source value\n */\n typeof cell.render === 'function'\n ? cell.render(item[cell.key], item)\n : `${item[cell.key]}`\n }\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default React.memo(Row) as typeof Row;\n"],"names":["_jsxs","_jsx","React"],"mappings":";;;;;;;;;;AAcA,IAAM,GAAG,GAAG,UAA2B,KAAkB,EAAA;;IAC/C,IAAA,IAAI,GAA8C,KAAK,CAAA,IAAnD,EAAE,IAAI,GAAwC,KAAK,CAAA,IAA7C,EAAE,WAAW,GAA2B,KAAK,CAAA,WAAhC,EAAE,KAAK,GAAoB,KAAK,CAAA,KAAzB,EAAE,aAAa,GAAK,KAAK,CAAA,aAAV;AAErD,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAEE,SAAS,EAAE,UAAU,CAAC,cAAc,GAAA,EAAA,GAAA,EAAA;AAClC,YAAA,EAAA,CAAC,MAAM,CAAC,MAAM,CAAA,GAAG,WAAW;gBAC5B,EAAA,QAAA,EAAA,CAEFC,GAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,GAAA,EAAA,GAAA,EAAA;AAEX,oBAAA,EAAA,CAAC,wBAAiB,MAAM,CAAC,KAAK,CAAE,IAAG,WAAW;oBAC9C,EAAA,CAAC,MAAM,CAAC,KAAK,CAAA,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW;AAEjD,oBAAA,EAAA,GAAA,aAAa,CACd,EAAA,QAAA,EAEA,IAAI,CAAC,KAAK,EAAA,CACR,EAEJ,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAClB,gBAAA,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACZ;;;AAGG;AACH,oBAAA,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW;AAAE,wBAAA,OAAO,IAAI;oBAChD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW;AAAE,wBAAA,OAAO,IAAI;AAEtD,oBAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,EAAA,QAAA;AAI5D;;;AAGG;AACH,wBAAA,OAAO,IAAI,CAAC,MAAM,KAAK;AACrB,8BAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI;AAClC,8BAAE,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,IATpB,EAAA,CAAA,MAAA,CAAG,KAAK,cAAI,IAAI,CAAC,EAAE,CAAE,CAWtB;AAEV,gBAAA,CAAC,CAAC,CAAA,EAAA,EA5CC,KAAK,CA6CN;AAEV,CAAC;AAED,YAAeC,cAAK,CAAC,IAAI,CAAC,GAAG,CAAe;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/lib/components/comparisonTable/components/Row/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Cell } from '../../index';\nimport styles from './style.module.scss';\nimport classNames from 'classnames';\n\ninterface RowProps<T> {\n cell: Cell<T>;\n data: Array<T>;\n isRowHeader?: boolean;\n rowId: string;\n cellClassName?: string;\n}\n\nconst Row = <T extends { id: number }>(props: RowProps<T>) => {\n const { cell, data, isRowHeader, rowId, cellClassName } = props;\n\n return (\n <div\n key={rowId}\n className={classNames('d-flex w-100', {\n [styles.header]: isRowHeader,\n [styles.row]: !isRowHeader,\n })}\n >\n <h4\n className={classNames(\n styles.cell,\n styles.sticky,\n {\n [`p-h2 p--serif ${styles.title}`]: isRowHeader,\n [styles.addon]: typeof cell.key === 'undefined',\n },\n cellClassName\n )}\n >\n {cell.label}\n </h4>\n\n {Array.isArray(data) &&\n data.map((item) => {\n /**\n * Do not render a cell if\n * the data source object doesn't have the current key\n */\n if (typeof cell.key === 'undefined') return null;\n if (typeof item[cell.key] === 'undefined') return null;\n\n return (\n <div\n className={classNames('ta-left', styles.cell, cellClassName)}\n key={`${rowId}-${item.id}`}\n >\n {\n /**\n * Return a function if `render` option is present\n * else print the current data source value\n */\n typeof cell.render === 'function'\n ? cell.render(item[cell.key], item)\n : `${item[cell.key]}`\n }\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default React.memo(Row) as typeof Row;\n"],"names":["_jsxs","_jsx","React"],"mappings":";;;;;;;;;;AAcA,IAAM,GAAG,GAAG,UAA2B,KAAkB,EAAA;;IAC/C,IAAA,IAAI,GAA8C,KAAK,CAAA,IAAnD,EAAE,IAAI,GAAwC,KAAK,CAAA,IAA7C,EAAE,WAAW,GAA2B,KAAK,CAAA,WAAhC,EAAE,KAAK,GAAoB,KAAK,CAAA,KAAzB,EAAE,aAAa,GAAK,KAAK,CAAA,aAAV;AAErD,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAEE,SAAS,EAAE,UAAU,CAAC,cAAc,GAAA,EAAA,GAAA,EAAA;AAClC,YAAA,EAAA,CAAC,MAAM,CAAC,MAAM,CAAA,GAAG,WAAW;AAC5B,YAAA,EAAA,CAAC,MAAM,CAAC,GAAG,CAAA,GAAG,CAAC,WAAW;gBAC1B,EAAA,QAAA,EAAA,CAEFC,GAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,GAAA,EAAA,GAAA,EAAA;AAEX,oBAAA,EAAA,CAAC,wBAAiB,MAAM,CAAC,KAAK,CAAE,IAAG,WAAW;oBAC9C,EAAA,CAAC,MAAM,CAAC,KAAK,CAAA,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW;AAEjD,oBAAA,EAAA,GAAA,aAAa,CACd,EAAA,QAAA,EAEA,IAAI,CAAC,KAAK,EAAA,CACR,EAEJ,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAClB,gBAAA,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACZ;;;AAGG;AACH,oBAAA,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW;AAAE,wBAAA,OAAO,IAAI;oBAChD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW;AAAE,wBAAA,OAAO,IAAI;AAEtD,oBAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,EAAA,QAAA;AAI1D;;;AAGG;AACH,wBAAA,OAAO,IAAI,CAAC,MAAM,KAAK;AACrB,8BAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI;AAClC,8BAAE,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,IATpB,EAAA,CAAA,MAAA,CAAG,KAAK,cAAI,IAAI,CAAC,EAAE,CAAE,CAWtB;AAEV,gBAAA,CAAC,CAAC,CAAA,EAAA,EA7CC,KAAK,CA8CN;AAEV,CAAC;AAED,YAAeC,cAAK,CAAC,IAAI,CAAC,GAAG,CAAe;;;;"}
@@ -135,8 +135,8 @@ var useComparisonTable = function (_a) {
135
135
  };
136
136
  };
137
137
 
138
- var css_248z = ".style-module_container__xHPlk {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scroll-snap-type: x mandatory;\n}\n@media (min-width: 34rem) {\n .style-module_container__xHPlk {\n scroll-snap-type: unset;\n }\n}\n\n.style-module_noScrollBars__1ri_E {\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n}\n.style-module_noScrollBars__1ri_E::-webkit-scrollbar {\n /* WebKit */\n width: 0;\n height: 0;\n}\n\n@media (max-width: 34rem) {\n .style-module_noScrollBarsMobile__1txeg * {\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n }\n .style-module_noScrollBarsMobile__1txeg * -webkit-scrollbar {\n /* WebKit */\n width: 0;\n height: 0;\n display: none;\n }\n}\n\n.style-module_collapsible-section__3pH68 {\n margin-top: 6px;\n}\n\n.style-module_section__1bf_0 + .style-module_section__1bf_0 {\n margin-top: 48px;\n}\n@media (min-width: 34rem) {\n .style-module_section__1bf_0 + .style-module_section__1bf_0 {\n margin-top: 72px;\n }\n}\n\n.style-module_overflow-container__oBPQw {\n width: max-content;\n min-width: 100%;\n}\n\n.style-module_group-container__2G6Ix {\n display: flex;\n flex-flow: column;\n width: max-content;\n width: var(--growContent, max-content);\n margin: auto;\n}\n\n.style-module_group-title__2vvRm {\n width: 100%;\n background-color: #FAF8F5;\n border-radius: 8px;\n}\n.style-module_group-title__2vvRm > h4 {\n padding: 24px;\n display: inline-block;\n}\n\n.style-module_sticky__2Xmbl {\n position: sticky;\n justify-content: flex-start;\n z-index: 1;\n top: 0;\n left: 0;\n}\n@media (min-width: 34rem) {\n .style-module_sticky__2Xmbl {\n border-right: 1px solid #f9f9fd;\n }\n}\n\n.style-module_header__23SZy {\n position: sticky;\n top: 0;\n top: var(--stickyHeaderTopOffset, 0);\n z-index: 2;\n background-color: white;\n}\n.style-module_header__23SZy .style-module_container__xHPlk {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n}\n.style-module_header__23SZy .style-module_container__xHPlk::-webkit-scrollbar {\n display: none;\n}\n\n.style-module_show-details-container__1smn4 {\n width: 100%;\n border: none;\n}\n\n.style-module_show-details-button__3HR-p {\n font-family: inherit;\n background-color: #FAF8F5;\n border: none;\n border-radius: 8px;\n height: 64px;\n justify-content: center;\n align-items: center;\n}\n.style-module_show-details-button__3HR-p svg {\n margin-left: 8px;\n}\n.style-module_show-details-button__3HR-p:hover {\n background-color: #FCF7EF;\n}\n\n.style-module_icon-inverted__1SnO1 {\n transform: rotate(180deg);\n transition: all 0.25s ease;\n}";
139
- var baseStyles = {"container":"style-module_container__xHPlk","noScrollBars":"style-module_noScrollBars__1ri_E","noScrollBarsMobile":"style-module_noScrollBarsMobile__1txeg","collapsible-section":"style-module_collapsible-section__3pH68","section":"style-module_section__1bf_0","overflow-container":"style-module_overflow-container__oBPQw","group-container":"style-module_group-container__2G6Ix","group-title":"style-module_group-title__2vvRm","sticky":"style-module_sticky__2Xmbl","header":"style-module_header__23SZy","show-details-container":"style-module_show-details-container__1smn4","show-details-button":"style-module_show-details-button__3HR-p","icon-inverted":"style-module_icon-inverted__1SnO1"};
138
+ var css_248z = ".style-module_card__2KGDn {\n border: 1px solid #f2f2f8;\n border-radius: 12px;\n padding: 24px;\n}\n.style-module_card__2KGDn section:last-of-type > button {\n border-bottom: none;\n}\n\n.style-module_container__xHPlk {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scroll-snap-type: x mandatory;\n}\n@media (min-width: 34rem) {\n .style-module_container__xHPlk {\n scroll-snap-type: unset;\n }\n}\n\n.style-module_noScrollBars__1ri_E {\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n}\n.style-module_noScrollBars__1ri_E::-webkit-scrollbar {\n /* WebKit */\n width: 0;\n height: 0;\n}\n\n@media (max-width: 34rem) {\n .style-module_noScrollBarsMobile__1txeg * {\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n }\n .style-module_noScrollBarsMobile__1txeg * -webkit-scrollbar {\n /* WebKit */\n width: 0;\n height: 0;\n display: none;\n }\n}\n\n.style-module_section__1bf_0 + .style-module_section__1bf_0 {\n margin-top: 48px;\n}\n@media (min-width: 34rem) {\n .style-module_section__1bf_0 + .style-module_section__1bf_0 {\n margin-top: 72px;\n }\n}\n\n.style-module_overflow-container__oBPQw {\n width: max-content;\n min-width: 100%;\n}\n\n.style-module_group-container__2G6Ix {\n display: flex;\n flex-flow: column;\n width: max-content;\n width: var(--growContent, max-content);\n margin: auto;\n}\n\n.style-module_group-title__2vvRm {\n width: 100%;\n background-color: #FAF8F5;\n border-radius: 8px;\n}\n.style-module_group-title__2vvRm > h4 {\n padding: 24px;\n display: inline-block;\n}\n\n.style-module_sticky__2Xmbl {\n position: sticky;\n justify-content: flex-start;\n z-index: 1;\n top: 0;\n left: 0;\n}\n\n.style-module_header__23SZy {\n position: sticky;\n top: 0;\n top: var(--stickyHeaderTopOffset, 0);\n z-index: 2;\n background-color: white;\n}\n.style-module_header__23SZy .style-module_container__xHPlk {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n}\n.style-module_header__23SZy .style-module_container__xHPlk::-webkit-scrollbar {\n display: none;\n}\n\n.style-module_show-details-container__1smn4 {\n width: 100%;\n border: none;\n}\n\n.style-module_show-details-button__3HR-p {\n font-family: inherit;\n background-color: #FAF8F5;\n border: none;\n border-radius: 8px;\n height: 64px;\n justify-content: center;\n align-items: center;\n}\n.style-module_show-details-button__3HR-p svg {\n margin-left: 8px;\n}\n.style-module_show-details-button__3HR-p:hover {\n background-color: #FCF7EF;\n}\n\n.style-module_icon-inverted__1SnO1 {\n transform: rotate(180deg);\n transition: all 0.25s ease;\n}";
139
+ var baseStyles = {"card":"style-module_card__2KGDn","container":"style-module_container__xHPlk","noScrollBars":"style-module_noScrollBars__1ri_E","noScrollBarsMobile":"style-module_noScrollBarsMobile__1txeg","section":"style-module_section__1bf_0","overflow-container":"style-module_overflow-container__oBPQw","group-container":"style-module_group-container__2G6Ix","group-title":"style-module_group-title__2vvRm","sticky":"style-module_sticky__2Xmbl","header":"style-module_header__23SZy","show-details-container":"style-module_show-details-container__1smn4","show-details-button":"style-module_show-details-button__3HR-p","icon-inverted":"style-module_icon-inverted__1SnO1"};
140
140
  styleInject(css_248z);
141
141
 
142
142
  var ComparisonTable = function (props) {
@@ -150,7 +150,7 @@ var ComparisonTable = function (props) {
150
150
  : {})), (stickyHeaderTopOffset
151
151
  ? { '--stickyHeaderTopOffset': "".concat(stickyHeaderTopOffset, "px") }
152
152
  : {})), (growContent ? { '--growContent': '100%' } : {}));
153
- return (jsx(distExports.ScrollSync, { onSync: headerRefCallbackRef, children: jsxs("div", { style: cssVariablesStyle, className: classNames((_a = {},
153
+ return (jsx(distExports.ScrollSync, { onSync: headerRefCallbackRef, children: jsxs("div", { style: cssVariablesStyle, className: classNames(baseStyles.card, (_a = {},
154
154
  _a[baseStyles.noScrollBars] = hideScrollBars,
155
155
  _a[baseStyles.noScrollBarsMobile] = hideScrollBarsMobile,
156
156
  _a)), children: [jsx("div", { ref: stickyHeaderRef, id: headerId, className: classNames(baseStyles.header, classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.header), children: jsx(distExports.ScrollSyncPane, { children: jsx("div", { className: classNames(baseStyles.container), children: jsx("div", { className: classNames(baseStyles['overflow-container']), children: jsxs("div", { className: baseStyles['group-container'], children: [jsx(TableArrows, { onClick: handleArrowsClick, active: {
@@ -171,14 +171,14 @@ var ComparisonTable = function (props) {
171
171
  return (jsx(Row, { rowId: rowId, cell: cell, data: data, cellClassName: classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.cell }, rowId));
172
172
  });
173
173
  var idString = "headerGroup-".concat(headerGroup.id);
174
- return (jsx(Fragment, { children: headerGroup.label && collapsibleSections ? (jsx(AccordionItem, { className: classNames(baseStyles['collapsible-section'], classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.collapsibleSection), label: headerGroup.label, headerClassName: "p24 br8", isOpen: openSectionId === headerGroup.id, onToggle: function () {
174
+ return (jsx(Fragment, { children: headerGroup.label && collapsibleSections ? (jsx(AccordionItem, { className: classNames(classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.collapsibleSection), label: headerGroup.label, isOpen: openSectionId === headerGroup.id, onToggle: function () {
175
175
  return setOpenSectionId(function (prev) {
176
176
  return prev === headerGroup.id ? null : headerGroup.id;
177
177
  });
178
178
  }, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset +
179
- ((_e = (_d = stickyHeaderRef.current) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect().height) !== null && _e !== void 0 ? _e : 0), children: jsx(distExports.ScrollSyncPane, { children: jsx("div", { className: classNames(baseStyles.container, 'pb16', classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.container, (_a = {},
179
+ ((_e = (_d = stickyHeaderRef.current) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect().height) !== null && _e !== void 0 ? _e : 0), children: jsx(distExports.ScrollSyncPane, { children: jsx("div", { className: classNames(baseStyles.container, classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.container, (_a = {},
180
180
  _a[baseStyles.noScrollBars] = hideScrollBars,
181
- _a)), children: jsx("div", { className: classNames(baseStyles['overflow-container']), children: jsx("div", { className: baseStyles['group-container'], children: content }) }) }) }) })) : (jsx("section", { className: classNames(baseStyles.section, classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.section), children: jsx(distExports.ScrollSyncPane, { children: jsx("div", { className: classNames(baseStyles.container, 'pb16', classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.container, (_b = {},
181
+ _a)), children: jsx("div", { className: classNames(baseStyles['overflow-container']), children: jsx("div", { className: baseStyles['group-container'], children: content }) }) }) }) })) : (jsx("section", { className: classNames(baseStyles.section, classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.section), children: jsx(distExports.ScrollSyncPane, { children: jsx("div", { className: classNames(baseStyles.container, classNameOverrides === null || classNameOverrides === void 0 ? void 0 : classNameOverrides.container, (_b = {},
182
182
  _b[baseStyles.noScrollBars] = hideScrollBars,
183
183
  _b)), children: jsx("div", { className: classNames(baseStyles['overflow-container']), children: jsxs("div", { className: baseStyles['group-container'], children: [
184
184
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/lib/components/comparisonTable/hooks/useComparisonTable.ts","../../../../../src/lib/components/comparisonTable/index.tsx"],"sourcesContent":["import debounce from 'lodash.debounce';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport generateId from '../../../util/generateId';\nimport { ArrowValues } from '../components/TableArrows';\n\nexport const useComparisonTable = ({\n onSelectionChanged,\n}: {\n onSelectionChanged?: (selectedIndex: number) => void;\n}) => {\n const [showMore, setShowMore] = useState<boolean>(false);\n const [headerWidth, setHeaderWidth] = useState(1400);\n const [selectedTabIndex, setSelectedTabIndex] = useState(0);\n const [headerId, setHeaderId] = useState('');\n const headerRef = useRef<HTMLDivElement | null>(null);\n const contentContainerRef = useRef<HTMLDivElement | null>(null);\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const headerRefCallbackRef = useCallback((node) => {\n if (node) {\n setHeaderWidth(node.clientWidth);\n }\n\n headerRef.current = node;\n }, []);\n\n useEffect(() => {\n if (!observerRef.current) {\n observerRef.current = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const currentTabIndex = Math.round(\n entry.target.scrollLeft / entry.contentRect.width\n );\n\n setHeaderWidth(entry.contentRect.width);\n\n // Update selectedTabIndex to match the calculated current tab index\n setSelectedTabIndex(currentTabIndex);\n });\n });\n }\n\n if (headerRef.current) {\n observerRef.current.observe(headerRef.current);\n }\n\n return () => {\n if (headerRef.current) {\n observerRef.current?.unobserve(headerRef.current);\n }\n observerRef.current?.disconnect();\n };\n }, []);\n\n useEffect(() => {\n const resetHeaderWidth = () => {\n if (headerRef.current) {\n setHeaderWidth(headerRef.current.clientWidth);\n }\n };\n\n window.addEventListener('resize', resetHeaderWidth);\n\n return () => window.removeEventListener('resize', resetHeaderWidth);\n }, []);\n\n const handleTableScroll = () => {\n if (!headerRef.current) {\n return;\n }\n\n const headerWidth = headerRef.current.getBoundingClientRect().width;\n\n const currentTabIndex = Math.round(\n headerRef.current.scrollLeft / headerWidth\n );\n\n setSelectedTabIndex(currentTabIndex);\n };\n\n const debouncedTableScroll = debounce(handleTableScroll, 150);\n\n useEffect(() => {\n headerRef.current?.addEventListener('scroll', debouncedTableScroll, {\n passive: true,\n });\n\n return headerRef.current?.removeEventListener('scroll', handleTableScroll);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleArrowsClick = (value: ArrowValues) => {\n if (headerRef.current) {\n const currentTabIndex = Math.round(\n headerRef.current.scrollLeft / headerRef.current.clientWidth\n );\n\n const direction = value === 'next' ? 1 : -1;\n\n const newTabIndex = currentTabIndex + direction;\n\n headerRef.current.scroll({\n top: 0,\n left: headerWidth * newTabIndex,\n behavior: 'smooth',\n });\n\n setSelectedTabIndex(() => {\n return newTabIndex;\n });\n }\n };\n\n const toggleMoreRows = async () => {\n setShowMore(!showMore);\n };\n\n useEffect(() => {\n if (headerRef.current) {\n return;\n }\n\n const headerById = document.getElementById(headerId);\n\n if (headerById) {\n headerRefCallbackRef(headerById);\n }\n }, [headerId, headerRefCallbackRef]);\n\n useEffect(() => {\n setHeaderId(generateId());\n }, []);\n\n useEffect(() => {\n onSelectionChanged?.(selectedTabIndex);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedTabIndex]);\n\n return {\n headerWidth,\n headerId,\n contentContainerRef,\n selectedTabIndex,\n setSelectedTabIndex,\n headerRefCallbackRef,\n handleArrowsClick,\n toggleMoreRows,\n showMore,\n };\n};\n","import classNames from 'classnames';\nimport { Fragment, useRef, useState } from 'react';\nimport { ScrollSync, ScrollSyncPane } from 'react-scroll-sync';\n\nimport { AccordionItem } from './components/AccordionItem';\nimport Chevron from './components/Chevron';\nimport Row from './components/Row';\nimport TableArrows from './components/TableArrows';\nimport TableButton from './components/TableButton';\nimport TableInfoButton from './components/TableInfoButton';\nimport TableRating from './components/TableRating';\nimport TableRowHeader from './components/TableRowHeader';\nimport TableTrueFalse from './components/TableTrueFalse';\nimport { useComparisonTable } from './hooks/useComparisonTable';\nimport baseStyles from './style.module.scss';\n\nexport interface CellBaseProps<T> {\n /** Used to display the row's title */\n label?: React.ReactNode;\n /**\n *\n * @param value The current data value\n * @param element The complete data object\n */\n render?: (value: any, element: T) => React.ReactNode; // TODO: add typing to value param\n}\n\ninterface CellWithId<T> extends CellBaseProps<T> {\n /** Used when adding component add-ons */\n addonId: string | number;\n}\n\nexport type Cell<T> =\n | ({ key: Extract<keyof T, string> } & CellBaseProps<T>)\n | ({ key?: undefined } & CellWithId<T>);\n\nexport interface TableHeader<T> {\n /** Required unique id number for each table group */\n id: number;\n /** Used to display a table group subheader */\n label?: React.ReactNode;\n cells: Array<Cell<T>>;\n default?: boolean;\n}\n\nexport interface ComparisonTableProps<T> {\n headers: Array<TableHeader<T>>;\n data: Array<T>;\n hideDetails?: boolean;\n hideDetailsCaption?: string;\n showDetailsCaption?: string;\n hideScrollBars?: boolean;\n hideScrollBarsMobile?: boolean;\n collapsibleSections?: boolean;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n cellWidth?: number;\n firstColumnWidth?: number;\n stickyHeaderTopOffset?: number;\n growContent?: boolean;\n classNameOverrides?: ClassNameOverrides;\n onSelectionChanged?: (selectedIndex: number) => void;\n}\n\nexport interface ClassNameOverrides {\n header?: string;\n container?: string;\n cell?: string;\n headerCell?: string;\n collapsibleSection?: string;\n section?: string;\n hideDetailsButton?: string;\n}\n\nconst ComparisonTable = <T extends { id: number }>(\n props: ComparisonTableProps<T>\n) => {\n const {\n headers,\n data,\n hideDetails,\n hideDetailsCaption = 'Hide details',\n showDetailsCaption = 'Show details',\n classNameOverrides,\n hideScrollBars,\n hideScrollBarsMobile = true,\n collapsibleSections,\n scrollOnOpen,\n scrollTopOffset = 0,\n cellWidth,\n firstColumnWidth,\n stickyHeaderTopOffset,\n growContent,\n onSelectionChanged,\n } = props;\n\n const {\n headerWidth,\n headerId,\n contentContainerRef,\n selectedTabIndex,\n headerRefCallbackRef,\n handleArrowsClick,\n toggleMoreRows,\n showMore,\n } = useComparisonTable({ onSelectionChanged });\n\n const [openSectionId, setOpenSectionId] = useState<number | null>(null);\n const stickyHeaderRef = useRef<HTMLDivElement>(null);\n\n const cssVariablesStyle = {\n '--tableWidth': `${headerWidth}px`,\n ...(cellWidth ? { '--cellWidth': `${cellWidth}px` } : {}),\n ...(firstColumnWidth\n ? { '--firstColumnWidth': `${firstColumnWidth}px` }\n : {}),\n ...(stickyHeaderTopOffset\n ? { '--stickyHeaderTopOffset': `${stickyHeaderTopOffset}px` }\n : {}),\n ...(growContent ? { '--growContent': '100%' } : {}),\n } as React.CSSProperties;\n\n return (\n <ScrollSync onSync={headerRefCallbackRef}>\n <div\n style={cssVariablesStyle}\n className={classNames({\n [baseStyles.noScrollBars]: hideScrollBars,\n [baseStyles.noScrollBarsMobile]: hideScrollBarsMobile,\n })}\n >\n <div\n ref={stickyHeaderRef}\n id={headerId}\n className={classNames(baseStyles.header, classNameOverrides?.header)}\n >\n <ScrollSyncPane>\n <div className={classNames(baseStyles.container)}>\n <div className={classNames(baseStyles['overflow-container'])}>\n <div className={baseStyles['group-container']}>\n <TableArrows\n onClick={handleArrowsClick}\n active={{\n left: selectedTabIndex > 0,\n right: selectedTabIndex < data.length - 1,\n }}\n />\n <Row<T>\n key=\"table-header-row\"\n rowId=\"table-header-row\"\n cell={headers[0].cells[0]}\n data={data}\n isRowHeader\n cellClassName={classNameOverrides?.headerCell}\n />\n </div>\n </div>\n </div>\n </ScrollSyncPane>\n </div>\n <div ref={contentContainerRef}>\n {Array.isArray(headers) &&\n headers\n .filter(\n (headerGroup) => !hideDetails || showMore || headerGroup.default\n )\n .map((headerGroup, headerGroupIndex) => {\n const content = headerGroup.cells?.map((cell, index) => {\n const rowId = `${headerGroup.id}-${\n cell.key ?? 'addon'\n }-${index}`;\n\n /** Do not render the first row */\n if (index === 0 && headerGroupIndex === 0) return null;\n\n return (\n <Row<T>\n key={rowId}\n rowId={rowId}\n cell={cell}\n data={data}\n cellClassName={classNameOverrides?.cell}\n />\n );\n });\n\n const idString = `headerGroup-${headerGroup.id}`;\n\n return (\n <Fragment key={idString}>\n {headerGroup.label && collapsibleSections ? (\n <AccordionItem\n className={classNames(\n baseStyles['collapsible-section'],\n classNameOverrides?.collapsibleSection\n )}\n label={headerGroup.label}\n headerClassName=\"p24 br8\"\n isOpen={openSectionId === headerGroup.id}\n onToggle={() =>\n setOpenSectionId((prev) =>\n prev === headerGroup.id ? null : headerGroup.id\n )\n }\n scrollOnOpen={scrollOnOpen}\n scrollTopOffset={\n scrollTopOffset +\n (stickyHeaderRef.current?.getBoundingClientRect()\n .height ?? 0)\n }\n >\n <ScrollSyncPane>\n <div\n className={classNames(\n baseStyles.container,\n 'pb16',\n classNameOverrides?.container,\n {\n [baseStyles.noScrollBars]: hideScrollBars,\n }\n )}\n >\n <div\n className={classNames(\n baseStyles['overflow-container']\n )}\n >\n <div className={baseStyles['group-container']}>\n {content}\n </div>\n </div>\n </div>\n </ScrollSyncPane>\n </AccordionItem>\n ) : (\n <section\n key={idString}\n className={classNames(\n baseStyles.section,\n classNameOverrides?.section\n )}\n >\n <ScrollSyncPane>\n <div\n className={classNames(\n baseStyles.container,\n 'pb16',\n classNameOverrides?.container,\n {\n [baseStyles.noScrollBars]: hideScrollBars,\n }\n )}\n >\n <div\n className={classNames(\n baseStyles['overflow-container']\n )}\n >\n <div className={baseStyles['group-container']}>\n {\n /**\n * Print a table subheader if the `label` value is present\n */\n headerGroup.label && !collapsibleSections && (\n <div className={baseStyles['group-title']}>\n <h4\n className={`p-h4 ${baseStyles.sticky}`}\n >\n {headerGroup.label}\n </h4>\n </div>\n )\n }\n {content}\n </div>\n </div>\n </div>\n </ScrollSyncPane>\n </section>\n )}\n </Fragment>\n );\n })}\n {hideDetails && (\n <div\n className={classNames(\n baseStyles['show-details-container'],\n baseStyles.sticky,\n 'mt48'\n )}\n >\n <div>\n <button\n className={classNames(\n 'w100 d-flex p-h4 c-pointer',\n baseStyles['show-details-button'],\n classNameOverrides?.hideDetailsButton\n )}\n onClick={toggleMoreRows}\n type=\"button\"\n >\n {showMore ? hideDetailsCaption : showDetailsCaption}\n <Chevron\n className={showMore ? '' : baseStyles['icon-inverted']}\n />\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n </ScrollSync>\n );\n};\n\nexport {\n ComparisonTable,\n TableButton,\n TableInfoButton,\n TableRating,\n TableRowHeader,\n TableTrueFalse,\n};\n"],"names":["_jsx","ScrollSync","_jsxs","ScrollSyncPane"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAM,kBAAkB,GAAG,UAAC,EAIlC,EAAA;AAHC,IAAA,IAAA,kBAAkB,GAAA,EAAA,CAAA,kBAAA;IAIZ,IAAA,EAAA,GAA0B,QAAQ,CAAU,KAAK,CAAC,EAAjD,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAA4B;IAClD,IAAA,EAAA,GAAgC,QAAQ,CAAC,IAAI,CAAC,EAA7C,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,cAAc,GAAA,EAAA,CAAA,CAAA,CAAkB;IAC9C,IAAA,EAAA,GAA0C,QAAQ,CAAC,CAAC,CAAC,EAApD,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,mBAAmB,GAAA,EAAA,CAAA,CAAA,CAAe;IACrD,IAAA,EAAA,GAA0B,QAAQ,CAAC,EAAE,CAAC,EAArC,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAgB;AAC5C,IAAA,IAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC;AACrD,IAAA,IAAM,mBAAmB,GAAG,MAAM,CAAwB,IAAI,CAAC;AAC/D,IAAA,IAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC;AAEvD,IAAA,IAAM,oBAAoB,GAAG,WAAW,CAAC,UAAC,IAAI,EAAA;QAC5C,IAAI,IAAI,EAAE;AACR,YAAA,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC;AAEA,QAAA,SAAS,CAAC,OAAO,GAAG,IAAI;IAC1B,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AACxB,YAAA,WAAW,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,UAAC,OAAO,EAAA;AAC/C,gBAAA,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK,EAAA;AACpB,oBAAA,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAClD;AAED,oBAAA,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;;oBAGvC,mBAAmB,CAAC,eAAe,CAAC;AACtC,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;QAChD;QAEA,OAAO,YAAA;;AACL,YAAA,IAAI,SAAS,CAAC,OAAO,EAAE;gBACrB,CAAA,EAAA,GAAA,WAAW,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;YACnD;AACA,YAAA,CAAA,EAAA,GAAA,WAAW,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,EAAE;AACnC,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAM,gBAAgB,GAAG,YAAA;AACvB,YAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,gBAAA,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/C;AACF,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AAEnD,QAAA,OAAO,YAAA,EAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA,CAAtD,CAAsD;IACrE,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,IAAM,iBAAiB,GAAG,YAAA;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACtB;QACF;QAEA,IAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK;AAEnE,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,WAAW,CAC3C;QAED,mBAAmB,CAAC,eAAe,CAAC;AACtC,IAAA,CAAC;IAED,IAAM,oBAAoB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC;AAE7D,IAAA,SAAS,CAAC,YAAA;;QACR,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;AAClE,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;QAEF,OAAO,CAAA,EAAA,GAAA,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAC5E,IAAA,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,iBAAiB,GAAG,UAAC,KAAkB,EAAA;AAC3C,QAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,YAAA,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAC7D;AAED,YAAA,IAAM,SAAS,GAAG,KAAK,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE;AAE3C,YAAA,IAAM,aAAW,GAAG,eAAe,GAAG,SAAS;AAE/C,YAAA,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;AACvB,gBAAA,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,WAAW,GAAG,aAAW;AAC/B,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC;AAEF,YAAA,mBAAmB,CAAC,YAAA;AAClB,gBAAA,OAAO,aAAW;AACpB,YAAA,CAAC,CAAC;QACJ;AACF,IAAA,CAAC;AAED,IAAA,IAAM,cAAc,GAAG,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;AACrB,YAAA,WAAW,CAAC,CAAC,QAAQ,CAAC;;;SACvB;AAED,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB;QACF;QAEA,IAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;QAEpD,IAAI,UAAU,EAAE;YACd,oBAAoB,CAAC,UAAU,CAAC;QAClC;AACF,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;AAEpC,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,WAAW,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,kBAAkB,aAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAG,gBAAgB,CAAC;;AAExC,IAAA,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAEtB,OAAO;AACL,QAAA,WAAW,EAAA,WAAA;AACX,QAAA,QAAQ,EAAA,QAAA;AACR,QAAA,mBAAmB,EAAA,mBAAA;AACnB,QAAA,gBAAgB,EAAA,gBAAA;AAChB,QAAA,mBAAmB,EAAA,mBAAA;AACnB,QAAA,oBAAoB,EAAA,oBAAA;AACpB,QAAA,iBAAiB,EAAA,iBAAA;AACjB,QAAA,cAAc,EAAA,cAAA;AACd,QAAA,QAAQ,EAAA,QAAA;KACT;AACH,CAAC;;;;;;AC1ED,IAAM,eAAe,GAAG,UACtB,KAA8B,EAAA;;IAG5B,IAAA,OAAO,GAgBL,KAAK,CAAA,OAhBA,EACP,IAAI,GAeF,KAAK,CAAA,IAfH,EACJ,WAAW,GAcT,KAAK,YAdI,EACX,EAAA,GAaE,KAAK,CAAA,kBAb4B,EAAnC,kBAAkB,GAAA,EAAA,KAAA,MAAA,GAAG,cAAc,KAAA,EACnC,EAAA,GAYE,KAAK,CAAA,kBAZ4B,EAAnC,kBAAkB,GAAA,EAAA,KAAA,MAAA,GAAG,cAAc,KAAA,EACnC,kBAAkB,GAWhB,KAAK,CAAA,kBAXW,EAClB,cAAc,GAUZ,KAAK,CAAA,cAVO,EACd,EAAA,GASE,KAAK,CAAA,oBAToB,EAA3B,oBAAoB,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,KAAA,EAC3B,mBAAmB,GAQjB,KAAK,CAAA,mBARY,EACnB,YAAY,GAOV,KAAK,CAAA,YAPK,EACZ,KAME,KAAK,CAAA,eANY,EAAnB,eAAe,GAAA,EAAA,KAAA,MAAA,GAAG,CAAC,GAAA,EAAA,EACnB,SAAS,GAKP,KAAK,CAAA,SALE,EACT,gBAAgB,GAId,KAAK,CAAA,gBAJS,EAChB,qBAAqB,GAGnB,KAAK,sBAHc,EACrB,WAAW,GAET,KAAK,CAAA,WAFI,EACX,kBAAkB,GAChB,KAAK,CAAA,kBADW;AAGd,IAAA,IAAA,EAAA,GASF,kBAAkB,CAAC,EAAE,kBAAkB,EAAA,kBAAA,EAAE,CAAC,EAR5C,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,QAAQ,cAAA,EACR,mBAAmB,GAAA,EAAA,CAAA,mBAAA,EACnB,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,oBAAoB,0BAAA,EACpB,iBAAiB,GAAA,EAAA,CAAA,iBAAA,EACjB,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,QAAQ,cACoC;IAExC,IAAA,EAAA,GAAoC,QAAQ,CAAgB,IAAI,CAAC,EAAhE,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAiC;AACvE,IAAA,IAAM,eAAe,GAAG,MAAM,CAAiB,IAAI,CAAC;AAEpD,IAAA,IAAM,iBAAiB,GAAG,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EACxB,cAAc,EAAE,EAAA,CAAA,MAAA,CAAG,WAAW,EAAA,IAAA,CAAI,EAAA,GAC9B,SAAS,GAAG,EAAE,aAAa,EAAE,EAAA,CAAA,MAAA,CAAG,SAAS,EAAA,IAAA,CAAI,EAAE,GAAG,EAAE,EAAC,GACrD;AACF,UAAE,EAAE,oBAAoB,EAAE,EAAA,CAAA,MAAA,CAAG,gBAAgB,OAAI;AACjD,UAAE,EAAE,EAAC,GACH;AACF,UAAE,EAAE,yBAAyB,EAAE,EAAA,CAAA,MAAA,CAAG,qBAAqB,OAAI;UACzD,EAAE,EAAC,GACH,WAAW,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,EAC5B;AAExB,IAAA,QACEA,GAAA,CAACC,sBAAU,EAAA,EAAC,MAAM,EAAE,oBAAoB,EAAA,QAAA,EACtCC,IAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,UAAU,EAAA,EAAA,GAAA,EAAA;AACnB,gBAAA,EAAA,CAAC,UAAU,CAAC,YAAY,CAAA,GAAG,cAAc;AACzC,gBAAA,EAAA,CAAC,UAAU,CAAC,kBAAkB,CAAA,GAAG,oBAAoB;AACrD,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAEFF,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,eAAe,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,MAAM,CAAC,EAAA,QAAA,EAEpEA,GAAA,CAACG,0BAAc,EAAA,EAAA,QAAA,EACbH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAA,QAAA,EAC9CA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAA,QAAA,EAC1DE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,CAC3CF,GAAA,CAAC,WAAW,EAAA,EACV,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE;gDACN,IAAI,EAAE,gBAAgB,GAAG,CAAC;AAC1B,gDAAA,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;6CAC1C,EAAA,CACD,EACFA,GAAA,CAAC,GAAG,EAAA,EAEF,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,IAAI,EACV,WAAW,EAAA,IAAA,EACX,aAAa,EAAE,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,UAAU,EAAA,EALzC,kBAAkB,CAMtB,CAAA,EAAA,CACE,EAAA,CACF,EAAA,CACF,GACS,EAAA,CACb,EACNE,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,mBAAmB,EAAA,QAAA,EAAA,CAC1B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;4BACrB;AACG,iCAAA,MAAM,CACL,UAAC,WAAW,EAAA,EAAK,OAAA,CAAC,WAAW,IAAI,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAA,CAA/C,CAA+C;AAEjE,iCAAA,GAAG,CAAC,UAAC,WAAW,EAAE,gBAAgB,EAAA;;;AACjC,gCAAA,IAAM,OAAO,GAAG,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;;AACjD,oCAAA,IAAM,KAAK,GAAG,EAAA,CAAA,MAAA,CAAG,WAAW,CAAC,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAC7B,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,OAAO,EAAA,GAAA,CAAA,CAAA,MAAA,CACjB,KAAK,CAAE;;AAGX,oCAAA,IAAI,KAAK,KAAK,CAAC,IAAI,gBAAgB,KAAK,CAAC;AAAE,wCAAA,OAAO,IAAI;AAEtD,oCAAA,QACEF,GAAA,CAAC,GAAG,EAAA,EAEF,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,IAAI,EAAA,EAJlC,KAAK,CAKV;AAEN,gCAAA,CAAC,CAAC;AAEF,gCAAA,IAAM,QAAQ,GAAG,cAAA,CAAA,MAAA,CAAe,WAAW,CAAC,EAAE,CAAE;gCAEhD,QACEA,GAAA,CAAC,QAAQ,EAAA,EAAA,QAAA,EACN,WAAW,CAAC,KAAK,IAAI,mBAAmB,IACvCA,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,qBAAqB,CAAC,EACjC,kBAAkB,aAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,kBAAkB,CACvC,EACD,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,eAAe,EAAC,SAAS,EACzB,MAAM,EAAE,aAAa,KAAK,WAAW,CAAC,EAAE,EACxC,QAAQ,EAAE,YAAA;4CACR,OAAA,gBAAgB,CAAC,UAAC,IAAI,EAAA;AACpB,gDAAA,OAAA,IAAI,KAAK,WAAW,CAAC,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC,EAAE;AAA/C,4CAAA,CAA+C,CAChD;AAFD,wCAAA,CAEC,EAEH,YAAY,EAAE,YAAY,EAC1B,eAAe,EACb,eAAe;AACf,6CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,eAAe,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,qBAAqB,EAAA,CAC5C,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,CAAC,EAAA,QAAA,EAGjBA,IAACG,0BAAc,EAAA,EAAA,QAAA,EACbH,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,SAAS,EACpB,MAAM,EACN,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AAE3B,oDAAA,EAAA,CAAC,UAAU,CAAC,YAAY,CAAA,GAAG,cAAc;AAE5C,oDAAA,EAAA,EAAA,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,oBAAoB,CAAC,CACjC,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAC1C,OAAO,EAAA,CACJ,EAAA,CACF,GACF,EAAA,CACS,EAAA,CACH,KAEhBA,GAAA,CAAA,SAAA,EAAA,EAEE,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,OAAO,EAClB,kBAAkB,aAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,OAAO,CAC5B,EAAA,QAAA,EAEDA,GAAA,CAACG,0BAAc,EAAA,EAAA,QAAA,EACbH,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,SAAS,EACpB,MAAM,EACN,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AAE3B,oDAAA,EAAA,CAAC,UAAU,CAAC,YAAY,CAAA,GAAG,cAAc;AAE5C,oDAAA,EAAA,EAAA,EAAA,QAAA,EAEDA,aACE,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,oBAAoB,CAAC,CACjC,YAEDE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA;AAEzC;;AAEG;4DACH,WAAW,CAAC,KAAK,IAAI,CAAC,mBAAmB,KACvCF,aAAK,SAAS,EAAE,UAAU,CAAC,aAAa,CAAC,EAAA,QAAA,EACvCA,GAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAE,OAAA,CAAA,MAAA,CAAQ,UAAU,CAAC,MAAM,CAAE,EAAA,QAAA,EAErC,WAAW,CAAC,KAAK,EAAA,CACf,GACD,CACP,EAEF,OAAO,CAAA,EAAA,CACJ,EAAA,CACF,GACF,EAAA,CACS,EAAA,EAzCZ,QAAQ,CA0CL,CACX,IA1FY,QAAQ,CA2FZ;AAEf,4BAAA,CAAC,CAAC,EACL,WAAW,KACVA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,CACnB,UAAU,CAAC,wBAAwB,CAAC,EACpC,UAAU,CAAC,MAAM,EACjB,MAAM,CACP,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACEE,iBACE,SAAS,EAAE,UAAU,CACnB,4BAA4B,EAC5B,UAAU,CAAC,qBAAqB,CAAC,EACjC,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,iBAAiB,CACtC,EACD,OAAO,EAAE,cAAc,EACvB,IAAI,EAAC,QAAQ,EAAA,QAAA,EAAA,CAEZ,QAAQ,GAAG,kBAAkB,GAAG,kBAAkB,EACnDF,GAAA,CAAC,OAAO,IACN,SAAS,EAAE,QAAQ,GAAG,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,EAAA,CACtD,CAAA,EAAA,CACK,GACL,EAAA,CACF,CACP,IACG,CAAA,EAAA,CACF,EAAA,CACK;AAEjB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/lib/components/comparisonTable/hooks/useComparisonTable.ts","../../../../../src/lib/components/comparisonTable/index.tsx"],"sourcesContent":["import debounce from 'lodash.debounce';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport generateId from '../../../util/generateId';\nimport { ArrowValues } from '../components/TableArrows';\n\nexport const useComparisonTable = ({\n onSelectionChanged,\n}: {\n onSelectionChanged?: (selectedIndex: number) => void;\n}) => {\n const [showMore, setShowMore] = useState<boolean>(false);\n const [headerWidth, setHeaderWidth] = useState(1400);\n const [selectedTabIndex, setSelectedTabIndex] = useState(0);\n const [headerId, setHeaderId] = useState('');\n const headerRef = useRef<HTMLDivElement | null>(null);\n const contentContainerRef = useRef<HTMLDivElement | null>(null);\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const headerRefCallbackRef = useCallback((node) => {\n if (node) {\n setHeaderWidth(node.clientWidth);\n }\n\n headerRef.current = node;\n }, []);\n\n useEffect(() => {\n if (!observerRef.current) {\n observerRef.current = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const currentTabIndex = Math.round(\n entry.target.scrollLeft / entry.contentRect.width\n );\n\n setHeaderWidth(entry.contentRect.width);\n\n // Update selectedTabIndex to match the calculated current tab index\n setSelectedTabIndex(currentTabIndex);\n });\n });\n }\n\n if (headerRef.current) {\n observerRef.current.observe(headerRef.current);\n }\n\n return () => {\n if (headerRef.current) {\n observerRef.current?.unobserve(headerRef.current);\n }\n observerRef.current?.disconnect();\n };\n }, []);\n\n useEffect(() => {\n const resetHeaderWidth = () => {\n if (headerRef.current) {\n setHeaderWidth(headerRef.current.clientWidth);\n }\n };\n\n window.addEventListener('resize', resetHeaderWidth);\n\n return () => window.removeEventListener('resize', resetHeaderWidth);\n }, []);\n\n const handleTableScroll = () => {\n if (!headerRef.current) {\n return;\n }\n\n const headerWidth = headerRef.current.getBoundingClientRect().width;\n\n const currentTabIndex = Math.round(\n headerRef.current.scrollLeft / headerWidth\n );\n\n setSelectedTabIndex(currentTabIndex);\n };\n\n const debouncedTableScroll = debounce(handleTableScroll, 150);\n\n useEffect(() => {\n headerRef.current?.addEventListener('scroll', debouncedTableScroll, {\n passive: true,\n });\n\n return headerRef.current?.removeEventListener('scroll', handleTableScroll);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleArrowsClick = (value: ArrowValues) => {\n if (headerRef.current) {\n const currentTabIndex = Math.round(\n headerRef.current.scrollLeft / headerRef.current.clientWidth\n );\n\n const direction = value === 'next' ? 1 : -1;\n\n const newTabIndex = currentTabIndex + direction;\n\n headerRef.current.scroll({\n top: 0,\n left: headerWidth * newTabIndex,\n behavior: 'smooth',\n });\n\n setSelectedTabIndex(() => {\n return newTabIndex;\n });\n }\n };\n\n const toggleMoreRows = async () => {\n setShowMore(!showMore);\n };\n\n useEffect(() => {\n if (headerRef.current) {\n return;\n }\n\n const headerById = document.getElementById(headerId);\n\n if (headerById) {\n headerRefCallbackRef(headerById);\n }\n }, [headerId, headerRefCallbackRef]);\n\n useEffect(() => {\n setHeaderId(generateId());\n }, []);\n\n useEffect(() => {\n onSelectionChanged?.(selectedTabIndex);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedTabIndex]);\n\n return {\n headerWidth,\n headerId,\n contentContainerRef,\n selectedTabIndex,\n setSelectedTabIndex,\n headerRefCallbackRef,\n handleArrowsClick,\n toggleMoreRows,\n showMore,\n };\n};\n","import classNames from 'classnames';\nimport { Fragment, useRef, useState } from 'react';\nimport { ScrollSync, ScrollSyncPane } from 'react-scroll-sync';\n\nimport { AccordionItem } from './components/AccordionItem';\nimport Chevron from './components/Chevron';\nimport Row from './components/Row';\nimport TableArrows from './components/TableArrows';\nimport TableButton from './components/TableButton';\nimport TableInfoButton from './components/TableInfoButton';\nimport TableRating from './components/TableRating';\nimport TableRowHeader from './components/TableRowHeader';\nimport TableTrueFalse from './components/TableTrueFalse';\nimport { useComparisonTable } from './hooks/useComparisonTable';\nimport baseStyles from './style.module.scss';\n\nexport interface CellBaseProps<T> {\n /** Used to display the row's title */\n label?: React.ReactNode;\n /**\n *\n * @param value The current data value\n * @param element The complete data object\n */\n render?: (value: any, element: T) => React.ReactNode; // TODO: add typing to value param\n}\n\ninterface CellWithId<T> extends CellBaseProps<T> {\n /** Used when adding component add-ons */\n addonId: string | number;\n}\n\nexport type Cell<T> =\n | ({ key: Extract<keyof T, string> } & CellBaseProps<T>)\n | ({ key?: undefined } & CellWithId<T>);\n\nexport interface TableHeader<T> {\n /** Required unique id number for each table group */\n id: number;\n /** Used to display a table group subheader */\n label?: React.ReactNode;\n cells: Array<Cell<T>>;\n default?: boolean;\n}\n\nexport interface ComparisonTableProps<T> {\n headers: Array<TableHeader<T>>;\n data: Array<T>;\n hideDetails?: boolean;\n hideDetailsCaption?: string;\n showDetailsCaption?: string;\n hideScrollBars?: boolean;\n hideScrollBarsMobile?: boolean;\n collapsibleSections?: boolean;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n cellWidth?: number;\n firstColumnWidth?: number;\n stickyHeaderTopOffset?: number;\n growContent?: boolean;\n classNameOverrides?: ClassNameOverrides;\n onSelectionChanged?: (selectedIndex: number) => void;\n}\n\nexport interface ClassNameOverrides {\n header?: string;\n container?: string;\n cell?: string;\n headerCell?: string;\n collapsibleSection?: string;\n section?: string;\n hideDetailsButton?: string;\n}\n\nconst ComparisonTable = <T extends { id: number }>(\n props: ComparisonTableProps<T>\n) => {\n const {\n headers,\n data,\n hideDetails,\n hideDetailsCaption = 'Hide details',\n showDetailsCaption = 'Show details',\n classNameOverrides,\n hideScrollBars,\n hideScrollBarsMobile = true,\n collapsibleSections,\n scrollOnOpen,\n scrollTopOffset = 0,\n cellWidth,\n firstColumnWidth,\n stickyHeaderTopOffset,\n growContent,\n onSelectionChanged,\n } = props;\n\n const {\n headerWidth,\n headerId,\n contentContainerRef,\n selectedTabIndex,\n headerRefCallbackRef,\n handleArrowsClick,\n toggleMoreRows,\n showMore,\n } = useComparisonTable({ onSelectionChanged });\n\n const [openSectionId, setOpenSectionId] = useState<number | null>(null);\n const stickyHeaderRef = useRef<HTMLDivElement>(null);\n\n const cssVariablesStyle = {\n '--tableWidth': `${headerWidth}px`,\n ...(cellWidth ? { '--cellWidth': `${cellWidth}px` } : {}),\n ...(firstColumnWidth\n ? { '--firstColumnWidth': `${firstColumnWidth}px` }\n : {}),\n ...(stickyHeaderTopOffset\n ? { '--stickyHeaderTopOffset': `${stickyHeaderTopOffset}px` }\n : {}),\n ...(growContent ? { '--growContent': '100%' } : {}),\n } as React.CSSProperties;\n\n return (\n <ScrollSync onSync={headerRefCallbackRef}>\n <div\n style={cssVariablesStyle}\n className={classNames(baseStyles.card, {\n [baseStyles.noScrollBars]: hideScrollBars,\n [baseStyles.noScrollBarsMobile]: hideScrollBarsMobile,\n })}\n >\n <div\n ref={stickyHeaderRef}\n id={headerId}\n className={classNames(baseStyles.header, classNameOverrides?.header)}\n >\n <ScrollSyncPane>\n <div className={classNames(baseStyles.container)}>\n <div className={classNames(baseStyles['overflow-container'])}>\n <div className={baseStyles['group-container']}>\n <TableArrows\n onClick={handleArrowsClick}\n active={{\n left: selectedTabIndex > 0,\n right: selectedTabIndex < data.length - 1,\n }}\n />\n <Row<T>\n key=\"table-header-row\"\n rowId=\"table-header-row\"\n cell={headers[0].cells[0]}\n data={data}\n isRowHeader\n cellClassName={classNameOverrides?.headerCell}\n />\n </div>\n </div>\n </div>\n </ScrollSyncPane>\n </div>\n <div ref={contentContainerRef}>\n {Array.isArray(headers) &&\n headers\n .filter(\n (headerGroup) => !hideDetails || showMore || headerGroup.default\n )\n .map((headerGroup, headerGroupIndex) => {\n const content = headerGroup.cells?.map((cell, index) => {\n const rowId = `${headerGroup.id}-${\n cell.key ?? 'addon'\n }-${index}`;\n\n /** Do not render the first row */\n if (index === 0 && headerGroupIndex === 0) return null;\n\n return (\n <Row<T>\n key={rowId}\n rowId={rowId}\n cell={cell}\n data={data}\n cellClassName={classNameOverrides?.cell}\n />\n );\n });\n\n const idString = `headerGroup-${headerGroup.id}`;\n\n return (\n <Fragment key={idString}>\n {headerGroup.label && collapsibleSections ? (\n <AccordionItem\n className={classNames(\n classNameOverrides?.collapsibleSection\n )}\n label={headerGroup.label}\n isOpen={openSectionId === headerGroup.id}\n onToggle={() =>\n setOpenSectionId((prev) =>\n prev === headerGroup.id ? null : headerGroup.id\n )\n }\n scrollOnOpen={scrollOnOpen}\n scrollTopOffset={\n scrollTopOffset +\n (stickyHeaderRef.current?.getBoundingClientRect()\n .height ?? 0)\n }\n >\n <ScrollSyncPane>\n <div\n className={classNames(\n baseStyles.container,\n classNameOverrides?.container,\n {\n [baseStyles.noScrollBars]: hideScrollBars,\n }\n )}\n >\n <div\n className={classNames(\n baseStyles['overflow-container']\n )}\n >\n <div className={baseStyles['group-container']}>\n {content}\n </div>\n </div>\n </div>\n </ScrollSyncPane>\n </AccordionItem>\n ) : (\n <section\n key={idString}\n className={classNames(\n baseStyles.section,\n classNameOverrides?.section\n )}\n >\n <ScrollSyncPane>\n <div\n className={classNames(\n baseStyles.container,\n classNameOverrides?.container,\n {\n [baseStyles.noScrollBars]: hideScrollBars,\n }\n )}\n >\n <div\n className={classNames(\n baseStyles['overflow-container']\n )}\n >\n <div className={baseStyles['group-container']}>\n {\n /**\n * Print a table subheader if the `label` value is present\n */\n headerGroup.label && !collapsibleSections && (\n <div className={baseStyles['group-title']}>\n <h4\n className={`p-h4 ${baseStyles.sticky}`}\n >\n {headerGroup.label}\n </h4>\n </div>\n )\n }\n {content}\n </div>\n </div>\n </div>\n </ScrollSyncPane>\n </section>\n )}\n </Fragment>\n );\n })}\n {hideDetails && (\n <div\n className={classNames(\n baseStyles['show-details-container'],\n baseStyles.sticky,\n 'mt48'\n )}\n >\n <div>\n <button\n className={classNames(\n 'w100 d-flex p-h4 c-pointer',\n baseStyles['show-details-button'],\n classNameOverrides?.hideDetailsButton\n )}\n onClick={toggleMoreRows}\n type=\"button\"\n >\n {showMore ? hideDetailsCaption : showDetailsCaption}\n <Chevron\n className={showMore ? '' : baseStyles['icon-inverted']}\n />\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n </ScrollSync>\n );\n};\n\nexport {\n ComparisonTable,\n TableButton,\n TableInfoButton,\n TableRating,\n TableRowHeader,\n TableTrueFalse,\n};\n"],"names":["_jsx","ScrollSync","_jsxs","ScrollSyncPane"],"mappings":"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"}