@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.
- package/dist/cjs/Calendar/CalendarRange/CalendarRange.cjs +0 -2
- package/dist/cjs/Calendar/CalendarSingle/CalendarSingle.cjs +3 -5
- package/dist/cjs/DatePicker/DatePicker.cjs +8 -1
- package/dist/cjs/DatePicker/utils/getLocale.cjs +96 -3
- package/dist/cjs/DatePicker/utils/validateDate.cjs +28 -2
- package/dist/cjs/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.cjs +8 -1
- package/dist/cjs/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.cjs +14 -2
- package/dist/cjs/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.cjs +1 -0
- package/dist/cjs/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs +10 -1
- package/dist/cjs/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.cjs +8 -1
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.cjs +5 -1
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.cjs +1 -0
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.cjs +1 -0
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.cjs +16 -1
- package/dist/esm/Calendar/CalendarRange/CalendarRange.mjs +0 -2
- package/dist/esm/Calendar/CalendarSingle/CalendarSingle.mjs +3 -5
- package/dist/esm/DatePicker/DatePicker.mjs +8 -1
- package/dist/esm/DatePicker/utils/getLocale.mjs +97 -4
- package/dist/esm/DatePicker/utils/validateDate.mjs +22 -2
- package/dist/esm/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.mjs +8 -1
- package/dist/esm/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.mjs +14 -2
- package/dist/esm/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.mjs +1 -0
- package/dist/esm/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs +10 -1
- package/dist/esm/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.mjs +8 -1
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.mjs +5 -1
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.mjs +1 -0
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.mjs +1 -0
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.mjs +10 -1
- package/dist/styles.css +2 -2
- package/dist/types/AvatarGroup/_docs/example-data.d.ts +8 -0
- package/dist/types/BrandMoment/_docs/ExampleHeaders.d.ts +3 -0
- package/dist/types/Calendar/_docs/controls/defaultMonthControls.d.ts +2 -0
- package/dist/types/Calendar/_docs/controls/weekStartsOnControls.d.ts +2 -0
- package/dist/types/Container/Container.d.ts +1 -1
- package/dist/types/Content/Content.d.ts +1 -1
- package/dist/types/DateInput/DateInput/DateInput.d.ts +1 -1
- package/dist/types/DatePicker/DatePicker.d.ts +3 -3
- package/dist/types/DatePicker/_docs/controls/datePickerLocaleControls.d.ts +2 -0
- package/dist/types/DatePicker/_docs/controls/disabledDayMatchersControls.d.ts +2 -0
- package/dist/types/DatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
- package/dist/types/DatePicker/types.d.ts +2 -1
- package/dist/types/DatePicker/utils/getLocale.d.ts +1 -2
- package/dist/types/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/dist/types/Filter/FilterBar/context/types.d.ts +28 -0
- package/dist/types/Filter/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.d.ts +1 -1
- package/dist/types/Filter/FilterDatePicker/_docs/controls/disabledDaysControls.d.ts +2 -0
- package/dist/types/Filter/FilterDatePicker/_docs/controls/validationControls.d.ts +2 -0
- package/dist/types/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
- package/dist/types/Filter/FilterDateRangePicker/_docs/controls/disabledDaysControls.d.ts +2 -0
- package/dist/types/Filter/FilterDateRangePicker/_docs/controls/validationControls.d.ts +2 -0
- package/dist/types/Filter/FilterMultiSelect/_docs/MockData.d.ts +10 -0
- package/dist/types/Filter/FilterSelect/_docs/mockData.d.ts +6 -0
- package/dist/types/Filter/_docs/controls/renderTriggerControls.d.ts +2 -0
- package/dist/types/Menu/_docs/MenuContentExample.d.ts +8 -0
- package/dist/types/Menu/_docs/examples.d.ts +11 -0
- package/dist/types/Modal/_docs/controls.d.ts +11 -0
- package/dist/types/MultiSelect/MultiSelect.d.ts +23 -0
- package/dist/types/MultiSelect/subcomponents/MultiSelectOptions/MultiSelectOptions.d.ts +13 -0
- package/dist/types/Select/Select.d.ts +3 -3
- package/dist/types/Workflow/_docs/controls/controls.d.ts +2 -0
- package/dist/types/Workflow/_docs/controls/index.d.ts +1 -0
- package/dist/types/__future__/Select/Select.d.ts +2 -2
- package/dist/types/__future__/Select/_docs/mockData.d.ts +6 -0
- package/dist/types/__future__/Select/subcomponents/SelectToggle/SelectToggle.d.ts +2 -2
- package/dist/types/__future__/Select/types.d.ts +22 -0
- package/dist/types/__future__/Workflow/_docs/controls/controls.d.ts +2 -0
- package/dist/types/__future__/Workflow/_docs/controls/index.d.ts +1 -0
- package/dist/types/__overlays__/Tooltip/v1/utils/isSemanticElement.d.ts +2 -2
- package/dist/types/utils/getNodeText.d.ts +2 -1
- package/locales/en.json +40 -0
- package/package.json +3 -3
- package/src/Avatar/_docs/Avatar.mdx +1 -1
- package/src/AvatarGroup/_docs/AvatarGroup.mdx +1 -1
- package/src/Badge/_docs/Badge.mdx +1 -1
- package/src/Brand/_docs/Brand.mdx +1 -1
- package/src/BrandMoment/_docs/BrandMoment.mdx +1 -1
- package/src/Button/Button/_docs/Button.mdx +1 -1
- package/src/Button/IconButton/_docs/IconButton.mdx +1 -1
- package/src/ButtonGroup/_docs/ButtonGroup.mdx +1 -1
- package/src/Calendar/CalendarRange/CalendarRange.tsx +0 -2
- package/src/Calendar/CalendarRange/_docs/CalendarRange.mdx +1 -1
- package/src/Calendar/CalendarSingle/CalendarSingle.tsx +1 -2
- package/src/Calendar/CalendarSingle/_docs/CalendarSingle.mdx +1 -1
- package/src/Card/_docs/Card.mdx +1 -1
- package/src/Checkbox/Checkbox/_docs/Checkbox.mdx +1 -1
- package/src/Checkbox/CheckboxField/_docs/CheckboxField.mdx +1 -1
- package/src/Checkbox/CheckboxGroup/_docs/CheckboxGroup.mdx +1 -1
- package/src/Collapsible/Collapsible/_docs/Collapsible.mdx +1 -1
- package/src/Collapsible/CollapsibleGroup/_docs/CollapsibleGroup.mdx +1 -1
- package/src/Collapsible/ExpertAdviceCollapsible/_docs/ExpertAdviceCollapsible.mdx +1 -1
- package/src/Container/_docs/Container.mdx +1 -1
- package/src/Content/_docs/Content.mdx +1 -1
- package/src/DateInput/DateInputDescription/DateInputDescription.spec.tsx +26 -18
- package/src/DatePicker/DatePicker.spec.tsx +100 -69
- package/src/DatePicker/DatePicker.tsx +15 -7
- package/src/DatePicker/_docs/DatePicker.mdx +1 -3
- package/src/DatePicker/_docs/DatePicker.stickersheet.stories.tsx +57 -21
- package/src/DatePicker/_docs/DatePicker.stories.tsx +2 -3
- package/src/DatePicker/_docs/controls/datePickerLocaleControls.ts +8 -2
- package/src/DatePicker/_docs/getLocale.stickersheet.stories.tsx +49 -0
- package/src/DatePicker/subcomponents/DateInputField/DateInputField.spec.tsx +49 -36
- package/src/DatePicker/types.ts +2 -1
- package/src/DatePicker/utils/getLocale.spec.ts +2 -2
- package/src/DatePicker/utils/getLocale.ts +141 -6
- package/src/DatePicker/utils/validateDate.spec.ts +40 -16
- package/src/DatePicker/utils/{validateDate.ts → validateDate.tsx} +24 -4
- package/src/DateRangePicker/DateRangePicker.tsx +2 -2
- package/src/DateRangePicker/_docs/DateRangePicker.mdx +1 -1
- package/src/Divider/_docs/Divider.mdx +1 -1
- package/src/EmptyState/_docs/EmptyState.mdx +1 -1
- package/src/ErrorPage/_docs/ErrorPage.mdx +1 -1
- package/src/FieldGroup/_docs/FieldGroup.mdx +1 -1
- package/src/FieldMessage/_docs/FieldMessage.mdx +1 -1
- package/src/Filter/Filter/_docs/Filter.mdx +1 -1
- package/src/Filter/FilterBar/FilterBar.spec.tsx +56 -25
- package/src/Filter/FilterBar/_docs/FilterBar.mdx +1 -1
- package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.spec.tsx +21 -13
- package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.tsx +11 -1
- package/src/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.tsx +17 -2
- package/src/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.spec.tsx +17 -8
- package/src/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.spec.tsx +37 -23
- package/src/Filter/FilterBar/subcomponents/FilterBarDateRangePicker/FilterBarDateRangePicker.spec.tsx +35 -23
- package/src/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.spec.tsx +42 -26
- package/src/Filter/FilterBar/subcomponents/FilterBarSelect/FilterBarSelect.spec.tsx +37 -24
- package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.spec.tsx +12 -12
- package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx +15 -2
- package/src/Filter/FilterButton/_docs/filter-buttons.mdx +1 -1
- package/src/Filter/FilterDatePicker/FilterDatePicker.spec.tsx +21 -16
- package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.mdx +1 -1
- package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.stickersheet.stories.tsx +56 -1
- package/src/Filter/FilterDatePicker/hooks/useDateInputHandlers.spec.ts +3 -3
- package/src/Filter/FilterDatePicker/hooks/{useDateValidation.spec.tsx → useDateValidation.spec.ts} +13 -12
- package/src/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.tsx +10 -1
- package/src/Filter/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.spec.tsx +57 -36
- package/src/Filter/FilterDatePicker/utils/validateDate.spec.ts +52 -28
- package/src/Filter/FilterDateRangePicker/FilterDateRangePicker.spec.tsx +3 -2
- package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.mdx +1 -1
- package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.stickersheet.stories.tsx +55 -24
- package/src/Filter/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.spec.tsx +43 -28
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.spec.tsx +82 -48
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.tsx +6 -1
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/{useEndDateValidation.spec.tsx → useEndDateValidation.spec.ts} +23 -20
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/{useStartDateValidation.spec.tsx → useStartDateValidation.spec.ts} +13 -11
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.spec.ts +17 -6
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/{validateEndDateBeforeStartDate.ts → validateEndDateBeforeStartDate.tsx} +9 -3
- package/src/Filter/FilterMultiSelect/FilterMultiSelect.spec.tsx +10 -14
- package/src/Filter/FilterMultiSelect/_docs/FilterMultiSelect.mdx +1 -1
- package/src/Filter/FilterMultiSelect/context/SelectionProvider/SelectionProvider.spec.tsx +392 -372
- package/src/Filter/FilterMultiSelect/subcomponents/SearchInput/SearchInput.spec.tsx +9 -6
- package/src/Filter/FilterSelect/_docs/FilterSelect.mdx +1 -1
- package/src/GuidanceBlock/_docs/GuidanceBlock.mdx +1 -1
- package/src/Heading/_docs/Heading.mdx +1 -1
- package/src/Icon/_docs/Icon.mdx +1 -1
- package/src/Illustration/Scene/BrandMomentCaptureIntro/_docs/BrandMomentCaptureIntro.mdx +1 -1
- package/src/Illustration/Scene/_docs/Scene.mdx +1 -1
- package/src/Illustration/Spot/_docs/Spot.mdx +1 -1
- package/src/Input/Input/_docs/Input.mdx +1 -1
- package/src/Input/InputRange/_docs/InputRange.mdx +1 -1
- package/src/Input/InputSearch/InputSearch.spec.tsx +15 -14
- package/src/Input/InputSearch/_docs/InputSearch.mdx +1 -1
- package/src/Label/_docs/Label.mdx +1 -1
- package/src/LabelledMessage/_docs/LabelledMessage.mdx +1 -1
- package/src/LikertScaleLegacy/_docs/LikertScaleLegacy.mdx +1 -1
- package/src/Loading/LoadingGraphic/_docs/LoadingGraphic.mdx +1 -1
- package/src/Loading/LoadingHeading/_docs/LoadingHeading.mdx +1 -1
- package/src/Loading/LoadingInput/_docs/LoadingInput.mdx +1 -1
- package/src/Loading/LoadingParagraph/_docs/LoadingParagraph.mdx +1 -1
- package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.mdx +1 -1
- package/src/Menu/_docs/Menu.mdx +1 -1
- package/src/Modal/ConfirmationModal/_docs/ConfirmationModal.mdx +1 -1
- package/src/Modal/ContextModal/_docs/ContextModal.mdx +1 -1
- package/src/Modal/GenericModal/_docs/GenericModal.mdx +1 -1
- package/src/Modal/InputEditModal/_docs/InputEditModal.mdx +1 -1
- package/src/MultiSelect/_docs/MultiSelect.mdx +1 -1
- package/src/Notification/GlobalNotification/_docs/GlobalNotification.mdx +1 -1
- package/src/Notification/InlineNotification/_docs/InlineNotification.mdx +1 -1
- package/src/Notification/ToastNotification/_docs/ToastNotification.mdx +1 -1
- package/src/Pagination/_docs/Pagination.mdx +1 -1
- package/src/Pagination/subcomponents/DirectionalLink/_docs/DirectionalLink.mdx +1 -1
- package/src/Pagination/subcomponents/PaginationLink/_docs/PaginationLink.mdx +1 -1
- package/src/Popover/_docs/Popover.mdx +1 -1
- package/src/ProgressBar/_docs/ProgressBar.mdx +1 -1
- package/src/Radio/Radio/_docs/Radio.mdx +1 -1
- package/src/Radio/RadioField/_docs/RadioField.mdx +1 -1
- package/src/Radio/RadioGroup/_docs/RadioGroup.mdx +1 -1
- package/src/RichTextEditor/EditableRichTextContent/_docs/EditableRichTextContent.mdx +1 -1
- package/src/RichTextEditor/RichTextContent/_docs/RichTextContent.mdx +1 -1
- package/src/RichTextEditor/RichTextEditor/_docs/RichTextEditor.mdx +1 -1
- package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/_docs/ToggleIconButton.mdx +1 -1
- package/src/RichTextEditor/RichTextEditor/subcomponents/Toolbar/_docs/Toolbar.mdx +1 -1
- package/src/SearchField/_docs/SearchField.mdx +1 -1
- package/src/Select/_docs/Select.mdx +1 -1
- package/src/Skirt/_docs/Skirt.mdx +1 -1
- package/src/Slider/_docs/Slider.mdx +1 -1
- package/src/SplitButton/SplitButton.spec.tsx +11 -6
- package/src/SplitButton/_docs/SplitButton.mdx +1 -1
- package/src/SplitButton/subcomponents/DropdownButton/DropdownButton.spec.tsx +15 -10
- package/src/Table/_docs/Table.mdx +1 -1
- package/src/Tabs/_docs/Tabs.mdx +1 -1
- package/src/Tag/_docs/Tag.mdx +1 -1
- package/src/Text/_docs/Text.mdx +1 -1
- package/src/TextArea/_docs/TextArea.mdx +1 -1
- package/src/TextAreaField/_docs/TextAreaField.mdx +1 -1
- package/src/TextField/_docs/TextField.mdx +1 -1
- package/src/Tile/InformationTile/_docs/InformationTile.mdx +1 -1
- package/src/Tile/MultiActionTile/_docs/MultiActionTile.mdx +1 -1
- package/src/Tile/TileGrid/_docs/TileGrid.mdx +1 -1
- package/src/TimeField/_docs/TimeField.mdx +1 -1
- package/src/TitleBlockZen/_docs/TitleBlockZen.mdx +1 -1
- package/src/ToggleSwitch/ToggleSwitch/_docs/ToggleSwitch.mdx +1 -1
- package/src/ToggleSwitch/ToggleSwitchField/_docs/ToggleSwitchField.mdx +1 -1
- package/src/VisuallyHidden/_docs/VisuallyHidden.mdx +1 -1
- package/src/Well/_docs/Well.mdx +1 -1
- package/src/Workflow/_docs/ProgressStepper.mdx +1 -1
- package/src/Workflow/_docs/Workflow.mdx +1 -1
- package/src/Workflow/_docs/WorkflowFooter.mdx +1 -1
- package/src/Workflow/_docs/WorkflowHeader.mdx +1 -1
- package/src/__future__/Select/_docs/Select.mdx +1 -1
- package/src/__future__/Tag/Tag/_docs/Tag.mdx +1 -1
- package/src/__future__/Workflow/_docs/ProgressStepper.mdx +1 -1
- package/src/__future__/Workflow/_docs/Workflow.mdx +1 -1
- package/src/__future__/Workflow/_docs/WorkflowFooter.mdx +1 -1
- package/src/__future__/Workflow/_docs/WorkflowHeader.mdx +1 -1
- package/src/__overlays__/Tooltip/v1/_docs/Tooltip.mdx +1 -1
- package/src/__overlays__/Tooltip/v3/_docs/ApiSpecification.mdx +0 -1
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.docs.stories.tsx +52 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.mdx +40 -61
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_spec.png +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useRef } from "react"
|
|
2
|
-
import {
|
|
2
|
+
import { screen, waitFor } from "@testing-library/react"
|
|
3
3
|
import userEvent from "@testing-library/user-event"
|
|
4
4
|
import { enUS } from "date-fns/locale"
|
|
5
|
+
import { renderWithIntl } from "~tests"
|
|
5
6
|
import { DateInputField, DateInputFieldProps } from "./DateInputField"
|
|
6
7
|
|
|
7
8
|
const user = userEvent.setup()
|
|
@@ -9,8 +10,8 @@ const user = userEvent.setup()
|
|
|
9
10
|
const defaultProps: DateInputFieldProps = {
|
|
10
11
|
id: "test__date-input-field",
|
|
11
12
|
labelText: "Bacon expiry",
|
|
12
|
-
onButtonClick: jest.fn
|
|
13
|
-
onKeyDown: jest.fn
|
|
13
|
+
onButtonClick: jest.fn(),
|
|
14
|
+
onKeyDown: jest.fn(),
|
|
14
15
|
value: undefined,
|
|
15
16
|
locale: enUS,
|
|
16
17
|
}
|
|
@@ -21,68 +22,83 @@ const DateInputFieldWrapper = (
|
|
|
21
22
|
|
|
22
23
|
describe("<DateInputField />", () => {
|
|
23
24
|
describe("Input", () => {
|
|
24
|
-
it("associates the description with the input", () => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
it("associates the description with the input", async () => {
|
|
26
|
+
renderWithIntl(<DateInputFieldWrapper />)
|
|
27
|
+
await waitFor(() => {
|
|
28
|
+
expect(
|
|
29
|
+
screen.getByRole("textbox", {
|
|
30
|
+
name: "Bacon expiry",
|
|
31
|
+
description: "Input format : mm/dd/yyyy",
|
|
32
|
+
})
|
|
33
|
+
).toBeInTheDocument()
|
|
34
|
+
})
|
|
32
35
|
})
|
|
33
36
|
})
|
|
34
37
|
|
|
35
38
|
describe("Icon button", () => {
|
|
36
|
-
it("has helpful label", () => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
it("has helpful label", async () => {
|
|
40
|
+
renderWithIntl(<DateInputFieldWrapper />)
|
|
41
|
+
await waitFor(() => {
|
|
42
|
+
expect(
|
|
43
|
+
screen.getByRole("button", { name: "Choose date" })
|
|
44
|
+
).toBeInTheDocument()
|
|
45
|
+
})
|
|
41
46
|
})
|
|
42
47
|
|
|
43
|
-
it("has helpful label showing the current date when one is selected", () => {
|
|
44
|
-
|
|
48
|
+
it("has helpful label showing the current date when one is selected", async () => {
|
|
49
|
+
renderWithIntl(
|
|
45
50
|
<DateInputFieldWrapper
|
|
46
51
|
value="Mar 1, 2022"
|
|
47
52
|
onChange={(): void => undefined}
|
|
48
53
|
/>
|
|
49
54
|
)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
await waitFor(() => {
|
|
56
|
+
expect(
|
|
57
|
+
screen.getByRole("button", { name: "Change date, Mar 1, 2022" })
|
|
58
|
+
).toBeInTheDocument()
|
|
59
|
+
})
|
|
53
60
|
})
|
|
54
61
|
})
|
|
55
62
|
|
|
56
63
|
describe("States", () => {
|
|
57
|
-
it("disables both input and icon button", () => {
|
|
58
|
-
|
|
64
|
+
it("disables both input and icon button", async () => {
|
|
65
|
+
renderWithIntl(<DateInputFieldWrapper disabled />)
|
|
59
66
|
const input = screen.getByRole("textbox", { name: "Bacon expiry" })
|
|
60
67
|
const calendarButton = screen.getByRole("button", { name: "Choose date" })
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
await waitFor(() => {
|
|
69
|
+
expect(input).toBeDisabled()
|
|
70
|
+
expect(calendarButton).toBeDisabled()
|
|
71
|
+
})
|
|
63
72
|
})
|
|
64
73
|
})
|
|
65
74
|
|
|
66
75
|
describe("Validation", () => {
|
|
67
|
-
it("shows validation message", () => {
|
|
68
|
-
|
|
76
|
+
it("shows validation message", async () => {
|
|
77
|
+
renderWithIntl(
|
|
69
78
|
<DateInputFieldWrapper
|
|
70
79
|
status="error"
|
|
71
80
|
validationMessage="There is an error"
|
|
72
81
|
/>
|
|
73
82
|
)
|
|
74
83
|
const errorMessage = screen.getByText("There is an error")
|
|
75
|
-
|
|
84
|
+
await waitFor(() => {
|
|
85
|
+
expect(errorMessage).toBeInTheDocument()
|
|
86
|
+
})
|
|
76
87
|
})
|
|
77
88
|
|
|
78
|
-
it("does not show validation message when field is disabled", () => {
|
|
79
|
-
|
|
89
|
+
it("does not show validation message when field is disabled", async () => {
|
|
90
|
+
renderWithIntl(
|
|
80
91
|
<DateInputFieldWrapper
|
|
81
92
|
status="error"
|
|
82
93
|
validationMessage="There is an error"
|
|
83
94
|
disabled
|
|
84
95
|
/>
|
|
85
96
|
)
|
|
97
|
+
await waitFor(() => {
|
|
98
|
+
expect(
|
|
99
|
+
screen.getByRole("textbox", { name: "Bacon expiry" })
|
|
100
|
+
).toBeVisible()
|
|
101
|
+
})
|
|
86
102
|
const errorMessage = screen.queryByText("There is an error")
|
|
87
103
|
expect(errorMessage).not.toBeInTheDocument()
|
|
88
104
|
})
|
|
@@ -90,10 +106,7 @@ describe("<DateInputField />", () => {
|
|
|
90
106
|
|
|
91
107
|
describe("Refs", () => {
|
|
92
108
|
it("correctly passes through input and button refs", async () => {
|
|
93
|
-
const onButtonClick = jest.fn
|
|
94
|
-
void,
|
|
95
|
-
[string | null | undefined, string | null | undefined]
|
|
96
|
-
>()
|
|
109
|
+
const onButtonClick = jest.fn()
|
|
97
110
|
|
|
98
111
|
const Wrapper = (): JSX.Element => {
|
|
99
112
|
const inputRef = useRef<HTMLInputElement>(null)
|
|
@@ -122,10 +135,10 @@ describe("<DateInputField />", () => {
|
|
|
122
135
|
)
|
|
123
136
|
}
|
|
124
137
|
|
|
125
|
-
|
|
138
|
+
renderWithIntl(<Wrapper />)
|
|
126
139
|
|
|
127
140
|
await user.click(screen.getByText("Click me"))
|
|
128
|
-
expect(onButtonClick).
|
|
141
|
+
expect(onButtonClick).toHaveBeenCalledWith(
|
|
129
142
|
"test__date-input-field--ref",
|
|
130
143
|
"Choose date"
|
|
131
144
|
)
|
package/src/DatePicker/types.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { ReactElement } from "react"
|
|
1
2
|
import { FieldMessageStatus } from "~components/FieldMessage"
|
|
2
3
|
|
|
3
4
|
export type ValidationResponse = {
|
|
4
5
|
date: Date | undefined
|
|
5
6
|
inputValue: string | undefined // Input value upon validation
|
|
6
7
|
status: FieldMessageStatus | undefined
|
|
7
|
-
validationMessage: string | undefined
|
|
8
|
+
validationMessage: string | ReactElement | undefined
|
|
8
9
|
isDisabled: boolean
|
|
9
10
|
isInvalid: boolean
|
|
10
11
|
isEmpty: boolean
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { enGB } from "date-fns/locale"
|
|
2
2
|
import { getLocale } from "./getLocale"
|
|
3
3
|
|
|
4
4
|
describe("getLocale", () => {
|
|
5
5
|
it("retrieves fallback value when passed an unsupported locale", () => {
|
|
6
|
-
expect(getLocale("invalid")).toEqual(
|
|
6
|
+
expect(getLocale("invalid")).toEqual(enGB)
|
|
7
7
|
})
|
|
8
8
|
})
|
|
@@ -1,17 +1,152 @@
|
|
|
1
1
|
import type { Locale } from "date-fns"
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
arSA,
|
|
4
|
+
bg,
|
|
5
|
+
cs,
|
|
6
|
+
cy,
|
|
7
|
+
da,
|
|
8
|
+
de,
|
|
9
|
+
el,
|
|
10
|
+
enGB,
|
|
11
|
+
enUS,
|
|
12
|
+
es,
|
|
13
|
+
et,
|
|
14
|
+
fi,
|
|
15
|
+
fr,
|
|
16
|
+
frCA,
|
|
17
|
+
he,
|
|
18
|
+
hi,
|
|
19
|
+
ht,
|
|
20
|
+
hu,
|
|
21
|
+
id,
|
|
22
|
+
it,
|
|
23
|
+
ja,
|
|
24
|
+
km,
|
|
25
|
+
ko,
|
|
26
|
+
lt,
|
|
27
|
+
lv,
|
|
28
|
+
ms,
|
|
29
|
+
nb,
|
|
30
|
+
nl,
|
|
31
|
+
pl,
|
|
32
|
+
pt,
|
|
33
|
+
ptBR,
|
|
34
|
+
ro,
|
|
35
|
+
ru,
|
|
36
|
+
sk,
|
|
37
|
+
sr,
|
|
38
|
+
sv,
|
|
39
|
+
th,
|
|
40
|
+
tr,
|
|
41
|
+
uk,
|
|
42
|
+
vi,
|
|
43
|
+
zhCN,
|
|
44
|
+
zhTW,
|
|
45
|
+
} from "date-fns/locale"
|
|
4
46
|
|
|
5
47
|
// Ensure you update the storybook DATE_PICKER_SUPPORTED_LOCALES arg options when updating DatePickerSupportedLocales.
|
|
6
|
-
export type DatePickerSupportedLocales =
|
|
48
|
+
export type DatePickerSupportedLocales = string
|
|
7
49
|
|
|
8
50
|
export const getLocale = (locale: DatePickerSupportedLocales): Locale => {
|
|
9
51
|
switch (locale) {
|
|
10
|
-
case "
|
|
11
|
-
return
|
|
52
|
+
case "zh":
|
|
53
|
+
return zhCN
|
|
54
|
+
case "zh-TW":
|
|
55
|
+
return zhTW
|
|
56
|
+
case "da":
|
|
57
|
+
return da
|
|
58
|
+
case "nl":
|
|
59
|
+
return nl
|
|
12
60
|
case "en-US":
|
|
13
61
|
return enUS
|
|
62
|
+
case "fr":
|
|
63
|
+
return fr
|
|
64
|
+
case "de":
|
|
65
|
+
return de
|
|
66
|
+
case "he":
|
|
67
|
+
return he
|
|
68
|
+
case "it":
|
|
69
|
+
return it
|
|
70
|
+
case "ja":
|
|
71
|
+
return ja
|
|
72
|
+
case "ko":
|
|
73
|
+
case "kr":
|
|
74
|
+
return ko
|
|
75
|
+
case "es-419":
|
|
76
|
+
return es
|
|
77
|
+
case "sv":
|
|
78
|
+
return sv
|
|
79
|
+
case "ru":
|
|
80
|
+
return ru
|
|
81
|
+
// @todo: Add when locale is available https://github.com/date-fns/date-fns/issues/2627
|
|
82
|
+
// case "mi":
|
|
83
|
+
// return miNZ
|
|
84
|
+
case "pl":
|
|
85
|
+
return pl
|
|
86
|
+
case "pt-BR":
|
|
87
|
+
return ptBR
|
|
88
|
+
case "uk":
|
|
89
|
+
return uk
|
|
90
|
+
case "en":
|
|
91
|
+
case "en-GB":
|
|
92
|
+
case "en-AU":
|
|
93
|
+
return enGB
|
|
94
|
+
case "ar":
|
|
95
|
+
return arSA
|
|
96
|
+
case "bg":
|
|
97
|
+
return bg
|
|
98
|
+
case "cs":
|
|
99
|
+
return cs
|
|
100
|
+
case "et":
|
|
101
|
+
return et
|
|
102
|
+
case "fi":
|
|
103
|
+
return fi
|
|
104
|
+
case "fr-CA":
|
|
105
|
+
return frCA
|
|
106
|
+
case "ht":
|
|
107
|
+
return ht
|
|
108
|
+
case "el":
|
|
109
|
+
return el
|
|
110
|
+
case "hi":
|
|
111
|
+
return hi
|
|
112
|
+
case "hu":
|
|
113
|
+
return hu
|
|
114
|
+
case "id":
|
|
115
|
+
return id
|
|
116
|
+
case "km-KH":
|
|
117
|
+
return km
|
|
118
|
+
case "lv":
|
|
119
|
+
return lv
|
|
120
|
+
case "lt":
|
|
121
|
+
return lt
|
|
122
|
+
case "ms":
|
|
123
|
+
return ms
|
|
124
|
+
case "nb":
|
|
125
|
+
case "no":
|
|
126
|
+
return nb
|
|
127
|
+
case "pt":
|
|
128
|
+
return pt
|
|
129
|
+
case "ro":
|
|
130
|
+
return ro
|
|
131
|
+
case "sr":
|
|
132
|
+
return sr
|
|
133
|
+
// case "si-LK":
|
|
134
|
+
// return siLK
|
|
135
|
+
case "sk":
|
|
136
|
+
return sk
|
|
137
|
+
case "es":
|
|
138
|
+
return es
|
|
139
|
+
// case "tl":
|
|
140
|
+
// return tlPH
|
|
141
|
+
case "th":
|
|
142
|
+
return th
|
|
143
|
+
case "tr":
|
|
144
|
+
return tr
|
|
145
|
+
case "vi":
|
|
146
|
+
return vi
|
|
147
|
+
case "cy":
|
|
148
|
+
return cy
|
|
14
149
|
default:
|
|
15
|
-
return
|
|
150
|
+
return enGB
|
|
16
151
|
}
|
|
17
152
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { screen, waitFor } from "@testing-library/react"
|
|
2
|
+
import { renderWithIntl } from "~tests"
|
|
1
3
|
import { validateDate } from "./validateDate"
|
|
2
4
|
|
|
3
5
|
describe("validateDate", () => {
|
|
@@ -20,64 +22,79 @@ describe("validateDate", () => {
|
|
|
20
22
|
expect(newDate).toBeUndefined()
|
|
21
23
|
})
|
|
22
24
|
|
|
23
|
-
it("returns expected response when selected day is invalid and input value is undefined", () => {
|
|
25
|
+
it("returns expected response when selected day is invalid and input value is undefined", async () => {
|
|
24
26
|
const date = new Date("potato")
|
|
25
27
|
const inputValue = undefined
|
|
26
28
|
const { validationResponse, newDate } = validateDate({ date, inputValue })
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
const { validationMessage, ...response } = validationResponse
|
|
31
|
+
|
|
32
|
+
expect(response).toStrictEqual({
|
|
29
33
|
date,
|
|
30
34
|
inputValue,
|
|
31
35
|
status: "error",
|
|
32
|
-
validationMessage: "Date is invalid",
|
|
33
36
|
isInvalid: true,
|
|
34
37
|
isDisabled: false,
|
|
35
38
|
isEmpty: false,
|
|
36
39
|
isValidDate: false,
|
|
37
40
|
})
|
|
38
|
-
|
|
39
41
|
expect(newDate).toBeUndefined()
|
|
42
|
+
|
|
43
|
+
renderWithIntl(validationMessage)
|
|
44
|
+
await waitFor(() => {
|
|
45
|
+
expect(screen.getByText("Date is invalid")).toBeVisible()
|
|
46
|
+
})
|
|
40
47
|
})
|
|
41
48
|
|
|
42
|
-
it("returns expected response when selected day is invalid and input value is empty string", () => {
|
|
49
|
+
it("returns expected response when selected day is invalid and input value is empty string", async () => {
|
|
43
50
|
const date = new Date("potato")
|
|
44
51
|
const inputValue = ""
|
|
45
52
|
const { validationResponse, newDate } = validateDate({ date, inputValue })
|
|
46
53
|
|
|
47
|
-
|
|
54
|
+
const { validationMessage, ...response } = validationResponse
|
|
55
|
+
|
|
56
|
+
expect(response).toEqual({
|
|
48
57
|
date,
|
|
49
58
|
inputValue,
|
|
50
59
|
status: "error",
|
|
51
|
-
validationMessage: "Date is invalid",
|
|
52
60
|
isInvalid: true,
|
|
53
61
|
isDisabled: false,
|
|
54
62
|
isEmpty: false,
|
|
55
63
|
isValidDate: false,
|
|
56
64
|
})
|
|
57
|
-
|
|
58
65
|
expect(newDate).toBeUndefined()
|
|
66
|
+
|
|
67
|
+
renderWithIntl(validationMessage)
|
|
68
|
+
await waitFor(() => {
|
|
69
|
+
expect(screen.getByText("Date is invalid")).toBeVisible()
|
|
70
|
+
})
|
|
59
71
|
})
|
|
60
72
|
|
|
61
|
-
it("returns expected response when selected day is invalid and input value is valid string", () => {
|
|
73
|
+
it("returns expected response when selected day is invalid and input value is valid string", async () => {
|
|
62
74
|
const date = new Date("potato")
|
|
63
75
|
const inputValue = "potato"
|
|
64
76
|
const { validationResponse, newDate } = validateDate({ date, inputValue })
|
|
65
77
|
|
|
66
|
-
|
|
78
|
+
const { validationMessage, ...response } = validationResponse
|
|
79
|
+
|
|
80
|
+
expect(response).toStrictEqual({
|
|
67
81
|
date,
|
|
68
82
|
inputValue,
|
|
69
83
|
status: "error",
|
|
70
|
-
validationMessage: "potato is an invalid date",
|
|
71
84
|
isInvalid: true,
|
|
72
85
|
isDisabled: false,
|
|
73
86
|
isEmpty: false,
|
|
74
87
|
isValidDate: false,
|
|
75
88
|
})
|
|
76
|
-
|
|
77
89
|
expect(newDate).toBeUndefined()
|
|
90
|
+
|
|
91
|
+
renderWithIntl(validationMessage)
|
|
92
|
+
await waitFor(() => {
|
|
93
|
+
expect(screen.getByText("potato is an invalid date")).toBeVisible()
|
|
94
|
+
})
|
|
78
95
|
})
|
|
79
96
|
|
|
80
|
-
it("returns expected response when selected day is disabled", () => {
|
|
97
|
+
it("returns expected response when selected day is disabled", async () => {
|
|
81
98
|
const date = new Date("2022-03-01")
|
|
82
99
|
const inputValue = "03/01/2022"
|
|
83
100
|
const disabledDays = [new Date("2022-03-01")]
|
|
@@ -87,18 +104,25 @@ describe("validateDate", () => {
|
|
|
87
104
|
disabledDays,
|
|
88
105
|
})
|
|
89
106
|
|
|
90
|
-
|
|
107
|
+
const { validationMessage, ...response } = validationResponse
|
|
108
|
+
|
|
109
|
+
expect(response).toStrictEqual({
|
|
91
110
|
date,
|
|
92
111
|
inputValue,
|
|
93
112
|
status: "error",
|
|
94
|
-
validationMessage: "03/01/2022 is not available, try another date",
|
|
95
113
|
isInvalid: false,
|
|
96
114
|
isDisabled: true,
|
|
97
115
|
isEmpty: false,
|
|
98
116
|
isValidDate: false,
|
|
99
117
|
})
|
|
100
|
-
|
|
101
118
|
expect(newDate).toBeUndefined()
|
|
119
|
+
|
|
120
|
+
renderWithIntl(validationMessage)
|
|
121
|
+
await waitFor(() => {
|
|
122
|
+
expect(
|
|
123
|
+
screen.getByText("03/01/2022 is not available, try another date")
|
|
124
|
+
).toBeVisible()
|
|
125
|
+
})
|
|
102
126
|
})
|
|
103
127
|
|
|
104
128
|
it("returns expected response when selected day is valid", () => {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import { FormattedMessage } from "@cultureamp/i18n-react-intl"
|
|
1
3
|
import {
|
|
2
4
|
DisabledDays,
|
|
3
5
|
isDisabledDate,
|
|
@@ -47,9 +49,20 @@ export const validateDate = ({
|
|
|
47
49
|
validationResponse: {
|
|
48
50
|
...baseResponse,
|
|
49
51
|
status: "error",
|
|
50
|
-
validationMessage: inputValue
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
validationMessage: inputValue ? (
|
|
53
|
+
<FormattedMessage
|
|
54
|
+
id="date.validation.invalidDateWithValue"
|
|
55
|
+
defaultMessage="{inputValue} is an invalid date"
|
|
56
|
+
description="Error message when the user enters an invalid date and we know their input value"
|
|
57
|
+
values={{ inputValue }}
|
|
58
|
+
/>
|
|
59
|
+
) : (
|
|
60
|
+
<FormattedMessage
|
|
61
|
+
id="date.validation.invalidDate"
|
|
62
|
+
defaultMessage="Date is invalid"
|
|
63
|
+
description="Error message when the user enters an invalid date and we do not know their input value"
|
|
64
|
+
/>
|
|
65
|
+
),
|
|
53
66
|
isInvalid: true,
|
|
54
67
|
},
|
|
55
68
|
newDate: undefined,
|
|
@@ -61,7 +74,14 @@ export const validateDate = ({
|
|
|
61
74
|
validationResponse: {
|
|
62
75
|
...baseResponse,
|
|
63
76
|
status: "error",
|
|
64
|
-
validationMessage:
|
|
77
|
+
validationMessage: (
|
|
78
|
+
<FormattedMessage
|
|
79
|
+
id="date.validation.unavailableDate"
|
|
80
|
+
defaultMessage="{inputValue} is not available, try another date"
|
|
81
|
+
description="Error message when the user tries to select a date that is unavailable"
|
|
82
|
+
values={{ inputValue }}
|
|
83
|
+
/>
|
|
84
|
+
),
|
|
65
85
|
isDisabled: true,
|
|
66
86
|
},
|
|
67
87
|
newDate: undefined,
|
|
@@ -37,8 +37,8 @@ export type DateRangePickerProps = {
|
|
|
37
37
|
*/
|
|
38
38
|
value?: string
|
|
39
39
|
/**
|
|
40
|
-
* Accepts a DayOfWeek value to start the week on that day.
|
|
41
|
-
* it
|
|
40
|
+
* Accepts a DayOfWeek value to start the week on that day.
|
|
41
|
+
* By default it adapts to the provided locale.
|
|
42
42
|
*/
|
|
43
43
|
weekStartsOn?: LegacyCalendarRangeProps["weekStartsOn"]
|
|
44
44
|
/**
|
|
@@ -10,7 +10,7 @@ import * as DateRangePickerStories from "./DateRangePicker.stories"
|
|
|
10
10
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/DateRangePicker"
|
|
11
11
|
figma="https://www.figma.com/file/eZKEE5kXbEMY3lx84oz8iN/%F0%9F%92%9C-UI-Kit%3A-Heart?type=design&node-id=10458%3A45652&mode=design&t=4Mycc044XjC1WLin-1"
|
|
12
12
|
designGuidelines="https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3082094237/Date+Range+Picker"
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
/>
|
|
15
15
|
|
|
16
16
|
<KAIOInstallation exportNames="DateRangePicker" />
|
|
@@ -10,7 +10,7 @@ import * as DividerStories from "./Divider.stories"
|
|
|
10
10
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/Divider"
|
|
11
11
|
figma="https://www.figma.com/file/ZRfnoNUXbGZv4eVWLbF4Az/%EF%B8%8F%F0%9F%96%BC%EF%B8%8F-Component-Gallery?node-id=6%3A18248&t=P1w10jr2cpPuaayw-1"
|
|
12
12
|
designGuidelines="https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3082061035/Divider"
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
/>
|
|
15
15
|
|
|
16
16
|
<KAIOInstallation exportNames="Divider" />
|
|
@@ -10,7 +10,7 @@ import * as EmptyStateStories from "./EmptyState.stories"
|
|
|
10
10
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/EmptyState"
|
|
11
11
|
figma="https://www.figma.com/file/ZRfnoNUXbGZv4eVWLbF4Az/%F0%9F%96%BC%EF%B8%8F-Component-Gallery?type=design&node-id=6-18405&mode=design&t=zslxM6C2B20CxDxt-0"
|
|
12
12
|
designGuidelines="https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3082094098/Empty+State"
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
/>
|
|
15
15
|
|
|
16
16
|
<KAIOInstallation exportNames="EmptyState" />
|
|
@@ -8,7 +8,7 @@ import * as ErrorPageStories from "./ErrorPage.stories"
|
|
|
8
8
|
|
|
9
9
|
<ResourceLinks
|
|
10
10
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/master/packages/components/src/ErrorPage"
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
/>
|
|
13
13
|
|
|
14
14
|
<KAIOInstallation exportNames="ErrorPage" />
|
|
@@ -9,7 +9,7 @@ import * as FieldGroupStories from "./FieldGroup.stories"
|
|
|
9
9
|
|
|
10
10
|
<ResourceLinks
|
|
11
11
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/FieldGroup"
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
/>
|
|
14
14
|
|
|
15
15
|
<KAIOInstallation exportNames="FieldGroup" />
|
|
@@ -10,7 +10,7 @@ import * as FieldMessageStories from "./FieldMessage.stories"
|
|
|
10
10
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/FieldMessage"
|
|
11
11
|
figma="https://www.figma.com/file/eZKEE5kXbEMY3lx84oz8iN/%F0%9F%92%9C-UI-Kit%3A-Heart?type=design&node-id=34254%3A91754&mode=design&t=HvwF2tRq9DbfkSuV-1"
|
|
12
12
|
designGuidelines="https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3081928705/Text+Field"
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
/>
|
|
15
15
|
|
|
16
16
|
<KAIOInstallation exportNames="FieldMessage" />
|
|
@@ -11,7 +11,7 @@ import * as FilterStories from "./Filter.stories"
|
|
|
11
11
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/Filter"
|
|
12
12
|
figma="https://www.figma.com/file/ZRfnoNUXbGZv4eVWLbF4Az/%F0%9F%96%BC%EF%B8%8F-Component-Gallery?type=design&node-id=6-28579&t=bowQ0LWOQKOd0UYS-0"
|
|
13
13
|
designGuidelines="https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3082093959/Filters"
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
/>
|
|
16
16
|
|
|
17
17
|
<KAIOInstallation exportNames={["Filter", "FilterContents"]} />
|