@dxc-technology/halstack-react 0.0.0-f54247d → 0.0.0-f6290b3

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 (304) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +121 -105
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +37 -100
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -43
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +18 -59
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -15
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -12
  53. package/checkbox/Checkbox.js +87 -122
  54. package/checkbox/Checkbox.stories.tsx +68 -54
  55. package/checkbox/Checkbox.test.js +108 -64
  56. package/checkbox/types.d.ts +8 -4
  57. package/chip/Chip.js +39 -79
  58. package/chip/Chip.stories.tsx +121 -26
  59. package/chip/Chip.test.js +16 -31
  60. package/chip/types.d.ts +4 -4
  61. package/common/OpenSans.css +68 -80
  62. package/common/coreTokens.d.ts +237 -0
  63. package/common/coreTokens.js +184 -0
  64. package/common/utils.d.ts +1 -0
  65. package/common/utils.js +6 -12
  66. package/common/variables.d.ts +1395 -0
  67. package/common/variables.js +910 -1155
  68. package/container/Container.d.ts +4 -0
  69. package/container/Container.js +194 -0
  70. package/container/Container.stories.tsx +214 -0
  71. package/container/types.d.ts +74 -0
  72. package/contextual-menu/ContextualMenu.d.ts +7 -0
  73. package/contextual-menu/ContextualMenu.js +71 -0
  74. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  75. package/contextual-menu/ContextualMenu.test.js +71 -0
  76. package/contextual-menu/MenuItemAction.d.ts +4 -0
  77. package/contextual-menu/MenuItemAction.js +46 -0
  78. package/contextual-menu/types.d.ts +22 -0
  79. package/date-input/Calendar.d.ts +1 -1
  80. package/date-input/Calendar.js +52 -96
  81. package/date-input/DateInput.js +103 -107
  82. package/date-input/DateInput.stories.tsx +194 -60
  83. package/date-input/DateInput.test.js +676 -620
  84. package/date-input/DatePicker.js +47 -92
  85. package/date-input/Icons.d.ts +6 -0
  86. package/date-input/Icons.js +58 -0
  87. package/date-input/YearPicker.d.ts +1 -1
  88. package/date-input/YearPicker.js +29 -44
  89. package/date-input/types.d.ts +32 -28
  90. package/dialog/Dialog.d.ts +1 -1
  91. package/dialog/Dialog.js +61 -119
  92. package/dialog/Dialog.stories.tsx +310 -212
  93. package/dialog/Dialog.test.js +269 -32
  94. package/dialog/types.d.ts +18 -26
  95. package/divider/Divider.d.ts +4 -0
  96. package/divider/Divider.js +36 -0
  97. package/divider/Divider.stories.tsx +223 -0
  98. package/divider/Divider.test.js +38 -0
  99. package/divider/types.d.ts +19 -0
  100. package/divider/types.js +5 -0
  101. package/dropdown/Dropdown.js +53 -108
  102. package/dropdown/Dropdown.stories.tsx +210 -84
  103. package/dropdown/Dropdown.test.js +393 -379
  104. package/dropdown/DropdownMenu.js +20 -37
  105. package/dropdown/DropdownMenuItem.js +9 -34
  106. package/dropdown/types.d.ts +18 -20
  107. package/file-input/FileInput.js +184 -256
  108. package/file-input/FileInput.stories.tsx +86 -3
  109. package/file-input/FileInput.test.js +356 -395
  110. package/file-input/FileItem.js +15 -41
  111. package/file-input/types.d.ts +10 -10
  112. package/flex/Flex.js +27 -39
  113. package/flex/Flex.stories.tsx +35 -26
  114. package/flex/types.d.ts +74 -9
  115. package/footer/Footer.d.ts +1 -1
  116. package/footer/Footer.js +70 -117
  117. package/footer/Footer.stories.tsx +55 -21
  118. package/footer/Footer.test.js +33 -57
  119. package/footer/Icons.d.ts +3 -2
  120. package/footer/Icons.js +66 -7
  121. package/footer/types.d.ts +25 -27
  122. package/grid/Grid.d.ts +7 -0
  123. package/grid/Grid.js +76 -0
  124. package/grid/Grid.stories.tsx +219 -0
  125. package/grid/types.d.ts +115 -0
  126. package/grid/types.js +5 -0
  127. package/header/Header.d.ts +4 -3
  128. package/header/Header.js +48 -133
  129. package/header/Header.stories.tsx +115 -36
  130. package/header/Header.test.js +13 -26
  131. package/header/Icons.d.ts +2 -2
  132. package/header/Icons.js +2 -7
  133. package/header/types.d.ts +7 -22
  134. package/heading/Heading.js +10 -32
  135. package/heading/Heading.test.js +71 -88
  136. package/heading/types.d.ts +7 -7
  137. package/image/Image.d.ts +4 -0
  138. package/image/Image.js +70 -0
  139. package/image/Image.stories.tsx +129 -0
  140. package/image/types.d.ts +72 -0
  141. package/image/types.js +5 -0
  142. package/inset/Inset.js +13 -21
  143. package/inset/Inset.stories.tsx +2 -1
  144. package/inset/types.d.ts +2 -2
  145. package/layout/ApplicationLayout.d.ts +5 -5
  146. package/layout/ApplicationLayout.js +29 -66
  147. package/layout/ApplicationLayout.stories.tsx +1 -1
  148. package/layout/Icons.d.ts +8 -5
  149. package/layout/Icons.js +51 -59
  150. package/layout/SidenavContext.d.ts +1 -1
  151. package/layout/SidenavContext.js +3 -9
  152. package/layout/types.d.ts +5 -6
  153. package/link/Link.js +24 -45
  154. package/link/Link.stories.tsx +60 -0
  155. package/link/Link.test.js +24 -44
  156. package/link/types.d.ts +14 -14
  157. package/main.d.ts +9 -5
  158. package/main.js +40 -59
  159. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  160. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  161. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  162. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  163. package/nav-tabs/Tab.js +118 -0
  164. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  165. package/nav-tabs/types.js +5 -0
  166. package/number-input/NumberInput.d.ts +7 -0
  167. package/number-input/NumberInput.js +47 -37
  168. package/number-input/NumberInput.stories.tsx +42 -26
  169. package/number-input/NumberInput.test.js +860 -413
  170. package/number-input/types.d.ts +11 -5
  171. package/package.json +31 -29
  172. package/paginator/Icons.d.ts +5 -0
  173. package/paginator/Icons.js +21 -47
  174. package/paginator/Paginator.js +22 -58
  175. package/paginator/Paginator.stories.tsx +24 -0
  176. package/paginator/Paginator.test.js +252 -225
  177. package/paginator/types.d.ts +3 -3
  178. package/paragraph/Paragraph.d.ts +3 -4
  179. package/paragraph/Paragraph.js +6 -22
  180. package/paragraph/Paragraph.stories.tsx +0 -17
  181. package/password-input/Icons.d.ts +6 -0
  182. package/password-input/Icons.js +35 -0
  183. package/password-input/PasswordInput.js +57 -126
  184. package/password-input/PasswordInput.stories.tsx +1 -33
  185. package/password-input/PasswordInput.test.js +158 -141
  186. package/password-input/types.d.ts +8 -7
  187. package/progress-bar/ProgressBar.d.ts +2 -2
  188. package/progress-bar/ProgressBar.js +23 -55
  189. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  190. package/progress-bar/ProgressBar.test.js +36 -53
  191. package/progress-bar/types.d.ts +4 -3
  192. package/quick-nav/QuickNav.js +4 -27
  193. package/quick-nav/QuickNav.stories.tsx +15 -1
  194. package/quick-nav/types.d.ts +10 -10
  195. package/radio-group/Radio.d.ts +1 -1
  196. package/radio-group/Radio.js +31 -63
  197. package/radio-group/RadioGroup.js +45 -93
  198. package/radio-group/RadioGroup.stories.tsx +131 -18
  199. package/radio-group/RadioGroup.test.js +505 -471
  200. package/radio-group/types.d.ts +8 -8
  201. package/resultset-table/Icons.d.ts +7 -0
  202. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  203. package/resultset-table/ResultsetTable.d.ts +7 -0
  204. package/{resultsetTable → resultset-table}/ResultsetTable.js +37 -66
  205. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +102 -5
  206. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +155 -114
  207. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  208. package/resultset-table/types.js +5 -0
  209. package/select/Icons.d.ts +7 -7
  210. package/select/Icons.js +1 -5
  211. package/select/Listbox.d.ts +1 -1
  212. package/select/Listbox.js +17 -72
  213. package/select/Option.js +27 -50
  214. package/select/Select.js +120 -175
  215. package/select/Select.stories.tsx +495 -148
  216. package/select/Select.test.js +1974 -1837
  217. package/select/types.d.ts +16 -17
  218. package/sidenav/Icons.d.ts +7 -0
  219. package/sidenav/Icons.js +47 -0
  220. package/sidenav/Sidenav.d.ts +2 -2
  221. package/sidenav/Sidenav.js +82 -153
  222. package/sidenav/Sidenav.stories.tsx +165 -63
  223. package/sidenav/Sidenav.test.js +3 -10
  224. package/sidenav/types.d.ts +31 -28
  225. package/slider/Slider.js +73 -131
  226. package/slider/Slider.test.js +108 -104
  227. package/slider/types.d.ts +4 -4
  228. package/spinner/Spinner.js +31 -75
  229. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  230. package/spinner/Spinner.test.js +26 -35
  231. package/spinner/types.d.ts +3 -3
  232. package/status-light/StatusLight.d.ts +4 -0
  233. package/status-light/StatusLight.js +51 -0
  234. package/status-light/StatusLight.stories.tsx +74 -0
  235. package/status-light/StatusLight.test.js +25 -0
  236. package/status-light/types.d.ts +17 -0
  237. package/status-light/types.js +5 -0
  238. package/switch/Switch.js +52 -100
  239. package/switch/Switch.stories.tsx +33 -34
  240. package/switch/Switch.test.js +52 -97
  241. package/switch/types.d.ts +4 -4
  242. package/table/DropdownTheme.js +62 -0
  243. package/table/Table.d.ts +6 -2
  244. package/table/Table.js +87 -35
  245. package/table/Table.stories.tsx +658 -0
  246. package/table/Table.test.js +94 -7
  247. package/table/types.d.ts +48 -6
  248. package/tabs/Tab.js +26 -45
  249. package/tabs/Tabs.js +62 -145
  250. package/tabs/Tabs.stories.tsx +46 -6
  251. package/tabs/Tabs.test.js +66 -123
  252. package/tabs/types.d.ts +19 -19
  253. package/tag/Tag.js +28 -60
  254. package/tag/Tag.stories.tsx +14 -1
  255. package/tag/Tag.test.js +20 -31
  256. package/tag/types.d.ts +7 -7
  257. package/text-input/Icons.d.ts +5 -5
  258. package/text-input/Icons.js +1 -5
  259. package/text-input/Suggestion.js +35 -25
  260. package/text-input/Suggestions.d.ts +1 -1
  261. package/text-input/Suggestions.js +15 -65
  262. package/text-input/TextInput.js +220 -332
  263. package/text-input/TextInput.stories.tsx +139 -155
  264. package/text-input/TextInput.test.js +1289 -1157
  265. package/text-input/types.d.ts +25 -17
  266. package/textarea/Textarea.js +70 -113
  267. package/textarea/Textarea.stories.tsx +174 -0
  268. package/textarea/Textarea.test.js +152 -183
  269. package/textarea/types.d.ts +9 -5
  270. package/toggle-group/ToggleGroup.d.ts +2 -2
  271. package/toggle-group/ToggleGroup.js +92 -106
  272. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  273. package/toggle-group/ToggleGroup.test.js +69 -88
  274. package/toggle-group/types.d.ts +26 -17
  275. package/typography/Typography.d.ts +2 -2
  276. package/typography/Typography.js +15 -123
  277. package/typography/Typography.stories.tsx +1 -1
  278. package/typography/types.d.ts +1 -1
  279. package/useTheme.d.ts +1147 -1
  280. package/useTheme.js +2 -9
  281. package/useTranslatedLabels.d.ts +84 -1
  282. package/useTranslatedLabels.js +1 -7
  283. package/utils/BaseTypography.d.ts +21 -0
  284. package/utils/BaseTypography.js +94 -0
  285. package/utils/FocusLock.d.ts +13 -0
  286. package/utils/FocusLock.js +124 -0
  287. package/wizard/Wizard.js +16 -51
  288. package/wizard/Wizard.stories.tsx +20 -0
  289. package/wizard/Wizard.test.js +54 -81
  290. package/wizard/types.d.ts +9 -10
  291. package/card/ice-cream.jpg +0 -0
  292. package/number-input/NumberInputContext.d.ts +0 -4
  293. package/number-input/NumberInputContext.js +0 -19
  294. package/number-input/numberInputContextTypes.d.ts +0 -19
  295. package/resultsetTable/Icons.d.ts +0 -7
  296. package/resultsetTable/ResultsetTable.d.ts +0 -4
  297. package/slider/Slider.stories.tsx +0 -183
  298. package/table/Table.stories.jsx +0 -277
  299. package/tabs-nav/Tab.js +0 -130
  300. package/textarea/Textarea.stories.jsx +0 -157
  301. /package/{resultsetTable → action-icon}/types.js +0 -0
  302. /package/{tabs-nav → container}/types.js +0 -0
  303. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  304. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,109 +1,100 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _dayjs = _interopRequireDefault(require("dayjs"));
21
-
22
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
-
28
17
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
29
-
30
18
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
31
-
32
19
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
33
-
34
20
  var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
35
-
36
21
  var _uuid = require("uuid");
37
-
22
+ var _Icons = require("./Icons");
38
23
  var _templateObject;
39
-
40
- 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); }
41
-
42
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
-
44
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
-
46
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
-
24
+ 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); }
25
+ 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; }
26
+ 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; }
27
+ 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; }
48
28
  _dayjs["default"].extend(_customParseFormat["default"]);
49
-
50
- var calendarIcon = /*#__PURE__*/_react["default"].createElement("svg", {
51
- xmlns: "http://www.w3.org/2000/svg",
52
- height: "24",
53
- viewBox: "0 0 24 24",
54
- width: "24",
55
- fill: "currentColor"
56
- }, /*#__PURE__*/_react["default"].createElement("path", {
57
- d: "M0 0h24v24H0z",
58
- fill: "none"
59
- }), /*#__PURE__*/_react["default"].createElement("path", {
60
- d: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"
61
- }));
62
-
63
29
  var getValueForPicker = function getValueForPicker(value, format) {
64
30
  return (0, _dayjs["default"])(value, format.toUpperCase(), true);
65
31
  };
66
-
32
+ var getDate = function getDate(value, format, lastValidYear, setLastValidYear) {
33
+ if ((value || value === "") && format.toUpperCase().includes("YYYY")) return getValueForPicker(value, format);else {
34
+ var newDate = getValueForPicker(value, format);
35
+ if (!lastValidYear) {
36
+ if (+newDate.format("YY") < 68) {
37
+ setLastValidYear(2000 + +newDate.format("YY"));
38
+ newDate = newDate.set("year", 2000 + +newDate.format("YY"));
39
+ } else {
40
+ setLastValidYear(1900 + +newDate.format("YY"));
41
+ newDate = newDate.set("year", 1900 + +newDate.format("YY"));
42
+ }
43
+ } else {
44
+ newDate = newDate.set("year", (lastValidYear <= 1999 ? 1900 : 2000) + +newDate.format("YY"));
45
+ }
46
+ return newDate;
47
+ }
48
+ };
67
49
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
50
+ var _ref2;
68
51
  var label = _ref.label,
69
- name = _ref.name,
70
- _ref$defaultValue = _ref.defaultValue,
71
- defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
72
- value = _ref.value,
73
- _ref$format = _ref.format,
74
- format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
75
- helperText = _ref.helperText,
76
- _ref$placeholder = _ref.placeholder,
77
- placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
78
- clearable = _ref.clearable,
79
- disabled = _ref.disabled,
80
- optional = _ref.optional,
81
- onChange = _ref.onChange,
82
- onBlur = _ref.onBlur,
83
- error = _ref.error,
84
- autocomplete = _ref.autocomplete,
85
- margin = _ref.margin,
86
- size = _ref.size,
87
- tabIndex = _ref.tabIndex;
88
-
52
+ name = _ref.name,
53
+ _ref$defaultValue = _ref.defaultValue,
54
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
55
+ value = _ref.value,
56
+ _ref$format = _ref.format,
57
+ format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
58
+ helperText = _ref.helperText,
59
+ _ref$placeholder = _ref.placeholder,
60
+ placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
61
+ clearable = _ref.clearable,
62
+ disabled = _ref.disabled,
63
+ readOnly = _ref.readOnly,
64
+ optional = _ref.optional,
65
+ onChange = _ref.onChange,
66
+ onBlur = _ref.onBlur,
67
+ error = _ref.error,
68
+ autocomplete = _ref.autocomplete,
69
+ margin = _ref.margin,
70
+ size = _ref.size,
71
+ tabIndex = _ref.tabIndex;
89
72
  var _useState = (0, _react.useState)(defaultValue),
90
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
91
- innerValue = _useState2[0],
92
- setInnerValue = _useState2[1];
93
-
73
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
74
+ innerValue = _useState2[0],
75
+ setInnerValue = _useState2[1];
94
76
  var _useState3 = (0, _react.useState)(false),
95
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
96
- isOpen = _useState4[0],
97
- setIsOpen = _useState4[1];
98
-
77
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
78
+ isOpen = _useState4[0],
79
+ setIsOpen = _useState4[1];
99
80
  var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
100
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
101
- calendarId = _useState6[0];
102
-
81
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
82
+ calendarId = _useState6[0];
83
+ var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
84
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
85
+ dayjsDate = _useState8[0],
86
+ setDayjsDate = _useState8[1];
87
+ 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),
88
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
89
+ lastValidYear = _useState10[0],
90
+ setLastValidYear = _useState10[1];
103
91
  var colorsTheme = (0, _useTheme["default"])();
104
92
  var translatedLabels = (0, _useTranslatedLabels["default"])();
105
93
  var dateRef = (0, _react.useRef)(null);
106
- (0, _react.useLayoutEffect)(function () {
94
+ (0, _react.useEffect)(function () {
95
+ if (value || value === "") setDayjsDate(getDate(value, format, lastValidYear, setLastValidYear));
96
+ }, [value, format, lastValidYear]);
97
+ (0, _react.useEffect)(function () {
107
98
  if (!disabled) {
108
99
  var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
109
100
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
@@ -113,69 +104,75 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
113
104
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
114
105
  }
115
106
  }, [isOpen, disabled, calendarId]);
116
-
117
107
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
118
108
  var newValue = newDate.format(format.toUpperCase());
119
- value !== null && value !== void 0 ? value : setInnerValue(newValue);
109
+ if (!value) {
110
+ setDayjsDate(newDate);
111
+ setInnerValue(newValue);
112
+ }
113
+ setLastValidYear(newDate.get("year"));
120
114
  newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
121
115
  value: newValue,
122
- date: newDate
116
+ date: newDate.toDate()
123
117
  }) : onChange === null || onChange === void 0 ? void 0 : onChange({
124
118
  value: newValue
125
119
  });
126
120
  };
127
-
128
- var handleIOnChange = function handleIOnChange(_ref2) {
129
- var newValue = _ref2.value,
130
- inputError = _ref2.error;
121
+ var handleOnChange = function handleOnChange(_ref3) {
122
+ var newValue = _ref3.value,
123
+ inputError = _ref3.error;
131
124
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
132
- var dayjsDate = getValueForPicker(newValue, format);
133
- var invalidDateMessage = newValue !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
125
+ var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
126
+ var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
134
127
  var callbackParams = inputError || invalidDateMessage ? {
135
128
  value: newValue,
136
129
  error: inputError || invalidDateMessage
137
130
  } : {
138
131
  value: newValue
139
132
  };
140
- dayjsDate.isValid() ? onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
141
- date: dayjsDate.toDate()
142
- })) : onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
133
+ if (newDate.isValid()) {
134
+ setDayjsDate(newDate);
135
+ onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
136
+ date: newDate.toDate()
137
+ }));
138
+ } else {
139
+ onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
140
+ setLastValidYear(function (validYear) {
141
+ var _dayjsDate$get;
142
+ return (_dayjsDate$get = dayjsDate === null || dayjsDate === void 0 ? void 0 : dayjsDate.get("year")) !== null && _dayjsDate$get !== void 0 ? _dayjsDate$get : validYear;
143
+ });
144
+ setDayjsDate(null);
145
+ }
143
146
  };
144
-
145
- var handleIOnBlur = function handleIOnBlur(_ref3) {
146
- var value = _ref3.value,
147
- inputError = _ref3.error;
148
- var dayjsDate = getValueForPicker(value, format);
149
- var invalidDateMessage = value !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
147
+ var handleOnBlur = function handleOnBlur(_ref4) {
148
+ var value = _ref4.value,
149
+ inputError = _ref4.error;
150
+ var date = getDate(value, format, lastValidYear, setLastValidYear);
151
+ var invalidDateMessage = value !== "" && !date.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
150
152
  var callbackParams = inputError || invalidDateMessage ? {
151
153
  value: value,
152
154
  error: inputError || invalidDateMessage
153
155
  } : {
154
156
  value: value
155
157
  };
156
- dayjsDate.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
157
- date: dayjsDate.toDate()
158
+ date.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
159
+ date: date.toDate()
158
160
  })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
159
161
  };
160
-
161
162
  var openCalendar = function openCalendar() {
162
163
  setIsOpen(!isOpen);
163
164
  };
164
-
165
165
  var closeCalendar = function closeCalendar() {
166
166
  setIsOpen(false);
167
167
  };
168
-
169
168
  var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
170
169
  event.preventDefault();
171
170
  closeCalendar();
172
171
  dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
173
172
  };
174
-
175
173
  var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
176
174
  if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
177
175
  };
178
-
179
176
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
180
177
  theme: colorsTheme
181
178
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -194,21 +191,22 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
194
191
  placeholder: placeholder ? format.toUpperCase() : null,
195
192
  action: {
196
193
  onClick: openCalendar,
197
- icon: calendarIcon,
194
+ icon: _Icons.calendarIcon,
198
195
  title: "Open calendar"
199
196
  },
200
197
  clearable: clearable,
201
198
  disabled: disabled,
199
+ readOnly: readOnly,
202
200
  optional: optional,
203
- onChange: handleIOnChange,
204
- onBlur: handleIOnBlur,
201
+ onChange: handleOnChange,
202
+ onBlur: handleOnBlur,
205
203
  error: error,
206
204
  autocomplete: autocomplete,
207
205
  margin: margin,
208
206
  size: size,
209
207
  tabIndex: tabIndex,
210
208
  ref: dateRef
211
- })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
209
+ })), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(StyledPopoverContent, {
212
210
  sideOffset: error ? -18 : 2,
213
211
  align: "end",
214
212
  "aria-modal": true,
@@ -218,10 +216,8 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
218
216
  }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
219
217
  id: calendarId,
220
218
  onDateSelect: handleCalendarOnClick,
221
- date: getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase())
222
- })))));
219
+ date: dayjsDate
220
+ }))))));
223
221
  });
224
-
225
- var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
226
- var _default = DxcDateInput;
227
- exports["default"] = _default;
222
+ var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
223
+ var _default = exports["default"] = DxcDateInput;
@@ -1,17 +1,29 @@
1
1
  import React from "react";
2
2
  import { userEvent, within, fireEvent, screen } from "@storybook/testing-library";
3
3
  import DxcDateInput from "./DateInput";
4
+ import DxcDatePicker from "./DatePicker";
5
+ import YearPicker from "./YearPicker";
6
+ import Calendar from "./Calendar";
4
7
  import Title from "../../.storybook/components/Title";
5
8
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
- import { BackgroundColorProvider } from "../BackgroundColorContext";
7
- import DarkContainer from "../../.storybook/components/DarkSection";
9
+ import dayjs from "dayjs";
10
+ import useTheme from "../useTheme";
11
+ import { ThemeProvider } from "styled-components";
12
+ import { HalstackProvider } from "../HalstackContext";
8
13
 
9
14
  export default {
10
- title: "Date input",
15
+ title: "Date Input",
11
16
  component: DxcDateInput,
12
17
  };
13
18
 
14
- export const Chromatic = () => (
19
+ const opinionatedTheme = {
20
+ dateInput: {
21
+ baseColor: "#5f249f",
22
+ selectedFontColor: "#ffffff",
23
+ },
24
+ };
25
+
26
+ const DateInputChromatic = () => (
15
27
  <>
16
28
  <ExampleContainer>
17
29
  <Title title="Complete date input" theme="light" level={4} />
@@ -22,46 +34,29 @@ export const Chromatic = () => (
22
34
  <DxcDateInput
23
35
  label="Disabled date input"
24
36
  helperText="Help message"
25
- defaultValue="06-04-2027"
37
+ defaultValue="06-04-2007"
26
38
  clearable
27
39
  disabled
28
40
  />
29
41
  </ExampleContainer>
42
+ <ExampleContainer>
43
+ <Title title="Read only" theme="light" level={4} />
44
+ <DxcDateInput
45
+ label="Example label"
46
+ helperText="Help message"
47
+ defaultValue="06-04-2007"
48
+ clearable
49
+ readOnly
50
+ />
51
+ </ExampleContainer>
30
52
  <ExampleContainer>
31
53
  <Title title="Invalid" theme="light" level={4} />
32
54
  <DxcDateInput label="Error date input" error="Error message." placeholder />
33
55
  </ExampleContainer>
34
56
  <ExampleContainer>
35
57
  <Title title="Relation between icons" theme="light" level={4} />
36
- <DxcDateInput label="Error date input" error="Error message." defaultValue="06-04-2027" clearable />
37
- </ExampleContainer>
38
- <BackgroundColorProvider color="#333333">
39
- <DarkContainer>
40
- <Title title="Dark" theme="dark" level={2} />
41
- <ExampleContainer>
42
- <Title title="Complete date input" theme="dark" level={4} />
43
- <DxcDateInput label="Date input" helperText="Help message" format="yyyy/dd/mm" placeholder optional />
44
- </ExampleContainer>
45
- <ExampleContainer>
46
- <Title title="Disabled" theme="dark" level={4} />
47
- <DxcDateInput
48
- label="Disabled Date input"
49
- helperText="Help message"
50
- defaultValue="06-04-2027"
51
- clearable
52
- disabled
53
- />
54
- </ExampleContainer>
55
- <ExampleContainer>
56
- <Title title="Invalid" theme="dark" level={4} />
57
- <DxcDateInput label="Error date input" error="Error message." placeholder />
58
- </ExampleContainer>
59
- <ExampleContainer>
60
- <Title title="Relation between icons" theme="dark" level={4} />
61
- <DxcDateInput label="Error date input" defaultValue="06-04-2027" error="Error message." clearable />
62
- </ExampleContainer>
63
- </DarkContainer>
64
- </BackgroundColorProvider>
58
+ <DxcDateInput label="Error date input" error="Error message." defaultValue="06-04-2007" clearable />
59
+ </ExampleContainer>
65
60
  <Title title="Margins" theme="light" level={2} />
66
61
  <ExampleContainer>
67
62
  <Title title="Xxsmall" theme="light" level={4} />
@@ -104,48 +99,187 @@ export const Chromatic = () => (
104
99
  <Title title="FillParent size" theme="light" level={4} />
105
100
  <DxcDateInput label="FillParent" size="fillParent" />
106
101
  </ExampleContainer>
102
+ <ExampleContainer expanded>
103
+ <Title title="Year picker" theme="light" level={4} />
104
+ <DxcDateInput label="Date input" defaultValue="06-04-1905" />
105
+ </ExampleContainer>
107
106
  </>
108
107
  );
109
108
 
110
- const DatePicker = () => (
111
- <ExampleContainer expanded>
112
- <Title title="Show date picker" theme="light" level={4} />
113
- <DxcDateInput label="Date input" defaultValue="06-04-2027" />
114
- </ExampleContainer>
109
+ export const Chromatic = DateInputChromatic.bind({});
110
+ Chromatic.play = async ({ canvasElement }) => {
111
+ const canvas = within(canvasElement);
112
+ await userEvent.click(canvas.getAllByRole("combobox")[canvas.getAllByRole("combobox").length - 1]);
113
+ await fireEvent.click(screen.getByText("April 1905"));
114
+ };
115
+
116
+ const DateInputOpinionatedTheme = () => (
117
+ <>
118
+ <Title title="Opinionated theme" theme="light" level={2} />
119
+ <ExampleContainer>
120
+ <Title title="Enabled" theme="light" level={4} />
121
+ <HalstackProvider theme={opinionatedTheme}>
122
+ <DxcDateInput
123
+ label="Date input"
124
+ helperText="Help message"
125
+ format="dd/mm/yy"
126
+ placeholder
127
+ optional
128
+ defaultValue="10-10-2022"
129
+ />
130
+ </HalstackProvider>
131
+ </ExampleContainer>
132
+ <ExampleContainer>
133
+ <Title title="Disabled" theme="light" level={4} />
134
+ <HalstackProvider theme={opinionatedTheme}>
135
+ <DxcDateInput label="Date input" helperText="Help message" format="dd/mm/yy" placeholder optional />
136
+ </HalstackProvider>
137
+ </ExampleContainer>
138
+ <ExampleContainer>
139
+ <Title title="Invalid" theme="light" level={4} />
140
+ <HalstackProvider theme={opinionatedTheme}>
141
+ <DxcDateInput label="Error date input" error="Error message." placeholder />
142
+ </HalstackProvider>
143
+ </ExampleContainer>
144
+ <ExampleContainer expanded>
145
+ <Title title="Date picker" theme="light" level={4} />
146
+ <HalstackProvider theme={opinionatedTheme}>
147
+ <DxcDateInput label="Date input" defaultValue="06-04-1905" />
148
+ </HalstackProvider>
149
+ </ExampleContainer>
150
+ </>
115
151
  );
116
152
 
117
- export const ShowDatePicker = DatePicker.bind({});
118
- ShowDatePicker.play = async ({ canvasElement }) => {
153
+ export const DateInputOpinionated = DateInputOpinionatedTheme.bind({});
154
+ DateInputOpinionated.play = async ({ canvasElement }) => {
119
155
  const canvas = within(canvasElement);
120
- const dateBtn = canvas.getByRole("combobox");
121
- await userEvent.click(dateBtn);
156
+ await userEvent.click(canvas.getAllByRole("combobox")[canvas.getAllByRole("combobox").length - 1]);
122
157
  };
123
158
 
124
- const YearPicker = () => (
159
+ const YearPickerOpinionatedTheme = () => (
125
160
  <ExampleContainer expanded>
126
- <Title title="Show year picker" theme="light" level={4} />
127
- <DxcDateInput label="Date input" defaultValue="06-04-2027" />
161
+ <Title title="Year picker" theme="light" level={4} />
162
+ <HalstackProvider theme={opinionatedTheme}>
163
+ <DxcDateInput label="Date input" defaultValue="06-04-1905" />
164
+ </HalstackProvider>
128
165
  </ExampleContainer>
129
166
  );
130
167
 
131
- export const ShowYearPicker = YearPicker.bind({});
132
- ShowYearPicker.play = async ({ canvasElement }) => {
168
+ export const YearPickerOpinionated = YearPickerOpinionatedTheme.bind({});
169
+ YearPickerOpinionated.play = async ({ canvasElement }) => {
133
170
  const canvas = within(canvasElement);
134
171
  await userEvent.click(canvas.getByRole("combobox"));
135
- await fireEvent.click(screen.getByText("April 2027"));
172
+ await fireEvent.click(screen.getByText("April 1905"));
136
173
  };
137
174
 
138
- const YearPickerFocus = () => (
139
- <ExampleContainer expanded>
140
- <Title title="Show year picker and focus" theme="light" level={4} />
141
- <DxcDateInput label="Date input" defaultValue="06-04-2027" />
142
- </ExampleContainer>
143
- );
175
+ const DatePickerButtonStates = () => {
176
+ const colorsTheme: any = useTheme();
177
+ return (
178
+ <>
179
+ <ExampleContainer>
180
+ <Title title="Show date picker over another element with z-index 0" theme="light" level={4} />
181
+ <div
182
+ style={{
183
+ display: "flex",
184
+ flexDirection: "column",
185
+ gap: "20px",
186
+ height: "200px",
187
+ width: "500px",
188
+ marginBottom: "250px",
189
+ padding: "20px",
190
+ border: "1px solid black",
191
+ borderRadius: "4px",
192
+ overflow: "auto",
193
+ zIndex: "1300",
194
+ position: "relative",
195
+ }}
196
+ >
197
+ <DxcDateInput label="From" defaultValue="01-12-1995" />
198
+ <DxcDateInput label="To" />
199
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
200
+ </div>
201
+ </ExampleContainer>
202
+ <ThemeProvider theme={colorsTheme}>
203
+ <ExampleContainer pseudoState="pseudo-focus">
204
+ <Title title="Isolated calendar focused" theme="light" level={4} />
205
+ <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
206
+ </ExampleContainer>
207
+ <ExampleContainer pseudoState="pseudo-hover">
208
+ <Title title="Isolated calendar hovered" theme="light" level={4} />
209
+ <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
210
+ </ExampleContainer>
211
+ <ExampleContainer pseudoState="pseudo-active">
212
+ <Title title="Isolated calendar actived" theme="light" level={4} />
213
+ <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
214
+ </ExampleContainer>
215
+ </ThemeProvider>
216
+ </>
217
+ );
218
+ };
144
219
 
145
- export const ShowYearPickerFocus = YearPickerFocus.bind({});
146
- ShowYearPickerFocus.play = async ({ canvasElement }) => {
220
+ export const DatePickerStates = DatePickerButtonStates.bind({});
221
+ DatePickerStates.play = async ({ canvasElement }) => {
147
222
  const canvas = within(canvasElement);
148
- await userEvent.click(canvas.getByRole("combobox"));
149
- await fireEvent.click(screen.getByText("April 2027"));
150
- await userEvent.tab();
223
+ const dateBtn = canvas.getAllByTitle("Open calendar")[0];
224
+ await userEvent.click(dateBtn);
225
+ };
226
+
227
+ export const YearPickerStates = () => {
228
+ const colorsTheme: any = useTheme();
229
+ return (
230
+ <>
231
+ <ThemeProvider theme={colorsTheme}>
232
+ <ExampleContainer pseudoState="pseudo-focus">
233
+ <Title title="Isolated year picker focused" theme="light" level={4} />
234
+ <YearPicker
235
+ selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
236
+ onYearSelect={() => {}}
237
+ today={dayjs("1904-04-03", "YYYY-MM-DD")}
238
+ />
239
+ </ExampleContainer>
240
+ <ExampleContainer pseudoState="pseudo-hover">
241
+ <Title title="Isolated year picker hovered" theme="light" level={4} />
242
+ <YearPicker
243
+ selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
244
+ onYearSelect={() => {}}
245
+ today={dayjs("1904-04-03", "YYYY-MM-DD")}
246
+ />
247
+ </ExampleContainer>
248
+ <ExampleContainer pseudoState="pseudo-active">
249
+ <Title title="Isolated year picker actived" theme="light" level={4} />
250
+ <YearPicker
251
+ selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
252
+ onYearSelect={() => {}}
253
+ today={dayjs("1904-04-03", "YYYY-MM-DD")}
254
+ />
255
+ </ExampleContainer>
256
+ </ThemeProvider>
257
+ </>
258
+ );
259
+ };
260
+
261
+ export const DatePickerWithToday = () => {
262
+ const colorsTheme: any = useTheme();
263
+ return (
264
+ <ThemeProvider theme={colorsTheme}>
265
+ <ExampleContainer>
266
+ <Title title="Isolated calendar with today" theme="light" level={4} />
267
+ <Calendar
268
+ selectedDate={dayjs("06-04-1904", "DD-MM-YYYY")}
269
+ today={dayjs("1904-04-03", "YYYY-MM-DD")}
270
+ onInnerDateChange={() => {}}
271
+ onDaySelect={() => {}}
272
+ innerDate={dayjs("06-04-1904", "DD-MM-YYYY")}
273
+ />
274
+ </ExampleContainer>
275
+ <ExampleContainer>
276
+ <Title title="Isolated year picker with today" theme="light" level={4} />
277
+ <YearPicker
278
+ selectedDate={dayjs("06-04-1905", "DD-MM-YYYY")}
279
+ onYearSelect={() => {}}
280
+ today={dayjs("1904-04-03", "YYYY-MM-DD")}
281
+ />
282
+ </ExampleContainer>
283
+ </ThemeProvider>
284
+ );
151
285
  };