@dxc-technology/halstack-react 0.0.0-0af2013 → 0.0.0-0bb6041

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 (267) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1331 -5
  4. package/HalstackContext.js +179 -87
  5. package/accordion/Accordion.js +118 -110
  6. package/accordion/Accordion.stories.tsx +104 -16
  7. package/accordion/Accordion.test.js +10 -11
  8. package/accordion/types.d.ts +2 -1
  9. package/accordion-group/AccordionGroup.d.ts +4 -3
  10. package/accordion-group/AccordionGroup.js +25 -65
  11. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  12. package/accordion-group/AccordionGroup.test.js +21 -46
  13. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  14. package/accordion-group/AccordionGroupAccordion.js +43 -0
  15. package/accordion-group/types.d.ts +8 -1
  16. package/alert/Alert.js +9 -10
  17. package/alert/Alert.stories.tsx +28 -0
  18. package/alert/Alert.test.js +1 -1
  19. package/badge/Badge.d.ts +1 -1
  20. package/badge/Badge.js +5 -3
  21. package/badge/types.d.ts +1 -0
  22. package/bleed/Bleed.js +1 -34
  23. package/bleed/Bleed.stories.tsx +95 -95
  24. package/bleed/types.d.ts +1 -1
  25. package/box/Box.js +25 -37
  26. package/box/Box.stories.tsx +15 -0
  27. package/box/Box.test.js +1 -1
  28. package/box/types.d.ts +1 -0
  29. package/bulleted-list/BulletedList.d.ts +7 -0
  30. package/bulleted-list/BulletedList.js +125 -0
  31. package/bulleted-list/BulletedList.stories.tsx +206 -0
  32. package/bulleted-list/types.d.ts +38 -0
  33. package/button/Button.js +52 -73
  34. package/button/Button.stories.tsx +159 -8
  35. package/button/Button.test.js +1 -1
  36. package/button/types.d.ts +5 -5
  37. package/card/Card.js +41 -44
  38. package/card/Card.stories.tsx +12 -13
  39. package/card/Card.test.js +1 -1
  40. package/card/types.d.ts +1 -0
  41. package/checkbox/Checkbox.d.ts +2 -2
  42. package/checkbox/Checkbox.js +97 -101
  43. package/checkbox/Checkbox.stories.tsx +131 -59
  44. package/checkbox/Checkbox.test.js +94 -17
  45. package/checkbox/types.d.ts +4 -0
  46. package/chip/Chip.js +28 -49
  47. package/chip/Chip.stories.tsx +121 -26
  48. package/chip/Chip.test.js +3 -5
  49. package/chip/types.d.ts +1 -1
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +4 -4
  55. package/common/variables.d.ts +1482 -0
  56. package/common/variables.js +1095 -1106
  57. package/date-input/Calendar.d.ts +4 -0
  58. package/date-input/Calendar.js +258 -0
  59. package/date-input/DateInput.js +136 -236
  60. package/date-input/DateInput.stories.tsx +199 -33
  61. package/date-input/DateInput.test.js +494 -138
  62. package/date-input/DatePicker.d.ts +4 -0
  63. package/date-input/DatePicker.js +146 -0
  64. package/date-input/Icons.d.ts +6 -0
  65. package/date-input/Icons.js +75 -0
  66. package/date-input/YearPicker.d.ts +4 -0
  67. package/date-input/YearPicker.js +126 -0
  68. package/date-input/types.d.ts +51 -0
  69. package/dialog/Dialog.js +80 -69
  70. package/dialog/Dialog.stories.tsx +230 -123
  71. package/dialog/Dialog.test.js +334 -5
  72. package/dialog/types.d.ts +1 -0
  73. package/dropdown/Dropdown.d.ts +1 -1
  74. package/dropdown/Dropdown.js +246 -249
  75. package/dropdown/Dropdown.stories.tsx +245 -56
  76. package/dropdown/Dropdown.test.js +507 -110
  77. package/dropdown/DropdownMenu.d.ts +4 -0
  78. package/dropdown/DropdownMenu.js +74 -0
  79. package/dropdown/DropdownMenuItem.d.ts +4 -0
  80. package/dropdown/DropdownMenuItem.js +79 -0
  81. package/dropdown/types.d.ts +23 -3
  82. package/file-input/FileInput.d.ts +2 -2
  83. package/file-input/FileInput.js +180 -223
  84. package/file-input/FileInput.stories.tsx +122 -11
  85. package/file-input/FileInput.test.js +14 -14
  86. package/file-input/FileItem.d.ts +4 -14
  87. package/file-input/FileItem.js +44 -66
  88. package/file-input/types.d.ts +17 -0
  89. package/flex/Flex.d.ts +4 -0
  90. package/flex/Flex.js +71 -0
  91. package/flex/Flex.stories.tsx +112 -0
  92. package/flex/types.d.ts +97 -0
  93. package/footer/Footer.js +12 -12
  94. package/footer/Footer.stories.tsx +99 -1
  95. package/footer/Footer.test.js +14 -26
  96. package/footer/Icons.js +1 -1
  97. package/footer/types.d.ts +2 -1
  98. package/grid/Grid.d.ts +7 -0
  99. package/grid/Grid.js +91 -0
  100. package/grid/Grid.stories.tsx +219 -0
  101. package/grid/types.d.ts +115 -0
  102. package/header/Header.d.ts +3 -2
  103. package/header/Header.js +95 -92
  104. package/header/Header.stories.tsx +152 -9
  105. package/header/Header.test.js +2 -2
  106. package/header/Icons.js +2 -2
  107. package/header/types.d.ts +1 -0
  108. package/heading/Heading.js +1 -1
  109. package/heading/Heading.test.js +1 -1
  110. package/inset/Inset.js +1 -34
  111. package/inset/Inset.stories.tsx +37 -36
  112. package/inset/types.d.ts +1 -1
  113. package/layout/ApplicationLayout.d.ts +16 -6
  114. package/layout/ApplicationLayout.js +71 -118
  115. package/layout/ApplicationLayout.stories.tsx +84 -93
  116. package/layout/Icons.d.ts +5 -0
  117. package/layout/Icons.js +13 -2
  118. package/layout/SidenavContext.d.ts +5 -0
  119. package/layout/SidenavContext.js +19 -0
  120. package/layout/types.d.ts +19 -35
  121. package/link/Link.d.ts +2 -2
  122. package/link/Link.js +26 -52
  123. package/link/Link.stories.tsx +73 -6
  124. package/link/Link.test.js +2 -4
  125. package/link/types.d.ts +5 -6
  126. package/main.d.ts +8 -10
  127. package/main.js +42 -52
  128. package/nav-tabs/NavTabs.d.ts +8 -0
  129. package/nav-tabs/NavTabs.js +122 -0
  130. package/nav-tabs/NavTabs.stories.tsx +274 -0
  131. package/nav-tabs/NavTabs.test.js +82 -0
  132. package/nav-tabs/Tab.d.ts +4 -0
  133. package/nav-tabs/Tab.js +146 -0
  134. package/nav-tabs/types.d.ts +52 -0
  135. package/number-input/NumberInput.test.js +44 -8
  136. package/number-input/types.d.ts +1 -1
  137. package/package.json +17 -21
  138. package/paginator/Icons.d.ts +5 -0
  139. package/paginator/Icons.js +16 -28
  140. package/paginator/Paginator.js +20 -49
  141. package/paginator/Paginator.stories.tsx +24 -0
  142. package/paginator/Paginator.test.js +91 -39
  143. package/paragraph/Paragraph.d.ts +5 -0
  144. package/paragraph/Paragraph.js +38 -0
  145. package/paragraph/Paragraph.stories.tsx +44 -0
  146. package/password-input/PasswordInput.js +7 -4
  147. package/password-input/PasswordInput.test.js +15 -15
  148. package/password-input/types.d.ts +1 -1
  149. package/progress-bar/ProgressBar.js +61 -55
  150. package/progress-bar/ProgressBar.stories.jsx +47 -12
  151. package/progress-bar/ProgressBar.test.js +68 -23
  152. package/quick-nav/QuickNav.js +75 -22
  153. package/quick-nav/QuickNav.stories.tsx +145 -26
  154. package/quick-nav/types.d.ts +1 -1
  155. package/radio-group/Radio.d.ts +1 -1
  156. package/radio-group/Radio.js +46 -31
  157. package/radio-group/RadioGroup.js +37 -36
  158. package/radio-group/RadioGroup.stories.tsx +132 -18
  159. package/radio-group/RadioGroup.test.js +124 -97
  160. package/radio-group/types.d.ts +2 -2
  161. package/resultsetTable/Icons.d.ts +7 -0
  162. package/resultsetTable/Icons.js +51 -0
  163. package/resultsetTable/ResultsetTable.js +49 -108
  164. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  165. package/resultsetTable/ResultsetTable.test.js +61 -42
  166. package/resultsetTable/types.d.ts +1 -1
  167. package/select/Listbox.d.ts +1 -1
  168. package/select/Listbox.js +37 -16
  169. package/select/Option.js +11 -24
  170. package/select/Select.js +127 -116
  171. package/select/Select.stories.tsx +522 -133
  172. package/select/Select.test.js +474 -303
  173. package/select/types.d.ts +3 -6
  174. package/sidenav/Icons.d.ts +7 -0
  175. package/sidenav/Icons.js +51 -0
  176. package/sidenav/Sidenav.d.ts +6 -5
  177. package/sidenav/Sidenav.js +146 -44
  178. package/sidenav/Sidenav.stories.tsx +251 -151
  179. package/sidenav/Sidenav.test.js +25 -37
  180. package/sidenav/types.d.ts +52 -26
  181. package/slider/Slider.d.ts +2 -2
  182. package/slider/Slider.js +121 -97
  183. package/slider/Slider.stories.tsx +64 -1
  184. package/slider/Slider.test.js +122 -22
  185. package/slider/types.d.ts +4 -0
  186. package/spinner/Spinner.js +18 -24
  187. package/spinner/Spinner.stories.jsx +53 -27
  188. package/spinner/Spinner.test.js +1 -1
  189. package/switch/Switch.d.ts +2 -2
  190. package/switch/Switch.js +140 -70
  191. package/switch/Switch.stories.tsx +41 -30
  192. package/switch/Switch.test.js +145 -18
  193. package/switch/types.d.ts +4 -0
  194. package/table/Table.js +3 -3
  195. package/table/Table.stories.jsx +80 -1
  196. package/table/Table.test.js +2 -2
  197. package/tabs/Tab.d.ts +4 -0
  198. package/tabs/Tab.js +132 -0
  199. package/tabs/Tabs.js +358 -108
  200. package/tabs/Tabs.stories.tsx +119 -5
  201. package/tabs/Tabs.test.js +220 -10
  202. package/tabs/types.d.ts +13 -3
  203. package/tag/Tag.js +8 -10
  204. package/tag/Tag.stories.tsx +14 -1
  205. package/tag/Tag.test.js +1 -1
  206. package/tag/types.d.ts +1 -1
  207. package/text-input/Icons.d.ts +8 -0
  208. package/text-input/Icons.js +60 -0
  209. package/text-input/Suggestion.d.ts +4 -0
  210. package/text-input/Suggestion.js +84 -0
  211. package/text-input/Suggestions.d.ts +4 -0
  212. package/text-input/Suggestions.js +134 -0
  213. package/text-input/TextInput.js +219 -342
  214. package/text-input/TextInput.stories.tsx +280 -185
  215. package/text-input/TextInput.test.js +737 -726
  216. package/text-input/types.d.ts +33 -2
  217. package/textarea/Textarea.js +13 -23
  218. package/textarea/Textarea.stories.jsx +60 -1
  219. package/textarea/Textarea.test.js +2 -4
  220. package/textarea/types.d.ts +1 -1
  221. package/toggle-group/ToggleGroup.d.ts +2 -2
  222. package/toggle-group/ToggleGroup.js +7 -4
  223. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  224. package/toggle-group/ToggleGroup.test.js +1 -1
  225. package/toggle-group/types.d.ts +2 -2
  226. package/typography/Typography.d.ts +4 -0
  227. package/typography/Typography.js +32 -0
  228. package/typography/Typography.stories.tsx +198 -0
  229. package/typography/types.d.ts +18 -0
  230. package/typography/types.js +5 -0
  231. package/useTheme.d.ts +1234 -1
  232. package/useTheme.js +1 -1
  233. package/useTranslatedLabels.d.ts +85 -0
  234. package/useTranslatedLabels.js +20 -0
  235. package/utils/BaseTypography.d.ts +21 -0
  236. package/utils/BaseTypography.js +108 -0
  237. package/utils/FocusLock.d.ts +13 -0
  238. package/utils/FocusLock.js +138 -0
  239. package/wizard/Wizard.js +37 -42
  240. package/wizard/Wizard.stories.tsx +40 -1
  241. package/wizard/Wizard.test.js +1 -1
  242. package/wizard/types.d.ts +3 -3
  243. package/common/RequiredComponent.js +0 -32
  244. package/list/List.d.ts +0 -4
  245. package/list/List.js +0 -47
  246. package/list/List.stories.tsx +0 -95
  247. package/list/types.d.ts +0 -7
  248. package/radio/Radio.d.ts +0 -4
  249. package/radio/Radio.js +0 -173
  250. package/radio/Radio.stories.tsx +0 -192
  251. package/radio/Radio.test.js +0 -71
  252. package/radio/types.d.ts +0 -54
  253. package/row/Row.d.ts +0 -3
  254. package/row/Row.js +0 -127
  255. package/row/Row.stories.tsx +0 -237
  256. package/row/types.d.ts +0 -28
  257. package/stack/Stack.d.ts +0 -3
  258. package/stack/Stack.js +0 -97
  259. package/stack/Stack.stories.tsx +0 -164
  260. package/stack/types.d.ts +0 -24
  261. package/text/Text.d.ts +0 -7
  262. package/text/Text.js +0 -30
  263. package/text/Text.stories.tsx +0 -19
  264. /package/{list → bulleted-list}/types.js +0 -0
  265. /package/{radio → flex}/types.js +0 -0
  266. /package/{row → grid}/types.js +0 -0
  267. /package/{stack → nav-tabs}/types.js +0 -0
package/package.json CHANGED
@@ -1,40 +1,33 @@
1
1
  {
2
2
  "name": "@dxc-technology/halstack-react",
3
- "version": "0.0.0-0af2013",
3
+ "version": "0.0.0-0bb6041",
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/dayjs": "^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",
21
+ "@radix-ui/react-popover": "0.1.6",
27
22
  "@types/styled-components": "^5.1.24",
28
23
  "@types/uuid": "^8.3.4",
29
24
  "color": "^3.1.3",
30
25
  "dayjs": "^1.11.1",
31
- "prop-types": "^15.7.2",
32
- "rgb-hex": "^3.0.0",
33
26
  "slugify": "^1.6.5",
34
27
  "uuid": "^8.3.2"
35
28
  },
36
29
  "scripts": {
37
- "test": "jest",
30
+ "test": "jest --env=jsdom",
38
31
  "test:watch": "npm test -- --watch --coverage",
39
32
  "build": "babel src --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose && node ../scripts/build/copy-package.js && tsc ",
40
33
  "build:watch": "babel src --watch --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose",
@@ -55,9 +48,10 @@
55
48
  "@storybook/addon-links": "^6.4.9",
56
49
  "@storybook/react": "^6.4.9",
57
50
  "@storybook/testing-library": "0.0.7",
58
- "@testing-library/react": "^11.2.5",
59
- "@testing-library/user-event": "^12.6.3",
60
- "@types/react": "16.9.5",
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",
61
55
  "babel-jest": "^24.8.0",
62
56
  "babel-loader": "^8.0.6",
63
57
  "chromatic": "^6.3.3",
@@ -71,9 +65,10 @@
71
65
  "eslint-plugin-react-hooks": "^4.2.0",
72
66
  "eslint-plugin-storybook": "^0.5.5",
73
67
  "identity-obj-proxy": "^3.0.0",
74
- "jest": "^25.5.4",
75
- "react": "^17.0.1",
76
- "react-dom": "^17.0.1",
68
+ "jest": "^29.2.2",
69
+ "jest-environment-jsdom": "^29.3.1",
70
+ "react": "^18.x",
71
+ "react-dom": "^18.x",
77
72
  "react-test-renderer": "^16.8.6",
78
73
  "storybook-addon-pseudo-states": "^1.0.0",
79
74
  "styled-components": "^5.0.1",
@@ -83,7 +78,8 @@
83
78
  "moduleNameMapper": {
84
79
  "\\.(css|less|scss|sass)$": "identity-obj-proxy",
85
80
  "\\.(svg)$": "<rootDir>/test/mocks/svgMock.js",
86
- "\\.(png)$": "<rootDir>/test/mocks/pngMock.js"
81
+ "\\.(png)$": "<rootDir>/test/mocks/pngMock.js",
82
+ "^uuid$": "uuid"
87
83
  }
88
84
  }
89
85
  }
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const firstIcon: JSX.Element;
3
+ export declare const previousIcon: JSX.Element;
4
+ export declare const nextIcon: JSX.Element;
5
+ export declare const lastIcon: JSX.Element;
@@ -11,56 +11,44 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var firstIcon = /*#__PURE__*/_react["default"].createElement("svg", {
13
13
  xmlns: "http://www.w3.org/2000/svg",
14
- width: "12.41",
15
- height: "12",
16
- viewBox: "0 0 12.41 12"
14
+ height: "24",
15
+ width: "24",
16
+ fill: "currentColor"
17
17
  }, /*#__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)"
18
+ d: "M6 18V6h2v12Zm11 0-6-6 6-6 1.4 1.4-4.6 4.6 4.6 4.6Z"
22
19
  }));
23
20
 
24
21
  exports.firstIcon = firstIcon;
25
22
 
26
23
  var previousIcon = /*#__PURE__*/_react["default"].createElement("svg", {
27
24
  xmlns: "http://www.w3.org/2000/svg",
28
- width: "7.41",
29
- height: "12",
30
- viewBox: "0 0 7.41 12"
25
+ height: "24",
26
+ width: "24",
27
+ fill: "currentColor"
31
28
  }, /*#__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)"
29
+ d: "m14 18-6-6 6-6 1.4 1.4-4.6 4.6 4.6 4.6Z"
36
30
  }));
37
31
 
38
32
  exports.previousIcon = previousIcon;
39
33
 
40
34
  var nextIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
35
  xmlns: "http://www.w3.org/2000/svg",
42
- width: "7.41",
43
- height: "12",
44
- viewBox: "0 0 7.41 12"
36
+ height: "24",
37
+ width: "24",
38
+ fill: "currentColor"
45
39
  }, /*#__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)"
40
+ d: "M9.4 18 8 16.6l4.6-4.6L8 7.4 9.4 6l6 6Z"
50
41
  }));
51
42
 
52
43
  exports.nextIcon = nextIcon;
53
44
 
54
45
  var lastIcon = /*#__PURE__*/_react["default"].createElement("svg", {
55
46
  xmlns: "http://www.w3.org/2000/svg",
56
- width: "12.41",
57
- height: "12",
58
- viewBox: "0 0 12.41 12"
47
+ height: "24",
48
+ width: "24",
49
+ fill: "currentColor"
59
50
  }, /*#__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)"
51
+ d: "m7 18-1.4-1.4 4.6-4.6-4.6-4.6L7 6l6 6Zm9 0V6h2v12Z"
64
52
  }));
65
53
 
66
54
  exports.lastIcon = lastIcon;
@@ -17,6 +17,8 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
17
 
18
18
  var _useTheme = _interopRequireDefault(require("../useTheme"));
19
19
 
20
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
21
+
20
22
  var _Button = _interopRequireDefault(require("../button/Button"));
21
23
 
22
24
  var _Select = _interopRequireDefault(require("../select/Select"));
@@ -25,7 +27,7 @@ var _Icons = require("./Icons");
25
27
 
26
28
  var _BackgroundColorContext = require("../BackgroundColorContext");
27
29
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
29
31
 
30
32
  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
33
 
@@ -44,18 +46,17 @@ var DxcPaginator = function DxcPaginator(_ref) {
44
46
  itemsPerPageFunction = _ref.itemsPerPageFunction,
45
47
  _ref$tabIndex = _ref.tabIndex,
46
48
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
47
- var totalPages = Math.ceil(totalItems / itemsPerPage);
49
+ var totalPages = itemsPerPage > 0 && Math.ceil(totalItems / itemsPerPage);
48
50
  var currentPageInternal = currentPage === -1 ? totalPages : currentPage;
49
51
  var minItemsPerPage = currentPageInternal === 1 || currentPageInternal === 0 ? currentPageInternal : (currentPageInternal - 1) * itemsPerPage + 1;
50
52
  var maxItemsPerPage = minItemsPerPage - 1 + itemsPerPage > totalItems ? totalItems : minItemsPerPage - 1 + itemsPerPage;
51
53
  var colorsTheme = (0, _useTheme["default"])();
54
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
52
55
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
53
56
  theme: colorsTheme.paginator
54
57
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
55
58
  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"], {
59
+ }, /*#__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
60
  options: itemsPerPageOptions.map(function (num) {
60
61
  return {
61
62
  label: num.toString(),
@@ -68,33 +69,23 @@ var DxcPaginator = function DxcPaginator(_ref) {
68
69
  value: itemsPerPage.toString(),
69
70
  size: "fillParent",
70
71
  tabIndex: tabIndex
71
- }))), /*#__PURE__*/_react["default"].createElement(TotalItemsContainer, null, minItemsPerPage, " to ", maxItemsPerPage, " of ", totalItems), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
72
- size: "small",
72
+ }))), /*#__PURE__*/_react["default"].createElement(TotalItemsContainer, null, translatedLabels.paginator.minToMaxOfText(minItemsPerPage, maxItemsPerPage, totalItems)), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
73
73
  mode: "secondary",
74
74
  disabled: currentPageInternal === 1 || currentPageInternal === 0,
75
- margin: {
76
- left: "xxsmall",
77
- right: "xxsmall"
78
- },
79
75
  icon: _Icons.firstIcon,
80
76
  tabIndex: tabIndex,
81
77
  onClick: function onClick() {
82
78
  onPageChange(1);
83
79
  }
84
80
  }), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
85
- size: "small",
86
81
  mode: "secondary",
87
82
  disabled: currentPageInternal === 1 || currentPageInternal === 0,
88
- margin: {
89
- left: "xxsmall",
90
- right: "xxsmall"
91
- },
92
83
  icon: _Icons.previousIcon,
93
84
  tabIndex: tabIndex,
94
85
  onClick: function onClick() {
95
86
  onPageChange(currentPage - 1);
96
87
  }
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"], {
88
+ }), 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
89
  options: Array.from(Array(totalPages), function (e, num) {
99
90
  return {
100
91
  label: (num + 1).toString(),
@@ -107,27 +98,17 @@ var DxcPaginator = function DxcPaginator(_ref) {
107
98
  value: currentPage.toString(),
108
99
  size: "fillParent",
109
100
  tabIndex: tabIndex
110
- }))) || /*#__PURE__*/_react["default"].createElement(TextContainer, null, "Page: ", currentPageInternal, " of ", totalPages), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
111
- size: "small",
101
+ }))) : /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.paginator.pageOfText(currentPageInternal, totalPages)), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
112
102
  mode: "secondary",
113
103
  disabled: currentPageInternal === totalPages,
114
- margin: {
115
- left: "xxsmall",
116
- right: "xxsmall"
117
- },
118
104
  icon: _Icons.nextIcon,
119
105
  tabIndex: tabIndex,
120
106
  onClick: function onClick() {
121
107
  onPageChange(currentPage + 1);
122
108
  }
123
109
  }), onPageChange && /*#__PURE__*/_react["default"].createElement(_Button["default"], {
124
- size: "small",
125
110
  mode: "secondary",
126
111
  disabled: currentPageInternal === totalPages,
127
- margin: {
128
- left: "xxsmall",
129
- right: "xxsmall"
130
- },
131
112
  icon: _Icons.lastIcon,
132
113
  tabIndex: tabIndex,
133
114
  onClick: function onClick() {
@@ -136,11 +117,7 @@ var DxcPaginator = function DxcPaginator(_ref) {
136
117
  })))));
137
118
  };
138
119
 
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) {
120
+ 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
121
  return props.theme.fontFamily;
145
122
  }, function (props) {
146
123
  return props.theme.fontSize;
@@ -154,19 +131,23 @@ var DxcPaginatorContainer = _styledComponents["default"].div(_templateObject ||
154
131
  return props.theme.backgroundColor;
155
132
  }, function (props) {
156
133
  return props.theme.fontColor;
134
+ }, function (props) {
135
+ return props.theme.verticalPadding;
136
+ }, function (props) {
137
+ return props.theme.horizontalPadding;
157
138
  });
158
139
 
159
- var SelectContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n max-width: 100px;\n"])));
140
+ var SelectContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n min-width: 5.25rem;\n"])));
160
141
 
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) {
142
+ 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
143
  return props.theme.itemsPerPageSelectorMarginRight;
163
144
  }, function (props) {
164
145
  return props.theme.itemsPerPageSelectorMarginLeft;
165
146
  });
166
147
 
167
- var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 15px;\n"])));
148
+ var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n"])));
168
149
 
169
- var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 10px;\n margin-left: 10px;\n"])));
150
+ var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left: 0.5rem;\n"])));
170
151
 
171
152
  var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
172
153
  return props.theme.totalItemsContainerMarginRight;
@@ -174,19 +155,9 @@ var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 ||
174
155
  return props.theme.totalItemsContainerMarginLeft;
175
156
  });
176
157
 
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
- });
158
+ 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"])));
188
159
 
189
- var TextContainer = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])([""])));
160
+ var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: 0.5rem;\n"])));
190
161
 
191
162
  var _default = DxcPaginator;
192
163
  exports["default"] = _default;
@@ -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
  );