@dxc-technology/halstack-react 0.0.0-453c87a → 0.0.0-456a6f5

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 (176) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1329 -5
  4. package/HalstackContext.js +113 -72
  5. package/accordion/Accordion.js +6 -11
  6. package/accordion/Accordion.stories.tsx +52 -3
  7. package/accordion/Accordion.test.js +1 -1
  8. package/accordion/types.d.ts +3 -3
  9. package/accordion-group/AccordionGroup.js +2 -2
  10. package/accordion-group/AccordionGroup.test.js +1 -1
  11. package/accordion-group/types.d.ts +2 -2
  12. package/alert/Alert.js +4 -8
  13. package/alert/Alert.stories.tsx +28 -0
  14. package/alert/Alert.test.js +1 -1
  15. package/bleed/Bleed.stories.tsx +1 -0
  16. package/box/Box.js +3 -5
  17. package/box/Box.stories.tsx +15 -0
  18. package/box/Box.test.js +1 -1
  19. package/bulleted-list/BulletedList.js +4 -2
  20. package/bulleted-list/BulletedList.stories.tsx +7 -1
  21. package/bulleted-list/types.d.ts +31 -4
  22. package/button/Button.js +2 -3
  23. package/button/Button.stories.tsx +102 -11
  24. package/button/Button.test.js +1 -1
  25. package/button/types.d.ts +3 -3
  26. package/card/Card.js +12 -13
  27. package/card/Card.stories.tsx +12 -13
  28. package/card/Card.test.js +1 -1
  29. package/checkbox/Checkbox.js +3 -3
  30. package/checkbox/Checkbox.stories.tsx +52 -0
  31. package/checkbox/Checkbox.test.js +1 -1
  32. package/checkbox/types.d.ts +2 -2
  33. package/chip/Chip.js +25 -34
  34. package/chip/Chip.stories.tsx +80 -17
  35. package/chip/Chip.test.js +3 -5
  36. package/common/OpenSans.css +68 -80
  37. package/common/coreTokens.d.ts +146 -0
  38. package/common/coreTokens.js +167 -0
  39. package/common/utils.d.ts +1 -0
  40. package/common/utils.js +4 -4
  41. package/common/variables.d.ts +1482 -0
  42. package/common/variables.js +963 -1114
  43. package/date-input/Calendar.js +24 -12
  44. package/date-input/DateInput.stories.tsx +67 -0
  45. package/date-input/DatePicker.js +26 -12
  46. package/date-input/YearPicker.js +20 -10
  47. package/dialog/Dialog.js +61 -74
  48. package/dialog/Dialog.stories.tsx +211 -159
  49. package/dialog/Dialog.test.js +302 -3
  50. package/dialog/types.d.ts +2 -2
  51. package/dropdown/Dropdown.js +2 -3
  52. package/dropdown/Dropdown.stories.tsx +200 -82
  53. package/dropdown/Dropdown.test.js +3 -2
  54. package/dropdown/DropdownMenu.js +12 -18
  55. package/dropdown/DropdownMenuItem.js +4 -17
  56. package/dropdown/types.d.ts +3 -3
  57. package/file-input/FileInput.js +4 -8
  58. package/file-input/FileInput.stories.tsx +85 -2
  59. package/file-input/FileInput.test.js +1 -42
  60. package/file-input/FileItem.js +1 -0
  61. package/flex/Flex.js +4 -2
  62. package/flex/Flex.stories.tsx +35 -26
  63. package/flex/types.d.ts +70 -5
  64. package/footer/Footer.js +6 -8
  65. package/footer/Footer.stories.tsx +91 -0
  66. package/footer/Footer.test.js +14 -26
  67. package/grid/Grid.d.ts +7 -0
  68. package/grid/Grid.js +91 -0
  69. package/grid/Grid.stories.tsx +219 -0
  70. package/grid/types.d.ts +115 -0
  71. package/header/Header.d.ts +3 -2
  72. package/header/Header.js +21 -23
  73. package/header/Header.stories.tsx +149 -6
  74. package/header/Header.test.js +2 -2
  75. package/header/types.d.ts +2 -2
  76. package/heading/Heading.js +1 -1
  77. package/heading/Heading.test.js +1 -1
  78. package/inset/Inset.stories.tsx +2 -1
  79. package/layout/ApplicationLayout.d.ts +3 -3
  80. package/layout/ApplicationLayout.js +1 -1
  81. package/layout/types.d.ts +2 -3
  82. package/link/Link.js +3 -3
  83. package/link/Link.stories.tsx +60 -0
  84. package/link/Link.test.js +2 -4
  85. package/link/types.d.ts +2 -2
  86. package/main.d.ts +3 -2
  87. package/main.js +9 -1
  88. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  89. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +89 -1
  90. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  91. package/{tabs-nav → nav-tabs}/Tab.js +32 -10
  92. package/nav-tabs/types.js +5 -0
  93. package/number-input/NumberInput.test.js +1 -1
  94. package/package.json +2 -2
  95. package/paginator/Paginator.js +1 -3
  96. package/paginator/Paginator.stories.tsx +24 -0
  97. package/paginator/Paginator.test.js +44 -47
  98. package/paragraph/Paragraph.d.ts +3 -4
  99. package/paragraph/Paragraph.js +5 -5
  100. package/password-input/PasswordInput.test.js +1 -1
  101. package/progress-bar/ProgressBar.d.ts +2 -2
  102. package/progress-bar/ProgressBar.js +5 -5
  103. package/progress-bar/ProgressBar.stories.jsx +35 -2
  104. package/progress-bar/ProgressBar.test.js +1 -1
  105. package/progress-bar/types.d.ts +4 -3
  106. package/quick-nav/QuickNav.stories.tsx +14 -0
  107. package/radio-group/RadioGroup.stories.tsx +131 -18
  108. package/radio-group/RadioGroup.test.js +1 -1
  109. package/resultsetTable/ResultsetTable.js +2 -2
  110. package/resultsetTable/ResultsetTable.test.js +18 -23
  111. package/resultsetTable/types.d.ts +3 -3
  112. package/select/Listbox.d.ts +1 -1
  113. package/select/Listbox.js +5 -34
  114. package/select/Option.js +3 -14
  115. package/select/Select.js +56 -35
  116. package/select/Select.stories.tsx +475 -187
  117. package/select/Select.test.js +76 -81
  118. package/select/types.d.ts +2 -2
  119. package/sidenav/Icons.d.ts +7 -0
  120. package/sidenav/Icons.js +51 -0
  121. package/sidenav/Sidenav.d.ts +2 -2
  122. package/sidenav/Sidenav.js +66 -94
  123. package/sidenav/Sidenav.stories.tsx +110 -17
  124. package/sidenav/types.d.ts +21 -18
  125. package/slider/Slider.js +2 -3
  126. package/slider/Slider.stories.tsx +57 -0
  127. package/slider/Slider.test.js +1 -1
  128. package/slider/types.d.ts +2 -2
  129. package/spinner/Spinner.js +15 -21
  130. package/spinner/Spinner.stories.jsx +53 -27
  131. package/spinner/Spinner.test.js +1 -1
  132. package/switch/Switch.js +2 -2
  133. package/switch/Switch.stories.tsx +33 -0
  134. package/switch/Switch.test.js +1 -1
  135. package/switch/types.d.ts +2 -2
  136. package/table/Table.js +2 -2
  137. package/table/Table.stories.jsx +80 -1
  138. package/table/Table.test.js +1 -1
  139. package/tabs/Tab.js +9 -10
  140. package/tabs/Tabs.js +11 -17
  141. package/tabs/Tabs.stories.tsx +38 -0
  142. package/tabs/Tabs.test.js +4 -5
  143. package/tabs/types.d.ts +2 -2
  144. package/tag/Tag.js +7 -9
  145. package/tag/Tag.stories.tsx +14 -1
  146. package/tag/Tag.test.js +1 -1
  147. package/text-input/Suggestion.js +2 -2
  148. package/text-input/TextInput.js +4 -4
  149. package/text-input/TextInput.stories.tsx +69 -1
  150. package/text-input/TextInput.test.js +1 -2
  151. package/textarea/Textarea.js +3 -4
  152. package/textarea/Textarea.stories.jsx +60 -1
  153. package/textarea/Textarea.test.js +2 -4
  154. package/toggle-group/ToggleGroup.d.ts +2 -2
  155. package/toggle-group/ToggleGroup.js +7 -4
  156. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  157. package/toggle-group/ToggleGroup.test.js +1 -1
  158. package/toggle-group/types.d.ts +1 -1
  159. package/typography/Typography.d.ts +2 -2
  160. package/typography/Typography.js +14 -113
  161. package/typography/Typography.stories.tsx +1 -1
  162. package/useTheme.d.ts +1234 -1
  163. package/useTheme.js +1 -1
  164. package/useTranslatedLabels.d.ts +84 -1
  165. package/utils/BaseTypography.d.ts +21 -0
  166. package/utils/BaseTypography.js +108 -0
  167. package/utils/FocusLock.d.ts +13 -0
  168. package/utils/FocusLock.js +138 -0
  169. package/wizard/Wizard.js +2 -2
  170. package/wizard/Wizard.stories.tsx +20 -0
  171. package/wizard/Wizard.test.js +1 -1
  172. package/wizard/types.d.ts +5 -6
  173. /package/{tabs-nav → grid}/types.js +0 -0
  174. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  175. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  176. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
@@ -213,32 +213,44 @@ var Calendar = function Calendar(_ref) {
213
213
  })));
214
214
  };
215
215
 
216
- var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: ", ";\n"])), function (props) {
217
- return props.theme.dateInput.pickerWidth;
218
- });
219
-
220
- var WeekHeaderCell = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n font-family: ", ";\n font-size: 0.875rem;\n color: ", ";\n"])), function (props) {
216
+ var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: 292px;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
221
217
  return props.theme.dateInput.pickerFontFamily;
222
218
  }, function (props) {
223
- return props.theme.dateInput.pickerWeekFontColor;
219
+ return props.theme.dateInput.pickerFontSize;
220
+ }, function (props) {
221
+ return props.theme.dateInput.pickerFontColor;
222
+ }, function (props) {
223
+ return props.theme.dateInput.pickerFontWeight;
224
224
  });
225
225
 
226
+ var WeekHeaderCell = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
227
+
226
228
  var DayCellsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n justify-content: space-between;\n"])));
227
229
 
228
- var DayCell = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n font-size: 0.875rem;\n font-family: ", ";\n border: none;\n border-radius: 50%;\n cursor: pointer;\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: #4b1c7d;\n color: #ffffff;\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
230
+ var DayCell = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
229
231
  return props.theme.dateInput.pickerFontFamily;
232
+ }, function (props) {
233
+ return props.theme.dateInput.pickerFontSize;
234
+ }, function (props) {
235
+ return props.theme.dateInput.pickerFontColor;
236
+ }, function (props) {
237
+ return props.theme.dateInput.pickerFontWeight;
230
238
  }, function (props) {
231
239
  return props.theme.dateInput.pickerFocusColor;
232
240
  }, function (props) {
233
- return props.selected ? props.theme.dateInput.pickerSelectedDateBackgroundColor : props.theme.dateInput.pickerHoverDateBackgroundColor;
241
+ return props.selected ? props.theme.dateInput.pickerSelectedBackgroundColor : props.theme.dateInput.pickerHoverBackgroundColor;
242
+ }, function (props) {
243
+ return props.selected ? props.theme.dateInput.pickerSelectedFontColor : props.theme.dateInput.pickerHoverFontColor;
244
+ }, function (props) {
245
+ return props.theme.dateInput.pickerActiveBackgroundColor;
234
246
  }, function (props) {
235
- return props.selected ? props.theme.dateInput.pickerSelectedDateColor : props.theme.dateInput.pickerHoverDateFontColor;
247
+ return props.theme.dateInput.pickerActiveFontColor;
236
248
  }, function (props) {
237
- return props.isCurrentDay && !props.selected && "border: 1px solid #cbacec;";
249
+ return props.isCurrentDay && !props.selected && "border: ".concat(props.theme.dateInput.pickerCurrentDateBorderWidth, " solid ").concat(props.theme.dateInput.pickerCurrentDateBorderColor, ";");
238
250
  }, function (props) {
239
- return props.selected ? props.theme.dateInput.pickerSelectedDateBackgroundColor : "transparent";
251
+ return props.selected ? props.theme.dateInput.pickerSelectedBackgroundColor : "transparent";
240
252
  }, function (props) {
241
- return props.selected ? props.theme.dateInput.pickerSelectedDateColor : props.isCurrentDay ? props.theme.dateInput.pickerActualDateFontColor : !props.actualMonth ? "#999999" : props.theme.dateInput.pickerDayFontColor;
253
+ return props.selected ? props.theme.dateInput.pickerSelectedFontColor : props.isCurrentDay ? props.theme.dateInput.pickerCurrentDateFontColor : !props.actualMonth ? props.theme.dateInput.pickerNonCurrentMonthFontColor : props.theme.dateInput.pickerFontColor;
242
254
  });
243
255
 
244
256
  var _default = /*#__PURE__*/_react["default"].memo(Calendar);
@@ -11,12 +11,20 @@ import DarkContainer from "../../.storybook/components/DarkSection";
11
11
  import dayjs from "dayjs";
12
12
  import useTheme from "../useTheme";
13
13
  import { ThemeProvider } from "styled-components";
14
+ import { HalstackProvider } from "../HalstackContext";
14
15
 
15
16
  export default {
16
17
  title: "Date input",
17
18
  component: DxcDateInput,
18
19
  };
19
20
 
21
+ const opinionatedTheme = {
22
+ dateInput: {
23
+ baseColor: "#5f249f",
24
+ selectedFontColor: "#ffffff",
25
+ },
26
+ };
27
+
20
28
  const DateInputChromatic = () => (
21
29
  <>
22
30
  <ExampleContainer>
@@ -124,6 +132,65 @@ Chromatic.play = async ({ canvasElement }) => {
124
132
  await fireEvent.click(screen.getByText("April 1905"));
125
133
  };
126
134
 
135
+ const DateInputOpinionatedTheme = () => (
136
+ <>
137
+ <Title title="Opinionated theme" theme="light" level={2} />
138
+ <ExampleContainer>
139
+ <Title title="Enabled" theme="light" level={4} />
140
+ <HalstackProvider theme={opinionatedTheme}>
141
+ <DxcDateInput
142
+ label="Date input"
143
+ helperText="Help message"
144
+ format="dd/mm/yy"
145
+ placeholder
146
+ optional
147
+ defaultValue="10-10-2022"
148
+ />
149
+ </HalstackProvider>
150
+ </ExampleContainer>
151
+ <ExampleContainer>
152
+ <Title title="Disabled" theme="light" level={4} />
153
+ <HalstackProvider theme={opinionatedTheme}>
154
+ <DxcDateInput label="Date input" helperText="Help message" format="dd/mm/yy" placeholder optional />
155
+ </HalstackProvider>
156
+ </ExampleContainer>
157
+ <ExampleContainer>
158
+ <Title title="Invalid" theme="light" level={4} />
159
+ <HalstackProvider theme={opinionatedTheme}>
160
+ <DxcDateInput label="Error date input" error="Error message." placeholder />
161
+ </HalstackProvider>
162
+ </ExampleContainer>
163
+ <ExampleContainer expanded>
164
+ <Title title="Date picker" theme="light" level={4} />
165
+ <HalstackProvider theme={opinionatedTheme}>
166
+ <DxcDateInput label="Date input" defaultValue="06-04-1905" />
167
+ </HalstackProvider>
168
+ </ExampleContainer>
169
+ </>
170
+ );
171
+
172
+ export const DateInputOpinionated = DateInputOpinionatedTheme.bind({});
173
+ DateInputOpinionated.play = async ({ canvasElement }) => {
174
+ const canvas = within(canvasElement);
175
+ await userEvent.click(canvas.getAllByRole("combobox")[canvas.getAllByRole("combobox").length - 1]);
176
+ };
177
+
178
+ const YearPickerOpinionatedTheme = () => (
179
+ <ExampleContainer expanded>
180
+ <Title title="Year picker" theme="light" level={4} />
181
+ <HalstackProvider theme={opinionatedTheme}>
182
+ <DxcDateInput label="Date input" defaultValue="06-04-1905" />
183
+ </HalstackProvider>
184
+ </ExampleContainer>
185
+ );
186
+
187
+ export const YearPickerOpinionated = YearPickerOpinionatedTheme.bind({});
188
+ YearPickerOpinionated.play = async ({ canvasElement }) => {
189
+ const canvas = within(canvasElement);
190
+ await userEvent.click(canvas.getByRole("combobox"));
191
+ await fireEvent.click(screen.getByText("April 1905"));
192
+ };
193
+
127
194
  const DatePickerButtonStates = () => {
128
195
  const colorsTheme: any = useTheme();
129
196
  return (
@@ -101,30 +101,44 @@ var DxcDatePicker = function DxcDatePicker(_ref) {
101
101
  }));
102
102
  };
103
103
 
104
- var DatePicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 16px;\n background-color: ", ";\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n border: 1px solid #bfbfbf;\n border-radius: 4px;\n width: fit-content;\n"])), function (props) {
104
+ var DatePicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 16px;\n background-color: ", ";\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n border: ", ";\n border-radius: 4px;\n width: fit-content;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
105
105
  return props.theme.dateInput.pickerBackgroundColor;
106
+ }, function (props) {
107
+ return "".concat(props.theme.dateInput.pickerBorderWidth, " ").concat(props.theme.dateInput.pickerBorderStyle, "\n ").concat(props.theme.dateInput.pickerBorderColor);
108
+ }, function (props) {
109
+ return props.theme.dateInput.pickerFontFamily;
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerFontSize;
112
+ }, function (props) {
113
+ return props.theme.dateInput.pickerFontColor;
114
+ }, function (props) {
115
+ return props.theme.dateInput.pickerFontWeight;
106
116
  });
107
117
 
108
118
  var PickerHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n"])));
109
119
 
110
- var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0px;\n background-color: ", ";\n font-size: 1.5rem;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: #4b1c7d;\n color: #ffffff;\n }\n svg {\n width: 24px;\n height: 24px;\n }\n"])), function (props) {
111
- return props.theme.dateInput.pickerMonthArrowsBackgroundColor;
120
+ var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0px;\n color: ", ";\n background-color: ", ";\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", ";\n }\n svg {\n width: 24px;\n height: 24px;\n }\n"])), function (props) {
121
+ return props.theme.dateInput.pickerHeaderFontColor;
112
122
  }, function (props) {
113
- return props.theme.dateInput.pickerFocusColor;
123
+ return props.theme.dateInput.pickerHeaderBackgroundColor;
114
124
  }, function (props) {
115
- return props.theme.dateInput.pickerHoverDateBackgroundColor;
116
- });
117
-
118
- var HeaderYearTrigger = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 172px;\n color: ", ";\n background-color: transparent;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " solid 2px;\n }\n &:active {\n color: #ffffff;\n background-color: #4b1c7d;\n }\n"])), function (props) {
119
- return props.theme.dateInput.pickerMonthFontColor;
125
+ return props.theme.dateInput.pickerHeaderHoverFontColor;
126
+ }, function (props) {
127
+ return props.theme.dateInput.pickerHeaderHoverBackgroundColor;
120
128
  }, function (props) {
121
- return props.theme.dateInput.pickerHoverDateBackgroundColor;
129
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
122
130
  }, function (props) {
123
- return props.theme.dateInput.pickerFocusColor;
131
+ return props.theme.dateInput.pickerHeaderActiveFontColor;
132
+ }, function (props) {
133
+ return props.theme.dateInput.pickerHeaderActiveBackgroundColor;
124
134
  });
125
135
 
126
- var HeaderYearTriggerLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n font-size: 0.875rem;\n"])), function (props) {
136
+ var HeaderYearTrigger = (0, _styledComponents["default"])(HeaderButton)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n gap: 8px;\n height: 40px;\n width: 172px;\n"])));
137
+
138
+ var HeaderYearTriggerLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n font-size: ", ";\n"])), function (props) {
127
139
  return props.theme.dateInput.pickerFontFamily;
140
+ }, function (props) {
141
+ return props.theme.dateInput.pickerHeaderFontSize;
128
142
  });
129
143
 
130
144
  var _default = /*#__PURE__*/_react["default"].memo(DxcDatePicker);
@@ -93,22 +93,32 @@ var YearPicker = function YearPicker(_ref) {
93
93
  }));
94
94
  };
95
95
 
96
- var YearPickerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: center;\n overflow-y: scroll;\n width: ", ";\n height: 312px;\n padding: 2px 8px 8px 8px;\n"])), function (props) {
97
- return props.theme.dateInput.pickerWidth;
98
- });
96
+ var YearPickerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: center;\n overflow-y: scroll;\n width: 292px;\n height: 312px;\n padding: 2px 8px 8px 8px;\n"])));
99
97
 
100
- var YearPickerButton = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n min-height: 40px;\n font-size: 0.875rem;\n line-height: 21px;\n color: ", ";\n background-color: transparent;\n border: none;\n border-radius: 50px;\n cursor: pointer;\n\n ", "\n\n &:hover, &:focus, &:active {\n font-size: 1.5rem;\n line-height: 36px;\n }\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n color: ", ";\n outline: ", " solid 2px;\n }\n &:active {\n color: #ffffff;\n background-color: #4b1c7d !important;\n }\n"])), function (props) {
101
- return props.theme.dateInput.pickerYearFontColor;
98
+ var YearPickerButton = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n min-height: 40px;\n line-height: 21px;\n background-color: transparent;\n border: none;\n border-radius: 50px;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n ", "\n\n &:hover, &:focus, &:active {\n font-size: ", ";\n line-height: 36px;\n }\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n color: ", ";\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", " !important;\n }\n"])), function (props) {
99
+ return props.theme.dateInput.pickerFontFamily;
100
+ }, function (props) {
101
+ return props.theme.dateInput.pickerFontSize;
102
+ }, function (props) {
103
+ return props.theme.dateInput.pickerFontColor;
104
+ }, function (props) {
105
+ return props.theme.dateInput.pickerFontWeight;
106
+ }, function (props) {
107
+ return props.selected ? "font-size: ".concat(props.theme.dateInput.pickerInteractedYearFontSize, ";\n line-height: 36px;\n color: ").concat(props.theme.dateInput.pickerSelectedFontColor, " !important;\n background-color: ").concat(props.theme.dateInput.pickerSelectedBackgroundColor, " !important;") : props.isCurrentYear ? "border: 1px solid ".concat(props.theme.dateInput.pickerCurrentDateBorderColor, "; \n color: ").concat(props.theme.dateInput.pickerCurrentYearFontColor, ";") : "";
108
+ }, function (props) {
109
+ return props.theme.dateInput.pickerInteractedYearFontSize;
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerHoverFontColor;
102
112
  }, function (props) {
103
- return props.selected ? "font-size: 1.5rem;\n line-height: 36px;\n color: ".concat(props.theme.dateInput.pickerSelectedDateColor, " !important;\n background-color: ").concat(props.theme.dateInput.pickerSelectedDateBackgroundColor, " !important;") : props.isCurrentYear ? "border: 1px solid #cbacec; \n color: #5f249f;" : "";
113
+ return props.theme.dateInput.pickerHoverBackgroundColor;
104
114
  }, function (props) {
105
- return props.theme.dateInput.pickerHoverDateFontColor;
115
+ return props.theme.dateInput.pickerHoverFontColor;
106
116
  }, function (props) {
107
- return props.theme.dateInput.pickerHoverDateBackgroundColor;
117
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
108
118
  }, function (props) {
109
- return props.theme.dateInput.pickerHoverDateFontColor;
119
+ return props.theme.dateInput.pickerActiveFontColor;
110
120
  }, function (props) {
111
- return props.theme.dateInput.pickerFocusColor;
121
+ return props.theme.dateInput.pickerActiveBackgroundColor;
112
122
  });
113
123
 
114
124
  var _default = /*#__PURE__*/_react["default"].memo(YearPicker);
package/dialog/Dialog.js CHANGED
@@ -17,18 +17,38 @@ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
- var _variables = require("../common/variables.js");
20
+ var _variables = require("../common/variables");
21
21
 
22
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
24
  var _BackgroundColorContext = require("../BackgroundColorContext");
25
25
 
26
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
28
+ var _reactDom = require("react-dom");
29
+
30
+ var _FocusLock = _interopRequireDefault(require("../utils/FocusLock"));
31
+
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
27
33
 
28
34
  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); }
29
35
 
30
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
31
37
 
38
+ var closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
39
+ role: "img",
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ width: "24",
42
+ height: "24",
43
+ viewBox: "0 0 24 24",
44
+ fill: "currentColor"
45
+ }, /*#__PURE__*/_react["default"].createElement("path", {
46
+ d: "M0 0h24v24H0V0z",
47
+ fill: "none"
48
+ }), /*#__PURE__*/_react["default"].createElement("path", {
49
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
50
+ }));
51
+
32
52
  var DxcDialog = function DxcDialog(_ref) {
33
53
  var _ref$isCloseVisible = _ref.isCloseVisible,
34
54
  isCloseVisible = _ref$isCloseVisible === void 0 ? true : _ref$isCloseVisible,
@@ -42,37 +62,26 @@ var DxcDialog = function DxcDialog(_ref) {
42
62
  _ref$tabIndex = _ref.tabIndex,
43
63
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
44
64
  var colorsTheme = (0, _useTheme["default"])();
45
-
46
- var handleClose = function handleClose() {
47
- onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
48
- };
49
-
50
- var handleOverlayClick = function handleOverlayClick() {
51
- onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
52
- };
53
-
54
- var handleOnKeyDown = function handleOnKeyDown(event) {
55
- if (event.key === "Escape") {
56
- event.preventDefault();
57
- handleClose();
58
- }
59
- };
60
-
65
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
61
66
  (0, _react.useEffect)(function () {
62
- if (isCloseVisible) {
63
- window.addEventListener("keydown", handleOnKeyDown);
64
- }
67
+ var handleKeyDown = function handleKeyDown(event) {
68
+ if (event.key === "Escape") {
69
+ event.preventDefault();
70
+ onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
71
+ }
72
+ };
65
73
 
74
+ document.addEventListener("keydown", handleKeyDown);
66
75
  return function () {
67
- window.removeEventListener("keydown", handleOnKeyDown);
76
+ document.removeEventListener("keydown", handleKeyDown);
68
77
  };
69
- }, [isCloseVisible]);
78
+ }, [onCloseClick]);
70
79
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
71
80
  theme: colorsTheme.dialog
72
- }, /*#__PURE__*/_react["default"].createElement(BodyStyle, null), /*#__PURE__*/_react["default"].createElement(DialogContainer, {
73
- role: "presentation"
74
- }, overlay && /*#__PURE__*/_react["default"].createElement(Overlay, {
75
- onClick: handleOverlayClick
81
+ }, /*#__PURE__*/_react["default"].createElement(BodyStyle, null), /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react["default"].createElement(_FocusLock["default"], null, /*#__PURE__*/_react["default"].createElement(DialogContainer, null, overlay && /*#__PURE__*/_react["default"].createElement(Overlay, {
82
+ onClick: function onClick() {
83
+ onBackgroundClick === null || onBackgroundClick === void 0 ? void 0 : onBackgroundClick();
84
+ }
76
85
  }), /*#__PURE__*/_react["default"].createElement(Dialog, {
77
86
  role: "dialog",
78
87
  "aria-modal": overlay,
@@ -81,81 +90,59 @@ var DxcDialog = function DxcDialog(_ref) {
81
90
  padding: padding
82
91
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
83
92
  color: colorsTheme.dialog.backgroundColor
84
- }, children)), isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconContainer, {
85
- onClick: handleClose,
93
+ }, children)), isCloseVisible && /*#__PURE__*/_react["default"].createElement(CloseIconAction, {
94
+ onClick: function onClick() {
95
+ onCloseClick === null || onCloseClick === void 0 ? void 0 : onCloseClick();
96
+ },
97
+ "aria-label": translatedLabels.dialog.closeIconAriaLabel,
86
98
  tabIndex: tabIndex
87
- }, /*#__PURE__*/_react["default"].createElement(CloseIcon, {
88
- xmlns: "http://www.w3.org/2000/svg",
89
- width: "24",
90
- height: "24",
91
- viewBox: "0 0 24 24",
92
- fill: "currentColor"
93
- }, /*#__PURE__*/_react["default"].createElement("path", {
94
- d: "M0 0h24v24H0V0z",
95
- fill: "none"
96
- }), /*#__PURE__*/_react["default"].createElement("path", {
97
- d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
98
- }))))));
99
+ }, closeIcon)))), document.body));
99
100
  };
100
101
 
101
102
  var BodyStyle = (0, _styledComponents.createGlobalStyle)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n body {\n overflow: hidden;\n }\n"])));
102
103
 
103
- var DialogContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n inset: 0px;\n height: 100%;\n z-index: 1300;\n"])));
104
+ var DialogContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n z-index: 2147483647;\n"])));
104
105
 
105
- var Overlay = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n inset: 0px;\n height: 100%;\n background-color: ", ";\n opacity: ", ";\n"])), function (props) {
106
+ var Overlay = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n inset: 0;\n height: 100%;\n background-color: ", ";\n"])), function (props) {
106
107
  return props.theme.overlayColor;
107
- }, function (props) {
108
- return props.theme.overlayOpacity;
109
108
  });
110
109
 
111
- var Dialog = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n z-index: 1300;\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n ", "\n box-sizing: border-box;\n box-shadow: ", ";\n border-radius: 4px;\n position: relative;\n\n @media (min-width: ", "rem) {\n max-width: 80%;\n min-width: 800px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 92%;\n min-width: 92%;\n }\n"])), function (props) {
110
+ var Dialog = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n box-sizing: border-box;\n max-width: 80%;\n min-width: 696px;\n border-radius: 4px;\n background-color: ", ";\n ", "\n box-shadow: ", ";\n z-index: 2147483647;\n\n @media (max-width: ", "rem) {\n max-width: 92%;\n min-width: 92%;\n }\n"])), function (props) {
112
111
  return props.theme.backgroundColor;
113
112
  }, function (props) {
114
- return props.theme.fontFamily;
115
- }, function (props) {
116
- return props.theme.fontSize;
117
- }, function (props) {
118
- return props.theme.fontWeight;
119
- }, function (props) {
120
- return props.isCloseVisible && "min-height: 72px; padding-top: 24px;";
113
+ return props.isCloseVisible && "min-height: 72px;";
121
114
  }, function (props) {
122
115
  return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
123
- }, _variables.responsiveSizes.medium, _variables.responsiveSizes.medium);
116
+ }, _variables.responsiveSizes.medium);
124
117
 
125
- var Children = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
126
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : _variables.spaces["small"];
118
+ var CloseIconAction = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n position: absolute;\n top: 24px;\n right: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ", ";\n box-shadow: 0 0 0 2px transparent;\n color: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n cursor: pointer;\n z-index: 1;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px #0095ff;\n }\n &:hover {\n background-color: #f2f2f2;\n }\n &:active {\n background-color: #cccccc;\n }\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
119
+ return props.theme.closeIconBackgroundColor;
127
120
  }, function (props) {
128
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
121
+ return props.theme.closeIconColor;
129
122
  }, function (props) {
130
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
123
+ return props.theme.closeIconBorderRadius;
131
124
  }, function (props) {
132
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
125
+ return props.theme.closeIconBorderThickness;
133
126
  }, function (props) {
134
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
135
- });
136
-
137
- var CloseIconContainer = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n position: absolute;\n top: 20px;\n right: 20px;\n color: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
138
- return props.theme.closeIconColor;
127
+ return props.theme.closeIconBorderStyle;
128
+ }, function (props) {
129
+ return props.theme.closeIconBorderColor;
139
130
  }, function (props) {
140
131
  return props.theme.closeIconWidth;
141
132
  }, function (props) {
142
133
  return props.theme.closeIconHeight;
143
134
  });
144
135
 
145
- var CloseIcon = _styledComponents["default"].svg(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: ", ";\n height: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n"])), function (props) {
146
- return props.theme.closeIconBackgroundColor;
147
- }, function (props) {
148
- return props.theme.closeIconWidth;
149
- }, function (props) {
150
- return props.theme.closeIconHeight;
136
+ var Children = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
137
+ return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : _variables.spaces["small"];
151
138
  }, function (props) {
152
- return props.theme.closeIconBorderRadius;
139
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
153
140
  }, function (props) {
154
- return props.theme.closeIconBorderThickness;
141
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
155
142
  }, function (props) {
156
- return props.theme.closeIconBorderStyle;
143
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
157
144
  }, function (props) {
158
- return props.theme.closeIconBorderColor;
145
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
159
146
  });
160
147
 
161
148
  var _default = DxcDialog;