@kaizen/components 1.52.1 → 1.54.0

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 (228) hide show
  1. package/dist/cjs/Calendar/CalendarRange/CalendarRange.cjs +0 -2
  2. package/dist/cjs/Calendar/CalendarSingle/CalendarSingle.cjs +3 -5
  3. package/dist/cjs/DatePicker/DatePicker.cjs +8 -1
  4. package/dist/cjs/DatePicker/utils/getLocale.cjs +96 -3
  5. package/dist/cjs/DatePicker/utils/validateDate.cjs +28 -2
  6. package/dist/cjs/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.cjs +8 -1
  7. package/dist/cjs/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.cjs +14 -2
  8. package/dist/cjs/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.cjs +1 -0
  9. package/dist/cjs/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs +10 -1
  10. package/dist/cjs/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.cjs +8 -1
  11. package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.cjs +5 -1
  12. package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.cjs +1 -0
  13. package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.cjs +1 -0
  14. package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.cjs +16 -1
  15. package/dist/esm/Calendar/CalendarRange/CalendarRange.mjs +0 -2
  16. package/dist/esm/Calendar/CalendarSingle/CalendarSingle.mjs +3 -5
  17. package/dist/esm/DatePicker/DatePicker.mjs +8 -1
  18. package/dist/esm/DatePicker/utils/getLocale.mjs +97 -4
  19. package/dist/esm/DatePicker/utils/validateDate.mjs +22 -2
  20. package/dist/esm/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.mjs +8 -1
  21. package/dist/esm/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.mjs +14 -2
  22. package/dist/esm/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.mjs +1 -0
  23. package/dist/esm/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs +10 -1
  24. package/dist/esm/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.mjs +8 -1
  25. package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.mjs +5 -1
  26. package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.mjs +1 -0
  27. package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.mjs +1 -0
  28. package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.mjs +10 -1
  29. package/dist/styles.css +2 -2
  30. package/dist/types/AvatarGroup/_docs/example-data.d.ts +8 -0
  31. package/dist/types/BrandMoment/_docs/ExampleHeaders.d.ts +3 -0
  32. package/dist/types/Calendar/_docs/controls/defaultMonthControls.d.ts +2 -0
  33. package/dist/types/Calendar/_docs/controls/weekStartsOnControls.d.ts +2 -0
  34. package/dist/types/Container/Container.d.ts +1 -1
  35. package/dist/types/Content/Content.d.ts +1 -1
  36. package/dist/types/DateInput/DateInput/DateInput.d.ts +1 -1
  37. package/dist/types/DatePicker/DatePicker.d.ts +3 -3
  38. package/dist/types/DatePicker/_docs/controls/datePickerLocaleControls.d.ts +2 -0
  39. package/dist/types/DatePicker/_docs/controls/disabledDayMatchersControls.d.ts +2 -0
  40. package/dist/types/DatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
  41. package/dist/types/DatePicker/types.d.ts +2 -1
  42. package/dist/types/DatePicker/utils/getLocale.d.ts +1 -2
  43. package/dist/types/DateRangePicker/DateRangePicker.d.ts +2 -2
  44. package/dist/types/Filter/FilterBar/context/types.d.ts +28 -0
  45. package/dist/types/Filter/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.d.ts +1 -1
  46. package/dist/types/Filter/FilterDatePicker/_docs/controls/disabledDaysControls.d.ts +2 -0
  47. package/dist/types/Filter/FilterDatePicker/_docs/controls/validationControls.d.ts +2 -0
  48. package/dist/types/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
  49. package/dist/types/Filter/FilterDateRangePicker/_docs/controls/disabledDaysControls.d.ts +2 -0
  50. package/dist/types/Filter/FilterDateRangePicker/_docs/controls/validationControls.d.ts +2 -0
  51. package/dist/types/Filter/FilterMultiSelect/_docs/MockData.d.ts +10 -0
  52. package/dist/types/Filter/FilterSelect/_docs/mockData.d.ts +6 -0
  53. package/dist/types/Filter/_docs/controls/renderTriggerControls.d.ts +2 -0
  54. package/dist/types/Menu/_docs/MenuContentExample.d.ts +8 -0
  55. package/dist/types/Menu/_docs/examples.d.ts +11 -0
  56. package/dist/types/Modal/_docs/controls.d.ts +11 -0
  57. package/dist/types/MultiSelect/MultiSelect.d.ts +23 -0
  58. package/dist/types/MultiSelect/subcomponents/MultiSelectOptions/MultiSelectOptions.d.ts +13 -0
  59. package/dist/types/Select/Select.d.ts +3 -3
  60. package/dist/types/Workflow/_docs/controls/controls.d.ts +2 -0
  61. package/dist/types/Workflow/_docs/controls/index.d.ts +1 -0
  62. package/dist/types/__future__/Select/Select.d.ts +2 -2
  63. package/dist/types/__future__/Select/_docs/mockData.d.ts +6 -0
  64. package/dist/types/__future__/Select/subcomponents/SelectToggle/SelectToggle.d.ts +2 -2
  65. package/dist/types/__future__/Select/types.d.ts +22 -0
  66. package/dist/types/__future__/Workflow/_docs/controls/controls.d.ts +2 -0
  67. package/dist/types/__future__/Workflow/_docs/controls/index.d.ts +1 -0
  68. package/dist/types/__overlays__/Tooltip/v1/utils/isSemanticElement.d.ts +2 -2
  69. package/dist/types/utils/getNodeText.d.ts +2 -1
  70. package/locales/en.json +40 -0
  71. package/package.json +3 -3
  72. package/src/Avatar/_docs/Avatar.mdx +1 -1
  73. package/src/AvatarGroup/_docs/AvatarGroup.mdx +1 -1
  74. package/src/Badge/_docs/Badge.mdx +1 -1
  75. package/src/Brand/_docs/Brand.mdx +1 -1
  76. package/src/BrandMoment/_docs/BrandMoment.mdx +1 -1
  77. package/src/Button/Button/_docs/Button.mdx +1 -1
  78. package/src/Button/IconButton/_docs/IconButton.mdx +1 -1
  79. package/src/ButtonGroup/_docs/ButtonGroup.mdx +1 -1
  80. package/src/Calendar/CalendarRange/CalendarRange.tsx +0 -2
  81. package/src/Calendar/CalendarRange/_docs/CalendarRange.mdx +1 -1
  82. package/src/Calendar/CalendarSingle/CalendarSingle.tsx +1 -2
  83. package/src/Calendar/CalendarSingle/_docs/CalendarSingle.mdx +1 -1
  84. package/src/Card/_docs/Card.mdx +1 -1
  85. package/src/Checkbox/Checkbox/_docs/Checkbox.mdx +1 -1
  86. package/src/Checkbox/CheckboxField/_docs/CheckboxField.mdx +1 -1
  87. package/src/Checkbox/CheckboxGroup/_docs/CheckboxGroup.mdx +1 -1
  88. package/src/Collapsible/Collapsible/_docs/Collapsible.mdx +1 -1
  89. package/src/Collapsible/CollapsibleGroup/_docs/CollapsibleGroup.mdx +1 -1
  90. package/src/Collapsible/ExpertAdviceCollapsible/_docs/ExpertAdviceCollapsible.mdx +1 -1
  91. package/src/Container/_docs/Container.mdx +1 -1
  92. package/src/Content/_docs/Content.mdx +1 -1
  93. package/src/DateInput/DateInputDescription/DateInputDescription.spec.tsx +26 -18
  94. package/src/DatePicker/DatePicker.spec.tsx +100 -69
  95. package/src/DatePicker/DatePicker.tsx +15 -7
  96. package/src/DatePicker/_docs/DatePicker.mdx +1 -3
  97. package/src/DatePicker/_docs/DatePicker.stickersheet.stories.tsx +57 -21
  98. package/src/DatePicker/_docs/DatePicker.stories.tsx +2 -3
  99. package/src/DatePicker/_docs/controls/datePickerLocaleControls.ts +8 -2
  100. package/src/DatePicker/_docs/getLocale.stickersheet.stories.tsx +49 -0
  101. package/src/DatePicker/subcomponents/DateInputField/DateInputField.spec.tsx +49 -36
  102. package/src/DatePicker/types.ts +2 -1
  103. package/src/DatePicker/utils/getLocale.spec.ts +2 -2
  104. package/src/DatePicker/utils/getLocale.ts +141 -6
  105. package/src/DatePicker/utils/validateDate.spec.ts +40 -16
  106. package/src/DatePicker/utils/{validateDate.ts → validateDate.tsx} +24 -4
  107. package/src/DateRangePicker/DateRangePicker.tsx +2 -2
  108. package/src/DateRangePicker/_docs/DateRangePicker.mdx +1 -1
  109. package/src/Divider/_docs/Divider.mdx +1 -1
  110. package/src/EmptyState/_docs/EmptyState.mdx +1 -1
  111. package/src/ErrorPage/_docs/ErrorPage.mdx +1 -1
  112. package/src/FieldGroup/_docs/FieldGroup.mdx +1 -1
  113. package/src/FieldMessage/_docs/FieldMessage.mdx +1 -1
  114. package/src/Filter/Filter/_docs/Filter.mdx +1 -1
  115. package/src/Filter/FilterBar/FilterBar.spec.tsx +56 -25
  116. package/src/Filter/FilterBar/_docs/FilterBar.mdx +1 -1
  117. package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.spec.tsx +21 -13
  118. package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.tsx +11 -1
  119. package/src/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.tsx +17 -2
  120. package/src/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.spec.tsx +17 -8
  121. package/src/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.spec.tsx +37 -23
  122. package/src/Filter/FilterBar/subcomponents/FilterBarDateRangePicker/FilterBarDateRangePicker.spec.tsx +35 -23
  123. package/src/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.spec.tsx +42 -26
  124. package/src/Filter/FilterBar/subcomponents/FilterBarSelect/FilterBarSelect.spec.tsx +37 -24
  125. package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.spec.tsx +12 -12
  126. package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx +15 -2
  127. package/src/Filter/FilterButton/_docs/filter-buttons.mdx +1 -1
  128. package/src/Filter/FilterDatePicker/FilterDatePicker.spec.tsx +21 -16
  129. package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.mdx +1 -1
  130. package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.stickersheet.stories.tsx +56 -1
  131. package/src/Filter/FilterDatePicker/hooks/useDateInputHandlers.spec.ts +3 -3
  132. package/src/Filter/FilterDatePicker/hooks/{useDateValidation.spec.tsx → useDateValidation.spec.ts} +13 -12
  133. package/src/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.tsx +10 -1
  134. package/src/Filter/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.spec.tsx +57 -36
  135. package/src/Filter/FilterDatePicker/utils/validateDate.spec.ts +52 -28
  136. package/src/Filter/FilterDateRangePicker/FilterDateRangePicker.spec.tsx +3 -2
  137. package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.mdx +1 -1
  138. package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.stickersheet.stories.tsx +55 -24
  139. package/src/Filter/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.spec.tsx +43 -28
  140. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.spec.tsx +82 -48
  141. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.tsx +6 -1
  142. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/{useEndDateValidation.spec.tsx → useEndDateValidation.spec.ts} +23 -20
  143. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/{useStartDateValidation.spec.tsx → useStartDateValidation.spec.ts} +13 -11
  144. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.spec.ts +17 -6
  145. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/{validateEndDateBeforeStartDate.ts → validateEndDateBeforeStartDate.tsx} +9 -3
  146. package/src/Filter/FilterMultiSelect/FilterMultiSelect.spec.tsx +10 -14
  147. package/src/Filter/FilterMultiSelect/_docs/FilterMultiSelect.mdx +1 -1
  148. package/src/Filter/FilterMultiSelect/context/SelectionProvider/SelectionProvider.spec.tsx +392 -372
  149. package/src/Filter/FilterMultiSelect/subcomponents/SearchInput/SearchInput.spec.tsx +9 -6
  150. package/src/Filter/FilterSelect/_docs/FilterSelect.mdx +1 -1
  151. package/src/GuidanceBlock/_docs/GuidanceBlock.mdx +1 -1
  152. package/src/Heading/_docs/Heading.mdx +1 -1
  153. package/src/Icon/_docs/Icon.mdx +1 -1
  154. package/src/Illustration/Scene/BrandMomentCaptureIntro/_docs/BrandMomentCaptureIntro.mdx +1 -1
  155. package/src/Illustration/Scene/_docs/Scene.mdx +1 -1
  156. package/src/Illustration/Spot/_docs/Spot.mdx +1 -1
  157. package/src/Input/Input/_docs/Input.mdx +1 -1
  158. package/src/Input/InputRange/_docs/InputRange.mdx +1 -1
  159. package/src/Input/InputSearch/InputSearch.spec.tsx +15 -14
  160. package/src/Input/InputSearch/_docs/InputSearch.mdx +1 -1
  161. package/src/Label/_docs/Label.mdx +1 -1
  162. package/src/LabelledMessage/_docs/LabelledMessage.mdx +1 -1
  163. package/src/LikertScaleLegacy/_docs/LikertScaleLegacy.mdx +1 -1
  164. package/src/Loading/LoadingGraphic/_docs/LoadingGraphic.mdx +1 -1
  165. package/src/Loading/LoadingHeading/_docs/LoadingHeading.mdx +1 -1
  166. package/src/Loading/LoadingInput/_docs/LoadingInput.mdx +1 -1
  167. package/src/Loading/LoadingParagraph/_docs/LoadingParagraph.mdx +1 -1
  168. package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.mdx +1 -1
  169. package/src/Menu/_docs/Menu.mdx +1 -1
  170. package/src/Modal/ConfirmationModal/_docs/ConfirmationModal.mdx +1 -1
  171. package/src/Modal/ContextModal/_docs/ContextModal.mdx +1 -1
  172. package/src/Modal/GenericModal/_docs/GenericModal.mdx +1 -1
  173. package/src/Modal/InputEditModal/_docs/InputEditModal.mdx +1 -1
  174. package/src/MultiSelect/_docs/MultiSelect.mdx +1 -1
  175. package/src/Notification/GlobalNotification/_docs/GlobalNotification.mdx +1 -1
  176. package/src/Notification/InlineNotification/_docs/InlineNotification.mdx +1 -1
  177. package/src/Notification/ToastNotification/_docs/ToastNotification.mdx +1 -1
  178. package/src/Pagination/_docs/Pagination.mdx +1 -1
  179. package/src/Pagination/subcomponents/DirectionalLink/_docs/DirectionalLink.mdx +1 -1
  180. package/src/Pagination/subcomponents/PaginationLink/_docs/PaginationLink.mdx +1 -1
  181. package/src/Popover/_docs/Popover.mdx +1 -1
  182. package/src/ProgressBar/_docs/ProgressBar.mdx +1 -1
  183. package/src/Radio/Radio/_docs/Radio.mdx +1 -1
  184. package/src/Radio/RadioField/_docs/RadioField.mdx +1 -1
  185. package/src/Radio/RadioGroup/_docs/RadioGroup.mdx +1 -1
  186. package/src/RichTextEditor/EditableRichTextContent/_docs/EditableRichTextContent.mdx +1 -1
  187. package/src/RichTextEditor/RichTextContent/_docs/RichTextContent.mdx +1 -1
  188. package/src/RichTextEditor/RichTextEditor/_docs/RichTextEditor.mdx +1 -1
  189. package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/_docs/ToggleIconButton.mdx +1 -1
  190. package/src/RichTextEditor/RichTextEditor/subcomponents/Toolbar/_docs/Toolbar.mdx +1 -1
  191. package/src/SearchField/_docs/SearchField.mdx +1 -1
  192. package/src/Select/_docs/Select.mdx +1 -1
  193. package/src/Skirt/_docs/Skirt.mdx +1 -1
  194. package/src/Slider/_docs/Slider.mdx +1 -1
  195. package/src/SplitButton/SplitButton.spec.tsx +11 -6
  196. package/src/SplitButton/_docs/SplitButton.mdx +1 -1
  197. package/src/SplitButton/subcomponents/DropdownButton/DropdownButton.spec.tsx +15 -10
  198. package/src/Table/_docs/Table.mdx +1 -1
  199. package/src/Tabs/_docs/Tabs.mdx +1 -1
  200. package/src/Tag/_docs/Tag.mdx +1 -1
  201. package/src/Text/_docs/Text.mdx +1 -1
  202. package/src/TextArea/_docs/TextArea.mdx +1 -1
  203. package/src/TextAreaField/_docs/TextAreaField.mdx +1 -1
  204. package/src/TextField/_docs/TextField.mdx +1 -1
  205. package/src/Tile/InformationTile/_docs/InformationTile.mdx +1 -1
  206. package/src/Tile/MultiActionTile/_docs/MultiActionTile.mdx +1 -1
  207. package/src/Tile/TileGrid/_docs/TileGrid.mdx +1 -1
  208. package/src/TimeField/_docs/TimeField.mdx +1 -1
  209. package/src/TitleBlockZen/_docs/TitleBlockZen.mdx +1 -1
  210. package/src/ToggleSwitch/ToggleSwitch/_docs/ToggleSwitch.mdx +1 -1
  211. package/src/ToggleSwitch/ToggleSwitchField/_docs/ToggleSwitchField.mdx +1 -1
  212. package/src/VisuallyHidden/_docs/VisuallyHidden.mdx +1 -1
  213. package/src/Well/_docs/Well.mdx +1 -1
  214. package/src/Workflow/_docs/ProgressStepper.mdx +1 -1
  215. package/src/Workflow/_docs/Workflow.mdx +1 -1
  216. package/src/Workflow/_docs/WorkflowFooter.mdx +1 -1
  217. package/src/Workflow/_docs/WorkflowHeader.mdx +1 -1
  218. package/src/__future__/Select/_docs/Select.mdx +1 -1
  219. package/src/__future__/Tag/Tag/_docs/Tag.mdx +1 -1
  220. package/src/__future__/Workflow/_docs/ProgressStepper.mdx +1 -1
  221. package/src/__future__/Workflow/_docs/Workflow.mdx +1 -1
  222. package/src/__future__/Workflow/_docs/WorkflowFooter.mdx +1 -1
  223. package/src/__future__/Workflow/_docs/WorkflowHeader.mdx +1 -1
  224. package/src/__overlays__/Tooltip/v1/_docs/Tooltip.mdx +1 -1
  225. package/src/__overlays__/Tooltip/v3/_docs/ApiSpecification.mdx +0 -1
  226. package/src/__overlays__/Tooltip/v3/_docs/Tooltip.docs.stories.tsx +52 -0
  227. package/src/__overlays__/Tooltip/v3/_docs/Tooltip.mdx +40 -61
  228. package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_spec.png +0 -0
@@ -1,11 +1,12 @@
1
- import React, { act } from "react"
1
+ import { act } from "react"
2
+ import { waitFor } from "@testing-library/react"
2
3
  import { renderHook } from "@testing-library/react-hooks"
3
- import { LabelledMessage } from "~components/LabelledMessage"
4
+ import { renderWithIntl } from "~tests"
4
5
  import { useStartDateValidation } from "./useStartDateValidation"
5
6
 
6
7
  describe("useStartDateValidation()", () => {
7
8
  describe("validateDate()", () => {
8
- it("returns a validation message and no date", () => {
9
+ it("returns a validation message and no date", async () => {
9
10
  const { result } = renderHook(() =>
10
11
  useStartDateValidation({
11
12
  inputLabel: "Start date",
@@ -21,14 +22,15 @@ describe("useStartDateValidation()", () => {
21
22
  expect(newDate).toBeUndefined()
22
23
  })
23
24
 
24
- expect(result.current.validationMessage).toStrictEqual({
25
- status: "error",
26
- message: (
27
- <LabelledMessage
28
- label="Start date"
29
- message="potato is an invalid date"
30
- />
31
- ),
25
+ expect(result.current.validationMessage?.status).toBe("error")
26
+
27
+ const { container } = renderWithIntl(
28
+ result.current.validationMessage?.message
29
+ )
30
+ await waitFor(() => {
31
+ expect(container).toHaveTextContent(
32
+ "Start date:potato is an invalid date"
33
+ )
32
34
  })
33
35
  })
34
36
  })
@@ -1,3 +1,5 @@
1
+ import { screen, waitFor } from "@testing-library/react"
2
+ import { renderWithIntl } from "~tests"
1
3
  import { validateEndDateBeforeStartDate } from "./validateEndDateBeforeStartDate"
2
4
 
3
5
  describe("validateEndDateBeforeStartDate()", () => {
@@ -83,19 +85,28 @@ describe("validateEndDateBeforeStartDate()", () => {
83
85
  })
84
86
  })
85
87
 
86
- it("returns a response with an error status and validation message", () => {
87
- expect(result.validationResponse).toStrictEqual({
88
+ it("returns a response with an error status and validation message", async () => {
89
+ const { validationMessage, ...response } = result.validationResponse
90
+
91
+ expect(response).toStrictEqual({
88
92
  date: endDate,
89
93
  inputValue: endDateInputValue,
90
- validationMessage: {
91
- status: "error",
92
- message: 'Cannot be earlier than the selection in "Start date"',
93
- },
94
94
  isInvalid: false,
95
95
  isDisabled: false,
96
96
  isEmpty: false,
97
97
  isValidDate: true,
98
98
  })
99
+
100
+ expect(validationMessage?.status).toBe("error")
101
+
102
+ renderWithIntl(validationMessage?.message)
103
+ await waitFor(() => {
104
+ expect(
105
+ screen.getByText(
106
+ 'Cannot be earlier than the selection in "Start date"'
107
+ )
108
+ ).toBeVisible()
109
+ })
99
110
  })
100
111
 
101
112
  it("returns the new end date", () => {
@@ -1,4 +1,5 @@
1
1
  import React from "react"
2
+ import { FormattedMessage } from "@cultureamp/i18n-react-intl"
2
3
  import { DateValidationResponse } from "~components/Filter/FilterDatePicker"
3
4
  import { getNodeText } from "~utils/getNodeText"
4
5
  import { isValidRange } from "./isValidRange"
@@ -37,9 +38,14 @@ export const validateEndDateBeforeStartDate = ({
37
38
  ...baseResponse,
38
39
  validationMessage: {
39
40
  status: "error",
40
- message: `Cannot be earlier than the selection in "${getNodeText(
41
- startDateFieldLabel
42
- )}"`,
41
+ message: (
42
+ <FormattedMessage
43
+ id="date.validation.rangeEndBeforeRangeStart"
44
+ defaultMessage='Cannot be earlier than the selection in "{startDateFieldLabel}"'
45
+ description="Error message when the user tries to select an end date earlier than the start date"
46
+ values={{ startDateFieldLabel: getNodeText(startDateFieldLabel) }}
47
+ />
48
+ ),
43
49
  },
44
50
  },
45
51
  newDate: endDate,
@@ -1,7 +1,8 @@
1
1
  import React, { useState } from "react"
2
2
  import { Selection } from "@react-types/shared"
3
- import { render, waitFor } from "@testing-library/react"
3
+ import { waitFor } from "@testing-library/react"
4
4
  import userEvent from "@testing-library/user-event"
5
+ import { renderWithIntl } from "~tests"
5
6
  import { FilterMultiSelect, FilterMultiSelectProps } from "./FilterMultiSelect"
6
7
  import { ItemType } from "./types"
7
8
  import { getSelectedOptionLabels } from "./utils"
@@ -72,13 +73,8 @@ const FilterMultiSelectWrapper = ({
72
73
  }
73
74
 
74
75
  describe("<FilterMultiSelect>", () => {
75
- it("does not show the popover initially", () => {
76
- const { queryByRole } = render(<FilterMultiSelectWrapper />)
77
- expect(queryByRole("listbox")).not.toBeInTheDocument()
78
- })
79
-
80
76
  it("opens the popover using the trigger button", async () => {
81
- const { getByRole } = render(<FilterMultiSelectWrapper />)
77
+ const { getByRole } = renderWithIntl(<FilterMultiSelectWrapper />)
82
78
 
83
79
  const triggerButton = getByRole("button", { name: "Engineer : Front-End" })
84
80
  await user.click(triggerButton)
@@ -89,7 +85,7 @@ describe("<FilterMultiSelect>", () => {
89
85
  })
90
86
 
91
87
  it("selects an unselected option on click", async () => {
92
- const { getByRole } = render(<FilterMultiSelectWrapper isOpen />)
88
+ const { getByRole } = renderWithIntl(<FilterMultiSelectWrapper isOpen />)
93
89
 
94
90
  const devOpsOption = getByRole("option", {
95
91
  name: "Dev-ops",
@@ -103,7 +99,7 @@ describe("<FilterMultiSelect>", () => {
103
99
  })
104
100
 
105
101
  it("deselects a selected option on click", async () => {
106
- const { getByRole } = render(<FilterMultiSelectWrapper isOpen />)
102
+ const { getByRole } = renderWithIntl(<FilterMultiSelectWrapper isOpen />)
107
103
 
108
104
  const devOpsOption = getByRole("option", {
109
105
  name: "Front-End",
@@ -117,7 +113,7 @@ describe("<FilterMultiSelect>", () => {
117
113
  })
118
114
 
119
115
  it("filters out options which do not match the search term", async () => {
120
- const { getByRole, getAllByRole } = render(
116
+ const { getByRole, getAllByRole } = renderWithIntl(
121
117
  <FilterMultiSelectWrapper isOpen />
122
118
  )
123
119
  expect(getAllByRole("option")).toHaveLength(5)
@@ -131,7 +127,7 @@ describe("<FilterMultiSelect>", () => {
131
127
 
132
128
  describe("Clear button", () => {
133
129
  it("deselects all options when unfiltered", async () => {
134
- const { getByRole, queryAllByRole } = render(
130
+ const { getByRole, queryAllByRole } = renderWithIntl(
135
131
  <FilterMultiSelectWrapper
136
132
  isOpen
137
133
  selectedKeys={new Set(["id-fe", "id-devops"])}
@@ -147,7 +143,7 @@ describe("<FilterMultiSelect>", () => {
147
143
  })
148
144
 
149
145
  it("deselects only selected filtered options", async () => {
150
- const { getByRole, queryAllByRole } = render(
146
+ const { getByRole, queryAllByRole } = renderWithIntl(
151
147
  <FilterMultiSelectWrapper
152
148
  isOpen
153
149
  selectedKeys={new Set(["id-fe", "id-devops"])}
@@ -176,7 +172,7 @@ describe("<FilterMultiSelect>", () => {
176
172
  options.filter(option => option.hasAttribute("aria-disabled"))
177
173
 
178
174
  it("selects all non-disabled options when unfiltered", async () => {
179
- const { getByRole, queryAllByRole } = render(
175
+ const { getByRole, queryAllByRole } = renderWithIntl(
180
176
  <FilterMultiSelectWrapper isOpen selectedKeys={new Set([])} />
181
177
  )
182
178
 
@@ -191,7 +187,7 @@ describe("<FilterMultiSelect>", () => {
191
187
  })
192
188
 
193
189
  it("selects only non-disabled filtered options", async () => {
194
- const { getByRole, queryAllByRole } = render(
190
+ const { getByRole, queryAllByRole } = renderWithIntl(
195
191
  <FilterMultiSelectWrapper isOpen selectedKeys={new Set([])} />
196
192
  )
197
193
 
@@ -8,7 +8,7 @@ import * as FilterMultiSelectStories from "./FilterMultiSelect.stories"
8
8
 
9
9
  <ResourceLinks
10
10
  sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/FilterMultiSelect"
11
- className="!mb-8"
11
+
12
12
  />
13
13
 
14
14
  <KAIOInstallation exportNames="FilterMultiSelect" />