@dxc-technology/halstack-react 0.0.0-59b9187 → 0.0.0-5a4d834

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 (328) hide show
  1. package/BackgroundColorContext.js +1 -1
  2. package/HalstackContext.d.ts +41 -3
  3. package/HalstackContext.js +28 -18
  4. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  5. package/accordion/Accordion.accessibility.test.js +4 -4
  6. package/accordion/Accordion.js +6 -9
  7. package/accordion/Accordion.stories.tsx +4 -14
  8. package/accordion/Accordion.test.d.ts +1 -0
  9. package/accordion/Accordion.test.js +3 -3
  10. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  11. package/accordion-group/AccordionGroup.accessibility.test.js +11 -17
  12. package/accordion-group/AccordionGroup.js +1 -1
  13. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  14. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  15. package/accordion-group/AccordionGroup.test.js +5 -9
  16. package/accordion-group/AccordionGroupAccordion.js +1 -1
  17. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  18. package/action-icon/ActionIcon.accessibility.test.js +4 -4
  19. package/action-icon/ActionIcon.test.d.ts +1 -0
  20. package/action-icon/ActionIcon.test.js +1 -1
  21. package/alert/Alert.accessibility.test.d.ts +1 -0
  22. package/alert/Alert.accessibility.test.js +6 -6
  23. package/alert/Alert.js +7 -4
  24. package/alert/Alert.test.d.ts +1 -0
  25. package/alert/Alert.test.js +1 -1
  26. package/badge/Badge.accessibility.test.d.ts +1 -0
  27. package/badge/Badge.accessibility.test.js +5 -5
  28. package/badge/Badge.test.d.ts +1 -0
  29. package/badge/Badge.test.js +2 -2
  30. package/bar-chart/BarChart.d.ts +4 -0
  31. package/bar-chart/BarChart.js +152 -0
  32. package/bar-chart/BarChart.stories.tsx +281 -0
  33. package/bar-chart/BarChart.test.d.ts +1 -0
  34. package/bar-chart/BarChart.test.js +194 -0
  35. package/bar-chart/theme.d.ts +3 -0
  36. package/bar-chart/theme.js +31 -0
  37. package/bar-chart/types.d.ts +137 -0
  38. package/bar-chart/types.js +5 -0
  39. package/bleed/Bleed.stories.tsx +0 -1
  40. package/box/Box.accessibility.test.d.ts +1 -0
  41. package/box/Box.accessibility.test.js +3 -3
  42. package/box/Box.js +1 -1
  43. package/box/Box.test.d.ts +1 -0
  44. package/box/Box.test.js +1 -1
  45. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  46. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  47. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  48. package/breadcrumbs/Breadcrumbs.js +79 -0
  49. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  50. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  51. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  52. package/breadcrumbs/Item.d.ts +4 -0
  53. package/breadcrumbs/Item.js +52 -0
  54. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  55. package/breadcrumbs/dropdownTheme.js +62 -0
  56. package/breadcrumbs/types.d.ts +40 -0
  57. package/breadcrumbs/types.js +5 -0
  58. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  59. package/bulleted-list/BulletedList.accessibility.test.js +18 -6
  60. package/bulleted-list/BulletedList.js +1 -1
  61. package/button/Button.accessibility.test.d.ts +1 -0
  62. package/button/Button.accessibility.test.js +6 -6
  63. package/button/Button.js +1 -1
  64. package/button/Button.stories.tsx +3 -3
  65. package/button/Button.test.d.ts +1 -0
  66. package/button/Button.test.js +1 -1
  67. package/card/Card.accessibility.test.d.ts +1 -0
  68. package/card/Card.accessibility.test.js +3 -3
  69. package/card/Card.js +3 -2
  70. package/card/Card.stories.tsx +1 -1
  71. package/card/Card.test.d.ts +1 -0
  72. package/card/Card.test.js +1 -1
  73. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  74. package/checkbox/Checkbox.accessibility.test.js +5 -5
  75. package/checkbox/Checkbox.js +10 -13
  76. package/checkbox/Checkbox.test.d.ts +1 -0
  77. package/checkbox/Checkbox.test.js +1 -1
  78. package/chip/Chip.accessibility.test.d.ts +1 -0
  79. package/chip/Chip.accessibility.test.js +4 -4
  80. package/chip/Chip.js +3 -1
  81. package/chip/Chip.stories.tsx +1 -1
  82. package/chip/Chip.test.d.ts +1 -0
  83. package/chip/Chip.test.js +1 -1
  84. package/common/coreTokens.d.ts +0 -1
  85. package/common/coreTokens.js +3 -4
  86. package/common/variables.d.ts +47 -3
  87. package/common/variables.js +109 -71
  88. package/container/Container.stories.tsx +3 -3
  89. package/container/types.d.ts +113 -11
  90. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  91. package/contextual-menu/ContextualMenu.accessibility.test.js +15 -3
  92. package/contextual-menu/ContextualMenu.d.ts +3 -5
  93. package/contextual-menu/ContextualMenu.js +118 -53
  94. package/contextual-menu/ContextualMenu.stories.tsx +124 -75
  95. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  96. package/contextual-menu/ContextualMenu.test.js +200 -24
  97. package/contextual-menu/GroupItem.d.ts +4 -0
  98. package/contextual-menu/GroupItem.js +67 -0
  99. package/contextual-menu/ItemAction.d.ts +4 -0
  100. package/contextual-menu/ItemAction.js +88 -0
  101. package/contextual-menu/MenuItem.d.ts +4 -0
  102. package/contextual-menu/MenuItem.js +29 -0
  103. package/contextual-menu/SingleItem.d.ts +4 -0
  104. package/contextual-menu/SingleItem.js +38 -0
  105. package/contextual-menu/types.d.ts +54 -11
  106. package/date-input/Calendar.js +47 -31
  107. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  108. package/date-input/DateInput.accessibility.test.js +24 -11
  109. package/date-input/DateInput.js +27 -21
  110. package/date-input/DateInput.stories.tsx +18 -12
  111. package/date-input/DateInput.test.d.ts +1 -0
  112. package/date-input/DateInput.test.js +39 -39
  113. package/date-input/DatePicker.js +1 -1
  114. package/date-input/YearPicker.js +10 -5
  115. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  116. package/dialog/Dialog.accessibility.test.js +5 -5
  117. package/dialog/Dialog.js +3 -2
  118. package/dialog/Dialog.stories.tsx +8 -4
  119. package/dialog/Dialog.test.d.ts +1 -0
  120. package/dialog/Dialog.test.js +111 -48
  121. package/divider/Divider.accessibility.test.d.ts +1 -0
  122. package/divider/Divider.accessibility.test.js +2 -2
  123. package/divider/Divider.stories.tsx +2 -1
  124. package/divider/Divider.test.d.ts +1 -0
  125. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  126. package/dropdown/Dropdown.accessibility.test.js +12 -9
  127. package/dropdown/Dropdown.js +19 -37
  128. package/dropdown/Dropdown.stories.tsx +11 -11
  129. package/dropdown/Dropdown.test.d.ts +1 -0
  130. package/dropdown/Dropdown.test.js +101 -72
  131. package/dropdown/DropdownMenu.js +4 -4
  132. package/dropdown/DropdownMenuItem.js +2 -1
  133. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  134. package/file-input/FileInput.accessibility.test.js +30 -23
  135. package/file-input/FileInput.js +3 -8
  136. package/file-input/FileInput.test.d.ts +1 -0
  137. package/file-input/FileInput.test.js +44 -22
  138. package/file-input/FileItem.js +7 -3
  139. package/file-input/types.d.ts +0 -4
  140. package/footer/Footer.accessibility.test.d.ts +1 -0
  141. package/footer/Footer.accessibility.test.js +13 -5
  142. package/footer/Footer.js +1 -1
  143. package/footer/Footer.stories.tsx +12 -0
  144. package/footer/Footer.test.d.ts +1 -0
  145. package/footer/Footer.test.js +1 -1
  146. package/footer/Icons.js +2 -30
  147. package/grid/Grid.stories.tsx +3 -1
  148. package/header/Header.accessibility.test.d.ts +1 -0
  149. package/header/Header.accessibility.test.js +16 -6
  150. package/header/Header.js +3 -2
  151. package/header/Header.stories.tsx +17 -1
  152. package/header/Header.test.d.ts +1 -0
  153. package/header/Header.test.js +1 -1
  154. package/header/Icons.js +1 -6
  155. package/heading/Heading.accessibility.test.d.ts +1 -0
  156. package/heading/Heading.accessibility.test.js +3 -3
  157. package/heading/Heading.js +1 -1
  158. package/heading/Heading.test.d.ts +1 -0
  159. package/heading/Heading.test.js +1 -14
  160. package/icon/Icon.accessibility.test.d.ts +1 -0
  161. package/icon/Icon.accessibility.test.js +2 -2
  162. package/icon/Icon.js +1 -1
  163. package/icon/Icon.stories.tsx +1 -1
  164. package/image/Image.accessibility.test.d.ts +1 -0
  165. package/image/Image.accessibility.test.js +3 -3
  166. package/image/Image.js +1 -1
  167. package/layout/ApplicationLayout.js +4 -4
  168. package/link/Link.accessibility.test.d.ts +1 -0
  169. package/link/Link.accessibility.test.js +8 -12
  170. package/link/Link.js +1 -1
  171. package/link/Link.stories.tsx +2 -2
  172. package/link/Link.test.d.ts +1 -0
  173. package/link/Link.test.js +1 -1
  174. package/main.d.ts +3 -1
  175. package/main.js +15 -1
  176. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  177. package/nav-tabs/NavTabs.accessibility.test.js +3 -3
  178. package/nav-tabs/NavTabs.js +19 -4
  179. package/nav-tabs/NavTabs.stories.tsx +18 -3
  180. package/nav-tabs/NavTabs.test.d.ts +1 -0
  181. package/nav-tabs/NavTabs.test.js +9 -7
  182. package/nav-tabs/Tab.js +7 -7
  183. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  184. package/number-input/NumberInput.accessibility.test.js +9 -10
  185. package/number-input/NumberInput.js +6 -3
  186. package/number-input/NumberInput.stories.tsx +11 -16
  187. package/number-input/NumberInput.test.d.ts +1 -0
  188. package/number-input/NumberInput.test.js +6 -7
  189. package/package.json +27 -21
  190. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  191. package/paginator/Paginator.accessibility.test.js +4 -5
  192. package/paginator/Paginator.js +9 -5
  193. package/paginator/Paginator.test.d.ts +1 -0
  194. package/paginator/Paginator.test.js +2 -3
  195. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  196. package/paragraph/Paragraph.accessibility.test.js +2 -2
  197. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  198. package/password-input/PasswordInput.accessibility.test.js +7 -8
  199. package/password-input/PasswordInput.js +11 -7
  200. package/password-input/PasswordInput.stories.tsx +10 -1
  201. package/password-input/PasswordInput.test.d.ts +1 -0
  202. package/password-input/PasswordInput.test.js +6 -7
  203. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  204. package/progress-bar/ProgressBar.accessibility.test.js +3 -3
  205. package/progress-bar/ProgressBar.js +6 -4
  206. package/progress-bar/ProgressBar.test.d.ts +1 -0
  207. package/progress-bar/ProgressBar.test.js +1 -1
  208. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  209. package/quick-nav/QuickNav.accessibility.test.js +2 -2
  210. package/quick-nav/QuickNav.js +1 -1
  211. package/radio-group/Radio.js +6 -9
  212. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  213. package/radio-group/RadioGroup.accessibility.test.js +4 -4
  214. package/radio-group/RadioGroup.js +14 -16
  215. package/radio-group/RadioGroup.test.d.ts +1 -0
  216. package/radio-group/RadioGroup.test.js +3 -5
  217. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  218. package/resultset-table/ResultsetTable.accessibility.test.js +16 -6
  219. package/resultset-table/ResultsetTable.js +41 -13
  220. package/resultset-table/ResultsetTable.stories.tsx +14 -2
  221. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  222. package/resultset-table/ResultsetTable.test.js +103 -34
  223. package/resultset-table/types.d.ts +4 -3
  224. package/select/Listbox.d.ts +3 -3
  225. package/select/Listbox.js +29 -27
  226. package/select/Option.d.ts +3 -3
  227. package/select/Option.js +13 -8
  228. package/select/Select.accessibility.test.d.ts +1 -0
  229. package/select/Select.accessibility.test.js +18 -8
  230. package/select/Select.js +75 -190
  231. package/select/Select.stories.tsx +41 -20
  232. package/select/Select.test.d.ts +1 -0
  233. package/select/Select.test.js +42 -150
  234. package/select/selectUtils.d.ts +41 -0
  235. package/select/selectUtils.js +129 -0
  236. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  237. package/sidenav/Sidenav.accessibility.test.js +3 -3
  238. package/sidenav/Sidenav.js +1 -1
  239. package/sidenav/Sidenav.stories.tsx +1 -1
  240. package/sidenav/Sidenav.test.d.ts +1 -0
  241. package/sidenav/Sidenav.test.js +1 -1
  242. package/slider/Slider.accessibility.test.d.ts +1 -0
  243. package/slider/Slider.accessibility.test.js +5 -6
  244. package/slider/Slider.js +11 -13
  245. package/slider/Slider.stories.tsx +180 -0
  246. package/slider/Slider.test.d.ts +1 -0
  247. package/slider/Slider.test.js +13 -11
  248. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  249. package/spinner/Spinner.accessibility.test.js +6 -6
  250. package/spinner/Spinner.d.ts +1 -1
  251. package/spinner/Spinner.js +32 -47
  252. package/spinner/Spinner.test.d.ts +1 -0
  253. package/spinner/Spinner.test.js +1 -1
  254. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  255. package/status-light/StatusLight.accessibility.test.js +8 -8
  256. package/status-light/StatusLight.test.d.ts +1 -0
  257. package/status-light/StatusLight.test.js +1 -1
  258. package/switch/Switch.accessibility.test.d.ts +1 -0
  259. package/switch/Switch.accessibility.test.js +14 -5
  260. package/switch/Switch.js +6 -9
  261. package/switch/Switch.stories.tsx +12 -0
  262. package/switch/Switch.test.d.ts +1 -0
  263. package/switch/Switch.test.js +1 -1
  264. package/table/Table.accessibility.test.d.ts +1 -0
  265. package/table/Table.accessibility.test.js +16 -6
  266. package/table/Table.js +1 -1
  267. package/table/Table.stories.tsx +13 -1
  268. package/table/Table.test.d.ts +1 -0
  269. package/table/Table.test.js +2 -4
  270. package/tabs/Tab.js +1 -1
  271. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  272. package/tabs/Tabs.accessibility.test.js +3 -3
  273. package/tabs/Tabs.js +1 -1
  274. package/tabs/Tabs.stories.tsx +7 -1
  275. package/tabs/Tabs.test.d.ts +1 -0
  276. package/tabs/Tabs.test.js +1 -1
  277. package/tag/Tag.accessibility.test.d.ts +1 -0
  278. package/tag/Tag.accessibility.test.js +4 -4
  279. package/tag/Tag.js +1 -1
  280. package/tag/Tag.stories.tsx +1 -1
  281. package/tag/Tag.test.d.ts +1 -0
  282. package/tag/Tag.test.js +1 -1
  283. package/text-input/Suggestion.js +1 -1
  284. package/text-input/Suggestions.js +14 -6
  285. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  286. package/text-input/TextInput.accessibility.test.js +11 -12
  287. package/text-input/TextInput.js +49 -68
  288. package/text-input/TextInput.stories.tsx +19 -7
  289. package/text-input/TextInput.test.d.ts +1 -0
  290. package/text-input/TextInput.test.js +2 -3
  291. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  292. package/textarea/Textarea.accessibility.test.js +7 -7
  293. package/textarea/Textarea.js +14 -13
  294. package/textarea/Textarea.test.d.ts +1 -0
  295. package/textarea/Textarea.test.js +1 -1
  296. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  297. package/toggle-group/ToggleGroup.accessibility.test.js +5 -5
  298. package/toggle-group/ToggleGroup.js +6 -9
  299. package/toggle-group/ToggleGroup.stories.tsx +1 -1
  300. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  301. package/toggle-group/ToggleGroup.test.js +1 -1
  302. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  303. package/tooltip/Tooltip.accessibility.test.js +144 -0
  304. package/tooltip/Tooltip.d.ts +4 -0
  305. package/tooltip/Tooltip.js +50 -0
  306. package/tooltip/Tooltip.stories.tsx +111 -0
  307. package/tooltip/Tooltip.test.d.ts +1 -0
  308. package/tooltip/Tooltip.test.js +112 -0
  309. package/tooltip/types.d.ts +16 -0
  310. package/tooltip/types.js +5 -0
  311. package/typography/Typography.accessibility.test.d.ts +1 -0
  312. package/typography/Typography.accessibility.test.js +12 -12
  313. package/typography/Typography.stories.tsx +1 -3
  314. package/typography/Typography.test.js +23 -0
  315. package/useTheme.d.ts +30 -3
  316. package/useTranslatedLabels.d.ts +11 -0
  317. package/utils/BaseTypography.js +45 -41
  318. package/utils/FocusLock.js +3 -2
  319. package/utils/useWidth.d.ts +2 -0
  320. package/utils/useWidth.js +30 -0
  321. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  322. package/wizard/Wizard.accessibility.test.js +3 -3
  323. package/wizard/Wizard.js +1 -9
  324. package/wizard/Wizard.stories.tsx +1 -1
  325. package/wizard/Wizard.test.d.ts +1 -0
  326. package/wizard/Wizard.test.js +1 -1
  327. package/contextual-menu/MenuItemAction.d.ts +0 -4
  328. package/contextual-menu/MenuItemAction.js +0 -46
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
14
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
16
+ var _excluded = ["badge", "collapseIcon", "icon", "label", "depthLevel"];
17
+ var ItemAction = function ItemAction(_ref) {
18
+ var badge = _ref.badge,
19
+ collapseIcon = _ref.collapseIcon,
20
+ icon = _ref.icon,
21
+ label = _ref.label,
22
+ depthLevel = _ref.depthLevel,
23
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
24
+ var modifiedBadge = badge && /*#__PURE__*/_react["default"].cloneElement(badge, {
25
+ size: "small"
26
+ });
27
+ return /*#__PURE__*/_react["default"].createElement(Action, (0, _extends2["default"])({
28
+ depthLevel: depthLevel
29
+ }, props), /*#__PURE__*/_react["default"].createElement(Label, null, collapseIcon && /*#__PURE__*/_react["default"].createElement(Icon, null, collapseIcon), icon && depthLevel === 0 && /*#__PURE__*/_react["default"].createElement(Icon, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
30
+ icon: icon
31
+ }) : icon), /*#__PURE__*/_react["default"].createElement(Text, {
32
+ selected: props.selected,
33
+ onMouseEnter: function onMouseEnter(event) {
34
+ var text = event.currentTarget;
35
+ if (text.title === "" && text.scrollWidth > text.clientWidth) text.title = label;
36
+ }
37
+ }, label)), modifiedBadge);
38
+ };
39
+ var Action = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border: none;\n border-radius: 4px;\n width: 100%;\n padding: ", ";\n box-shadow: inset 0 0 0 2px transparent;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ", ";\n ", ";\n cursor: pointer;\n overflow: hidden;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n &:focus {\n outline: 2px solid ", ";\n outline-offset: -1px;\n }\n"])), function (props) {
40
+ return "".concat(_coreTokens["default"].spacing_4, " ").concat(_coreTokens["default"].spacing_8, " ").concat(_coreTokens["default"].spacing_4, " ", "\n calc(".concat(_coreTokens["default"].spacing_8, " + (").concat(_coreTokens["default"].spacing_24, " * ").concat(props.depthLevel, "))\n "), ";");
41
+ }, _coreTokens["default"].spacing_16, function (_ref2) {
42
+ var selected = _ref2.selected,
43
+ theme = _ref2.theme;
44
+ return selected ? "background-color: ".concat(theme.selectedMenuItemBackgroundColor, ";") : "background-color: ".concat(_coreTokens["default"].color_transparent);
45
+ }, function (_ref3) {
46
+ var selected = _ref3.selected,
47
+ theme = _ref3.theme;
48
+ return selected ? "background-color: ".concat(theme.hoverSelectedMenuItemBackgroundColor, ";") : "background-color: ".concat(theme.hoverMenuItemBackgroundColor, ";");
49
+ }, function (_ref4) {
50
+ var selected = _ref4.selected,
51
+ theme = _ref4.theme;
52
+ return selected ? "background-color: ".concat(theme.activeSelectedMenuItemBackgroundColor, ";") : "background-color: ".concat(theme.activeMenuItemBackgroundColor, ";");
53
+ }, _coreTokens["default"].color_blue_600);
54
+ var Icon = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: ", ";\n color: ", ";\n\n svg {\n height: ", ";\n width: ", ";\n }\n"])), function (_ref5) {
55
+ var theme = _ref5.theme;
56
+ return theme.iconSize;
57
+ }, function (_ref6) {
58
+ var theme = _ref6.theme;
59
+ return theme.iconColor;
60
+ }, function (_ref7) {
61
+ var theme = _ref7.theme;
62
+ return theme.iconSize;
63
+ }, function (_ref8) {
64
+ var theme = _ref8.theme;
65
+ return theme.iconSize;
66
+ });
67
+ var Label = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: ", ";\n overflow: hidden;\n"])), _coreTokens["default"].spacing_8);
68
+ var Text = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), function (_ref9) {
69
+ var theme = _ref9.theme;
70
+ return theme.menuItemFontColor;
71
+ }, function (_ref10) {
72
+ var theme = _ref10.theme;
73
+ return theme.fontFamily;
74
+ }, function (_ref11) {
75
+ var theme = _ref11.theme;
76
+ return theme.menuItemFontSize;
77
+ }, function (_ref12) {
78
+ var theme = _ref12.theme;
79
+ return theme.menuItemFontStyle;
80
+ }, function (_ref13) {
81
+ var selected = _ref13.selected,
82
+ theme = _ref13.theme;
83
+ return selected ? theme.selectedMenuItemFontWeight : theme.menuItemFontWeight;
84
+ }, function (_ref14) {
85
+ var theme = _ref14.theme;
86
+ return theme.menuItemLineHeight;
87
+ });
88
+ var _default = exports["default"] = ItemAction;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { MenuItemProps } from "./types";
3
+ declare const MenuItem: ({ item, depthLevel }: MenuItemProps) => React.JSX.Element;
4
+ export default MenuItem;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
13
+ var _SingleItem = _interopRequireDefault(require("./SingleItem"));
14
+ var _GroupItem = _interopRequireDefault(require("./GroupItem"));
15
+ var _templateObject;
16
+ var MenuItem = function MenuItem(_ref) {
17
+ var item = _ref.item,
18
+ _ref$depthLevel = _ref.depthLevel,
19
+ depthLevel = _ref$depthLevel === void 0 ? 0 : _ref$depthLevel;
20
+ return /*#__PURE__*/_react["default"].createElement(StyledMenuItem, {
21
+ role: "menuitem"
22
+ }, "items" in item ? /*#__PURE__*/_react["default"].createElement(_GroupItem["default"], (0, _extends2["default"])({}, item, {
23
+ depthLevel: depthLevel
24
+ })) : /*#__PURE__*/_react["default"].createElement(_SingleItem["default"], (0, _extends2["default"])({}, item, {
25
+ depthLevel: depthLevel
26
+ })));
27
+ };
28
+ var StyledMenuItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n gap: ", ";\n"])), _coreTokens["default"].spacing_4);
29
+ var _default = exports["default"] = MenuItem;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { SingleItemProps } from "./types";
3
+ declare const SingleItem: ({ id, onSelect, selectedByDefault, ...props }: SingleItemProps) => React.JSX.Element;
4
+ export default SingleItem;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _ContextualMenu = require("./ContextualMenu");
13
+ var _ItemAction = _interopRequireDefault(require("./ItemAction"));
14
+ var _excluded = ["id", "onSelect", "selectedByDefault"];
15
+ 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); }
16
+ 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 && {}.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; }
17
+ var SingleItem = function SingleItem(_ref) {
18
+ var id = _ref.id,
19
+ onSelect = _ref.onSelect,
20
+ selectedByDefault = _ref.selectedByDefault,
21
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
22
+ var _useContext = (0, _react.useContext)(_ContextualMenu.ContextualMenuContext),
23
+ selectedItemId = _useContext.selectedItemId,
24
+ setSelectedItemId = _useContext.setSelectedItemId;
25
+ var handleClick = function handleClick() {
26
+ setSelectedItemId(id);
27
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect();
28
+ };
29
+ (0, _react.useEffect)(function () {
30
+ if (selectedItemId === -1 && selectedByDefault) setSelectedItemId(id);
31
+ }, [selectedItemId, selectedByDefault, id]);
32
+ return /*#__PURE__*/_react["default"].createElement(_ItemAction["default"], (0, _extends2["default"])({
33
+ "aria-selected": selectedItemId === -1 ? selectedByDefault : selectedItemId === id,
34
+ onClick: handleClick,
35
+ selected: selectedItemId === -1 ? selectedByDefault : selectedItemId === id
36
+ }, props));
37
+ };
38
+ var _default = exports["default"] = SingleItem;
@@ -1,22 +1,65 @@
1
- /// <reference types="react" />
2
- import { NotificationProps, CommonProps, ContextualProps } from "../badge/types";
1
+ import React from "react";
3
2
  type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
4
- export type Item = {
5
- label: string;
3
+ type CommonItemProps = {
4
+ badge?: React.ReactElement;
6
5
  icon?: string | SVG;
7
- slot?: React.ReactNode;
6
+ label: string;
7
+ };
8
+ type Item = CommonItemProps & {
8
9
  onSelect?: () => void;
10
+ selectedByDefault?: boolean;
11
+ };
12
+ type GroupItem = CommonItemProps & {
13
+ items: (Item | GroupItem)[];
9
14
  };
10
- export type Section = {
15
+ type Section = {
16
+ items: (Item | GroupItem)[];
11
17
  title?: string;
12
- items: Item[];
13
18
  };
14
19
  type Props = {
15
- defaultSelectedItemIndex?: number;
16
- items: Item[] | Section[];
20
+ /**
21
+ * Array of items to be displayed in the Contextual menu.
22
+ * Each item can be a single/simple item, a group item or a section.
23
+ */
24
+ items: (Item | GroupItem)[] | Section[];
25
+ };
26
+ /**
27
+ * Contextual menu internal types.
28
+ */
29
+ type ItemWithId = Item & {
30
+ id: number;
31
+ };
32
+ type GroupItemWithId = {
33
+ badge?: React.ReactElement;
34
+ icon: string | SVG;
35
+ items: (ItemWithId | GroupItemWithId)[];
36
+ label: string;
17
37
  };
18
- export type MenuItemActionProps = Item & {
38
+ type SectionWithId = {
39
+ items: (ItemWithId | GroupItemWithId)[];
40
+ title?: string;
41
+ };
42
+ type SingleItemProps = ItemWithId & {
43
+ depthLevel: number;
44
+ };
45
+ type GroupItemProps = GroupItemWithId & {
46
+ depthLevel: number;
47
+ };
48
+ type MenuItemProps = {
49
+ item: ItemWithId | GroupItemWithId;
50
+ depthLevel?: number;
51
+ };
52
+ type ItemActionProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
53
+ badge?: Item["badge"];
54
+ collapseIcon?: React.ReactNode;
55
+ depthLevel: number;
56
+ icon?: Item["icon"];
57
+ label: Item["label"];
19
58
  selected: boolean;
20
59
  };
21
- export type BadgeProps = (ContextualProps | NotificationProps) & Omit<CommonProps, "size">;
60
+ type ContextualMenuContextProps = {
61
+ selectedItemId: number;
62
+ setSelectedItemId: React.Dispatch<React.SetStateAction<number>>;
63
+ };
22
64
  export default Props;
65
+ export type { ContextualMenuContextProps, GroupItem, GroupItemProps, GroupItemWithId, Item, ItemActionProps, ItemWithId, MenuItemProps, Section, SectionWithId, SingleItemProps, };
@@ -11,10 +11,9 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
14
- var _Flex = _interopRequireDefault(require("../flex/Flex"));
15
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
14
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
16
15
  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); }
17
- 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; }
16
+ 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 && {}.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; }
18
17
  var getDays = function getDays(innerDate) {
19
18
  var monthDayCells = [];
20
19
  var lastMonthNumberOfDays = innerDate.set("month", innerDate.get("month") - 1).endOf("month");
@@ -49,12 +48,20 @@ var getDateToFocus = function getDateToFocus(selectedDate, innerDate, today) {
49
48
  var isDaySelected = function isDaySelected(date, selectedDate) {
50
49
  return (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === date.month && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === date.year && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("date")) === date.day;
51
50
  };
51
+ var divideDaysIntoWeeks = function divideDaysIntoWeeks(data, weekSize) {
52
+ return Array.from({
53
+ length: Math.ceil(data.length / weekSize)
54
+ }, function (_, rowIndex) {
55
+ return data.slice(rowIndex * weekSize, (rowIndex + 1) * weekSize);
56
+ });
57
+ };
52
58
  var Calendar = function Calendar(_ref) {
53
59
  var selectedDate = _ref.selectedDate,
54
60
  innerDate = _ref.innerDate,
55
61
  onInnerDateChange = _ref.onInnerDateChange,
56
62
  onDaySelect = _ref.onDaySelect,
57
63
  today = _ref.today;
64
+ var id = (0, _react.useId)();
58
65
  var _useState = (0, _react.useState)(getDateToFocus(selectedDate, innerDate, today)),
59
66
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
67
  dateToFocus = _useState2[0],
@@ -88,7 +95,7 @@ var Calendar = function Calendar(_ref) {
88
95
  (0, _react.useEffect)(function () {
89
96
  if (isFocusable) {
90
97
  var _document$getElementB;
91
- (_document$getElementB = document.getElementById("day_".concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
98
+ (_document$getElementB = document.getElementById("".concat(id, "_day_").concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
92
99
  setIsFocusable(false);
93
100
  }
94
101
  }, [dateToFocus, isFocusable]);
@@ -146,33 +153,40 @@ var Calendar = function Calendar(_ref) {
146
153
  break;
147
154
  }
148
155
  };
149
- return /*#__PURE__*/_react["default"].createElement(CalendarContainer, null, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
150
- alignItems: "center",
151
- justifyContent: "space-between"
156
+ return /*#__PURE__*/_react["default"].createElement(CalendarContainer, {
157
+ role: "grid"
158
+ }, /*#__PURE__*/_react["default"].createElement(CalendarHeaderRow, {
159
+ role: "row"
152
160
  }, weekDays.map(function (weekDay) {
153
161
  return /*#__PURE__*/_react["default"].createElement(WeekHeaderCell, {
154
- key: weekDay
162
+ key: weekDay,
163
+ role: "columnheader"
155
164
  }, weekDay);
156
- })), /*#__PURE__*/_react["default"].createElement(DayCellsContainer, {
157
- onBlur: handleOnBlur
158
- }, dayCells.map(function (date, index) {
159
- return /*#__PURE__*/_react["default"].createElement(DayCell, {
160
- onKeyDown: function onKeyDown(event) {
161
- return handleDayKeyboardEvent(event, date);
162
- },
163
- "aria-label": date.day,
164
- id: "day_".concat(date.day, "_month").concat(date.month),
165
- key: "day_".concat(index),
166
- onClick: function onClick() {
167
- return onDateClickHandler(date);
168
- },
169
- selected: isDaySelected(date, selectedDate),
170
- actualMonth: date.month === innerDate.get("month"),
171
- autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
172
- "aria-selected": isDaySelected(date, selectedDate),
173
- tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
174
- isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
175
- }, date.day);
165
+ })), /*#__PURE__*/_react["default"].createElement(MonthContainer, {
166
+ onBlur: handleOnBlur,
167
+ role: "rowgroup"
168
+ }, divideDaysIntoWeeks(dayCells, weekDays.length).map(function (week, rowIndex) {
169
+ return /*#__PURE__*/_react["default"].createElement(WeekContainer, {
170
+ key: "".concat(id, "_week_").concat(rowIndex),
171
+ role: "row"
172
+ }, week.map(function (date, index) {
173
+ return /*#__PURE__*/_react["default"].createElement(DayCellButton, {
174
+ id: "".concat(id, "_day_").concat(date.day, "_month").concat(date.month),
175
+ role: "gridcell",
176
+ "aria-selected": isDaySelected(date, selectedDate),
177
+ onKeyDown: function onKeyDown(event) {
178
+ return handleDayKeyboardEvent(event, date);
179
+ },
180
+ onClick: function onClick() {
181
+ return onDateClickHandler(date);
182
+ },
183
+ selected: isDaySelected(date, selectedDate),
184
+ actualMonth: date.month === innerDate.get("month"),
185
+ autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
186
+ tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
187
+ isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
188
+ }, date.day);
189
+ }));
176
190
  })));
177
191
  };
178
192
  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) {
@@ -184,9 +198,11 @@ var CalendarContainer = _styledComponents["default"].div(_templateObject || (_te
184
198
  }, function (props) {
185
199
  return props.theme.dateInput.pickerFontWeight;
186
200
  });
187
- 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"])));
188
- 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"])));
189
- 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) {
201
+ var CalendarHeaderRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n"])));
202
+ var WeekHeaderCell = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
203
+ var MonthContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-direction: column;\n justify-content: space-between;\n"])));
204
+ var WeekContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n justify-content: space-between;\n"])));
205
+ var DayCellButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (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) {
190
206
  return props.theme.dateInput.pickerFontFamily;
191
207
  }, function (props) {
192
208
  return props.theme.dateInput.pickerFontSize;
@@ -0,0 +1 @@
1
+ export {};
@@ -7,8 +7,9 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
7
7
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@testing-library/react");
10
- var _jestAxe = require("jest-axe");
11
- var _DateInput = _interopRequireDefault(require("./DateInput.tsx"));
10
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
11
+ var _DateInput = _interopRequireDefault(require("./DateInput"));
12
+ var _disabledRules = require("../../test/accessibility/rules/specific/date-input/disabledRules.js");
12
13
  // Mocking DOMRect for Radix Primitive Popover
13
14
  global.globalThis = global;
14
15
  global.DOMRect = {
@@ -19,7 +20,9 @@ global.DOMRect = {
19
20
  bottom: 0,
20
21
  right: 0,
21
22
  width: 0,
22
- height: 0
23
+ height: 0,
24
+ x: 0,
25
+ y: 0
23
26
  };
24
27
  }
25
28
  };
@@ -27,7 +30,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
27
30
  function ResizeObserver() {
28
31
  (0, _classCallCheck2["default"])(this, ResizeObserver);
29
32
  }
30
- (0, _createClass2["default"])(ResizeObserver, [{
33
+ return (0, _createClass2["default"])(ResizeObserver, [{
31
34
  key: "observe",
32
35
  value: function observe() {}
33
36
  }, {
@@ -37,8 +40,18 @@ global.ResizeObserver = /*#__PURE__*/function () {
37
40
  key: "disconnect",
38
41
  value: function disconnect() {}
39
42
  }]);
40
- return ResizeObserver;
41
43
  }();
44
+
45
+ // TODO: REMOVE
46
+
47
+ var disabledRules = {
48
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
49
+ rulesObj[rule] = {
50
+ enabled: false
51
+ };
52
+ return rulesObj;
53
+ }, {})
54
+ };
42
55
  describe("DateInput component accessibility tests", function () {
43
56
  it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
44
57
  var _render, baseElement, results;
@@ -58,7 +71,7 @@ describe("DateInput component accessibility tests", function () {
58
71
  clearable: true
59
72
  })), baseElement = _render.baseElement;
60
73
  _context.next = 3;
61
- return (0, _jestAxe.axe)(baseElement);
74
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
62
75
  case 3:
63
76
  results = _context.sent;
64
77
  expect(results).toHaveNoViolations();
@@ -86,7 +99,7 @@ describe("DateInput component accessibility tests", function () {
86
99
  autocomplete: "on"
87
100
  })), baseElement = _render2.baseElement;
88
101
  _context2.next = 3;
89
- return (0, _jestAxe.axe)(baseElement);
102
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
90
103
  case 3:
91
104
  results = _context2.sent;
92
105
  expect(results).toHaveNoViolations();
@@ -114,7 +127,7 @@ describe("DateInput component accessibility tests", function () {
114
127
  optional: true
115
128
  })), baseElement = _render3.baseElement;
116
129
  _context3.next = 3;
117
- return (0, _jestAxe.axe)(baseElement);
130
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
118
131
  case 3:
119
132
  results = _context3.sent;
120
133
  expect(results).toHaveNoViolations();
@@ -143,7 +156,7 @@ describe("DateInput component accessibility tests", function () {
143
156
  clearable: true
144
157
  })), baseElement = _render4.baseElement;
145
158
  _context4.next = 3;
146
- return (0, _jestAxe.axe)(baseElement);
159
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
147
160
  case 3:
148
161
  results = _context4.sent;
149
162
  expect(results).toHaveNoViolations();
@@ -173,7 +186,7 @@ describe("DateInput component accessibility tests", function () {
173
186
  readOnly: true
174
187
  })), baseElement = _render5.baseElement;
175
188
  _context5.next = 3;
176
- return (0, _jestAxe.axe)(baseElement);
189
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
177
190
  case 3:
178
191
  results = _context5.sent;
179
192
  expect(results).toHaveNoViolations();
@@ -203,7 +216,7 @@ describe("DateInput component accessibility tests", function () {
203
216
  disabled: true
204
217
  })), baseElement = _render6.baseElement;
205
218
  _context6.next = 3;
206
- return (0, _jestAxe.axe)(baseElement);
219
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
207
220
  case 3:
208
221
  results = _context6.sent;
209
222
  expect(results).toHaveNoViolations();
@@ -18,10 +18,9 @@ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
18
18
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
19
19
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
20
20
  var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
21
- var _uuid = require("uuid");
22
- var _templateObject;
21
+ var _templateObject, _templateObject2;
23
22
  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); }
24
- 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; }
23
+ 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 && {}.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; }
25
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
26
  _dayjs["default"].extend(_customParseFormat["default"]);
@@ -76,17 +75,15 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
76
75
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
77
76
  isOpen = _useState4[0],
78
77
  setIsOpen = _useState4[1];
79
- var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
80
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
81
- calendarId = _useState6[0];
82
- var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
78
+ var calendarId = "date-picker-".concat((0, _react.useId)());
79
+ var _useState5 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
80
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
81
+ dayjsDate = _useState6[0],
82
+ setDayjsDate = _useState6[1];
83
+ var _useState7 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
83
84
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
84
- dayjsDate = _useState8[0],
85
- setDayjsDate = _useState8[1];
86
- var _useState9 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
87
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
88
- lastValidYear = _useState10[0],
89
- setLastValidYear = _useState10[1];
85
+ lastValidYear = _useState8[0],
86
+ setLastValidYear = _useState8[1];
90
87
  var colorsTheme = (0, _useTheme["default"])();
91
88
  var translatedLabels = (0, _useTranslatedLabels["default"])();
92
89
  var dateRef = (0, _react.useRef)(null);
@@ -95,12 +92,14 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
95
92
  }, [value, format, lastValidYear]);
96
93
  (0, _react.useEffect)(function () {
97
94
  if (!disabled) {
98
- var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
95
+ var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Select date']");
99
96
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
100
97
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
101
98
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
102
99
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
103
- actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
100
+ if (isOpen) {
101
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
102
+ }
104
103
  }
105
104
  }, [isOpen, disabled, calendarId]);
106
105
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
@@ -165,16 +164,20 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
165
164
  setIsOpen(false);
166
165
  };
167
166
  var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
168
- event.preventDefault();
169
- closeCalendar();
170
- dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
167
+ if (event.key === "Escape") {
168
+ event.preventDefault();
169
+ isOpen && event.stopPropagation();
170
+ closeCalendar();
171
+ dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
172
+ }
171
173
  };
172
174
  var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
173
175
  if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
174
176
  };
175
177
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
176
178
  theme: colorsTheme
177
- }, /*#__PURE__*/_react["default"].createElement("div", {
179
+ }, /*#__PURE__*/_react["default"].createElement(DateInputContainer, {
180
+ size: size,
178
181
  ref: ref
179
182
  }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
180
183
  open: isOpen
@@ -191,7 +194,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
191
194
  action: {
192
195
  onClick: openCalendar,
193
196
  icon: "filled_calendar_today",
194
- title: "Open calendar"
197
+ title: "Select date"
195
198
  },
196
199
  clearable: clearable,
197
200
  disabled: disabled,
@@ -210,7 +213,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
210
213
  align: "end",
211
214
  "aria-modal": true,
212
215
  onBlur: handleDatePickerOnBlur,
213
- onEscapeKeyDown: handleDatePickerEscKeydown,
216
+ onKeyDown: handleDatePickerEscKeydown,
214
217
  avoidCollisions: false
215
218
  }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
216
219
  id: calendarId,
@@ -219,4 +222,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
219
222
  }))))));
220
223
  });
221
224
  var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
225
+ var DateInputContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (props) {
226
+ return props.size == "fillParent" && "width: 100%;";
227
+ });
222
228
  var _default = exports["default"] = DxcDateInput;