@dxc-technology/halstack-react 0.0.0-dfd09f9 → 0.0.0-e01c6f9

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 (315) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1235 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +116 -160
  8. package/accordion/Accordion.stories.tsx +103 -127
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +31 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +43 -0
  20. package/action-icon/types.d.ts +26 -0
  21. package/alert/Alert.js +23 -59
  22. package/alert/Alert.stories.tsx +28 -0
  23. package/alert/Alert.test.js +29 -46
  24. package/alert/types.d.ts +5 -5
  25. package/badge/Badge.d.ts +1 -1
  26. package/badge/Badge.js +8 -19
  27. package/badge/types.d.ts +2 -1
  28. package/bleed/Bleed.js +14 -55
  29. package/bleed/Bleed.stories.tsx +95 -95
  30. package/bleed/types.d.ts +2 -2
  31. package/box/Box.d.ts +1 -1
  32. package/box/Box.js +30 -81
  33. package/box/Box.stories.tsx +38 -51
  34. package/box/Box.test.js +2 -7
  35. package/box/types.d.ts +3 -14
  36. package/bulleted-list/BulletedList.d.ts +7 -0
  37. package/bulleted-list/BulletedList.js +89 -0
  38. package/bulleted-list/BulletedList.stories.tsx +115 -0
  39. package/bulleted-list/types.d.ts +38 -0
  40. package/button/Button.d.ts +1 -1
  41. package/button/Button.js +62 -113
  42. package/button/Button.stories.tsx +160 -90
  43. package/button/Button.test.js +18 -17
  44. package/button/types.d.ts +12 -8
  45. package/card/Card.d.ts +1 -1
  46. package/card/Card.js +58 -102
  47. package/card/Card.stories.tsx +12 -42
  48. package/card/Card.test.js +11 -22
  49. package/card/types.d.ts +6 -11
  50. package/checkbox/Checkbox.d.ts +2 -2
  51. package/checkbox/Checkbox.js +141 -180
  52. package/checkbox/Checkbox.stories.tsx +128 -94
  53. package/checkbox/Checkbox.test.js +160 -39
  54. package/checkbox/types.d.ts +12 -6
  55. package/chip/Chip.js +39 -79
  56. package/chip/Chip.stories.tsx +121 -26
  57. package/chip/Chip.test.js +16 -31
  58. package/chip/types.d.ts +4 -4
  59. package/common/OpenSans.css +68 -80
  60. package/common/coreTokens.d.ts +237 -0
  61. package/common/coreTokens.js +184 -0
  62. package/common/utils.d.ts +1 -0
  63. package/common/utils.js +6 -12
  64. package/common/variables.d.ts +1381 -0
  65. package/common/variables.js +998 -1117
  66. package/container/Container.d.ts +4 -0
  67. package/container/Container.js +194 -0
  68. package/container/Container.stories.tsx +214 -0
  69. package/container/types.d.ts +74 -0
  70. package/date-input/Calendar.d.ts +4 -0
  71. package/date-input/Calendar.js +214 -0
  72. package/date-input/DateInput.js +153 -299
  73. package/date-input/DateInput.stories.tsx +203 -56
  74. package/date-input/DateInput.test.js +700 -371
  75. package/date-input/DatePicker.d.ts +4 -0
  76. package/date-input/DatePicker.js +115 -0
  77. package/date-input/Icons.d.ts +6 -0
  78. package/date-input/Icons.js +58 -0
  79. package/date-input/YearPicker.d.ts +4 -0
  80. package/date-input/YearPicker.js +100 -0
  81. package/date-input/types.d.ts +72 -15
  82. package/dialog/Dialog.d.ts +1 -1
  83. package/dialog/Dialog.js +73 -107
  84. package/dialog/Dialog.stories.tsx +320 -167
  85. package/dialog/Dialog.test.js +287 -20
  86. package/dialog/types.d.ts +18 -25
  87. package/dropdown/Dropdown.d.ts +1 -1
  88. package/dropdown/Dropdown.js +243 -304
  89. package/dropdown/Dropdown.stories.tsx +245 -56
  90. package/dropdown/Dropdown.test.js +575 -165
  91. package/dropdown/DropdownMenu.d.ts +4 -0
  92. package/dropdown/DropdownMenu.js +63 -0
  93. package/dropdown/DropdownMenuItem.d.ts +4 -0
  94. package/dropdown/DropdownMenuItem.js +67 -0
  95. package/dropdown/types.d.ts +32 -14
  96. package/file-input/FileInput.d.ts +2 -2
  97. package/file-input/FileInput.js +246 -357
  98. package/file-input/FileInput.stories.tsx +123 -12
  99. package/file-input/FileInput.test.js +369 -367
  100. package/file-input/FileItem.d.ts +4 -14
  101. package/file-input/FileItem.js +50 -99
  102. package/file-input/types.d.ts +25 -8
  103. package/flex/Flex.d.ts +4 -0
  104. package/flex/Flex.js +57 -0
  105. package/flex/Flex.stories.tsx +112 -0
  106. package/flex/types.d.ts +97 -0
  107. package/footer/Footer.d.ts +1 -1
  108. package/footer/Footer.js +57 -115
  109. package/footer/Footer.stories.tsx +41 -19
  110. package/footer/Footer.test.js +33 -57
  111. package/footer/Icons.d.ts +2 -2
  112. package/footer/Icons.js +3 -8
  113. package/footer/types.d.ts +21 -28
  114. package/grid/Grid.d.ts +7 -0
  115. package/grid/Grid.js +76 -0
  116. package/grid/Grid.stories.tsx +219 -0
  117. package/grid/types.d.ts +115 -0
  118. package/header/Header.d.ts +4 -3
  119. package/header/Header.js +90 -170
  120. package/header/Header.stories.tsx +118 -39
  121. package/header/Header.test.js +13 -26
  122. package/header/Icons.d.ts +2 -2
  123. package/header/Icons.js +4 -9
  124. package/header/types.d.ts +5 -19
  125. package/heading/Heading.js +10 -32
  126. package/heading/Heading.test.js +71 -88
  127. package/heading/types.d.ts +7 -7
  128. package/image/Image.d.ts +4 -0
  129. package/image/Image.js +70 -0
  130. package/image/Image.stories.tsx +127 -0
  131. package/image/types.d.ts +72 -0
  132. package/inset/Inset.js +14 -55
  133. package/inset/Inset.stories.tsx +37 -36
  134. package/inset/types.d.ts +2 -2
  135. package/layout/ApplicationLayout.d.ts +16 -6
  136. package/layout/ApplicationLayout.js +82 -166
  137. package/layout/ApplicationLayout.stories.tsx +85 -94
  138. package/layout/Icons.d.ts +8 -0
  139. package/layout/Icons.js +51 -48
  140. package/layout/SidenavContext.d.ts +5 -0
  141. package/layout/SidenavContext.js +13 -0
  142. package/layout/types.d.ts +19 -35
  143. package/link/Link.d.ts +3 -2
  144. package/link/Link.js +61 -99
  145. package/link/Link.stories.tsx +155 -53
  146. package/link/Link.test.js +25 -53
  147. package/link/types.d.ts +15 -31
  148. package/main.d.ts +11 -12
  149. package/main.js +58 -109
  150. package/nav-tabs/NavTabs.d.ts +8 -0
  151. package/nav-tabs/NavTabs.js +90 -0
  152. package/nav-tabs/NavTabs.stories.tsx +274 -0
  153. package/nav-tabs/NavTabs.test.js +75 -0
  154. package/nav-tabs/Tab.d.ts +4 -0
  155. package/nav-tabs/Tab.js +117 -0
  156. package/nav-tabs/types.d.ts +52 -0
  157. package/nav-tabs/types.js +5 -0
  158. package/number-input/NumberInput.d.ts +7 -0
  159. package/number-input/NumberInput.js +26 -35
  160. package/number-input/NumberInput.stories.tsx +42 -26
  161. package/number-input/NumberInput.test.js +701 -377
  162. package/number-input/types.d.ts +12 -6
  163. package/package.json +44 -46
  164. package/paginator/Icons.d.ts +5 -0
  165. package/paginator/Icons.js +21 -47
  166. package/paginator/Paginator.js +34 -91
  167. package/paginator/Paginator.stories.tsx +24 -0
  168. package/paginator/Paginator.test.js +280 -211
  169. package/paginator/types.d.ts +3 -3
  170. package/paragraph/Paragraph.d.ts +5 -0
  171. package/paragraph/Paragraph.js +22 -0
  172. package/paragraph/Paragraph.stories.tsx +27 -0
  173. package/password-input/Icons.d.ts +6 -0
  174. package/password-input/Icons.js +35 -0
  175. package/password-input/PasswordInput.js +57 -123
  176. package/password-input/PasswordInput.stories.tsx +1 -33
  177. package/password-input/PasswordInput.test.js +160 -143
  178. package/password-input/types.d.ts +9 -8
  179. package/progress-bar/ProgressBar.js +65 -91
  180. package/progress-bar/ProgressBar.stories.tsx +93 -0
  181. package/progress-bar/ProgressBar.test.js +72 -44
  182. package/progress-bar/types.d.ts +3 -3
  183. package/quick-nav/QuickNav.js +71 -41
  184. package/quick-nav/QuickNav.stories.tsx +146 -27
  185. package/quick-nav/types.d.ts +10 -10
  186. package/radio-group/Radio.d.ts +1 -1
  187. package/radio-group/Radio.js +59 -76
  188. package/radio-group/RadioGroup.js +71 -116
  189. package/radio-group/RadioGroup.stories.tsx +132 -18
  190. package/radio-group/RadioGroup.test.js +518 -457
  191. package/radio-group/types.d.ts +10 -10
  192. package/resultset-table/Icons.d.ts +7 -0
  193. package/resultset-table/Icons.js +47 -0
  194. package/resultset-table/ResultsetTable.js +159 -0
  195. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  196. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
  197. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  198. package/resultset-table/types.js +5 -0
  199. package/select/Icons.d.ts +7 -7
  200. package/select/Icons.js +1 -5
  201. package/select/Listbox.d.ts +1 -1
  202. package/select/Listbox.js +46 -51
  203. package/select/Option.js +20 -50
  204. package/select/Select.js +168 -242
  205. package/select/Select.stories.tsx +525 -136
  206. package/select/Select.test.js +2009 -1696
  207. package/select/types.d.ts +16 -20
  208. package/sidenav/Icons.d.ts +7 -0
  209. package/sidenav/Icons.js +47 -0
  210. package/sidenav/Sidenav.d.ts +6 -5
  211. package/sidenav/Sidenav.js +131 -71
  212. package/sidenav/Sidenav.stories.tsx +251 -151
  213. package/sidenav/Sidenav.test.js +26 -45
  214. package/sidenav/types.d.ts +52 -26
  215. package/slider/Slider.d.ts +2 -2
  216. package/slider/Slider.js +148 -181
  217. package/slider/Slider.test.js +185 -81
  218. package/slider/types.d.ts +7 -3
  219. package/spinner/Spinner.js +31 -75
  220. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  221. package/spinner/Spinner.test.js +26 -35
  222. package/spinner/types.d.ts +3 -3
  223. package/switch/Switch.d.ts +2 -2
  224. package/switch/Switch.js +143 -121
  225. package/switch/Switch.stories.tsx +41 -64
  226. package/switch/Switch.test.js +138 -56
  227. package/switch/types.d.ts +9 -5
  228. package/table/Table.js +8 -30
  229. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  230. package/table/Table.test.js +3 -8
  231. package/table/types.d.ts +8 -8
  232. package/tabs/Tab.d.ts +4 -0
  233. package/tabs/Tab.js +113 -0
  234. package/tabs/Tabs.js +314 -141
  235. package/tabs/Tabs.stories.tsx +119 -11
  236. package/tabs/Tabs.test.js +223 -69
  237. package/tabs/types.d.ts +28 -18
  238. package/tag/Tag.js +33 -68
  239. package/tag/Tag.stories.tsx +14 -1
  240. package/tag/Tag.test.js +20 -31
  241. package/tag/types.d.ts +7 -7
  242. package/text-input/Icons.d.ts +8 -0
  243. package/text-input/Icons.js +56 -0
  244. package/text-input/Suggestion.d.ts +4 -0
  245. package/text-input/Suggestion.js +67 -0
  246. package/text-input/Suggestions.d.ts +4 -0
  247. package/text-input/Suggestions.js +84 -0
  248. package/text-input/TextInput.js +323 -547
  249. package/text-input/TextInput.stories.tsx +266 -275
  250. package/text-input/TextInput.test.js +1403 -1376
  251. package/text-input/types.d.ts +53 -14
  252. package/textarea/Textarea.js +79 -131
  253. package/textarea/Textarea.stories.tsx +174 -0
  254. package/textarea/Textarea.test.js +152 -183
  255. package/textarea/types.d.ts +10 -6
  256. package/toggle-group/ToggleGroup.d.ts +2 -2
  257. package/toggle-group/ToggleGroup.js +92 -106
  258. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  259. package/toggle-group/ToggleGroup.test.js +69 -88
  260. package/toggle-group/types.d.ts +26 -17
  261. package/typography/Typography.d.ts +4 -0
  262. package/typography/Typography.js +23 -0
  263. package/typography/Typography.stories.tsx +198 -0
  264. package/typography/types.d.ts +18 -0
  265. package/typography/types.js +5 -0
  266. package/useTheme.d.ts +1133 -1
  267. package/useTheme.js +4 -11
  268. package/useTranslatedLabels.d.ts +85 -0
  269. package/useTranslatedLabels.js +14 -0
  270. package/utils/BaseTypography.d.ts +21 -0
  271. package/utils/BaseTypography.js +94 -0
  272. package/utils/FocusLock.d.ts +13 -0
  273. package/utils/FocusLock.js +121 -0
  274. package/wizard/Wizard.js +51 -91
  275. package/wizard/Wizard.stories.tsx +40 -1
  276. package/wizard/Wizard.test.js +54 -81
  277. package/wizard/types.d.ts +7 -7
  278. package/ThemeContext.d.ts +0 -10
  279. package/ThemeContext.js +0 -243
  280. package/card/ice-cream.jpg +0 -0
  281. package/common/RequiredComponent.js +0 -32
  282. package/list/List.d.ts +0 -4
  283. package/list/List.js +0 -47
  284. package/list/List.stories.tsx +0 -95
  285. package/list/types.d.ts +0 -7
  286. package/number-input/NumberInputContext.d.ts +0 -4
  287. package/number-input/NumberInputContext.js +0 -19
  288. package/number-input/numberInputContextTypes.d.ts +0 -19
  289. package/progress-bar/ProgressBar.stories.jsx +0 -58
  290. package/radio/Radio.d.ts +0 -4
  291. package/radio/Radio.js +0 -174
  292. package/radio/Radio.stories.tsx +0 -192
  293. package/radio/Radio.test.js +0 -71
  294. package/radio/types.d.ts +0 -54
  295. package/resultsetTable/ResultsetTable.js +0 -254
  296. package/row/Row.d.ts +0 -3
  297. package/row/Row.js +0 -127
  298. package/row/Row.stories.tsx +0 -237
  299. package/row/types.d.ts +0 -28
  300. package/slider/Slider.stories.tsx +0 -177
  301. package/stack/Stack.d.ts +0 -3
  302. package/stack/Stack.js +0 -97
  303. package/stack/Stack.stories.tsx +0 -164
  304. package/stack/types.d.ts +0 -24
  305. package/text/Text.d.ts +0 -7
  306. package/text/Text.js +0 -30
  307. package/text/Text.stories.tsx +0 -19
  308. package/textarea/Textarea.stories.jsx +0 -157
  309. /package/{list → action-icon}/types.js +0 -0
  310. /package/{radio → bulleted-list}/types.js +0 -0
  311. /package/{resultsetTable → container}/types.js +0 -0
  312. /package/{row → flex}/types.js +0 -0
  313. /package/{stack → grid}/types.js +0 -0
  314. /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
  315. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
@@ -1,11 +1,11 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- declare type Props = {
8
+ type Props = {
9
9
  /**
10
10
  * Text to be placed above the number.
11
11
  */
@@ -35,12 +35,18 @@ declare type Props = {
35
35
  */
36
36
  disabled?: boolean;
37
37
  /**
38
- * If true, the number will be optional, showing '(Optional)'
38
+ * If true, the number will be optional, showing the text '(Optional)'
39
39
  * next to the label. Otherwise, the field will be considered required
40
40
  * and an error will be passed as a parameter to the OnBlur and onChange
41
41
  * functions when it has not been filled.
42
42
  */
43
43
  optional?: boolean;
44
+ /**
45
+ * If true, the component will not be mutable, meaning the user can
46
+ * not edit the control. The value won't change when pressing on the
47
+ * up or down arrows and neither on the spin buttons.
48
+ */
49
+ readOnly?: boolean;
44
50
  /**
45
51
  * Prefix to be placed before the number value.
46
52
  */
@@ -109,7 +115,7 @@ declare type Props = {
109
115
  */
110
116
  margin?: Space | Margin;
111
117
  /**
112
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
118
+ * Size of the component.
113
119
  */
114
120
  size?: "small" | "medium" | "large" | "fillParent";
115
121
  /**
@@ -120,5 +126,5 @@ declare type Props = {
120
126
  /**
121
127
  * Reference to the component.
122
128
  */
123
- export declare type RefType = HTMLDivElement;
129
+ export type RefType = HTMLDivElement;
124
130
  export default Props;
package/package.json CHANGED
@@ -1,89 +1,87 @@
1
1
  {
2
2
  "name": "@dxc-technology/halstack-react",
3
- "version": "0.0.0-dfd09f9",
3
+ "version": "0.0.0-e01c6f9",
4
4
  "description": "DXC Halstack React components library",
5
5
  "repository": "dxc-technology/halstack-react",
6
- "homepage": "http://developer.dxc.com/tools/react",
6
+ "homepage": "https://developer.dxc.com/halstack",
7
7
  "license": "Apache-2.0",
8
8
  "author": {
9
9
  "name": "DXC Technology",
10
10
  "email": "DigitalInsurance@dxc.com",
11
- "url": "https://dxc.com"
11
+ "url": "https://developer.dxc.com"
12
12
  },
13
13
  "main": "./main.js",
14
14
  "types": "./main.d.ts",
15
15
  "peerDependencies": {
16
- "react": "^17.0.1",
17
- "react-dom": "^17.0.1",
16
+ "react": "^18.x",
17
+ "react-dom": "^18.x",
18
18
  "styled-components": "^5.0.1"
19
19
  },
20
20
  "dependencies": {
21
- "@date-io/date-fns": "^1.3.9",
22
- "@material-ui/core": "4.11.1",
23
- "@material-ui/icons": "4.4.3",
24
- "@material-ui/lab": "4.0.0-alpha.17",
25
- "@material-ui/pickers": "3.2.2",
26
- "@material-ui/styles": "4.0.2",
27
- "@types/styled-components": "^5.1.24",
28
- "@types/uuid": "^8.3.4",
21
+ "@radix-ui/react-popover": "^1.0.7",
29
22
  "color": "^3.1.3",
30
- "date-fns": "^2.0.0-beta.4",
31
- "moment": "2.24.0",
32
- "prop-types": "^15.7.2",
33
- "rgb-hex": "^3.0.0",
23
+ "dayjs": "^1.11.1",
34
24
  "slugify": "^1.6.5",
35
25
  "uuid": "^8.3.2"
36
26
  },
37
27
  "scripts": {
38
- "test": "jest",
28
+ "test": "jest --env=jsdom",
39
29
  "test:watch": "npm test -- --watch --coverage",
40
- "build": "babel src --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose && node ../scripts/build/copy-package.js && tsc ",
30
+ "build": "babel src --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose && node ../scripts/build/copy-package.js && node ../scripts/build/copy-readme.js && tsc ",
41
31
  "build:watch": "babel src --watch --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose",
42
- "storybook": "start-storybook -p 6006",
43
- "build-storybook": "build-storybook"
32
+ "storybook": "storybook dev -p 6006",
33
+ "build-storybook": "storybook build"
44
34
  },
45
35
  "devDependencies": {
46
36
  "@babel/cli": "^7.16.8",
47
- "@babel/core": "^7.16.7",
37
+ "@babel/core": "^7.23.9",
48
38
  "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
49
39
  "@babel/plugin-proposal-optional-chaining": "^7.13.8",
50
40
  "@babel/plugin-transform-runtime": "^7.16.8",
51
41
  "@babel/preset-env": "^7.16.8",
52
42
  "@babel/preset-react": "^7.16.7",
53
43
  "@babel/preset-typescript": "^7.16.7",
54
- "@storybook/addon-actions": "^6.4.9",
55
- "@storybook/addon-essentials": "^6.4.9",
56
- "@storybook/addon-links": "^6.4.9",
57
- "@storybook/react": "^6.4.9",
58
- "@storybook/testing-library": "0.0.7",
59
- "@testing-library/react": "^11.2.5",
60
- "@testing-library/user-event": "^12.6.3",
44
+ "@storybook/addon-essentials": "^7.5.3",
45
+ "@storybook/addon-interactions": "^7.5.3",
46
+ "@storybook/addon-links": "^7.5.3",
47
+ "@storybook/blocks": "^7.5.3",
48
+ "@storybook/react": "^7.5.3",
49
+ "@storybook/react-vite": "^7.5.3",
50
+ "@storybook/testing-library": "^0.2.2",
51
+ "@testing-library/react": "^13.0.0",
52
+ "@testing-library/user-event": "^13.0.0",
53
+ "@types/color": "^3.0.3",
54
+ "@types/react": "^18.0.18",
55
+ "@types/styled-components": "5.1.29",
56
+ "@types/uuid": "^9.0.6",
61
57
  "babel-jest": "^24.8.0",
62
58
  "babel-loader": "^8.0.6",
63
- "chromatic": "^6.3.3",
64
- "eslint": "^5.16.0",
65
- "eslint-config-airbnb": "^17.1.0",
66
- "eslint-config-prettier": "^6.7.0",
67
- "eslint-plugin-import": "^2.17.3",
68
- "eslint-plugin-jest": "^22.7.1",
69
- "eslint-plugin-jsx-a11y": "^6.2.1",
70
- "eslint-plugin-react": "^7.13.0",
71
- "eslint-plugin-react-hooks": "^4.2.0",
72
- "eslint-plugin-storybook": "^0.5.5",
59
+ "chromatic": "^8.0.0",
60
+ "eslint": "^8.53.0",
61
+ "eslint-config-airbnb": "^19.0.4",
62
+ "eslint-config-prettier": "^9.0.0",
63
+ "eslint-plugin-import": "^2.29.0",
64
+ "eslint-plugin-jest": "^27.6.0",
65
+ "eslint-plugin-jsx-a11y": "^6.8.0",
66
+ "eslint-plugin-react": "^7.33.2",
67
+ "eslint-plugin-react-hooks": "^4.6.0",
68
+ "eslint-plugin-storybook": "^0.6.15",
73
69
  "identity-obj-proxy": "^3.0.0",
74
- "jest": "^25.5.4",
75
- "react": "^17.0.1",
76
- "react-dom": "^17.0.1",
77
- "react-test-renderer": "^16.8.6",
78
- "storybook-addon-pseudo-states": "^1.0.0",
70
+ "jest": "^29.2.2",
71
+ "jest-environment-jsdom": "^29.3.1",
72
+ "react": "^18.2.0",
73
+ "react-dom": "^18.2.0",
74
+ "storybook": "^7.5.3",
75
+ "storybook-addon-pseudo-states": "^2.1.2",
79
76
  "styled-components": "^5.0.1",
80
- "typescript": "^4.5.4"
77
+ "typescript": "^5.3.3"
81
78
  },
82
79
  "jest": {
83
80
  "moduleNameMapper": {
84
81
  "\\.(css|less|scss|sass)$": "identity-obj-proxy",
85
82
  "\\.(svg)$": "<rootDir>/test/mocks/svgMock.js",
86
- "\\.(png)$": "<rootDir>/test/mocks/pngMock.js"
83
+ "\\.(png)$": "<rootDir>/test/mocks/pngMock.js",
84
+ "^uuid$": "uuid"
87
85
  }
88
86
  }
89
87
  }
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export declare const firstIcon: React.JSX.Element;
3
+ export declare const previousIcon: React.JSX.Element;
4
+ export declare const nextIcon: React.JSX.Element;
5
+ export declare const lastIcon: React.JSX.Element;
@@ -1,66 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.previousIcon = exports.nextIcon = exports.lastIcon = exports.firstIcon = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
- var firstIcon = /*#__PURE__*/_react["default"].createElement("svg", {
9
+ var firstIcon = exports.firstIcon = /*#__PURE__*/_react["default"].createElement("svg", {
13
10
  xmlns: "http://www.w3.org/2000/svg",
14
- width: "12.41",
15
- height: "12",
16
- viewBox: "0 0 12.41 12"
11
+ height: "24",
12
+ width: "24",
13
+ fill: "currentColor"
17
14
  }, /*#__PURE__*/_react["default"].createElement("path", {
18
- id: "Path_2463",
19
- "data-name": "Path 2463",
20
- d: "M18.41,16.59,13.82,12l4.59-4.59L17,6l-6,6,6,6ZM6,6H8V18H6Z",
21
- transform: "translate(-6 -6)"
15
+ d: "M6 18V6h2v12Zm11 0-6-6 6-6 1.4 1.4-4.6 4.6 4.6 4.6Z"
22
16
  }));
23
-
24
- exports.firstIcon = firstIcon;
25
-
26
- var previousIcon = /*#__PURE__*/_react["default"].createElement("svg", {
17
+ var previousIcon = exports.previousIcon = /*#__PURE__*/_react["default"].createElement("svg", {
27
18
  xmlns: "http://www.w3.org/2000/svg",
28
- width: "7.41",
29
- height: "12",
30
- viewBox: "0 0 7.41 12"
19
+ height: "24",
20
+ width: "24",
21
+ fill: "currentColor"
31
22
  }, /*#__PURE__*/_react["default"].createElement("path", {
32
- id: "Path_2459",
33
- "data-name": "Path 2459",
34
- d: "M15.41,7.41,14,6,8,12l6,6,1.41-1.41L10.83,12Z",
35
- transform: "translate(-8 -6)"
23
+ d: "m14 18-6-6 6-6 1.4 1.4-4.6 4.6 4.6 4.6Z"
36
24
  }));
37
-
38
- exports.previousIcon = previousIcon;
39
-
40
- var nextIcon = /*#__PURE__*/_react["default"].createElement("svg", {
25
+ var nextIcon = exports.nextIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
26
  xmlns: "http://www.w3.org/2000/svg",
42
- width: "7.41",
43
- height: "12",
44
- viewBox: "0 0 7.41 12"
27
+ height: "24",
28
+ width: "24",
29
+ fill: "currentColor"
45
30
  }, /*#__PURE__*/_react["default"].createElement("path", {
46
- id: "Path_2461",
47
- "data-name": "Path 2461",
48
- d: "M10,6,8.59,7.41,13.17,12,8.59,16.59,10,18l6-6Z",
49
- transform: "translate(-8.59 -6)"
31
+ d: "M9.4 18 8 16.6l4.6-4.6L8 7.4 9.4 6l6 6Z"
50
32
  }));
51
-
52
- exports.nextIcon = nextIcon;
53
-
54
- var lastIcon = /*#__PURE__*/_react["default"].createElement("svg", {
33
+ var lastIcon = exports.lastIcon = /*#__PURE__*/_react["default"].createElement("svg", {
55
34
  xmlns: "http://www.w3.org/2000/svg",
56
- width: "12.41",
57
- height: "12",
58
- viewBox: "0 0 12.41 12"
35
+ height: "24",
36
+ width: "24",
37
+ fill: "currentColor"
59
38
  }, /*#__PURE__*/_react["default"].createElement("path", {
60
- id: "Path_2465",
61
- "data-name": "Path 2465",
62
- d: "M5.59,7.41,10.18,12,5.59,16.59,7,18l6-6L7,6ZM16,6h2V18H16Z",
63
- transform: "translate(-5.59 -6)"
64
- }));
65
-
66
- exports.lastIcon = lastIcon;
39
+ d: "m7 18-1.4-1.4 4.6-4.6-4.6-4.6L7 6l6 6Zm9 0V6h2v12Z"
40
+ }));
@@ -1,61 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _react = _interopRequireDefault(require("react"));
15
-
16
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
-
18
12
  var _useTheme = _interopRequireDefault(require("../useTheme"));
19
-
13
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
20
14
  var _Button = _interopRequireDefault(require("../button/Button"));
21
-
22
15
  var _Select = _interopRequireDefault(require("../select/Select"));
23
-
24
16
  var _Icons = require("./Icons");
25
-
26
- var _BackgroundColorContext = require("../BackgroundColorContext");
27
-
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
34
20
  var DxcPaginator = function DxcPaginator(_ref) {
35
21
  var _ref$currentPage = _ref.currentPage,
36
- currentPage = _ref$currentPage === void 0 ? 1 : _ref$currentPage,
37
- _ref$itemsPerPage = _ref.itemsPerPage,
38
- itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
39
- itemsPerPageOptions = _ref.itemsPerPageOptions,
40
- _ref$totalItems = _ref.totalItems,
41
- totalItems = _ref$totalItems === void 0 ? 1 : _ref$totalItems,
42
- showGoToPage = _ref.showGoToPage,
43
- onPageChange = _ref.onPageChange,
44
- itemsPerPageFunction = _ref.itemsPerPageFunction,
45
- _ref$tabIndex = _ref.tabIndex,
46
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
47
- var totalPages = Math.ceil(totalItems / itemsPerPage);
22
+ currentPage = _ref$currentPage === void 0 ? 1 : _ref$currentPage,
23
+ _ref$itemsPerPage = _ref.itemsPerPage,
24
+ itemsPerPage = _ref$itemsPerPage === void 0 ? 5 : _ref$itemsPerPage,
25
+ itemsPerPageOptions = _ref.itemsPerPageOptions,
26
+ _ref$totalItems = _ref.totalItems,
27
+ totalItems = _ref$totalItems === void 0 ? 1 : _ref$totalItems,
28
+ showGoToPage = _ref.showGoToPage,
29
+ onPageChange = _ref.onPageChange,
30
+ itemsPerPageFunction = _ref.itemsPerPageFunction,
31
+ _ref$tabIndex = _ref.tabIndex,
32
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
33
+ var totalPages = itemsPerPage > 0 && Math.ceil(totalItems / itemsPerPage);
48
34
  var currentPageInternal = currentPage === -1 ? totalPages : currentPage;
49
35
  var minItemsPerPage = currentPageInternal === 1 || currentPageInternal === 0 ? currentPageInternal : (currentPageInternal - 1) * itemsPerPage + 1;
50
36
  var maxItemsPerPage = minItemsPerPage - 1 + itemsPerPage > totalItems ? totalItems : minItemsPerPage - 1 + itemsPerPage;
51
37
  var colorsTheme = (0, _useTheme["default"])();
38
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
52
39
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
53
40
  theme: colorsTheme.paginator
54
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
55
- color: colorsTheme.paginator.backgroundColor
56
- }, /*#__PURE__*/_react["default"].createElement(DxcPaginatorContainer, {
57
- disabled: currentPageInternal === 1
58
- }, /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, itemsPerPageOptions && /*#__PURE__*/_react["default"].createElement(ItemsPageContainer, null, /*#__PURE__*/_react["default"].createElement(ItemsLabel, null, "Items per page "), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
41
+ }, /*#__PURE__*/_react["default"].createElement(DxcPaginatorContainer, null, /*#__PURE__*/_react["default"].createElement(LabelsContainer, null, itemsPerPageOptions && /*#__PURE__*/_react["default"].createElement(ItemsPageContainer, null, /*#__PURE__*/_react["default"].createElement(ItemsLabel, null, translatedLabels.paginator.itemsPerPageText), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
59
42
  options: itemsPerPageOptions.map(function (num) {
60
43
  return {
61
44
  label: num.toString(),
@@ -68,33 +51,23 @@ var DxcPaginator = function DxcPaginator(_ref) {
68
51
  value: itemsPerPage.toString(),
69
52
  size: "fillParent",
70
53
  tabIndex: tabIndex
71
- }))), /*#__PURE__*/_react["default"].createElement(TotalItemsContainer, null, minItemsPerPage, " to ", maxItemsPerPage, " of ", totalItems), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
72
- size: "small",
54
+ }))), /*#__PURE__*/_react["default"].createElement(TotalItemsContainer, null, translatedLabels.paginator.minToMaxOfText(minItemsPerPage, maxItemsPerPage, totalItems)), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
73
55
  mode: "secondary",
74
56
  disabled: currentPageInternal === 1 || currentPageInternal === 0,
75
- margin: {
76
- left: "xxsmall",
77
- right: "xxsmall"
78
- },
79
57
  icon: _Icons.firstIcon,
80
58
  tabIndex: tabIndex,
81
59
  onClick: function onClick() {
82
60
  onPageChange(1);
83
61
  }
84
62
  }), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
85
- size: "small",
86
63
  mode: "secondary",
87
64
  disabled: currentPageInternal === 1 || currentPageInternal === 0,
88
- margin: {
89
- left: "xxsmall",
90
- right: "xxsmall"
91
- },
92
65
  icon: _Icons.previousIcon,
93
66
  tabIndex: tabIndex,
94
67
  onClick: function onClick() {
95
68
  onPageChange(currentPage - 1);
96
69
  }
97
- }), showGoToPage && /*#__PURE__*/_react["default"].createElement(PageToSelectContainer, null, /*#__PURE__*/_react["default"].createElement(GoToLabel, null, "Go to page: "), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
70
+ }), showGoToPage ? /*#__PURE__*/_react["default"].createElement(PageToSelectContainer, null, /*#__PURE__*/_react["default"].createElement(GoToLabel, null, translatedLabels.paginator.goToPageText, " "), /*#__PURE__*/_react["default"].createElement(SelectContainer, null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
98
71
  options: Array.from(Array(totalPages), function (e, num) {
99
72
  return {
100
73
  label: (num + 1).toString(),
@@ -107,40 +80,25 @@ var DxcPaginator = function DxcPaginator(_ref) {
107
80
  value: currentPage.toString(),
108
81
  size: "fillParent",
109
82
  tabIndex: tabIndex
110
- }))) || /*#__PURE__*/_react["default"].createElement(TextContainer, null, "Page: ", currentPageInternal, " of ", totalPages), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
111
- size: "small",
83
+ }))) : /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.paginator.pageOfText(currentPageInternal, totalPages)), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
112
84
  mode: "secondary",
113
85
  disabled: currentPageInternal === totalPages,
114
- margin: {
115
- left: "xxsmall",
116
- right: "xxsmall"
117
- },
118
86
  icon: _Icons.nextIcon,
119
87
  tabIndex: tabIndex,
120
88
  onClick: function onClick() {
121
89
  onPageChange(currentPage + 1);
122
90
  }
123
91
  }), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
124
- size: "small",
125
92
  mode: "secondary",
126
93
  disabled: currentPageInternal === totalPages,
127
- margin: {
128
- left: "xxsmall",
129
- right: "xxsmall"
130
- },
131
94
  icon: _Icons.lastIcon,
132
95
  tabIndex: tabIndex,
133
96
  onClick: function onClick() {
134
97
  onPageChange(totalPages);
135
98
  }
136
- })))));
99
+ }))));
137
100
  };
138
-
139
- var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: ", ";\n width: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n text-transform: ", ";\n background-color: ", ";\n color: ", ";\n\n button {\n &:disabled {\n background-color: transparent !important;\n opacity: 0.3 !important;\n }\n }\n"])), function (props) {
140
- return props.theme.height;
141
- }, function (props) {
142
- return props.theme.width;
143
- }, function (props) {
101
+ var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n text-transform: ", ";\n background-color: ", ";\n color: ", ";\n padding: ", " ", ";\n\n button {\n &:disabled {\n background-color: transparent !important;\n opacity: 0.3 !important;\n }\n }\n"])), function (props) {
144
102
  return props.theme.fontFamily;
145
103
  }, function (props) {
146
104
  return props.theme.fontSize;
@@ -154,39 +112,24 @@ var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject ||
154
112
  return props.theme.backgroundColor;
155
113
  }, function (props) {
156
114
  return props.theme.fontColor;
115
+ }, function (props) {
116
+ return props.theme.verticalPadding;
117
+ }, function (props) {
118
+ return props.theme.horizontalPadding;
157
119
  });
158
-
159
- var SelectContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n max-width: 100px;\n"])));
160
-
161
- var ItemsPageContainer = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: ", ";\n margin-left: ", ";\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])), function (props) {
120
+ var SelectContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: 5.25rem;\n"])));
121
+ var ItemsPageContainer = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
162
122
  return props.theme.itemsPerPageSelectorMarginRight;
163
123
  }, function (props) {
164
124
  return props.theme.itemsPerPageSelectorMarginLeft;
165
125
  });
166
-
167
- var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 15px;\n"])));
168
-
169
- var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 10px;\n margin-left: 10px;\n"])));
170
-
126
+ var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n"])));
127
+ var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left: 0.5rem;\n"])));
171
128
  var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
172
129
  return props.theme.totalItemsContainerMarginRight;
173
130
  }, function (props) {
174
131
  return props.theme.totalItemsContainerMarginLeft;
175
132
  });
176
-
177
- var LabelsContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n width: 100%;\n justify-content: flex-end;\n align-items: center;\n margin: 0 ", " 0 ", ";\n"])), function (props) {
178
- return props.theme.marginRight;
179
- }, function (props) {
180
- return props.theme.marginLeft;
181
- });
182
-
183
- var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: ", ";\n margin-left: ", ";\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])), function (props) {
184
- return props.theme.pageSelectorMarginRight;
185
- }, function (props) {
186
- return props.theme.pageSelectorMarginLeft;
187
- });
188
-
189
- var TextContainer = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])([""])));
190
-
191
- var _default = DxcPaginator;
192
- exports["default"] = _default;
133
+ var LabelsContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.5rem;\n width: 100%;\n justify-content: flex-end;\n align-items: center;\n"])));
134
+ var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: 0.5rem;\n"])));
135
+ var _default = exports["default"] = DxcPaginator;
@@ -2,12 +2,20 @@ import React from "react";
2
2
  import DxcPaginator from "./Paginator";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  export default {
7
8
  title: "Paginator",
8
9
  component: DxcPaginator,
9
10
  };
10
11
 
12
+ const opinionatedTheme = {
13
+ paginator: {
14
+ baseColor: "#f2f2f2",
15
+ fontColor: "#000000",
16
+ },
17
+ };
18
+
11
19
  export const Chromatic = () => (
12
20
  <>
13
21
  <ExampleContainer>
@@ -59,5 +67,21 @@ export const Chromatic = () => (
59
67
  showGoToPage
60
68
  />
61
69
  </ExampleContainer>
70
+ <Title title="Opinionated theme" theme="light" level={2} />
71
+ <ExampleContainer>
72
+ <HalstackProvider theme={opinionatedTheme}>
73
+ <ExampleContainer>
74
+ <Title title="Page change and items per page options" theme="light" level={4} />
75
+ <DxcPaginator
76
+ currentPage={1}
77
+ itemsPerPage={10}
78
+ totalItems={27}
79
+ onPageChange={() => {}}
80
+ itemsPerPageOptions={[5, 10, 15]}
81
+ showGoToPage
82
+ />
83
+ </ExampleContainer>
84
+ </HalstackProvider>
85
+ </ExampleContainer>
62
86
  </>
63
87
  );