@popsure/dirty-swan 0.54.0 → 0.54.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/cjs/index.js +281 -260
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/lib/components/table/Table.d.ts +4 -14
  4. package/dist/cjs/lib/components/table/Table.stories.d.ts +14 -13
  5. package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +15 -9
  6. package/dist/cjs/lib/components/table/components/TableContents/TableContents.d.ts +13 -0
  7. package/dist/cjs/lib/components/table/components/TableSection/TableSection.d.ts +7 -17
  8. package/dist/cjs/lib/components/table/types.d.ts +17 -0
  9. package/dist/esm/{Collapsible-ac67187a.js → Collapsible-a355828b.js} +1 -1
  10. package/dist/esm/Collapsible-a355828b.js.map +1 -0
  11. package/dist/esm/components/table/Table.js +18 -15
  12. package/dist/esm/components/table/Table.js.map +1 -1
  13. package/dist/esm/components/table/Table.stories.js +59 -54
  14. package/dist/esm/components/table/Table.stories.js.map +1 -1
  15. package/dist/esm/components/table/Table.test.js +18 -14
  16. package/dist/esm/components/table/Table.test.js.map +1 -1
  17. package/dist/esm/components/table/components/TableCell/TableCell.js +23 -6
  18. package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
  19. package/dist/esm/components/table/components/TableCell/TableCell.test.js +4 -4
  20. package/dist/esm/components/table/components/TableCell/TableCell.test.js.map +1 -1
  21. package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js +1 -1
  22. package/dist/esm/components/table/components/TableContents/TableContents.js +56 -0
  23. package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -0
  24. package/dist/esm/components/table/components/TableContents/TableContents.test.js +82 -0
  25. package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -0
  26. package/dist/esm/components/table/components/TableControls/TableControls.js +1 -1
  27. package/dist/esm/components/table/components/TableSection/TableSection.js +41 -39
  28. package/dist/esm/components/table/components/TableSection/TableSection.js.map +1 -1
  29. package/dist/esm/components/table/components/TableSection/TableSection.test.js +34 -57
  30. package/dist/esm/components/table/components/TableSection/TableSection.test.js.map +1 -1
  31. package/dist/esm/index.js +2 -3
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/lib/components/table/Table.d.ts +4 -14
  34. package/dist/esm/lib/components/table/Table.stories.d.ts +14 -13
  35. package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +15 -9
  36. package/dist/esm/lib/components/table/components/TableContents/TableContents.d.ts +13 -0
  37. package/dist/esm/lib/components/table/components/TableSection/TableSection.d.ts +7 -17
  38. package/dist/esm/lib/components/table/types.d.ts +17 -0
  39. package/package.json +1 -1
  40. package/src/lib/components/table/Table.stories.tsx +64 -59
  41. package/src/lib/components/table/Table.test.tsx +17 -11
  42. package/src/lib/components/table/Table.tsx +28 -45
  43. package/src/lib/components/table/components/TableCell/TableCell.module.scss +64 -1
  44. package/src/lib/components/table/components/TableCell/TableCell.test.tsx +6 -4
  45. package/src/lib/components/table/components/TableCell/TableCell.tsx +122 -75
  46. package/src/lib/components/table/components/TableContents/TableContents.module.scss +10 -0
  47. package/src/lib/components/table/components/TableContents/TableContents.test.tsx +86 -0
  48. package/src/lib/components/table/components/TableContents/TableContents.tsx +106 -0
  49. package/src/lib/components/table/components/TableControls/TableControls.module.scss +2 -1
  50. package/src/lib/components/table/components/TableSection/TableSection.module.scss +13 -8
  51. package/src/lib/components/table/components/TableSection/TableSection.test.tsx +38 -64
  52. package/src/lib/components/table/components/TableSection/TableSection.tsx +98 -94
  53. package/src/lib/components/table/types.ts +23 -0
  54. package/dist/cjs/lib/components/table/components/TableColumn/TableColumn.d.ts +0 -10
  55. package/dist/cjs/lib/components/table/components/TableContent/TableContent.d.ts +0 -13
  56. package/dist/esm/Collapsible-ac67187a.js.map +0 -1
  57. package/dist/esm/components/table/components/TableColumn/TableColumn.js +0 -22
  58. package/dist/esm/components/table/components/TableColumn/TableColumn.js.map +0 -1
  59. package/dist/esm/components/table/components/TableColumn/TableColumn.test.js +0 -40
  60. package/dist/esm/components/table/components/TableColumn/TableColumn.test.js.map +0 -1
  61. package/dist/esm/components/table/components/TableContent/TableContent.js +0 -45
  62. package/dist/esm/components/table/components/TableContent/TableContent.js.map +0 -1
  63. package/dist/esm/components/table/components/TableContent/TableContent.test.js +0 -61
  64. package/dist/esm/components/table/components/TableContent/TableContent.test.js.map +0 -1
  65. package/dist/esm/lib/components/table/components/TableColumn/TableColumn.d.ts +0 -10
  66. package/dist/esm/lib/components/table/components/TableColumn/TableColumn.test.d.ts +0 -1
  67. package/dist/esm/lib/components/table/components/TableContent/TableContent.d.ts +0 -13
  68. package/dist/esm/lib/components/table/components/TableContent/TableContent.test.d.ts +0 -1
  69. package/src/lib/components/table/components/TableColumn/TableColumn.module.scss +0 -38
  70. package/src/lib/components/table/components/TableColumn/TableColumn.test.tsx +0 -49
  71. package/src/lib/components/table/components/TableColumn/TableColumn.tsx +0 -37
  72. package/src/lib/components/table/components/TableContent/TableContent.module.scss +0 -38
  73. package/src/lib/components/table/components/TableContent/TableContent.test.tsx +0 -56
  74. package/src/lib/components/table/components/TableContent/TableContent.tsx +0 -127
  75. /package/dist/cjs/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts +0 -0
  76. /package/dist/cjs/lib/components/table/components/{TableColumn/TableColumn.test.d.ts → TableContents/TableContents.test.d.ts} +0 -0
  77. /package/dist/esm/components/table/components/{TableSection → TableContents}/Collapsible.js.map +0 -0
  78. /package/dist/esm/lib/components/table/components/{TableSection → TableContents}/Collapsible.d.ts +0 -0
  79. /package/dist/{cjs/lib/components/table/components/TableContent/TableContent.test.d.ts → esm/lib/components/table/components/TableContents/TableContents.test.d.ts} +0 -0
  80. /package/src/lib/components/table/components/{TableSection → TableContents}/Collapsible.tsx +0 -0
@@ -1,28 +1,18 @@
1
- import { TableCellProps } from './components/TableCell/TableCell';
2
- import { ReactNode } from 'react';
1
+ import { ModalFunction, TableData } from './types';
3
2
  type TextOverrides = {
4
3
  showDetails?: string;
5
4
  hideDetails?: string;
6
5
  };
7
- export type TableSectionType = {
8
- title?: string;
9
- icon?: ReactNode;
10
- };
11
- interface TableSectionData {
12
- section?: TableSectionType;
13
- items: TableCellProps[][];
14
- }
15
- export type TableData = TableSectionData[];
16
6
  export interface TableProps {
17
7
  className?: string;
18
8
  collapsibleSections?: boolean;
19
- data: TableData;
9
+ tableData: TableData;
20
10
  hideDetails?: boolean;
21
- onModalOpen?: (title: ReactNode, body: ReactNode) => void;
11
+ onModalOpen?: ModalFunction;
22
12
  onSelectionChanged?: (index: number) => void;
23
13
  stickyHeaderTopOffset?: number;
24
14
  textOverrides?: TextOverrides;
25
15
  title: string;
26
16
  }
27
- declare const Table: ({ className, collapsibleSections, data, hideDetails, onModalOpen, onSelectionChanged, stickyHeaderTopOffset, textOverrides: definedTextOverrides, title, }: TableProps) => JSX.Element;
17
+ declare const Table: ({ className, collapsibleSections, tableData, hideDetails, onModalOpen, onSelectionChanged, stickyHeaderTopOffset, textOverrides: definedTextOverrides, title, }: TableProps) => JSX.Element;
28
18
  export { Table };
@@ -1,44 +1,45 @@
1
- import { TableData, TableProps } from './Table';
1
+ import { TableProps } from './Table';
2
+ import { TableData } from './types';
2
3
  declare const story: {
3
4
  title: string;
4
- component: ({ className, collapsibleSections, data, hideDetails, onModalOpen, onSelectionChanged, stickyHeaderTopOffset, textOverrides: definedTextOverrides, title, }: TableProps) => JSX.Element;
5
+ component: ({ className, collapsibleSections, tableData, hideDetails, onModalOpen, onSelectionChanged, stickyHeaderTopOffset, textOverrides: definedTextOverrides, title, }: TableProps) => JSX.Element;
5
6
  argTypes: {
6
7
  data: {
7
- description: string;
8
+ subContent: string;
8
9
  };
9
10
  title: {
10
- description: string;
11
+ subContent: string;
11
12
  };
12
13
  collapsibleSections: {
13
- description: string;
14
+ subContent: string;
14
15
  };
15
16
  hideDetails: {
16
- description: string;
17
+ subContent: string;
17
18
  };
18
19
  stickyHeaderTopOffset: {
19
- description: string;
20
+ subContent: string;
20
21
  };
21
22
  className: {
22
- description: string;
23
+ subContent: string;
23
24
  };
24
25
  textOverrides: {
25
- description: string;
26
+ subContent: string;
26
27
  };
27
28
  onSelectionChanged: {
28
- description: string;
29
+ subContent: string;
29
30
  table: {
30
31
  category: string;
31
32
  };
32
33
  };
33
34
  onModalOpen: {
34
- description: string;
35
+ subContent: string;
35
36
  table: {
36
37
  category: string;
37
38
  };
38
39
  };
39
40
  };
40
41
  args: {
41
- data: TableData;
42
+ tableData: TableData;
42
43
  collapsibleSections: boolean;
43
44
  hideDetails: boolean;
44
45
  stickyHeaderTopOffset: number;
@@ -51,7 +52,7 @@ declare const story: {
51
52
  };
52
53
  };
53
54
  export declare const TableStory: {
54
- ({ collapsibleSections, data, hideDetails, stickyHeaderTopOffset, textOverrides, title, }: TableProps): JSX.Element;
55
+ ({ collapsibleSections, tableData, hideDetails, stickyHeaderTopOffset, textOverrides, title, }: TableProps): JSX.Element;
55
56
  storyName: string;
56
57
  };
57
58
  export declare const TableDataType: () => JSX.Element;
@@ -1,16 +1,22 @@
1
- import { HTMLProps, ReactNode } from 'react';
2
- export interface TableCellProps {
1
+ import { ReactNode } from 'react';
2
+ interface BaseTableCellProps {
3
3
  align?: 'center' | 'left' | 'right';
4
- boolean?: boolean;
5
- cellProps?: HTMLProps<HTMLTableCellElement>;
6
- description?: ReactNode;
7
- info?: ReactNode;
4
+ checkmarkValue?: boolean;
5
+ content?: ReactNode;
6
+ modalContent?: ReactNode;
7
+ openModal?: (modalContent: ReactNode) => void;
8
+ subContent?: ReactNode;
8
9
  rating?: {
9
10
  value: number;
10
11
  type: 'zap' | 'star';
11
12
  };
12
- text?: ReactNode;
13
- openModal?: (info: ReactNode) => void;
14
13
  }
15
- declare const TableCell: ({ align, boolean, description, info, openModal, rating, text, }: TableCellProps) => JSX.Element;
14
+ interface PositionalTableCellProps {
15
+ isHeader?: boolean;
16
+ isFirstCellInRow?: boolean;
17
+ isTopLeftCell?: boolean;
18
+ isNavigation?: boolean;
19
+ }
20
+ export type TableCellProps = BaseTableCellProps & PositionalTableCellProps;
21
+ declare const TableCell: ({ align, checkmarkValue, content, isFirstCellInRow, isHeader, isNavigation, isTopLeftCell, modalContent, openModal, rating, subContent, }: TableCellProps) => JSX.Element;
16
22
  export { TableCell };
@@ -0,0 +1,13 @@
1
+ import { ModalFunction, TableData } from '../../types';
2
+ export interface TableContentsProps {
3
+ className?: string;
4
+ collapsibleSections?: boolean;
5
+ tableData: TableData;
6
+ hideDetails?: boolean;
7
+ isMobile?: boolean;
8
+ openModal?: ModalFunction;
9
+ shouldHideDetails?: boolean;
10
+ title: string;
11
+ }
12
+ declare const TableContents: ({ className, collapsibleSections, tableData, hideDetails, isMobile, openModal, shouldHideDetails, title, }: TableContentsProps) => JSX.Element;
13
+ export { TableContents };
@@ -1,23 +1,13 @@
1
1
  import { TableCellProps } from '../TableCell/TableCell';
2
- import { ReactNode } from 'react';
3
- export type TableSectionType = {
4
- title?: string;
5
- icon?: ReactNode;
6
- };
7
- interface TableSectionData {
8
- section?: TableSectionType;
9
- items: TableCellProps[][];
10
- }
11
- export type TableData = TableSectionData[];
2
+ import { ModalFunction, TableCellRowData } from '../../types';
12
3
  export interface TableSectionProps {
13
4
  className?: string;
14
- collapsibleSections?: boolean;
15
- data: TableData;
16
- hideDetails?: boolean;
17
- isMobile?: boolean;
18
- openModal?: (title: ReactNode, body: ReactNode) => void;
19
- shouldHideDetails?: boolean;
5
+ tableCellRows: TableCellRowData[];
6
+ hideHeader?: boolean;
7
+ openModal?: ModalFunction;
20
8
  title: string;
9
+ width?: number | string;
21
10
  }
22
- declare const TableSection: ({ className, collapsibleSections, data, hideDetails, isMobile, openModal, shouldHideDetails, title, }: TableSectionProps) => JSX.Element;
11
+ declare const TableSection: ({ className, tableCellRows, hideHeader, openModal, title, width, }: TableSectionProps) => JSX.Element;
12
+ export type { TableCellProps };
23
13
  export { TableSection };
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ import type { TableCellProps } from './components/TableCell/TableCell';
3
+ export type TableSectionType = {
4
+ title?: string;
5
+ icon?: ReactNode;
6
+ };
7
+ export type ModalData = {
8
+ title?: ReactNode;
9
+ body?: ReactNode;
10
+ };
11
+ export type TableCellRowData = TableCellProps[];
12
+ export type TableSectionData = {
13
+ section?: TableSectionType;
14
+ rows: TableCellRowData[];
15
+ };
16
+ export type TableData = TableSectionData[];
17
+ export type ModalFunction = (modalData: ModalData) => void;
@@ -63,4 +63,4 @@ var Collapsible = function (_a) {
63
63
  };
64
64
 
65
65
  export { Collapsible as C, useMediaQuery as u };
66
- //# sourceMappingURL=Collapsible-ac67187a.js.map
66
+ //# sourceMappingURL=Collapsible-a355828b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible-a355828b.js","sources":["../../../src/lib/hooks/useMediaQuery.ts","../../../src/lib/components/table/components/TableContents/Collapsible.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n// USAGE:\n// const isMobile = useMediaQuery('BELOW_MOBILE');\n\nexport const breakpointsArray = [\n 'ABOVE_MOBILE',\n 'ABOVE_TABLET',\n 'ABOVE_DESKTOP',\n 'BELOW_MOBILE',\n 'BELOW_TABLET',\n 'BELOW_DESKTOP',\n] as const;\n\nexport type Breakpoint = typeof breakpointsArray[number];\nexport type BreakpointData = { initialValue: boolean; queryString: string };\n\nexport const breakpointLookup = (breakpoint: Breakpoint): BreakpointData => {\n switch (breakpoint) {\n case 'BELOW_MOBILE':\n default:\n return {\n initialValue: window.innerWidth <= 544, // 34rem = 544px = mobile breakpoint}\n queryString: '(max-width: 34rem)',\n };\n case 'BELOW_TABLET':\n return {\n initialValue: window.innerWidth <= 720, // 45rem = 720px = tablet breakpoint\n queryString: '(max-width: 45rem)',\n };\n case 'BELOW_DESKTOP':\n return {\n initialValue: window.innerWidth <= 1024, // 64rem = 1024px = desktop breakpoint\n queryString: '(max-width: 64rem)',\n };\n case 'ABOVE_MOBILE':\n return {\n initialValue: window.innerWidth >= 544, // 34rem = 544px = mobile breakpoint}\n queryString: '(min-width: 34rem)',\n };\n case 'ABOVE_TABLET':\n return {\n initialValue: window.innerWidth >= 720, // 45rem = 720px = tablet breakpoint\n queryString: '(min-width: 45rem)',\n };\n case 'ABOVE_DESKTOP':\n return {\n initialValue: window.innerWidth >= 1024, // 64rem = 1024px = desktop breakpoint\n queryString: '(min-width: 64rem)',\n };\n }\n};\n\nexport const useMediaQuery = (breakpoint: Breakpoint) => {\n const { initialValue, queryString } = breakpointLookup(breakpoint);\n\n const [matchesBreakpoint, setMatchesBreakpoint] = useState(initialValue);\n\n useEffect(() => {\n const mediaQuery = window.matchMedia(queryString);\n\n const updateMediaQuery = (e: MediaQueryListEvent) =>\n setMatchesBreakpoint(e.matches);\n\n mediaQuery.addEventListener('change', updateMediaQuery);\n\n return () => {\n mediaQuery.removeEventListener('change', updateMediaQuery);\n };\n }, [queryString]);\n\n return matchesBreakpoint;\n};\n","import { ReactNode } from \"react\";\nimport AnimateHeight from \"react-animate-height\";\nimport { useMediaQuery } from \"../../../../hooks/useMediaQuery\";\n\ninterface CollapsibleProps {\n children: ReactNode;\n isExpanded?: boolean;\n isMobile?: boolean;\n}\n \nexport const Collapsible = ({ children, isExpanded }: CollapsibleProps) => {\n const isDesktop = useMediaQuery('ABOVE_DESKTOP');\n\n if (!isDesktop) {\n return (\n <div>\n {isExpanded ? children : null}\n </div>\n );\n }\n\n return (\n <AnimateHeight\n duration={300}\n height={isExpanded ? 'auto' : 0}\n >\n <div>{children}</div>\n </AnimateHeight>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;AAiBO,IAAM,gBAAgB,GAAG,UAAC,UAAsB;IACrD,QAAQ,UAAU;QAChB,KAAK,cAAc,CAAC;QACpB;YACE,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACtC,WAAW,EAAE,oBAAoB;aAClC,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACtC,WAAW,EAAE,oBAAoB;aAClC,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;gBACvC,WAAW,EAAE,oBAAoB;aAClC,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACtC,WAAW,EAAE,oBAAoB;aAClC,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACtC,WAAW,EAAE,oBAAoB;aAClC,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;gBACvC,WAAW,EAAE,oBAAoB;aAClC,CAAC;KACL;AACH,CAAC,CAAC;IAEW,aAAa,GAAG,UAAC,UAAsB;IAC5C,IAAA,KAAgC,gBAAgB,CAAC,UAAU,CAAC,EAA1D,YAAY,kBAAA,EAAE,WAAW,iBAAiC,CAAC;IAE7D,IAAA,KAA4C,QAAQ,CAAC,YAAY,CAAC,EAAjE,iBAAiB,QAAA,EAAE,oBAAoB,QAA0B,CAAC;IAEzE,SAAS,CAAC;QACR,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAElD,IAAM,gBAAgB,GAAG,UAAC,CAAsB;YAC9C,OAAA,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;SAAA,CAAC;QAElC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAExD,OAAO;YACL,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;SAC5D,CAAC;KACH,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,iBAAiB,CAAC;AAC3B;;IC9Da,WAAW,GAAG,UAAC,EAA0C;QAAxC,QAAQ,cAAA,EAAE,UAAU,gBAAA;IAChD,IAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAEjD,IAAI,CAAC,SAAS,EAAE;QACd,QACEA,uBACG,UAAU,GAAG,QAAQ,GAAG,IAAI,GACzB,EACN;KACH;IAED,QACEA,IAAC,aAAa,IACZ,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,CAAC,YAE/BA,uBAAM,QAAQ,GAAO,GACP,EAChB;AACJ;;;;"}
@@ -7,12 +7,12 @@ import ChevronDownIcon from '../icon/icons/ChevronDown.js';
7
7
  import ChevronUpIcon from '../icon/icons/ChevronUp.js';
8
8
  import { Card } from '../cards/card/index.js';
9
9
  import { s as styleInject } from '../../style-inject.es-1f59c1d0.js';
10
- import { u as useMediaQuery } from '../../Collapsible-ac67187a.js';
11
- import { TableSection } from './components/TableSection/TableSection.js';
10
+ import { u as useMediaQuery } from '../../Collapsible-a355828b.js';
11
+ import { TableContents } from './components/TableContents/TableContents.js';
12
12
  import { c as classNames } from '../../index-6ea95111.js';
13
13
  import { u as useTableNavigation } from '../../useTableNavigation-8e50b121.js';
14
14
  import { TableControls } from './components/TableControls/TableControls.js';
15
- import { TableContent } from './components/TableContent/TableContent.js';
15
+ import { TableSection } from './components/TableSection/TableSection.js';
16
16
  import { u as useScrollSync } from '../../useScrollSync-b2d28bed.js';
17
17
  import '../button/index.js';
18
18
  import '../icon/icons/Check.js';
@@ -26,7 +26,6 @@ import '../modal/genericModal/index.js';
26
26
  import '../modal/regularModal/index.js';
27
27
  import '../icon/icons/ChevronRight.js';
28
28
  import '../../index-a0ef2ab4.js';
29
- import './components/TableColumn/TableColumn.js';
30
29
  import '../../index-5e72c3d4.js';
31
30
  import '../../_commonjsHelpers-4730bd53.js';
32
31
  import '../icon/icons/ChevronLeft.js';
@@ -41,14 +40,14 @@ var defaultTextOverrides = {
41
40
  };
42
41
  var Table = function (_a) {
43
42
  var _b, _c, _d, _e, _f;
44
- var className = _a.className, collapsibleSections = _a.collapsibleSections, data = _a.data, hideDetails = _a.hideDetails, onModalOpen = _a.onModalOpen, onSelectionChanged = _a.onSelectionChanged, _g = _a.stickyHeaderTopOffset, stickyHeaderTopOffset = _g === void 0 ? 0 : _g, definedTextOverrides = _a.textOverrides, title = _a.title;
43
+ var className = _a.className, collapsibleSections = _a.collapsibleSections, tableData = _a.tableData, hideDetails = _a.hideDetails, onModalOpen = _a.onModalOpen, onSelectionChanged = _a.onSelectionChanged, _g = _a.stickyHeaderTopOffset, stickyHeaderTopOffset = _g === void 0 ? 0 : _g, definedTextOverrides = _a.textOverrides, title = _a.title;
45
44
  var textOverrides = __assign(__assign({}, defaultTextOverrides), definedTextOverrides);
46
45
  var isMobile = useMediaQuery('BELOW_MOBILE');
47
- var _h = useState(null), infoModal = _h[0], setInfoModal = _h[1];
46
+ var _h = useState(null), infoModalData = _h[0], setInfoModalData = _h[1];
48
47
  var _j = useState(true), shouldHideDetails = _j[0], setShouldHideDetails = _j[1];
49
48
  var containerRef = useRef(null);
50
49
  var headerRef = useRef(null);
51
- var columnsLength = data[0].items[0].length;
50
+ var columnsLength = tableData[0].rows[0].length;
52
51
  useScrollSync(headerRef, containerRef, !isMobile);
53
52
  var _k = useTableNavigation({
54
53
  enabled: isMobile,
@@ -56,20 +55,24 @@ var Table = function (_a) {
56
55
  columnsLength: columnsLength,
57
56
  onSelectionChanged: onSelectionChanged,
58
57
  }), activeSection = _k.activeSection, navigateTable = _k.navigateTable;
59
- var currentActiveSection = (_d = (_c = (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[activeSection];
60
- var handleOpenModal = function (modalTitle, body) {
61
- onModalOpen === null || onModalOpen === void 0 ? void 0 : onModalOpen(modalTitle, body);
62
- setInfoModal({ title: modalTitle, body: body });
58
+ var currentActiveSection = (_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[activeSection];
59
+ var handleOpenModal = function (_a) {
60
+ var body = _a.body, title = _a.title;
61
+ onModalOpen === null || onModalOpen === void 0 ? void 0 : onModalOpen({ body: body, title: title });
62
+ setInfoModalData({ body: body, title: title });
63
63
  };
64
- return (jsxs("div", { className: classNames(styles.wrapper, 'bg-white'), children: [isMobile ? (jsx(TableControls, { activeSection: activeSection, columnsLength: columnsLength, navigateTable: navigateTable, stickyHeaderTopOffset: stickyHeaderTopOffset, children: jsx(TableCell, __assign({}, currentActiveSection, { openModal: function (info) {
65
- return handleOpenModal(currentActiveSection === null || currentActiveSection === void 0 ? void 0 : currentActiveSection.text, info);
66
- } })) })) : (jsx("div", { "aria-hidden": true, className: styles.stickyHeader, style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx("div", { className: styles.container, ref: headerRef, children: jsx(TableContent, { data: [(_f = (_e = data === null || data === void 0 ? void 0 : data[0]) === null || _e === void 0 ? void 0 : _e.items) === null || _f === void 0 ? void 0 : _f[0]], title: title, className: className, openModal: handleOpenModal }) }) })), jsx("div", { ref: containerRef, className: classNames(styles.container, 'pb8'), children: jsx(TableSection, { data: data, title: title, className: className, collapsibleSections: collapsibleSections, hideDetails: hideDetails, isMobile: isMobile, shouldHideDetails: shouldHideDetails, openModal: handleOpenModal }) }), hideDetails && (jsx(Card, { "data-testid": "show-hide-details", classNames: {
64
+ return (jsxs("div", { className: classNames(styles.wrapper, 'bg-white'), children: [isMobile ? (jsx(TableControls, { activeSection: activeSection, columnsLength: columnsLength, navigateTable: navigateTable, stickyHeaderTopOffset: stickyHeaderTopOffset, children: jsx(TableCell, __assign({}, currentActiveSection, { openModal: function (body) {
65
+ return handleOpenModal({
66
+ body: body,
67
+ title: currentActiveSection === null || currentActiveSection === void 0 ? void 0 : currentActiveSection.content,
68
+ });
69
+ }, isNavigation: true })) })) : (jsx("div", { "aria-hidden": true, className: styles.stickyHeader, style: { top: "".concat(stickyHeaderTopOffset, "px") }, children: jsx("div", { className: styles.container, ref: headerRef, children: jsx(TableSection, { 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, className: className, openModal: handleOpenModal }) }) })), jsx("div", { ref: containerRef, className: classNames(styles.container, 'pb8'), children: jsx(TableContents, { tableData: tableData, title: title, className: className, collapsibleSections: collapsibleSections, hideDetails: hideDetails, isMobile: isMobile, shouldHideDetails: shouldHideDetails, openModal: handleOpenModal }) }), hideDetails && (jsx(Card, { "data-testid": "show-hide-details", classNames: {
67
70
  buttonWrapper: 'm8 mt32',
68
71
  title: 'd-flex gap8 ai-center jc-center',
69
72
  wrapper: 'bg-grey-200',
70
73
  }, title: jsxs(Fragment, { children: [shouldHideDetails
71
74
  ? textOverrides.showDetails
72
- : textOverrides.hideDetails, shouldHideDetails ? (jsx(ChevronDownIcon, { size: 24 })) : (jsx(ChevronUpIcon, { size: 24 }))] }), actionIcon: null, dropShadow: false, titleVariant: "small", density: "compact", onClick: function () { return setShouldHideDetails(function (current) { return !current; }); } })), jsx(BottomOrRegularModal, { isOpen: (infoModal === null || infoModal === void 0 ? void 0 : infoModal.body) ? true : false, title: infoModal === null || infoModal === void 0 ? void 0 : infoModal.title, onClose: function () { return setInfoModal(null); }, children: jsx("div", { className: "pt8 p24 wmn6", children: infoModal === null || infoModal === void 0 ? void 0 : infoModal.body }) })] }));
75
+ : textOverrides.hideDetails, shouldHideDetails ? (jsx(ChevronDownIcon, { size: 24 })) : (jsx(ChevronUpIcon, { size: 24 }))] }), actionIcon: null, dropShadow: false, titleVariant: "small", density: "compact", onClick: function () { return setShouldHideDetails(function (current) { return !current; }); } })), jsx(BottomOrRegularModal, { isOpen: (infoModalData === null || infoModalData === void 0 ? void 0 : infoModalData.body) ? true : false, title: infoModalData === null || infoModalData === void 0 ? void 0 : infoModalData.title, onClose: function () { return setInfoModalData(null); }, children: jsx("div", { className: "pt8 p24 wmn6", children: infoModalData === null || infoModalData === void 0 ? void 0 : infoModalData.body }) })] }));
73
76
  };
74
77
 
75
78
  export { Table };
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../src/lib/components/table/Table.tsx"],"sourcesContent":["import { TableCell, TableCellProps } from './components/TableCell/TableCell';\nimport { BottomOrRegularModal } from '../modal';\nimport { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from '../icon';\nimport { Card } from '../cards/card';\n\nimport styles from './Table.module.scss';\nimport { useMediaQuery } from '../../hooks/useMediaQuery';\nimport { TableSection } from './components/TableSection/TableSection';\nimport classNames from 'classnames';\nimport { useTableNavigation } from './utils/useTableNavigation/useTableNavigation';\nimport { TableControls } from './components/TableControls/TableControls';\nimport { TableContent } from './components/TableContent/TableContent';\nimport { useScrollSync } from './utils/useScrollSync/useScrollSync';\n\ntype TextOverrides = {\n showDetails?: string;\n hideDetails?: string;\n};\n\nexport type TableSectionType = {\n title?: string;\n icon?: ReactNode;\n};\n\ninterface ModalType {\n title?: ReactNode;\n body?: ReactNode;\n}\n\ninterface TableSectionData {\n section?: TableSectionType;\n items: TableCellProps[][];\n}\n\nexport type TableData = TableSectionData[];\n\nexport interface TableProps {\n className?: string;\n collapsibleSections?: boolean;\n data: TableData;\n hideDetails?: boolean;\n onModalOpen?: (title: ReactNode, body: ReactNode) => void;\n onSelectionChanged?: (index: number) => void;\n stickyHeaderTopOffset?: number;\n textOverrides?: TextOverrides;\n title: string;\n}\n\nconst defaultTextOverrides = {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n};\n\nconst Table = ({\n className,\n collapsibleSections,\n data,\n hideDetails,\n onModalOpen,\n onSelectionChanged,\n stickyHeaderTopOffset = 0,\n textOverrides: definedTextOverrides,\n title,\n}: TableProps) => {\n const textOverrides = { ...defaultTextOverrides, ...definedTextOverrides };\n const isMobile = useMediaQuery('BELOW_MOBILE');\n const [infoModal, setInfoModal] = useState<ModalType | null>(null);\n const [shouldHideDetails, setShouldHideDetails] = useState(true);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const headerRef = useRef<HTMLDivElement | null>(null);\n const columnsLength = data[0].items[0].length;\n\n useScrollSync(headerRef, containerRef, !isMobile);\n\n const { activeSection, navigateTable } = useTableNavigation({\n enabled: isMobile,\n containerRef,\n columnsLength,\n onSelectionChanged,\n });\n\n const currentActiveSection = data?.[0]?.items?.[0]?.[activeSection];\n\n const handleOpenModal = (modalTitle: ReactNode, body: ReactNode) => {\n onModalOpen?.(modalTitle, body);\n setInfoModal({ title: modalTitle, body });\n };\n\n return (\n <div className={classNames(styles.wrapper, 'bg-white')}>\n {isMobile ? (\n <TableControls\n activeSection={activeSection}\n columnsLength={columnsLength}\n navigateTable={navigateTable}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n >\n <TableCell\n {...currentActiveSection}\n openModal={(info) =>\n handleOpenModal(currentActiveSection?.text, info)\n }\n />\n </TableControls>\n ) : (\n <div\n aria-hidden\n className={styles.stickyHeader}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <div className={styles.container} ref={headerRef}>\n <TableContent\n data={[data?.[0]?.items?.[0]]}\n title={title}\n className={className}\n openModal={handleOpenModal}\n />\n </div>\n </div>\n )}\n\n <div ref={containerRef} className={classNames(styles.container, 'pb8')}>\n <TableSection\n data={data}\n title={title}\n className={className}\n collapsibleSections={collapsibleSections}\n hideDetails={hideDetails}\n isMobile={isMobile}\n shouldHideDetails={shouldHideDetails}\n openModal={handleOpenModal}\n />\n </div>\n\n {hideDetails && (\n <Card\n data-testid=\"show-hide-details\"\n classNames={{\n buttonWrapper: 'm8 mt32',\n title: 'd-flex gap8 ai-center jc-center',\n wrapper: 'bg-grey-200',\n }}\n title={\n <>\n {shouldHideDetails\n ? textOverrides.showDetails\n : textOverrides.hideDetails}\n {shouldHideDetails ? (\n <ChevronDownIcon size={24} />\n ) : (\n <ChevronUpIcon size={24} />\n )}\n </>\n }\n actionIcon={null}\n dropShadow={false}\n titleVariant=\"small\"\n density=\"compact\"\n onClick={() => setShouldHideDetails((current) => !current)}\n />\n )}\n\n <BottomOrRegularModal\n isOpen={infoModal?.body ? true : false}\n title={infoModal?.title}\n onClose={() => setInfoModal(null)}\n >\n <div className=\"pt8 p24 wmn6\">{infoModal?.body}</div>\n </BottomOrRegularModal>\n </div>\n );\n};\n\nexport { Table };\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../src/lib/components/table/Table.tsx"],"sourcesContent":["import { TableCell, TableCellProps } from './components/TableCell/TableCell';\nimport { BottomOrRegularModal } from '../modal';\nimport { 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 { ModalData, ModalFunction, TableData } from './types';\n\ntype TextOverrides = {\n showDetails?: string;\n hideDetails?: string;\n};\n\nexport interface TableProps {\n className?: string;\n collapsibleSections?: boolean;\n tableData: TableData;\n hideDetails?: boolean;\n onModalOpen?: ModalFunction;\n onSelectionChanged?: (index: number) => void;\n stickyHeaderTopOffset?: number;\n textOverrides?: TextOverrides;\n title: string;\n}\n\nconst defaultTextOverrides = {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n};\n\nconst Table = ({\n className,\n collapsibleSections,\n tableData,\n hideDetails,\n onModalOpen,\n onSelectionChanged,\n stickyHeaderTopOffset = 0,\n textOverrides: definedTextOverrides,\n title,\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 columnsLength = tableData[0].rows[0].length;\n\n useScrollSync(headerRef, containerRef, !isMobile);\n\n const { activeSection, navigateTable } = useTableNavigation({\n enabled: isMobile,\n containerRef,\n columnsLength,\n onSelectionChanged,\n });\n\n const currentActiveSection = tableData?.[0]?.rows?.[0]?.[activeSection];\n\n const handleOpenModal: ModalFunction = ({ body, title }) => {\n onModalOpen?.({ body, title });\n setInfoModalData({ body, title });\n };\n\n return (\n <div className={classNames(styles.wrapper, 'bg-white')}>\n {isMobile ? (\n <TableControls\n activeSection={activeSection}\n columnsLength={columnsLength}\n navigateTable={navigateTable}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n >\n <TableCell\n {...currentActiveSection}\n openModal={(body) =>\n handleOpenModal({\n body,\n title: currentActiveSection?.content,\n })\n }\n isNavigation\n />\n </TableControls>\n ) : (\n <div\n aria-hidden\n className={styles.stickyHeader}\n style={{ top: `${stickyHeaderTopOffset}px` }}\n >\n <div className={styles.container} ref={headerRef}>\n <TableSection\n tableCellRows={[tableData?.[0]?.rows?.[0]]}\n title={title}\n className={className}\n openModal={handleOpenModal}\n />\n </div>\n </div>\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 hideDetails={hideDetails}\n isMobile={isMobile}\n shouldHideDetails={shouldHideDetails}\n openModal={handleOpenModal}\n />\n </div>\n\n {hideDetails && (\n <Card\n data-testid=\"show-hide-details\"\n classNames={{\n buttonWrapper: 'm8 mt32',\n title: 'd-flex gap8 ai-center jc-center',\n wrapper: 'bg-grey-200',\n }}\n title={\n <>\n {shouldHideDetails\n ? textOverrides.showDetails\n : textOverrides.hideDetails}\n {shouldHideDetails ? (\n <ChevronDownIcon size={24} />\n ) : (\n <ChevronUpIcon size={24} />\n )}\n </>\n }\n actionIcon={null}\n dropShadow={false}\n titleVariant=\"small\"\n density=\"compact\"\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=\"pt8 p24 wmn6\">{infoModalData?.body}</div>\n </BottomOrRegularModal>\n </div>\n );\n};\n\nexport { Table };\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,IAAM,oBAAoB,GAAG;IAC3B,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,cAAc;CAC5B,CAAC;IAEI,KAAK,GAAG,UAAC,EAUF;;QATX,SAAS,eAAA,EACT,mBAAmB,yBAAA,EACnB,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,WAAW,iBAAA,EACX,kBAAkB,wBAAA,EAClB,6BAAyB,EAAzB,qBAAqB,mBAAG,CAAC,KAAA,EACV,oBAAoB,mBAAA,EACnC,KAAK,WAAA;IAEL,IAAM,aAAa,yBAAQ,oBAAoB,GAAK,oBAAoB,CAAE,CAAC;IAC3E,IAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IACzC,IAAA,KAAoC,QAAQ,CAAmB,IAAI,CAAC,EAAnE,aAAa,QAAA,EAAE,gBAAgB,QAAoC,CAAC;IACrE,IAAA,KAA4C,QAAQ,CAAC,IAAI,CAAC,EAAzD,iBAAiB,QAAA,EAAE,oBAAoB,QAAkB,CAAC;IACjE,IAAM,YAAY,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACzD,IAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACtD,IAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAElD,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAA,KAAmC,kBAAkB,CAAC;QAC1D,OAAO,EAAE,QAAQ;QACjB,YAAY,cAAA;QACZ,aAAa,eAAA;QACb,kBAAkB,oBAAA;KACnB,CAAC,EALM,aAAa,mBAAA,EAAE,aAAa,mBAKlC,CAAC;IAEH,IAAM,oBAAoB,GAAG,MAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,CAAC,CAAC,0CAAE,IAAI,0CAAG,CAAC,CAAC,0CAAG,aAAa,CAAC,CAAC;IAExE,IAAM,eAAe,GAAkB,UAAC,EAAe;YAAb,IAAI,UAAA,EAAE,KAAK,WAAA;QACnD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;QAC/B,gBAAgB,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;KACnC,CAAC;IAEF,QACEA,cAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,aACnD,QAAQ,IACPC,IAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,qBAAqB,YAE5CA,IAAC,SAAS,eACJ,oBAAoB,IACxB,SAAS,EAAE,UAAC,IAAI;wBACd,OAAA,eAAe,CAAC;4BACd,IAAI,MAAA;4BACJ,KAAK,EAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,OAAO;yBACrC,CAAC;qBAAA,EAEJ,YAAY,UACZ,GACY,KAEhBA,kCAEE,SAAS,EAAE,MAAM,CAAC,YAAY,EAC9B,KAAK,EAAE,EAAE,GAAG,EAAE,UAAG,qBAAqB,OAAI,EAAE,YAE5CA,aAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,YAC9CA,IAAC,YAAY,IACX,aAAa,EAAE,CAAC,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,CAAC,CAAC,0CAAE,IAAI,0CAAG,CAAC,CAAC,CAAC,EAC1C,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,GAC1B,GACE,GACF,CACP,EAEDA,aAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,YACpEA,IAAC,aAAa,IACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,eAAe,GAC1B,GACE,EAEL,WAAW,KACVA,IAAC,IAAI,mBACS,mBAAmB,EAC/B,UAAU,EAAE;oBACV,aAAa,EAAE,SAAS;oBACxB,KAAK,EAAE,iCAAiC;oBACxC,OAAO,EAAE,aAAa;iBACvB,EACD,KAAK,EACHD,4BACG,iBAAiB;8BACd,aAAa,CAAC,WAAW;8BACzB,aAAa,CAAC,WAAW,EAC5B,iBAAiB,IAChBC,IAAC,eAAe,IAAC,IAAI,EAAE,EAAE,GAAI,KAE7BA,IAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,CAC5B,IACA,EAEL,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,KAAK,EACjB,YAAY,EAAC,OAAO,EACpB,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,cAAM,OAAA,oBAAoB,CAAC,UAAC,OAAO,IAAK,OAAA,CAAC,OAAO,GAAA,CAAC,GAAA,GAC1D,CACH,EAEDA,IAAC,oBAAoB,IACnB,MAAM,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,IAAG,IAAI,GAAG,KAAK,EAC1C,KAAK,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,EAC3B,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,IAAI,CAAC,GAAA,YAErCA,aAAK,SAAS,EAAC,cAAc,YAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,GAAO,GACpC,IACnB,EACN;AACJ;;;;"}
@@ -22,11 +22,10 @@ import '../icon/icons/ChevronDown.js';
22
22
  import '../icon/icons/ChevronUp.js';
23
23
  import '../cards/card/index.js';
24
24
  import '../icon/icons/ChevronRight.js';
25
- import '../../Collapsible-ac67187a.js';
25
+ import '../../Collapsible-a355828b.js';
26
26
  import '../../index-a0ef2ab4.js';
27
+ import './components/TableContents/TableContents.js';
27
28
  import './components/TableSection/TableSection.js';
28
- import './components/TableContent/TableContent.js';
29
- import './components/TableColumn/TableColumn.js';
30
29
  import '../../useTableNavigation-8e50b121.js';
31
30
  import '../../index-5e72c3d4.js';
32
31
  import '../../_commonjsHelpers-4730bd53.js';
@@ -36,29 +35,35 @@ import '../../useScrollSync-b2d28bed.js';
36
35
 
37
36
  var initialData = [
38
37
  {
39
- items: [
38
+ rows: [
40
39
  [
41
- { text: 'Our plans' },
42
- { text: 'Surgery', info: 'More info on this one he' },
43
- { text: 'Standard' },
44
- { text: 'Premium' },
40
+ { content: 'Our plans' },
41
+ { content: 'Surgery', modalContent: 'More info on surgery' },
42
+ { content: 'Standard' },
43
+ { content: 'Premium' },
45
44
  ],
46
45
  [
47
- { text: 'Regular vet visits & medication', description: 'Annual Only' },
48
- { text: 'No', description: 'Annual Only' },
49
- { text: 'Yes' },
50
- { text: 'Yes' },
46
+ {
47
+ content: 'Regular vet visits & medication',
48
+ subContent: 'Annual Only',
49
+ },
50
+ { content: 'No', subContent: 'Annual Only' },
51
+ { content: 'Yes' },
52
+ { content: 'Yes' },
51
53
  ],
52
54
  [
53
- { text: 'Operations', info: 'info' },
54
- { boolean: true, info: 'Maybe' },
55
- { boolean: false },
56
- { boolean: true },
55
+ { content: 'Operations', modalContent: 'Operations info' },
56
+ { checkmarkValue: true, modalContent: 'Operations info column 2' },
57
+ { checkmarkValue: false },
58
+ { checkmarkValue: true },
57
59
  ],
58
60
  [
59
- { text: 'Rating', info: 'info' },
60
- { rating: { type: 'zap', value: 1 }, info: 'Maybe' },
61
- { rating: { type: 'zap', value: 3 } },
61
+ { content: 'Rating', modalContent: 'Rating info' },
62
+ { rating: { type: 'zap', value: 1 } },
63
+ {
64
+ rating: { type: 'zap', value: 3 },
65
+ modalContent: 'Rating info column 3',
66
+ },
62
67
  { rating: { type: 'star', value: 3 } },
63
68
  ],
64
69
  ],
@@ -68,22 +73,22 @@ var initialData = [
68
73
  icon: jsx(DentalPlusIcon, { size: 24, noMargin: true }),
69
74
  title: 'Dental',
70
75
  },
71
- items: [
76
+ rows: [
72
77
  [
73
- { text: 'Regular vet visits & medication' },
74
- { text: 'No' },
75
- { text: 'Yes' },
76
- { text: 'Yes' },
78
+ { content: 'Regular vet visits & medication' },
79
+ { content: 'No' },
80
+ { content: 'Yes' },
81
+ { content: 'Yes' },
77
82
  ],
78
83
  [
79
- { text: 'Operations', info: 'info' },
80
- { boolean: true, info: 'Maybe' },
81
- { boolean: false },
82
- { boolean: true },
84
+ { content: 'Operations', modalContent: 'info' },
85
+ { checkmarkValue: true, modalContent: 'Maybe' },
86
+ { checkmarkValue: false },
87
+ { checkmarkValue: true },
83
88
  ],
84
89
  [
85
- { text: 'Rating', info: 'info' },
86
- { rating: { type: 'zap', value: 1 }, info: 'Maybe' },
90
+ { content: 'Rating', modalContent: 'info' },
91
+ { rating: { type: 'zap', value: 1 }, modalContent: 'Maybe' },
87
92
  { rating: { type: 'zap', value: 3 } },
88
93
  { rating: { type: 'star', value: 3 } },
89
94
  ],
@@ -94,22 +99,22 @@ var initialData = [
94
99
  title: 'Travel',
95
100
  icon: jsx(PlaneIcon, { size: 24, noMargin: true }),
96
101
  },
97
- items: [
102
+ rows: [
98
103
  [
99
- { text: 'Regular vet visits & medication' },
100
- { text: 'No', boolean: false },
101
- { text: 'Yes' },
102
- { text: 'Yes' },
104
+ { content: 'Regular vet visits & medication' },
105
+ { content: 'No', checkmarkValue: false },
106
+ { content: 'Yes' },
107
+ { content: 'Yes' },
103
108
  ],
104
109
  [
105
- { text: 'Operations', info: 'info' },
106
- { boolean: true, info: 'Maybe' },
107
- { boolean: false },
108
- { boolean: true },
110
+ { content: 'Operations', modalContent: 'info' },
111
+ { checkmarkValue: true, modalContent: 'Maybe' },
112
+ { checkmarkValue: false },
113
+ { checkmarkValue: true },
109
114
  ],
110
115
  [
111
- { text: 'Rating', info: 'info' },
112
- { rating: { type: 'zap', value: 1 }, info: 'Maybe' },
116
+ { content: 'Rating', modalContent: 'info' },
117
+ { rating: { type: 'zap', value: 1 }, modalContent: 'Maybe' },
113
118
  { rating: { type: 'zap', value: 3 } },
114
119
  { rating: { type: 'star', value: 3 } },
115
120
  ],
@@ -121,41 +126,41 @@ var story = {
121
126
  component: Table,
122
127
  argTypes: {
123
128
  data: {
124
- description: 'This property allows to set the data of the Table component.',
129
+ subContent: 'This property allows to set the data of the Table component.',
125
130
  },
126
131
  title: {
127
- description: 'This property allows to add a title to the Table component for accessibility purposes.',
132
+ subContent: 'This property allows to add a title to the Table component for accessibility purposes.',
128
133
  },
129
134
  collapsibleSections: {
130
- description: 'This property allows to collapse the sections of the table.',
135
+ subContent: 'This property allows to collapse the sections of the table.',
131
136
  },
132
137
  hideDetails: {
133
- description: 'This property allows to hide the details of the table.',
138
+ subContent: 'This property allows to hide the details of the table.',
134
139
  },
135
140
  stickyHeaderTopOffset: {
136
- description: 'This property allows to set the offset of the sticky header.',
141
+ subContent: 'This property allows to set the offset of the sticky header.',
137
142
  },
138
143
  className: {
139
- description: 'This property allows to set a custom class to the Table component.',
144
+ subContent: 'This property allows to set a custom class to the Table component.',
140
145
  },
141
146
  textOverrides: {
142
- description: 'This property allows to set custom text for the show and hide details buttons.',
147
+ subContent: 'This property allows to set custom text for the show and hide details buttons.',
143
148
  },
144
149
  onSelectionChanged: {
145
- description: 'This event is triggered when a selection is changed. It receives the index of the selection as an argument.',
150
+ subContent: 'This event is triggered when a selection is changed. It receives the index of the selection as an argument.',
146
151
  table: {
147
152
  category: 'Events',
148
153
  },
149
154
  },
150
155
  onModalOpen: {
151
- description: 'This event is triggered when a modal is opened. It receives the title and body of the modal as arguments.',
156
+ subContent: 'This event is triggered when a modal is opened. It receives the title and body of the modal as arguments.',
152
157
  table: {
153
158
  category: 'Events',
154
159
  },
155
160
  },
156
161
  },
157
162
  args: {
158
- data: initialData,
163
+ tableData: initialData,
159
164
  collapsibleSections: false,
160
165
  hideDetails: false,
161
166
  stickyHeaderTopOffset: 0,
@@ -168,11 +173,11 @@ var story = {
168
173
  },
169
174
  };
170
175
  var TableStory = function (_a) {
171
- var collapsibleSections = _a.collapsibleSections, data = _a.data, hideDetails = _a.hideDetails, stickyHeaderTopOffset = _a.stickyHeaderTopOffset, textOverrides = _a.textOverrides, title = _a.title;
172
- return (jsx(Table, { collapsibleSections: collapsibleSections, data: data, hideDetails: hideDetails, stickyHeaderTopOffset: stickyHeaderTopOffset, textOverrides: textOverrides, title: title }));
176
+ var collapsibleSections = _a.collapsibleSections, tableData = _a.tableData, hideDetails = _a.hideDetails, stickyHeaderTopOffset = _a.stickyHeaderTopOffset, textOverrides = _a.textOverrides, title = _a.title;
177
+ return (jsx(Table, { collapsibleSections: collapsibleSections, tableData: tableData, hideDetails: hideDetails, stickyHeaderTopOffset: stickyHeaderTopOffset, textOverrides: textOverrides, title: title }));
173
178
  };
174
179
  var TableDataType = function () {
175
- return (jsx("pre", { children: "\ntype TableData = {\n section?: \n title?: string;\n icon?: ReactNode;\n };\n items: {\n align?: 'center' | 'left' | 'right';\n boolean?: boolean;\n cellProps?: HTMLProps<HTMLTableCellElement>;\n description?: ReactNode;\n info?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n }\n text?: ReactNode;\n openModal?: (info: ReactNode) => void;\n }[][];\n}[];\n " }));
180
+ 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 content?: 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 " }));
176
181
  };
177
182
  TableStory.storyName = 'Table';
178
183
 
@@ -1 +1 @@
1
- {"version":3,"file":"Table.stories.js","sources":["../../../../../src/lib/components/table/Table.stories.tsx"],"sourcesContent":["import { Table, TableData, TableProps } from './Table';\nimport { DentalPlusIcon, PlaneIcon } from '../icon';\n\nconst initialData: TableData = [\n {\n items: [\n [\n { text: 'Our plans' },\n { text: 'Surgery', info: 'More info on this one he' },\n { text: 'Standard' },\n { text: 'Premium' },\n ],\n [\n { text: 'Regular vet visits & medication', description: 'Annual Only' },\n { text: 'No', description: 'Annual Only' },\n { text: 'Yes' },\n { text: 'Yes' },\n ],\n [\n { text: 'Operations', info: 'info' },\n { boolean: true, info: 'Maybe' },\n { boolean: false },\n { boolean: true },\n ],\n [\n { text: 'Rating', info: 'info' },\n { rating: { type: 'zap', value: 1 }, info: 'Maybe' },\n { rating: { type: 'zap', value: 3 } },\n { rating: { type: 'star', value: 3 } },\n ],\n ],\n },\n {\n section: {\n icon: <DentalPlusIcon size={24} noMargin />,\n title: 'Dental',\n },\n items: [\n [\n { text: 'Regular vet visits & medication' },\n { text: 'No' },\n { text: 'Yes' },\n { text: 'Yes' },\n ],\n [\n { text: 'Operations', info: 'info' },\n { boolean: true, info: 'Maybe' },\n { boolean: false },\n { boolean: true },\n ],\n [\n { text: 'Rating', info: 'info' },\n { rating: { type: 'zap', value: 1 }, info: 'Maybe' },\n { rating: { type: 'zap', value: 3 } },\n { rating: { type: 'star', value: 3 } },\n ],\n ],\n },\n {\n section: {\n title: 'Travel',\n icon: <PlaneIcon size={24} noMargin />,\n },\n items: [\n [\n { text: 'Regular vet visits & medication' },\n { text: 'No', boolean: false },\n { text: 'Yes' },\n { text: 'Yes' },\n ],\n [\n { text: 'Operations', info: 'info' },\n { boolean: true, info: 'Maybe' },\n { boolean: false },\n { boolean: true },\n ],\n [\n { text: 'Rating', info: 'info' },\n { rating: { type: 'zap', value: 1 }, info: 'Maybe' },\n { rating: { type: 'zap', value: 3 } },\n { rating: { type: 'star', value: 3 } },\n ],\n ],\n },\n];\n\nconst story = {\n title: 'JSX/Table',\n component: Table,\n argTypes: {\n data: {\n description:\n 'This property allows to set the data of the Table component.',\n },\n title: {\n description:\n 'This property allows to add a title to the Table component for accessibility purposes.',\n },\n collapsibleSections: {\n description:\n 'This property allows to collapse the sections of the table.',\n },\n hideDetails: {\n description: 'This property allows to hide the details of the table.',\n },\n stickyHeaderTopOffset: {\n description:\n 'This property allows to set the offset of the sticky header.',\n },\n className: {\n description:\n 'This property allows to set a custom class to the Table component.',\n },\n textOverrides: {\n description:\n 'This property allows to set custom text for the show and hide details buttons.',\n },\n onSelectionChanged: {\n description:\n 'This event is triggered when a selection is changed. It receives the index of the selection as an argument.',\n table: {\n category: 'Events',\n },\n },\n onModalOpen: {\n description:\n 'This event is triggered when a modal is opened. It receives the title and body of the modal as arguments.',\n table: {\n category: 'Events',\n },\n },\n },\n args: {\n data: initialData,\n collapsibleSections: false,\n hideDetails: false,\n stickyHeaderTopOffset: 0,\n title: 'Title of the table',\n className: '',\n textOverrides: {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n },\n },\n};\n\nexport const TableStory = ({\n collapsibleSections,\n data,\n hideDetails,\n stickyHeaderTopOffset,\n textOverrides,\n title,\n}: TableProps) => (\n <Table\n collapsibleSections={collapsibleSections}\n data={data}\n hideDetails={hideDetails}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n textOverrides={textOverrides}\n title={title}\n />\n);\n\nexport const TableDataType = () => {\n return (\n <pre>\n {`\ntype TableData = {\n section?: \n title?: string;\n icon?: ReactNode;\n };\n items: {\n align?: 'center' | 'left' | 'right';\n boolean?: boolean;\n cellProps?: HTMLProps<HTMLTableCellElement>;\n description?: ReactNode;\n info?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n }\n text?: ReactNode;\n openModal?: (info: ReactNode) => void;\n }[][];\n}[];\n `}\n </pre>\n );\n};\n\nTableStory.storyName = 'Table';\n\nexport default story;\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Table.stories.js","sources":["../../../../../src/lib/components/table/Table.stories.tsx"],"sourcesContent":["import { Table, TableProps } from './Table';\nimport { DentalPlusIcon, PlaneIcon } from '../icon';\nimport { TableData } from './types';\n\nconst initialData: TableData = [\n {\n rows: [\n [\n { content: 'Our plans' },\n { content: 'Surgery', modalContent: 'More info on surgery' },\n { content: 'Standard' },\n { content: 'Premium' },\n ],\n [\n {\n content: 'Regular vet visits & medication',\n subContent: 'Annual Only',\n },\n { content: 'No', subContent: 'Annual Only' },\n { content: 'Yes' },\n { content: 'Yes' },\n ],\n [\n { content: 'Operations', modalContent: 'Operations info' },\n { checkmarkValue: true, modalContent: 'Operations info column 2' },\n { checkmarkValue: false },\n { checkmarkValue: true },\n ],\n [\n { content: 'Rating', modalContent: 'Rating info' },\n { rating: { type: 'zap', value: 1 } },\n {\n rating: { type: 'zap', value: 3 },\n modalContent: 'Rating info column 3',\n },\n { rating: { type: 'star', value: 3 } },\n ],\n ],\n },\n {\n section: {\n icon: <DentalPlusIcon size={24} noMargin />,\n title: 'Dental',\n },\n rows: [\n [\n { content: 'Regular vet visits & medication' },\n { content: 'No' },\n { content: 'Yes' },\n { content: 'Yes' },\n ],\n [\n { content: 'Operations', modalContent: 'info' },\n { checkmarkValue: true, modalContent: 'Maybe' },\n { checkmarkValue: false },\n { checkmarkValue: true },\n ],\n [\n { content: 'Rating', modalContent: 'info' },\n { rating: { type: 'zap', value: 1 }, modalContent: 'Maybe' },\n { rating: { type: 'zap', value: 3 } },\n { rating: { type: 'star', value: 3 } },\n ],\n ],\n },\n {\n section: {\n title: 'Travel',\n icon: <PlaneIcon size={24} noMargin />,\n },\n rows: [\n [\n { content: 'Regular vet visits & medication' },\n { content: 'No', checkmarkValue: false },\n { content: 'Yes' },\n { content: 'Yes' },\n ],\n [\n { content: 'Operations', modalContent: 'info' },\n { checkmarkValue: true, modalContent: 'Maybe' },\n { checkmarkValue: false },\n { checkmarkValue: true },\n ],\n [\n { content: 'Rating', modalContent: 'info' },\n { rating: { type: 'zap', value: 1 }, modalContent: 'Maybe' },\n { rating: { type: 'zap', value: 3 } },\n { rating: { type: 'star', value: 3 } },\n ],\n ],\n },\n];\n\nconst story = {\n title: 'JSX/Table',\n component: Table,\n argTypes: {\n data: {\n subContent:\n 'This property allows to set the data of the Table component.',\n },\n title: {\n subContent:\n 'This property allows to add a title to the Table component for accessibility purposes.',\n },\n collapsibleSections: {\n subContent: 'This property allows to collapse the sections of the table.',\n },\n hideDetails: {\n subContent: 'This property allows to hide the details of the table.',\n },\n stickyHeaderTopOffset: {\n subContent:\n 'This property allows to set the offset of the sticky header.',\n },\n className: {\n subContent:\n 'This property allows to set a custom class to the Table component.',\n },\n textOverrides: {\n subContent:\n 'This property allows to set custom text for the show and hide details buttons.',\n },\n onSelectionChanged: {\n subContent:\n 'This event is triggered when a selection is changed. It receives the index of the selection as an argument.',\n table: {\n category: 'Events',\n },\n },\n onModalOpen: {\n subContent:\n 'This event is triggered when a modal is opened. It receives the title and body of the modal as arguments.',\n table: {\n category: 'Events',\n },\n },\n },\n args: {\n tableData: initialData,\n collapsibleSections: false,\n hideDetails: false,\n stickyHeaderTopOffset: 0,\n title: 'Title of the table',\n className: '',\n textOverrides: {\n showDetails: 'Show details',\n hideDetails: 'Hide details',\n },\n },\n};\n\nexport const TableStory = ({\n collapsibleSections,\n tableData,\n hideDetails,\n stickyHeaderTopOffset,\n textOverrides,\n title,\n}: TableProps) => (\n <Table\n collapsibleSections={collapsibleSections}\n tableData={tableData}\n hideDetails={hideDetails}\n stickyHeaderTopOffset={stickyHeaderTopOffset}\n textOverrides={textOverrides}\n title={title}\n />\n);\n\nexport const TableDataType = () => {\n return (\n <pre>\n {`\ntype TableData = {\n section?: \n title?: string;\n icon?: ReactNode;\n };\n rows: {\n align?: 'center' | 'left' | 'right';\n checkmarkValue?: boolean;\n content?: 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 `}\n </pre>\n );\n};\n\nTableStory.storyName = 'Table';\n\nexport default story;\n"],"names":["_jsx"],"mappings":"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"}