@popsure/dirty-swan 0.54.2 → 0.54.3

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 (106) hide show
  1. package/dist/cjs/index.js +329 -239
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/lib/components/table/components/TableCell/BaseCell/BaseCell.d.ts +17 -0
  4. package/dist/cjs/lib/components/table/components/TableCell/BaseCell/BaseCell.stories.d.ts +22 -0
  5. package/dist/cjs/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.d.ts +3 -0
  6. package/dist/cjs/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.stories.d.ts +25 -0
  7. package/dist/cjs/lib/components/table/components/TableCell/ButtonCell/ButtonCell.d.ts +9 -0
  8. package/dist/cjs/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.d.ts +17 -0
  9. package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +9 -0
  10. package/dist/cjs/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +17 -0
  11. package/dist/cjs/lib/components/table/components/TableCell/TableCell.d.ts +5 -17
  12. package/dist/cjs/lib/components/table/types.d.ts +11 -2
  13. package/dist/cjs/lib/components/table/utils/useTableNavigation/useTableNavigation.d.ts +1 -2
  14. package/dist/esm/components/cards/card/index.stories.js +2 -2
  15. package/dist/esm/components/cards/card/index.stories.js.map +1 -1
  16. package/dist/esm/components/comparisonTable/components/TableInfoButton/index.js +2 -2
  17. package/dist/esm/components/comparisonTable/components/TableInfoButton/index.js.map +1 -1
  18. package/dist/esm/components/comparisonTable/index.js +3 -1526
  19. package/dist/esm/components/comparisonTable/index.js.map +1 -1
  20. package/dist/esm/components/comparisonTable/index.stories.js +1 -0
  21. package/dist/esm/components/comparisonTable/index.stories.js.map +1 -1
  22. package/dist/esm/components/icon/icons/Info.js +2 -2
  23. package/dist/esm/components/icon/icons/Info.js.map +1 -1
  24. package/dist/esm/components/icon/icons.stories.js +1 -1
  25. package/dist/esm/components/icon/index.stories.js +1 -1
  26. package/dist/esm/components/table/Table.js +26 -12
  27. package/dist/esm/components/table/Table.js.map +1 -1
  28. package/dist/esm/components/table/Table.stories.js +54 -12
  29. package/dist/esm/components/table/Table.stories.js.map +1 -1
  30. package/dist/esm/components/table/Table.test.js +12 -6
  31. package/dist/esm/components/table/Table.test.js.map +1 -1
  32. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +50 -0
  33. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js.map +1 -0
  34. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.stories.js +43 -0
  35. package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.stories.js.map +1 -0
  36. package/dist/esm/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.js +15 -0
  37. package/dist/esm/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.js.map +1 -0
  38. package/dist/esm/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.stories.js +31 -0
  39. package/dist/esm/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.stories.js.map +1 -0
  40. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js +23 -0
  41. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.js.map +1 -0
  42. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.stories.js +28 -0
  43. package/dist/esm/components/table/components/TableCell/ButtonCell/ButtonCell.stories.js.map +1 -0
  44. package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js +21 -0
  45. package/dist/esm/components/table/components/TableCell/CTACell/CTACell.js.map +1 -0
  46. package/dist/esm/components/table/components/TableCell/CTACell/CTACell.stories.js +25 -0
  47. package/dist/esm/components/table/components/TableCell/CTACell/CTACell.stories.js.map +1 -0
  48. package/dist/esm/components/table/components/TableCell/TableCell.js +21 -20
  49. package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
  50. package/dist/esm/components/table/components/TableCell/TableCell.test.js +28 -14
  51. package/dist/esm/components/table/components/TableCell/TableCell.test.js.map +1 -1
  52. package/dist/esm/components/table/components/TableContents/TableContents.js +10 -2
  53. package/dist/esm/components/table/components/TableContents/TableContents.js.map +1 -1
  54. package/dist/esm/components/table/components/TableContents/TableContents.test.js +9 -2
  55. package/dist/esm/components/table/components/TableContents/TableContents.test.js.map +1 -1
  56. package/dist/esm/components/table/components/TableSection/TableSection.js +39 -7
  57. package/dist/esm/components/table/components/TableSection/TableSection.js.map +1 -1
  58. package/dist/esm/components/table/components/TableSection/TableSection.test.js +9 -2
  59. package/dist/esm/components/table/components/TableSection/TableSection.test.js.map +1 -1
  60. package/dist/esm/components/table/utils/useTableNavigation/useTableNavigation.test.js +1 -5
  61. package/dist/esm/components/table/utils/useTableNavigation/useTableNavigation.test.js.map +1 -1
  62. package/dist/esm/index-3d286178.js +1529 -0
  63. package/dist/esm/index-3d286178.js.map +1 -0
  64. package/dist/esm/{index-0bb5a2ee.js → index-7506ae25.js} +3 -3
  65. package/dist/esm/{index-0bb5a2ee.js.map → index-7506ae25.js.map} +1 -1
  66. package/dist/esm/index.js +6 -1
  67. package/dist/esm/index.js.map +1 -1
  68. package/dist/esm/lib/components/table/components/TableCell/BaseCell/BaseCell.d.ts +17 -0
  69. package/dist/esm/lib/components/table/components/TableCell/BaseCell/BaseCell.stories.d.ts +22 -0
  70. package/dist/esm/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.d.ts +3 -0
  71. package/dist/esm/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.stories.d.ts +25 -0
  72. package/dist/esm/lib/components/table/components/TableCell/ButtonCell/ButtonCell.d.ts +9 -0
  73. package/dist/esm/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.d.ts +17 -0
  74. package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.d.ts +9 -0
  75. package/dist/esm/lib/components/table/components/TableCell/CTACell/CTACell.stories.d.ts +17 -0
  76. package/dist/esm/lib/components/table/components/TableCell/TableCell.d.ts +5 -17
  77. package/dist/esm/lib/components/table/types.d.ts +11 -2
  78. package/dist/esm/lib/components/table/utils/useTableNavigation/useTableNavigation.d.ts +1 -2
  79. package/dist/esm/{useTableNavigation-8e50b121.js → useTableNavigation-2899712c.js} +12 -16
  80. package/dist/esm/useTableNavigation-2899712c.js.map +1 -0
  81. package/package.json +1 -1
  82. package/src/lib/components/table/Table.stories.tsx +41 -5
  83. package/src/lib/components/table/Table.test.tsx +1 -1
  84. package/src/lib/components/table/Table.tsx +17 -8
  85. package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.module.scss +36 -0
  86. package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.stories.tsx +45 -0
  87. package/src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx +160 -0
  88. package/src/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.module.scss +44 -0
  89. package/src/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.stories.tsx +29 -0
  90. package/src/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.tsx +35 -0
  91. package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.module.scss +43 -0
  92. package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.tsx +65 -0
  93. package/src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx +40 -0
  94. package/src/lib/components/table/components/TableCell/CTACell/CTACell.module.scss +3 -0
  95. package/src/lib/components/table/components/TableCell/CTACell/CTACell.stories.tsx +34 -0
  96. package/src/lib/components/table/components/TableCell/CTACell/CTACell.tsx +40 -0
  97. package/src/lib/components/table/components/TableCell/TableCell.module.scss +0 -43
  98. package/src/lib/components/table/components/TableCell/TableCell.test.tsx +25 -13
  99. package/src/lib/components/table/components/TableCell/TableCell.tsx +16 -122
  100. package/src/lib/components/table/components/TableContents/TableContents.test.tsx +2 -2
  101. package/src/lib/components/table/components/TableSection/TableSection.test.tsx +3 -3
  102. package/src/lib/components/table/components/TableSection/TableSection.tsx +40 -13
  103. package/src/lib/components/table/types.ts +9 -2
  104. package/src/lib/components/table/utils/useTableNavigation/useTableNavigation.test.tsx +0 -4
  105. package/src/lib/components/table/utils/useTableNavigation/useTableNavigation.ts +13 -20
  106. package/dist/esm/useTableNavigation-8e50b121.js.map +0 -1
@@ -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 { 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":"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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 { ReactNode, 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 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 const isBaseCell = !currentActiveSection.type;\n let openModal;\n\n if (isBaseCell) {\n openModal = (body: ReactNode) =>\n handleOpenModal({\n body,\n title: currentActiveSection?.content,\n });\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 {...(isBaseCell\n ? {\n openModal,\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":"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"}
@@ -4,16 +4,24 @@ import DentalPlusIcon from '../icon/icons/DentalPlus.js';
4
4
  import PlaneIcon from '../icon/icons/Plane.js';
5
5
  import '../../tslib.es6-a39f91fc.js';
6
6
  import './components/TableCell/TableCell.js';
7
- import '../button/index.js';
8
7
  import '../../index-6ea95111.js';
9
- import 'react';
8
+ import '../../style-inject.es-1f59c1d0.js';
9
+ import './components/TableCell/BaseCell/BaseCell.js';
10
10
  import '../icon/icons/Check.js';
11
+ import 'react';
11
12
  import '../icon/IconWrapper/IconWrapper.js';
12
- import '../../style-inject.es-1f59c1d0.js';
13
- import '../icon/icons/Info.js';
14
13
  import '../icon/icons/StarFilled.js';
15
14
  import '../icon/icons/X.js';
16
15
  import '../icon/icons/ZapFilled.js';
16
+ import './components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.js';
17
+ import '../../index-3d286178.js';
18
+ import '../../_commonjsHelpers-4730bd53.js';
19
+ import '../comparisonTable/components/TableInfoButton/index.js';
20
+ import '../icon/icons/Info.js';
21
+ import '../../index-5e72c3d4.js';
22
+ import './components/TableCell/CTACell/CTACell.js';
23
+ import './components/TableCell/ButtonCell/ButtonCell.js';
24
+ import '../button/index.js';
17
25
  import '../modal/bottomOrRegularModal/index.js';
18
26
  import '../modal/bottomModal/index.js';
19
27
  import '../modal/genericModal/index.js';
@@ -26,9 +34,7 @@ import '../../Collapsible-a355828b.js';
26
34
  import '../../index-a0ef2ab4.js';
27
35
  import './components/TableContents/TableContents.js';
28
36
  import './components/TableSection/TableSection.js';
29
- import '../../useTableNavigation-8e50b121.js';
30
- import '../../index-5e72c3d4.js';
31
- import '../../_commonjsHelpers-4730bd53.js';
37
+ import '../../useTableNavigation-2899712c.js';
32
38
  import './components/TableControls/TableControls.js';
33
39
  import '../icon/icons/ChevronLeft.js';
34
40
  import '../../useScrollSync-b2d28bed.js';
@@ -38,9 +44,45 @@ var initialData = [
38
44
  rows: [
39
45
  [
40
46
  { content: 'Our plans' },
41
- { content: 'Surgery', modalContent: 'More info on surgery' },
42
- { content: 'Standard' },
43
- { content: 'Premium' },
47
+ {
48
+ type: 'CTA',
49
+ content: 'Standard',
50
+ subContent: '€234',
51
+ href: 'http://example.com',
52
+ },
53
+ {
54
+ type: 'CTA',
55
+ content: 'Plus',
56
+ subContent: '€344',
57
+ href: 'http://example.com',
58
+ },
59
+ {
60
+ type: 'CTA',
61
+ content: 'Premium',
62
+ subContent: '€556',
63
+ href: 'http://example.com',
64
+ },
65
+ ],
66
+ [
67
+ { content: 'Select a plan' },
68
+ {
69
+ type: 'BUTTON',
70
+ content: 'Standard',
71
+ subContent: '€234',
72
+ onClick: function () { },
73
+ },
74
+ {
75
+ type: 'BUTTON',
76
+ content: 'Plus',
77
+ subContent: '€344',
78
+ onClick: function () { },
79
+ },
80
+ {
81
+ type: 'BUTTON',
82
+ content: 'Premium',
83
+ subContent: '€556',
84
+ onClick: function () { },
85
+ },
44
86
  ],
45
87
  [
46
88
  {
@@ -48,8 +90,8 @@ var initialData = [
48
90
  subContent: 'Annual Only',
49
91
  },
50
92
  { content: 'No', subContent: 'Annual Only' },
51
- { content: 'Yes' },
52
- { content: 'Yes' },
93
+ { content: '50%' },
94
+ { content: '80%-100%' },
53
95
  ],
54
96
  [
55
97
  { content: 'Operations', modalContent: 'Operations info' },
@@ -1 +1 @@
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAM,WAAW,GAAc;IAC7B;QACE,IAAI,EAAE;YACJ;gBACE,EAAE,OAAO,EAAE,WAAW,EAAE;gBACxB,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE;gBAC5D,EAAE,OAAO,EAAE,UAAU,EAAE;gBACvB,EAAE,OAAO,EAAE,SAAS,EAAE;aACvB;YACD;gBACE;oBACE,OAAO,EAAE,iCAAiC;oBAC1C,UAAU,EAAE,aAAa;iBAC1B;gBACD,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE;gBAC5C,EAAE,OAAO,EAAE,KAAK,EAAE;gBAClB,EAAE,OAAO,EAAE,KAAK,EAAE;aACnB;YACD;gBACE,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE;gBAC1D,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE;gBAClE,EAAE,cAAc,EAAE,KAAK,EAAE;gBACzB,EAAE,cAAc,EAAE,IAAI,EAAE;aACzB;YACD;gBACE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE;gBAClD,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACrC;oBACE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,YAAY,EAAE,sBAAsB;iBACrC;gBACD,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;aACvC;SACF;KACF;IACD;QACE,OAAO,EAAE;YACP,IAAI,EAAEA,IAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,SAAG;YAC3C,KAAK,EAAE,QAAQ;SAChB;QACD,IAAI,EAAE;YACJ;gBACE,EAAE,OAAO,EAAE,iCAAiC,EAAE;gBAC9C,EAAE,OAAO,EAAE,IAAI,EAAE;gBACjB,EAAE,OAAO,EAAE,KAAK,EAAE;gBAClB,EAAE,OAAO,EAAE,KAAK,EAAE;aACnB;YACD;gBACE,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE;gBAC/C,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE;gBAC/C,EAAE,cAAc,EAAE,KAAK,EAAE;gBACzB,EAAE,cAAc,EAAE,IAAI,EAAE;aACzB;YACD;gBACE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;gBAC3C,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;gBAC5D,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACrC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;aACvC;SACF;KACF;IACD;QACE,OAAO,EAAE;YACP,KAAK,EAAE,QAAQ;YACf,IAAI,EAAEA,IAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,SAAG;SACvC;QACD,IAAI,EAAE;YACJ;gBACE,EAAE,OAAO,EAAE,iCAAiC,EAAE;gBAC9C,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;gBACxC,EAAE,OAAO,EAAE,KAAK,EAAE;gBAClB,EAAE,OAAO,EAAE,KAAK,EAAE;aACnB;YACD;gBACE,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE;gBAC/C,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE;gBAC/C,EAAE,cAAc,EAAE,KAAK,EAAE;gBACzB,EAAE,cAAc,EAAE,IAAI,EAAE;aACzB;YACD;gBACE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;gBAC3C,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;gBAC5D,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACrC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;aACvC;SACF;KACF;CACF,CAAC;IAEI,KAAK,GAAG;IACZ,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,UAAU,EACR,8DAA8D;SACjE;QACD,KAAK,EAAE;YACL,UAAU,EACR,wFAAwF;SAC3F;QACD,mBAAmB,EAAE;YACnB,UAAU,EAAE,6DAA6D;SAC1E;QACD,WAAW,EAAE;YACX,UAAU,EAAE,wDAAwD;SACrE;QACD,qBAAqB,EAAE;YACrB,UAAU,EACR,8DAA8D;SACjE;QACD,SAAS,EAAE;YACT,UAAU,EACR,oEAAoE;SACvE;QACD,aAAa,EAAE;YACb,UAAU,EACR,gFAAgF;SACnF;QACD,kBAAkB,EAAE;YAClB,UAAU,EACR,6GAA6G;YAC/G,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;aACnB;SACF;QACD,WAAW,EAAE;YACX,UAAU,EACR,2GAA2G;YAC7G,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;aACnB;SACF;KACF;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,WAAW;QACtB,mBAAmB,EAAE,KAAK;QAC1B,WAAW,EAAE,KAAK;QAClB,qBAAqB,EAAE,CAAC;QACxB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,EAAE;QACb,aAAa,EAAE;YACb,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,cAAc;SAC5B;KACF;EACD;IAEW,UAAU,GAAG,UAAC,EAOd;QANX,mBAAmB,yBAAA,EACnB,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,qBAAqB,2BAAA,EACrB,aAAa,mBAAA,EACb,KAAK,WAAA;IACW,QAChBA,IAAC,KAAK,IACJ,mBAAmB,EAAE,mBAAmB,EACxC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,GACZ;AARc,EAShB;IAEW,aAAa,GAAG;IAC3B,QACEA,uBACG,sZAmBA,GACG,EACN;AACJ,EAAE;AAEF,UAAU,CAAC,SAAS,GAAG,OAAO;;;;;"}
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 {\n type: 'CTA',\n content: 'Standard',\n subContent: '€234',\n href: 'http://example.com',\n },\n {\n type: 'CTA',\n content: 'Plus',\n subContent: '€344',\n href: 'http://example.com',\n },\n {\n type: 'CTA',\n content: 'Premium',\n subContent: '€556',\n href: 'http://example.com',\n },\n ],\n [\n { content: 'Select a plan' },\n {\n type: 'BUTTON',\n content: 'Standard',\n subContent: '€234',\n onClick: () => {},\n },\n {\n type: 'BUTTON',\n content: 'Plus',\n subContent: '€344',\n onClick: () => {},\n },\n {\n type: 'BUTTON',\n content: 'Premium',\n subContent: '€556',\n onClick: () => {},\n },\n ],\n [\n {\n content: 'Regular vet visits & medication',\n subContent: 'Annual Only',\n },\n { content: 'No', subContent: 'Annual Only' },\n { content: '50%' },\n { content: '80%-100%' },\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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"}
@@ -7,15 +7,22 @@ import 'react-dom';
7
7
  import '../../_commonjsHelpers-4730bd53.js';
8
8
  import 'react-dom/test-utils';
9
9
  import './components/TableCell/TableCell.js';
10
- import '../button/index.js';
11
10
  import '../../index-6ea95111.js';
11
+ import '../../style-inject.es-1f59c1d0.js';
12
+ import './components/TableCell/BaseCell/BaseCell.js';
12
13
  import '../icon/icons/Check.js';
13
14
  import '../icon/IconWrapper/IconWrapper.js';
14
- import '../../style-inject.es-1f59c1d0.js';
15
- import '../icon/icons/Info.js';
16
15
  import '../icon/icons/StarFilled.js';
17
16
  import '../icon/icons/X.js';
18
17
  import '../icon/icons/ZapFilled.js';
18
+ import './components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.js';
19
+ import '../../index-3d286178.js';
20
+ import '../comparisonTable/components/TableInfoButton/index.js';
21
+ import '../icon/icons/Info.js';
22
+ import '../../index-5e72c3d4.js';
23
+ import './components/TableCell/CTACell/CTACell.js';
24
+ import './components/TableCell/ButtonCell/ButtonCell.js';
25
+ import '../button/index.js';
19
26
  import '../modal/bottomOrRegularModal/index.js';
20
27
  import '../modal/bottomModal/index.js';
21
28
  import '../modal/genericModal/index.js';
@@ -28,8 +35,7 @@ import '../../Collapsible-a355828b.js';
28
35
  import '../../index-a0ef2ab4.js';
29
36
  import './components/TableContents/TableContents.js';
30
37
  import './components/TableSection/TableSection.js';
31
- import '../../useTableNavigation-8e50b121.js';
32
- import '../../index-5e72c3d4.js';
38
+ import '../../useTableNavigation-2899712c.js';
33
39
  import './components/TableControls/TableControls.js';
34
40
  import '../icon/icons/ChevronLeft.js';
35
41
  import '../../useScrollSync-b2d28bed.js';
@@ -106,7 +112,7 @@ describe('Table', function () {
106
112
  switch (_a.label) {
107
113
  case 0:
108
114
  user = customRender(jsx(Table, { tableData: tableData, title: "Test Table" })).user;
109
- return [4 /*yield*/, user.click(screen.getByText('View more info'))];
115
+ return [4 /*yield*/, user.click(screen.getByTestId('ds-table-info-button'))];
110
116
  case 1:
111
117
  _a.sent();
112
118
  expect(screen.getByText('Additional item')).toBeVisible();
@@ -1 +1 @@
1
- {"version":3,"file":"Table.test.js","sources":["../../../../../src/lib/components/table/Table.test.tsx"],"sourcesContent":["import { render, screen } from '../../util/testUtils';\nimport { Table } from './Table';\nimport { TableSectionData } from './types';\n\nconst tableData: TableSectionData[] = [\n {\n section: {\n title: 'Section 1',\n icon: <span>Icon 1</span>,\n },\n rows: [[{ content: 'Item 1' }, { content: 'Item 2' }]],\n },\n {\n section: {\n title: 'Section 2',\n icon: <span>Icon 2</span>,\n },\n rows: [\n [\n { content: 'Item 3' },\n { content: 'Item 4', modalContent: 'Additional item' },\n ],\n ],\n },\n];\n\ndescribe('Table', () => {\n it('renders the table with sections and items', () => {\n render(<Table tableData={tableData} title=\"Test Table\" />);\n\n expect(screen.getByText('Section 1')).toBeInTheDocument();\n expect(screen.getByText('Section 2')).toBeInTheDocument();\n\n expect(screen.getAllByText('Item 1')[0]).toBeInTheDocument();\n expect(screen.getAllByText('Item 2')[0]).toBeInTheDocument();\n expect(screen.getByText('Item 3')).toBeInTheDocument();\n expect(screen.getByText('Item 4')).toBeInTheDocument();\n });\n\n it('renders the table without sections', () => {\n const dataWithoutSections = [{ rows: tableData[0].rows }];\n\n render(<Table tableData={dataWithoutSections} title=\"Test Table\" />);\n\n expect(screen.getAllByText('Item 1')[0]).toBeVisible();\n expect(screen.getAllByText('Item 2')[0]).toBeVisible();\n });\n\n it('hides the show/hide details button if hideDetails is false', () => {\n render(<Table tableData={tableData} hideDetails title=\"Test Table\" />);\n\n expect(screen.queryByTestId('show-hide-details')).toBeInTheDocument();\n });\n\n it('shows the show/hide details button if hideDetails is true', () => {\n render(<Table tableData={tableData} hideDetails title=\"Test Table\" />);\n\n expect(screen.getByTestId('show-hide-details')).toBeInTheDocument();\n });\n\n it('hides the sections if hideDetails is true', () => {\n render(<Table tableData={tableData} hideDetails title=\"Test Table\" />);\n\n expect(screen.queryByText('Section 2')).not.toBeInTheDocument();\n expect(screen.getByTestId('show-hide-details')).toBeInTheDocument();\n });\n\n it('hides the sections if hideDetails is true and shows if clicking on button', async () => {\n const { user } = render(\n <Table tableData={tableData} hideDetails title=\"Test Table\" />\n );\n\n expect(screen.getByText('Show details')).toBeVisible();\n\n await user.click(screen.getByTestId('show-hide-details'));\n\n expect(screen.getByText('Section 2')).toBeVisible();\n expect(screen.getByText('Hide details')).toBeVisible();\n });\n\n it('shows a modal when clicking on info icon', async () => {\n const { user } = render(<Table tableData={tableData} title=\"Test Table\" />);\n\n await user.click(screen.getByText('View more info'));\n\n expect(screen.getByText('Additional item')).toBeVisible();\n });\n});\n"],"names":["_jsx","render"],"mappings":"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"}
1
+ {"version":3,"file":"Table.test.js","sources":["../../../../../src/lib/components/table/Table.test.tsx"],"sourcesContent":["import { render, screen } from '../../util/testUtils';\nimport { Table } from './Table';\nimport { TableSectionData } from './types';\n\nconst tableData: TableSectionData[] = [\n {\n section: {\n title: 'Section 1',\n icon: <span>Icon 1</span>,\n },\n rows: [[{ content: 'Item 1' }, { content: 'Item 2' }]],\n },\n {\n section: {\n title: 'Section 2',\n icon: <span>Icon 2</span>,\n },\n rows: [\n [\n { content: 'Item 3' },\n { content: 'Item 4', modalContent: 'Additional item' },\n ],\n ],\n },\n];\n\ndescribe('Table', () => {\n it('renders the table with sections and items', () => {\n render(<Table tableData={tableData} title=\"Test Table\" />);\n\n expect(screen.getByText('Section 1')).toBeInTheDocument();\n expect(screen.getByText('Section 2')).toBeInTheDocument();\n\n expect(screen.getAllByText('Item 1')[0]).toBeInTheDocument();\n expect(screen.getAllByText('Item 2')[0]).toBeInTheDocument();\n expect(screen.getByText('Item 3')).toBeInTheDocument();\n expect(screen.getByText('Item 4')).toBeInTheDocument();\n });\n\n it('renders the table without sections', () => {\n const dataWithoutSections = [{ rows: tableData[0].rows }];\n\n render(<Table tableData={dataWithoutSections} title=\"Test Table\" />);\n\n expect(screen.getAllByText('Item 1')[0]).toBeVisible();\n expect(screen.getAllByText('Item 2')[0]).toBeVisible();\n });\n\n it('hides the show/hide details button if hideDetails is false', () => {\n render(<Table tableData={tableData} hideDetails title=\"Test Table\" />);\n\n expect(screen.queryByTestId('show-hide-details')).toBeInTheDocument();\n });\n\n it('shows the show/hide details button if hideDetails is true', () => {\n render(<Table tableData={tableData} hideDetails title=\"Test Table\" />);\n\n expect(screen.getByTestId('show-hide-details')).toBeInTheDocument();\n });\n\n it('hides the sections if hideDetails is true', () => {\n render(<Table tableData={tableData} hideDetails title=\"Test Table\" />);\n\n expect(screen.queryByText('Section 2')).not.toBeInTheDocument();\n expect(screen.getByTestId('show-hide-details')).toBeInTheDocument();\n });\n\n it('hides the sections if hideDetails is true and shows if clicking on button', async () => {\n const { user } = render(\n <Table tableData={tableData} hideDetails title=\"Test Table\" />\n );\n\n expect(screen.getByText('Show details')).toBeVisible();\n\n await user.click(screen.getByTestId('show-hide-details'));\n\n expect(screen.getByText('Section 2')).toBeVisible();\n expect(screen.getByText('Hide details')).toBeVisible();\n });\n\n it('shows a modal when clicking on info icon', async () => {\n const { user } = render(<Table tableData={tableData} title=\"Test Table\" />);\n\n await user.click(screen.getByTestId('ds-table-info-button'));\n\n expect(screen.getByText('Additional item')).toBeVisible();\n });\n});\n"],"names":["_jsx","render"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { c as classNames } from '../../../../../index-6ea95111.js';
3
+ import CheckIcon from '../../../../icon/icons/Check.js';
4
+ import StarFilledIcon from '../../../../icon/icons/StarFilled.js';
5
+ import XIcon from '../../../../icon/icons/X.js';
6
+ import ZapFilledIcon from '../../../../icon/icons/ZapFilled.js';
7
+ import { s as styleInject } from '../../../../../style-inject.es-1f59c1d0.js';
8
+ import { MiniProgressBar } from './MiniProgressBar/MiniProgressBar.js';
9
+ import 'react';
10
+ import '../../../../../index-3d286178.js';
11
+ import TableInfoButton from '../../../../comparisonTable/components/TableInfoButton/index.js';
12
+ import '../../../../../index-5e72c3d4.js';
13
+ import '../../../../icon/IconWrapper/IconWrapper.js';
14
+ import '../../../../../tslib.es6-a39f91fc.js';
15
+ import '../../../../../_commonjsHelpers-4730bd53.js';
16
+ import '../../../../icon/icons/Info.js';
17
+
18
+ var css_248z = ".BaseCell-module_infoButton__VCstV {\n min-height: initial;\n height: initial;\n width: initial;\n padding: 0;\n}\n\n.BaseCell-module_icon__1775U {\n margin: 2px;\n}\n\n.BaseCell-module_bigWithUnderline__2xx5X {\n position: relative;\n display: none;\n}\n.BaseCell-module_bigWithUnderline__2xx5X:after {\n content: \"\";\n display: block;\n position: absolute;\n top: calc( 50% + 16px );\n height: 4px;\n width: 100%;\n max-width: 140px;\n background-color: #8e8cee;\n}\n@media (min-width: 34rem) {\n .BaseCell-module_bigWithUnderline__2xx5X {\n display: flex;\n }\n}";
19
+ var styles = {"infoButton":"BaseCell-module_infoButton__VCstV","icon":"BaseCell-module_icon__1775U","bigWithUnderline":"BaseCell-module_bigWithUnderline__2xx5X"};
20
+ styleInject(css_248z);
21
+
22
+ var progressLookup = {
23
+ '30%': 1,
24
+ '50%': 2,
25
+ '70%': 3,
26
+ '75%': 4,
27
+ '80%': 4,
28
+ '90%': 4,
29
+ '75%-90%': 4,
30
+ '75%-100%': 4,
31
+ '80%-100%': 4,
32
+ '100%': 5,
33
+ };
34
+ var BaseCell = function (_a) {
35
+ var _b = _a.align, align = _b === void 0 ? 'center' : _b, checkmarkValue = _a.checkmarkValue, _c = _a.content, content = _c === void 0 ? '' : _c, _d = _a.modalContent, modalContent = _d === void 0 ? '' : _d, openModal = _a.openModal, rating = _a.rating, _e = _a.subContent, subContent = _e === void 0 ? '' : _e, _f = _a.contentFontVariant, contentFontVariant = _f === void 0 ? 'NORMAL' : _f;
36
+ var alignClassName = {
37
+ center: 'ta-center jc-center ai-center',
38
+ left: 'ta-left jc-start',
39
+ right: 'ta-right jc-end ai-end',
40
+ }[align];
41
+ var validRatingValues = [1, 2, 3];
42
+ var SelectedIcon = (rating === null || rating === void 0 ? void 0 : rating.type) === 'zap' ? ZapFilledIcon : StarFilledIcon;
43
+ var progressBarValue = typeof content === 'string' ? progressLookup[content] : undefined;
44
+ return (jsxs("div", { className: classNames('d-flex gap8 ai-center', {
45
+ 'jc-center': align === 'center',
46
+ }), children: [jsxs("div", { className: classNames('d-flex fd-column', alignClassName), children: [progressBarValue !== undefined && (jsx(MiniProgressBar, { nFilledBars: progressBarValue })), (rating === null || rating === void 0 ? void 0 : rating.value) && (jsx("span", { "data-testid": "table-cell-rating", title: "".concat(rating === null || rating === void 0 ? void 0 : rating.value, " out of 3"), children: validRatingValues.map(function (value) { return (jsx(SelectedIcon, { "aria-hidden": "true", color: value <= (rating === null || rating === void 0 ? void 0 : rating.value) ? 'primary-500' : 'grey-400', className: styles.icon }, value)); }) })), jsxs("div", { className: "d-flex ai-center", children: [checkmarkValue !== undefined && (jsx("span", { title: checkmarkValue ? 'Yes' : 'No', children: checkmarkValue ? (jsx(CheckIcon, { "data-testid": "table-cell-boolean-yes", size: 24, "aria-hidden": true, color: "primary-500" })) : (jsx(XIcon, { "data-testid": "table-cell-boolean-no", size: 24, "aria-hidden": true, color: "grey-400" })) })), content && contentFontVariant === 'NORMAL' && (jsx("div", { className: "p-p", "data-testid": "table-cell-content", children: content })), content && contentFontVariant === 'PRICE' && (jsx("div", { className: "p-h1 p--serif tc-primary-500", "data-testid": "table-cell-content", children: content })), content && contentFontVariant === 'BIG_WITH_UNDERLINE' && (jsx("div", { "aria-hidden": true, className: classNames('tc-grey-800 p-h2 p--serif', styles.bigWithUnderline), children: content }))] }), subContent && (jsx("div", { className: classNames('d-flex p-p--small tc-grey-500', alignClassName), children: subContent }))] }), modalContent && openModal && (jsx(TableInfoButton, { onClick: function () { return openModal(modalContent); } }))] }));
47
+ };
48
+
49
+ export { BaseCell };
50
+ //# sourceMappingURL=BaseCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseCell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/BaseCell/BaseCell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { Button } from '../../../../button';\nimport {\n CheckIcon,\n XIcon,\n InfoIcon,\n StarFilledIcon,\n ZapFilledIcon,\n} from '../../../../icon';\nimport { ReactNode } from 'react';\nimport styles from './BaseCell.module.scss';\nimport { MiniProgressBar } from './MiniProgressBar/MiniProgressBar';\nimport { TableInfoButton } from '../../../../comparisonTable';\n\nexport type ContentFontVariant = 'NORMAL' | 'BIG_WITH_UNDERLINE' | 'PRICE';\n\nconst progressLookup: Record<string, number> = {\n '30%': 1,\n '50%': 2,\n '70%': 3,\n '75%': 4,\n '80%': 4,\n '90%': 4,\n '75%-90%': 4,\n '75%-100%': 4,\n '80%-100%': 4,\n '100%': 5,\n};\n\nexport type Alignment = 'center' | 'left' | 'right';\n\nexport type BaseCellProps = {\n align?: Alignment;\n checkmarkValue?: boolean;\n content?: ReactNode;\n modalContent?: ReactNode;\n openModal?: (modalContent: ReactNode) => void;\n subContent?: ReactNode;\n rating?: {\n value: number;\n type: 'zap' | 'star';\n };\n contentFontVariant?: ContentFontVariant;\n};\n\nexport const BaseCell = ({\n align = 'center',\n checkmarkValue,\n content = '',\n modalContent = '',\n openModal,\n rating,\n subContent = '',\n contentFontVariant = 'NORMAL',\n}: BaseCellProps) => {\n const alignClassName = {\n center: 'ta-center jc-center ai-center',\n left: 'ta-left jc-start',\n right: 'ta-right jc-end ai-end',\n }[align];\n\n const validRatingValues: number[] = [1, 2, 3];\n const SelectedIcon = rating?.type === 'zap' ? ZapFilledIcon : StarFilledIcon;\n\n const progressBarValue =\n typeof content === 'string' ? progressLookup[content] : undefined;\n\n return (\n <div\n className={classNames('d-flex gap8 ai-center', {\n 'jc-center': align === 'center',\n })}\n >\n <div className={classNames('d-flex fd-column', alignClassName)}>\n {progressBarValue !== undefined && (\n <MiniProgressBar nFilledBars={progressBarValue} />\n )}\n\n {rating?.value && (\n <span\n data-testid=\"table-cell-rating\"\n title={`${rating?.value} out of 3`}\n >\n {validRatingValues.map((value) => (\n <SelectedIcon\n aria-hidden=\"true\"\n key={value}\n color={value <= rating?.value ? 'primary-500' : 'grey-400'}\n className={styles.icon}\n />\n ))}\n </span>\n )}\n\n <div className=\"d-flex ai-center\">\n {checkmarkValue !== undefined && (\n <span title={checkmarkValue ? 'Yes' : 'No'}>\n {checkmarkValue ? (\n <CheckIcon\n data-testid=\"table-cell-boolean-yes\"\n size={24}\n aria-hidden\n color=\"primary-500\"\n />\n ) : (\n <XIcon\n data-testid=\"table-cell-boolean-no\"\n size={24}\n aria-hidden\n color=\"grey-400\"\n />\n )}\n </span>\n )}\n\n {content && contentFontVariant === 'NORMAL' && (\n <div className=\"p-p\" data-testid=\"table-cell-content\">\n {content}\n </div>\n )}\n\n {content && contentFontVariant === 'PRICE' && (\n <div\n className=\"p-h1 p--serif tc-primary-500\"\n data-testid=\"table-cell-content\"\n >\n {content}\n </div>\n )}\n\n {content && contentFontVariant === 'BIG_WITH_UNDERLINE' && (\n <div\n aria-hidden\n className={classNames(\n 'tc-grey-800 p-h2 p--serif',\n styles.bigWithUnderline\n )}\n >\n {content}\n </div>\n )}\n </div>\n\n {subContent && (\n <div\n className={classNames(\n 'd-flex p-p--small tc-grey-500',\n alignClassName\n )}\n >\n {subContent}\n </div>\n )}\n </div>\n {modalContent && openModal && (\n <TableInfoButton onClick={() => openModal(modalContent)} />\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { BaseCell } from './BaseCell.js';
3
+ import '../../../../../index-6ea95111.js';
4
+ import '../../../../icon/icons/Check.js';
5
+ import 'react';
6
+ import '../../../../icon/IconWrapper/IconWrapper.js';
7
+ import '../../../../../tslib.es6-a39f91fc.js';
8
+ import '../../../../../style-inject.es-1f59c1d0.js';
9
+ import '../../../../icon/icons/StarFilled.js';
10
+ import '../../../../icon/icons/X.js';
11
+ import '../../../../icon/icons/ZapFilled.js';
12
+ import './MiniProgressBar/MiniProgressBar.js';
13
+ import '../../../../../index-3d286178.js';
14
+ import '../../../../../_commonjsHelpers-4730bd53.js';
15
+ import '../../../../comparisonTable/components/TableInfoButton/index.js';
16
+ import '../../../../icon/icons/Info.js';
17
+ import '../../../../../index-5e72c3d4.js';
18
+
19
+ var story = {
20
+ title: 'JSX/Table/Cells',
21
+ component: BaseCell,
22
+ argTypes: {},
23
+ args: {
24
+ rating: {
25
+ value: 2,
26
+ type: 'zap',
27
+ },
28
+ content: 'For dogs',
29
+ subContent: 'Annual only',
30
+ modalContent: 'More info',
31
+ checkmarkValue: undefined,
32
+ contentFontVariant: 'NORMAL',
33
+ },
34
+ };
35
+ var BaseCellStory = function (_a) {
36
+ var content = _a.content, subContent = _a.subContent, modalContent = _a.modalContent, checkmarkValue = _a.checkmarkValue, rating = _a.rating, contentFontVariant = _a.contentFontVariant, align = _a.align;
37
+ return (jsx("div", { className: "p48 d-flex fd-column gap16 bg-white", children: jsx(BaseCell, { align: align, checkmarkValue: checkmarkValue, content: content, contentFontVariant: contentFontVariant, modalContent: modalContent, openModal: function () { }, rating: rating, subContent: subContent }) }));
38
+ };
39
+ BaseCellStory.storyName = 'BaseCell';
40
+
41
+ export default story;
42
+ export { BaseCellStory };
43
+ //# sourceMappingURL=BaseCell.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseCell.stories.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/BaseCell/BaseCell.stories.tsx"],"sourcesContent":["import { BaseCell } from './BaseCell';\n\nconst story = {\n title: 'JSX/Table/Cells',\n component: BaseCell,\n argTypes: {},\n args: {\n rating: {\n value: 2,\n type: 'zap',\n },\n content: 'For dogs',\n subContent: 'Annual only',\n modalContent: 'More info',\n checkmarkValue: undefined,\n contentFontVariant: 'NORMAL',\n },\n};\n\nexport const BaseCellStory = ({\n content,\n subContent,\n modalContent,\n checkmarkValue,\n rating,\n contentFontVariant,\n align,\n}: React.ComponentProps<typeof BaseCell>) => (\n <div className=\"p48 d-flex fd-column gap16 bg-white\">\n <BaseCell\n align={align}\n checkmarkValue={checkmarkValue}\n content={content}\n contentFontVariant={contentFontVariant}\n modalContent={modalContent}\n openModal={() => {}}\n rating={rating}\n subContent={subContent}\n />\n </div>\n);\n\nBaseCellStory.storyName = 'BaseCell';\n\nexport default story;\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;IAEM,KAAK,GAAG;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,KAAK;SACZ;QACD,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,WAAW;QACzB,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,QAAQ;KAC7B;EACD;IAEW,aAAa,GAAG,UAAC,EAQU;QAPtC,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,cAAc,oBAAA,EACd,MAAM,YAAA,EACN,kBAAkB,wBAAA,EAClB,KAAK,WAAA;IACsC,QAC3CA,aAAK,SAAS,EAAC,qCAAqC,YAClDA,IAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,eAAQ,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACtB,GACE;AAZqC,EAa3C;AAEF,aAAa,CAAC,SAAS,GAAG,UAAU;;;;;"}
@@ -0,0 +1,15 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { c as classNames } from '../../../../../../index-6ea95111.js';
3
+ import { s as styleInject } from '../../../../../../style-inject.es-1f59c1d0.js';
4
+
5
+ var css_248z = ".MiniProgressBar-module_progressBar__2K07F {\n margin-bottom: 4px;\n}\n.MiniProgressBar-module_progressBar__2K07F rect {\n fill: #ebebff;\n}\n\n.MiniProgressBar-module_filledBars1__ZhQbV rect:first-child {\n fill: #91919c;\n}\n\n.MiniProgressBar-module_filledBars2__2lH_z rect:nth-child(-n+2) {\n fill: #91919c;\n}\n\n.MiniProgressBar-module_filledBars3__1OKUj rect:nth-child(-n+3) {\n fill: #b0cdf3;\n}\n\n.MiniProgressBar-module_filledBars4__T9kuj rect:nth-child(-n+4) {\n fill: #b0cdf3;\n}\n\n.MiniProgressBar-module_filledBars5__WxVpb rect {\n fill: #8e8cee;\n}";
6
+ var styles = {"progressBar":"MiniProgressBar-module_progressBar__2K07F","filledBars1":"MiniProgressBar-module_filledBars1__ZhQbV","filledBars2":"MiniProgressBar-module_filledBars2__2lH_z","filledBars3":"MiniProgressBar-module_filledBars3__1OKUj","filledBars4":"MiniProgressBar-module_filledBars4__T9kuj","filledBars5":"MiniProgressBar-module_filledBars5__WxVpb"};
7
+ styleInject(css_248z);
8
+
9
+ var MiniProgressBar = function (_a) {
10
+ var nFilledBars = _a.nFilledBars;
11
+ return (jsxs("svg", { className: classNames(styles.progressBar, styles["filledBars".concat(nFilledBars)]), width: "40", height: "6", viewBox: "0 0 40 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxs("g", { clipPath: "url(#clip0_37507_20658)", children: [jsx("rect", { id: "r1", x: "0.5", y: "0.5", width: "7", height: "5", rx: "1" }), jsx("rect", { id: "r2", x: "8.5", y: "0.5", width: "7", height: "5", rx: "1" }), jsx("rect", { id: "r3", x: "16.5", y: "0.5", width: "7", height: "5", rx: "1" }), jsx("rect", { id: "r4", x: "24.5", y: "0.5", width: "7", height: "5", rx: "1" }), jsx("rect", { id: "r5", x: "32.5", y: "0.5", width: "7", height: "5", rx: "1" })] }), jsx("defs", { children: jsx("clipPath", { id: "clip0_37507_20658", children: jsx("rect", { width: "39", height: "5", fill: "white", transform: "translate(0.5 0.5)" }) }) })] }));
12
+ };
13
+
14
+ export { MiniProgressBar };
15
+ //# sourceMappingURL=MiniProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniProgressBar.js","sources":["../../../../../../../../../src/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport styles from './MiniProgressBar.module.scss';\n\nexport const MiniProgressBar = ({ nFilledBars }: { nFilledBars: number }) => (\n <svg\n className={classNames(\n styles.progressBar,\n styles[`filledBars${nFilledBars}`]\n )}\n width=\"40\"\n height=\"6\"\n viewBox=\"0 0 40 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_37507_20658)\">\n <rect id=\"r1\" x=\"0.5\" y=\"0.5\" width=\"7\" height=\"5\" rx=\"1\" />\n <rect id=\"r2\" x=\"8.5\" y=\"0.5\" width=\"7\" height=\"5\" rx=\"1\" />\n <rect id=\"r3\" x=\"16.5\" y=\"0.5\" width=\"7\" height=\"5\" rx=\"1\" />\n <rect id=\"r4\" x=\"24.5\" y=\"0.5\" width=\"7\" height=\"5\" rx=\"1\" />\n <rect id=\"r5\" x=\"32.5\" y=\"0.5\" width=\"7\" height=\"5\" rx=\"1\" />\n </g>\n <defs>\n <clipPath id=\"clip0_37507_20658\">\n <rect\n width=\"39\"\n height=\"5\"\n fill=\"white\"\n transform=\"translate(0.5 0.5)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;IAIa,eAAe,GAAG,UAAC,EAAwC;QAAtC,WAAW,iBAAA;IAAgC,QAC3EA,cACE,SAAS,EAAE,UAAU,CACnB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,oBAAa,WAAW,CAAE,CAAC,CACnC,EACD,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,GAAG,EACV,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,aAElCA,YAAG,QAAQ,EAAC,yBAAyB,aACnCC,cAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC5DA,cAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC5DA,cAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC7DA,cAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EAC7DA,cAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,IAC3D,EACJA,wBACEA,kBAAU,EAAE,EAAC,mBAAmB,YAC9BA,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,GAAG,EACV,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,oBAAoB,GAC9B,GACO,GACN,IACH;AA7BqE;;;;"}
@@ -0,0 +1,31 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { MiniProgressBar } from './MiniProgressBar.js';
3
+ import '../../../../../../index-6ea95111.js';
4
+ import '../../../../../../style-inject.es-1f59c1d0.js';
5
+
6
+ var story = {
7
+ title: 'JSX/Table/Misc',
8
+ component: MiniProgressBar,
9
+ argTypes: {
10
+ nFilledBars: {
11
+ description: 'Number of filled bars to show (0-5)',
12
+ control: {
13
+ min: 0,
14
+ max: 5,
15
+ type: 'number',
16
+ },
17
+ },
18
+ },
19
+ args: {
20
+ nFilledBars: 3,
21
+ },
22
+ };
23
+ var MiniProgressBarStory = function (_a) {
24
+ var nFilledBars = _a.nFilledBars;
25
+ return (jsx(MiniProgressBar, { nFilledBars: nFilledBars }));
26
+ };
27
+ MiniProgressBarStory.storyName = 'MiniProgressBar';
28
+
29
+ export default story;
30
+ export { MiniProgressBarStory };
31
+ //# sourceMappingURL=MiniProgressBar.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniProgressBar.stories.js","sources":["../../../../../../../../../src/lib/components/table/components/TableCell/BaseCell/MiniProgressBar/MiniProgressBar.stories.tsx"],"sourcesContent":["import { MiniProgressBar } from './MiniProgressBar';\n\nconst story = {\n title: 'JSX/Table/Misc',\n component: MiniProgressBar,\n argTypes: {\n nFilledBars: {\n description: 'Number of filled bars to show (0-5)',\n control: {\n min: 0,\n max: 5,\n type: 'number',\n },\n },\n },\n args: {\n nFilledBars: 3,\n },\n};\n\nexport const MiniProgressBarStory = ({\n nFilledBars,\n}: React.ComponentProps<typeof MiniProgressBar>) => (\n <MiniProgressBar nFilledBars={nFilledBars} />\n);\n\nMiniProgressBarStory.storyName = 'MiniProgressBar';\n\nexport default story;\n"],"names":["_jsx"],"mappings":";;;;;IAEM,KAAK,GAAG;IACZ,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,WAAW,EAAE,qCAAqC;YAClD,OAAO,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,QAAQ;aACf;SACF;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,CAAC;KACf;EACD;IAEW,oBAAoB,GAAG,UAAC,EAEU;QAD7C,WAAW,iBAAA;IACuC,QAClDA,IAAC,eAAe,IAAC,WAAW,EAAE,WAAW,GAAI;AADK,EAElD;AAEF,oBAAoB,CAAC,SAAS,GAAG,iBAAiB;;;;;"}
@@ -0,0 +1,23 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { c as classNames } from '../../../../../index-6ea95111.js';
3
+ import { s as styleInject } from '../../../../../style-inject.es-1f59c1d0.js';
4
+ import { Button } from '../../../../button/index.js';
5
+ import '../../../../../tslib.es6-a39f91fc.js';
6
+ import 'react';
7
+
8
+ var css_248z = ".ButtonCell-module_buttonCell__x4NNi {\n color: #26262e;\n border: 1px solid #d2d2d8;\n transition: all 0.3s ease-in-out;\n}\n@media (max-width: 34rem) {\n .ButtonCell-module_buttonCell__x4NNi {\n max-width: calc(100% - 96px);\n }\n}\n.ButtonCell-module_buttonCell__x4NNi:disabled {\n border: none;\n background-color: #f5f6fb;\n color: #26262e;\n opacity: 1;\n cursor: default;\n}\n.ButtonCell-module_buttonCell__x4NNi:disabled:hover {\n background-color: #f5f6fb;\n}\n@media (max-width: 34rem) {\n .ButtonCell-module_buttonCell__x4NNi {\n pointer-events: none;\n }\n}\n\n.ButtonCell-module_withoutSubContent__3fRW7 {\n height: 64px;\n}\n\n.ButtonCell-module_withSubContent__3k-BC {\n height: 75px;\n}\n\n.ButtonCell-module_selected__22pF_ {\n transition: all 0.3 ease-in-out;\n border: 2px solid #8e8cee;\n background-color: #f7f7ff;\n}";
9
+ var styles = {"buttonCell":"ButtonCell-module_buttonCell__x4NNi","withoutSubContent":"ButtonCell-module_withoutSubContent__3fRW7","withSubContent":"ButtonCell-module_withSubContent__3k-BC","selected":"ButtonCell-module_selected__22pF_"};
10
+ styleInject(css_248z);
11
+
12
+ var ButtonCell = function (_a) {
13
+ var _b;
14
+ var isSelected = _a.isSelected, onClick = _a.onClick, content = _a.content, subContent = _a.subContent, disabled = _a.disabled;
15
+ return (jsx("div", { className: "w100 d-flex fd-column ai-center jc-center gap8", children: jsxs(Button, { className: classNames('w100 wmx5 d-flex fd-column', styles.buttonCell, (_b = {},
16
+ _b[styles.selected] = isSelected,
17
+ _b[styles.withoutSubContent] = !subContent,
18
+ _b[styles.withSubContent] = !!subContent,
19
+ _b)), variant: "filledWhite", type: "submit", onClick: onClick, disabled: disabled, children: [content, subContent && jsx("span", { className: "p-p tc-purple-500", children: subContent })] }) }));
20
+ };
21
+
22
+ export { ButtonCell };
23
+ //# sourceMappingURL=ButtonCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonCell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport styles from './ButtonCell.module.scss';\nimport { Button } from '../../../../button';\nimport { ReactNode } from 'react';\n\nexport type ButtonCellProps = {\n content?: ReactNode;\n disabled?: boolean;\n isSelected?: boolean;\n onClick: () => void;\n subContent?: ReactNode;\n};\n\nexport const ButtonCell = ({\n isSelected,\n onClick,\n content,\n subContent,\n disabled,\n}: ButtonCellProps) => {\n return (\n <div className=\"w100 d-flex fd-column ai-center jc-center gap8\">\n <Button\n className={classNames('w100 wmx5 d-flex fd-column', styles.buttonCell, {\n [styles.selected]: isSelected,\n [styles.withoutSubContent]: !subContent,\n [styles.withSubContent]: !!subContent,\n })}\n variant=\"filledWhite\"\n type=\"submit\"\n onClick={onClick}\n disabled={disabled}\n >\n {content}\n {subContent && <span className=\"p-p tc-purple-500\">{subContent}</span>}\n </Button>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;IAca,UAAU,GAAG,UAAC,EAMT;;QALhB,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,QAAQ,cAAA;IAER,QACEA,aAAK,SAAS,EAAC,gDAAgD,YAC7DC,KAAC,MAAM,IACL,SAAS,EAAE,UAAU,CAAC,4BAA4B,EAAE,MAAM,CAAC,UAAU;gBACnE,GAAC,MAAM,CAAC,QAAQ,IAAG,UAAU;gBAC7B,GAAC,MAAM,CAAC,iBAAiB,IAAG,CAAC,UAAU;gBACvC,GAAC,MAAM,CAAC,cAAc,IAAG,CAAC,CAAC,UAAU;oBACrC,EACF,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,aAEjB,OAAO,EACP,UAAU,IAAID,cAAM,SAAS,EAAC,mBAAmB,YAAE,UAAU,GAAQ,IAC/D,GACL,EACN;AACJ;;;;"}
@@ -0,0 +1,28 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ButtonCell } from './ButtonCell.js';
3
+ import '../../../../../index-6ea95111.js';
4
+ import '../../../../../style-inject.es-1f59c1d0.js';
5
+ import '../../../../button/index.js';
6
+ import '../../../../../tslib.es6-a39f91fc.js';
7
+ import 'react';
8
+
9
+ var story = {
10
+ title: 'JSX/Table/Cells',
11
+ component: ButtonCell,
12
+ argTypes: {},
13
+ args: {
14
+ isSelected: false,
15
+ content: 'Premium',
16
+ subContent: '€277/mo',
17
+ disabled: false,
18
+ },
19
+ };
20
+ var ButtonCellStory = function (_a) {
21
+ var isSelected = _a.isSelected, content = _a.content, subContent = _a.subContent, disabled = _a.disabled;
22
+ return (jsxs("div", { className: "p48 d-flex fd-column gap16 bg-white", children: [jsx(ButtonCell, { content: content, subContent: subContent, isSelected: isSelected, disabled: disabled, onClick: function () { } }), jsx(ButtonCell, { content: content, subContent: subContent, isSelected: true, disabled: disabled, onClick: function () { } }), jsx(ButtonCell, { content: content, subContent: subContent, disabled: true, onClick: function () { } }), jsx(ButtonCell, { content: content, isSelected: isSelected, disabled: disabled, onClick: function () { } }), jsx(ButtonCell, { content: content, isSelected: true, disabled: disabled, onClick: function () { } }), jsx(ButtonCell, { content: content, disabled: true, onClick: function () { } })] }));
23
+ };
24
+ ButtonCellStory.storyName = 'ButtonCell';
25
+
26
+ export default story;
27
+ export { ButtonCellStory };
28
+ //# sourceMappingURL=ButtonCell.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonCell.stories.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/ButtonCell/ButtonCell.stories.tsx"],"sourcesContent":["import { ButtonCell } from './ButtonCell';\n\nconst story = {\n title: 'JSX/Table/Cells',\n component: ButtonCell,\n argTypes: {},\n args: {\n isSelected: false,\n content: 'Premium',\n subContent: '€277/mo',\n disabled: false,\n },\n};\n\nexport const ButtonCellStory = ({\n isSelected,\n content,\n subContent,\n disabled,\n}: React.ComponentProps<typeof ButtonCell>) => (\n <div className=\"p48 d-flex fd-column gap16 bg-white\">\n <ButtonCell\n content={content}\n subContent={subContent}\n isSelected={isSelected}\n disabled={disabled}\n onClick={() => {}}\n />\n\n <ButtonCell\n content={content}\n subContent={subContent}\n isSelected\n disabled={disabled}\n onClick={() => {}}\n />\n\n <ButtonCell\n content={content}\n subContent={subContent}\n disabled\n onClick={() => {}}\n />\n\n <ButtonCell\n content={content}\n isSelected={isSelected}\n disabled={disabled}\n onClick={() => {}}\n />\n\n <ButtonCell\n content={content}\n isSelected\n disabled={disabled}\n onClick={() => {}}\n />\n\n <ButtonCell content={content} disabled onClick={() => {}} />\n </div>\n);\n\nButtonCellStory.storyName = 'ButtonCell';\n\nexport default story;\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;IAEM,KAAK,GAAG;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,KAAK;KAChB;EACD;IAEW,eAAe,GAAG,UAAC,EAKU;QAJxC,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,QAAQ,cAAA;IACqC,QAC7CA,cAAK,SAAS,EAAC,qCAAqC,aAClDC,IAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAQ,GACjB,EAEFA,IAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,UAAU,QACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAQ,GACjB,EAEFA,IAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,QACR,OAAO,EAAE,eAAQ,GACjB,EAEFA,IAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAQ,GACjB,EAEFA,IAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,UAAU,QACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAQ,GACjB,EAEFA,IAAC,UAAU,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,QAAC,OAAO,EAAE,eAAQ,GAAI,IACxD;AAxCuC,EAyC7C;AAEF,eAAe,CAAC,SAAS,GAAG,YAAY;;;;;"}
@@ -0,0 +1,21 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { c as classNames } from '../../../../../index-6ea95111.js';
3
+ import { s as styleInject } from '../../../../../style-inject.es-1f59c1d0.js';
4
+
5
+ var css_248z = ".CTACell-module_narrow__1EPPT {\n height: 40px;\n}";
6
+ var styles = {"narrow":"CTACell-module_narrow__1EPPT"};
7
+ styleInject(css_248z);
8
+
9
+ var CTACell = function (_a) {
10
+ var _b;
11
+ var content = _a.content, subContent = _a.subContent, grey = _a.grey, narrow = _a.narrow, href = _a.href;
12
+ return (jsxs("div", { className: "wmn3 ta-center", children: [jsxs("p", { className: "p-h3", children: [content, subContent && jsxs("span", { className: "tc-purple-500", children: [" ", subContent] })] }), jsx("a", { className: classNames('mt16', (_b = {
13
+ 'p-btn--primary': !grey,
14
+ 'p-btn--secondary-grey': grey
15
+ },
16
+ _b[styles.narrow] = narrow,
17
+ _b)), href: href, target: "_blank", rel: "noopener noreferrer", children: "Get covered" })] }));
18
+ };
19
+
20
+ export { CTACell };
21
+ //# sourceMappingURL=CTACell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTACell.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/CTACell/CTACell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode } from 'react';\n\nexport type CTACellProps = {\n content?: ReactNode;\n subContent?: ReactNode;\n grey?: boolean;\n narrow?: boolean;\n href: string;\n};\nimport styles from './CTACell.module.scss';\n\nexport const CTACell = ({\n content,\n subContent,\n grey,\n narrow,\n href,\n}: CTACellProps) => {\n return (\n <div className=\"wmn3 ta-center\">\n <p className=\"p-h3\">\n {content}\n {subContent && <span className=\"tc-purple-500\"> {subContent}</span>}\n </p>\n <a\n className={classNames('mt16', {\n 'p-btn--primary': !grey,\n 'p-btn--secondary-grey': grey,\n [styles.narrow]: narrow,\n })}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Get covered\n </a>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;IAYa,OAAO,GAAG,UAAC,EAMT;;QALb,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,IAAI,UAAA;IAEJ,QACEA,cAAK,SAAS,EAAC,gBAAgB,aAC7BA,YAAG,SAAS,EAAC,MAAM,aAChB,OAAO,EACP,UAAU,IAAIA,eAAM,SAAS,EAAC,eAAe,kBAAG,UAAU,IAAQ,IACjE,EACJC,WACE,SAAS,EAAE,UAAU,CAAC,MAAM;wBAC1B,gBAAgB,EAAE,CAAC,IAAI;wBACvB,uBAAuB,EAAE,IAAI;;oBAC7B,GAAC,MAAM,CAAC,MAAM,IAAG,MAAM;wBACvB,EACF,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,4BAGvB,IACA,EACN;AACJ;;;;"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { CTACell } from './CTACell.js';
3
+ import '../../../../../index-6ea95111.js';
4
+ import '../../../../../style-inject.es-1f59c1d0.js';
5
+
6
+ var story = {
7
+ title: 'JSX/Table/Cells',
8
+ component: CTACell,
9
+ argTypes: {},
10
+ args: {
11
+ content: 'Premium',
12
+ subContent: '€277',
13
+ grey: false,
14
+ narrow: false,
15
+ },
16
+ };
17
+ var CTACellStory = function (_a) {
18
+ var content = _a.content, subContent = _a.subContent, grey = _a.grey, narrow = _a.narrow;
19
+ return (jsx("div", { className: "p48 d-flex fd-column gap16 bg-white", children: jsx(CTACell, { content: content, subContent: subContent, href: "", grey: grey, narrow: narrow }) }));
20
+ };
21
+ CTACellStory.storyName = 'CTACell';
22
+
23
+ export default story;
24
+ export { CTACellStory };
25
+ //# sourceMappingURL=CTACell.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTACell.stories.js","sources":["../../../../../../../../src/lib/components/table/components/TableCell/CTACell/CTACell.stories.tsx"],"sourcesContent":["import { CTACell } from './CTACell';\n\nconst story = {\n title: 'JSX/Table/Cells',\n component: CTACell,\n argTypes: {},\n args: {\n content: 'Premium',\n subContent: '€277',\n grey: false,\n narrow: false,\n },\n};\n\nexport const CTACellStory = ({\n content,\n subContent,\n grey,\n narrow,\n}: React.ComponentProps<typeof CTACell>) => (\n <div className=\"p48 d-flex fd-column gap16 bg-white\">\n <CTACell\n content={content}\n subContent={subContent}\n href=\"\"\n grey={grey}\n narrow={narrow}\n />\n </div>\n);\n\nCTACellStory.storyName = 'CTACell';\n\nexport default story;\n"],"names":["_jsx"],"mappings":";;;;;IAEM,KAAK,GAAG;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;KACd;EACD;IAEW,YAAY,GAAG,UAAC,EAKU;QAJrC,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,IAAI,UAAA,EACJ,MAAM,YAAA;IACoC,QAC1CA,aAAK,SAAS,EAAC,qCAAqC,YAClDA,IAAC,OAAO,IACN,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAC,EAAE,EACP,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,GACd,GACE;AAToC,EAU1C;AAEF,YAAY,CAAC,SAAS,GAAG,SAAS;;;;;"}