@popsure/dirty-swan 0.66.19 → 0.66.21

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 (63) hide show
  1. package/dist/cjs/index.js +352 -306
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/lib/components/table/Table.d.ts +2 -1
  4. package/dist/cjs/lib/components/table/Table.stories.d.ts +9 -1
  5. package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
  6. package/dist/cjs/lib/components/tabs/Tabs.d.ts +12 -0
  7. package/dist/cjs/lib/components/tabs/Tabs.stories.d.ts +45 -0
  8. package/dist/cjs/lib/index.d.ts +3 -2
  9. package/dist/esm/components/icon/icons/CircleSelected.js +2 -2
  10. package/dist/esm/components/icon/icons/CircleSelected.js.map +1 -1
  11. package/dist/esm/components/icon/icons/CircleUnselected.js +2 -2
  12. package/dist/esm/components/icon/icons/CircleUnselected.js.map +1 -1
  13. package/dist/esm/components/icon/icons.stories.js +1 -1
  14. package/dist/esm/components/icon/index.stories.js +1 -1
  15. package/dist/esm/components/table/Table.js +27 -10
  16. package/dist/esm/components/table/Table.js.map +1 -1
  17. package/dist/esm/components/table/Table.stories.js +86 -1
  18. package/dist/esm/components/table/Table.stories.js.map +1 -1
  19. package/dist/esm/components/table/Table.test.js +3 -0
  20. package/dist/esm/components/table/Table.test.js.map +1 -1
  21. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js +9 -8
  22. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js.map +1 -1
  23. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.stories.js +4 -2
  24. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.stories.js.map +1 -1
  25. package/dist/esm/components/table/components/TableCell/TableCell.js +2 -0
  26. package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
  27. package/dist/esm/components/table/components/TableCell/TableCell.test.js +2 -0
  28. package/dist/esm/components/table/components/TableCell/TableCell.test.js.map +1 -1
  29. package/dist/esm/components/table/components/TableContents/TableContents.js +5 -3
  30. package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -1
  31. package/dist/esm/components/table/components/TableContents/TableContents.test.js +15 -0
  32. package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -1
  33. package/dist/esm/components/table/components/TableSection/TableSection.js +2 -0
  34. package/dist/esm/components/table/components/TableSection/TableSection.js.map +1 -1
  35. package/dist/esm/components/table/components/TableSection/TableSection.test.js +2 -0
  36. package/dist/esm/components/table/components/TableSection/TableSection.test.js.map +1 -1
  37. package/dist/esm/components/tabs/Tabs.js +40 -0
  38. package/dist/esm/components/tabs/Tabs.js.map +1 -0
  39. package/dist/esm/components/tabs/Tabs.stories.js +77 -0
  40. package/dist/esm/components/tabs/Tabs.stories.js.map +1 -0
  41. package/dist/esm/{index-D41W71Hh.js → index-D7G3EuxU.js} +5 -5
  42. package/dist/esm/{index-D41W71Hh.js.map → index-D7G3EuxU.js.map} +1 -1
  43. package/dist/esm/index.js +1 -0
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/lib/components/table/Table.d.ts +2 -1
  46. package/dist/esm/lib/components/table/Table.stories.d.ts +9 -1
  47. package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +2 -1
  48. package/dist/esm/lib/components/tabs/Tabs.d.ts +12 -0
  49. package/dist/esm/lib/components/tabs/Tabs.stories.d.ts +45 -0
  50. package/dist/esm/lib/index.d.ts +3 -2
  51. package/dist/esm/util/images/index.stories.js +2 -0
  52. package/dist/esm/util/images/index.stories.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/lib/components/table/Table.stories.tsx +116 -0
  55. package/src/lib/components/table/Table.tsx +61 -24
  56. package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.module.scss +27 -21
  57. package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx +19 -16
  58. package/src/lib/components/table/components/TableContents/TableContents.test.tsx +21 -0
  59. package/src/lib/components/table/components/TableContents/TableContents.tsx +3 -1
  60. package/src/lib/components/tabs/Tabs.module.scss +26 -0
  61. package/src/lib/components/tabs/Tabs.stories.tsx +94 -0
  62. package/src/lib/components/tabs/Tabs.tsx +65 -0
  63. package/src/lib/index.tsx +4 -0
@@ -26,6 +26,7 @@ export interface TableProps {
26
26
  hideTableNavigation?: boolean;
27
27
  hideStickyHeader?: boolean;
28
28
  showSelectedColumn?: boolean;
29
+ mobileNavigationMode?: 'arrows' | 'tabs';
29
30
  }
30
- declare const Table: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, hideStickyHeader, showSelectedColumn, }: TableProps) => JSX.Element;
31
+ declare const Table: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, hideStickyHeader, showSelectedColumn, mobileNavigationMode, }: TableProps) => JSX.Element;
31
32
  export { Table };
@@ -2,7 +2,7 @@ import { TableProps } from './Table';
2
2
  import { TableData } from './types';
3
3
  declare const story: {
4
4
  title: string;
5
- component: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, hideStickyHeader, showSelectedColumn, }: TableProps) => JSX.Element;
5
+ component: ({ cellReplacements, className, collapsibleSections, hideColumns, hideDetails, hideRows, imageComponent, modalContentRenderer, onModalOpen, onSelectionChanged, scrollOnOpen, scrollTopOffset, stickyHeaderTopOffset, tableData, textOverrides: definedTextOverrides, title, activeSection: externalActiveSection, hideTableNavigation, hideStickyHeader, showSelectedColumn, mobileNavigationMode, }: TableProps) => JSX.Element;
6
6
  argTypes: {
7
7
  tableData: {
8
8
  subContent: string;
@@ -91,9 +91,17 @@ export declare const TwoPlanQuoteWebsite: {
91
91
  render: () => JSX.Element;
92
92
  name: string;
93
93
  };
94
+ export declare const TwoPlanQuote: {
95
+ render: () => JSX.Element;
96
+ name: string;
97
+ };
94
98
  export declare const ThreePlanQuoteWebsite: {
95
99
  render: () => JSX.Element;
96
100
  name: string;
97
101
  };
102
+ export declare const TabsNavigationMobile: {
103
+ render: () => JSX.Element;
104
+ name: string;
105
+ };
98
106
  export declare const TableDataType: () => JSX.Element;
99
107
  export default story;
@@ -17,6 +17,7 @@ export interface TableContentsProps {
17
17
  cellReplacements?: CellReplacements;
18
18
  imageComponent?: (args: any) => JSX.Element;
19
19
  selectedColumn?: number;
20
+ showHeader?: boolean;
20
21
  }
21
- declare const TableContents: ({ className, collapsibleSections, scrollOnOpen, scrollTopOffset, stickyHeaderRef, tableData, hideColumns, hideDetails, hideRows, isMobile, openModal, shouldHideDetails, title, cellReplacements, imageComponent, selectedColumn, }: TableContentsProps) => JSX.Element;
22
+ declare const TableContents: ({ className, collapsibleSections, scrollOnOpen, scrollTopOffset, stickyHeaderRef, tableData, hideColumns, hideDetails, hideRows, isMobile, openModal, shouldHideDetails, title, cellReplacements, imageComponent, selectedColumn, showHeader, }: TableContentsProps) => JSX.Element;
22
23
  export { TableContents };
@@ -0,0 +1,12 @@
1
+ export interface TabItem {
2
+ id: string;
3
+ label: string;
4
+ }
5
+ export interface TabsProps {
6
+ tabs: TabItem[];
7
+ activeIndex: number;
8
+ onTabChange: (index: number) => void;
9
+ className?: string;
10
+ }
11
+ declare const Tabs: ({ tabs, activeIndex, onTabChange, className }: TabsProps) => JSX.Element;
12
+ export { Tabs };
@@ -0,0 +1,45 @@
1
+ import { TabsProps } from './Tabs';
2
+ declare const story: {
3
+ title: string;
4
+ component: ({ tabs, activeIndex, onTabChange, className }: TabsProps) => JSX.Element;
5
+ argTypes: {
6
+ tabs: {
7
+ description: string;
8
+ };
9
+ activeIndex: {
10
+ description: string;
11
+ };
12
+ onTabChange: {
13
+ action: boolean;
14
+ table: {
15
+ category: string;
16
+ };
17
+ };
18
+ className: {
19
+ description: string;
20
+ };
21
+ };
22
+ args: {
23
+ tabs: {
24
+ id: string;
25
+ label: string;
26
+ }[];
27
+ activeIndex: number;
28
+ };
29
+ parameters: {
30
+ componentSubtitle: string;
31
+ };
32
+ };
33
+ export declare const Default: {
34
+ render: ({ tabs, activeIndex, onTabChange }: TabsProps) => JSX.Element;
35
+ name: string;
36
+ };
37
+ export declare const TwoTabs: {
38
+ render: () => JSX.Element;
39
+ name: string;
40
+ };
41
+ export declare const ManyTabs: {
42
+ render: () => JSX.Element;
43
+ name: string;
44
+ };
45
+ export default story;
@@ -28,6 +28,7 @@ import { Toaster, toast } from './components/toast';
28
28
  import { IconWrapperProps } from './components/icon/IconWrapper';
29
29
  import { Accordion, AccordionProps } from './components/accordion';
30
30
  import { Table, TableData, TableProps } from './components/table/Table';
31
+ import { Tabs, TabsProps, TabItem } from './components/tabs/Tabs';
31
32
  import { useEscapeKey } from './hooks/useEscapeKey';
32
33
  import { useFocusWithin } from './hooks/useFocusWithin';
33
34
  import { useMediaQuery } from './hooks/useMediaQuery';
@@ -41,6 +42,6 @@ import { LogoInverted } from './components/logo/LogoInverted';
41
42
  import { LogoPositiveColor } from './components/logo/LogoPositiveColor';
42
43
  import { LogoPositiveBlack } from './components/logo/LogoPositiveBlack';
43
44
  export * from './components/icon';
44
- export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, DownloadButton, IbanInput, BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal, InfoCard, Card, CardButton, Button, CurrencyInput, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SearchableDropdown, SegmentedControl, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, useEscapeKey, useFocusWithin, useOnClickOutside, useMediaQuery, LogoColor, LogoWhite, LogoBlack, LogoOrangeBox, LogoInvertedColor, LogoInverted, LogoPositiveColor, LogoPositiveBlack, };
45
- export type { AccordionProps, SearchableDropdownProps, SearchableDropdownOption, BadgeProps, IllustrationKeys, InformationBoxProps, InputProps, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TableData, TableProps, };
45
+ export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, DownloadButton, IbanInput, BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal, InfoCard, Card, CardButton, Button, CurrencyInput, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SearchableDropdown, SegmentedControl, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Tabs, Toggle, Toaster, toast, useEscapeKey, useFocusWithin, useOnClickOutside, useMediaQuery, LogoColor, LogoWhite, LogoBlack, LogoOrangeBox, LogoInvertedColor, LogoInverted, LogoPositiveColor, LogoPositiveBlack, };
46
+ export type { AccordionProps, SearchableDropdownProps, SearchableDropdownOption, BadgeProps, IllustrationKeys, InformationBoxProps, InputProps, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TabItem, TabsProps, TableData, TableProps, };
46
47
  export type { DownloadStatus } from './models/download';
@@ -6,9 +6,9 @@ import '../../../index-DLQEsiym.js';
6
6
  import '../../../_commonjsHelpers-BFTU3MAI.js';
7
7
  import '../../../style-inject.es-tgCJW-Cu.js';
8
8
 
9
- var CircleSelected = (function (props) {
9
+ var CircleSelectedIcon = (function (props) {
10
10
  return createElement(IconWrapper, props, jsxs("g", { fill: "currentColor", clipPath: "url(#circle-selected_svg__a)", children: [jsx("path", { fillRule: "evenodd", d: "M12 2.182c-5.422 0-9.818 4.396-9.818 9.818S6.578 21.818 12 21.818s9.818-4.396 9.818-9.818S17.422 2.182 12 2.182ZM0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z", clipRule: "evenodd" }), jsx("circle", { cx: 12, cy: 12, r: 7 })] }), jsx("defs", { children: jsx("clipPath", { id: "circle-selected_svg__a", children: jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) }));
11
11
  });
12
12
 
13
- export { CircleSelected as default };
13
+ export { CircleSelectedIcon as default };
14
14
  //# sourceMappingURL=CircleSelected.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CircleSelected.js","sources":["../../../../../../src/lib/components/icon/icons/CircleSelected.tsx"],"sourcesContent":["/* Generated file. Do not modify. */\nimport { createElement } from 'react';\nimport { IconWrapper } from '../IconWrapper';\nimport type { IconWrapperProps } from '../IconWrapper';\nexport default (props: IconWrapperProps) =>\n createElement(\n IconWrapper,\n props,\n <g fill=\"currentColor\" clipPath=\"url(#circle-selected_svg__a)\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.182c-5.422 0-9.818 4.396-9.818 9.818S6.578 21.818 12 21.818s9.818-4.396 9.818-9.818S17.422 2.182 12 2.182ZM0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z\"\n clipRule=\"evenodd\"\n />\n <circle cx={12} cy={12} r={7} />\n </g>,\n <defs>\n <clipPath id=\"circle-selected_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n );\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAIA,qBAAA,CAAe,UAAC,KAAuB,EAAA;AACrC,IAAA,OAAA,aAAa,CACX,WAAW,EACX,KAAK,EACLA,IAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,8BAA8B,EAAA,QAAA,EAAA,CAC5DC,GAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,yLAAyL,EAC3L,QAAQ,EAAC,SAAS,EAAA,CAClB,EACFA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAA,CAAI,CAAA,EAAA,CAC9B,EACJA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,UAAA,EAAA,EAAU,EAAE,EAAC,wBAAwB,EAAA,QAAA,EACnCA,GAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAA,CAAG,EAAA,CAC7B,GACN,CACR;AAhBD,CAgBC;;;;"}
1
+ {"version":3,"file":"CircleSelected.js","sources":["../../../../../../src/lib/components/icon/icons/CircleSelected.tsx"],"sourcesContent":["/* Generated file. Do not modify. */\nimport { createElement } from 'react';\nimport { IconWrapper } from '../IconWrapper';\nimport type { IconWrapperProps } from '../IconWrapper';\nexport default (props: IconWrapperProps) =>\n createElement(\n IconWrapper,\n props,\n <g fill=\"currentColor\" clipPath=\"url(#circle-selected_svg__a)\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.182c-5.422 0-9.818 4.396-9.818 9.818S6.578 21.818 12 21.818s9.818-4.396 9.818-9.818S17.422 2.182 12 2.182ZM0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z\"\n clipRule=\"evenodd\"\n />\n <circle cx={12} cy={12} r={7} />\n </g>,\n <defs>\n <clipPath id=\"circle-selected_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n );\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAIA,yBAAA,CAAe,UAAC,KAAuB,EAAA;AACrC,IAAA,OAAA,aAAa,CACX,WAAW,EACX,KAAK,EACLA,IAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,8BAA8B,EAAA,QAAA,EAAA,CAC5DC,GAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,yLAAyL,EAC3L,QAAQ,EAAC,SAAS,EAAA,CAClB,EACFA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAA,CAAI,CAAA,EAAA,CAC9B,EACJA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,UAAA,EAAA,EAAU,EAAE,EAAC,wBAAwB,EAAA,QAAA,EACnCA,GAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAA,CAAG,EAAA,CAC7B,GACN,CACR;AAhBD,CAgBC;;;;"}
@@ -6,9 +6,9 @@ import '../../../index-DLQEsiym.js';
6
6
  import '../../../_commonjsHelpers-BFTU3MAI.js';
7
7
  import '../../../style-inject.es-tgCJW-Cu.js';
8
8
 
9
- var CircleUnselected = (function (props) {
9
+ var CircleUnselectedIcon = (function (props) {
10
10
  return createElement(IconWrapper, props, jsx("g", { clipPath: "url(#circle-unselected_svg__a)", children: jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M12 2.182c-5.422 0-9.818 4.396-9.818 9.818S6.578 21.818 12 21.818s9.818-4.396 9.818-9.818S17.422 2.182 12 2.182ZM0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z", clipRule: "evenodd" }) }), jsx("defs", { children: jsx("clipPath", { id: "circle-unselected_svg__a", children: jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) }));
11
11
  });
12
12
 
13
- export { CircleUnselected as default };
13
+ export { CircleUnselectedIcon as default };
14
14
  //# sourceMappingURL=CircleUnselected.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CircleUnselected.js","sources":["../../../../../../src/lib/components/icon/icons/CircleUnselected.tsx"],"sourcesContent":["/* Generated file. Do not modify. */\nimport { createElement } from 'react';\nimport { IconWrapper } from '../IconWrapper';\nimport type { IconWrapperProps } from '../IconWrapper';\nexport default (props: IconWrapperProps) =>\n createElement(\n IconWrapper,\n props,\n <g clipPath=\"url(#circle-unselected_svg__a)\">\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M12 2.182c-5.422 0-9.818 4.396-9.818 9.818S6.578 21.818 12 21.818s9.818-4.396 9.818-9.818S17.422 2.182 12 2.182ZM0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z\"\n clipRule=\"evenodd\"\n />\n </g>,\n <defs>\n <clipPath id=\"circle-unselected_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n );\n"],"names":["_jsx"],"mappings":";;;;;;;;AAIA,uBAAA,CAAe,UAAC,KAAuB,EAAA;IACrC,OAAA,aAAa,CACX,WAAW,EACX,KAAK,EACLA,GAAA,CAAA,GAAA,EAAA,EAAG,QAAQ,EAAC,gCAAgC,YAC1CA,GAAA,CAAA,MAAA,EAAA,EACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,yLAAyL,EAC3L,QAAQ,EAAC,SAAS,EAAA,CAClB,EAAA,CACA,EACJA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,UAAA,EAAA,EAAU,EAAE,EAAC,0BAA0B,EAAA,QAAA,EACrCA,cAAM,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAA,CAAG,EAAA,CAC7B,EAAA,CACN,CACR;AAhBD,CAgBC;;;;"}
1
+ {"version":3,"file":"CircleUnselected.js","sources":["../../../../../../src/lib/components/icon/icons/CircleUnselected.tsx"],"sourcesContent":["/* Generated file. Do not modify. */\nimport { createElement } from 'react';\nimport { IconWrapper } from '../IconWrapper';\nimport type { IconWrapperProps } from '../IconWrapper';\nexport default (props: IconWrapperProps) =>\n createElement(\n IconWrapper,\n props,\n <g clipPath=\"url(#circle-unselected_svg__a)\">\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M12 2.182c-5.422 0-9.818 4.396-9.818 9.818S6.578 21.818 12 21.818s9.818-4.396 9.818-9.818S17.422 2.182 12 2.182ZM0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z\"\n clipRule=\"evenodd\"\n />\n </g>,\n <defs>\n <clipPath id=\"circle-unselected_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n );\n"],"names":["_jsx"],"mappings":";;;;;;;;AAIA,2BAAA,CAAe,UAAC,KAAuB,EAAA;IACrC,OAAA,aAAa,CACX,WAAW,EACX,KAAK,EACLA,GAAA,CAAA,GAAA,EAAA,EAAG,QAAQ,EAAC,gCAAgC,YAC1CA,GAAA,CAAA,MAAA,EAAA,EACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,yLAAyL,EAC3L,QAAQ,EAAC,SAAS,EAAA,CAClB,EAAA,CACA,EACJA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,UAAA,EAAA,EAAU,EAAE,EAAC,0BAA0B,EAAA,QAAA,EACrCA,cAAM,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,eAAe,EAAA,CAAG,EAAA,CAC7B,EAAA,CACN,CACR;AAhBD,CAgBC;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { Input } from '../input/index.js';
4
- import { i as icons } from '../../index-D41W71Hh.js';
4
+ import { i as icons } from '../../index-D7G3EuxU.js';
5
5
  import { Button } from '../button/index.js';
6
6
  import { c as classNames } from '../../index-DLQEsiym.js';
7
7
  import { s as styleInject } from '../../style-inject.es-tgCJW-Cu.js';
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { IconWrapper } from './IconWrapper/IconWrapper.js';
3
- import { i as icons } from '../../index-D41W71Hh.js';
3
+ import { i as icons } from '../../index-D7G3EuxU.js';
4
4
  import '../../tslib.es6-CVlKGIvp.js';
5
5
  import '../../index-DLQEsiym.js';
6
6
  import '../../_commonjsHelpers-BFTU3MAI.js';
@@ -15,6 +15,7 @@ import { u as useTableNavigation } from '../../useTableNavigation-CrxoXTVd.js';
15
15
  import { TableControls } from './components/TableControls/TableControls.js';
16
16
  import { i as isBaseCell, T as TableSection } from '../../TableSection-Cm50RX-V.js';
17
17
  import { u as useScrollSync } from '../../useScrollSync-C5UXYPIB.js';
18
+ import { Tabs } from '../tabs/Tabs.js';
18
19
  import './components/TableCell/BaseCell/BaseCell.js';
19
20
  import '../icon/icons/CheckThick.js';
20
21
  import '../icon/IconWrapper/IconWrapper.js';
@@ -34,6 +35,8 @@ import './components/IconRenderer/IconRenderer.js';
34
35
  import './components/TableCell/CardCell/CardCell.js';
35
36
  import '../icon/icons/ChevronRight.js';
36
37
  import './components/TableCell/ButtonCell/ButtonCell.js';
38
+ import '../icon/icons/CircleSelected.js';
39
+ import '../icon/icons/CircleUnselected.js';
37
40
  import '../modal/bottomModal/index.js';
38
41
  import '../modal/genericModal/index.js';
39
42
  import '../../index-DuaJiEiT.js';
@@ -51,24 +54,38 @@ var defaultTextOverrides = {
51
54
  hideDetails: 'Hide details',
52
55
  };
53
56
  var Table = function (_a) {
54
- var _b, _c, _d, _e, _f, _g, _h, _j;
55
- var cellReplacements = _a.cellReplacements, className = _a.className, collapsibleSections = _a.collapsibleSections, _k = _a.hideColumns, hideColumns = _k === void 0 ? [] : _k, hideDetails = _a.hideDetails, _l = _a.hideRows, hideRows = _l === void 0 ? [] : _l, imageComponent = _a.imageComponent, modalContentRenderer = _a.modalContentRenderer, onModalOpen = _a.onModalOpen, onSelectionChanged = _a.onSelectionChanged, scrollOnOpen = _a.scrollOnOpen, _m = _a.scrollTopOffset, scrollTopOffset = _m === void 0 ? 0 : _m, _o = _a.stickyHeaderTopOffset, stickyHeaderTopOffset = _o === void 0 ? 0 : _o, tableData = _a.tableData, definedTextOverrides = _a.textOverrides, title = _a.title, externalActiveSection = _a.activeSection, _p = _a.hideTableNavigation, hideTableNavigation = _p === void 0 ? false : _p, _q = _a.hideStickyHeader, hideStickyHeader = _q === void 0 ? false : _q, _r = _a.showSelectedColumn, showSelectedColumn = _r === void 0 ? false : _r;
57
+ var _b, _c, _d, _e, _f;
58
+ var cellReplacements = _a.cellReplacements, className = _a.className, collapsibleSections = _a.collapsibleSections, _g = _a.hideColumns, hideColumns = _g === void 0 ? [] : _g, hideDetails = _a.hideDetails, _h = _a.hideRows, hideRows = _h === void 0 ? [] : _h, imageComponent = _a.imageComponent, modalContentRenderer = _a.modalContentRenderer, onModalOpen = _a.onModalOpen, onSelectionChanged = _a.onSelectionChanged, scrollOnOpen = _a.scrollOnOpen, _j = _a.scrollTopOffset, scrollTopOffset = _j === void 0 ? 0 : _j, _k = _a.stickyHeaderTopOffset, stickyHeaderTopOffset = _k === void 0 ? 0 : _k, tableData = _a.tableData, definedTextOverrides = _a.textOverrides, title = _a.title, externalActiveSection = _a.activeSection, _l = _a.hideTableNavigation, hideTableNavigation = _l === void 0 ? false : _l, _m = _a.hideStickyHeader, hideStickyHeader = _m === void 0 ? false : _m, _o = _a.showSelectedColumn, showSelectedColumn = _o === void 0 ? false : _o, _p = _a.mobileNavigationMode, mobileNavigationMode = _p === void 0 ? 'arrows' : _p;
56
59
  var textOverrides = __assign(__assign({}, defaultTextOverrides), definedTextOverrides);
57
60
  var isMobile = useMediaQuery('BELOW_MOBILE');
58
- var _s = useState(null), infoModalData = _s[0], setInfoModalData = _s[1];
59
- var _t = useState(true), shouldHideDetails = _t[0], setShouldHideDetails = _t[1];
61
+ var _q = useState(null), infoModalData = _q[0], setInfoModalData = _q[1];
62
+ var _r = useState(true), shouldHideDetails = _r[0], setShouldHideDetails = _r[1];
60
63
  var containerRef = useRef(null);
61
64
  var headerRef = useRef(null);
62
65
  var stickyHeaderRef = useRef(null);
63
66
  var columnsLength = tableData[0].rows[0].length;
64
67
  useScrollSync(headerRef, containerRef, !isMobile);
65
- var _u = useTableNavigation({
68
+ var useTabs = isMobile && mobileNavigationMode === 'tabs';
69
+ var _s = useTableNavigation({
66
70
  enabled: isMobile,
67
71
  containerRef: containerRef,
68
72
  onSelectionChanged: onSelectionChanged,
69
- }), activeSection = _u.activeSection, navigateTable = _u.navigateTable, setActiveSection = _u.setActiveSection;
70
- var titleCell = __assign({ text: '' }, (((_d = (_c = (_b = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _b === void 0 ? void 0 : _b.rows) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[0]) || {}));
71
- var currentActiveSection = (_g = (_f = (_e = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _e === void 0 ? void 0 : _e.rows) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g[activeSection];
73
+ }), activeSection = _s.activeSection, navigateTable = _s.navigateTable, setActiveSection = _s.setActiveSection;
74
+ var headerRow = (_c = (_b = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _b === void 0 ? void 0 : _b.rows) === null || _c === void 0 ? void 0 : _c[0];
75
+ var titleCell = __assign({ text: '' }, ((headerRow === null || headerRow === void 0 ? void 0 : headerRow[0]) || {}));
76
+ var currentActiveSection = headerRow === null || headerRow === void 0 ? void 0 : headerRow[activeSection];
77
+ var mobileTabs = useTabs
78
+ ? (_d = headerRow === null || headerRow === void 0 ? void 0 : headerRow.slice(1).map(function (cell, index) {
79
+ var label = '';
80
+ if (!cell.type)
81
+ label = String(cell.text || '');
82
+ else if (cell.type === 'CTA')
83
+ label = String(cell.title || '');
84
+ else if (cell.type === 'BUTTON')
85
+ label = String(cell.buttonCaption || '');
86
+ return { id: String(index), label: label };
87
+ })) !== null && _d !== void 0 ? _d : []
88
+ : [];
72
89
  var currentActiveSectionReplacements = ((currentActiveSection === null || currentActiveSection === void 0 ? void 0 : currentActiveSection.cellId) &&
73
90
  (cellReplacements === null || cellReplacements === void 0 ? void 0 : cellReplacements[currentActiveSection.cellId])) ||
74
91
  {};
@@ -83,7 +100,7 @@ var Table = function (_a) {
83
100
  setActiveSection(externalActiveSection - 1);
84
101
  }
85
102
  }, [externalActiveSection]);
86
- return (jsxs("div", { className: classNames(styles.wrapper, 'bg-white'), children: [isMobile ? (jsxs(Fragment, { children: [(titleCell === null || titleCell === void 0 ? void 0 : titleCell.text) && (jsx(TableCell, __assign({}, titleCell, { align: "left", isNavigation: true, isTopLeftCell: true, type: undefined }))), !hideTableNavigation && currentActiveSection && (jsx(TableControls, { activeSection: activeSection, columnsLength: columnsLength, navigateTable: navigateTable, stickyHeaderTopOffset: stickyHeaderTopOffset, children: jsx(TableCell, __assign({}, (isBaseCell(currentActiveSection)
103
+ return (jsxs("div", { className: classNames(styles.wrapper, 'bg-white'), children: [isMobile ? (jsxs(Fragment, { children: [!useTabs && (titleCell === null || titleCell === void 0 ? void 0 : titleCell.text) && (jsx(TableCell, __assign({}, titleCell, { align: "left", isNavigation: true, isTopLeftCell: true, type: undefined }))), !hideTableNavigation && currentActiveSection && (useTabs ? (jsx("div", { className: classNames('bg-white', styles.stickyHeader), style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx(Tabs, { tabs: mobileTabs, activeIndex: activeSection - 1, onTabChange: function (index) { return setActiveSection(index); }, className: "mb16" }) })) : (jsx(TableControls, { activeSection: activeSection, columnsLength: columnsLength, navigateTable: navigateTable, stickyHeaderTopOffset: stickyHeaderTopOffset, children: jsx(TableCell, __assign({}, (isBaseCell(currentActiveSection)
87
104
  ? {
88
105
  openModal: function (body) {
89
106
  return handleOpenModal({
@@ -92,7 +109,7 @@ var Table = function (_a) {
92
109
  });
93
110
  },
94
111
  }
95
- : {}), activeCellProps, { imageComponent: imageComponent, isNavigation: true })) }))] })) : (!hideStickyHeader && (jsx("div", { ref: stickyHeaderRef, "aria-hidden": true, className: styles.stickyHeader, style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx("div", { className: styles.container, ref: headerRef, children: jsx(TableSection, { cellReplacements: cellReplacements, className: className, hideColumns: hideColumns, hideRows: hideRows, openModal: handleOpenModal, tableCellRows: [(_j = (_h = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _h === void 0 ? void 0 : _h.rows) === null || _j === void 0 ? void 0 : _j[0]], title: title, imageComponent: imageComponent }) }) }))), jsx("div", { ref: containerRef, className: classNames(styles.container, 'pb8'), children: jsx(TableContents, { tableData: tableData, title: title, className: className, collapsibleSections: collapsibleSections, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset, stickyHeaderRef: stickyHeaderRef, hideColumns: hideColumns, hideDetails: hideDetails, hideRows: hideRows, isMobile: isMobile, shouldHideDetails: shouldHideDetails, openModal: handleOpenModal, cellReplacements: cellReplacements, imageComponent: imageComponent, selectedColumn: showSelectedColumn ? activeSection : undefined }) }), (tableData === null || tableData === void 0 ? void 0 : tableData.length) > 1 && hideDetails && (jsx(Card, { "data-testid": "show-hide-details", classNames: {
112
+ : {}), activeCellProps, { imageComponent: imageComponent, isNavigation: true })) })))] })) : (!hideStickyHeader && (jsx("div", { ref: stickyHeaderRef, "aria-hidden": true, className: styles.stickyHeader, style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx("div", { className: styles.container, ref: headerRef, children: jsx(TableSection, { cellReplacements: cellReplacements, className: className, hideColumns: hideColumns, hideRows: hideRows, openModal: handleOpenModal, tableCellRows: [(_f = (_e = tableData === null || tableData === void 0 ? void 0 : tableData[0]) === null || _e === void 0 ? void 0 : _e.rows) === null || _f === void 0 ? void 0 : _f[0]], title: title, imageComponent: imageComponent }) }) }))), jsx("div", { ref: containerRef, className: classNames(styles.container, 'pb8'), children: jsx(TableContents, { tableData: tableData, title: title, className: className, collapsibleSections: collapsibleSections, scrollOnOpen: scrollOnOpen, scrollTopOffset: scrollTopOffset, stickyHeaderRef: stickyHeaderRef, hideColumns: hideColumns, hideDetails: hideDetails, hideRows: hideRows, isMobile: isMobile, shouldHideDetails: shouldHideDetails, openModal: handleOpenModal, cellReplacements: cellReplacements, imageComponent: imageComponent, selectedColumn: showSelectedColumn ? activeSection : undefined, showHeader: useTabs }) }), (tableData === null || tableData === void 0 ? void 0 : tableData.length) > 1 && hideDetails && (jsx(Card, { "data-testid": "show-hide-details", classNames: {
96
113
  buttonWrapper: classNames(styles.cardButton, 'm8 mt32'),
97
114
  title: 'd-flex gap8 ai-center jc-center fw-bold',
98
115
  }, title: jsxs(Fragment, { children: [shouldHideDetails
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../src/lib/components/table/Table.tsx"],"sourcesContent":["import { TableCell } from './components/TableCell/TableCell';\nimport { BottomOrRegularModal } from '../modal';\nimport { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDownIcon, ChevronUpIcon } from '../icon';\nimport { Card } from '../cards/card';\n\nimport styles from './Table.module.scss';\nimport { useMediaQuery } from '../../hooks/useMediaQuery';\nimport { TableContents } from './components/TableContents/TableContents';\nimport classNames from 'classnames';\nimport { useTableNavigation } from './utils/useTableNavigation/useTableNavigation';\nimport { TableControls } from './components/TableControls/TableControls';\nimport { TableSection } from './components/TableSection/TableSection';\nimport { useScrollSync } from './utils/useScrollSync/useScrollSync';\nimport {\n CellReplacements,\n isBaseCell,\n ModalData,\n ModalFunction,\n TableCellData,\n TableData,\n} from './types';\n\nexport type { TableData } from './types';\n\ntype TextOverrides = {\n showDetails?: string;\n hideDetails?: string;\n};\n\nexport interface TableProps {\n cellReplacements?: CellReplacements;\n className?: string;\n collapsibleSections?: boolean;\n hideColumns?: number[];\n hideDetails?: boolean;\n hideRows?: number[];\n imageComponent?: (args: any) => JSX.Element;\n modalContentRenderer?: (content: ReactNode) => ReactNode;\n onModalOpen?: ModalFunction;\n onSelectionChanged?: (index: number) => void;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n stickyHeaderTopOffset?: number;\n tableData: TableData;\n textOverrides?: TextOverrides;\n title: string;\n activeSection?: number;\n hideTableNavigation?: boolean;\n hideStickyHeader?: boolean;\n showSelectedColumn?: boolean;\n}\n\nconst defaultTextOverrides = {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n};\n\nconst Table = ({\n cellReplacements,\n className,\n collapsibleSections,\n hideColumns = [],\n hideDetails,\n hideRows = [],\n imageComponent,\n modalContentRenderer,\n onModalOpen,\n onSelectionChanged,\n scrollOnOpen,\n scrollTopOffset = 0,\n stickyHeaderTopOffset = 0,\n tableData,\n textOverrides: definedTextOverrides,\n title,\n activeSection: externalActiveSection,\n hideTableNavigation = false,\n hideStickyHeader = false,\n showSelectedColumn = false,\n}: TableProps) => {\n const textOverrides = { ...defaultTextOverrides, ...definedTextOverrides };\n const isMobile = useMediaQuery('BELOW_MOBILE');\n const [infoModalData, setInfoModalData] = useState<ModalData | null>(null);\n const [shouldHideDetails, setShouldHideDetails] = useState(true);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const stickyHeaderRef = useRef<HTMLDivElement | null>(null);\n const columnsLength = tableData[0].rows[0].length;\n\n useScrollSync(headerRef, containerRef, !isMobile);\n\n const { activeSection, navigateTable, setActiveSection } = useTableNavigation(\n {\n enabled: isMobile,\n containerRef,\n onSelectionChanged,\n }\n );\n\n const titleCell = {\n text: '',\n ...(tableData?.[0]?.rows?.[0]?.[0] || {}),\n };\n const currentActiveSection = tableData?.[0]?.rows?.[0]?.[activeSection];\n const currentActiveSectionReplacements =\n (currentActiveSection?.cellId &&\n cellReplacements?.[currentActiveSection.cellId]) ||\n {};\n\n const activeCellProps = {\n ...currentActiveSection,\n ...currentActiveSectionReplacements,\n } as TableCellData;\n\n const handleOpenModal: ModalFunction = useCallback(({ body, title }) => {\n onModalOpen?.({ body, title });\n setInfoModalData({ body, title });\n }, []);\n\n useEffect(() => {\n if (externalActiveSection && externalActiveSection !== activeSection) {\n setActiveSection(externalActiveSection - 1);\n }\n }, [externalActiveSection]);\n\n return (\n <div className={classNames(styles.wrapper, 'bg-white')}>\n {isMobile ? (\n <>\n {titleCell?.text && (\n <TableCell\n {...titleCell}\n align=\"left\"\n isNavigation\n isTopLeftCell\n type={undefined}\n />\n )}\n\n {!hideTableNavigation && currentActiveSection && (\n <TableControls\n activeSection={activeSection}\n columnsLength={columnsLength}\n navigateTable={navigateTable}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n >\n <TableCell\n {...(isBaseCell(currentActiveSection)\n ? {\n openModal: (body: ReactNode) =>\n handleOpenModal({\n body,\n title: currentActiveSection?.text,\n }),\n }\n : {})}\n {...activeCellProps}\n imageComponent={imageComponent}\n isNavigation\n />\n </TableControls>\n )}\n </>\n ) : (\n !hideStickyHeader && (\n <div\n ref={stickyHeaderRef}\n aria-hidden\n className={styles.stickyHeader}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <div className={styles.container} ref={headerRef}>\n <TableSection\n cellReplacements={cellReplacements}\n className={className}\n hideColumns={hideColumns}\n hideRows={hideRows}\n openModal={handleOpenModal}\n tableCellRows={[tableData?.[0]?.rows?.[0]]}\n title={title}\n imageComponent={imageComponent}\n />\n </div>\n </div>\n )\n )}\n\n <div ref={containerRef} className={classNames(styles.container, 'pb8')}>\n <TableContents\n tableData={tableData}\n title={title}\n className={className}\n collapsibleSections={collapsibleSections}\n scrollOnOpen={scrollOnOpen}\n scrollTopOffset={scrollTopOffset}\n stickyHeaderRef={stickyHeaderRef}\n hideColumns={hideColumns}\n hideDetails={hideDetails}\n hideRows={hideRows}\n isMobile={isMobile}\n shouldHideDetails={shouldHideDetails}\n openModal={handleOpenModal}\n cellReplacements={cellReplacements}\n imageComponent={imageComponent}\n selectedColumn={showSelectedColumn ? activeSection : undefined}\n />\n </div>\n\n {tableData?.length > 1 && hideDetails && (\n <Card\n data-testid=\"show-hide-details\"\n classNames={{\n buttonWrapper: classNames(styles.cardButton, 'm8 mt32'),\n title: 'd-flex gap8 ai-center jc-center fw-bold',\n }}\n title={\n <>\n {shouldHideDetails\n ? textOverrides.showDetails\n : textOverrides.hideDetails}\n {shouldHideDetails ? (\n <ChevronDownIcon size={20} />\n ) : (\n <ChevronUpIcon size={20} />\n )}\n </>\n }\n actionIcon={null}\n dropShadow={false}\n titleVariant=\"small\"\n density=\"xsmall\"\n onClick={() => setShouldHideDetails((current) => !current)}\n />\n )}\n\n <BottomOrRegularModal\n isOpen={infoModalData?.body ? true : false}\n title={infoModalData?.title}\n onClose={() => setInfoModalData(null)}\n >\n <div className={classNames(styles.modalContent, 'pt8 p24 wmn6')}>\n {modalContentRenderer\n ? modalContentRenderer(infoModalData?.body)\n : infoModalData?.body}\n </div>\n </BottomOrRegularModal>\n </div>\n );\n};\n\nexport { Table };\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../src/lib/components/table/Table.tsx"],"sourcesContent":["import { TableCell } from './components/TableCell/TableCell';\nimport { BottomOrRegularModal } from '../modal';\nimport { ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { ChevronDownIcon, ChevronUpIcon } from '../icon';\nimport { Card } from '../cards/card';\n\nimport styles from './Table.module.scss';\nimport { useMediaQuery } from '../../hooks/useMediaQuery';\nimport { TableContents } from './components/TableContents/TableContents';\nimport classNames from 'classnames';\nimport { useTableNavigation } from './utils/useTableNavigation/useTableNavigation';\nimport { TableControls } from './components/TableControls/TableControls';\nimport { TableSection } from './components/TableSection/TableSection';\nimport { useScrollSync } from './utils/useScrollSync/useScrollSync';\nimport {\n CellReplacements,\n isBaseCell,\n ModalData,\n ModalFunction,\n TableCellData,\n TableData,\n} from './types';\nimport { Tabs, TabItem } from '../tabs/Tabs';\n\nexport type { TableData } from './types';\n\ntype TextOverrides = {\n showDetails?: string;\n hideDetails?: string;\n};\n\nexport interface TableProps {\n cellReplacements?: CellReplacements;\n className?: string;\n collapsibleSections?: boolean;\n hideColumns?: number[];\n hideDetails?: boolean;\n hideRows?: number[];\n imageComponent?: (args: any) => JSX.Element;\n modalContentRenderer?: (content: ReactNode) => ReactNode;\n onModalOpen?: ModalFunction;\n onSelectionChanged?: (index: number) => void;\n scrollOnOpen?: boolean;\n scrollTopOffset?: number;\n stickyHeaderTopOffset?: number;\n tableData: TableData;\n textOverrides?: TextOverrides;\n title: string;\n activeSection?: number;\n hideTableNavigation?: boolean;\n hideStickyHeader?: boolean;\n showSelectedColumn?: boolean;\n mobileNavigationMode?: 'arrows' | 'tabs';\n}\n\nconst defaultTextOverrides = {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n};\n\nconst Table = ({\n cellReplacements,\n className,\n collapsibleSections,\n hideColumns = [],\n hideDetails,\n hideRows = [],\n imageComponent,\n modalContentRenderer,\n onModalOpen,\n onSelectionChanged,\n scrollOnOpen,\n scrollTopOffset = 0,\n stickyHeaderTopOffset = 0,\n tableData,\n textOverrides: definedTextOverrides,\n title,\n activeSection: externalActiveSection,\n hideTableNavigation = false,\n hideStickyHeader = false,\n showSelectedColumn = false,\n mobileNavigationMode = 'arrows',\n}: TableProps) => {\n const textOverrides = { ...defaultTextOverrides, ...definedTextOverrides };\n const isMobile = useMediaQuery('BELOW_MOBILE');\n const [infoModalData, setInfoModalData] = useState<ModalData | null>(null);\n const [shouldHideDetails, setShouldHideDetails] = useState(true);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const stickyHeaderRef = useRef<HTMLDivElement | null>(null);\n const columnsLength = tableData[0].rows[0].length;\n\n useScrollSync(headerRef, containerRef, !isMobile);\n\n const useTabs = isMobile && mobileNavigationMode === 'tabs';\n\n const { activeSection, navigateTable, setActiveSection } = useTableNavigation(\n {\n enabled: isMobile,\n containerRef,\n onSelectionChanged,\n }\n );\n\n const headerRow = tableData?.[0]?.rows?.[0];\n const titleCell = {\n text: '',\n ...(headerRow?.[0] || {}),\n };\n const currentActiveSection = headerRow?.[activeSection];\n\n const mobileTabs: TabItem[] = useTabs\n ? headerRow\n ?.slice(1)\n .map((cell, index) => {\n let label = '';\n if (!cell.type) label = String(cell.text || '');\n else if (cell.type === 'CTA') label = String(cell.title || '');\n else if (cell.type === 'BUTTON') label = String(cell.buttonCaption || '');\n return { id: String(index), label };\n }) ?? []\n : [];\n\n const currentActiveSectionReplacements =\n (currentActiveSection?.cellId &&\n cellReplacements?.[currentActiveSection.cellId]) ||\n {};\n\n const activeCellProps = {\n ...currentActiveSection,\n ...currentActiveSectionReplacements,\n } as TableCellData;\n\n const handleOpenModal: ModalFunction = useCallback(({ body, title }) => {\n onModalOpen?.({ body, title });\n setInfoModalData({ body, title });\n }, []);\n\n useEffect(() => {\n if (externalActiveSection && externalActiveSection !== activeSection) {\n setActiveSection(externalActiveSection - 1);\n }\n }, [externalActiveSection]);\n\n return (\n <div className={classNames(styles.wrapper, 'bg-white')}>\n {isMobile ? (\n <>\n {!useTabs && titleCell?.text && (\n <TableCell\n {...titleCell}\n align=\"left\"\n isNavigation\n isTopLeftCell\n type={undefined}\n />\n )}\n\n {!hideTableNavigation && currentActiveSection && (\n useTabs ? (\n <div\n className={classNames(\n 'bg-white',\n styles.stickyHeader\n )}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <Tabs\n tabs={mobileTabs}\n activeIndex={activeSection - 1}\n onTabChange={(index) => setActiveSection(index)}\n className=\"mb16\"\n />\n </div>\n ) : (\n <TableControls\n activeSection={activeSection}\n columnsLength={columnsLength}\n navigateTable={navigateTable}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n >\n <TableCell\n {...(isBaseCell(currentActiveSection)\n ? {\n openModal: (body: ReactNode) =>\n handleOpenModal({\n body,\n title: currentActiveSection?.text,\n }),\n }\n : {})}\n {...activeCellProps}\n imageComponent={imageComponent}\n isNavigation\n />\n </TableControls>\n )\n )}\n </>\n ) : (\n !hideStickyHeader && (\n <div\n ref={stickyHeaderRef}\n aria-hidden\n className={styles.stickyHeader}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <div className={styles.container} ref={headerRef}>\n <TableSection\n cellReplacements={cellReplacements}\n className={className}\n hideColumns={hideColumns}\n hideRows={hideRows}\n openModal={handleOpenModal}\n tableCellRows={[tableData?.[0]?.rows?.[0]]}\n title={title}\n imageComponent={imageComponent}\n />\n </div>\n </div>\n )\n )}\n\n <div ref={containerRef} className={classNames(styles.container, 'pb8')}>\n <TableContents\n tableData={tableData}\n title={title}\n className={className}\n collapsibleSections={collapsibleSections}\n scrollOnOpen={scrollOnOpen}\n scrollTopOffset={scrollTopOffset}\n stickyHeaderRef={stickyHeaderRef}\n hideColumns={hideColumns}\n hideDetails={hideDetails}\n hideRows={hideRows}\n isMobile={isMobile}\n shouldHideDetails={shouldHideDetails}\n openModal={handleOpenModal}\n cellReplacements={cellReplacements}\n imageComponent={imageComponent}\n selectedColumn={showSelectedColumn ? activeSection : undefined}\n showHeader={useTabs}\n />\n </div>\n\n {tableData?.length > 1 && hideDetails && (\n <Card\n data-testid=\"show-hide-details\"\n classNames={{\n buttonWrapper: classNames(styles.cardButton, 'm8 mt32'),\n title: 'd-flex gap8 ai-center jc-center fw-bold',\n }}\n title={\n <>\n {shouldHideDetails\n ? textOverrides.showDetails\n : textOverrides.hideDetails}\n {shouldHideDetails ? (\n <ChevronDownIcon size={20} />\n ) : (\n <ChevronUpIcon size={20} />\n )}\n </>\n }\n actionIcon={null}\n dropShadow={false}\n titleVariant=\"small\"\n density=\"xsmall\"\n onClick={() => setShouldHideDetails((current) => !current)}\n />\n )}\n\n <BottomOrRegularModal\n isOpen={infoModalData?.body ? true : false}\n title={infoModalData?.title}\n onClose={() => setInfoModalData(null)}\n >\n <div className={classNames(styles.modalContent, 'pt8 p24 wmn6')}>\n {modalContentRenderer\n ? modalContentRenderer(infoModalData?.body)\n : infoModalData?.body}\n </div>\n </BottomOrRegularModal>\n </div>\n );\n};\n\nexport { Table };\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -28,6 +28,8 @@ import './components/TableCell/CardCell/CardCell.js';
28
28
  import '../cards/card/index.js';
29
29
  import '../icon/icons/ChevronRight.js';
30
30
  import './components/TableCell/ButtonCell/ButtonCell.js';
31
+ import '../icon/icons/CircleSelected.js';
32
+ import '../icon/icons/CircleUnselected.js';
31
33
  import '../icon/icons/ChevronDown.js';
32
34
  import '../icon/icons/ChevronUp.js';
33
35
  import '../modal/bottomOrRegularModal/index.js';
@@ -44,6 +46,7 @@ import '../../useTableNavigation-CrxoXTVd.js';
44
46
  import './components/TableControls/TableControls.js';
45
47
  import '../icon/icons/ChevronLeft.js';
46
48
  import '../../useScrollSync-C5UXYPIB.js';
49
+ import '../tabs/Tabs.js';
47
50
  import '../../index-CNcEE5dn.js';
48
51
 
49
52
  var initialData = [
@@ -682,6 +685,84 @@ var TwoPlanQuoteWebsite = {
682
685
  render: function () { return (jsx("div", { style: { maxWidth: 900 }, children: jsx(Table, { tableData: twoPlanWebsiteData, title: "Two plan quote website", collapsibleSections: true }) })); },
683
686
  name: 'Two Plan - Website',
684
687
  };
688
+ var getTwoPlanQuoteData = function (selectedPlan, setSelectedPlan) { return [
689
+ {
690
+ rows: [
691
+ [
692
+ { text: 'Select a plan' },
693
+ {
694
+ type: 'BUTTON',
695
+ buttonCaption: 'Basic',
696
+ price: '€99/mo',
697
+ isSelected: selectedPlan === 1,
698
+ onClick: function () { return setSelectedPlan(1); },
699
+ },
700
+ {
701
+ type: 'BUTTON',
702
+ buttonCaption: 'Advanced',
703
+ price: '€134/mo',
704
+ isSelected: selectedPlan === 2,
705
+ onClick: function () { return setSelectedPlan(2); },
706
+ },
707
+ ],
708
+ [
709
+ { text: 'Your contribution' },
710
+ { text: '€99', description: 'per month', fontVariant: 'PRICE' },
711
+ { text: '€134', description: 'per month', fontVariant: 'PRICE' },
712
+ ],
713
+ [
714
+ { text: 'Outpatient treatments', modalContent: 'Outpatient info' },
715
+ { checkmarkValue: true },
716
+ { checkmarkValue: true },
717
+ ],
718
+ [
719
+ { text: 'Inpatient treatments', modalContent: 'Inpatient info' },
720
+ { checkmarkValue: false },
721
+ { checkmarkValue: true },
722
+ ],
723
+ [
724
+ { text: 'Dental care', modalContent: 'Dental info' },
725
+ { text: '50%' },
726
+ { text: '80%' },
727
+ ],
728
+ ],
729
+ },
730
+ {
731
+ section: {
732
+ title: 'Coverage details',
733
+ },
734
+ rows: [
735
+ [
736
+ { text: 'Annual limit' },
737
+ { text: 'Up to €10,000' },
738
+ { text: 'Unlimited' },
739
+ ],
740
+ [
741
+ { text: 'Deductible' },
742
+ { text: '€500' },
743
+ { text: '€250' },
744
+ ],
745
+ [
746
+ { text: 'Preventive care' },
747
+ { checkmarkValue: true },
748
+ { checkmarkValue: true },
749
+ ],
750
+ [
751
+ { text: 'Alternative medicine' },
752
+ { checkmarkValue: false },
753
+ { checkmarkValue: true },
754
+ ],
755
+ ],
756
+ },
757
+ ]; };
758
+ var TwoPlanQuoteStory = function () {
759
+ var _a = useState(1), selectedPlan = _a[0], setSelectedPlan = _a[1];
760
+ return (jsx("div", { style: { maxWidth: 900 }, children: jsx(Table, { tableData: getTwoPlanQuoteData(selectedPlan, setSelectedPlan), title: "Two plan quote", collapsibleSections: true, showSelectedColumn: true, activeSection: selectedPlan, onSelectionChanged: setSelectedPlan }) }));
761
+ };
762
+ var TwoPlanQuote = {
763
+ render: function () { return jsx(TwoPlanQuoteStory, {}); },
764
+ name: 'Two Plan Quote',
765
+ };
685
766
  var threePlanWebsiteData = [
686
767
  {
687
768
  rows: [
@@ -792,9 +873,13 @@ var ThreePlanQuoteWebsite = {
792
873
  render: function () { return (jsx("div", { style: { maxWidth: 900 }, children: jsx(Table, { tableData: threePlanWebsiteData, title: "Three plan quote website", collapsibleSections: true }) })); },
793
874
  name: 'Three Plan - Website',
794
875
  };
876
+ var TabsNavigationMobile = {
877
+ render: function () { return (jsxs("div", { style: { maxWidth: 900 }, children: [jsx("p", { className: "p-p tc-neutral-500 mb16", children: "Resize the browser to a mobile width to see tabs instead of left/right arrow buttons." }), jsx(Table, { tableData: threePlanWebsiteData, title: "Tabs navigation (mobile)", collapsibleSections: true, mobileNavigationMode: "tabs" })] })); },
878
+ name: 'Tabs Navigation (Mobile)',
879
+ };
795
880
  var TableDataType = function () {
796
881
  return (jsx("pre", { children: "\ntype TableData = {\n section?: \n title?: string;\n icon?: ReactNode;\n };\n rows: {\n align?: 'center' | 'left' | 'right';\n checkmarkValue?: boolean;\n text?: ReactNode;\n modalContent?: ReactNode;\n subContent?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n }\n openModal?: (modalContent: ReactNode) => void;\n }[][];\n}[];\n " }));
797
882
  };
798
883
 
799
- export { SinglePlanQuoteTable, SinglePlanQuoteWebsite, TableDataType, TableStory, ThreePlanQuoteWebsite, TwoPlanQuoteWebsite, story as default };
884
+ export { SinglePlanQuoteTable, SinglePlanQuoteWebsite, TableDataType, TableStory, TabsNavigationMobile, ThreePlanQuoteWebsite, TwoPlanQuote, TwoPlanQuoteWebsite, story as default };
800
885
  //# sourceMappingURL=Table.stories.js.map