@kaizen/components 1.22.2 → 1.23.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 (185) hide show
  1. package/dist/cjs/{SuccessIcon-3a43dc12.js → SuccessIcon-525a8d9b.js} +6 -48
  2. package/dist/cjs/SuccessIcon-525a8d9b.js.map +1 -0
  3. package/dist/cjs/{SuccessIcon-f6e008be.js → SuccessIcon-e496618e.js} +6 -48
  4. package/dist/cjs/SuccessIcon-e496618e.js.map +1 -0
  5. package/dist/cjs/dts/BrandMoment/BrandMoment.d.ts +2 -2
  6. package/dist/cjs/dts/Button/Button.d.ts +1 -1
  7. package/dist/cjs/dts/Button/index.d.ts +1 -1
  8. package/dist/cjs/dts/ButtonGroup/ButtonGroup.d.ts +3 -3
  9. package/dist/cjs/dts/ClearButton/ClearButton.d.ts +2 -2
  10. package/dist/cjs/dts/ErrorPage/ErrorPage.d.ts +4 -4
  11. package/dist/cjs/dts/Filter/Filter.d.ts +2 -2
  12. package/dist/cjs/dts/Filter/index.d.ts +1 -1
  13. package/dist/cjs/dts/Filter/{components → subcomponents}/FilterContents/FilterContents.d.ts +2 -2
  14. package/dist/cjs/dts/Filter/{components → subcomponents}/FilterPopover/FilterPopover.d.ts +2 -2
  15. package/dist/cjs/dts/FilterBar/subcomponents/FilterBarButton/FilterBarButton.d.ts +5 -1
  16. package/dist/cjs/dts/FilterButton/FilterButton/FilterButton.d.ts +8 -4
  17. package/dist/cjs/dts/FilterButton/FilterButtonRemovable/FilterButtonRemovable.d.ts +9 -4
  18. package/dist/cjs/dts/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.d.ts +10 -0
  19. package/dist/cjs/dts/FilterDatePicker/FilterDatePicker.d.ts +2 -2
  20. package/dist/cjs/dts/FilterDatePicker/subcomponents/DateInputField/DateInputField.d.ts +14 -3
  21. package/dist/cjs/dts/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.d.ts +2 -2
  22. package/dist/cjs/dts/FilterDateRangePicker/FilterDateRangePicker.d.ts +2 -2
  23. package/dist/cjs/dts/FilterDateRangePicker/subcomponents/DateInputDescription/DateInputDescription.d.ts +2 -2
  24. package/dist/cjs/dts/FilterDateRangePicker/subcomponents/DateRangeDisplayLabel/DateRangeDisplayLabel.d.ts +2 -2
  25. package/dist/cjs/dts/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.d.ts +18 -3
  26. package/dist/cjs/dts/FilterDateRangePicker/subcomponents/DateRangeValidationMessage/DateRangeValidationMessage.d.ts +2 -2
  27. package/dist/cjs/dts/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.d.ts +2 -2
  28. package/dist/cjs/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicMenu.d.ts +2 -2
  29. package/dist/cjs/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicValueSelect.d.ts +2 -2
  30. package/dist/{esm/dts/FilterMultiSelect/provider → cjs/dts/FilterMultiSelect/context}/MenuTriggerProvider/MenuTriggerProvider.d.ts +4 -4
  31. package/dist/cjs/dts/FilterMultiSelect/{provider → context}/SelectionProvider/SelectionProvider.d.ts +4 -4
  32. package/dist/cjs/dts/FilterMultiSelect/index.d.ts +1 -1
  33. package/dist/cjs/dts/FilterMultiSelect/subcomponents/ListBox/ListBox.d.ts +2 -2
  34. package/dist/cjs/dts/FilterMultiSelect/subcomponents/MenuLayout/MenuFooter/MenuFooter.d.ts +2 -2
  35. package/dist/cjs/dts/FilterMultiSelect/subcomponents/MenuLayout/MenuLoadingSkeleton/MenuLoadingSkeleton.d.ts +2 -2
  36. package/dist/cjs/dts/FilterMultiSelect/subcomponents/MenuPopup/MenuPopup.d.ts +2 -2
  37. package/dist/cjs/dts/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.d.ts +2 -2
  38. package/dist/cjs/dts/FilterMultiSelect/subcomponents/NoResults/NoResults.d.ts +2 -2
  39. package/dist/cjs/dts/FilterMultiSelect/subcomponents/Root/Root.d.ts +6 -6
  40. package/dist/cjs/dts/FilterMultiSelect/subcomponents/SearchInput/SearchInput.d.ts +2 -2
  41. package/dist/cjs/dts/FilterMultiSelect/types.d.ts +2 -2
  42. package/dist/cjs/dts/FilterSelect/FilterSelect.d.ts +2 -2
  43. package/dist/cjs/dts/FilterSelect/subcomponents/ListBoxSection/ListBoxSection.d.ts +2 -2
  44. package/dist/cjs/dts/FilterSelect/subcomponents/Option/Option.d.ts +2 -2
  45. package/dist/cjs/dts/FilterSelect/types.d.ts +4 -4
  46. package/dist/cjs/dts/InputSearch/InputSearch.d.ts +2 -2
  47. package/dist/cjs/dts/KaizenProvider/KaizenProvider.d.ts +2 -2
  48. package/dist/cjs/dts/LabelledMessage/LabelledMessage.d.ts +5 -4
  49. package/dist/cjs/dts/SVG/SVG.d.ts +16 -10
  50. package/dist/cjs/dts/SVG/icons/AddIcon.d.ts +2 -2
  51. package/dist/cjs/dts/SVG/icons/ArrowRightIcon.d.ts +2 -2
  52. package/dist/cjs/dts/SVG/icons/CheckIcon.d.ts +2 -2
  53. package/dist/cjs/dts/SVG/icons/ChevronDownIcon.d.ts +2 -2
  54. package/dist/cjs/dts/SVG/icons/ChevronUpIcon.d.ts +2 -2
  55. package/dist/cjs/dts/SVG/icons/ClearIcon.d.ts +2 -2
  56. package/dist/cjs/dts/SVG/icons/CloseIcon.d.ts +2 -2
  57. package/dist/cjs/dts/SVG/icons/EmailIcon.d.ts +2 -2
  58. package/dist/cjs/dts/SVG/icons/IndicatorActiveIcon.d.ts +2 -2
  59. package/dist/cjs/dts/SVG/icons/IndicatorInactiveIcon.d.ts +2 -2
  60. package/dist/cjs/dts/SVG/icons/SearchIcon.d.ts +2 -2
  61. package/dist/cjs/dts/SVG/icons/SuccessIcon.d.ts +2 -2
  62. package/dist/cjs/dts/SVG/icons/VisibleIcon.d.ts +2 -2
  63. package/dist/cjs/dts/Workflow/subcomponents/Footer/Footer.d.ts +2 -2
  64. package/dist/cjs/dts/Workflow/subcomponents/Footer/components/FooterActions/FooterActions.d.ts +2 -3
  65. package/dist/cjs/dts/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.d.ts +2 -2
  66. package/dist/cjs/dts/Workflow/subcomponents/Header/components/Actions/Actions.d.ts +2 -2
  67. package/dist/cjs/dts/Workflow/subcomponents/Header/components/Branding/Branding.d.ts +2 -3
  68. package/dist/cjs/dts/Workflow/subcomponents/Header/components/Titles/Titles.d.ts +2 -2
  69. package/dist/cjs/dts/__future__/Workflow/subcomponents/Footer/Footer.d.ts +4 -4
  70. package/dist/cjs/dts/__future__/Workflow/subcomponents/Footer/components/FooterActions/FooterActions.d.ts +2 -3
  71. package/dist/cjs/dts/__future__/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.d.ts +3 -4
  72. package/dist/cjs/dts/__future__/Workflow/subcomponents/Header/components/Actions/Actions.d.ts +2 -2
  73. package/dist/cjs/dts/__future__/Workflow/subcomponents/Header/components/Branding/Branding.d.ts +2 -3
  74. package/dist/cjs/dts/__future__/Workflow/subcomponents/Header/components/Titles/Titles.d.ts +2 -2
  75. package/dist/cjs/dts/index.d.ts +2 -2
  76. package/dist/cjs/future.js +1 -1
  77. package/dist/cjs/future.js.map +1 -1
  78. package/dist/cjs/index.css +10 -10
  79. package/dist/cjs/index.js +394 -394
  80. package/dist/cjs/index.js.map +1 -1
  81. package/dist/esm/{SuccessIcon-58ad3ae2.js → SuccessIcon-1a35a120.js} +6 -48
  82. package/dist/esm/SuccessIcon-1a35a120.js.map +1 -0
  83. package/dist/esm/{SuccessIcon-9a424b5d.js → SuccessIcon-ea598371.js} +6 -48
  84. package/dist/esm/SuccessIcon-ea598371.js.map +1 -0
  85. package/dist/esm/dts/BrandMoment/BrandMoment.d.ts +2 -2
  86. package/dist/esm/dts/Button/Button.d.ts +1 -1
  87. package/dist/esm/dts/Button/index.d.ts +1 -1
  88. package/dist/esm/dts/ButtonGroup/ButtonGroup.d.ts +3 -3
  89. package/dist/esm/dts/ClearButton/ClearButton.d.ts +2 -2
  90. package/dist/esm/dts/ErrorPage/ErrorPage.d.ts +4 -4
  91. package/dist/esm/dts/Filter/Filter.d.ts +2 -2
  92. package/dist/esm/dts/Filter/index.d.ts +1 -1
  93. package/dist/esm/dts/Filter/{components → subcomponents}/FilterContents/FilterContents.d.ts +2 -2
  94. package/dist/esm/dts/Filter/{components → subcomponents}/FilterPopover/FilterPopover.d.ts +2 -2
  95. package/dist/esm/dts/FilterBar/subcomponents/FilterBarButton/FilterBarButton.d.ts +5 -1
  96. package/dist/esm/dts/FilterButton/FilterButton/FilterButton.d.ts +8 -4
  97. package/dist/esm/dts/FilterButton/FilterButtonRemovable/FilterButtonRemovable.d.ts +9 -4
  98. package/dist/esm/dts/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.d.ts +10 -0
  99. package/dist/esm/dts/FilterDatePicker/FilterDatePicker.d.ts +2 -2
  100. package/dist/esm/dts/FilterDatePicker/subcomponents/DateInputField/DateInputField.d.ts +14 -3
  101. package/dist/esm/dts/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.d.ts +2 -2
  102. package/dist/esm/dts/FilterDateRangePicker/FilterDateRangePicker.d.ts +2 -2
  103. package/dist/esm/dts/FilterDateRangePicker/subcomponents/DateInputDescription/DateInputDescription.d.ts +2 -2
  104. package/dist/esm/dts/FilterDateRangePicker/subcomponents/DateRangeDisplayLabel/DateRangeDisplayLabel.d.ts +2 -2
  105. package/dist/esm/dts/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.d.ts +18 -3
  106. package/dist/esm/dts/FilterDateRangePicker/subcomponents/DateRangeValidationMessage/DateRangeValidationMessage.d.ts +2 -2
  107. package/dist/esm/dts/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.d.ts +2 -2
  108. package/dist/esm/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicMenu.d.ts +2 -2
  109. package/dist/esm/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicValueSelect.d.ts +2 -2
  110. package/dist/{cjs/dts/FilterMultiSelect/provider → esm/dts/FilterMultiSelect/context}/MenuTriggerProvider/MenuTriggerProvider.d.ts +4 -4
  111. package/dist/esm/dts/FilterMultiSelect/{provider → context}/SelectionProvider/SelectionProvider.d.ts +4 -4
  112. package/dist/esm/dts/FilterMultiSelect/index.d.ts +1 -1
  113. package/dist/esm/dts/FilterMultiSelect/subcomponents/ListBox/ListBox.d.ts +2 -2
  114. package/dist/esm/dts/FilterMultiSelect/subcomponents/MenuLayout/MenuFooter/MenuFooter.d.ts +2 -2
  115. package/dist/esm/dts/FilterMultiSelect/subcomponents/MenuLayout/MenuLoadingSkeleton/MenuLoadingSkeleton.d.ts +2 -2
  116. package/dist/esm/dts/FilterMultiSelect/subcomponents/MenuPopup/MenuPopup.d.ts +2 -2
  117. package/dist/esm/dts/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.d.ts +2 -2
  118. package/dist/esm/dts/FilterMultiSelect/subcomponents/NoResults/NoResults.d.ts +2 -2
  119. package/dist/esm/dts/FilterMultiSelect/subcomponents/Root/Root.d.ts +6 -6
  120. package/dist/esm/dts/FilterMultiSelect/subcomponents/SearchInput/SearchInput.d.ts +2 -2
  121. package/dist/esm/dts/FilterMultiSelect/types.d.ts +2 -2
  122. package/dist/esm/dts/FilterSelect/FilterSelect.d.ts +2 -2
  123. package/dist/esm/dts/FilterSelect/subcomponents/ListBoxSection/ListBoxSection.d.ts +2 -2
  124. package/dist/esm/dts/FilterSelect/subcomponents/Option/Option.d.ts +2 -2
  125. package/dist/esm/dts/FilterSelect/types.d.ts +4 -4
  126. package/dist/esm/dts/InputSearch/InputSearch.d.ts +2 -2
  127. package/dist/esm/dts/KaizenProvider/KaizenProvider.d.ts +2 -2
  128. package/dist/esm/dts/LabelledMessage/LabelledMessage.d.ts +5 -4
  129. package/dist/esm/dts/SVG/SVG.d.ts +16 -10
  130. package/dist/esm/dts/SVG/icons/AddIcon.d.ts +2 -2
  131. package/dist/esm/dts/SVG/icons/ArrowRightIcon.d.ts +2 -2
  132. package/dist/esm/dts/SVG/icons/CheckIcon.d.ts +2 -2
  133. package/dist/esm/dts/SVG/icons/ChevronDownIcon.d.ts +2 -2
  134. package/dist/esm/dts/SVG/icons/ChevronUpIcon.d.ts +2 -2
  135. package/dist/esm/dts/SVG/icons/ClearIcon.d.ts +2 -2
  136. package/dist/esm/dts/SVG/icons/CloseIcon.d.ts +2 -2
  137. package/dist/esm/dts/SVG/icons/EmailIcon.d.ts +2 -2
  138. package/dist/esm/dts/SVG/icons/IndicatorActiveIcon.d.ts +2 -2
  139. package/dist/esm/dts/SVG/icons/IndicatorInactiveIcon.d.ts +2 -2
  140. package/dist/esm/dts/SVG/icons/SearchIcon.d.ts +2 -2
  141. package/dist/esm/dts/SVG/icons/SuccessIcon.d.ts +2 -2
  142. package/dist/esm/dts/SVG/icons/VisibleIcon.d.ts +2 -2
  143. package/dist/esm/dts/Workflow/subcomponents/Footer/Footer.d.ts +2 -2
  144. package/dist/esm/dts/Workflow/subcomponents/Footer/components/FooterActions/FooterActions.d.ts +2 -3
  145. package/dist/esm/dts/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.d.ts +2 -2
  146. package/dist/esm/dts/Workflow/subcomponents/Header/components/Actions/Actions.d.ts +2 -2
  147. package/dist/esm/dts/Workflow/subcomponents/Header/components/Branding/Branding.d.ts +2 -3
  148. package/dist/esm/dts/Workflow/subcomponents/Header/components/Titles/Titles.d.ts +2 -2
  149. package/dist/esm/dts/__future__/Workflow/subcomponents/Footer/Footer.d.ts +4 -4
  150. package/dist/esm/dts/__future__/Workflow/subcomponents/Footer/components/FooterActions/FooterActions.d.ts +2 -3
  151. package/dist/esm/dts/__future__/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.d.ts +3 -4
  152. package/dist/esm/dts/__future__/Workflow/subcomponents/Header/components/Actions/Actions.d.ts +2 -2
  153. package/dist/esm/dts/__future__/Workflow/subcomponents/Header/components/Branding/Branding.d.ts +2 -3
  154. package/dist/esm/dts/__future__/Workflow/subcomponents/Header/components/Titles/Titles.d.ts +2 -2
  155. package/dist/esm/dts/index.d.ts +2 -2
  156. package/dist/esm/future.js +1 -1
  157. package/dist/esm/future.js.map +1 -1
  158. package/dist/esm/index.css +11 -11
  159. package/dist/esm/index.js +394 -394
  160. package/dist/esm/index.js.map +1 -1
  161. package/dist/index.d.ts +112 -103
  162. package/dist/styles.css +1 -1
  163. package/package.json +1 -1
  164. package/dist/cjs/SuccessIcon-3a43dc12.js.map +0 -1
  165. package/dist/cjs/SuccessIcon-f6e008be.js.map +0 -1
  166. package/dist/cjs/dts/FilterButton/_subcomponents/FilterButtonBase/FilterButtonBase.d.ts +0 -6
  167. package/dist/cjs/dts/utils/console.d.ts +0 -3
  168. package/dist/esm/SuccessIcon-58ad3ae2.js.map +0 -1
  169. package/dist/esm/SuccessIcon-9a424b5d.js.map +0 -1
  170. package/dist/esm/dts/FilterButton/_subcomponents/FilterButtonBase/FilterButtonBase.d.ts +0 -6
  171. package/dist/esm/dts/utils/console.d.ts +0 -3
  172. /package/dist/cjs/dts/Button/{components → subcomponents}/GenericButton.d.ts +0 -0
  173. /package/dist/cjs/dts/Filter/{components → subcomponents}/FilterContents/index.d.ts +0 -0
  174. /package/dist/cjs/dts/Filter/{components → subcomponents}/FilterPopover/index.d.ts +0 -0
  175. /package/dist/cjs/dts/FilterButton/{_subcomponents → subcomponents}/FilterButtonBase/index.d.ts +0 -0
  176. /package/dist/cjs/dts/FilterMultiSelect/{provider → context}/MenuTriggerProvider/index.d.ts +0 -0
  177. /package/dist/cjs/dts/FilterMultiSelect/{provider → context}/SelectionProvider/index.d.ts +0 -0
  178. /package/dist/cjs/dts/FilterMultiSelect/{provider → context}/index.d.ts +0 -0
  179. /package/dist/esm/dts/Button/{components → subcomponents}/GenericButton.d.ts +0 -0
  180. /package/dist/esm/dts/Filter/{components → subcomponents}/FilterContents/index.d.ts +0 -0
  181. /package/dist/esm/dts/Filter/{components → subcomponents}/FilterPopover/index.d.ts +0 -0
  182. /package/dist/esm/dts/FilterButton/{_subcomponents → subcomponents}/FilterButtonBase/index.d.ts +0 -0
  183. /package/dist/esm/dts/FilterMultiSelect/{provider → context}/MenuTriggerProvider/index.d.ts +0 -0
  184. /package/dist/esm/dts/FilterMultiSelect/{provider → context}/SelectionProvider/index.d.ts +0 -0
  185. /package/dist/esm/dts/FilterMultiSelect/{provider → context}/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/Button/components/GenericButton.tsx","../../src/Button/Button.tsx","../../src/SVG/icons/ClearIcon.tsx","../../src/ClearButton/ClearButton.tsx","../../src/Filter/components/FilterPopover/FilterPopover.tsx","../../src/Filter/Filter.tsx","../../src/Filter/components/FilterContents/FilterContents.tsx","../../src/FilterBar/context/utils/getIsUsableWhenArgs.ts","../../src/FilterBar/context/utils/updateDependentFilters.ts","../../src/FilterBar/context/reducer/updateSingleFilter.ts","../../src/FilterBar/context/reducer/updateValues.ts","../../src/FilterBar/context/reducer/filterBarStateReducer.ts","../../src/FilterBar/context/reducer/setupFilterBarState.ts","../../src/FilterBar/context/utils/checkShouldUpdateValues.ts","../../src/FilterBar/context/utils/getInactiveFilters.ts","../../src/FilterBar/context/utils/getMappedFilters.ts","../../src/FilterBar/context/utils/getValidValue.ts","../../src/FilterBar/context/FilterBarContext.tsx","../../src/LabelledMessage/LabelledMessage.tsx","../../src/utils/getNodeText.ts","../../src/FilterDatePicker/utils/getDateValidationHandler.tsx","../../src/FilterDatePicker/utils/validateDate.ts","../../src/FilterDatePicker/hooks/useDateValidation.ts","../../src/FilterDatePicker/utils/transformDateToInputValue.ts","../../src/FilterDatePicker/hooks/useDateInputHandlers.ts","../../src/FilterDateRangePicker/subcomponents/DateInputDescription/utils/formatDescriptionInputFormat.ts","../../src/FilterDateRangePicker/subcomponents/DateInputDescription/DateInputDescription.tsx","../../src/FilterDatePicker/subcomponents/DateInputField/DateInputField.tsx","../../src/FilterDatePicker/subcomponents/FilterDatePickerField/filterDatePickerFieldReducer.tsx","../../src/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.tsx","../../src/FilterDatePicker/FilterDatePicker.tsx","../../src/SVG/icons/ChevronDownIcon.tsx","../../src/SVG/icons/ChevronUpIcon.tsx","../../src/utils/isRefObject.ts","../../src/FilterButton/_subcomponents/FilterButtonBase/FilterButtonBase.tsx","../../src/FilterButton/FilterButton/FilterButton.tsx","../../src/ButtonGroup/ButtonGroup.tsx","../../src/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx","../../src/FilterBar/subcomponents/FilterBarButton/FilterBarButton.tsx","../../src/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.tsx","../../src/FilterDateRangePicker/subcomponents/DateRangeDisplayLabel/DateRangeDisplayLabel.tsx","../../src/FilterDateRangePicker/subcomponents/DateRangeValidationMessage/DateRangeValidationMessage.tsx","../../src/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.tsx","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/filterDateRangePickerFieldReducer.tsx","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/isValidRange.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.tsx","../../src/FilterDateRangePicker/utils/isCompleteDateRange.ts","../../src/FilterDateRangePicker/FilterDateRangePicker.tsx","../../src/FilterBar/subcomponents/FilterBarDateRangePicker/FilterBarDateRangePicker.tsx","../../src/FilterMultiSelect/provider/MenuTriggerProvider/MenuTriggerProvider.tsx","../../src/FilterMultiSelect/provider/SelectionProvider/SelectionProvider.tsx","../../src/FilterMultiSelect/subcomponents/ListBox/ListBox.tsx","../../src/FilterMultiSelect/subcomponents/ListBoxSection/ListBoxSection.tsx","../../src/FilterMultiSelect/subcomponents/LoadMoreButton/LoadMoreButton.tsx","../../src/FilterMultiSelect/subcomponents/MenuLayout/MenuFooter/MenuFooter.tsx","../../src/FilterMultiSelect/subcomponents/MenuLayout/MenuLoadingSkeleton/MenuLoadingSkeleton.tsx","../../src/SVG/icons/CheckIcon.tsx","../../src/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.tsx","../../src/FilterMultiSelect/subcomponents/NoResults/NoResults.tsx","../../src/FilterMultiSelect/subcomponents/MenuPopup/MenuPopup.tsx","../../src/FilterMultiSelect/subcomponents/Root/Root.tsx","../../src/SVG/icons/SearchIcon.tsx","../../src/InputSearch/InputSearch.tsx","../../src/FilterMultiSelect/subcomponents/SearchInput/SearchInput.tsx","../../src/FilterMultiSelect/subcomponents/SectionDivider/SectionDivider.tsx","../../src/FilterMultiSelect/subcomponents/SelectionControlButton/ClearButton/ClearButton.tsx","../../src/FilterMultiSelect/subcomponents/SelectionControlButton/SelectAllButton/SelectAllButton.tsx","../../src/FilterMultiSelect/utils/getTruncatedLabel.ts","../../src/FilterMultiSelect/utils/getSelectedOptionLabels.ts","../../src/FilterMultiSelect/utils/getSelectedOptionKeys.ts","../../src/FilterMultiSelect/subcomponents/Trigger/FilterTriggerButton/FilterTriggerButton.tsx","../../src/FilterMultiSelect/subcomponents/Trigger/RemovableFilterTrigger/RemovableFilterTrigger.tsx","../../src/FilterMultiSelect/FilterMultiSelect.tsx","../../src/FilterBar/utils/checkArraysMatch.ts","../../src/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.tsx","../../src/FilterSelect/context/SelectContext.tsx","../../src/FilterSelect/subcomponents/ListBox/ListBox.tsx","../../src/FilterSelect/subcomponents/Option/Option.tsx","../../src/FilterSelect/subcomponents/ListBoxSection/ListBoxSection.tsx","../../src/FilterSelect/subcomponents/ListItem/ListItem.tsx","../../src/FilterSelect/subcomponents/ListItems/ListItems.tsx","../../src/FilterSelect/subcomponents/Overlay/Overlay.tsx","../../src/FilterSelect/subcomponents/SectionDivider/SectionDivider.tsx","../../src/FilterSelect/utils/isSelectOptionGroup.ts","../../src/FilterSelect/utils/transformSelectItemToCollectionElement.tsx","../../src/FilterSelect/FilterSelect.tsx","../../src/FilterBar/subcomponents/FilterBarSelect/FilterBarSelect.tsx","../../src/SVG/icons/AddIcon.tsx","../../src/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.tsx","../../src/FilterBar/subcomponents/ClearAllButton/ClearAllButton.tsx","../../src/FilterBar/FilterBar.tsx","../../src/KaizenProvider/OptionalIntlProvider/OptionalIntlProvider.tsx","../../src/KaizenProvider/ThemeProvider/ThemeManager.ts","../../src/KaizenProvider/ThemeProvider/themes/heart.ts","../../src/KaizenProvider/ThemeProvider/themes/index.ts","../../src/KaizenProvider/ThemeProvider/ThemeProvider.tsx","../../src/KaizenProvider/KaizenProvider.tsx","../../src/Workflow/subcomponents/Footer/components/Root/Root.tsx","../../src/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.tsx","../../src/Workflow/subcomponents/Footer/components/FooterActions/FooterActions.tsx","../../src/Workflow/subcomponents/Footer/Footer.tsx","../../src/Workflow/subcomponents/Header/components/Titles/Titles.tsx","../../src/Workflow/subcomponents/Header/components/Actions/Actions.tsx","../../src/Workflow/subcomponents/Header/components/Branding/Branding.tsx","../../src/Workflow/subcomponents/Header/components/Root/Root.tsx","../../src/Workflow/subcomponents/Header/Header.tsx","../../src/Workflow/subcomponents/Main/Main.tsx","../../src/Workflow/subcomponents/Wrapper/Wrapper.tsx","../../src/Workflow/Workflow.tsx","../../src/BrandMoment/BrandMoment.tsx","../../src/SVG/icons/ArrowRightIcon.tsx","../../src/SVG/icons/EmailIcon.tsx","../../src/ErrorPage/hooks/useErrorMessages.ts","../../src/ErrorPage/ErrorPage.tsx"],"sourcesContent":["import React, {\n ComponentType,\n forwardRef,\n Ref,\n useImperativeHandle,\n useRef,\n MouseEvent,\n FocusEvent,\n} from \"react\"\nimport classnames from \"classnames\"\nimport { Badge, BadgeAnimated } from \"@kaizen/draft-badge\"\nimport { LoadingSpinner } from \"@kaizen/loading-spinner\"\nimport styles from \"./GenericButton.module.scss\"\n\nexport type CustomButtonProps = {\n id?: string\n className: string\n href?: string\n disabled?: boolean\n onClick?: (e: MouseEvent<any>) => void\n onFocus?: (e: FocusEvent<HTMLElement>) => void\n onBlur?: (e: FocusEvent<HTMLElement>) => void\n children?: React.ReactNode\n}\n\nexport type ButtonFormAttributes = Pick<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n | \"form\"\n | \"formAction\"\n | \"formMethod\"\n | \"formEncType\"\n | \"formTarget\"\n | \"formNoValidate\"\n>\n\nexport type GenericProps = {\n id?: string\n reversed?: boolean\n onClick?: (e: MouseEvent) => void\n onMouseDown?: (e: MouseEvent) => void\n href?: string\n newTabAndIUnderstandTheAccessibilityImplications?: boolean\n disableTabFocusAndIUnderstandTheAccessibilityImplications?: boolean\n onFocus?: (e: FocusEvent<HTMLElement>) => void\n onBlur?: (e: FocusEvent<HTMLElement>) => void\n component?: ComponentType<CustomButtonProps>\n classNameOverride?: string\n}\n\nexport type ButtonType = \"submit\" | \"reset\" | \"button\"\n\nexport type WorkingProps = {\n working: true\n workingLabel: string\n workingLabelHidden?: boolean\n}\n\nexport type WorkingUndefinedProps = {\n working?: false\n}\n\nexport type BadgeProps = {\n text: string\n animateChange?: boolean\n variant?: \"default\" | \"dark\" | \"active\"\n reversed?: boolean\n}\n\nexport type RenderProps = ButtonProps & {\n additionalContent?: React.ReactNode\n iconButton?: boolean\n directionalLink?: boolean\n paginationLink?: boolean\n isActive?: boolean\n}\n\nexport type ButtonRef = { focus: () => void }\n\nexport type ButtonProps = GenericProps &\n ButtonFormAttributes &\n (WorkingProps | WorkingUndefinedProps) & {\n label: string\n primary?: boolean\n destructive?: boolean\n secondary?: boolean\n /** @default \"regular\" */\n size?: \"small\" | \"regular\"\n badge?: BadgeProps\n type?: \"submit\" | \"reset\" | \"button\"\n fullWidth?: boolean\n iconPosition?: \"start\" | \"end\"\n icon?: JSX.Element\n disabled?: boolean\n }\n\n// We're treating custom props as anything that is kebab cased.\n// This is so we can support properties like aria-* or data-*\nconst getCustomProps = (props: Record<string, any>): Record<string, string> => {\n const keys = Object.keys(props).filter(k => k.indexOf(\"-\") !== -1)\n return keys.reduce<Record<string, any>>((acc, val) => {\n acc[val] = props[val]\n return acc\n }, {})\n}\n\nconst GenericButton = forwardRef(\n (props: RenderProps, ref: Ref<ButtonRef | undefined>) => {\n const buttonRef = useRef<HTMLButtonElement | HTMLAnchorElement>()\n useImperativeHandle(ref, () => ({\n focus: (): void => {\n buttonRef.current?.focus()\n },\n }))\n\n const determineButtonRenderer = (): JSX.Element => {\n if (props.component) {\n return renderCustomComponent(props.component, props)\n }\n\n if (props.href && !props.disabled && !props.working) {\n return renderLink(props, buttonRef as Ref<HTMLAnchorElement>)\n }\n\n return renderButton(props, buttonRef as Ref<HTMLButtonElement>)\n }\n\n return (\n <span\n className={classnames(\n styles.container,\n props.fullWidth && styles.fullWidth\n )}\n aria-live=\"polite\"\n >\n {determineButtonRenderer()}\n </span>\n )\n }\n)\n\nGenericButton.defaultProps = {\n iconPosition: \"start\",\n iconButton: false,\n primary: false,\n secondary: false,\n newTabAndIUnderstandTheAccessibilityImplications: false,\n disableTabFocusAndIUnderstandTheAccessibilityImplications: false,\n type: \"button\",\n}\nGenericButton.displayName = \"GenericButton\"\n\nconst renderCustomComponent = (\n CustomComponent: ComponentType<CustomButtonProps>,\n props: RenderProps\n): JSX.Element => {\n const { id, disabled, href, onClick, onFocus, onBlur, ...rest } = props\n const customProps = getCustomProps(rest)\n return (\n <CustomComponent\n id={id}\n className={buttonClass(props)}\n disabled={disabled}\n href={href}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n aria-label={generateAriaLabel(props)}\n {...customProps}\n >\n {renderContent(props)}\n </CustomComponent>\n )\n}\n\nconst renderButton = (\n props: RenderProps,\n ref: Ref<HTMLButtonElement>\n): JSX.Element => {\n const {\n id,\n disabled,\n onClick,\n onMouseDown,\n type,\n disableTabFocusAndIUnderstandTheAccessibilityImplications,\n onFocus,\n onBlur,\n form,\n formAction,\n formMethod,\n formEncType,\n formTarget,\n formNoValidate,\n ...rest\n } = props\n const customProps = getCustomProps(rest)\n\n return (\n <button\n // eslint-disable-next-line react/button-has-type\n type={type}\n id={id}\n disabled={disabled}\n className={buttonClass(props)}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n onMouseDown={(e): void => onMouseDown && onMouseDown(e)}\n aria-label={generateAriaLabel(props)}\n aria-disabled={disabled || props.working ? true : undefined}\n form={form}\n formAction={formAction}\n formMethod={formMethod}\n formEncType={formEncType}\n formTarget={formTarget}\n formNoValidate={formNoValidate}\n tabIndex={\n disableTabFocusAndIUnderstandTheAccessibilityImplications\n ? -1\n : undefined\n }\n ref={ref}\n {...customProps}\n >\n {renderContent(props)}\n </button>\n )\n}\n\nconst renderLink = (\n props: RenderProps,\n ref: Ref<HTMLAnchorElement>\n): JSX.Element => {\n const {\n id,\n href,\n onClick,\n newTabAndIUnderstandTheAccessibilityImplications,\n onFocus,\n onBlur,\n ...rest\n } = props\n const customProps = getCustomProps(rest)\n\n const target = newTabAndIUnderstandTheAccessibilityImplications\n ? \"_blank\"\n : \"_self\"\n\n return (\n <a\n id={id}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n className={buttonClass(props)}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={ref}\n aria-label={generateAriaLabel(props)}\n {...customProps}\n >\n {renderContent(props)}\n </a>\n )\n}\n\nconst buttonClass = (props: RenderProps): string => {\n const isDefault = !props.primary && !props.destructive && !props.secondary\n return classnames(\n styles.button,\n isDefault && styles.default,\n props.primary && styles.primary,\n props.destructive && styles.destructive,\n props.secondary && styles.secondary,\n props.size && styles[props.size],\n props.reversed && styles.reversed,\n props.iconButton && styles.iconButton,\n props.working && styles.working,\n (props.directionalLink || props.paginationLink) && styles.circleButton,\n props.directionalLink && styles.directionalLink,\n props.paginationLink && styles.paginationLink,\n props.isActive && styles.isPaginationLinkActive,\n props.classNameOverride\n )\n}\n\nconst renderLoadingSpinner = (): JSX.Element => (\n <div className={styles.loadingSpinner}>\n <LoadingSpinner accessibilityLabel=\"\" size=\"sm\" />\n </div>\n)\n\nconst renderWorkingContent = (\n props: Extract<RenderProps, { working: true }>\n): JSX.Element => {\n if (props.workingLabelHidden) {\n return (\n <>\n {/* This is to ensure the button stays at the correct width */}\n <span className={styles.hidden} aria-hidden=\"true\">\n {renderDefaultContent(props)}\n </span>\n <span className={styles.centeredLoadingSpinner}>\n {renderLoadingSpinner()}\n </span>\n </>\n )\n }\n\n return (\n <>\n {props.iconPosition !== \"end\" && renderLoadingSpinner()}\n <span className={styles.label}>{props.workingLabel}</span>\n {props.additionalContent && (\n <span className={styles.additionalContentWrapper}>\n {props.additionalContent}\n </span>\n )}\n {props.iconPosition === \"end\" && renderLoadingSpinner()}\n </>\n )\n}\n\nconst renderDefaultContent = (props: RenderProps): JSX.Element => (\n <>\n {props.icon && props.iconPosition !== \"end\" && renderIcon(props.icon)}\n {(!props.icon || !props.iconButton) && (\n <span className={styles.label}>{props.label}</span>\n )}\n {props.additionalContent && (\n <span className={styles.additionalContentWrapper}>\n {props.additionalContent}\n </span>\n )}\n {renderBadge(props)}\n {props.icon && props.iconPosition === \"end\" && renderIcon(props.icon)}\n </>\n)\n\nconst renderBadge = (props: RenderProps): JSX.Element | null => {\n if (!props.badge) return null\n\n const { text, animateChange, reversed, variant } = props.badge\n\n if (animateChange) {\n return (\n <BadgeAnimated variant={variant} reversed={reversed}>\n {text}\n </BadgeAnimated>\n )\n }\n return (\n <Badge variant={variant} reversed={reversed}>\n {text}\n </Badge>\n )\n}\n\nconst renderContent = (props: RenderProps): JSX.Element => (\n <span className={styles.content}>\n {props.working ? renderWorkingContent(props) : renderDefaultContent(props)}\n </span>\n)\n\nconst renderIcon = (icon: JSX.Element): JSX.Element => (\n <span className={styles.iconWrapper}>{icon}</span>\n)\n\n// We only want an aria-label in the case that the button has just an icon and no text\n// This can happen when the button is working and workingLabelHidden is true,\n// or when this is an IconButton\nconst generateAriaLabel = (props: RenderProps): string | undefined => {\n if (props.working && props.workingLabelHidden) {\n return props.workingLabel\n }\n\n if (props.iconButton) {\n return props.label\n }\n\n return undefined\n}\n\nexport default GenericButton\n","import React, { forwardRef, Ref } from \"react\"\n\nimport GenericButton, {\n ButtonProps,\n ButtonRef,\n} from \"./components/GenericButton\"\n\n/**\n * {@link https://cultureamp.design/components/button/ Guidance} |\n * {@link https://cultureamp.design/storybook/?path=/docs/components-button--default-kaizen-site-demo Storybook}\n */\nexport const Button = forwardRef(\n (props: ButtonProps, ref: Ref<ButtonRef | undefined>) => (\n <GenericButton {...props} ref={ref} />\n )\n)\n\nButton.defaultProps = {\n fullWidth: false,\n primary: false,\n secondary: false,\n destructive: false,\n disabled: false,\n reversed: false,\n iconPosition: \"start\",\n newTabAndIUnderstandTheAccessibilityImplications: false,\n}\n\nButton.displayName = \"Button\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const ClearIcon = (props: Omit<SVGProps, \"children\">): JSX.Element => (\n <SVG {...props}>\n <path\n fillRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M10 2c-4.424 0-8 3.576-8 8 0 4.424 3.576 8 8 8 4.424 0 8-3.576 8-8 0-4.424-3.576-8-8-8Zm4 10.872L12.872 14 10 11.128 7.128 14 6 12.872 8.872 10 6 7.128 7.128 6 10 8.872 12.872 6 14 7.128 11.128 10 14 12.872Z\"\n />\n </SVG>\n)\n","import React, { ButtonHTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { ClearIcon } from \"~components/SVG/icons/ClearIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./ClearButton.module.scss\"\n\nexport interface ClearButtonProps\n extends Omit<\n OverrideClassName<ButtonHTMLAttributes<HTMLButtonElement>>,\n \"children\"\n > {\n isReversed?: boolean\n}\n\nexport const ClearButton = ({\n classNameOverride,\n isReversed = false,\n ...restProps\n}: ClearButtonProps): JSX.Element => (\n <button\n type=\"button\"\n aria-label=\"clear\"\n className={classnames(\n styles.clearButton,\n isReversed ? styles.reversed : styles.default,\n classNameOverride\n )}\n {...restProps}\n >\n <ClearIcon role=\"presentation\" />\n </button>\n)\n\nClearButton.displayName = \"ClearButton\"\n","import React, { HTMLAttributes, useState } from \"react\"\nimport { Options } from \"@popperjs/core\"\nimport classnames from \"classnames\"\nimport { usePopper } from \"react-popper\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FilterPopover.module.scss\"\n\nexport interface FilterPopoverProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n children: React.ReactNode\n referenceElement: HTMLElement | null\n popperOptions?: Partial<Options>\n}\n\nexport const FilterPopover = ({\n children,\n referenceElement,\n popperOptions,\n classNameOverride,\n ...restProps\n}: FilterPopoverProps): JSX.Element => {\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(\n null\n )\n\n const { styles: popperStyles, attributes: popperAttributes } = usePopper(\n referenceElement,\n popperElement,\n {\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 15],\n },\n },\n ],\n placement: \"bottom-start\",\n ...popperOptions,\n }\n )\n\n return (\n <div\n ref={setPopperElement}\n style={popperStyles?.popper}\n {...popperAttributes?.popper}\n className={classnames(styles.filterPopover, classNameOverride)}\n role=\"dialog\"\n aria-modal=\"true\"\n {...restProps}\n >\n {children}\n </div>\n )\n}\n\nFilterPopover.displayName = \"FilterPopover\"\n","import React, { HTMLAttributes, useEffect, useRef, useState } from \"react\"\nimport { FocusOn } from \"react-focus-on\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { FilterPopover } from \"./components/FilterPopover\"\nimport { FilterTriggerRef } from \"./types\"\n\nexport interface FilterProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n children: React.ReactNode\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n renderTrigger: (triggerProps: {\n onClick: () => void\n isOpen: boolean\n }) => JSX.Element & { ref?: React.RefObject<FilterTriggerRef> }\n onMount?: (triggerRef: React.RefObject<HTMLButtonElement>) => void\n}\n\nexport const Filter = ({\n children,\n isOpen,\n setIsOpen,\n renderTrigger,\n classNameOverride,\n onMount,\n ...restProps\n}: FilterProps): JSX.Element => {\n const [isRefLoaded, setIsRefLoaded] = useState<boolean>(false)\n\n const trigger = renderTrigger({\n onClick: (): void => setIsOpen(!isOpen),\n isOpen,\n })\n\n const inbuiltButtonRef = useRef<HTMLButtonElement>(null)\n const inbuiltRef = useRef<FilterTriggerRef>({\n triggerRef: inbuiltButtonRef,\n })\n const filterButtonRef = trigger.ref ?? inbuiltRef\n\n useEffect(() => {\n if (filterButtonRef.current?.triggerRef?.current) {\n setIsRefLoaded(true)\n onMount?.(filterButtonRef.current.triggerRef)\n }\n }, [filterButtonRef.current?.triggerRef?.current, onMount])\n\n return (\n <div className={classNameOverride} {...restProps}>\n {React.cloneElement(trigger, {\n ref: filterButtonRef,\n })}\n {isRefLoaded && isOpen && (\n <FocusOn\n scrollLock={false}\n onClickOutside={(): void => setIsOpen(false)}\n onEscapeKey={(): void => setIsOpen(false)}\n >\n <FilterPopover\n referenceElement={\n filterButtonRef.current?.triggerRef?.current || null\n }\n >\n {children}\n </FilterPopover>\n </FocusOn>\n )}\n </div>\n )\n}\n\nFilter.displayName = \"Filter\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FilterContents.module.scss\"\n\nexport interface FilterContentsProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n children: React.ReactNode\n}\n\nexport const FilterContents = ({\n children,\n classNameOverride,\n ...restProps\n}: FilterContentsProps): JSX.Element => (\n <div\n className={classnames(styles.filterContents, classNameOverride)}\n {...restProps}\n >\n {children}\n </div>\n)\n\nFilterContents.displayName = \"FilterContents\"\n","import { SourceFiltersState, FiltersValues } from \"../../types\"\nimport { FilterBarState, InternalFilterState } from \"../types\"\n\nexport const getIsUsableWhenArgs = <ValuesMap extends FiltersValues>({\n filters,\n activeFilterIds,\n values,\n}: FilterBarState<ValuesMap>): SourceFiltersState<ValuesMap> =>\n Object.values(filters).reduce<SourceFiltersState<ValuesMap>>(\n (acc, { id, name }: InternalFilterState<ValuesMap, keyof ValuesMap>) => {\n acc[id] = {\n id,\n name,\n isActive: activeFilterIds.has(id),\n value: values[id],\n }\n return acc\n },\n {} as SourceFiltersState<ValuesMap>\n )\n","import { FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\nimport { getIsUsableWhenArgs } from \"./getIsUsableWhenArgs\"\n\nexport const updateDependentFilters = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>\n): FilterBarState<ValuesMap> => {\n if (state.dependentFilterIds.size === 0) return state\n\n let hasChange = false\n\n const args = getIsUsableWhenArgs(state)\n\n Array.from(state.dependentFilterIds).forEach(id => {\n const isUsable = state.filters[id].isUsableWhen!(args)\n\n const shouldUpdate = state.filters[id].isUsable !== isUsable\n if (!shouldUpdate) return\n\n hasChange = true\n state.filters[id].isUsable = isUsable\n\n if (!isUsable) {\n state.activeFilterIds.delete(id)\n state.values[id] = undefined\n state.hasUpdatedValues = true\n return\n }\n\n if (!state.filters[id].isRemovable || state.values[id] !== undefined) {\n state.activeFilterIds.add(id)\n }\n })\n\n if (hasChange) updateDependentFilters(state)\n\n return state\n}\n","import { FiltersValues } from \"../../types\"\nimport {\n FilterBarState,\n FilterBarStateFilters,\n FilterStateEditableAttributes,\n} from \"../types\"\n\nexport const updateSingleFilter = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n id: keyof ValuesMap,\n data: Partial<FilterStateEditableAttributes>\n): FilterBarStateFilters<ValuesMap> => ({\n ...state.filters,\n [id]: { ...state.filters[id], ...data },\n})\n","import { FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\nimport { updateDependentFilters } from \"../utils/updateDependentFilters\"\n\nexport const updateValues = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n values: Partial<ValuesMap>\n): FilterBarState<ValuesMap> => {\n Object.values(state.filters).forEach(({ id, isRemovable, isUsable }) => {\n if (isUsable && (!isRemovable || values[id] !== undefined)) {\n state.activeFilterIds.add(id)\n }\n })\n\n return updateDependentFilters({ ...state, hasUpdatedValues: true, values })\n}\n","import { FiltersValues } from \"../../types\"\nimport { FilterBarState, FilterStateEditableAttributes } from \"../types\"\nimport { updateDependentFilters } from \"../utils/updateDependentFilters\"\nimport { updateSingleFilter } from \"./updateSingleFilter\"\nimport { updateValues } from \"./updateValues\"\n\ntype Actions<ValuesMap extends FiltersValues> =\n | { type: \"update_values\"; values: Partial<ValuesMap> }\n | { type: \"complete_update_values\" }\n | {\n type: \"update_single_filter\"\n id: keyof ValuesMap\n data: Partial<FilterStateEditableAttributes>\n }\n | { type: \"activate_filter\"; id: keyof ValuesMap }\n | { type: \"deactivate_filter\"; id: keyof ValuesMap }\n\nexport const filterBarStateReducer = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n action: Actions<ValuesMap>\n): FilterBarState<ValuesMap> => {\n switch (action.type) {\n case \"update_values\":\n return { ...updateValues(state, action.values) }\n\n case \"complete_update_values\":\n return {\n ...state,\n hasUpdatedValues: false,\n }\n\n case \"update_single_filter\":\n return {\n ...state,\n filters: updateSingleFilter(state, action.id, action.data),\n }\n\n case \"activate_filter\":\n state.activeFilterIds.add(action.id)\n return { ...updateDependentFilters(state) }\n\n case \"deactivate_filter\":\n state.activeFilterIds.delete(action.id)\n state.values[action.id] = undefined\n return {\n ...updateDependentFilters(state),\n hasUpdatedValues: true,\n }\n }\n}\n","import { Filters, FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\nimport { updateDependentFilters } from \"../utils/updateDependentFilters\"\n\nexport const setupFilterBarState = <ValuesMap extends FiltersValues>(\n filters: Filters<ValuesMap>,\n values: Partial<ValuesMap>\n): FilterBarState<ValuesMap> => {\n const state = filters.reduce<FilterBarState<ValuesMap>>(\n (baseState, { id, name, isRemovable, isUsableWhen }) => {\n const hasDependency = isUsableWhen !== undefined\n\n baseState.filters[id] = {\n id,\n name,\n isRemovable: isRemovable ?? false,\n isUsableWhen,\n isOpen: false,\n isUsable: true,\n }\n\n if (hasDependency) {\n baseState.dependentFilterIds.add(id)\n }\n\n if (!isRemovable || values[id] !== undefined) {\n baseState.activeFilterIds.add(id)\n }\n\n return baseState\n },\n {\n filters: {},\n activeFilterIds: new Set(),\n values,\n dependentFilterIds: new Set(),\n hasUpdatedValues: false,\n } as FilterBarState<ValuesMap>\n )\n\n return updateDependentFilters(state)\n}\n","import { FiltersValues } from \"~components/FilterBar/types\"\nimport { FilterBarState } from \"../types\"\n\nconst checkArraysMatch = (a1: any[], a2: any[]): boolean => {\n if (a1.length !== a2.length) return false\n return a1.every((v, i) => v === a2[i])\n}\n\nexport const checkShouldUpdateValues = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n values: Partial<ValuesMap>\n): boolean =>\n Object.values(state.filters).some(({ id }) => {\n const stateValue = state.values[id]\n const value = values[id]\n\n if (Array.isArray(stateValue) && Array.isArray(value)) {\n return !checkArraysMatch(stateValue, value)\n }\n\n return stateValue !== value\n })\n","import { FilterAttributes, FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\n\nexport const getInactiveFilters = <ValuesMap extends FiltersValues>({\n filters,\n activeFilterIds,\n}: FilterBarState<ValuesMap>): Array<FilterAttributes<ValuesMap>> =>\n Object.values(filters).filter(\n ({ id, isUsable }) => isUsable && !activeFilterIds.has(id)\n )\n","import { Filters, FiltersValues } from \"../../types\"\nimport { MappedFilters } from \"../types\"\n\nexport const getMappedFilters = <ValuesMap extends FiltersValues>(\n filters: Filters<ValuesMap>\n): MappedFilters<ValuesMap> =>\n filters.reduce<MappedFilters<ValuesMap>>(\n (acc, filter) => ({ ...acc, [filter.id]: filter }),\n {} as MappedFilters<ValuesMap>\n )\n","export const getValidValue = <Value>(value: Value): Value | undefined => {\n if (typeof value === \"object\" && JSON.stringify(value) === \"{}\")\n return undefined\n\n if (Array.isArray(value) && value.length === 0) return undefined\n\n return value\n}\n","import React, { useContext, useEffect, useMemo, useReducer } from \"react\"\nimport { FilterAttributes, FilterState, Filters, FiltersValues } from \"../types\"\nimport { filterBarStateReducer } from \"./reducer/filterBarStateReducer\"\nimport { setupFilterBarState } from \"./reducer/setupFilterBarState\"\nimport { ActiveFiltersArray } from \"./types\"\nimport { checkShouldUpdateValues } from \"./utils/checkShouldUpdateValues\"\nimport { getInactiveFilters } from \"./utils/getInactiveFilters\"\nimport { getMappedFilters } from \"./utils/getMappedFilters\"\nimport { getValidValue } from \"./utils/getValidValue\"\n\nexport type FilterBarContextValue<\n Value,\n ValuesMap extends FiltersValues = Record<string, Value>,\n> = {\n getFilterState: <Id extends keyof ValuesMap>(\n id: Id\n ) => FilterState<keyof ValuesMap, ValuesMap[Id]>\n getActiveFilterValues: () => Partial<ValuesMap>\n /**\n * @deprecated Use `setFilterOpenState` instead.\n */\n toggleOpenFilter: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ) => void\n setFilterOpenState: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ) => void\n openFilter: <Id extends keyof ValuesMap>(id: Id) => void\n updateValue: <Id extends keyof ValuesMap>(\n id: Id,\n value: ValuesMap[Id]\n ) => void\n showFilter: <Id extends keyof ValuesMap>(id: Id) => void\n hideFilter: <Id extends keyof ValuesMap>(id: Id) => void\n getInactiveFilters: () => Array<FilterAttributes<ValuesMap>>\n clearAllFilters: () => void\n}\n\nconst FilterBarContext = React.createContext<FilterBarContextValue<any> | null>(\n null\n)\n\nexport const useFilterBarContext = <\n Value,\n Values extends FiltersValues = Record<string, Value>,\n>(): FilterBarContextValue<Value, Values> => {\n const context = useContext(FilterBarContext)\n\n if (!context) {\n throw new Error(\n \"useFilterBarContext must be used within the FilterBarContext.Provider\"\n )\n }\n\n return context as FilterBarContextValue<Value, Values>\n}\n\nexport type FilterBarProviderProps<ValuesMap extends FiltersValues> = {\n children: (activeFilters: ActiveFiltersArray<ValuesMap>) => JSX.Element\n filters: Filters<ValuesMap>\n values: Partial<ValuesMap>\n onValuesChange: (values: Partial<ValuesMap>) => void\n}\n\nexport const FilterBarProvider = <ValuesMap extends FiltersValues>({\n children,\n filters,\n values,\n onValuesChange,\n}: FilterBarProviderProps<ValuesMap>): JSX.Element => {\n const mappedFilters = useMemo(() => getMappedFilters(filters), [filters])\n\n const [state, dispatch] = useReducer(\n filterBarStateReducer<ValuesMap>,\n setupFilterBarState<ValuesMap>(filters, values)\n )\n\n const value = {\n getFilterState: <Id extends keyof ValuesMap>(id: Id) => ({\n ...state.filters[id],\n isActive: state.activeFilterIds.has(id),\n value: values[id],\n }),\n getActiveFilterValues: () => values,\n toggleOpenFilter: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ): void => {\n dispatch({ type: \"update_single_filter\", id, data: { isOpen } })\n },\n setFilterOpenState: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ): void => {\n dispatch({ type: \"update_single_filter\", id, data: { isOpen } })\n },\n openFilter: <Id extends keyof ValuesMap>(id: Id): void => {\n dispatch({ type: \"update_single_filter\", id, data: { isOpen: true } })\n },\n updateValue: <Id extends keyof ValuesMap>(\n id: Id,\n newValue: ValuesMap[Id]\n ): void => {\n dispatch({\n type: \"update_values\",\n values: { ...values, [id]: getValidValue(newValue) },\n })\n },\n showFilter: <Id extends keyof ValuesMap>(id: Id): void =>\n dispatch({ type: \"activate_filter\", id }),\n hideFilter: <Id extends keyof ValuesMap>(id: Id): void => {\n dispatch({ type: \"deactivate_filter\", id })\n },\n getInactiveFilters: () => getInactiveFilters<ValuesMap>(state),\n clearAllFilters: () => {\n state.activeFilterIds.forEach(id => {\n if (mappedFilters[id].isRemovable)\n dispatch({ type: \"deactivate_filter\", id })\n })\n dispatch({ type: \"update_values\", values: {} })\n },\n } satisfies FilterBarContextValue<any, ValuesMap>\n\n useEffect(() => {\n const shouldUpdate = checkShouldUpdateValues<ValuesMap>(state, values)\n if (shouldUpdate) dispatch({ type: \"update_values\", values: { ...values } })\n }, [values])\n\n useEffect(() => {\n if (state.hasUpdatedValues) {\n onValuesChange({ ...state.values })\n dispatch({ type: \"complete_update_values\" })\n }\n }, [state])\n\n const activeFilters = Array.from(\n state.activeFilterIds,\n id => mappedFilters[id]\n )\n\n return (\n <FilterBarContext.Provider\n // @note: Context object cannot be generic, thus the type-casting to a looser type\n value={value as FilterBarContextValue<any, Record<string, any>>}\n >\n {children(activeFilters)}\n </FilterBarContext.Provider>\n )\n}\n","import React from \"react\"\nimport styles from \"./LabelledMessage.module.scss\"\n\nexport interface LabelledMessageProps {\n label: string | React.ReactElement\n message: string | React.ReactElement\n}\n\nexport const LabelledMessage = ({\n label,\n message,\n}: LabelledMessageProps): JSX.Element => (\n <span className={styles.labelledMessage}>\n <span>{label}</span>\n <span className={styles.labelSeparator}>:</span>\n <span>{message}</span>\n </span>\n)\n\nLabelledMessage.displayName = \"LabelledMessage\"\n","import React from \"react\"\n\n// Adapted from https://stackoverflow.com/a/60564620\nexport const getNodeText = (node: React.ReactNode): string | number => {\n if (!node) return \"\"\n if (typeof node === \"string\" || typeof node === \"number\") return node\n if (node instanceof Array) return node.map(getNodeText).join(\"\")\n if (React.isValidElement(node)) return getNodeText(node.props.children)\n return \"\"\n}\n","import React from \"react\"\nimport { LabelledMessage } from \"~components/LabelledMessage\"\nimport { getNodeText } from \"~utils/getNodeText\"\nimport { DateValidationResponse, ValidationMessage } from \"../types\"\n\nexport type GetDateValidationHandlerArgs = {\n onValidate: ((validationResponse: DateValidationResponse) => void) | undefined\n setInbuiltValidationMessage: (\n validationMessage: ValidationMessage | undefined\n ) => void\n inputLabel?: React.ReactNode\n}\n\nexport const getDateValidationHandler =\n ({\n onValidate,\n setInbuiltValidationMessage,\n inputLabel,\n }: GetDateValidationHandlerArgs) =>\n (validationResponse: DateValidationResponse): void => {\n if (onValidate) return onValidate(validationResponse)\n\n const { validationMessage } = validationResponse\n\n if (!validationMessage) {\n setInbuiltValidationMessage(undefined)\n return\n }\n\n setInbuiltValidationMessage({\n status: validationMessage.status,\n message: inputLabel ? (\n <LabelledMessage\n label={`${getNodeText(inputLabel)}`}\n message={validationMessage.message}\n />\n ) : (\n validationMessage.message\n ),\n })\n }\n","import {\n validateDate as dpValidateDate,\n ValidateDateArgs,\n} from \"@kaizen/date-picker/src/utils/validateDate\"\nimport { DateValidationResponse } from \"../types\"\n\nexport type ValidateDateResponse = {\n validationResponse: DateValidationResponse\n newDate: Date | undefined\n}\n\nexport const validateDate = (args: ValidateDateArgs): ValidateDateResponse => {\n const response = dpValidateDate(args)\n\n const { status, validationMessage, ...rest } = response.validationResponse\n\n return {\n ...response,\n validationResponse: {\n ...rest,\n validationMessage:\n status && validationMessage\n ? { status, message: validationMessage }\n : undefined,\n },\n }\n}\n","import { useState } from \"react\"\nimport { DisabledDays } from \"~types/DatePicker\"\nimport { ValidationMessage, DateValidationResponse } from \"../types\"\nimport { getDateValidationHandler } from \"../utils/getDateValidationHandler\"\nimport { validateDate } from \"../utils/validateDate\"\n\nexport type UseDateValidationArgs = {\n inputLabel?: React.ReactNode\n disabledDays?: DisabledDays\n validationMessage?: ValidationMessage\n onValidate?: (validationResponse: DateValidationResponse) => void\n}\n\nexport type UseDateValidationValue = {\n validationMessage: ValidationMessage | undefined\n validateDate: (args: {\n date: Date | undefined\n inputValue: string\n }) => ReturnType<typeof validateDate>\n updateValidation: (validationResponse: DateValidationResponse) => void\n}\n\nexport const useDateValidation = ({\n inputLabel,\n disabledDays,\n validationMessage,\n onValidate,\n}: UseDateValidationArgs): UseDateValidationValue => {\n const [inbuiltValidationMessage, setInbuiltValidationMessage] = useState<\n ValidationMessage | undefined\n >()\n\n const shouldUseInbuiltDateValidation = onValidate === undefined\n\n const updateValidation = getDateValidationHandler({\n onValidate,\n setInbuiltValidationMessage,\n inputLabel,\n })\n\n const validateSingleDate: UseDateValidationValue[\"validateDate\"] = ({\n date,\n inputValue,\n }) =>\n validateDate({\n date,\n inputValue,\n disabledDays,\n })\n\n return {\n validationMessage: shouldUseInbuiltDateValidation\n ? inbuiltValidationMessage\n : validationMessage,\n validateDate: validateSingleDate,\n updateValidation,\n }\n}\n","import { DisabledDays, formatDateAsText } from \"@kaizen/date-picker\"\n\nexport const transformDateToInputValue = (\n date: Date | undefined,\n disabledDays: DisabledDays,\n locale: Locale\n): string => (date ? formatDateAsText(date, disabledDays, locale) : \"\")\n","import {\n DateInputProps,\n formatDateAsText,\n isInvalidDate,\n} from \"@kaizen/date-picker\"\nimport { formatDateAsNumeral } from \"@kaizen/date-picker/src/utils/formatDateAsNumeral\"\nimport { isDisabledDate } from \"@kaizen/date-picker/src/utils/isDisabledDate\"\nimport { isSelectingDayInCalendar } from \"@kaizen/date-picker/src/utils/isSelectingDayInCalendar\"\nimport { parseDateFromNumeralFormatValue } from \"@kaizen/date-picker/src/utils/parseDateFromNumeralFormatValue\"\nimport { parseDateFromTextFormatValue } from \"@kaizen/date-picker/src/utils/parseDateFromTextFormatValue\"\nimport { DisabledDays } from \"~types/DatePicker\"\n\ntype UseDateInputHandlersArgs = {\n locale: Locale\n disabledDays?: DisabledDays\n setInputValue: (value: string) => void\n onDateChange: (date: Date | undefined) => void\n onDateSubmit?: (date: Date) => void\n onChange?: DateInputProps[\"onChange\"]\n onFocus?: DateInputProps[\"onFocus\"]\n onBlur?: DateInputProps[\"onBlur\"]\n onKeyDown?: DateInputProps[\"onKeyDown\"]\n}\n\ntype UseDateInputHandlersValue = {\n onChange: DateInputProps[\"onChange\"]\n onFocus: DateInputProps[\"onFocus\"]\n onBlur: DateInputProps[\"onBlur\"]\n onKeyDown: DateInputProps[\"onKeyDown\"]\n}\n\nexport const useDateInputHandlers = ({\n locale,\n disabledDays,\n setInputValue,\n onDateChange,\n onDateSubmit,\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n}: UseDateInputHandlersArgs): UseDateInputHandlersValue => {\n const isValidDate = (date: Date): boolean =>\n !isInvalidDate(date) && !isDisabledDate(date, disabledDays)\n\n const handleChange: DateInputProps[\"onChange\"] = e => {\n setInputValue(e.currentTarget.value)\n onChange?.(e)\n }\n\n const handleFocus: DateInputProps[\"onFocus\"] = e => {\n const date = parseDateFromTextFormatValue(e.currentTarget.value, locale)\n if (!isInvalidDate(date)) {\n const newInputValue = formatDateAsNumeral(date, locale)\n setInputValue(newInputValue)\n }\n onFocus?.(e)\n }\n\n const handleBlur: DateInputProps[\"onBlur\"] = e => {\n if (isSelectingDayInCalendar(e.relatedTarget)) return\n\n if (e.currentTarget.value === \"\") {\n onDateChange(undefined)\n onBlur?.(e)\n return\n }\n\n const date = parseDateFromNumeralFormatValue(e.currentTarget.value, locale)\n\n if (isValidDate(date)) {\n const newInputValue = formatDateAsText(date, disabledDays, locale)\n setInputValue(newInputValue)\n }\n\n onDateChange(date)\n onBlur?.(e)\n }\n\n const handleKeyDown: DateInputProps[\"onKeyDown\"] = e => {\n if (e.key === \"Enter\") {\n e.preventDefault()\n const date = parseDateFromNumeralFormatValue(\n e.currentTarget.value,\n locale\n )\n onDateChange(date)\n onDateSubmit?.(date)\n }\n onKeyDown?.(e)\n }\n\n return {\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n }\n}\n","export const formatDescriptionInputFormat = (locale: Locale): string =>\n locale.formatLong?.date({ width: \"short\" }).toLowerCase()\n","import React from \"react\"\nimport { useIntl } from \"@cultureamp/i18n-react-intl\"\nimport { LabelledMessage } from \"~components/LabelledMessage\"\nimport { formatDescriptionInputFormat } from \"./utils/formatDescriptionInputFormat\"\nimport styles from \"./DateInputDescription.module.scss\"\n\nexport interface DateInputDescriptionProps {\n description?: string | JSX.Element\n locale: Locale\n}\n\nexport const DateInputDescription = ({\n description,\n locale,\n}: DateInputDescriptionProps): JSX.Element => {\n const { formatMessage } = useIntl()\n const hasCustomDescription =\n (typeof description === \"string\" && description !== \"\") ||\n React.isValidElement(description)\n\n const translatedInputFormatMessage = formatMessage({\n id: \"filterDateRangePicker.inputFormat\",\n defaultMessage: \"Input format\",\n description: \"Label for the 'Input format' field\",\n })\n\n if (hasCustomDescription) {\n return (\n <span className={styles.dateInputDescription}>\n <span>{description}</span>\n <span className={styles.dateInputFormatContainer}>\n (\n <LabelledMessage\n label={translatedInputFormatMessage}\n message={formatDescriptionInputFormat(locale)}\n />\n )\n </span>\n </span>\n )\n }\n\n return (\n <LabelledMessage\n label={translatedInputFormatMessage}\n message={formatDescriptionInputFormat(locale)}\n />\n )\n}\n\nDateInputDescription.displayName = \"DateInputDescription\"\n","import React from \"react\"\nimport { DateInput, DateInputProps } from \"@kaizen/date-picker\"\nimport { FieldMessage } from \"@kaizen/draft-form\"\nimport {\n DateInputDescription,\n DateInputDescriptionProps,\n} from \"~components/FilterDateRangePicker/subcomponents/DateInputDescription\"\n\nimport { ValidationMessage } from \"../../types\"\nimport styles from \"./DateInputField.module.scss\"\n\nexport interface DateInputFieldProps\n extends Omit<DateInputProps, \"id\" | \"labelText\"> {\n id: string\n locale: Locale\n /**\n * A description that provides context for the text field\n */\n description?: DateInputDescriptionProps[\"description\"]\n isReversed?: boolean\n validationMessage?: ValidationMessage\n disabled?: boolean\n labelText?: DateInputProps[\"labelText\"]\n}\n\nexport const DateInputField = React.forwardRef<\n HTMLInputElement,\n DateInputFieldProps\n>(\n (\n {\n id,\n labelText,\n description,\n disabled,\n isReversed = false,\n validationMessage,\n locale,\n classNameOverride,\n ...restProps\n },\n ref\n ) => {\n const descriptionId = `${id}--field-message`\n\n const errorMessageId = validationMessage\n ? `${id}--date-error-message`\n : undefined\n\n const inputDescribedBy = errorMessageId\n ? `${errorMessageId} ${descriptionId}`\n : descriptionId\n\n const dateIsInvalid = errorMessageId !== undefined\n\n return (\n <div>\n <DateInput\n ref={ref}\n id={id}\n labelText={labelText || \"Date\"}\n aria-describedby={inputDescribedBy}\n aria-errormessage={errorMessageId}\n aria-invalid={dateIsInvalid}\n autoComplete=\"off\"\n disabled={disabled}\n status={validationMessage?.status}\n classNameOverride={classNameOverride}\n {...restProps}\n />\n\n {validationMessage && (\n <FieldMessage\n id={errorMessageId}\n message={validationMessage?.message}\n status={validationMessage?.status}\n reversed={isReversed}\n />\n )}\n\n <FieldMessage\n id={descriptionId}\n message={\n <DateInputDescription description={description} locale={locale} />\n }\n reversed={isReversed}\n classNameOverride={disabled ? styles.disabled : undefined}\n />\n </div>\n )\n }\n)\nDateInputField.displayName = \"DateInputField\"\n","import { isInvalidDate } from \"@kaizen/date-picker\"\n\ntype DateFieldActions =\n | {\n type: \"update_selected_date\"\n date: Date | undefined\n inputValue?: string\n }\n | {\n type: \"navigate_months\"\n date: Date | undefined\n }\n | {\n type: \"update_input_field\"\n inputValue: string\n }\n\ntype FilterDatePickerState = {\n selectedDate: Date | undefined\n inputValue: string\n startMonth: Date\n}\n\nexport const filterDatePickerFieldReducer = (\n state: FilterDatePickerState,\n action: DateFieldActions\n): FilterDatePickerState => {\n switch (action.type) {\n case \"update_selected_date\":\n return {\n ...state,\n selectedDate: action.date,\n inputValue:\n action.inputValue === undefined\n ? state.inputValue\n : action.inputValue,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n\n case \"navigate_months\":\n return {\n ...state,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n\n case \"update_input_field\":\n return {\n ...state,\n inputValue: action.inputValue,\n }\n }\n}\n","import React, { HTMLAttributes, useEffect, useReducer, useState } from \"react\"\nimport classnames from \"classnames\"\nimport { v4 } from \"uuid\"\nimport {\n CalendarSingle,\n CalendarSingleProps,\n isInvalidDate,\n getLocale,\n} from \"@kaizen/date-picker\"\nimport { FilterProps } from \"~components/Filter\"\nimport { useDateValidation } from \"~components/FilterDatePicker/hooks/useDateValidation\"\nimport { transformDateToInputValue } from \"~components/FilterDatePicker/utils/transformDateToInputValue\"\nimport { DateInputDescriptionProps } from \"~components/FilterDateRangePicker/subcomponents/DateInputDescription\"\nimport { DataAttributes } from \"~types/DataAttributes\"\nimport { DisabledDays, FilterDateSupportedLocales } from \"~types/DatePicker\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { useDateInputHandlers } from \"../../hooks/useDateInputHandlers\"\nimport { DateValidationResponse, ValidationMessage } from \"../../types\"\nimport { DateInputField, DateInputFieldProps } from \"../DateInputField\"\nimport { filterDatePickerFieldReducer } from \"./filterDatePickerFieldReducer\"\nimport styles from \"./FilterDatePickerField.module.scss\"\n\ntype FilterInputProps<InputProps> = Omit<Partial<InputProps>, \"value\"> &\n DataAttributes\n\nexport interface FilterDatePickerFieldProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n id?: string\n locale: FilterDateSupportedLocales\n /**\n * Sets first displayed month to month of provided date if there isn't a date set.\n */\n defaultMonth?: CalendarSingleProps[\"defaultMonth\"]\n /**\n * The date range passed in from the consumer that renders in the inputs and calendar.\n */\n selectedDate: Date | undefined\n /**\n * Callback when date is updated either by the calendar picker or by typing and blurring.\n * Date will return as `undefined` if empty, invalid or disabled.\n */\n onDateChange: (date: Date | undefined) => void\n /**\n * Callback when date is saved/committed/submitted valid date by either by the calendar picker or by typing and blurring.\n * Date will return as `undefined` if empty, invalid or disabled.\n *\n * Distinctly different from `change` where that is triggered on any kind of event, we expect the final valid date in this function.\n */\n onDateSubmit?: (date: Date | undefined) => void\n /**\n * See https://react-day-picker.js.org/api/types/Matcher\n */\n disabledDays?: DisabledDays\n inputProps?: FilterInputProps<DateInputFieldProps>\n /**\n * Custom description to provide extra context (input format help text remains).\n */\n description?: DateInputDescriptionProps[\"description\"]\n validationMessage?: ValidationMessage\n /**\n * Callback when a date is selected. Utilises internal validation if not set.\n */\n onValidate?: (validationResponse: DateValidationResponse) => void\n setIsFilterOpen?: FilterProps[\"setIsOpen\"]\n}\n\nexport const FilterDatePickerField = ({\n id: propsId,\n inputProps,\n locale: propsLocale,\n defaultMonth,\n selectedDate,\n onDateChange,\n onDateSubmit,\n disabledDays,\n description,\n validationMessage,\n onValidate,\n classNameOverride,\n ...restProps\n}: FilterDatePickerFieldProps): JSX.Element => {\n const [id] = useState<string>(propsId || v4())\n const locale = getLocale(propsLocale)\n\n const dateValidation = useDateValidation({\n disabledDays,\n validationMessage,\n onValidate,\n })\n\n const validateDate = (\n date: Date | undefined,\n inputValue: string\n ): Date | undefined => {\n const { validationResponse, newDate } = dateValidation.validateDate({\n date,\n inputValue,\n })\n dateValidation.updateValidation(validationResponse)\n\n return newDate\n }\n\n const [state, dispatch] = useReducer(filterDatePickerFieldReducer, {\n selectedDate,\n inputValue:\n transformDateToInputValue(selectedDate, disabledDays, locale) || \"\",\n startMonth:\n selectedDate && !isInvalidDate(selectedDate)\n ? selectedDate\n : defaultMonth || new Date(),\n })\n\n const handleDateChange = (date: Date | undefined): void => {\n onDateChange(date)\n }\n\n const inputDateHandlers = useDateInputHandlers({\n locale,\n disabledDays,\n setInputValue: value => {\n dispatch({\n type: \"update_input_field\",\n inputValue: value,\n })\n },\n onDateChange: date => {\n // Because the input value is being tracked in the state as the user types\n // we can reliably utilise state.inputValue as part of the validation message,\n // which is triggered by `onBlur` function\n const newDate = validateDate(date, state.inputValue)\n\n dispatch({\n type: \"update_selected_date\",\n date: newDate,\n })\n\n handleDateChange(newDate)\n },\n onDateSubmit: date => {\n // Only provide consumers with a valid date to the `onDateSubmit` function\n if (!isInvalidDate(date)) {\n onDateSubmit?.(date)\n }\n },\n ...inputProps,\n })\n\n const handleCalendarSelect: CalendarSingleProps[\"onSelect\"] = date => {\n // Transforming the date to an InputValue and validating the date with the result\n // can operate in this order because we are guaranteed a valid date from the calendar.\n //\n // In all other scenarios, this won't work as the return string from an invalid date\n // would be \"Invalid Date\" and not the actual value entered by the user since we want\n // the final error message to use the typed word from the user.\n const inputValue = transformDateToInputValue(date, disabledDays, locale)\n const newDate = validateDate(date, inputValue)\n\n dispatch({\n type: \"update_selected_date\",\n date: newDate,\n })\n\n dispatch({\n type: \"update_input_field\",\n inputValue,\n })\n\n handleDateChange(newDate)\n onDateSubmit?.(newDate)\n }\n\n useEffect(() => {\n validateDate(selectedDate, state.inputValue)\n }, [])\n\n return (\n <div\n className={classnames(styles.filterDatePickerField, classNameOverride)}\n {...restProps}\n >\n <DateInputField\n id={`${id}--input`}\n locale={locale}\n value={state.inputValue}\n description={description}\n validationMessage={dateValidation.validationMessage}\n {...inputDateHandlers}\n {...inputProps}\n />\n <CalendarSingle\n disabled={disabledDays}\n locale={locale}\n selected={state.selectedDate}\n onSelect={handleCalendarSelect}\n month={state.startMonth}\n onMonthChange={(value: Date) =>\n dispatch({ type: \"navigate_months\", date: value })\n }\n />\n </div>\n )\n}\n","import React from \"react\"\nimport { formatDateAsText, getLocale } from \"@kaizen/date-picker\"\nimport { Filter, FilterContents, FilterProps } from \"../Filter\"\nimport { FilterButtonProps } from \"../FilterButton\"\nimport {\n FilterDatePickerField,\n FilterDatePickerFieldProps,\n} from \"./subcomponents/FilterDatePickerField\"\n\nexport interface FilterDatePickerProps\n extends Omit<FilterDatePickerFieldProps, \"id\"> {\n id?: string\n label: string\n isOpen: FilterProps[\"isOpen\"]\n setIsOpen: FilterProps[\"setIsOpen\"]\n renderTrigger: (triggerProps: FilterButtonProps) => JSX.Element\n}\n\nexport const FilterDatePicker = ({\n isOpen,\n setIsOpen,\n renderTrigger,\n selectedDate,\n label,\n locale,\n onDateSubmit,\n ...restProps\n}: FilterDatePickerProps): JSX.Element => (\n <Filter\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n renderTrigger={(triggerProps): JSX.Element =>\n renderTrigger({\n selectedValue: selectedDate\n ? formatDateAsText(selectedDate, undefined, getLocale(locale))\n : undefined,\n label,\n ...triggerProps,\n })\n }\n >\n <FilterContents>\n <FilterDatePickerField\n locale={locale}\n selectedDate={selectedDate}\n onDateSubmit={date => {\n setIsOpen(false)\n onDateSubmit?.(date)\n }}\n {...restProps}\n />\n </FilterContents>\n </Filter>\n)\n\nFilterDatePicker.displayName = \"FilterDatePicker\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const ChevronDownIcon = (\n props: Omit<SVGProps, \"children\">\n): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M6.179 6.845 10 10.747l3.821-3.902L15 8.049l-5 5.106-5-5.106z\"\n />\n </SVG>\n)\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const ChevronUpIcon = (\n props: Omit<SVGProps, \"children\">\n): JSX.Element => (\n <SVG {...props}>\n <path\n fillRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M6.179 13.155 10 9.253l3.821 3.902 1.18-1.204L10 6.845l-5.001 5.106z\"\n />\n </SVG>\n)\n","export const isRefObject = (\n ref: React.ForwardedRef<any>\n): ref is React.MutableRefObject<any> => ref !== null && \"current\" in ref\n","import React, { ButtonHTMLAttributes, forwardRef } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FilterButtonBase.module.scss\"\n\nexport interface FilterButtonBaseProps\n extends OverrideClassName<ButtonHTMLAttributes<HTMLButtonElement>> {\n children: React.ReactNode\n}\n\nexport const FilterButtonBase = forwardRef<\n HTMLButtonElement,\n FilterButtonBaseProps\n>(({ children, classNameOverride, ...restProps }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={classnames(styles.filterButtonBase, classNameOverride)}\n {...restProps}\n >\n {children}\n </button>\n))\n\nFilterButtonBase.displayName = \"FilterButtonBase\"\n","import React, { forwardRef } from \"react\"\nimport classnames from \"classnames\"\nimport { ChevronDownIcon } from \"~components/SVG/icons/ChevronDownIcon\"\nimport { ChevronUpIcon } from \"~components/SVG/icons/ChevronUpIcon\"\nimport { isRefObject } from \"~utils/isRefObject\"\nimport { FilterTriggerRef } from \"../../Filter/types\"\nimport {\n FilterButtonBase,\n FilterButtonBaseProps,\n} from \"../_subcomponents/FilterButtonBase\"\nimport styles from \"./FilterButton.module.scss\"\n\nexport interface FilterButtonProps\n extends Omit<FilterButtonBaseProps, \"children\"> {\n label: string\n selectedValue?: string | JSX.Element\n isOpen?: boolean\n}\n\nexport const FilterButton = forwardRef<FilterTriggerRef, FilterButtonProps>(\n (\n { label, selectedValue, isOpen = false, classNameOverride, ...restProps },\n ref\n ) => {\n const customRefObject = isRefObject(ref) ? ref.current : null\n const triggerRef = customRefObject?.triggerRef\n const selectedValuesLabel = selectedValue\n\n return (\n <FilterButtonBase\n ref={triggerRef}\n classNameOverride={classnames(styles.filterButton, classNameOverride)}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n {...restProps}\n >\n <span className={styles.labelContainer}>\n {selectedValuesLabel ? (\n <>\n <span className={styles.hasSelectedValues}>\n <span>{label}</span>\n <span className={styles.labelSeparator}>:</span>\n </span>\n <span>{selectedValuesLabel}</span>\n </>\n ) : (\n label\n )}\n </span>\n {isOpen ? (\n <ChevronUpIcon role=\"presentation\" />\n ) : (\n <ChevronDownIcon role=\"presentation\" />\n )}\n </FilterButtonBase>\n )\n }\n)\n\nFilterButton.displayName = \"FilterButton\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { Tooltip, TooltipProps } from \"@kaizen/draft-tooltip\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n FilterButtonBase,\n FilterButtonBaseProps,\n} from \"../FilterButton/_subcomponents/FilterButtonBase\"\nimport styles from \"./ButtonGroup.module.scss\"\n\nconst isFilterButton = (\n node: React.ReactNode\n): node is React.ReactElement<FilterButtonBaseProps> =>\n React.isValidElement(node) && node.type === FilterButtonBase\n\nexport interface ButtonGroupProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n children:\n | React.ReactElement<FilterButtonBaseProps | TooltipProps>\n | Array<React.ReactElement<FilterButtonBaseProps | TooltipProps>>\n}\n\nexport const ButtonGroup = ({\n children,\n classNameOverride,\n ...restProps\n}: ButtonGroupProps): JSX.Element => {\n const childCount = React.Children.count(children)\n\n const containerProps = {\n role: \"group\",\n className: classnames(styles.buttonGroup, classNameOverride),\n ...restProps,\n }\n\n if (childCount === 1) return <div {...containerProps}>{children}</div>\n\n return (\n <div {...containerProps}>\n {React.Children.map(children, (child, index) => {\n const buttonClassNames = classnames(\n styles.child,\n index === 0 && styles.firstChild,\n index === childCount - 1 && styles.lastChild,\n child.props.classNameOverride\n )\n\n if (child.type === Tooltip) {\n const button = child.props.children\n\n if (isFilterButton(button)) {\n return React.cloneElement(child, {\n children: React.cloneElement(button, {\n classNameOverride: buttonClassNames,\n }),\n })\n }\n\n return child\n }\n\n return React.cloneElement(child, {\n classNameOverride: buttonClassNames,\n })\n })}\n </div>\n )\n}\n\nButtonGroup.displayName = \"ButtonGroup\"\n","import React, { forwardRef } from \"react\"\nimport { Tooltip } from \"@kaizen/draft-tooltip\"\nimport { ClearIcon } from \"~icons/ClearIcon\"\nimport { DataAttributes } from \"~types/DataAttributes\"\nimport { isRefObject } from \"~utils/isRefObject\"\nimport { ButtonGroup, ButtonGroupProps } from \"../../ButtonGroup\"\nimport { FilterTriggerRef } from \"../../Filter\"\nimport { FilterButton, FilterButtonProps } from \"../FilterButton\"\n\nimport {\n FilterButtonBase,\n FilterButtonBaseProps,\n} from \"../_subcomponents/FilterButtonBase\"\n\nexport interface FilterButtonRemovableProps\n extends Omit<ButtonGroupProps, \"children\"> {\n triggerButtonProps: FilterButtonProps & DataAttributes\n removeButtonProps: Partial<Omit<FilterButtonBaseProps, \"children\">> &\n DataAttributes & { tooltipText?: string }\n}\n\nexport type FilterButtonRemovableRefs = FilterTriggerRef & {\n removeButtonRef?: React.RefObject<HTMLButtonElement>\n}\n\nexport const FilterButtonRemovable = forwardRef<\n FilterButtonRemovableRefs,\n FilterButtonRemovableProps\n>(({ triggerButtonProps, removeButtonProps, ...restProps }, ref) => {\n const customRefObject = isRefObject(ref) ? ref.current : null\n const removeButtonRef = customRefObject?.removeButtonRef\n\n const removeButtonLabel =\n removeButtonProps?.tooltipText ??\n `Remove filter - ${triggerButtonProps?.label}`\n\n return (\n <ButtonGroup {...restProps}>\n <FilterButton ref={ref} {...triggerButtonProps} />\n <Tooltip text={removeButtonLabel} display=\"inline-block\" position=\"below\">\n <FilterButtonBase ref={removeButtonRef} {...removeButtonProps}>\n <ClearIcon title={removeButtonLabel} />\n </FilterButtonBase>\n </Tooltip>\n </ButtonGroup>\n )\n})\n\nFilterButtonRemovable.displayName = \"FilterButtonRemovable\"\n","import React, { forwardRef } from \"react\"\nimport { FilterTriggerRef } from \"~components/Filter\"\nimport { useFilterBarContext } from \"~components/FilterBar/context/FilterBarContext\"\nimport {\n FilterButton,\n FilterButtonProps,\n FilterButtonRemovable,\n} from \"~components/FilterButton\"\n\nexport type FilterBarButtonProps = FilterButtonProps & {\n id: string\n isRemovable: boolean | undefined\n}\n\nexport const FilterBarButton = forwardRef<\n FilterTriggerRef,\n FilterBarButtonProps\n>(({ id, isRemovable = false, ...props }, ref): JSX.Element => {\n const { hideFilter } = useFilterBarContext()\n\n return isRemovable ? (\n <FilterButtonRemovable\n ref={ref}\n triggerButtonProps={props}\n removeButtonProps={{ onClick: () => hideFilter(id) }}\n />\n ) : (\n <FilterButton ref={ref} {...props} />\n )\n})\n\nFilterBarButton.displayName = \"FilterBar.Button\"\n","import React from \"react\"\nimport {\n FilterDatePicker,\n FilterDatePickerProps,\n} from \"~components/FilterDatePicker\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { FilterBarButton } from \"../FilterBarButton\"\n\nexport type FilterBarDatePickerProps = Omit<\n FilterDatePickerProps,\n | \"id\"\n | \"label\"\n | \"renderTrigger\"\n | \"isOpen\"\n | \"setIsOpen\"\n | \"selectedDate\"\n | \"onDateChange\"\n | \"locale\"\n> & {\n id?: string\n locale?: FilterDatePickerProps[\"locale\"]\n onDateChange?: FilterDatePickerProps[\"onDateChange\"]\n}\n\nexport const FilterBarDatePicker = ({\n id,\n onDateChange,\n locale = \"en-AU\",\n ...props\n}: FilterBarDatePickerProps): JSX.Element => {\n const { getFilterState, setFilterOpenState, updateValue } =\n useFilterBarContext<Date | undefined>()\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarDatePicker\")\n\n const filterState = getFilterState(id)\n\n return (\n <FilterDatePicker\n {...props}\n id={id}\n locale={locale}\n selectedDate={filterState.value || undefined}\n label={filterState.name}\n renderTrigger={(triggerProps): JSX.Element => (\n <FilterBarButton\n {...triggerProps}\n id={id}\n isRemovable={filterState.isRemovable}\n />\n )}\n onDateChange={(key): void => {\n updateValue(id, key)\n onDateChange?.(key)\n }}\n isOpen={filterState.isOpen}\n setIsOpen={(open): void => setFilterOpenState(id, open)}\n />\n )\n}\n\nFilterBarDatePicker.displayName = \"FilterBar.DatePicker\"\n","import React from \"react\"\nimport { formatDateAsText } from \"@kaizen/date-picker/src/utils/formatDateAsText\"\nimport styles from \"./DateRangeDisplayLabel.module.scss\"\n\nexport interface DateRangeDisplayLabelProps {\n dateRange: { from: Date; to: Date }\n locale: Locale\n}\n\nexport const DateRangeDisplayLabel = ({\n dateRange,\n locale,\n}: DateRangeDisplayLabelProps): JSX.Element | null => {\n const formattedDateFrom = formatDateAsText(dateRange.from, undefined, locale)\n const formattedDateTo = formatDateAsText(dateRange.to, undefined, locale)\n\n return (\n <span className={styles.dateRangeDisplayLabel}>\n <span>{formattedDateFrom}</span>\n <span>-</span>\n <span>{formattedDateTo}</span>\n </span>\n )\n}\n\nDateRangeDisplayLabel.displayName = \"DateRangeDisplayLabel\"\n","import React from \"react\"\nimport { FieldMessage } from \"@kaizen/draft-form\"\nimport { DateRangeFieldValidationMessage } from \"../FilterDateRangePickerField/types\"\nimport styles from \"./DateRangeValidationMessage.module.scss\"\n\nexport interface DateRangeValidationMessageProps {\n validationMessage?: DateRangeFieldValidationMessage\n dateStartId?: string\n dateEndId?: string\n isReversed?: boolean\n}\n\nexport const DateRangeValidationMessage = ({\n validationMessage,\n dateStartId,\n dateEndId,\n isReversed,\n}: DateRangeValidationMessageProps): JSX.Element | null => {\n if (!validationMessage) return null\n\n const dateStart = validationMessage.dateStart\n const dateEnd = validationMessage.dateEnd\n\n if (dateStart && dateEnd) {\n if (dateStart.status === dateEnd.status) {\n return (\n <FieldMessage\n message={\n <ul className={styles.fieldMessageList}>\n <li id={dateStartId}>{dateStart.message}</li>\n <li id={dateEndId}>{dateEnd.message}</li>\n </ul>\n }\n status={dateStart.status || dateEnd.status}\n reversed={isReversed}\n />\n )\n }\n\n return (\n <>\n <FieldMessage\n id={dateStartId}\n message={dateStart.message}\n status={dateStart.status}\n reversed={isReversed}\n />\n <FieldMessage\n id={dateEndId}\n message={dateEnd.message}\n status={dateEnd.status}\n reversed={isReversed}\n />\n </>\n )\n }\n\n if (dateStart) {\n return (\n <FieldMessage\n id={dateStartId}\n message={dateStart.message}\n status={dateStart.status}\n reversed={isReversed}\n />\n )\n }\n\n if (dateEnd) {\n return (\n <FieldMessage\n id={dateEndId}\n message={dateEnd.message}\n status={dateEnd.status}\n reversed={isReversed}\n />\n )\n }\n\n return null\n}\n\nDateRangeValidationMessage.displayName = \"DateRangeValidationMessage\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport {\n DateInput,\n DateInputProps,\n} from \"@kaizen/date-picker/src/_subcomponents/DateInput\"\nimport { FieldMessage } from \"@kaizen/draft-form\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { isRefObject } from \"~utils/isRefObject\"\nimport {\n DateInputDescription,\n DateInputDescriptionProps,\n} from \"../DateInputDescription\"\nimport {\n DateRangeValidationMessage,\n DateRangeValidationMessageProps,\n} from \"../DateRangeValidationMessage\"\nimport styles from \"./DateRangeInputField.module.scss\"\n\nexport interface DateRangeInputFieldProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n id: string\n legend: string\n\n inputStartDateProps: Omit<DateInputProps, \"id\">\n inputEndDateProps: Omit<DateInputProps, \"id\">\n\n locale: Locale\n /**\n * A description that provides context for the text field\n */\n description?: DateInputDescriptionProps[\"description\"]\n isReversed?: boolean\n validationMessage?: DateRangeValidationMessageProps[\"validationMessage\"]\n disabled?: boolean\n}\n\nexport type DateRangeInputFieldRefs = {\n inputStartDateRef?: React.RefObject<HTMLInputElement>\n inputEndDateRef?: React.RefObject<HTMLInputElement>\n}\n\nexport const DateRangeInputField = React.forwardRef<\n DateRangeInputFieldRefs,\n DateRangeInputFieldProps\n>(\n (\n {\n id,\n legend,\n inputStartDateProps,\n inputEndDateProps,\n description,\n disabled,\n isReversed = false,\n validationMessage,\n locale,\n classNameOverride,\n ...restProps\n },\n ref\n ) => {\n const customRefObject = isRefObject(ref) ? ref.current : null\n const inputStartDateRef = customRefObject?.inputStartDateRef\n const inputEndDateRef = customRefObject?.inputEndDateRef\n\n const descriptionId = `${id}--field-message`\n\n // Date Start aria labels\n const dateStartErrorMessageId = validationMessage?.dateStart\n ? `${id}--date-start-error-message`\n : undefined\n\n const dateStartInputDescribedBy = dateStartErrorMessageId\n ? `${dateStartErrorMessageId} ${descriptionId}`\n : descriptionId\n\n const dateStartIsInvalid = dateStartErrorMessageId !== undefined\n\n // Date End aria labels\n const dateEndErrorMessageId = validationMessage?.dateEnd\n ? `${id}--date-end-error-message`\n : undefined\n\n const dateEndInputDescribedBy = dateEndErrorMessageId\n ? `${dateEndErrorMessageId} ${descriptionId}`\n : descriptionId\n\n const dateEndIsInvalid = dateEndErrorMessageId !== undefined\n\n return (\n <div className={classNameOverride} {...restProps}>\n <fieldset className={styles.dateRangeInputContainer}>\n <legend>\n <VisuallyHidden>{legend}</VisuallyHidden>\n </legend>\n <DateInput\n ref={inputStartDateRef}\n id={`${id}--from`}\n aria-describedby={dateStartInputDescribedBy}\n aria-errormessage={dateStartErrorMessageId}\n aria-invalid={dateStartIsInvalid}\n autoComplete=\"off\"\n disabled={disabled}\n status={validationMessage?.dateStart?.status}\n {...inputStartDateProps}\n classNameOverride={classnames(\n styles.inputStartDate,\n inputStartDateProps.classNameOverride\n )}\n />\n <DateInput\n ref={inputEndDateRef}\n id={`${id}--to`}\n aria-describedby={dateEndInputDescribedBy}\n aria-errormessage={dateEndErrorMessageId}\n aria-invalid={dateEndIsInvalid}\n autoComplete=\"off\"\n disabled={disabled}\n status={validationMessage?.dateEnd?.status}\n {...inputEndDateProps}\n classNameOverride={classnames(\n styles.inputEndDate,\n inputEndDateProps.classNameOverride\n )}\n />\n </fieldset>\n\n {validationMessage && (\n <DateRangeValidationMessage\n validationMessage={validationMessage}\n isReversed={isReversed}\n dateStartId={dateStartErrorMessageId}\n dateEndId={dateEndErrorMessageId}\n />\n )}\n\n <FieldMessage\n id={descriptionId}\n message={\n <DateInputDescription description={description} locale={locale} />\n }\n reversed={isReversed}\n classNameOverride={disabled ? styles.disabled : undefined}\n />\n </div>\n )\n }\n)\nDateRangeInputField.displayName = \"DateRangeInputField\"\n","import { isInvalidDate } from \"@kaizen/date-picker\"\n\ntype DateRangeFieldActions =\n | {\n type: \"update_selected_start_date\"\n date: Date | undefined\n inputValue?: string\n }\n | {\n type: \"update_selected_end_date\"\n date: Date | undefined\n inputValue?: string\n }\n | {\n type: \"navigate_months\"\n date: Date | undefined\n }\n | {\n type: \"update_input_start_field\"\n inputValue: string\n }\n | {\n type: \"update_input_end_field\"\n inputValue: string\n }\n\ntype FilterDateRangePickerState = {\n selectedStartDate: Date | undefined\n selectedEndDate: Date | undefined\n inputStartValue: string\n inputEndValue: string\n startMonth: Date\n}\n\nexport const filterDatePickerFieldReducer = (\n state: FilterDateRangePickerState,\n action: DateRangeFieldActions\n): FilterDateRangePickerState => {\n switch (action.type) {\n case \"update_selected_start_date\":\n return {\n ...state,\n selectedStartDate: action.date,\n inputStartValue:\n action.inputValue === undefined\n ? state.inputStartValue\n : action.inputValue,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n case \"update_selected_end_date\":\n return {\n ...state,\n selectedEndDate: action.date,\n inputEndValue:\n action.inputValue === undefined\n ? state.inputEndValue\n : action.inputValue,\n }\n case \"navigate_months\":\n return {\n ...state,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n case \"update_input_start_field\":\n return {\n ...state,\n inputStartValue: action.inputValue,\n }\n case \"update_input_end_field\":\n return {\n ...state,\n inputEndValue: action.inputValue,\n }\n }\n}\n","export const isValidRange = (\n startDate: Date | undefined,\n endDate: Date | undefined\n): boolean => {\n if (startDate && endDate) return startDate <= endDate\n return false\n}\n","import React from \"react\"\nimport { DateValidationResponse } from \"~components/FilterDatePicker\"\nimport { getNodeText } from \"../../../../utils/getNodeText\"\nimport { isValidRange } from \"./isValidRange\"\n\nexport type ValidateEndDateBeforeStartDateArgs = {\n startDate: Date\n startDateFieldLabel: React.ReactNode\n endDate: Date\n endDateInputValue: string\n}\n\nexport type ValidateEndDateBeforeStartDateResponse = {\n validationResponse: DateValidationResponse\n newDate: Date | undefined\n}\n\nexport const validateEndDateBeforeStartDate = ({\n startDate,\n startDateFieldLabel,\n endDate,\n endDateInputValue,\n}: ValidateEndDateBeforeStartDateArgs): ValidateEndDateBeforeStartDateResponse => {\n const baseResponse = {\n date: endDate,\n inputValue: endDateInputValue,\n validationMessage: undefined,\n isInvalid: false,\n isDisabled: false,\n isEmpty: false,\n isValidDate: true,\n }\n\n if (!isValidRange(startDate, endDate)) {\n return {\n validationResponse: {\n ...baseResponse,\n validationMessage: {\n status: \"error\",\n message: `Cannot be earlier than the selection in \"${getNodeText(\n startDateFieldLabel\n )}\"`,\n },\n },\n newDate: endDate,\n }\n }\n\n return {\n validationResponse: baseResponse,\n newDate: endDate,\n }\n}\n","import {\n useDateValidation,\n UseDateValidationArgs,\n ValidationMessage,\n} from \"~components/FilterDatePicker\"\nimport {\n validateEndDateBeforeStartDate,\n ValidateEndDateBeforeStartDateArgs,\n} from \"../utils/validateEndDateBeforeStartDate\"\n\nexport type UseEndDateValidationArgs = UseDateValidationArgs\n\nexport type UseEndDateValidationValue = {\n validationMessage: ValidationMessage | undefined\n validateDate: (args: {\n endDate: Date | undefined\n endDateInputValue: string\n startDate: Date | undefined\n startDateFieldLabel: React.ReactNode\n }) => Date | undefined\n validateEndDateBeforeStartDate: (\n args: ValidateEndDateBeforeStartDateArgs\n ) => Date | undefined\n}\n\nexport const useEndDateValidation = (\n args: UseEndDateValidationArgs\n): UseEndDateValidationValue => {\n const { validationMessage, validateDate, updateValidation } =\n useDateValidation(args)\n\n const handleValidateEndDateBeforeStartDate: UseEndDateValidationValue[\"validateEndDateBeforeStartDate\"] =\n handlerArgs => {\n const { validationResponse, newDate } =\n validateEndDateBeforeStartDate(handlerArgs)\n updateValidation(validationResponse)\n return newDate\n }\n\n const validateEndDate: UseEndDateValidationValue[\"validateDate\"] = ({\n endDate,\n endDateInputValue,\n startDate,\n startDateFieldLabel,\n }) => {\n const { validationResponse, newDate } = validateDate({\n date: endDate,\n inputValue: endDateInputValue,\n })\n\n if (validationResponse.isValidDate) {\n if (newDate && startDate) {\n return handleValidateEndDateBeforeStartDate({\n startDate,\n startDateFieldLabel,\n endDate: newDate,\n endDateInputValue,\n })\n }\n }\n\n updateValidation(validationResponse)\n return newDate\n }\n\n return {\n validationMessage,\n validateDate: validateEndDate,\n validateEndDateBeforeStartDate: handleValidateEndDateBeforeStartDate,\n }\n}\n","import {\n useDateValidation,\n UseDateValidationArgs,\n ValidationMessage,\n} from \"~components/FilterDatePicker\"\n\nexport type UseStartDateValidationArgs = UseDateValidationArgs\n\nexport type UseStartDateValidationValue = {\n validationMessage: ValidationMessage | undefined\n validateDate: (args: {\n date: Date | undefined\n inputValue: string\n }) => Date | undefined\n}\n\nexport const useStartDateValidation = (\n args: UseStartDateValidationArgs\n): UseStartDateValidationValue => {\n const { validationMessage, validateDate, updateValidation } =\n useDateValidation(args)\n\n const validateStartDate: UseStartDateValidationValue[\"validateDate\"] = ({\n date,\n inputValue,\n }) => {\n const { validationResponse, newDate } = validateDate({ date, inputValue })\n updateValidation(validationResponse)\n return newDate\n }\n\n return {\n validationMessage,\n validateDate: validateStartDate,\n }\n}\n","import React, { useEffect, HTMLAttributes, useReducer } from \"react\"\nimport { useIntl } from \"@cultureamp/i18n-react-intl\"\nimport classnames from \"classnames\"\nimport {\n CalendarRange,\n CalendarRangeProps,\n} from \"@kaizen/date-picker/src/_subcomponents/Calendar\"\nimport { formatDateAsText } from \"@kaizen/date-picker/src/utils/formatDateAsText\"\nimport { getLocale } from \"@kaizen/date-picker/src/utils/getLocale\"\nimport { isInvalidDate } from \"@kaizen/date-picker/src/utils/isInvalidDate\"\nimport { parseDateFromTextFormatValue } from \"@kaizen/date-picker/src/utils/parseDateFromTextFormatValue\"\nimport { DateValidationResponse } from \"~components/FilterDatePicker\"\nimport { useDateInputHandlers } from \"~components/FilterDatePicker/hooks/useDateInputHandlers\"\nimport { DataAttributes } from \"~types/DataAttributes\"\nimport {\n DateRange,\n DisabledDays,\n FilterDateSupportedLocales,\n} from \"~types/DatePicker\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n DateRangeInputField,\n DateRangeInputFieldProps,\n} from \"../DateRangeInputField\"\nimport { filterDatePickerFieldReducer } from \"./filterDateRangePickerFieldReducer\"\nimport { useEndDateValidation } from \"./hooks/useEndDateValidation\"\nimport { useStartDateValidation } from \"./hooks/useStartDateValidation\"\nimport { DateRangeFieldValidationMessage } from \"./types\"\nimport { isValidRange } from \"./utils/isValidRange\"\nimport styles from \"./FilterDateRangePickerField.module.scss\"\n\ntype InputStartDateProps = DateRangeInputFieldProps[\"inputStartDateProps\"]\ntype InputEndDateProps = DateRangeInputFieldProps[\"inputEndDateProps\"]\n\ntype FilterInputProps<InputProps> = Omit<Partial<InputProps>, \"value\"> &\n DataAttributes\n\nexport interface FilterDateRangePickerFieldProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n id: string\n label: string\n locale: FilterDateSupportedLocales\n /**\n * Sets first displayed month to month of provided date if there isn't a date set.\n */\n defaultMonth?: CalendarRangeProps[\"defaultMonth\"]\n /**\n * The date range passed in from the consumer that renders in the inputs and calendar.\n */\n selectedRange: DateRange | undefined\n /**\n * Callback when date is updated either by the calendar picker or by typing and blurring.\n * Date will return as `undefined` if empty, invalid or disabled.\n */\n onRangeChange: (range: DateRange | undefined) => void\n /**\n * See https://react-day-picker.js.org/api/types/Matcher\n */\n disabledDays?: DisabledDays\n inputStartDateProps?: FilterInputProps<InputStartDateProps>\n inputEndDateProps?: FilterInputProps<InputEndDateProps>\n /**\n * Custom description to provide extra context (input format help text remains).\n */\n description?: DateRangeInputFieldProps[\"description\"]\n validationMessage?: DateRangeFieldValidationMessage\n /**\n * Callback when a date is selected. Utilises internal validation if not set.\n */\n onValidate?: {\n dateStart?: (validationResponse: DateValidationResponse) => void\n dateEnd?: (validationResponse: DateValidationResponse) => void\n }\n}\n\nexport const FilterDateRangePickerField = ({\n id,\n label,\n locale: propsLocale,\n defaultMonth,\n selectedRange,\n onRangeChange,\n disabledDays,\n inputStartDateProps,\n inputEndDateProps,\n description,\n validationMessage,\n onValidate,\n classNameOverride,\n ...restProps\n}: FilterDateRangePickerFieldProps): JSX.Element => {\n const { formatMessage } = useIntl()\n const locale = getLocale(propsLocale)\n\n const translatedDateFrom = formatMessage({\n id: \"filterDateRangePicker.dateFrom\",\n defaultMessage: \"Date from\",\n description: \"Label for the 'Date from' field\",\n })\n const translatedDateTo = formatMessage({\n id: \"filterDateRangePicker.dateTo\",\n defaultMessage: \"Date to\",\n description: \"Label for the 'date to' field\",\n })\n const inputStartDateLabel =\n inputStartDateProps?.labelText || translatedDateFrom\n const inputEndDateLabel = inputEndDateProps?.labelText || translatedDateTo\n\n const transformDateToInputValue = (date: Date | undefined): string =>\n date ? formatDateAsText(date, disabledDays, locale) : \"\"\n\n const handleDateRangeChange = (dateRange: DateRange | undefined): void => {\n onRangeChange(dateRange)\n }\n\n const dateStartValidation = useStartDateValidation({\n inputLabel: inputStartDateLabel,\n disabledDays,\n validationMessage: validationMessage?.dateStart,\n onValidate: onValidate?.dateStart,\n })\n\n const dateEndValidation = useEndDateValidation({\n inputLabel: inputEndDateLabel,\n disabledDays,\n validationMessage: validationMessage?.dateEnd,\n onValidate: onValidate?.dateEnd,\n })\n\n const validateStartDate = (\n date: Date | undefined,\n inputValue: string\n ): Date | undefined =>\n dateStartValidation.validateDate({\n date,\n inputValue,\n })\n\n const validateEndDate = (\n date: Date | undefined,\n inputValue: string\n ): Date | undefined =>\n dateEndValidation.validateDate({\n endDate: date,\n endDateInputValue: inputValue,\n startDate: selectedRange?.from,\n startDateFieldLabel: inputStartDateLabel,\n })\n\n const [state, dispatch] = useReducer(filterDatePickerFieldReducer, {\n selectedStartDate: selectedRange?.from,\n selectedEndDate: selectedRange?.to,\n inputStartValue: transformDateToInputValue(selectedRange?.from),\n inputEndValue: transformDateToInputValue(selectedRange?.to),\n startMonth:\n selectedRange?.from && !isInvalidDate(selectedRange.from)\n ? selectedRange.from\n : defaultMonth || new Date(),\n })\n\n const inputStartDateHandlers = useDateInputHandlers({\n locale,\n disabledDays,\n setInputValue: value => {\n dispatch({\n type: \"update_input_start_field\",\n inputValue: value,\n })\n },\n onDateChange: date => {\n const newDate = validateStartDate(date, state.inputStartValue)\n\n // We need to parse the date from the input field due to the\n // state.selectedEndDate being set to undefined whenever range is invalid\n const endDate = parseDateFromTextFormatValue(state.inputEndValue, locale)\n const isRangeValid = isValidRange(newDate, endDate)\n\n dispatch({\n type: \"update_selected_start_date\",\n date: newDate,\n })\n\n // If the range ends up being invalid due to the change in start date\n // we need to remove the end date as its now deemed invalid.\n dispatch({\n type: \"update_selected_end_date\",\n date: isRangeValid ? endDate : undefined,\n })\n\n handleDateRangeChange({\n from: newDate,\n to: isRangeValid ? endDate : undefined,\n })\n\n if (newDate && endDate && !isInvalidDate(endDate)) {\n // Update validation messages\n dateEndValidation.validateEndDateBeforeStartDate({\n startDate: newDate,\n startDateFieldLabel: inputStartDateLabel,\n endDate,\n endDateInputValue: state.inputEndValue,\n })\n }\n },\n ...inputStartDateProps,\n })\n\n const inputEndDateHandlers = useDateInputHandlers({\n locale,\n disabledDays,\n setInputValue: value => {\n dispatch({\n type: \"update_input_end_field\",\n inputValue: value,\n })\n },\n onDateChange: date => {\n const startDate = state.selectedStartDate\n const newEndDate = validateEndDate(date, state.inputEndValue)\n const isRangeValid = isValidRange(startDate, newEndDate)\n\n dispatch({\n type: \"update_selected_end_date\",\n date: isRangeValid ? newEndDate : undefined,\n })\n\n handleDateRangeChange({\n from: startDate,\n to: isRangeValid ? newEndDate : undefined,\n })\n },\n ...inputEndDateProps,\n })\n\n const handleCalendarSelectRange: CalendarRangeProps[\"onSelect\"] = range => {\n const inputStartValue = transformDateToInputValue(range?.from)\n const inputEndValue = transformDateToInputValue(range?.to)\n\n const newStartDate = validateStartDate(range?.from, inputStartValue)\n const newEndDate = validateEndDate(range?.to, inputEndValue)\n\n dispatch({\n type: \"update_selected_start_date\",\n date: newStartDate,\n inputValue: inputStartValue,\n })\n\n dispatch({\n type: \"update_selected_end_date\",\n date: newEndDate,\n inputValue: inputEndValue,\n })\n\n handleDateRangeChange({ from: newStartDate, to: newEndDate })\n }\n\n useEffect(() => {\n const newStartDate = validateStartDate(\n selectedRange?.from,\n state.inputStartValue\n )\n const newEndDate = validateEndDate(selectedRange?.to, state.inputEndValue)\n\n if (newStartDate && !isValidRange(newStartDate, newEndDate)) {\n dispatch({\n type: \"update_selected_end_date\",\n date: undefined,\n })\n }\n\n handleDateRangeChange({ from: newStartDate, to: newEndDate })\n }, [])\n\n return (\n <div\n className={classnames(\n styles.filterDateRangePickerField,\n classNameOverride\n )}\n {...restProps}\n >\n <DateRangeInputField\n id={`${id}--input`}\n legend={label}\n inputStartDateProps={{\n labelText: inputStartDateLabel,\n value: state.inputStartValue,\n ...inputStartDateProps,\n // The below props extend the values from inputStartDateProps, therefore must be below the spread\n ...inputStartDateHandlers,\n }}\n inputEndDateProps={{\n labelText: inputEndDateLabel,\n value: state.inputEndValue,\n ...inputEndDateProps,\n // The below props extend the values from inputEndDateProps, therefore must be below the spread\n ...inputEndDateHandlers,\n }}\n locale={locale}\n description={description}\n validationMessage={{\n dateStart: dateStartValidation.validationMessage,\n dateEnd: dateEndValidation.validationMessage,\n }}\n classNameOverride={styles.dateRangeInputField}\n />\n <CalendarRange\n disabled={disabledDays}\n locale={locale}\n selected={{\n from: state.selectedStartDate,\n to: state.selectedEndDate,\n }}\n onSelect={handleCalendarSelectRange}\n month={state.startMonth}\n onMonthChange={(value: Date) =>\n dispatch({ type: \"navigate_months\", date: value })\n }\n />\n </div>\n )\n}\n\nFilterDateRangePickerField.displayName = \"FilterDateRangePickerField\"\n","import { DateRange } from \"~types/DatePicker\"\n\nexport const isCompleteDateRange = (\n dateRange: DateRange | undefined\n): dateRange is { from: Date; to: Date } =>\n dateRange?.from !== undefined && dateRange?.to !== undefined\n","import React, { useState } from \"react\"\nimport { v4 } from \"uuid\"\nimport { getLocale } from \"@kaizen/date-picker/src/utils/getLocale\"\nimport { Filter, FilterContents, FilterProps } from \"../Filter\"\nimport { FilterButtonProps } from \"../FilterButton\"\nimport { DateRangeDisplayLabel } from \"./subcomponents/DateRangeDisplayLabel\"\nimport {\n FilterDateRangePickerField,\n FilterDateRangePickerFieldProps,\n} from \"./subcomponents/FilterDateRangePickerField\"\nimport { isValidRange } from \"./subcomponents/FilterDateRangePickerField/utils/isValidRange\"\nimport { isCompleteDateRange } from \"./utils/isCompleteDateRange\"\n\nexport interface FilterDateRangePickerProps\n extends Omit<FilterDateRangePickerFieldProps, \"id\"> {\n id?: string\n isOpen: FilterProps[\"isOpen\"]\n setIsOpen: FilterProps[\"setIsOpen\"]\n renderTrigger: (triggerProps: FilterButtonProps) => JSX.Element\n}\n\nexport const FilterDateRangePicker = ({\n id: propsId,\n isOpen,\n setIsOpen,\n renderTrigger,\n selectedRange,\n label,\n locale,\n ...restProps\n}: FilterDateRangePickerProps): JSX.Element => {\n const [id] = useState<string>(propsId || v4())\n return (\n <Filter\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n renderTrigger={(triggerProps): JSX.Element =>\n renderTrigger({\n selectedValue:\n isCompleteDateRange(selectedRange) &&\n isValidRange(selectedRange.from, selectedRange.to) ? (\n <DateRangeDisplayLabel\n dateRange={selectedRange}\n locale={getLocale(locale)}\n />\n ) : undefined,\n label,\n ...triggerProps,\n })\n }\n >\n <FilterContents>\n <FilterDateRangePickerField\n id={`${id}--input`}\n label={label}\n locale={locale}\n selectedRange={selectedRange}\n {...restProps}\n />\n </FilterContents>\n </Filter>\n )\n}\n\nFilterDateRangePicker.displayName = \"FilterDateRangePicker\"\n","import React from \"react\"\nimport {\n FilterDateRangePicker,\n FilterDateRangePickerProps,\n} from \"~components/FilterDateRangePicker\"\nimport { DateRange } from \"~types/DatePicker\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { FilterBarButton } from \"../FilterBarButton\"\n\nexport type FilterBarDateRangePickerProps = Omit<\n FilterDateRangePickerProps,\n | \"id\"\n | \"label\"\n | \"renderTrigger\"\n | \"isOpen\"\n | \"setIsOpen\"\n | \"selectedRange\"\n | \"onRangeChange\"\n | \"locale\"\n> & {\n id?: string\n onRangeChange?: FilterDateRangePickerProps[\"onRangeChange\"]\n locale?: FilterDateRangePickerProps[\"locale\"]\n}\n\nexport const FilterBarDateRangePicker = ({\n id,\n onRangeChange,\n locale = \"en-AU\",\n ...props\n}: FilterBarDateRangePickerProps): JSX.Element => {\n const { getFilterState, setFilterOpenState, updateValue } =\n useFilterBarContext<DateRange | undefined>()\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarDateRangePicker\")\n\n const filterState = getFilterState(id)\n\n return (\n <FilterDateRangePicker\n {...props}\n id={id}\n label={filterState.name}\n renderTrigger={(triggerProps): JSX.Element => (\n <FilterBarButton\n {...triggerProps}\n id={id}\n isRemovable={filterState.isRemovable}\n />\n )}\n isOpen={filterState.isOpen}\n setIsOpen={(open): void => setFilterOpenState(id, open)}\n selectedRange={filterState.value}\n onRangeChange={(range): void => {\n updateValue(id, range)\n onRangeChange?.(range)\n }}\n locale={locale}\n />\n )\n}\n\nFilterBarDateRangePicker.displayName = \"FilterBar.DateRangePicker\"\n","import React, { ButtonHTMLAttributes, HTMLAttributes, useContext } from \"react\"\nimport { useButton } from \"@react-aria/button\"\nimport { AriaMenuOptions, useMenuTrigger } from \"@react-aria/menu\"\nimport { MenuTriggerState, useMenuTriggerState } from \"@react-stately/menu\"\nimport { ItemType } from \"../../types\"\n\nexport interface MenuTriggerProviderProps {\n isOpen?: boolean\n defaultOpen?: boolean\n onOpenChange?: (isOpen: boolean) => void\n children: React.ReactNode\n}\n\nexport interface MenuTriggerProviderContextType {\n menuTriggerProps: HTMLAttributes<HTMLElement>\n buttonProps: ButtonHTMLAttributes<HTMLButtonElement>\n menuProps: AriaMenuOptions<ItemType>\n menuTriggerState: MenuTriggerState\n\n buttonRef: React.RefObject<HTMLButtonElement>\n}\n\nconst MenuTriggerContext = React.createContext<MenuTriggerProviderContextType>(\n {} as MenuTriggerProviderContextType\n)\nexport function MenuTriggerProvider({\n isOpen,\n defaultOpen,\n onOpenChange,\n children,\n}: MenuTriggerProviderProps): JSX.Element {\n // Create state based on the incoming props to manage the open/close\n const state = useMenuTriggerState({ isOpen, defaultOpen, onOpenChange })\n\n // Get A11y attributes and events for the menu trigger and menu elements\n const ref = React.createRef<HTMLButtonElement>()\n const { menuTriggerProps, menuProps } = useMenuTrigger<ItemType>(\n {},\n state,\n ref\n )\n\n // Get A11y attributes and events for the button based on the trigger props from useMenuTrigger\n const { buttonProps } = useButton(menuTriggerProps, ref)\n\n return (\n <MenuTriggerContext.Provider\n value={{\n menuTriggerProps,\n buttonProps,\n menuProps,\n menuTriggerState: state,\n buttonRef: ref,\n }}\n >\n {children}\n </MenuTriggerContext.Provider>\n )\n}\n\nexport const useMenuTriggerContext = (): MenuTriggerProviderContextType =>\n useContext(MenuTriggerContext)\n\nexport const MenuTriggerConsumer = MenuTriggerContext.Consumer\n\nMenuTriggerContext.displayName = \"MenuTriggerContext\"\n","import React, { HTMLAttributes, useCallback, useContext, useState } from \"react\"\nimport { useListBox } from \"@react-aria/listbox\"\nimport { Item } from \"@react-stately/collections\"\nimport { ListState, useListState } from \"@react-stately/list\"\nimport { SelectionMode, Selection } from \"@react-types/shared\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { ItemType, MultiSelectItem } from \"../../types\"\nimport { useMenuTriggerContext } from \"../MenuTriggerProvider\"\n\nexport interface SelectionProviderProps {\n selectionMode: SelectionMode\n children: React.ReactNode // control how menu should look like\n items?: ItemType[]\n onSelectionChange?: (keys: Selection) => void\n /** The currently selected keys in the collection (controlled). */\n selectedKeys?: Selection\n /** The initial selected keys in the collection (uncontrolled). */\n defaultSelectedKeys?: Selection\n label: string\n disabledKeys?: Selection\n onSearchInputChange?: (searchInput: string) => void\n}\n\nexport interface SelectionProviderContextType {\n listBoxProps: HTMLAttributes<HTMLElement>\n labelProps: HTMLAttributes<HTMLElement>\n selectionState: ListState<ItemType>\n listRef: React.RefObject<HTMLUListElement>\n searchQuery?: string\n setSearchQuery: React.Dispatch<React.SetStateAction<string>>\n}\n\nconst SelectionContext = React.createContext<SelectionProviderContextType>(\n {} as SelectionProviderContextType\n)\n\nexport const SelectionProvider = (\n props: SelectionProviderProps\n): JSX.Element => {\n const { onSearchInputChange, ...otherProps } = props\n const [searchQuery, setSearchQuery] = useState<string>(\"\")\n const { menuProps } = useMenuTriggerContext()\n /**\n * While the onSearchInputChange is a side-effect, this useEffect should be fine.\n * If the search input state becomes controlled, this useEffect could cause synchronisation\n * issues and should be replaced.\n */\n\n React.useEffect(() => {\n if (onSearchInputChange) {\n onSearchInputChange(searchQuery)\n }\n }, [searchQuery, onSearchInputChange])\n\n const searchFilter = useCallback(\n (nodes: Iterable<MultiSelectItem>): Iterable<MultiSelectItem> =>\n searchQuery\n ? Array.from(nodes).filter(f =>\n f.textValue.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : nodes,\n [searchQuery]\n )\n\n // Create state based on the incoming props to manage the selection\n const state = useListState({\n ...otherProps,\n children: item => <Item key={item.value}>{item.label}</Item>, // For initialising selection and determined item.renderer, can be only Item or Section\n filter: onSearchInputChange ? undefined : searchFilter, // If the user has passed an `onSearchInputChange` we opt them out of the default filtering\n })\n\n // Get A11y attributes and events for the listbox\n const ref = React.createRef<HTMLUListElement>()\n const { listBoxProps, labelProps } = useListBox(\n {\n ...menuProps,\n ...otherProps,\n disallowEmptySelection: true, // stop escape key from clearing selection\n },\n state,\n ref\n )\n\n return (\n <SelectionContext.Provider\n value={{\n listBoxProps,\n labelProps,\n selectionState: state,\n listRef: ref,\n setSearchQuery,\n searchQuery,\n }}\n >\n <VisuallyHidden {...labelProps}>{otherProps.label}</VisuallyHidden>\n {otherProps.children}\n </SelectionContext.Provider>\n )\n}\n\nexport const useSelectionContext = (): SelectionProviderContextType =>\n useContext(SelectionContext)\n\nexport const SelectionConsumer = SelectionContext.Consumer\n\nSelectionProvider.displayName = \"SelectionProvider\"\n","import React, { useState, useEffect } from \"react\"\nimport { Collection } from \"@react-types/shared\"\nimport classnames from \"classnames\"\nimport { useSelectionContext } from \"../../provider/SelectionProvider\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./ListBox.module.scss\"\n\nexport type ListBoxItems = {\n selectedItems: MultiSelectItem[]\n unselectedItems: MultiSelectItem[]\n disabledItems: MultiSelectItem[]\n allItems: MultiSelectItem[]\n hasNoItems: boolean\n}\n\nexport interface ListBoxProps {\n children: (items: ListBoxItems) => React.ReactNode\n}\n\nconst getItemsFromKeys = (\n items: Collection<MultiSelectItem>,\n keys: Set<React.Key>\n): MultiSelectItem[] => {\n const itemKeys = Array.from(keys)\n return itemKeys.reduce<MultiSelectItem[]>((acc, itemKey) => {\n const item = items.getItem(itemKey)\n return item ? [...acc, item] : acc\n }, [])\n}\n\nexport const ListBox = ({ children }: ListBoxProps): JSX.Element => {\n const { listBoxProps, listRef, selectionState } = useSelectionContext()\n const [isOverflown, setIsOverflown] = useState(false)\n useEffect(() => {\n const listElement = listRef.current\n if (!listElement) {\n return\n }\n setIsOverflown(listElement.scrollHeight > listElement.clientHeight)\n }, [listRef])\n const {\n collection: items,\n disabledKeys,\n selectionManager: { selectedKeys },\n } = selectionState\n\n const disabledItems = getItemsFromKeys(items, disabledKeys)\n const selectedItems = getItemsFromKeys(items, selectedKeys)\n\n const unselectedItems = Array.from(items).filter(\n item => !disabledKeys.has(item.key) && !selectedKeys.has(item.key)\n )\n const allItems = Array.from(items)\n const hasNoItems = allItems.length === 0\n\n const [itemsState, setItemsState] = useState<ListBoxItems>({\n selectedItems,\n unselectedItems,\n disabledItems,\n allItems,\n hasNoItems,\n })\n\n // Only update rendering of items when filtering.\n // Avoids re-ordering of items when making a selection\n useEffect(() => {\n setItemsState({\n selectedItems,\n disabledItems,\n unselectedItems,\n allItems,\n hasNoItems,\n })\n }, [selectionState.collection.size])\n\n if (hasNoItems) {\n return (\n <>\n <div className={styles.noResultsWrapper}>{children(itemsState)}</div>\n {/* This ul with the ref needs to exist otherwise it fatals */}\n <ul ref={listRef} className={styles.hidden} />\n </>\n )\n }\n\n return (\n <ul\n {...listBoxProps}\n ref={listRef}\n className={classnames(styles.listBox, isOverflown && styles.overflown)}\n >\n {children(itemsState)}\n </ul>\n )\n}\n\nListBox.displayName = \"FilterMultiSelect.ListBox\"\n","import React, { ReactNode, useState } from \"react\"\nimport { v4 } from \"uuid\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./ListBoxSection.module.scss\"\n\ntype SectionNameProps = {\n /**\n * Becomes an aria-label on the section, informing\n * unsighted users\n */\n sectionName: string\n}\n\ntype SectionHeaderProps = {\n /**\n * Becomes an aria-label on the section, informing\n * unsighted users\n */\n sectionName?: string\n /**\n * Can be used for a visual title of the ListBoxSection or to provide addition information in a React node.\n * If this is the same title as sectionName, you should only pass in a sectionHeader to avoid duplicate descriptions.\n */\n sectionHeader: ReactNode\n}\n\nexport type ListBoxSectionProps = {\n items: MultiSelectItem[]\n children: (item: MultiSelectItem) => React.ReactNode\n} & (SectionHeaderProps | SectionNameProps)\n\nexport const ListBoxSection = ({\n items,\n children,\n sectionName,\n ...restProps\n}: ListBoxSectionProps): JSX.Element => {\n const [listSectionId] = useState<string>(v4())\n const hasSectionHeader = \"sectionHeader\" in restProps\n return (\n <li role=\"presentation\">\n <ul\n className={styles.listBoxSection}\n aria-label={!hasSectionHeader ? sectionName : undefined}\n aria-labelledby={hasSectionHeader ? listSectionId : undefined}\n role=\"group\"\n >\n {hasSectionHeader && (\n <li\n className={styles.listBoxSectionHeader}\n id={listSectionId}\n role=\"presentation\"\n >\n {sectionName && <VisuallyHidden>{sectionName}. </VisuallyHidden>}\n {restProps.sectionHeader}\n </li>\n )}\n {/*\n * This seems semantically strange but most closely aligns to WCAGs suggested pattern:\n https://www.w3.org/WAI/ARIA/apg/patterns/listbox/examples/listbox-grouped/\n * the role=\"presentation\" will throw an error a11y warning \"Element has children which are not allowed\".\n This is expected and is an accepted issue / potential limitation with axe\n */}\n {Array.from(items).map(node => node != undefined && children(node))}\n </ul>\n </li>\n )\n}\nListBoxSection.displayName = \"ListBoxSection\"\n","import React from \"react\"\nimport { Button, ButtonProps } from \"~components/Button\"\nimport styles from \"./LoadMoreButton.module.scss\"\n\nexport type LoadMoreButtonProps = ButtonProps\n\nexport const LoadMoreButton = (props: LoadMoreButtonProps): JSX.Element => (\n <div className={styles.container}>\n <Button {...props} fullWidth />\n </div>\n)\n\nLoadMoreButton.displayName = \"FilterMultiSelect.LoadMoreButton\"\n","import React from \"react\"\nimport styles from \"./MenuFooter.module.scss\"\n\nexport interface MenuFooterProps {\n children: React.ReactNode\n}\n\nexport const MenuFooter = ({ children }: MenuFooterProps): JSX.Element => (\n <div className={styles.footer}>{children}</div>\n)\n\nMenuFooter.displayName = \"FilterMultiSelect.MenuFooter\"\n","import React from \"react\"\nimport { LoadingInput, LoadingParagraph } from \"@kaizen/loading-skeleton\"\nimport { MenuFooter } from \"../MenuFooter\"\nimport styles from \"./MenuLoadingSkeleton.module.scss\"\n\nexport interface MenuLoadingSkeletonProps {\n isAnimated?: boolean\n}\n\nexport const MenuLoadingSkeleton = ({\n isAnimated = false,\n}: MenuLoadingSkeletonProps): JSX.Element => (\n <>\n <div className={styles.loadingContainer}>\n <LoadingInput\n classNameOverride={styles.loadingInput}\n isAnimated={isAnimated}\n />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n </div>\n <MenuFooter>\n <LoadingInput width={40} height={36} isAnimated={isAnimated} />\n <LoadingInput width={30} height={36} isAnimated={isAnimated} />\n </MenuFooter>\n </>\n)\n\nMenuLoadingSkeleton.displayName = \"FilterMultiSelect.MenuLoadingSkeleton\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const CheckIcon = (props: Omit<SVGProps, \"children\">): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"m8.333 14.342-4.166-4.167L5.342 9l2.991 2.983 6.325-6.325 1.175 1.184z\"\n />\n </SVG>\n)\n\nCheckIcon.displayName = \"CheckIcon\"\n","import React, { useMemo } from \"react\"\nimport { useFocusRing } from \"@react-aria/focus\"\nimport { useOption } from \"@react-aria/listbox\"\nimport { mergeProps } from \"@react-aria/utils\"\nimport classnames from \"classnames\"\nimport { v4 } from \"uuid\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { Badge } from \"@kaizen/draft-badge\"\nimport { CheckIcon } from \"~components/SVG/icons/CheckIcon\"\nimport { useSelectionContext } from \"../../provider\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./MultiSelectOption.module.scss\"\n\nexport interface MultiSelectOptionProps {\n item: MultiSelectItem\n}\n\nexport const MultiSelectOption = ({\n item,\n}: MultiSelectOptionProps): JSX.Element => {\n const { selectionState: state } = useSelectionContext()\n // Get props for the option element\n const ref = React.createRef<HTMLLIElement>()\n const { optionProps, isSelected, isDisabled } = useOption(\n { key: item.key },\n state,\n ref\n )\n\n // Determine whether we should show a keyboard\n // focus ring for accessibility\n const { isFocusVisible, focusProps } = useFocusRing()\n const countElementId = useMemo(() => v4(), [])\n\n return (\n <li\n {...mergeProps(optionProps, focusProps)}\n ref={ref}\n className={classnames(\n styles.option,\n isSelected && styles.isSelected,\n isFocusVisible && styles.isFocusVisible,\n isDisabled && styles.isDisabled\n )}\n aria-label={item.value?.label}\n aria-describedby={item.value?.count ? countElementId : undefined}\n >\n <span\n className={classnames(styles.icon, isSelected && styles.isSelected)}\n >\n {isSelected && <CheckIcon role=\"presentation\" />}\n </span>\n {/* can also be item.value since 'rendered' is defined as item.value in SelectionProvider*/}\n {item.rendered}\n {item.value?.count && (\n <span id={countElementId} className={styles.badgeContainer}>\n <Badge classNameOverride={styles.badge}>{item.value.count}</Badge>\n <VisuallyHidden> available</VisuallyHidden>\n </span>\n )}\n </li>\n )\n}\n\nMultiSelectOption.displayName = \"FilterMultiSelect.Option\"\n","import React, { HTMLAttributes } from \"react\"\nimport { Paragraph } from \"@kaizen/typography\"\nimport styles from \"./NoResults.module.scss\"\n\nexport interface NoResultsProps extends HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n}\n\nexport const NoResults = ({\n children,\n ...restProps\n}: NoResultsProps): JSX.Element => (\n <div className={styles.container} {...restProps}>\n <Paragraph variant=\"extra-small\" color=\"dark-reduced-opacity\">\n {children}\n </Paragraph>\n </div>\n)\n\nNoResults.displayName = \"FilterMultiSelect.NoResults\"\n","import React from \"react\"\nimport { FocusScope } from \"@react-aria/focus\"\nimport { useOverlay, DismissButton } from \"@react-aria/overlays\"\nimport { useMenuTriggerContext } from \"../../provider\"\nimport styles from \"./MenuPopup.module.scss\"\n\nexport interface MenuPopupProps {\n isLoading?: boolean\n loadingSkeleton?: React.ReactNode\n children: React.ReactNode\n}\n\nexport const MenuPopup = ({\n isLoading,\n loadingSkeleton,\n children,\n}: MenuPopupProps): JSX.Element => {\n const { menuTriggerState } = useMenuTriggerContext()\n\n const onClose = (): void => menuTriggerState.close()\n\n // Handle events that should cause the menu to close,\n // e.g. blur, clicking outside, or pressing the escape key.\n const overlayRef = React.createRef<HTMLDivElement>()\n const { overlayProps } = useOverlay(\n {\n onClose,\n isOpen: menuTriggerState.isOpen,\n isDismissable: true,\n },\n overlayRef\n )\n\n // Wrap in <FocusScope> so that focus is restored back to the trigger when the menu is closed\n // and auto focus on the first focusable item after loading. (disable eslint no-autofocus error for it)\n // In addition, add hidden <DismissButton> components at the start and end of the list\n // to allow screen reader users to dismiss the popup easily.\n return menuTriggerState.isOpen ? (\n <div {...overlayProps} ref={overlayRef} className={styles.menuPopup}>\n {isLoading && loadingSkeleton ? (\n <>\n <DismissButton onDismiss={onClose} />\n {loadingSkeleton}\n <DismissButton onDismiss={onClose} />\n </>\n ) : (\n // eslint-disable-next-line jsx-a11y/no-autofocus\n <FocusScope contain autoFocus restoreFocus>\n <DismissButton onDismiss={onClose} />\n\n {children}\n <DismissButton onDismiss={onClose} />\n </FocusScope>\n )}\n </div>\n ) : (\n <></>\n )\n}\n\nMenuPopup.displayName = \"FilterMultiSelect.MenuPopup\"\n","import React from \"react\"\nimport { SelectionMode, Selection } from \"@react-types/shared\"\nimport {\n MenuTriggerConsumer,\n MenuTriggerProvider,\n MenuTriggerProviderContextType,\n MenuTriggerProviderProps,\n} from \"../../provider/MenuTriggerProvider\"\nimport {\n SelectionConsumer,\n SelectionProvider,\n SelectionProviderContextType,\n} from \"../../provider/SelectionProvider\"\nimport { ItemType } from \"../../types\"\nimport { MenuPopup, MenuPopupProps } from \"../MenuPopup\"\n\ninterface SelectionProps {\n label: string // provide A11y context for listbox\n items: ItemType[]\n selectedKeys?: Selection\n defaultSelectedKeys?: Selection\n onSelectionChange?: (keys: Selection) => void\n selectionMode?: SelectionMode\n onSearchInputChange?: (searchInput: string) => void\n}\n\nexport interface RootProps\n extends Omit<MenuPopupProps, \"children\">,\n Omit<MenuTriggerProviderProps, \"children\">,\n SelectionProps {\n trigger: (value?: MenuTriggerProviderContextType) => React.ReactNode\n children: (value?: SelectionProviderContextType) => React.ReactNode // the content of the menu\n}\n\nexport const Root = ({\n trigger,\n children,\n isOpen,\n defaultOpen,\n onOpenChange,\n isLoading,\n loadingSkeleton,\n label,\n items,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectionMode = \"multiple\",\n onSearchInputChange,\n}: RootProps): JSX.Element => {\n const menuTriggerProps = { isOpen, defaultOpen, onOpenChange }\n const menuPopupProps = { isLoading, loadingSkeleton }\n const disabledKeys: Selection = new Set(\n items\n ?.filter(item => item.isDisabled === true)\n .map(disabledItem => disabledItem.value)\n )\n const selectionProps = {\n label,\n items,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectionMode,\n disabledKeys,\n onSearchInputChange,\n }\n\n return (\n <MenuTriggerProvider {...menuTriggerProps}>\n <div>\n <MenuTriggerConsumer>{trigger}</MenuTriggerConsumer>\n <MenuPopup {...menuPopupProps}>\n <SelectionProvider {...selectionProps}>\n <SelectionConsumer>{children}</SelectionConsumer>\n </SelectionProvider>\n </MenuPopup>\n </div>\n </MenuTriggerProvider>\n )\n}\n\nRoot.displayName = \"FilterMultiSelect\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const SearchIcon = (props: Omit<SVGProps, \"children\">): JSX.Element => (\n <SVG {...props}>\n <path\n id=\"a\"\n d=\"M13.435 12.063h-.723l-.256-.247a5.92 5.92 0 0 0 1.437-3.87 5.946 5.946 0 1 0-5.947 5.947 5.92 5.92 0 0 0 3.87-1.437l.247.256v.723L16.637 18 18 16.637l-4.565-4.574Zm-5.489 0A4.111 4.111 0 0 1 3.83 7.946 4.111 4.111 0 0 1 7.946 3.83a4.111 4.111 0 0 1 4.117 4.116 4.111 4.111 0 0 1-4.117 4.117Z\"\n />\n </SVG>\n)\n\nSearchIcon.displayName = \"SearchIcon\"\n","import React, { InputHTMLAttributes, useRef } from \"react\"\nimport classnames from \"classnames\"\n\nimport { LoadingSpinner } from \"@kaizen/loading-spinner\"\nimport { SearchIcon } from \"~components/SVG/icons/SearchIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ClearButton } from \"../ClearButton\"\nimport styles from \"./InputSearch.module.scss\"\n\nexport interface InputSearchProps\n extends OverrideClassName<\n Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\">\n > {\n id: string\n reversed?: boolean\n loading?: boolean\n secondary?: boolean\n onClear?: () => void\n}\n\nexport const InputSearch = (props: InputSearchProps): JSX.Element => {\n const {\n value,\n onChange,\n onClear,\n classNameOverride,\n disabled,\n reversed = false,\n loading = false,\n secondary = false,\n ...restProps\n } = props\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleOnClear = (): void => {\n inputRef.current?.focus()\n onClear && onClear()\n }\n return (\n <div\n className={classnames(\n styles.wrapper,\n secondary ? styles.secondary : styles.default,\n reversed && styles.reversed,\n disabled && styles.disabled,\n value && styles.hasEndIconAdornment,\n classNameOverride\n )}\n >\n <div className={styles.startIconAdornment}>\n {loading ? (\n <LoadingSpinner\n accessibilityLabel=\"\"\n size=\"sm\"\n classNameOverride={styles.loadingSpinner}\n />\n ) : (\n <SearchIcon role=\"presentation\" />\n )}\n </div>\n\n <input\n ref={inputRef}\n type=\"search\"\n className={styles.input}\n disabled={disabled}\n value={value}\n onChange={onChange}\n readOnly={onChange === undefined}\n {...restProps}\n />\n {/* Inputs aren't able to have pseudo elements like ::after on them,\n so we have to create an element ourselves for the focus ring */}\n <div className={styles.focusRing} />\n\n {value && (\n <ClearButton\n isReversed={reversed}\n onClick={handleOnClear}\n disabled={disabled}\n classNameOverride={styles.endIconAdornment}\n aria-label=\"clear search\"\n />\n )}\n </div>\n )\n}\n\nInputSearch.displayName = \"InputSearch\"\n","import React, { useMemo } from \"react\"\nimport { v4 } from \"uuid\"\nimport { InputSearch } from \"~components/InputSearch\"\nimport { useSelectionContext } from \"../../provider\"\nimport styles from \"./SearchInput.module.scss\"\n\nexport interface SearchInputProps {\n label?: string\n id?: string\n isLoading?: boolean\n}\n\nexport const SearchInput = ({\n label,\n id,\n isLoading,\n}: SearchInputProps): JSX.Element => {\n const { setSearchQuery, searchQuery } = useSelectionContext()\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setSearchQuery(e.target.value)\n }\n\n const handleClear = (): void => setSearchQuery(\"\")\n\n const inputId = useMemo(() => id ?? v4(), [id])\n\n return (\n <div className={styles.inputSearchContainer}>\n <InputSearch\n id={inputId}\n aria-label={label ?? \"Filter options by search query\"}\n secondary\n placeholder=\"Search…\"\n value={searchQuery}\n onChange={handleChange}\n onClear={handleClear}\n loading={isLoading}\n />\n </div>\n )\n}\n\nSearchInput.displayName = \"FilterMultiSelect.SearchInput\"\n","import React from \"react\"\nimport { Divider } from \"@kaizen/draft-divider\"\nimport styles from \"./SectionDivider.module.scss\"\n\nexport const SectionDivider = (): JSX.Element => (\n <li className={styles.divider} aria-hidden=\"true\">\n <Divider variant=\"canvas\" />\n </li>\n)\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { useSelectionContext } from \"../../../provider\"\nimport styles from \"../SelectionControlButton.module.scss\"\n\nexport const ClearButton = (): JSX.Element => {\n const { selectionState } = useSelectionContext()\n const filteredOptions = Array.from(selectionState.collection.getKeys())\n const selectedOptions = Array.from(\n selectionState.selectionManager.selectedKeys\n )\n const isDisabled =\n filteredOptions.length === 0 ||\n !Boolean(\n filteredOptions.find(key =>\n selectionState.selectionManager.isSelected(key)\n )\n )\n\n return (\n <button\n type=\"button\"\n className={classnames(styles.button, isDisabled && styles.isDisabled)}\n aria-disabled={isDisabled}\n onClick={\n (): void => {\n !isDisabled &&\n selectionState.selectionManager.setSelectedKeys(\n selectedOptions.filter(\n option => !filteredOptions.includes(option)\n )\n )\n }\n // TODO: add announcement here to inform selection cleared\n }\n >\n Clear<VisuallyHidden> selections</VisuallyHidden>\n </button>\n )\n}\n\nClearButton.displayName = \"FilterMultiSelect.ClearButton\"\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { useSelectionContext } from \"../../../provider\"\nimport styles from \"../SelectionControlButton.module.scss\"\n\nexport const SelectAllButton = (): JSX.Element => {\n const { selectionState } = useSelectionContext()\n const selectedOptions = Array.from(\n selectionState.selectionManager.selectedKeys\n )\n const disabledOptions = selectionState.disabledKeys\n ? Array.from(selectionState.disabledKeys)\n : []\n const filteredOptions = Array.from(\n selectionState.collection.getKeys()\n ).filter(key => !disabledOptions.includes(key))\n\n return (\n <button\n type=\"button\"\n className={classnames(\n styles.button,\n selectionState.selectionManager.isSelectAll && styles.isDisabled\n )}\n aria-disabled={selectionState.selectionManager.isSelectAll}\n onClick={\n (): false | void =>\n !selectionState.selectionManager.isSelectAll &&\n selectionState.selectionManager.setSelectedKeys([\n ...selectedOptions,\n ...filteredOptions,\n ])\n // TODO: add announcement here to inform all selected\n }\n >\n Select all\n </button>\n )\n}\n\nSelectAllButton.displayName = \"FilterMultiSelect.SelectAllButton\"\n","const CONNECTOR = \", \"\n\nconst truncateByCharacterLimit = (\n labels: string[],\n limit: number,\n labelsTruncatedCount = 0\n): string => {\n if (labels.length === 1 || labels.join(\"\").replace(/,/g, \"\").length < limit) {\n const moreIndicator =\n labelsTruncatedCount > 0 ? ` + ${labelsTruncatedCount} more` : \"\"\n return `${labels.join(CONNECTOR)}${moreIndicator}`\n }\n\n const newLabels = labels.slice(0, labels.length - 1)\n return truncateByCharacterLimit(newLabels, limit, labelsTruncatedCount + 1)\n}\n\nexport const getTruncatedLabels = (labels: string[], limit: number): string =>\n truncateByCharacterLimit(labels, limit)\n","import { Selection } from \"@react-types/shared\"\nimport { ItemType } from \"../types\"\n\nexport const getSelectedOptionLabels = (\n keys?: Selection,\n items?: ItemType[]\n): string[] => {\n if (!keys || !items) {\n return []\n }\n\n if (keys === \"all\") {\n return items.map(item => item.label)\n }\n\n return Array.from(keys)\n .map(key => items.find(item => item.value === key)?.label ?? \"\")\n .filter(item => item !== \"\")\n}\n","import React from \"react\"\nimport { Selection } from \"@react-types/shared\"\nimport { ItemType } from \"../types\"\n\nexport const getSelectedOptionKeys = (\n keys?: Selection,\n items?: ItemType[]\n): React.Key[] => {\n if (!keys || !items) {\n return []\n }\n\n if (keys === \"all\") {\n return items.map(item => item.value)\n }\n\n return Array.from(keys)\n}\n","import React, { useRef } from \"react\"\nimport { FilterTriggerRef } from \"~components/Filter\"\nimport { FilterButton } from \"~components/FilterButton\"\nimport { useMenuTriggerContext } from \"../../../provider\"\nimport { getTruncatedLabels } from \"../../../utils\"\n\nexport type FilterTriggerButtonProps = {\n label: string\n selectedOptionLabels: string[]\n /**\n * Character limit of the button label.\n * It will always show the first selected label regardless if it exceeds the given character limit.\n */\n labelCharacterLimitBeforeTruncate?: number\n classNameOverride?: string // TODO: migrate it to use OverrideClassName<T> and omit the props controlled by React-Aria\n}\n\nexport const FilterTriggerButton = ({\n selectedOptionLabels,\n label,\n classNameOverride,\n labelCharacterLimitBeforeTruncate = 50,\n}: FilterTriggerButtonProps): JSX.Element => {\n const { buttonProps, buttonRef, menuTriggerState } = useMenuTriggerContext()\n const ref = useRef<FilterTriggerRef>({ triggerRef: buttonRef })\n\n return (\n <FilterButton\n ref={ref}\n {...buttonProps}\n label={label}\n selectedValue={getTruncatedLabels(\n selectedOptionLabels,\n labelCharacterLimitBeforeTruncate\n )}\n classNameOverride={classNameOverride}\n isOpen={menuTriggerState.isOpen}\n />\n )\n}\n\nFilterTriggerButton.displayName = \"FilterMultiSelect.TriggerButton\"\n","import React, { useRef } from \"react\"\nimport { FilterTriggerRef } from \"~components/Filter\"\nimport { FilterButtonRemovable } from \"~components/FilterButton\"\nimport { useMenuTriggerContext } from \"../../../provider\"\nimport { getTruncatedLabels } from \"../../../utils\"\nimport { FilterTriggerButtonProps } from \"../FilterTriggerButton\"\n\nexport type RemovableFilterTriggerProps = FilterTriggerButtonProps & {\n onRemove: () => void\n}\n\nexport const RemovableFilterTrigger = ({\n label,\n selectedOptionLabels,\n labelCharacterLimitBeforeTruncate = 50,\n classNameOverride,\n onRemove,\n}: RemovableFilterTriggerProps): JSX.Element => {\n const { buttonProps, buttonRef, menuTriggerState } = useMenuTriggerContext()\n const ref = useRef<FilterTriggerRef>({ triggerRef: buttonRef })\n\n return (\n <FilterButtonRemovable\n ref={ref}\n classNameOverride={classNameOverride}\n triggerButtonProps={{\n ...buttonProps,\n label,\n selectedValue: getTruncatedLabels(\n selectedOptionLabels,\n labelCharacterLimitBeforeTruncate\n ),\n isOpen: menuTriggerState.isOpen,\n }}\n removeButtonProps={{\n onClick: onRemove,\n }}\n />\n )\n}\n\nRemovableFilterTrigger.displayName = \"FilterMultiSelect.RemovableTrigger\"\n","import { ListBox } from \"./subcomponents/ListBox\"\nimport { ListBoxSection } from \"./subcomponents/ListBoxSection\"\nimport { LoadMoreButton } from \"./subcomponents/LoadMoreButton\"\nimport { MenuFooter, MenuLoadingSkeleton } from \"./subcomponents/MenuLayout\"\nimport { MultiSelectOption } from \"./subcomponents/MultiSelectOption\"\nimport { NoResults } from \"./subcomponents/NoResults\"\nimport { Root, RootProps } from \"./subcomponents/Root\"\nimport { SearchInput } from \"./subcomponents/SearchInput/SearchInput\"\nimport { SectionDivider } from \"./subcomponents/SectionDivider\"\nimport {\n ClearButton,\n SelectAllButton,\n} from \"./subcomponents/SelectionControlButton\"\nimport {\n FilterTriggerButton,\n RemovableFilterTrigger,\n} from \"./subcomponents/Trigger\"\n\nexport type FilterMultiSelectProps = RootProps\n\nexport const FilterMultiSelect = Object.assign(Root, {\n TriggerButton: FilterTriggerButton,\n RemovableTrigger: RemovableFilterTrigger,\n SearchInput,\n ListBox,\n ListBoxSection,\n SectionDivider,\n Option: MultiSelectOption,\n SelectAllButton,\n ClearButton,\n MenuFooter, // For layout\n MenuLoadingSkeleton, // Menu Loading Skeleton example\n LoadMoreButton,\n NoResults,\n})\n","export const checkArraysMatch = (a1: any[], a2: any[]): boolean => {\n if (a1.length !== a2.length) return false\n return a1.every((v, i) => v === a2[i])\n}\n","import React, { Key, useEffect, useState } from \"react\"\nimport { Selection } from \"@react-types/shared\"\nimport {\n FilterMultiSelect,\n FilterMultiSelectProps,\n ItemType,\n getSelectedOptionLabels,\n} from \"~components/FilterMultiSelect\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { checkArraysMatch } from \"../../utils/checkArraysMatch\"\n\nexport type FilterBarMultiSelectProps = Omit<\n FilterMultiSelectProps,\n | \"isOpen\"\n | \"setIsOpen\"\n | \"renderTrigger\"\n | \"label\"\n | \"selectedKeys\"\n | \"trigger\"\n> & {\n id?: string\n}\n\n// This should technically be handled within the FilterMultiSelect\n// so that it only returns consumable formats instead of Set.\n// Someone fix please.\nexport type ConsumableSelection = string | Key[] | undefined\n\nconst convertSelectionToAConsumableFormat = (\n value: Selection\n): ConsumableSelection => {\n if (value === \"all\") return \"all\"\n const arrayOfValues = Array.from(value)\n\n return arrayOfValues.length > 0 ? Array.from(value) : undefined\n}\n\nconst convertConsumableFormatIntoSelection = (\n value: ConsumableSelection\n): Selection => new Set(value)\n\nexport const FilterBarMultiSelect = ({\n id,\n items: propsItems,\n children,\n onSelectionChange,\n ...props\n}: FilterBarMultiSelectProps): JSX.Element | null => {\n const { getFilterState, setFilterOpenState, updateValue, hideFilter } =\n useFilterBarContext<ConsumableSelection>()\n const [items, setItems] = useState<ItemType[]>(propsItems)\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarMultiSelect\")\n\n const filterState = getFilterState(id)\n\n useEffect(() => {\n if (!checkArraysMatch(items, propsItems)) {\n setItems(propsItems)\n }\n }, [propsItems])\n\n useEffect(() => {\n if (Array.isArray(filterState.value)) {\n const itemValues = items.map(({ value }) => value)\n const filteredValues = filterState.value.filter(value =>\n itemValues.includes(value)\n )\n\n if (!checkArraysMatch(filterState.value, filteredValues)) {\n updateValue(id, filteredValues)\n }\n }\n }, [items])\n\n return (\n <FilterMultiSelect\n label={filterState.name}\n // Convert the incoming FilterBar state to a Set (internal FilterMultiSelect state)\n selectedKeys={new Set(filterState.value || null)}\n onSelectionChange={(keys): void => {\n // Convert the internal FilterMultiSelect state (Set) to an Array for FilterBar state\n updateValue(id, convertSelectionToAConsumableFormat(keys))\n onSelectionChange?.(keys)\n }}\n items={items}\n isOpen={filterState.isOpen}\n onOpenChange={(open): void => setFilterOpenState(id, open)}\n trigger={(): JSX.Element => {\n const triggerProps = {\n selectedOptionLabels: filterState.value\n ? getSelectedOptionLabels(\n convertConsumableFormatIntoSelection(filterState.value),\n items\n )\n : [],\n label: filterState.name,\n }\n\n return filterState.isRemovable ? (\n <FilterMultiSelect.RemovableTrigger\n {...triggerProps}\n onRemove={() => hideFilter(id)}\n />\n ) : (\n <FilterMultiSelect.TriggerButton {...triggerProps} />\n )\n }}\n {...props}\n >\n {children}\n </FilterMultiSelect>\n )\n}\n\nFilterBarMultiSelect.displayName = \"FilterBar.MultiSelect\"\n","import React, { useContext } from \"react\"\nimport { SelectState } from \"@react-stately/select\"\nimport { SelectItem, SelectOption } from \"../types\"\n\n// We set the generic default value to `any` as SelectContext\n// is instantiated as a constant which does not accept generics.\ntype SelectContextValue<Option extends SelectOption = any> = {\n state: SelectState<SelectItem<Option>>\n}\n\nconst SelectContext = React.createContext<SelectContextValue | null>(null)\n\nexport const useSelectContext = <\n Option extends SelectOption = SelectOption,\n>(): SelectContextValue<Option> => {\n const context = useContext(SelectContext)\n\n if (!context) {\n throw new Error(\n \"useSelectContext must be used within the SelectContext.Provider\"\n )\n }\n\n return context\n}\n\ntype SelectProviderProps<Option extends SelectOption> = {\n children: React.ReactNode\n state: SelectState<SelectItem<Option>>\n}\n\nexport const SelectProvider = <Option extends SelectOption = SelectOption>({\n children,\n state,\n}: SelectProviderProps<Option>): JSX.Element => (\n <SelectContext.Provider value={{ state }}>{children}</SelectContext.Provider>\n)\n","import React, { HTMLAttributes } from \"react\"\nimport { AriaListBoxOptions, useListBox } from \"@react-aria/listbox\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { useSelectContext } from \"../../context\"\nimport { SelectOption, SelectItem } from \"../../types\"\nimport styles from \"./ListBox.module.scss\"\n\nexport type SingleListBoxProps<Option extends SelectOption> = OverrideClassName<\n HTMLAttributes<HTMLUListElement>\n> & {\n children: React.ReactNode\n /** Props for the popup. */\n menuProps: AriaListBoxOptions<SelectItem<Option>>\n}\n\nexport const ListBox = <Option extends SelectOption>({\n children,\n menuProps,\n classNameOverride,\n ...restProps\n}: SingleListBoxProps<Option>): JSX.Element => {\n const { state } = useSelectContext<Option>()\n const ref = React.useRef<HTMLUListElement>(null)\n const { listBoxProps } = useListBox(\n { ...menuProps, disallowEmptySelection: true, autoFocus: \"first\" },\n state,\n ref\n )\n\n return (\n <ul\n ref={ref}\n className={classnames(styles.listBox, classNameOverride)}\n {...listBoxProps}\n {...restProps}\n >\n {children}\n </ul>\n )\n}\n\nListBox.displayName = \"ListBox\"\n","import React, { HTMLAttributes } from \"react\"\nimport { useFocusRing } from \"@react-aria/focus\"\nimport { useOption } from \"@react-aria/listbox\"\nimport { mergeProps } from \"@react-aria/utils\"\nimport classnames from \"classnames\"\nimport { useSelectContext } from \"~components/FilterSelect/context\"\nimport { CheckIcon } from \"~icons/CheckIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { SelectOption, SelectOptionNode } from \"../../types\"\nimport styles from \"./Option.module.scss\"\n\nexport interface OptionProps<Option extends SelectOption = SelectOption>\n extends OverrideClassName<Omit<HTMLAttributes<HTMLLIElement>, \"children\">> {\n item: SelectOptionNode<Option>\n}\n\nexport const Option = <Option extends SelectOption = SelectOption>({\n item,\n classNameOverride,\n ...props\n}: OptionProps<Option>): JSX.Element => {\n const { state } = useSelectContext<Option>()\n const ref = React.useRef<HTMLLIElement>(null)\n const { optionProps, isSelected, isDisabled } = useOption(\n { key: item.key },\n state,\n ref\n )\n\n const { isFocusVisible, focusProps } = useFocusRing()\n\n return (\n <li\n {...mergeProps(optionProps, focusProps, props)}\n ref={ref}\n className={classnames(\n styles.option,\n isSelected && styles.isSelected,\n isFocusVisible && styles.isFocusVisible,\n isDisabled && styles.disabled,\n classNameOverride\n )}\n aria-label={item.textValue}\n >\n {item.rendered}\n <span\n className={classnames(styles.icon, isSelected && styles.isSelected)}\n >\n {isSelected && <CheckIcon inheritSize role=\"presentation\" />}\n </span>\n </li>\n )\n}\n\nOption.displayName = \"Option\"\n","import React from \"react\"\nimport { useListBoxSection } from \"@react-aria/listbox\"\nimport { Heading } from \"@kaizen/typography\"\nimport { SelectOption, SelectOptionGroupNode } from \"../../types\"\nimport { Option } from \"../Option/Option\"\nimport styles from \"./ListBoxSection.module.scss\"\n\nexport interface ListBoxSectionProps<Option extends SelectOption> {\n section: SelectOptionGroupNode<Option>\n}\n\nexport const ListBoxSection = <Option extends SelectOption = SelectOption>({\n section,\n}: ListBoxSectionProps<Option>): JSX.Element => {\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading: section.rendered,\n \"aria-label\": section[\"aria-label\"],\n })\n\n return (\n <>\n <li {...itemProps} className={styles.sectionWrapper}>\n {section.rendered && (\n <Heading\n tag=\"span\"\n variant=\"heading-6\"\n {...headingProps}\n classNameOverride={styles.sectionHeading}\n >\n {section.rendered}\n </Heading>\n )}\n <ul {...groupProps} className={styles.sectionList}>\n {Array.from(section.childNodes).map(item => (\n <Option key={item.key} item={item} />\n ))}\n </ul>\n </li>\n </>\n )\n}\n\nListBoxSection.displayName = \"ListBoxSection\"\n","import React from \"react\"\nimport { SelectItemNode, SelectOption } from \"../../types\"\nimport { ListBoxSection } from \"../ListBoxSection\"\nimport { Option } from \"../Option\"\n\nexport type ListItemProps<Option extends SelectOption = SelectOption> = {\n item: SelectItemNode<Option>\n}\n\nexport const ListItem = <Option extends SelectOption = SelectOption>({\n item,\n}: ListItemProps<Option>): JSX.Element =>\n item.type === \"section\" ? (\n <ListBoxSection<Option> key={item.key} section={item} />\n ) : (\n <Option<Option> key={item.key} item={item} />\n )\n\nListItem.displayName = \"ListItem\"\n","import React from \"react\"\nimport { SelectOption } from \"../../types\"\nimport { ListItem, ListItemProps } from \"../ListItem\"\n\nexport type ListItemsProps<Option extends SelectOption> = {\n items: Array<ListItemProps<Option>[\"item\"]>\n}\n\n/*\n * Default rendered list of select items\n */\nexport const ListItems = <Option extends SelectOption>({\n items,\n}: ListItemsProps<Option>): JSX.Element => (\n <>\n {items.map(item => (\n <ListItem<Option> key={item.key} item={item} />\n ))}\n </>\n)\n\nListItems.displayName = \"ListItems\"\n","import React, { HTMLAttributes } from \"react\"\nimport { FocusScope } from \"@react-aria/focus\"\nimport { useOverlay, DismissButton } from \"@react-aria/overlays\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { useSelectContext } from \"../../context\"\nimport { SelectOption } from \"../../types\"\n\nexport type OverlayProps = OverrideClassName<HTMLAttributes<HTMLDivElement>> & {\n children: React.ReactNode\n}\n\nexport const Overlay = <Option extends SelectOption>({\n children,\n classNameOverride,\n ...restProps\n}: OverlayProps): JSX.Element => {\n const { state } = useSelectContext<Option>()\n\n // Handle events that should cause the menu to close,\n // e.g. blur, clicking outside, or pressing the escape key.\n const overlayRef = React.useRef<HTMLDivElement>(null)\n const { overlayProps } = useOverlay(\n { isDismissable: true, isOpen: state.isOpen, onClose: state.close },\n overlayRef\n )\n\n // Wrap in <FocusScope> so that focus is restored back to the trigger when the menu is closed\n // and auto focus on the first focusable item after loading. (disable eslint no-autofocus error for it)\n // In addition, add hidden <DismissButton> components at the start and end of the list\n // to allow screen reader users to dismiss the popup easily.\n return (\n <div\n ref={overlayRef}\n className={classNameOverride}\n {...overlayProps}\n {...restProps}\n >\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <FocusScope contain autoFocus restoreFocus>\n <DismissButton onDismiss={state.close} />\n {children}\n <DismissButton onDismiss={state.close} />\n </FocusScope>\n </div>\n )\n}\n\nOverlay.displayName = \"Overlay\"\n","import React from \"react\"\nimport { Divider } from \"@kaizen/draft-divider\"\nimport styles from \"./SectionDivider.module.scss\"\n\nexport const SectionDivider = (): JSX.Element => (\n <Divider classNameOverride={styles.divider} variant=\"canvas\" />\n)\n\nSectionDivider.displayName = \"SectionDivider\"\n","import { SelectItem, SelectOption, SelectOptionGroup } from \"../types\"\n\nexport const isSelectOptionGroup = <Option extends SelectOption>(\n item: SelectItem\n): item is SelectOptionGroup<Option> =>\n item.hasOwnProperty(\"options\") && Array.isArray(item.options)\n","import React from \"react\"\nimport { Item, Section } from \"@react-stately/collections\"\nimport { CollectionElement } from \"@react-types/shared\"\nimport { SelectItem, SelectOption } from \"../types\"\nimport { isSelectOptionGroup } from \"./isSelectOptionGroup\"\n\nexport const transformSelectItemToCollectionElement = <\n Option extends SelectOption,\n>(\n item: SelectItem<Option>\n): CollectionElement<SelectItem<Option>> =>\n isSelectOptionGroup<Option>(item) ? (\n <Section<Option> key={item.label} title={item.label} items={item.options}>\n {(child): JSX.Element => <Item key={child.value}>{child.label}</Item>}\n </Section>\n ) : (\n <Item<Option> key={item.value}>{item.label}</Item>\n )\n","import React, { useState } from \"react\"\nimport { useButton } from \"@react-aria/button\"\nimport { HiddenSelect, useSelect } from \"@react-aria/select\"\nimport {\n useSelectState,\n SelectProps as AriaSelectProps,\n} from \"@react-stately/select\"\nimport { Filter, FilterContents } from \"~components/Filter\"\nimport { FilterButtonProps } from \"~components/FilterButton\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { SelectProvider } from \"./context\"\nimport { ListBox } from \"./subcomponents/ListBox\"\nimport { ListBoxSection } from \"./subcomponents/ListBoxSection\"\nimport { ListItem } from \"./subcomponents/ListItem\"\nimport { ListItems } from \"./subcomponents/ListItems\"\nimport { Option } from \"./subcomponents/Option\"\nimport { Overlay } from \"./subcomponents/Overlay\"\nimport { SectionDivider } from \"./subcomponents/SectionDivider\"\nimport { SelectItem, SelectItemNode, SelectOption } from \"./types\"\nimport { isSelectOptionGroup } from \"./utils/isSelectOptionGroup\"\nimport { transformSelectItemToCollectionElement } from \"./utils/transformSelectItemToCollectionElement\"\nimport styles from \"./FilterSelect.module.scss\"\n\ntype OmittedAriaSelectProps =\n | \"label\"\n | \"children\"\n | \"isOpen\"\n | \"onOpenChange\"\n | \"defaultOpen\"\n | \"items\"\n\nexport interface FilterSelectProps<Option extends SelectOption = SelectOption>\n extends OverrideClassName<\n Omit<AriaSelectProps<Option>, OmittedAriaSelectProps>\n > {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n renderTrigger: (triggerButtonProps: FilterButtonProps) => JSX.Element\n label: string\n children?: (args: { items: Array<SelectItemNode<Option>> }) => React.ReactNode\n items: Array<SelectItem<Option>>\n}\n\nexport const FilterSelect = <Option extends SelectOption = SelectOption>({\n isOpen,\n setIsOpen,\n renderTrigger,\n label,\n children,\n items,\n classNameOverride,\n selectedKey,\n ...restProps\n}: FilterSelectProps<Option>): JSX.Element => {\n // Ref will be populated by Filter\n const [triggerRef, setTriggerRef] = useState<\n React.RefObject<HTMLButtonElement>\n >({ current: null })\n\n const disabledKeys = items.reduce((acc: React.Key[], item) => {\n if (isSelectOptionGroup(item)) {\n const keys = Array.from(item.options)\n .filter(groupItem => groupItem.disabled)\n .map(disabledItems => disabledItems.value)\n return [...acc, ...keys]\n }\n\n return item.disabled ? [...acc, item.value] : acc\n }, [])\n\n const ariaSelectProps: AriaSelectProps<SelectItem<Option>> = {\n label,\n items,\n children: transformSelectItemToCollectionElement,\n isOpen,\n onOpenChange: setIsOpen,\n disabledKeys,\n selectedKey:\n typeof selectedKey === \"number\" ? selectedKey.toString() : selectedKey,\n ...restProps,\n }\n\n const state = useSelectState(ariaSelectProps)\n\n const { triggerProps, menuProps } = useSelect(\n ariaSelectProps,\n state,\n triggerRef\n )\n\n const { buttonProps } = useButton(triggerProps, triggerRef)\n\n // The collection structure is set by useSelectState's `children`\n // which we have used a util to ensure the following structure\n // - SelectOptionGroup => Section\n // - Option => Item\n const itemNodes = Array.from(state.collection) as Array<\n SelectItemNode<Option>\n >\n\n return (\n <>\n <HiddenSelect label={label} state={state} triggerRef={triggerRef} />\n <Filter\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n renderTrigger={(): JSX.Element =>\n renderTrigger({\n selectedValue: state.selectedItem?.textValue || undefined,\n label,\n isOpen,\n ...buttonProps,\n })\n }\n onMount={setTriggerRef}\n classNameOverride={classNameOverride}\n >\n <FilterContents classNameOverride={styles.filterContents}>\n <SelectProvider<Option> state={state}>\n <Overlay<Option>>\n <ListBox<Option> menuProps={menuProps}>\n {children ? (\n children({ items: itemNodes })\n ) : (\n <ListItems<Option> items={itemNodes} />\n )}\n </ListBox>\n </Overlay>\n </SelectProvider>\n </FilterContents>\n </Filter>\n </>\n )\n}\n\nFilterSelect.displayName = \"FilterSelect\"\n\nFilterSelect.Section = ListBoxSection\nFilterSelect.SectionDivider = SectionDivider\nFilterSelect.Option = Option\nFilterSelect.ItemDefaultRender = ListItem\n","import React, { useEffect, useState } from \"react\"\nimport {\n FilterSelect,\n FilterSelectProps,\n SelectItem,\n SelectOption,\n} from \"~components/FilterSelect\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { checkArraysMatch } from \"../../utils/checkArraysMatch\"\nimport { FilterBarButton } from \"../FilterBarButton\"\n\nexport type FilterBarSelectProps<Option extends SelectOption = SelectOption> =\n Omit<\n FilterSelectProps<Option>,\n \"isOpen\" | \"setIsOpen\" | \"renderTrigger\" | \"label\" | \"selectedKey\"\n > & {\n id?: string\n }\n\nexport const FilterBarSelect = <Option extends SelectOption = SelectOption>({\n id,\n items: propsItems,\n onSelectionChange,\n ...props\n}: FilterBarSelectProps<Option>): JSX.Element => {\n const { getFilterState, setFilterOpenState, updateValue } =\n useFilterBarContext<Option[\"value\"] | undefined>()\n const [items, setItems] = useState<Array<SelectItem<Option>>>(propsItems)\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarSelect\")\n\n const filterState = getFilterState(id)\n\n useEffect(() => {\n if (!checkArraysMatch(items, propsItems)) {\n setItems(propsItems)\n }\n }, [propsItems])\n\n useEffect(() => {\n if (filterState.value) {\n const itemValues = items.map(item => (item as Option)?.value)\n if (!itemValues.includes(filterState.value)) {\n updateValue(id, undefined)\n }\n }\n }, [items])\n\n return (\n <FilterSelect<Option>\n {...props}\n items={items}\n selectedKey={filterState.value || null}\n label={filterState.name}\n renderTrigger={(triggerProps): JSX.Element => (\n <FilterBarButton\n {...triggerProps}\n id={id}\n isRemovable={filterState.isRemovable}\n />\n )}\n onSelectionChange={(key): void => {\n updateValue(id, key)\n onSelectionChange?.(key)\n }}\n isOpen={filterState.isOpen}\n setIsOpen={(open): void => setFilterOpenState(id, open)}\n />\n )\n}\n\nFilterBarSelect.displayName = \"FilterBarSelect\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const AddIcon = (props: Omit<SVGProps, \"children\">): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10 2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8Zm4 8.8h-3.2V14H9.2v-3.2H6V9.2h3.2V6h1.6v3.2H14v1.6Z\"\n />\n </SVG>\n)\n\nAddIcon.displayName = \"AddIcon\"\n","import React from \"react\"\nimport { Menu, MenuList, MenuItem } from \"@kaizen/draft-menu\"\nimport { Button } from \"~components/Button\"\nimport { AddIcon } from \"~components/SVG/icons/AddIcon\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\n\nexport const AddFiltersMenu = (): JSX.Element => {\n const { getInactiveFilters, showFilter } = useFilterBarContext()\n const inactiveFilters = getInactiveFilters()\n\n return (\n <Menu\n button={\n <Button\n label=\"Add Filters\"\n secondary\n disabled={inactiveFilters.length === 0}\n icon={<AddIcon role=\"presentation\" />}\n />\n }\n >\n <MenuList>\n {inactiveFilters.map(({ id, name }) => (\n <MenuItem\n key={id}\n label={name}\n onClick={(): void => showFilter(id)}\n />\n ))}\n </MenuList>\n </Menu>\n )\n}\n\nAddFiltersMenu.displayName = \"FilterBar.AddFiltersMenu\"\n","import React from \"react\"\nimport { Button } from \"~components/Button\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport styles from \"./ClearAllButton.module.scss\"\n\nexport const ClearAllButton = (): JSX.Element => {\n const { clearAllFilters } = useFilterBarContext()\n\n return (\n <Button\n label=\"Clear all\"\n aria-label=\"Clear all filters\"\n classNameOverride={styles.clearAllButton}\n secondary\n onClick={clearAllFilters}\n />\n )\n}\n\nClearAllButton.displayName = \"FilterBar.ClearAllButton\"\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n FilterBarProvider,\n FilterBarProviderProps,\n} from \"./context/FilterBarContext\"\nimport {\n FilterBarDatePicker,\n FilterBarDateRangePicker,\n FilterBarMultiSelect,\n FilterBarSelect,\n} from \"./subcomponents\"\nimport { AddFiltersMenu } from \"./subcomponents/AddFiltersMenu\"\nimport { ClearAllButton } from \"./subcomponents/ClearAllButton\"\nimport { FiltersValues } from \"./types\"\nimport styles from \"./FilterBar.module.scss\"\n\nexport type FilterBarProps<ValuesMap extends FiltersValues> = OverrideClassName<\n Omit<FilterBarProviderProps<ValuesMap>, \"children\">\n>\n\nexport const FilterBar = <ValuesMap extends FiltersValues>({\n filters,\n classNameOverride,\n ...providerProps\n}: FilterBarProps<ValuesMap>): JSX.Element => (\n <FilterBarProvider<ValuesMap> filters={filters} {...providerProps}>\n {(activeFilters): JSX.Element => (\n <div className={classnames(styles.filterBar, classNameOverride)}>\n <div className={styles.filtersContainer}>\n {Object.values(activeFilters).map(({ id, Component }) => (\n // `id` will always be `string`, but keyof ValuesMap transformed it\n <React.Fragment key={id as string}>\n {React.cloneElement(Component, { id })}\n </React.Fragment>\n ))}\n <AddFiltersMenu />\n </div>\n\n <div>\n <ClearAllButton />\n </div>\n </div>\n )}\n </FilterBarProvider>\n)\n\nFilterBar.displayName = \"FilterBar\"\n\nFilterBar.DatePicker = FilterBarDatePicker\nFilterBar.DateRangePicker = FilterBarDateRangePicker\nFilterBar.MultiSelect = FilterBarMultiSelect\nFilterBar.Select = FilterBarSelect\n","import React, { useContext } from \"react\"\nimport { StaticIntlProvider } from \"@cultureamp/i18n-react-intl\"\nimport { IntlContext } from \"react-intl\"\n\ntype Props = {\n locale: string\n children: React.ReactElement\n}\nexport const OptionalIntlProvider = ({\n locale,\n children,\n}: Props): JSX.Element => {\n const parent = useContext(IntlContext)\n\n if (parent) return children\n return <StaticIntlProvider locale={locale}>{children}</StaticIntlProvider>\n}\n\nOptionalIntlProvider.displayName = \"OptionalIntlProvider\"\n","import {\n makeCssVariableDefinitionsMap,\n Theme as BaseTheme,\n} from \"@kaizen/design-tokens\"\n\n/**\n * Use this class to set and apply themes, and to access or subscribe to the currently active one.\n * This class fulfills the idea of theming and runtime theme switching by relying on CSS variables,\n * and the ability to update them in JavaScript - a framework agnostic method.\n *\n * It works by converting a Theme interface to a flattened map of CSS variable keys and values, then calling `document.documentElement.style.setProperty(key, value)`.\n */\n\nexport class ThemeManager<Theme extends BaseTheme = BaseTheme> {\n private themeChangeListeners = [] as Array<(theme: Theme) => void>\n private theme: Theme\n private rootElement: HTMLElement | null = null\n private rootElementId: string\n\n constructor(\n theme: Theme,\n rootElementId: string = \"\",\n /* This allows you to stop the class from applying the theme automatically during construction. Defaults to true */\n apply: boolean = true\n ) {\n /*\n For some reason, storybook likes this way of defining class properties better.\n If you use `constructor( private theme: Theme, ...)` - theme becomes undefined within the class's methods.\n */\n this.theme = theme\n this.rootElementId = rootElementId\n if (apply) this.applyCurrentTheme()\n }\n\n public getRootElement = (): HTMLElement | null => this.rootElement\n public getRootElementId = (): string => this.rootElementId\n public getCurrentTheme = (): Theme => this.theme\n\n public setRootElement = (element: HTMLElement): void => {\n this.rootElement = element\n }\n public setRootElementId = (rootElementId: string): string =>\n (this.rootElementId = rootElementId)\n public setAndApplyTheme = (theme: Theme, force?: boolean): void => {\n if (!force) {\n if (this.theme === theme) return\n }\n this.theme = theme\n this.applyCurrentTheme()\n this.notifyThemeChangeListeners(theme)\n }\n\n public addThemeChangeListener = (listener: (theme: Theme) => void): void => {\n this.themeChangeListeners.push(listener)\n }\n public removeThemeChangeListener = (\n listener: (theme: Theme) => void\n ): void => {\n this.themeChangeListeners = this.themeChangeListeners.filter(\n l => l !== listener\n )\n }\n public applyCurrentTheme = (): void => {\n if (typeof window !== \"undefined\") {\n this.setRootElement(\n document.getElementById(this.rootElementId) ?? document.documentElement\n )\n const cssVariableDefinitions = makeCssVariableDefinitionsMap(this.theme)\n Object.entries(cssVariableDefinitions).forEach(([key, value]) => {\n this.rootElement?.style.setProperty(key, value)\n })\n }\n }\n\n private notifyThemeChangeListeners = (theme: Theme): void => {\n this.themeChangeListeners.forEach(listener => listener(theme))\n }\n}\n\n// I would like to expose this, but instantiating ThemeManager in some situations or runtimes (such as nodejs) cause exceptions.\n// For now it is not exposed, but we might come back to it, as it makes sense to have a singleton ThemeManager in almost all cases\n/* export const defaultThemeManager = new ThemeManager(defaultTheme) */\n","import { Theme } from \"./types\"\n\nexport const heartTheme: Theme = {\n themeKey: \"heart\",\n animation: {\n easingFunction: {\n easeInOut: \"cubic-bezier(0.455, 0.03, 0.515, 0.955)\",\n easeIn: \"cubic-bezier(0.55, 0.085, 0.68, 0.53)\",\n easeOut: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n linear: \"linear\",\n bounceIn: \"cubic-bezier(0.485, 0.155, 0.24, 1.245)\",\n bounceOut: \"cubic-bezier(0.485, 0.155, 0.515, 0.845)\",\n bounceInOut: \"cubic-bezier(0.76, -0.245, 0.24, 1.245)\",\n },\n duration: {\n instant: \"0ms\",\n immediate: \"100ms\",\n rapid: \"200ms\",\n fast: \"300ms\",\n slow: \"400ms\",\n deliberate: \"700ms\",\n },\n },\n border: {\n solid: {\n borderWidth: \"2px\",\n borderRadius: \"7px\",\n borderStyle: \"solid\",\n borderColor: \"#e1e2ea\",\n },\n dashed: {\n borderWidth: \"2px\",\n borderRadius: \"7px\",\n borderStyle: \"dashed\",\n },\n borderless: {\n borderWidth: \"2px\",\n borderRadius: \"7px\",\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n },\n focusRing: {\n borderWidth: \"2px\",\n borderRadius: \"10px\",\n borderStyle: \"solid\",\n },\n },\n color: {\n purple: {\n 100: \"#f4edf8\",\n 200: \"#dfc9ea\",\n 300: \"#c9a5dd\",\n 400: \"#ae67b1\",\n 500: \"#844587\",\n 600: \"#5f3361\",\n 700: \"#4a234d\",\n 800: \"#2f2438\",\n },\n blue: {\n 100: \"#e6f6ff\",\n 200: \"#bde2f5\",\n 300: \"#73c0e8\",\n 400: \"#008bd6\",\n 500: \"#0168b3\",\n 600: \"#004970\",\n 700: \"#003157\",\n },\n green: {\n 100: \"#e8f8f4\",\n 200: \"#c4ede2\",\n 300: \"#8fdbc7\",\n 400: \"#5dcbad\",\n 500: \"#44a289\",\n 600: \"#2c7d67\",\n 700: \"#22594a\",\n },\n yellow: {\n 100: \"#fff9e4\",\n 200: \"#ffeeb3\",\n 300: \"#ffe36e\",\n 400: \"#ffca4d\",\n 500: \"#ffb600\",\n 600: \"#c68600\",\n 700: \"#876400\",\n },\n red: {\n 100: \"#fdeaee\",\n 200: \"#f9c2cb\",\n 300: \"#f597a8\",\n 400: \"#e0707d\",\n 500: \"#c93b55\",\n 600: \"#a82433\",\n 700: \"#6c1e20\",\n },\n orange: {\n 100: \"#fff0e8\",\n 200: \"#ffd1b9\",\n 300: \"#ffb08a\",\n 400: \"#ff9461\",\n 500: \"#e96c2f\",\n 600: \"#b74302\",\n 700: \"#903c00\",\n },\n gray: {\n 100: \"#f9f9f9\",\n 200: \"#f4f4f5\",\n 300: \"#eaeaec\",\n 400: \"#cdcdd0\",\n 500: \"#8c8c97\",\n 600: \"#524e56\",\n },\n white: \"#ffffff\",\n },\n dataViz: {\n favorable: \"#7dd5bd\",\n unfavorable: \"#e68d97\",\n },\n layout: {\n contentMaxWidth: \"1392px\",\n contentMaxWidthWithSidebar: \"1080px\",\n contentSideMargin: \"72px\",\n mobileActionsDrawerHeight: \"60px\",\n navigationBarHeight: \"72px\",\n breakpoints: {\n medium: \"768px\",\n large: \"1080px\",\n },\n },\n shadow: {\n small: {\n boxShadow:\n \"0px 3px 16px rgba(0, 0, 0, 0.06), 0px 1px 3px rgba(0, 0, 0, 0.1)\",\n },\n large: {\n boxShadow:\n \"0px 8px 40px rgba(0, 0, 0, 0.08), 0px 3px 9px rgba(0, 0, 0, 0.1)\",\n },\n },\n spacing: {\n xs: \"0.375rem\",\n sm: \"0.75rem\",\n md: \"1.5rem\",\n lg: \"2.25rem\",\n xl: \"3rem\",\n xxl: \"3.75rem\",\n xxxl: \"4.5rem\",\n xxxxl: \"5.25rem\",\n xxxxxl: \"6rem\",\n 0: \"0\",\n 1: \".0625rem\",\n 2: \".125rem\",\n 4: \".25rem\",\n 6: \".375rem\",\n 8: \".5rem\",\n 12: \".75rem\",\n 16: \"1rem\",\n 24: \"1.5rem\",\n 32: \"2rem\",\n 40: \"2.5rem\",\n 48: \"3rem\",\n 56: \"3.5rem\",\n 64: \"4rem\",\n 72: \"4.5rem\",\n 80: \"5rem\",\n 96: \"6rem\",\n 112: \"7rem\",\n 128: \"8rem\",\n 160: \"10rem\",\n 200: \"12.5rem\",\n 240: \"15rem\",\n 280: \"17.5rem\",\n 320: \"20rem\",\n },\n typography: {\n dataLarge: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"5.25rem\",\n lineHeight: \"5.25rem\",\n letterSpacing: \"normal\",\n },\n dataLargeUnits: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"2.625rem\",\n lineHeight: \"5.25rem\",\n letterSpacing: \"normal\",\n },\n dataMedium: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"3rem\",\n lineHeight: \"5rem\",\n letterSpacing: \"normal\",\n },\n dataMediumUnits: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.5rem\",\n lineHeight: \"5rem\",\n letterSpacing: \"normal\",\n },\n dataSmall: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.5rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n dataSmallUnits: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.125rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n display0: {\n fontFamily: '\"Tiempos Headline\", Georgia, serif',\n fontWeight: 800,\n fontSize: \"4.5rem\",\n lineHeight: \"5.25rem\",\n letterSpacing: \"0em\",\n },\n heading1: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"2.125rem\",\n lineHeight: \"2.625rem\",\n letterSpacing: \"normal\",\n },\n heading2: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.75rem\",\n lineHeight: \"2.25rem\",\n letterSpacing: \"normal\",\n },\n heading3: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.375rem\",\n lineHeight: \"1.875rem\",\n letterSpacing: \"normal\",\n },\n heading4: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 600,\n fontSize: \"1.125rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n heading5: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 600,\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n heading6: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"0.875rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n paragraphIntroLede: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"1.25rem\",\n lineHeight: \"1.875rem\",\n letterSpacing: \"0\",\n },\n paragraphBody: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n paragraphSmall: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"0.875rem\",\n lineHeight: \"1.125rem\",\n letterSpacing: \"normal\",\n },\n paragraphExtraSmall: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"0.75rem\",\n lineHeight: \"1.125rem\",\n letterSpacing: \"normal\",\n },\n paragraphBold: {\n fontWeight: 600,\n },\n buttonPrimary: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.125rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n buttonSecondary: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 500,\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n },\n}\n\nexport default heartTheme\n","export * from \"./heart\"\nexport * from \"./types\"\n\nimport { heartTheme } from \"./heart\"\nexport const defaultTheme = heartTheme\n","import React, {\n Context,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\"\nimport { ThemeManager } from \"./ThemeManager\"\nimport { defaultTheme, Theme } from \"./themes\"\n\nexport const ThemeContext: Context<Theme> = createContext<Theme>(defaultTheme)\n\n/**\n * Wrap your application in this provider using a ThemeManager, to synchronise it with a react context.\n * This allows child react elements to more easily use theme variables, using the {@link useTheme} hook.\n */\nexport const ThemeProvider = ({\n themeManager,\n ...props\n}: {\n themeManager?: ThemeManager\n children: React.ReactNode\n}): JSX.Element => {\n const [themeManagerInstance] = useState<ThemeManager>(\n () => themeManager || new ThemeManager(defaultTheme)\n )\n\n const [theme, setTheme] = useState<Theme>(\n themeManagerInstance.getCurrentTheme()\n )\n\n useEffect(() => {\n let cancelled = false\n const listener = (newTheme: Theme): void => {\n if (!cancelled) setTheme(newTheme)\n }\n themeManagerInstance.addThemeChangeListener(listener)\n return () => {\n cancelled = true\n themeManagerInstance.removeThemeChangeListener(listener)\n }\n }, [])\n\n return (\n <>\n <ThemeContext.Provider value={theme}>\n {props.children}\n </ThemeContext.Provider>\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n </>\n )\n}\n\nexport const useTheme = (): Theme => useContext(ThemeContext)\n","import React from \"react\"\nimport { OptionalIntlProvider } from \"./OptionalIntlProvider\"\nimport { ThemeProvider, ThemeManager } from \"./ThemeProvider\"\n\nexport interface KaizenProviderProps {\n children: React.ReactNode\n themeManager?: ThemeManager\n locale?: string\n}\n\nexport const KaizenProvider = ({\n children,\n themeManager,\n locale = \"en\",\n}: KaizenProviderProps): JSX.Element => (\n <OptionalIntlProvider locale={locale}>\n <ThemeProvider themeManager={themeManager}>{children}</ThemeProvider>\n </OptionalIntlProvider>\n)\n\nKaizenProvider.displayName = \"KaizenProvider\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FooterRoot.module.scss\"\n\nexport type FooterRootProps = OverrideClassName<\n HTMLAttributes<HTMLHeadingElement>\n>\n\nexport const FooterRoot = ({\n children,\n classNameOverride,\n ...restProps\n}: FooterRootProps): JSX.Element => (\n <footer\n className={classnames(styles.footerRoot, classNameOverride)}\n {...restProps}\n >\n {children}\n </footer>\n)\n\nFooterRoot.displayName = \"Workflow.FooterRoot\"\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { Paragraph } from \"@kaizen/typography\"\nimport { IndicatorActiveIcon } from \"~icons/IndicatorActiveIcon\"\nimport { IndicatorInactiveIcon } from \"~icons/IndicatorInactiveIcon\"\nimport { SuccessIcon } from \"~icons/SuccessIcon\"\nimport styles from \"./ProgressStepper.module.scss\"\n\nexport interface ProgressStepperProps {\n stepName: string\n steps: [string, ...string[]]\n isComplete?: boolean\n}\n\nconst getStepStatus = (\n isComplete: boolean,\n isCurrentStep: boolean,\n step: string,\n index: number\n): {\n icon: JSX.Element\n accessibleName: string\n} => {\n if (isComplete) {\n return {\n icon: (\n <SuccessIcon\n key={index}\n inheritSize\n role=\"presentation\"\n classNameOverride=\"success\"\n />\n ),\n accessibleName: `Completed: ${step}`,\n }\n }\n if (isCurrentStep) {\n return {\n icon: (\n <IndicatorActiveIcon\n key={index}\n inheritSize\n role=\"presentation\"\n classNameOverride=\"active\"\n />\n ),\n accessibleName: `Current: ${step}`,\n }\n }\n return {\n icon: (\n <IndicatorInactiveIcon\n key={index}\n inheritSize\n classNameOverride=\"incomplete\"\n role=\"presentation\"\n />\n ),\n accessibleName: `Not started: ${step}`,\n }\n}\n\nexport const ProgressStepper = ({\n stepName,\n steps,\n isComplete = false,\n ...restprops\n}: ProgressStepperProps): JSX.Element => {\n const currentStepIndex = steps.indexOf(stepName)\n\n return (\n <div className={styles.stepsContainer}>\n <ol\n className={styles.stepList}\n {...restprops}\n aria-labelledby=\"stepper-description\"\n >\n {steps.map((step: string, index: number) => {\n const isCurrentStep = currentStepIndex === index\n const isCompletedStep = index < currentStepIndex || isComplete\n const { accessibleName, icon: Icon } = getStepStatus(\n isCompletedStep,\n isCurrentStep,\n step,\n index\n )\n return (\n <li\n className={styles.step}\n key={`${index}-${step}`}\n aria-current={isCurrentStep}\n >\n <div className={styles.stepContent}>\n <span className=\"sr-only\">\n {/* will need to be translated */}\n {accessibleName}\n </span>\n <Paragraph\n classNameOverride={styles.stepName}\n variant=\"small\"\n color=\"white\"\n aria-hidden\n >\n {step}\n </Paragraph>\n <div className={styles.stepIndicator}>\n <span className={styles.stepIcon}>{Icon}</span>\n </div>\n {index < steps.length - 1 && (\n <div\n className={classnames([\n styles.stepDivider,\n isCompletedStep && styles.completedStep,\n ])}\n />\n )}\n </div>\n </li>\n )\n })}\n </ol>\n <Paragraph\n classNameOverride={styles.stepperDescription}\n variant=\"small\"\n color=\"white\"\n id=\"stepper-description\"\n >\n Step {currentStepIndex + 1} of {steps.length}\n </Paragraph>\n </div>\n )\n}\n\nProgressStepper.displayName = \"Workflow.ProgressStepper\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FooterActions.module.scss\"\n\nexport interface FooterActionsProps\n extends OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, \"children\">> {\n /** @default \"start\" */\n actionType?: \"Previous\" | \"Next\"\n action?: JSX.Element\n}\n\n/** A simple wrapper for a Footer previous or next action */\nexport const FooterAction = ({\n actionType = \"Previous\",\n action,\n ...restProps\n}: FooterActionsProps): JSX.Element => (\n <div\n className={classnames([\n styles.footerAction,\n styles[`footerAction${actionType}`],\n ])}\n {...restProps}\n >\n {action}\n </div>\n)\n\nFooterAction.displayName = \"Workflow.FooterActions\"\n","import React, { HTMLAttributes } from \"react\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n FooterRoot,\n FooterAction,\n ProgressStepper,\n ProgressStepperProps,\n} from \"./components\"\n\nexport interface FooterProps\n extends OverrideClassName<Omit<HTMLAttributes<HTMLElement>, \"children\">>,\n ProgressStepperProps {\n /** An action to return to a previous step */\n previousAction?: JSX.Element\n /** An action to progress to the next step or submit the form */\n nextAction?: JSX.Element\n}\n\nexport const Footer = ({\n steps,\n stepName,\n isComplete,\n previousAction,\n nextAction,\n ...restProps\n}: FooterProps): JSX.Element => (\n <FooterRoot {...restProps}>\n <FooterAction action={previousAction} actionType=\"Previous\" />\n <ProgressStepper\n steps={steps}\n stepName={stepName}\n isComplete={isComplete}\n />\n <FooterAction action={nextAction} actionType=\"Next\" />\n </FooterRoot>\n)\n\nFooter.displayName = \"Workflow.Footer\"\n","import React, { HTMLAttributes } from \"react\"\n// import classnames from \"classnames\"\nimport { Tag, DefaultTagProps } from \"@kaizen/draft-tag\"\nimport { Heading } from \"@kaizen/typography\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Titles.module.scss\"\n\nexport type WorkflowStatus = {\n /** @default: \"statusDraft\" */\n variant?: DefaultTagProps[\"variant\"]\n content?: string\n}\n\nexport interface WorkflowTitlesProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n workflowName: string\n stepName: string\n status?: WorkflowStatus\n}\n\nexport const Titles = ({\n workflowName,\n stepName,\n status,\n ...restProps\n}: WorkflowTitlesProps): JSX.Element => (\n <div className={styles.titles} {...restProps}>\n <Heading\n variant=\"heading-1\"\n tag=\"h1\"\n color=\"dark\"\n classNameOverride={styles.pageTitle}\n >\n <Heading\n classNameOverride={styles.prefix}\n variant=\"heading-6\"\n tag=\"span\"\n color=\"dark-reduced-opacity\"\n >\n {workflowName}\n <span className=\"sr-only\">:</span>\n </Heading>\n <span>{stepName}</span>\n </Heading>\n {status && (\n // status may need to be update by a fetch\n <div className={styles.status}>\n <Tag inline variant={status?.variant || \"statusDraft\"}>\n {status?.content}\n </Tag>\n </div>\n )}\n </div>\n)\n\nTitles.displayName = \"Workflow.Titles\"\n","import React, { HTMLAttributes } from \"react\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Actions.module.scss\"\n\nexport interface WorkflowActionsProps\n extends OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, \"children\">> {\n /**\n * Header actions will render in order of the array.\n */\n headerActions?: JSX.Element[]\n}\n\n/** A wrapper for an exit trigger (and other) actions of the Header Workflow */\nexport const Actions = ({\n headerActions,\n ...restProps\n}: WorkflowActionsProps): JSX.Element => (\n <div className={styles.actions} {...restProps}>\n {headerActions?.map((action, index) => (\n <action.type key={`header-actions ${index}`} {...action.props} />\n ))}\n </div>\n)\n\nActions.displayName = \"Workflow.Actions\"\n","import React, { HTMLAttributes } from \"react\"\nimport { Brand, BrandProps } from \"@kaizen/brand\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Branding.module.scss\"\n\nexport interface WorflowBrandingProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n /** * @default: \"logo-horizontal\" */\n variant?: BrandProps[\"variant\"]\n alt: string\n}\n\nexport const Branding = ({\n variant = \"logo-horizontal\",\n alt,\n}: WorflowBrandingProps): JSX.Element => (\n <div className={styles.branding}>\n <Brand classNameOverride={styles.logo} variant={variant} alt={alt} />\n </div>\n)\n\nBranding.displayName = \"Workflow.Branding\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Root.module.scss\"\n\nexport type HeaderRootProps = OverrideClassName<\n HTMLAttributes<HTMLHeadingElement>\n>\n\nexport const HeaderRoot = ({\n children,\n classNameOverride,\n ...restProps\n}: HeaderRootProps): JSX.Element => (\n <header className={classnames(styles.root, classNameOverride)} {...restProps}>\n {children}\n </header>\n)\n\nHeaderRoot.displayName = \"Workflow.HeaderRoot\"\n","import React from \"react\"\nimport {\n HeaderRoot,\n Branding,\n Titles,\n Actions,\n WorkflowTitlesProps,\n WorkflowActionsProps,\n} from \"./components\"\n\nexport type HeaderProps = WorkflowTitlesProps & WorkflowActionsProps\n\nexport const Header = ({\n workflowName,\n stepName,\n status,\n headerActions,\n ...restProps\n}: HeaderProps): JSX.Element => (\n <HeaderRoot {...restProps}>\n <Branding alt=\"Cultureamp\" />\n <Titles workflowName={workflowName} stepName={stepName} status={status} />\n <Actions headerActions={headerActions} />\n </HeaderRoot>\n)\n\nHeader.displayName = \"Workflow.Header\"\n","import React, { HTMLAttributes, ReactNode } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Main.module.scss\"\n\nexport type WorkflowMainProps = OverrideClassName<\n HTMLAttributes<HTMLDivElement>\n> & {\n children: ReactNode\n}\n\nexport const Main = ({\n children,\n classNameOverride,\n ...restProps\n}: WorkflowMainProps): JSX.Element => (\n <main className={classnames([styles.main, classNameOverride])} {...restProps}>\n {children}\n </main>\n)\n\nMain.displayName = \"Workflow.Main\"\n","import React, { HTMLAttributes, ReactNode } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Wrapper.module.scss\"\n\nexport type WorkflowWrapperProps = OverrideClassName<\n HTMLAttributes<HTMLDivElement>\n> & {\n children: ReactNode\n}\n\nexport const Wrapper = ({\n children,\n classNameOverride,\n ...restProps\n}: WorkflowWrapperProps): JSX.Element => (\n <div className={classnames(styles.wrapper, classNameOverride)} {...restProps}>\n {children}\n </div>\n)\n\nWrapper.displayName = \"Workflow.Wrapper\"\n","import React, { HTMLAttributes } from \"react\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n Footer,\n FooterProps,\n Header,\n Main,\n HeaderProps,\n ProgressStepper,\n Wrapper,\n} from \"./subcomponents\"\n\nexport type WorkflowProps = OverrideClassName<HTMLAttributes<HTMLDivElement>> &\n FooterProps &\n HeaderProps\n\nconst WorkflowComponent = ({\n stepName,\n steps,\n isComplete,\n workflowName,\n status,\n headerActions,\n children,\n nextAction,\n previousAction,\n classNameOverride,\n ...restProps\n}: WorkflowProps): JSX.Element => (\n <Workflow.Wrapper classNameOverride={classNameOverride} {...restProps}>\n <Workflow.Header\n workflowName={workflowName}\n stepName={stepName}\n status={status}\n headerActions={headerActions}\n />\n <Workflow.Main>{children}</Workflow.Main>\n <Workflow.Footer\n stepName={stepName}\n steps={steps}\n isComplete={isComplete}\n nextAction={nextAction}\n previousAction={previousAction}\n />\n </Workflow.Wrapper>\n)\n\n/**\n * @deprecated Use { Workflow } from `@kaizen/components/future`\n */\nexport const Workflow = Object.assign(WorkflowComponent, {\n Header,\n Footer,\n Main,\n ProgressStepper,\n Wrapper,\n})\n","import React, { ReactNode, ReactElement, HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { SceneProps } from \"@kaizen/draft-illustration\"\nimport { assetUrl } from \"@kaizen/hosted-assets\"\nimport { useMediaQueries } from \"@kaizen/responsive\"\nimport { Heading, Paragraph } from \"@kaizen/typography\"\nimport { Button, ButtonProps } from \"~components/Button\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./BrandMoment.module.scss\"\n\nexport interface BrandMomentProps\n extends OverrideClassName<HTMLAttributes<HTMLDivElement>> {\n mood: \"informative\" | \"positive\" | \"negative\"\n illustration: ReactElement<SceneProps>\n header: ReactNode\n body?: ReactNode\n primaryAction?: ButtonProps\n secondaryAction?: ButtonProps\n text: {\n title: ReactNode\n subtitle?: ReactNode\n body?: ReactNode\n footer?: ReactNode\n }\n}\n\nexport const BrandMoment = ({\n mood,\n illustration,\n header,\n body,\n primaryAction,\n secondaryAction,\n text,\n classNameOverride,\n ...restProps\n}: BrandMomentProps): JSX.Element => {\n const { queries } = useMediaQueries()\n\n return (\n <div\n className={classnames(styles.body, styles[mood], classNameOverride)}\n {...restProps}\n >\n <header className={styles.header}>{header}</header>\n <main className={styles.main}>\n <div className={styles.container}>\n <div className={styles.mainInner}>\n <div className={styles.left}>\n <div className={styles.leftInner}>{illustration}</div>\n </div>\n <div className={styles.right}>\n <div className={styles.rightInner}>\n {text.subtitle && (\n <Heading\n variant=\"heading-3\"\n tag=\"h1\"\n classNameOverride={styles.subtitle}\n >\n {text.subtitle}\n </Heading>\n )}\n <Heading\n variant=\"display-0\"\n tag={text.subtitle ? \"h2\" : \"h1\"}\n classNameOverride={styles.title}\n >\n {text.title}\n </Heading>\n {text.body && (\n <Paragraph\n variant=\"intro-lede\"\n classNameOverride={styles.textBody}\n >\n {text.body}\n </Paragraph>\n )}\n {body && <div className={styles.textBody}>{body}</div>}\n <div className={styles.actions}>\n {primaryAction && (\n <Button\n primary\n fullWidth={queries.isSmall}\n {...primaryAction}\n />\n )}\n {secondaryAction && (\n <div className={styles.secondaryAction}>\n <Button\n secondary\n fullWidth={queries.isSmall}\n {...secondaryAction}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </main>\n {text.footer && (\n <footer className={styles.footer}>\n <div className={styles.container}>\n <div className={styles.footerInner}>\n <div className={styles.poweredByContainer}>\n <Paragraph variant=\"extra-small\" color=\"dark-reduced-opacity\">\n Powered by\n </Paragraph>\n <a\n href=\"https://www.cultureamp.com\"\n className={styles.poweredByLogo}\n >\n <img\n src={assetUrl(\"brand/logo-horizontal-default.svg\")}\n alt=\"Culture Amp\"\n />\n </a>\n </div>\n <div className={styles.footerTextContainer}>\n <Paragraph variant=\"extra-small\">{text.footer}</Paragraph>\n </div>\n </div>\n </div>\n </footer>\n )}\n </div>\n )\n}\n\nBrandMoment.displayName = \"BrandMoment\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const ArrowRightIcon = (\n props: Omit<SVGProps, \"children\">\n): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"m12.5 5-1.179 1.179 2.987 2.987H2.5v1.667h11.808l-2.987 2.988L12.5 15l5-5.001z\"\n />\n </SVG>\n)\n\nArrowRightIcon.displayName = \"ArrowRightIcon\"\n","import React from \"react\"\nimport { SVG, SVGProps } from \"~components/SVG\"\n\nexport const EmailIcon = (props: Omit<SVGProps, \"children\">): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"nonzero\"\n d=\"M16.4 3.5H3.6c-.88 0-1.592.72-1.592 1.6L2 14.7c0 .88.72 1.6 1.6 1.6h12.8c.88 0 1.6-.72 1.6-1.6V5.1c0-.88-.72-1.6-1.6-1.6Zm0 3.2-6.4 4-6.4-4V5.1l6.4 4 6.4-4v1.6Z\"\n />\n </SVG>\n)\n\nEmailIcon.displayName = \"EmailIcon\"\n","import { useIntl } from \"@cultureamp/i18n-react-intl\"\nexport const statusCodes = [\n \"400\",\n \"401\",\n \"403\",\n \"404\",\n \"422\",\n \"500\",\n \"502\",\n \"503\",\n \"504\",\n] as const\n\nexport type ErrorStatuses = (typeof statusCodes)[number]\ntype TranslationMap = Record<ErrorStatuses, { title: string; message: string }>\n\nexport const useErrorMessages = (\n code: ErrorStatuses\n): TranslationMap[ErrorStatuses] => {\n const { formatMessage } = useIntl()\n\n const translationsMap: TranslationMap = {\n 400: {\n title: formatMessage({\n id: \"kzErrorPage.400.title\",\n defaultMessage: \"Your request has slipped into the void\",\n description: \"Heading for page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.400.message\",\n defaultMessage:\n \"Sorry but your request couldn’t be completed. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 401: {\n title: formatMessage({\n id: \"kzErrorPage.401.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title for page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.401.message\",\n defaultMessage:\n \"Sorry but we can't verify if you're able to view this page. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 403: {\n title: formatMessage({\n id: \"kzErrorPage.403.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title for page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.403.message\",\n defaultMessage:\n \"Sorry but it looks like you don’t have permission to view this page. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 404: {\n title: formatMessage({\n id: \"kzErrorPage.404.title\",\n defaultMessage: \"Missing pages are one of life's mysteries\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.404.message\",\n defaultMessage:\n \"Sorry but we can't fing the page you're looking for. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 422: {\n title: formatMessage({\n id: \"kzErrorPage.422.title\",\n defaultMessage: \"Change never comes easy\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.422.message\",\n defaultMessage:\n \"Sorry but your change couldn't be made. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 500: {\n title: formatMessage({\n id: \"kzErrorPage.500.title\",\n defaultMessage: \"Something's gone wrong on our side\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.500\",\n defaultMessage:\n \"Sorry there's an issue with our system and this page can't be displayed. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 502: {\n title: formatMessage({\n id: \"kzErrorPage.502.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.502.message\",\n defaultMessage:\n \"Sorry about this. The best thing to do is go back and try again.\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 503: {\n title: formatMessage({\n id: \"kzErrorPage.503.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.503.message\",\n defaultMessage:\n \"Sorry about this. The best thing to do is go back and try again.\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 504: {\n title: formatMessage({\n id: \"kzErrorPage.504.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.504.message\",\n defaultMessage:\n \"Sorry about this. The best thing to do is go back and try again.\",\n description: \"Call to action instructions for the user\",\n }),\n },\n }\n\n return (\n translationsMap[code] || {\n title: \"\",\n message: \"\",\n }\n )\n}\n","import React, { HTMLAttributes } from \"react\"\nimport { FormattedMessage, useIntl } from \"@cultureamp/i18n-react-intl\"\nimport classNames from \"classnames\"\nimport { BrandMomentError } from \"@kaizen/draft-illustration\"\nimport { Paragraph } from \"@kaizen/typography\"\nimport { BrandMoment } from \"~components/BrandMoment\"\nimport { ArrowRightIcon } from \"~components/SVG/icons/ArrowRightIcon\"\nimport { EmailIcon } from \"~components/SVG/icons/EmailIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ErrorStatuses, useErrorMessages } from \"./hooks\"\nimport styles from \"./ErrorPage.module.scss\"\n\nconst getMailToHref = (code: ErrorStatuses): string => {\n const supportEmail = \"support@cultureamp.com\"\n const subject = \"Houston we have a problem\"\n const body = `Hi there,\\n\\nI received a ${code} error page while I was trying to...`\n return encodeURI(`mailto:${supportEmail}?subject=${subject}&amp;body=${body}`)\n}\n\nconst HOME_HREF = \"/app/home\"\n\nexport type ErrorPageProps = {\n code: ErrorStatuses\n title?: string\n message?: React.ReactNode | string\n callToAction?: {\n onContactSupport: () => void\n homeHref?: string\n }\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport function ErrorPage({\n code,\n title,\n message,\n callToAction,\n classNameOverride,\n}: ErrorPageProps): JSX.Element {\n const { formatMessage } = useIntl()\n const content = useErrorMessages(code)\n\n const actions = {\n primary: { href: callToAction?.homeHref || HOME_HREF },\n secondary: callToAction?.onContactSupport\n ? { onClick: callToAction.onContactSupport }\n : { href: getMailToHref(code) },\n }\n\n return (\n <div className={classNames(classNameOverride)}>\n <BrandMoment\n header={<></>}\n body={\n <>\n <div className={styles.paragraphPadding}>\n <Paragraph variant=\"intro-lede\">\n {message || content.message}\n </Paragraph>\n </div>\n <Paragraph color=\"dark-reduced-opacity\" variant=\"small\">\n <FormattedMessage\n id=\"kzErrorPage.errorCode\"\n defaultMessage=\"Error code {code}\"\n values={{ code }}\n />\n </Paragraph>\n </>\n }\n illustration={<BrandMomentError isAnimated loop />}\n mood=\"negative\"\n primaryAction={{\n ...actions.primary,\n icon: <ArrowRightIcon role=\"presentation\" />,\n iconPosition: \"end\",\n label: formatMessage({\n id: \"kzErrorPage.goToHome\",\n defaultMessage: \"Go to Home\",\n description: \"Home button label\",\n }),\n }}\n secondaryAction={{\n ...actions.secondary,\n icon: <EmailIcon role=\"presentation\" />,\n label: formatMessage({\n id: \"kzErrorPage\",\n defaultMessage: \"Contact support\",\n description: \"Label for contact button\",\n }),\n }}\n text={{\n title: title || content.title,\n }}\n />\n </div>\n )\n}\n\nErrorPage.displayName = \"ErrorPage\"\n"],"names":["forwardRef","useRef","useImperativeHandle","styles","__rest","__assign","LoadingSpinner","BadgeAnimated","Badge","SVG","ClearButton","useState","usePopper","useEffect","_b","_a","FocusOn","checkArraysMatch","useContext","useMemo","useReducer","dpValidateDate","formatDateAsText","isInvalidDate","isDisabledDate","parseDateFromTextFormatValue","formatDateAsNumeral","isSelectingDayInCalendar","parseDateFromNumeralFormatValue","useIntl","DateInput","FieldMessage","filterDatePickerFieldReducer","v4","getLocale","CalendarSingle","Tooltip","VisuallyHidden","CalendarRange","useMenuTriggerState","useMenuTrigger","useButton","useCallback","useListState","Item","useListBox","__spreadArray","ListBox","ListBoxSection","LoadingInput","LoadingParagraph","useOption","useFocusRing","mergeProps","Paragraph","useOverlay","DismissButton","FocusScope","SectionDivider","Divider","useListBoxSection","Heading","Section","useSelectState","useSelect","HiddenSelect","Menu","MenuList","MenuItem","IntlContext","StaticIntlProvider","ThemeManager","rootElementId","theme","makeCssVariableDefinitionsMap","createContext","SuccessIcon","IndicatorActiveIcon","IndicatorInactiveIcon","Tag","Brand","useMediaQueries","assetUrl","classNames","FormattedMessage","BrandMomentError"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/Button/subcomponents/GenericButton.tsx","../../src/Button/Button.tsx","../../src/SVG/icons/ClearIcon.tsx","../../src/ClearButton/ClearButton.tsx","../../src/BrandMoment/BrandMoment.tsx","../../src/SVG/icons/ArrowRightIcon.tsx","../../src/SVG/icons/EmailIcon.tsx","../../src/ErrorPage/hooks/useErrorMessages.ts","../../src/ErrorPage/ErrorPage.tsx","../../src/Filter/subcomponents/FilterPopover/FilterPopover.tsx","../../src/Filter/Filter.tsx","../../src/Filter/subcomponents/FilterContents/FilterContents.tsx","../../src/FilterBar/context/utils/getIsUsableWhenArgs.ts","../../src/FilterBar/context/utils/updateDependentFilters.ts","../../src/FilterBar/context/reducer/updateSingleFilter.ts","../../src/FilterBar/context/reducer/updateValues.ts","../../src/FilterBar/context/reducer/filterBarStateReducer.ts","../../src/FilterBar/context/reducer/setupFilterBarState.ts","../../src/FilterBar/context/utils/checkShouldUpdateValues.ts","../../src/FilterBar/context/utils/getInactiveFilters.ts","../../src/FilterBar/context/utils/getMappedFilters.ts","../../src/FilterBar/context/utils/getValidValue.ts","../../src/FilterBar/context/FilterBarContext.tsx","../../src/LabelledMessage/LabelledMessage.tsx","../../src/utils/getNodeText.ts","../../src/FilterDatePicker/utils/getDateValidationHandler.tsx","../../src/FilterDatePicker/utils/validateDate.ts","../../src/FilterDatePicker/hooks/useDateValidation.ts","../../src/FilterDatePicker/utils/transformDateToInputValue.ts","../../src/FilterDatePicker/hooks/useDateInputHandlers.ts","../../src/FilterDateRangePicker/subcomponents/DateInputDescription/utils/formatDescriptionInputFormat.ts","../../src/FilterDateRangePicker/subcomponents/DateInputDescription/DateInputDescription.tsx","../../src/FilterDatePicker/subcomponents/DateInputField/DateInputField.tsx","../../src/FilterDatePicker/subcomponents/FilterDatePickerField/filterDatePickerFieldReducer.tsx","../../src/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.tsx","../../src/FilterDatePicker/FilterDatePicker.tsx","../../src/SVG/icons/ChevronDownIcon.tsx","../../src/SVG/icons/ChevronUpIcon.tsx","../../src/utils/isRefObject.ts","../../src/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.tsx","../../src/FilterButton/FilterButton/FilterButton.tsx","../../src/ButtonGroup/ButtonGroup.tsx","../../src/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx","../../src/FilterBar/subcomponents/FilterBarButton/FilterBarButton.tsx","../../src/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.tsx","../../src/FilterDateRangePicker/subcomponents/DateRangeDisplayLabel/DateRangeDisplayLabel.tsx","../../src/FilterDateRangePicker/subcomponents/DateRangeValidationMessage/DateRangeValidationMessage.tsx","../../src/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.tsx","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/filterDateRangePickerFieldReducer.tsx","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/isValidRange.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.ts","../../src/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.tsx","../../src/FilterDateRangePicker/utils/isCompleteDateRange.ts","../../src/FilterDateRangePicker/FilterDateRangePicker.tsx","../../src/FilterBar/subcomponents/FilterBarDateRangePicker/FilterBarDateRangePicker.tsx","../../src/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.tsx","../../src/FilterMultiSelect/context/SelectionProvider/SelectionProvider.tsx","../../src/FilterMultiSelect/subcomponents/ListBox/ListBox.tsx","../../src/FilterMultiSelect/subcomponents/ListBoxSection/ListBoxSection.tsx","../../src/FilterMultiSelect/subcomponents/LoadMoreButton/LoadMoreButton.tsx","../../src/FilterMultiSelect/subcomponents/MenuLayout/MenuFooter/MenuFooter.tsx","../../src/FilterMultiSelect/subcomponents/MenuLayout/MenuLoadingSkeleton/MenuLoadingSkeleton.tsx","../../src/SVG/icons/CheckIcon.tsx","../../src/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.tsx","../../src/FilterMultiSelect/subcomponents/NoResults/NoResults.tsx","../../src/FilterMultiSelect/subcomponents/MenuPopup/MenuPopup.tsx","../../src/FilterMultiSelect/subcomponents/Root/Root.tsx","../../src/SVG/icons/SearchIcon.tsx","../../src/InputSearch/InputSearch.tsx","../../src/FilterMultiSelect/subcomponents/SearchInput/SearchInput.tsx","../../src/FilterMultiSelect/subcomponents/SectionDivider/SectionDivider.tsx","../../src/FilterMultiSelect/subcomponents/SelectionControlButton/ClearButton/ClearButton.tsx","../../src/FilterMultiSelect/subcomponents/SelectionControlButton/SelectAllButton/SelectAllButton.tsx","../../src/FilterMultiSelect/utils/getTruncatedLabel.ts","../../src/FilterMultiSelect/utils/getSelectedOptionLabels.ts","../../src/FilterMultiSelect/utils/getSelectedOptionKeys.ts","../../src/FilterMultiSelect/subcomponents/Trigger/FilterTriggerButton/FilterTriggerButton.tsx","../../src/FilterMultiSelect/subcomponents/Trigger/RemovableFilterTrigger/RemovableFilterTrigger.tsx","../../src/FilterMultiSelect/FilterMultiSelect.tsx","../../src/FilterBar/utils/checkArraysMatch.ts","../../src/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.tsx","../../src/FilterSelect/context/SelectContext.tsx","../../src/FilterSelect/subcomponents/ListBox/ListBox.tsx","../../src/FilterSelect/subcomponents/Option/Option.tsx","../../src/FilterSelect/subcomponents/ListBoxSection/ListBoxSection.tsx","../../src/FilterSelect/subcomponents/ListItem/ListItem.tsx","../../src/FilterSelect/subcomponents/ListItems/ListItems.tsx","../../src/FilterSelect/subcomponents/Overlay/Overlay.tsx","../../src/FilterSelect/subcomponents/SectionDivider/SectionDivider.tsx","../../src/FilterSelect/utils/isSelectOptionGroup.ts","../../src/FilterSelect/utils/transformSelectItemToCollectionElement.tsx","../../src/FilterSelect/FilterSelect.tsx","../../src/FilterBar/subcomponents/FilterBarSelect/FilterBarSelect.tsx","../../src/SVG/icons/AddIcon.tsx","../../src/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.tsx","../../src/FilterBar/subcomponents/ClearAllButton/ClearAllButton.tsx","../../src/FilterBar/FilterBar.tsx","../../src/KaizenProvider/OptionalIntlProvider/OptionalIntlProvider.tsx","../../src/KaizenProvider/ThemeProvider/ThemeManager.ts","../../src/KaizenProvider/ThemeProvider/themes/heart.ts","../../src/KaizenProvider/ThemeProvider/themes/index.ts","../../src/KaizenProvider/ThemeProvider/ThemeProvider.tsx","../../src/KaizenProvider/KaizenProvider.tsx","../../src/Workflow/subcomponents/Footer/components/Root/Root.tsx","../../src/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.tsx","../../src/Workflow/subcomponents/Footer/components/FooterActions/FooterActions.tsx","../../src/Workflow/subcomponents/Footer/Footer.tsx","../../src/Workflow/subcomponents/Header/components/Titles/Titles.tsx","../../src/Workflow/subcomponents/Header/components/Actions/Actions.tsx","../../src/Workflow/subcomponents/Header/components/Branding/Branding.tsx","../../src/Workflow/subcomponents/Header/components/Root/Root.tsx","../../src/Workflow/subcomponents/Header/Header.tsx","../../src/Workflow/subcomponents/Main/Main.tsx","../../src/Workflow/subcomponents/Wrapper/Wrapper.tsx","../../src/Workflow/Workflow.tsx"],"sourcesContent":["import React, {\n ComponentType,\n forwardRef,\n Ref,\n useImperativeHandle,\n useRef,\n MouseEvent,\n FocusEvent,\n} from \"react\"\nimport classnames from \"classnames\"\nimport { Badge, BadgeAnimated } from \"@kaizen/draft-badge\"\nimport { LoadingSpinner } from \"@kaizen/loading-spinner\"\nimport styles from \"./GenericButton.module.scss\"\n\nexport type CustomButtonProps = {\n id?: string\n className: string\n href?: string\n disabled?: boolean\n onClick?: (e: MouseEvent<any>) => void\n onFocus?: (e: FocusEvent<HTMLElement>) => void\n onBlur?: (e: FocusEvent<HTMLElement>) => void\n children?: React.ReactNode\n}\n\nexport type ButtonFormAttributes = Pick<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n | \"form\"\n | \"formAction\"\n | \"formMethod\"\n | \"formEncType\"\n | \"formTarget\"\n | \"formNoValidate\"\n>\n\nexport type GenericProps = {\n id?: string\n reversed?: boolean\n onClick?: (e: MouseEvent) => void\n onMouseDown?: (e: MouseEvent) => void\n href?: string\n newTabAndIUnderstandTheAccessibilityImplications?: boolean\n disableTabFocusAndIUnderstandTheAccessibilityImplications?: boolean\n onFocus?: (e: FocusEvent<HTMLElement>) => void\n onBlur?: (e: FocusEvent<HTMLElement>) => void\n component?: ComponentType<CustomButtonProps>\n classNameOverride?: string\n}\n\nexport type ButtonType = \"submit\" | \"reset\" | \"button\"\n\nexport type WorkingProps = {\n working: true\n workingLabel: string\n workingLabelHidden?: boolean\n}\n\nexport type WorkingUndefinedProps = {\n working?: false\n}\n\nexport type BadgeProps = {\n text: string\n animateChange?: boolean\n variant?: \"default\" | \"dark\" | \"active\"\n reversed?: boolean\n}\n\nexport type RenderProps = ButtonProps & {\n additionalContent?: React.ReactNode\n iconButton?: boolean\n directionalLink?: boolean\n paginationLink?: boolean\n isActive?: boolean\n}\n\nexport type ButtonRef = { focus: () => void }\n\nexport type ButtonProps = GenericProps &\n ButtonFormAttributes &\n (WorkingProps | WorkingUndefinedProps) & {\n label: string\n primary?: boolean\n destructive?: boolean\n secondary?: boolean\n /** @default \"regular\" */\n size?: \"small\" | \"regular\"\n badge?: BadgeProps\n type?: \"submit\" | \"reset\" | \"button\"\n fullWidth?: boolean\n iconPosition?: \"start\" | \"end\"\n icon?: JSX.Element\n disabled?: boolean\n }\n\n// We're treating custom props as anything that is kebab cased.\n// This is so we can support properties like aria-* or data-*\nconst getCustomProps = (props: Record<string, any>): Record<string, string> => {\n const keys = Object.keys(props).filter(k => k.indexOf(\"-\") !== -1)\n return keys.reduce<Record<string, any>>((acc, val) => {\n acc[val] = props[val]\n return acc\n }, {})\n}\n\nconst GenericButton = forwardRef(\n (props: RenderProps, ref: Ref<ButtonRef | undefined>) => {\n const buttonRef = useRef<HTMLButtonElement | HTMLAnchorElement>()\n useImperativeHandle(ref, () => ({\n focus: (): void => {\n buttonRef.current?.focus()\n },\n }))\n\n const determineButtonRenderer = (): JSX.Element => {\n if (props.component) {\n return renderCustomComponent(props.component, props)\n }\n\n if (props.href && !props.disabled && !props.working) {\n return renderLink(props, buttonRef as Ref<HTMLAnchorElement>)\n }\n\n return renderButton(props, buttonRef as Ref<HTMLButtonElement>)\n }\n\n return (\n <span\n className={classnames(\n styles.container,\n props.fullWidth && styles.fullWidth\n )}\n aria-live=\"polite\"\n >\n {determineButtonRenderer()}\n </span>\n )\n }\n)\n\nGenericButton.defaultProps = {\n iconPosition: \"start\",\n iconButton: false,\n primary: false,\n secondary: false,\n newTabAndIUnderstandTheAccessibilityImplications: false,\n disableTabFocusAndIUnderstandTheAccessibilityImplications: false,\n type: \"button\",\n}\nGenericButton.displayName = \"GenericButton\"\n\nconst renderCustomComponent = (\n CustomComponent: ComponentType<CustomButtonProps>,\n props: RenderProps\n): JSX.Element => {\n const { id, disabled, href, onClick, onFocus, onBlur, ...rest } = props\n const customProps = getCustomProps(rest)\n return (\n <CustomComponent\n id={id}\n className={buttonClass(props)}\n disabled={disabled}\n href={href}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n aria-label={generateAriaLabel(props)}\n {...customProps}\n >\n {renderContent(props)}\n </CustomComponent>\n )\n}\n\nconst renderButton = (\n props: RenderProps,\n ref: Ref<HTMLButtonElement>\n): JSX.Element => {\n const {\n id,\n disabled,\n onClick,\n onMouseDown,\n type,\n disableTabFocusAndIUnderstandTheAccessibilityImplications,\n onFocus,\n onBlur,\n form,\n formAction,\n formMethod,\n formEncType,\n formTarget,\n formNoValidate,\n ...rest\n } = props\n const customProps = getCustomProps(rest)\n\n return (\n <button\n // eslint-disable-next-line react/button-has-type\n type={type}\n id={id}\n disabled={disabled}\n className={buttonClass(props)}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n onMouseDown={(e): void => onMouseDown && onMouseDown(e)}\n aria-label={generateAriaLabel(props)}\n aria-disabled={disabled || props.working ? true : undefined}\n form={form}\n formAction={formAction}\n formMethod={formMethod}\n formEncType={formEncType}\n formTarget={formTarget}\n formNoValidate={formNoValidate}\n tabIndex={\n disableTabFocusAndIUnderstandTheAccessibilityImplications\n ? -1\n : undefined\n }\n ref={ref}\n {...customProps}\n >\n {renderContent(props)}\n </button>\n )\n}\n\nconst renderLink = (\n props: RenderProps,\n ref: Ref<HTMLAnchorElement>\n): JSX.Element => {\n const {\n id,\n href,\n onClick,\n newTabAndIUnderstandTheAccessibilityImplications,\n onFocus,\n onBlur,\n ...rest\n } = props\n const customProps = getCustomProps(rest)\n\n const target = newTabAndIUnderstandTheAccessibilityImplications\n ? \"_blank\"\n : \"_self\"\n\n return (\n <a\n id={id}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n className={buttonClass(props)}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={ref}\n aria-label={generateAriaLabel(props)}\n {...customProps}\n >\n {renderContent(props)}\n </a>\n )\n}\n\nconst buttonClass = (props: RenderProps): string => {\n const isDefault = !props.primary && !props.destructive && !props.secondary\n return classnames(\n styles.button,\n isDefault && styles.default,\n props.primary && styles.primary,\n props.destructive && styles.destructive,\n props.secondary && styles.secondary,\n props.size && styles[props.size],\n props.reversed && styles.reversed,\n props.iconButton && styles.iconButton,\n props.working && styles.working,\n (props.directionalLink || props.paginationLink) && styles.circleButton,\n props.directionalLink && styles.directionalLink,\n props.paginationLink && styles.paginationLink,\n props.isActive && styles.isPaginationLinkActive,\n props.classNameOverride\n )\n}\n\nconst renderLoadingSpinner = (): JSX.Element => (\n <div className={styles.loadingSpinner}>\n <LoadingSpinner accessibilityLabel=\"\" size=\"sm\" />\n </div>\n)\n\nconst renderWorkingContent = (\n props: Extract<RenderProps, { working: true }>\n): JSX.Element => {\n if (props.workingLabelHidden) {\n return (\n <>\n {/* This is to ensure the button stays at the correct width */}\n <span className={styles.hidden} aria-hidden=\"true\">\n {renderDefaultContent(props)}\n </span>\n <span className={styles.centeredLoadingSpinner}>\n {renderLoadingSpinner()}\n </span>\n </>\n )\n }\n\n return (\n <>\n {props.iconPosition !== \"end\" && renderLoadingSpinner()}\n <span className={styles.label}>{props.workingLabel}</span>\n {props.additionalContent && (\n <span className={styles.additionalContentWrapper}>\n {props.additionalContent}\n </span>\n )}\n {props.iconPosition === \"end\" && renderLoadingSpinner()}\n </>\n )\n}\n\nconst renderDefaultContent = (props: RenderProps): JSX.Element => (\n <>\n {props.icon && props.iconPosition !== \"end\" && renderIcon(props.icon)}\n {(!props.icon || !props.iconButton) && (\n <span className={styles.label}>{props.label}</span>\n )}\n {props.additionalContent && (\n <span className={styles.additionalContentWrapper}>\n {props.additionalContent}\n </span>\n )}\n {renderBadge(props)}\n {props.icon && props.iconPosition === \"end\" && renderIcon(props.icon)}\n </>\n)\n\nconst renderBadge = (props: RenderProps): JSX.Element | null => {\n if (!props.badge) return null\n\n const { text, animateChange, reversed, variant } = props.badge\n\n if (animateChange) {\n return (\n <BadgeAnimated variant={variant} reversed={reversed}>\n {text}\n </BadgeAnimated>\n )\n }\n return (\n <Badge variant={variant} reversed={reversed}>\n {text}\n </Badge>\n )\n}\n\nconst renderContent = (props: RenderProps): JSX.Element => (\n <span className={styles.content}>\n {props.working ? renderWorkingContent(props) : renderDefaultContent(props)}\n </span>\n)\n\nconst renderIcon = (icon: JSX.Element): JSX.Element => (\n <span className={styles.iconWrapper}>{icon}</span>\n)\n\n// We only want an aria-label in the case that the button has just an icon and no text\n// This can happen when the button is working and workingLabelHidden is true,\n// or when this is an IconButton\nconst generateAriaLabel = (props: RenderProps): string | undefined => {\n if (props.working && props.workingLabelHidden) {\n return props.workingLabel\n }\n\n if (props.iconButton) {\n return props.label\n }\n\n return undefined\n}\n\nexport default GenericButton\n","import React, { forwardRef, Ref } from \"react\"\n\nimport GenericButton, {\n ButtonProps,\n ButtonRef,\n} from \"./subcomponents/GenericButton\"\n\n/**\n * {@link https://cultureamp.design/components/button/ Guidance} |\n * {@link https://cultureamp.design/storybook/?path=/docs/components-button--default-kaizen-site-demo Storybook}\n */\nexport const Button = forwardRef(\n (props: ButtonProps, ref: Ref<ButtonRef | undefined>) => (\n <GenericButton {...props} ref={ref} />\n )\n)\n\nButton.defaultProps = {\n fullWidth: false,\n primary: false,\n secondary: false,\n destructive: false,\n disabled: false,\n reversed: false,\n iconPosition: \"start\",\n newTabAndIUnderstandTheAccessibilityImplications: false,\n}\n\nButton.displayName = \"Button\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const ClearIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fillRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M10 2c-4.424 0-8 3.576-8 8 0 4.424 3.576 8 8 8 4.424 0 8-3.576 8-8 0-4.424-3.576-8-8-8Zm4 10.872L12.872 14 10 11.128 7.128 14 6 12.872 8.872 10 6 7.128 7.128 6 10 8.872 12.872 6 14 7.128 11.128 10 14 12.872Z\"\n />\n </SVG>\n)\n","import React, { ButtonHTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { ClearIcon } from \"~components/SVG/icons/ClearIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./ClearButton.module.scss\"\n\nexport type ClearButtonProps = {\n isReversed?: boolean\n} & OverrideClassName<Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\">>\n\nexport const ClearButton = ({\n classNameOverride,\n isReversed = false,\n ...restProps\n}: ClearButtonProps): JSX.Element => (\n <button\n type=\"button\"\n aria-label=\"clear\"\n className={classnames(\n styles.clearButton,\n isReversed ? styles.reversed : styles.default,\n classNameOverride\n )}\n {...restProps}\n >\n <ClearIcon role=\"presentation\" />\n </button>\n)\n\nClearButton.displayName = \"ClearButton\"\n","import React, { ReactNode, ReactElement, HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { SceneProps } from \"@kaizen/draft-illustration\"\nimport { assetUrl } from \"@kaizen/hosted-assets\"\nimport { useMediaQueries } from \"@kaizen/responsive\"\nimport { Heading, Paragraph } from \"@kaizen/typography\"\nimport { Button, ButtonProps } from \"~components/Button\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./BrandMoment.module.scss\"\n\nexport type BrandMomentProps = {\n mood: \"informative\" | \"positive\" | \"negative\"\n illustration: ReactElement<SceneProps>\n header: ReactNode\n body?: ReactNode\n primaryAction?: ButtonProps\n secondaryAction?: ButtonProps\n text: {\n title: ReactNode\n subtitle?: ReactNode\n body?: ReactNode\n footer?: ReactNode\n }\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const BrandMoment = ({\n mood,\n illustration,\n header,\n body,\n primaryAction,\n secondaryAction,\n text,\n classNameOverride,\n ...restProps\n}: BrandMomentProps): JSX.Element => {\n const { queries } = useMediaQueries()\n\n return (\n <div\n className={classnames(styles.body, styles[mood], classNameOverride)}\n {...restProps}\n >\n <header className={styles.header}>{header}</header>\n <main className={styles.main}>\n <div className={styles.container}>\n <div className={styles.mainInner}>\n <div className={styles.left}>\n <div className={styles.leftInner}>{illustration}</div>\n </div>\n <div className={styles.right}>\n <div className={styles.rightInner}>\n {text.subtitle && (\n <Heading\n variant=\"heading-3\"\n tag=\"h1\"\n classNameOverride={styles.subtitle}\n >\n {text.subtitle}\n </Heading>\n )}\n <Heading\n variant=\"display-0\"\n tag={text.subtitle ? \"h2\" : \"h1\"}\n classNameOverride={styles.title}\n >\n {text.title}\n </Heading>\n {text.body && (\n <Paragraph\n variant=\"intro-lede\"\n classNameOverride={styles.textBody}\n >\n {text.body}\n </Paragraph>\n )}\n {body && <div className={styles.textBody}>{body}</div>}\n <div className={styles.actions}>\n {primaryAction && (\n <Button\n primary\n fullWidth={queries.isSmall}\n {...primaryAction}\n />\n )}\n {secondaryAction && (\n <div className={styles.secondaryAction}>\n <Button\n secondary\n fullWidth={queries.isSmall}\n {...secondaryAction}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </main>\n {text.footer && (\n <footer className={styles.footer}>\n <div className={styles.container}>\n <div className={styles.footerInner}>\n <div className={styles.poweredByContainer}>\n <Paragraph variant=\"extra-small\" color=\"dark-reduced-opacity\">\n Powered by\n </Paragraph>\n <a\n href=\"https://www.cultureamp.com\"\n className={styles.poweredByLogo}\n >\n <img\n src={assetUrl(\"brand/logo-horizontal-default.svg\")}\n alt=\"Culture Amp\"\n />\n </a>\n </div>\n <div className={styles.footerTextContainer}>\n <Paragraph variant=\"extra-small\">{text.footer}</Paragraph>\n </div>\n </div>\n </div>\n </footer>\n )}\n </div>\n )\n}\n\nBrandMoment.displayName = \"BrandMoment\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const ArrowRightIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"m12.5 5-1.179 1.179 2.987 2.987H2.5v1.667h11.808l-2.987 2.988L12.5 15l5-5.001z\"\n />\n </SVG>\n)\n\nArrowRightIcon.displayName = \"ArrowRightIcon\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const EmailIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"nonzero\"\n d=\"M16.4 3.5H3.6c-.88 0-1.592.72-1.592 1.6L2 14.7c0 .88.72 1.6 1.6 1.6h12.8c.88 0 1.6-.72 1.6-1.6V5.1c0-.88-.72-1.6-1.6-1.6Zm0 3.2-6.4 4-6.4-4V5.1l6.4 4 6.4-4v1.6Z\"\n />\n </SVG>\n)\n\nEmailIcon.displayName = \"EmailIcon\"\n","import { useIntl } from \"@cultureamp/i18n-react-intl\"\nexport const statusCodes = [\n \"400\",\n \"401\",\n \"403\",\n \"404\",\n \"422\",\n \"500\",\n \"502\",\n \"503\",\n \"504\",\n] as const\n\nexport type ErrorStatuses = (typeof statusCodes)[number]\ntype TranslationMap = Record<ErrorStatuses, { title: string; message: string }>\n\nexport const useErrorMessages = (\n code: ErrorStatuses\n): TranslationMap[ErrorStatuses] => {\n const { formatMessage } = useIntl()\n\n const translationsMap: TranslationMap = {\n 400: {\n title: formatMessage({\n id: \"kzErrorPage.400.title\",\n defaultMessage: \"Your request has slipped into the void\",\n description: \"Heading for page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.400.message\",\n defaultMessage:\n \"Sorry but your request couldn’t be completed. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 401: {\n title: formatMessage({\n id: \"kzErrorPage.401.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title for page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.401.message\",\n defaultMessage:\n \"Sorry but we can't verify if you're able to view this page. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 403: {\n title: formatMessage({\n id: \"kzErrorPage.403.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title for page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.403.message\",\n defaultMessage:\n \"Sorry but it looks like you don’t have permission to view this page. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 404: {\n title: formatMessage({\n id: \"kzErrorPage.404.title\",\n defaultMessage: \"Missing pages are one of life's mysteries\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.404.message\",\n defaultMessage:\n \"Sorry but we can't fing the page you're looking for. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 422: {\n title: formatMessage({\n id: \"kzErrorPage.422.title\",\n defaultMessage: \"Change never comes easy\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.422.message\",\n defaultMessage:\n \"Sorry but your change couldn't be made. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 500: {\n title: formatMessage({\n id: \"kzErrorPage.500.title\",\n defaultMessage: \"Something's gone wrong on our side\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.500\",\n defaultMessage:\n \"Sorry there's an issue with our system and this page can't be displayed. Go back and try again, or head to Home\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 502: {\n title: formatMessage({\n id: \"kzErrorPage.502.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.502.message\",\n defaultMessage:\n \"Sorry about this. The best thing to do is go back and try again.\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 503: {\n title: formatMessage({\n id: \"kzErrorPage.503.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.503.message\",\n defaultMessage:\n \"Sorry about this. The best thing to do is go back and try again.\",\n description: \"Call to action instructions for the user\",\n }),\n },\n 504: {\n title: formatMessage({\n id: \"kzErrorPage.504.title\",\n defaultMessage: \"You can't view this page\",\n description: \"Main title of page\",\n }),\n message: formatMessage({\n id: \"kzErrorPage.504.message\",\n defaultMessage:\n \"Sorry about this. The best thing to do is go back and try again.\",\n description: \"Call to action instructions for the user\",\n }),\n },\n }\n\n return (\n translationsMap[code] || {\n title: \"\",\n message: \"\",\n }\n )\n}\n","import React, { HTMLAttributes } from \"react\"\nimport { FormattedMessage, useIntl } from \"@cultureamp/i18n-react-intl\"\nimport classNames from \"classnames\"\nimport { BrandMomentError } from \"@kaizen/draft-illustration\"\nimport { Paragraph } from \"@kaizen/typography\"\nimport { BrandMoment } from \"~components/BrandMoment\"\nimport { ArrowRightIcon } from \"~components/SVG/icons/ArrowRightIcon\"\nimport { EmailIcon } from \"~components/SVG/icons/EmailIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ErrorStatuses, useErrorMessages } from \"./hooks\"\nimport styles from \"./ErrorPage.module.scss\"\n\nconst getMailToHref = (code: ErrorStatuses): string => {\n const supportEmail = \"support@cultureamp.com\"\n const subject = \"Houston we have a problem\"\n const body = `Hi there,\\n\\nI received a ${code} error page while I was trying to...`\n return encodeURI(`mailto:${supportEmail}?subject=${subject}&amp;body=${body}`)\n}\n\nconst HOME_HREF = \"/app/home\"\n\nexport type ErrorPageProps = {\n code: ErrorStatuses\n title?: string\n message?: React.ReactNode | string\n callToAction?: {\n onContactSupport: () => void\n homeHref?: string\n }\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const ErrorPage = ({\n code,\n title,\n message,\n callToAction,\n classNameOverride,\n}: ErrorPageProps): JSX.Element => {\n const { formatMessage } = useIntl()\n const content = useErrorMessages(code)\n\n const actions = {\n primary: { href: callToAction?.homeHref || HOME_HREF },\n secondary: callToAction?.onContactSupport\n ? { onClick: callToAction.onContactSupport }\n : { href: getMailToHref(code) },\n }\n\n return (\n <div className={classNames(classNameOverride)}>\n <BrandMoment\n header={<></>}\n body={\n <>\n <div className={styles.paragraphPadding}>\n <Paragraph variant=\"intro-lede\">\n {message || content.message}\n </Paragraph>\n </div>\n <Paragraph color=\"dark-reduced-opacity\" variant=\"small\">\n <FormattedMessage\n id=\"kzErrorPage.errorCode\"\n defaultMessage=\"Error code {code}\"\n values={{ code }}\n />\n </Paragraph>\n </>\n }\n illustration={<BrandMomentError isAnimated loop />}\n mood=\"negative\"\n primaryAction={{\n ...actions.primary,\n icon: <ArrowRightIcon role=\"presentation\" />,\n iconPosition: \"end\",\n label: formatMessage({\n id: \"kzErrorPage.goToHome\",\n defaultMessage: \"Go to Home\",\n description: \"Home button label\",\n }),\n }}\n secondaryAction={{\n ...actions.secondary,\n icon: <EmailIcon role=\"presentation\" />,\n label: formatMessage({\n id: \"kzErrorPage\",\n defaultMessage: \"Contact support\",\n description: \"Label for contact button\",\n }),\n }}\n text={{\n title: title || content.title,\n }}\n />\n </div>\n )\n}\n\nErrorPage.displayName = \"ErrorPage\"\n","import React, { HTMLAttributes, useState } from \"react\"\nimport { Options } from \"@popperjs/core\"\nimport classnames from \"classnames\"\nimport { usePopper } from \"react-popper\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FilterPopover.module.scss\"\n\nexport type FilterPopoverProps = {\n children: React.ReactNode\n referenceElement: HTMLElement | null\n popperOptions?: Partial<Options>\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const FilterPopover = ({\n children,\n referenceElement,\n popperOptions,\n classNameOverride,\n ...restProps\n}: FilterPopoverProps): JSX.Element => {\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(\n null\n )\n\n const { styles: popperStyles, attributes: popperAttributes } = usePopper(\n referenceElement,\n popperElement,\n {\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 15],\n },\n },\n ],\n placement: \"bottom-start\",\n ...popperOptions,\n }\n )\n\n return (\n <div\n ref={setPopperElement}\n style={popperStyles?.popper}\n {...popperAttributes?.popper}\n className={classnames(styles.filterPopover, classNameOverride)}\n role=\"dialog\"\n aria-modal=\"true\"\n {...restProps}\n >\n {children}\n </div>\n )\n}\n\nFilterPopover.displayName = \"FilterPopover\"\n","import React, { HTMLAttributes, useEffect, useRef, useState } from \"react\"\nimport { FocusOn } from \"react-focus-on\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { FilterPopover } from \"./subcomponents/FilterPopover\"\nimport { FilterTriggerRef } from \"./types\"\n\nexport type FilterProps = {\n children: React.ReactNode\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n renderTrigger: (triggerProps: {\n onClick: () => void\n isOpen: boolean\n }) => JSX.Element & { ref?: React.RefObject<FilterTriggerRef> }\n onMount?: (triggerRef: React.RefObject<HTMLButtonElement>) => void\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const Filter = ({\n children,\n isOpen,\n setIsOpen,\n renderTrigger,\n classNameOverride,\n onMount,\n ...restProps\n}: FilterProps): JSX.Element => {\n const [isRefLoaded, setIsRefLoaded] = useState<boolean>(false)\n\n const trigger = renderTrigger({\n onClick: (): void => setIsOpen(!isOpen),\n isOpen,\n })\n\n const inbuiltButtonRef = useRef<HTMLButtonElement>(null)\n const inbuiltRef = useRef<FilterTriggerRef>({\n triggerRef: inbuiltButtonRef,\n })\n const filterButtonRef = trigger.ref ?? inbuiltRef\n\n useEffect(() => {\n if (filterButtonRef.current?.triggerRef?.current) {\n setIsRefLoaded(true)\n onMount?.(filterButtonRef.current.triggerRef)\n }\n }, [filterButtonRef.current?.triggerRef?.current, onMount])\n\n return (\n <div className={classNameOverride} {...restProps}>\n {React.cloneElement(trigger, {\n ref: filterButtonRef,\n })}\n {isRefLoaded && isOpen && (\n <FocusOn\n scrollLock={false}\n onClickOutside={(): void => setIsOpen(false)}\n onEscapeKey={(): void => setIsOpen(false)}\n >\n <FilterPopover\n referenceElement={\n filterButtonRef.current?.triggerRef?.current || null\n }\n >\n {children}\n </FilterPopover>\n </FocusOn>\n )}\n </div>\n )\n}\n\nFilter.displayName = \"Filter\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FilterContents.module.scss\"\n\nexport type FilterContentsProps = {\n children: React.ReactNode\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const FilterContents = ({\n children,\n classNameOverride,\n ...restProps\n}: FilterContentsProps): JSX.Element => (\n <div\n className={classnames(styles.filterContents, classNameOverride)}\n {...restProps}\n >\n {children}\n </div>\n)\n\nFilterContents.displayName = \"FilterContents\"\n","import { SourceFiltersState, FiltersValues } from \"../../types\"\nimport { FilterBarState, InternalFilterState } from \"../types\"\n\nexport const getIsUsableWhenArgs = <ValuesMap extends FiltersValues>({\n filters,\n activeFilterIds,\n values,\n}: FilterBarState<ValuesMap>): SourceFiltersState<ValuesMap> =>\n Object.values(filters).reduce<SourceFiltersState<ValuesMap>>(\n (acc, { id, name }: InternalFilterState<ValuesMap, keyof ValuesMap>) => {\n acc[id] = {\n id,\n name,\n isActive: activeFilterIds.has(id),\n value: values[id],\n }\n return acc\n },\n {} as SourceFiltersState<ValuesMap>\n )\n","import { FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\nimport { getIsUsableWhenArgs } from \"./getIsUsableWhenArgs\"\n\nexport const updateDependentFilters = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>\n): FilterBarState<ValuesMap> => {\n if (state.dependentFilterIds.size === 0) return state\n\n let hasChange = false\n\n const args = getIsUsableWhenArgs(state)\n\n Array.from(state.dependentFilterIds).forEach(id => {\n const isUsable = state.filters[id].isUsableWhen!(args)\n\n const shouldUpdate = state.filters[id].isUsable !== isUsable\n if (!shouldUpdate) return\n\n hasChange = true\n state.filters[id].isUsable = isUsable\n\n if (!isUsable) {\n state.activeFilterIds.delete(id)\n state.values[id] = undefined\n state.hasUpdatedValues = true\n return\n }\n\n if (!state.filters[id].isRemovable || state.values[id] !== undefined) {\n state.activeFilterIds.add(id)\n }\n })\n\n if (hasChange) updateDependentFilters(state)\n\n return state\n}\n","import { FiltersValues } from \"../../types\"\nimport {\n FilterBarState,\n FilterBarStateFilters,\n FilterStateEditableAttributes,\n} from \"../types\"\n\nexport const updateSingleFilter = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n id: keyof ValuesMap,\n data: Partial<FilterStateEditableAttributes>\n): FilterBarStateFilters<ValuesMap> => ({\n ...state.filters,\n [id]: { ...state.filters[id], ...data },\n})\n","import { FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\nimport { updateDependentFilters } from \"../utils/updateDependentFilters\"\n\nexport const updateValues = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n values: Partial<ValuesMap>\n): FilterBarState<ValuesMap> => {\n Object.values(state.filters).forEach(({ id, isRemovable, isUsable }) => {\n if (isUsable && (!isRemovable || values[id] !== undefined)) {\n state.activeFilterIds.add(id)\n }\n })\n\n return updateDependentFilters({ ...state, hasUpdatedValues: true, values })\n}\n","import { FiltersValues } from \"../../types\"\nimport { FilterBarState, FilterStateEditableAttributes } from \"../types\"\nimport { updateDependentFilters } from \"../utils/updateDependentFilters\"\nimport { updateSingleFilter } from \"./updateSingleFilter\"\nimport { updateValues } from \"./updateValues\"\n\ntype Actions<ValuesMap extends FiltersValues> =\n | { type: \"update_values\"; values: Partial<ValuesMap> }\n | { type: \"complete_update_values\" }\n | {\n type: \"update_single_filter\"\n id: keyof ValuesMap\n data: Partial<FilterStateEditableAttributes>\n }\n | { type: \"activate_filter\"; id: keyof ValuesMap }\n | { type: \"deactivate_filter\"; id: keyof ValuesMap }\n\nexport const filterBarStateReducer = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n action: Actions<ValuesMap>\n): FilterBarState<ValuesMap> => {\n switch (action.type) {\n case \"update_values\":\n return { ...updateValues(state, action.values) }\n\n case \"complete_update_values\":\n return {\n ...state,\n hasUpdatedValues: false,\n }\n\n case \"update_single_filter\":\n return {\n ...state,\n filters: updateSingleFilter(state, action.id, action.data),\n }\n\n case \"activate_filter\":\n state.activeFilterIds.add(action.id)\n return { ...updateDependentFilters(state) }\n\n case \"deactivate_filter\":\n state.activeFilterIds.delete(action.id)\n state.values[action.id] = undefined\n return {\n ...updateDependentFilters(state),\n hasUpdatedValues: true,\n }\n }\n}\n","import { Filters, FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\nimport { updateDependentFilters } from \"../utils/updateDependentFilters\"\n\nexport const setupFilterBarState = <ValuesMap extends FiltersValues>(\n filters: Filters<ValuesMap>,\n values: Partial<ValuesMap>\n): FilterBarState<ValuesMap> => {\n const state = filters.reduce<FilterBarState<ValuesMap>>(\n (baseState, { id, name, isRemovable, isUsableWhen }) => {\n const hasDependency = isUsableWhen !== undefined\n\n baseState.filters[id] = {\n id,\n name,\n isRemovable: isRemovable ?? false,\n isUsableWhen,\n isOpen: false,\n isUsable: true,\n }\n\n if (hasDependency) {\n baseState.dependentFilterIds.add(id)\n }\n\n if (!isRemovable || values[id] !== undefined) {\n baseState.activeFilterIds.add(id)\n }\n\n return baseState\n },\n {\n filters: {},\n activeFilterIds: new Set(),\n values,\n dependentFilterIds: new Set(),\n hasUpdatedValues: false,\n } as FilterBarState<ValuesMap>\n )\n\n return updateDependentFilters(state)\n}\n","import { FiltersValues } from \"~components/FilterBar/types\"\nimport { FilterBarState } from \"../types\"\n\nconst checkArraysMatch = (a1: any[], a2: any[]): boolean => {\n if (a1.length !== a2.length) return false\n return a1.every((v, i) => v === a2[i])\n}\n\nexport const checkShouldUpdateValues = <ValuesMap extends FiltersValues>(\n state: FilterBarState<ValuesMap>,\n values: Partial<ValuesMap>\n): boolean =>\n Object.values(state.filters).some(({ id }) => {\n const stateValue = state.values[id]\n const value = values[id]\n\n if (Array.isArray(stateValue) && Array.isArray(value)) {\n return !checkArraysMatch(stateValue, value)\n }\n\n return stateValue !== value\n })\n","import { FilterAttributes, FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\n\nexport const getInactiveFilters = <ValuesMap extends FiltersValues>({\n filters,\n activeFilterIds,\n}: FilterBarState<ValuesMap>): Array<FilterAttributes<ValuesMap>> =>\n Object.values(filters).filter(\n ({ id, isUsable }) => isUsable && !activeFilterIds.has(id)\n )\n","import { Filters, FiltersValues } from \"../../types\"\nimport { MappedFilters } from \"../types\"\n\nexport const getMappedFilters = <ValuesMap extends FiltersValues>(\n filters: Filters<ValuesMap>\n): MappedFilters<ValuesMap> =>\n filters.reduce<MappedFilters<ValuesMap>>(\n (acc, filter) => ({ ...acc, [filter.id]: filter }),\n {} as MappedFilters<ValuesMap>\n )\n","export const getValidValue = <Value>(value: Value): Value | undefined => {\n if (typeof value === \"object\" && JSON.stringify(value) === \"{}\")\n return undefined\n\n if (Array.isArray(value) && value.length === 0) return undefined\n\n return value\n}\n","import React, { useContext, useEffect, useMemo, useReducer } from \"react\"\nimport { FilterAttributes, FilterState, Filters, FiltersValues } from \"../types\"\nimport { filterBarStateReducer } from \"./reducer/filterBarStateReducer\"\nimport { setupFilterBarState } from \"./reducer/setupFilterBarState\"\nimport { ActiveFiltersArray } from \"./types\"\nimport { checkShouldUpdateValues } from \"./utils/checkShouldUpdateValues\"\nimport { getInactiveFilters } from \"./utils/getInactiveFilters\"\nimport { getMappedFilters } from \"./utils/getMappedFilters\"\nimport { getValidValue } from \"./utils/getValidValue\"\n\nexport type FilterBarContextValue<\n Value,\n ValuesMap extends FiltersValues = Record<string, Value>,\n> = {\n getFilterState: <Id extends keyof ValuesMap>(\n id: Id\n ) => FilterState<keyof ValuesMap, ValuesMap[Id]>\n getActiveFilterValues: () => Partial<ValuesMap>\n /**\n * @deprecated Use `setFilterOpenState` instead.\n */\n toggleOpenFilter: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ) => void\n setFilterOpenState: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ) => void\n openFilter: <Id extends keyof ValuesMap>(id: Id) => void\n updateValue: <Id extends keyof ValuesMap>(\n id: Id,\n value: ValuesMap[Id]\n ) => void\n showFilter: <Id extends keyof ValuesMap>(id: Id) => void\n hideFilter: <Id extends keyof ValuesMap>(id: Id) => void\n getInactiveFilters: () => Array<FilterAttributes<ValuesMap>>\n clearAllFilters: () => void\n}\n\nconst FilterBarContext = React.createContext<FilterBarContextValue<any> | null>(\n null\n)\n\nexport const useFilterBarContext = <\n Value,\n Values extends FiltersValues = Record<string, Value>,\n>(): FilterBarContextValue<Value, Values> => {\n const context = useContext(FilterBarContext)\n\n if (!context) {\n throw new Error(\n \"useFilterBarContext must be used within the FilterBarContext.Provider\"\n )\n }\n\n return context as FilterBarContextValue<Value, Values>\n}\n\nexport type FilterBarProviderProps<ValuesMap extends FiltersValues> = {\n children: (activeFilters: ActiveFiltersArray<ValuesMap>) => JSX.Element\n filters: Filters<ValuesMap>\n values: Partial<ValuesMap>\n onValuesChange: (values: Partial<ValuesMap>) => void\n}\n\nexport const FilterBarProvider = <ValuesMap extends FiltersValues>({\n children,\n filters,\n values,\n onValuesChange,\n}: FilterBarProviderProps<ValuesMap>): JSX.Element => {\n const mappedFilters = useMemo(() => getMappedFilters(filters), [filters])\n\n const [state, dispatch] = useReducer(\n filterBarStateReducer<ValuesMap>,\n setupFilterBarState<ValuesMap>(filters, values)\n )\n\n const value = {\n getFilterState: <Id extends keyof ValuesMap>(id: Id) => ({\n ...state.filters[id],\n isActive: state.activeFilterIds.has(id),\n value: values[id],\n }),\n getActiveFilterValues: () => values,\n toggleOpenFilter: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ): void => {\n dispatch({ type: \"update_single_filter\", id, data: { isOpen } })\n },\n setFilterOpenState: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ): void => {\n dispatch({ type: \"update_single_filter\", id, data: { isOpen } })\n },\n openFilter: <Id extends keyof ValuesMap>(id: Id): void => {\n dispatch({ type: \"update_single_filter\", id, data: { isOpen: true } })\n },\n updateValue: <Id extends keyof ValuesMap>(\n id: Id,\n newValue: ValuesMap[Id]\n ): void => {\n dispatch({\n type: \"update_values\",\n values: { ...values, [id]: getValidValue(newValue) },\n })\n },\n showFilter: <Id extends keyof ValuesMap>(id: Id): void =>\n dispatch({ type: \"activate_filter\", id }),\n hideFilter: <Id extends keyof ValuesMap>(id: Id): void => {\n dispatch({ type: \"deactivate_filter\", id })\n },\n getInactiveFilters: () => getInactiveFilters<ValuesMap>(state),\n clearAllFilters: () => {\n state.activeFilterIds.forEach(id => {\n if (mappedFilters[id].isRemovable)\n dispatch({ type: \"deactivate_filter\", id })\n })\n dispatch({ type: \"update_values\", values: {} })\n },\n } satisfies FilterBarContextValue<any, ValuesMap>\n\n useEffect(() => {\n const shouldUpdate = checkShouldUpdateValues<ValuesMap>(state, values)\n if (shouldUpdate) dispatch({ type: \"update_values\", values: { ...values } })\n }, [values])\n\n useEffect(() => {\n if (state.hasUpdatedValues) {\n onValuesChange({ ...state.values })\n dispatch({ type: \"complete_update_values\" })\n }\n }, [state])\n\n const activeFilters = Array.from(\n state.activeFilterIds,\n id => mappedFilters[id]\n )\n\n return (\n <FilterBarContext.Provider\n // @note: Context object cannot be generic, thus the type-casting to a looser type\n value={value as FilterBarContextValue<any, Record<string, any>>}\n >\n {children(activeFilters)}\n </FilterBarContext.Provider>\n )\n}\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./LabelledMessage.module.scss\"\n\nexport type LabelledMessageProps = {\n label: string | React.ReactElement\n message: string | React.ReactElement\n} & OverrideClassName<HTMLAttributes<HTMLSpanElement>>\n\nexport const LabelledMessage = ({\n label,\n message,\n classNameOverride,\n ...restProps\n}: LabelledMessageProps): JSX.Element => (\n <span\n className={classnames(styles.labelledMessage, classNameOverride)}\n {...restProps}\n >\n <span>{label}</span>\n <span className={styles.labelSeparator}>:</span>\n <span>{message}</span>\n </span>\n)\n\nLabelledMessage.displayName = \"LabelledMessage\"\n","import React from \"react\"\n\n// Adapted from https://stackoverflow.com/a/60564620\nexport const getNodeText = (node: React.ReactNode): string | number => {\n if (!node) return \"\"\n if (typeof node === \"string\" || typeof node === \"number\") return node\n if (node instanceof Array) return node.map(getNodeText).join(\"\")\n if (React.isValidElement(node)) return getNodeText(node.props.children)\n return \"\"\n}\n","import React from \"react\"\nimport { LabelledMessage } from \"~components/LabelledMessage\"\nimport { getNodeText } from \"~utils/getNodeText\"\nimport { DateValidationResponse, ValidationMessage } from \"../types\"\n\nexport type GetDateValidationHandlerArgs = {\n onValidate: ((validationResponse: DateValidationResponse) => void) | undefined\n setInbuiltValidationMessage: (\n validationMessage: ValidationMessage | undefined\n ) => void\n inputLabel?: React.ReactNode\n}\n\nexport const getDateValidationHandler =\n ({\n onValidate,\n setInbuiltValidationMessage,\n inputLabel,\n }: GetDateValidationHandlerArgs) =>\n (validationResponse: DateValidationResponse): void => {\n if (onValidate) return onValidate(validationResponse)\n\n const { validationMessage } = validationResponse\n\n if (!validationMessage) {\n setInbuiltValidationMessage(undefined)\n return\n }\n\n setInbuiltValidationMessage({\n status: validationMessage.status,\n message: inputLabel ? (\n <LabelledMessage\n label={`${getNodeText(inputLabel)}`}\n message={validationMessage.message}\n />\n ) : (\n validationMessage.message\n ),\n })\n }\n","import {\n validateDate as dpValidateDate,\n ValidateDateArgs,\n} from \"@kaizen/date-picker/src/utils/validateDate\"\nimport { DateValidationResponse } from \"../types\"\n\nexport type ValidateDateResponse = {\n validationResponse: DateValidationResponse\n newDate: Date | undefined\n}\n\nexport const validateDate = (args: ValidateDateArgs): ValidateDateResponse => {\n const response = dpValidateDate(args)\n\n const { status, validationMessage, ...rest } = response.validationResponse\n\n return {\n ...response,\n validationResponse: {\n ...rest,\n validationMessage:\n status && validationMessage\n ? { status, message: validationMessage }\n : undefined,\n },\n }\n}\n","import { useState } from \"react\"\nimport { DisabledDays } from \"~types/DatePicker\"\nimport { ValidationMessage, DateValidationResponse } from \"../types\"\nimport { getDateValidationHandler } from \"../utils/getDateValidationHandler\"\nimport { validateDate } from \"../utils/validateDate\"\n\nexport type UseDateValidationArgs = {\n inputLabel?: React.ReactNode\n disabledDays?: DisabledDays\n validationMessage?: ValidationMessage\n onValidate?: (validationResponse: DateValidationResponse) => void\n}\n\nexport type UseDateValidationValue = {\n validationMessage: ValidationMessage | undefined\n validateDate: (args: {\n date: Date | undefined\n inputValue: string\n }) => ReturnType<typeof validateDate>\n updateValidation: (validationResponse: DateValidationResponse) => void\n}\n\nexport const useDateValidation = ({\n inputLabel,\n disabledDays,\n validationMessage,\n onValidate,\n}: UseDateValidationArgs): UseDateValidationValue => {\n const [inbuiltValidationMessage, setInbuiltValidationMessage] = useState<\n ValidationMessage | undefined\n >()\n\n const shouldUseInbuiltDateValidation = onValidate === undefined\n\n const updateValidation = getDateValidationHandler({\n onValidate,\n setInbuiltValidationMessage,\n inputLabel,\n })\n\n const validateSingleDate: UseDateValidationValue[\"validateDate\"] = ({\n date,\n inputValue,\n }) =>\n validateDate({\n date,\n inputValue,\n disabledDays,\n })\n\n return {\n validationMessage: shouldUseInbuiltDateValidation\n ? inbuiltValidationMessage\n : validationMessage,\n validateDate: validateSingleDate,\n updateValidation,\n }\n}\n","import { DisabledDays, formatDateAsText } from \"@kaizen/date-picker\"\n\nexport const transformDateToInputValue = (\n date: Date | undefined,\n disabledDays: DisabledDays,\n locale: Locale\n): string => (date ? formatDateAsText(date, disabledDays, locale) : \"\")\n","import {\n DateInputProps,\n formatDateAsText,\n isInvalidDate,\n} from \"@kaizen/date-picker\"\nimport { formatDateAsNumeral } from \"@kaizen/date-picker/src/utils/formatDateAsNumeral\"\nimport { isDisabledDate } from \"@kaizen/date-picker/src/utils/isDisabledDate\"\nimport { isSelectingDayInCalendar } from \"@kaizen/date-picker/src/utils/isSelectingDayInCalendar\"\nimport { parseDateFromNumeralFormatValue } from \"@kaizen/date-picker/src/utils/parseDateFromNumeralFormatValue\"\nimport { parseDateFromTextFormatValue } from \"@kaizen/date-picker/src/utils/parseDateFromTextFormatValue\"\nimport { DisabledDays } from \"~types/DatePicker\"\n\ntype UseDateInputHandlersArgs = {\n locale: Locale\n disabledDays?: DisabledDays\n setInputValue: (value: string) => void\n onDateChange: (date: Date | undefined) => void\n onDateSubmit?: (date: Date) => void\n onChange?: DateInputProps[\"onChange\"]\n onFocus?: DateInputProps[\"onFocus\"]\n onBlur?: DateInputProps[\"onBlur\"]\n onKeyDown?: DateInputProps[\"onKeyDown\"]\n}\n\ntype UseDateInputHandlersValue = {\n onChange: DateInputProps[\"onChange\"]\n onFocus: DateInputProps[\"onFocus\"]\n onBlur: DateInputProps[\"onBlur\"]\n onKeyDown: DateInputProps[\"onKeyDown\"]\n}\n\nexport const useDateInputHandlers = ({\n locale,\n disabledDays,\n setInputValue,\n onDateChange,\n onDateSubmit,\n onChange,\n onFocus,\n onBlur,\n onKeyDown,\n}: UseDateInputHandlersArgs): UseDateInputHandlersValue => {\n const isValidDate = (date: Date): boolean =>\n !isInvalidDate(date) && !isDisabledDate(date, disabledDays)\n\n const handleChange: DateInputProps[\"onChange\"] = e => {\n setInputValue(e.currentTarget.value)\n onChange?.(e)\n }\n\n const handleFocus: DateInputProps[\"onFocus\"] = e => {\n const date = parseDateFromTextFormatValue(e.currentTarget.value, locale)\n if (!isInvalidDate(date)) {\n const newInputValue = formatDateAsNumeral(date, locale)\n setInputValue(newInputValue)\n }\n onFocus?.(e)\n }\n\n const handleBlur: DateInputProps[\"onBlur\"] = e => {\n if (isSelectingDayInCalendar(e.relatedTarget)) return\n\n if (e.currentTarget.value === \"\") {\n onDateChange(undefined)\n onBlur?.(e)\n return\n }\n\n const date = parseDateFromNumeralFormatValue(e.currentTarget.value, locale)\n\n if (isValidDate(date)) {\n const newInputValue = formatDateAsText(date, disabledDays, locale)\n setInputValue(newInputValue)\n }\n\n onDateChange(date)\n onBlur?.(e)\n }\n\n const handleKeyDown: DateInputProps[\"onKeyDown\"] = e => {\n if (e.key === \"Enter\") {\n e.preventDefault()\n const date = parseDateFromNumeralFormatValue(\n e.currentTarget.value,\n locale\n )\n onDateChange(date)\n onDateSubmit?.(date)\n }\n onKeyDown?.(e)\n }\n\n return {\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n }\n}\n","export const formatDescriptionInputFormat = (locale: Locale): string =>\n locale.formatLong?.date({ width: \"short\" }).toLowerCase()\n","import React from \"react\"\nimport { useIntl } from \"@cultureamp/i18n-react-intl\"\nimport { LabelledMessage } from \"~components/LabelledMessage\"\nimport { formatDescriptionInputFormat } from \"./utils/formatDescriptionInputFormat\"\nimport styles from \"./DateInputDescription.module.scss\"\n\nexport type DateInputDescriptionProps = {\n description?: string | JSX.Element\n locale: Locale\n}\n\nexport const DateInputDescription = ({\n description,\n locale,\n}: DateInputDescriptionProps): JSX.Element => {\n const { formatMessage } = useIntl()\n const hasCustomDescription =\n (typeof description === \"string\" && description !== \"\") ||\n React.isValidElement(description)\n\n const translatedInputFormatMessage = formatMessage({\n id: \"filterDateRangePicker.inputFormat\",\n defaultMessage: \"Input format\",\n description: \"Label for the 'Input format' field\",\n })\n\n if (hasCustomDescription) {\n return (\n <span className={styles.dateInputDescription}>\n <span>{description}</span>\n <span className={styles.dateInputFormatContainer}>\n (\n <LabelledMessage\n label={translatedInputFormatMessage}\n message={formatDescriptionInputFormat(locale)}\n />\n )\n </span>\n </span>\n )\n }\n\n return (\n <LabelledMessage\n label={translatedInputFormatMessage}\n message={formatDescriptionInputFormat(locale)}\n />\n )\n}\n\nDateInputDescription.displayName = \"DateInputDescription\"\n","import React from \"react\"\nimport { DateInput, DateInputProps } from \"@kaizen/date-picker\"\nimport { FieldMessage } from \"@kaizen/draft-form\"\nimport {\n DateInputDescription,\n DateInputDescriptionProps,\n} from \"~components/FilterDateRangePicker/subcomponents/DateInputDescription\"\nimport { ValidationMessage } from \"../../types\"\nimport styles from \"./DateInputField.module.scss\"\n\nexport type DateInputFieldProps = {\n id: string\n locale: Locale\n /**\n * A description that provides context for the text field\n */\n description?: DateInputDescriptionProps[\"description\"]\n isReversed?: boolean\n validationMessage?: ValidationMessage\n disabled?: boolean\n labelText?: DateInputProps[\"labelText\"]\n} & Omit<DateInputProps, \"id\" | \"labelText\">\n\nexport const DateInputField = React.forwardRef<\n HTMLInputElement,\n DateInputFieldProps\n>(\n (\n {\n id,\n labelText,\n description,\n disabled,\n isReversed = false,\n validationMessage,\n locale,\n classNameOverride,\n ...restProps\n },\n ref\n ) => {\n const descriptionId = `${id}--field-message`\n\n const errorMessageId = validationMessage\n ? `${id}--date-error-message`\n : undefined\n\n const inputDescribedBy = errorMessageId\n ? `${errorMessageId} ${descriptionId}`\n : descriptionId\n\n const dateIsInvalid = errorMessageId !== undefined\n\n return (\n <div>\n <DateInput\n ref={ref}\n id={id}\n labelText={labelText || \"Date\"}\n aria-describedby={inputDescribedBy}\n aria-errormessage={errorMessageId}\n aria-invalid={dateIsInvalid}\n autoComplete=\"off\"\n disabled={disabled}\n status={validationMessage?.status}\n classNameOverride={classNameOverride}\n {...restProps}\n />\n\n {validationMessage && (\n <FieldMessage\n id={errorMessageId}\n message={validationMessage?.message}\n status={validationMessage?.status}\n reversed={isReversed}\n />\n )}\n\n <FieldMessage\n id={descriptionId}\n message={\n <DateInputDescription description={description} locale={locale} />\n }\n reversed={isReversed}\n classNameOverride={disabled ? styles.disabled : undefined}\n />\n </div>\n )\n }\n)\n\nDateInputField.displayName = \"DateInputField\"\n","import { isInvalidDate } from \"@kaizen/date-picker\"\n\ntype DateFieldActions =\n | {\n type: \"update_selected_date\"\n date: Date | undefined\n inputValue?: string\n }\n | {\n type: \"navigate_months\"\n date: Date | undefined\n }\n | {\n type: \"update_input_field\"\n inputValue: string\n }\n\ntype FilterDatePickerState = {\n selectedDate: Date | undefined\n inputValue: string\n startMonth: Date\n}\n\nexport const filterDatePickerFieldReducer = (\n state: FilterDatePickerState,\n action: DateFieldActions\n): FilterDatePickerState => {\n switch (action.type) {\n case \"update_selected_date\":\n return {\n ...state,\n selectedDate: action.date,\n inputValue:\n action.inputValue === undefined\n ? state.inputValue\n : action.inputValue,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n\n case \"navigate_months\":\n return {\n ...state,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n\n case \"update_input_field\":\n return {\n ...state,\n inputValue: action.inputValue,\n }\n }\n}\n","import React, { HTMLAttributes, useEffect, useReducer, useState } from \"react\"\nimport classnames from \"classnames\"\nimport { v4 } from \"uuid\"\nimport {\n CalendarSingle,\n CalendarSingleProps,\n isInvalidDate,\n getLocale,\n} from \"@kaizen/date-picker\"\nimport { FilterProps } from \"~components/Filter\"\nimport { useDateValidation } from \"~components/FilterDatePicker/hooks/useDateValidation\"\nimport { transformDateToInputValue } from \"~components/FilterDatePicker/utils/transformDateToInputValue\"\nimport { DateInputDescriptionProps } from \"~components/FilterDateRangePicker/subcomponents/DateInputDescription\"\nimport { DataAttributes } from \"~types/DataAttributes\"\nimport { DisabledDays, FilterDateSupportedLocales } from \"~types/DatePicker\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { useDateInputHandlers } from \"../../hooks/useDateInputHandlers\"\nimport { DateValidationResponse, ValidationMessage } from \"../../types\"\nimport { DateInputField, DateInputFieldProps } from \"../DateInputField\"\nimport { filterDatePickerFieldReducer } from \"./filterDatePickerFieldReducer\"\nimport styles from \"./FilterDatePickerField.module.scss\"\n\ntype FilterInputProps<InputProps> = Omit<Partial<InputProps>, \"value\"> &\n DataAttributes\n\nexport type FilterDatePickerFieldProps = {\n id?: string\n locale: FilterDateSupportedLocales\n /**\n * Sets first displayed month to month of provided date if there isn't a date set.\n */\n defaultMonth?: CalendarSingleProps[\"defaultMonth\"]\n /**\n * The date range passed in from the consumer that renders in the inputs and calendar.\n */\n selectedDate: Date | undefined\n /**\n * Callback when date is updated either by the calendar picker or by typing and blurring.\n * Date will return as `undefined` if empty, invalid or disabled.\n */\n onDateChange: (date: Date | undefined) => void\n /**\n * Callback when date is saved/committed/submitted valid date by either by the calendar picker or by typing and blurring.\n * Date will return as `undefined` if empty, invalid or disabled.\n *\n * Distinctly different from `change` where that is triggered on any kind of event, we expect the final valid date in this function.\n */\n onDateSubmit?: (date: Date | undefined) => void\n /**\n * See https://react-day-picker.js.org/api/types/Matcher\n */\n disabledDays?: DisabledDays\n inputProps?: FilterInputProps<DateInputFieldProps>\n /**\n * Custom description to provide extra context (input format help text remains).\n */\n description?: DateInputDescriptionProps[\"description\"]\n validationMessage?: ValidationMessage\n /**\n * Callback when a date is selected. Utilises internal validation if not set.\n */\n onValidate?: (validationResponse: DateValidationResponse) => void\n setIsFilterOpen?: FilterProps[\"setIsOpen\"]\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const FilterDatePickerField = ({\n id: propsId,\n inputProps,\n locale: propsLocale,\n defaultMonth,\n selectedDate,\n onDateChange,\n onDateSubmit,\n disabledDays,\n description,\n validationMessage,\n onValidate,\n classNameOverride,\n ...restProps\n}: FilterDatePickerFieldProps): JSX.Element => {\n const [id] = useState<string>(propsId || v4())\n const locale = getLocale(propsLocale)\n\n const dateValidation = useDateValidation({\n disabledDays,\n validationMessage,\n onValidate,\n })\n\n const validateDate = (\n date: Date | undefined,\n inputValue: string\n ): Date | undefined => {\n const { validationResponse, newDate } = dateValidation.validateDate({\n date,\n inputValue,\n })\n dateValidation.updateValidation(validationResponse)\n\n return newDate\n }\n\n const [state, dispatch] = useReducer(filterDatePickerFieldReducer, {\n selectedDate,\n inputValue:\n transformDateToInputValue(selectedDate, disabledDays, locale) || \"\",\n startMonth:\n selectedDate && !isInvalidDate(selectedDate)\n ? selectedDate\n : defaultMonth || new Date(),\n })\n\n const handleDateChange = (date: Date | undefined): void => {\n onDateChange(date)\n }\n\n const inputDateHandlers = useDateInputHandlers({\n locale,\n disabledDays,\n setInputValue: value => {\n dispatch({\n type: \"update_input_field\",\n inputValue: value,\n })\n },\n onDateChange: date => {\n // Because the input value is being tracked in the state as the user types\n // we can reliably utilise state.inputValue as part of the validation message,\n // which is triggered by `onBlur` function\n const newDate = validateDate(date, state.inputValue)\n\n dispatch({\n type: \"update_selected_date\",\n date: newDate,\n })\n\n handleDateChange(newDate)\n },\n onDateSubmit: date => {\n // Only provide consumers with a valid date to the `onDateSubmit` function\n if (!isInvalidDate(date)) {\n onDateSubmit?.(date)\n }\n },\n ...inputProps,\n })\n\n const handleCalendarSelect: CalendarSingleProps[\"onSelect\"] = date => {\n // Transforming the date to an InputValue and validating the date with the result\n // can operate in this order because we are guaranteed a valid date from the calendar.\n //\n // In all other scenarios, this won't work as the return string from an invalid date\n // would be \"Invalid Date\" and not the actual value entered by the user since we want\n // the final error message to use the typed word from the user.\n const inputValue = transformDateToInputValue(date, disabledDays, locale)\n const newDate = validateDate(date, inputValue)\n\n dispatch({\n type: \"update_selected_date\",\n date: newDate,\n })\n\n dispatch({\n type: \"update_input_field\",\n inputValue,\n })\n\n handleDateChange(newDate)\n onDateSubmit?.(newDate)\n }\n\n useEffect(() => {\n validateDate(selectedDate, state.inputValue)\n }, [])\n\n return (\n <div\n className={classnames(styles.filterDatePickerField, classNameOverride)}\n {...restProps}\n >\n <DateInputField\n id={`${id}--input`}\n locale={locale}\n value={state.inputValue}\n description={description}\n validationMessage={dateValidation.validationMessage}\n {...inputDateHandlers}\n {...inputProps}\n />\n <CalendarSingle\n disabled={disabledDays}\n locale={locale}\n selected={state.selectedDate}\n onSelect={handleCalendarSelect}\n month={state.startMonth}\n onMonthChange={(value: Date) =>\n dispatch({ type: \"navigate_months\", date: value })\n }\n />\n </div>\n )\n}\n","import React from \"react\"\nimport { formatDateAsText, getLocale } from \"@kaizen/date-picker\"\nimport { Filter, FilterContents, FilterProps } from \"../Filter\"\nimport { FilterButtonProps } from \"../FilterButton\"\nimport {\n FilterDatePickerField,\n FilterDatePickerFieldProps,\n} from \"./subcomponents/FilterDatePickerField\"\n\nexport type FilterDatePickerProps = {\n id?: string\n label: string\n isOpen: FilterProps[\"isOpen\"]\n setIsOpen: FilterProps[\"setIsOpen\"]\n renderTrigger: (triggerProps: FilterButtonProps) => JSX.Element\n} & Omit<FilterDatePickerFieldProps, \"id\">\n\nexport const FilterDatePicker = ({\n isOpen,\n setIsOpen,\n renderTrigger,\n selectedDate,\n label,\n locale,\n onDateSubmit,\n ...restProps\n}: FilterDatePickerProps): JSX.Element => (\n <Filter\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n renderTrigger={(triggerProps): JSX.Element =>\n renderTrigger({\n selectedValue: selectedDate\n ? formatDateAsText(selectedDate, undefined, getLocale(locale))\n : undefined,\n label,\n ...triggerProps,\n })\n }\n >\n <FilterContents>\n <FilterDatePickerField\n locale={locale}\n selectedDate={selectedDate}\n onDateSubmit={date => {\n setIsOpen(false)\n onDateSubmit?.(date)\n }}\n {...restProps}\n />\n </FilterContents>\n </Filter>\n)\n\nFilterDatePicker.displayName = \"FilterDatePicker\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const ChevronDownIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M6.179 6.845 10 10.747l3.821-3.902L15 8.049l-5 5.106-5-5.106z\"\n />\n </SVG>\n)\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const ChevronUpIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fillRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M6.179 13.155 10 9.253l3.821 3.902 1.18-1.204L10 6.845l-5.001 5.106z\"\n />\n </SVG>\n)\n","export const isRefObject = (\n ref: React.ForwardedRef<any>\n): ref is React.MutableRefObject<any> => ref !== null && \"current\" in ref\n","import React, { ButtonHTMLAttributes, forwardRef } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FilterButtonBase.module.scss\"\n\nexport type FilterButtonBaseProps = {\n children: React.ReactNode\n} & OverrideClassName<ButtonHTMLAttributes<HTMLButtonElement>>\n\nexport const FilterButtonBase = forwardRef<\n HTMLButtonElement,\n FilterButtonBaseProps\n>(({ children, classNameOverride, ...restProps }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={classnames(styles.filterButtonBase, classNameOverride)}\n {...restProps}\n >\n {children}\n </button>\n))\n\nFilterButtonBase.displayName = \"FilterButtonBase\"\n","import React, { forwardRef } from \"react\"\nimport classnames from \"classnames\"\nimport { ChevronDownIcon } from \"~components/SVG/icons/ChevronDownIcon\"\nimport { ChevronUpIcon } from \"~components/SVG/icons/ChevronUpIcon\"\nimport { isRefObject } from \"~utils/isRefObject\"\nimport { FilterTriggerRef } from \"../../Filter/types\"\nimport {\n FilterButtonBase,\n FilterButtonBaseProps,\n} from \"../subcomponents/FilterButtonBase\"\nimport styles from \"./FilterButton.module.scss\"\n\nexport type FilterButtonProps = {\n label: string\n selectedValue?: string | JSX.Element\n isOpen?: boolean\n} & Omit<FilterButtonBaseProps, \"children\">\n\nexport const FilterButton = forwardRef<FilterTriggerRef, FilterButtonProps>(\n (\n { label, selectedValue, isOpen = false, classNameOverride, ...restProps },\n ref\n ) => {\n const customRefObject = isRefObject(ref) ? ref.current : null\n const triggerRef = customRefObject?.triggerRef\n const selectedValuesLabel = selectedValue\n\n return (\n <FilterButtonBase\n ref={triggerRef}\n classNameOverride={classnames(styles.filterButton, classNameOverride)}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n {...restProps}\n >\n <span className={styles.labelContainer}>\n {selectedValuesLabel ? (\n <>\n <span className={styles.hasSelectedValues}>\n <span>{label}</span>\n <span className={styles.labelSeparator}>:</span>\n </span>\n <span>{selectedValuesLabel}</span>\n </>\n ) : (\n label\n )}\n </span>\n {isOpen ? (\n <ChevronUpIcon role=\"presentation\" />\n ) : (\n <ChevronDownIcon role=\"presentation\" />\n )}\n </FilterButtonBase>\n )\n }\n)\n\nFilterButton.displayName = \"FilterButton\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { Tooltip, TooltipProps } from \"@kaizen/draft-tooltip\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n FilterButtonBase,\n FilterButtonBaseProps,\n} from \"../FilterButton/subcomponents/FilterButtonBase\"\nimport styles from \"./ButtonGroup.module.scss\"\n\nconst isFilterButton = (\n node: React.ReactNode\n): node is React.ReactElement<FilterButtonBaseProps> =>\n React.isValidElement(node) && node.type === FilterButtonBase\n\nexport type ButtonGroupProps = {\n children:\n | React.ReactElement<FilterButtonBaseProps | TooltipProps>\n | Array<React.ReactElement<FilterButtonBaseProps | TooltipProps>>\n} & Omit<OverrideClassName<HTMLAttributes<HTMLDivElement>>, \"children\">\n\nexport const ButtonGroup = ({\n children,\n classNameOverride,\n ...restProps\n}: ButtonGroupProps): JSX.Element => {\n const childCount = React.Children.count(children)\n\n const containerProps = {\n role: \"group\",\n className: classnames(styles.buttonGroup, classNameOverride),\n ...restProps,\n }\n\n if (childCount === 1) return <div {...containerProps}>{children}</div>\n\n return (\n <div {...containerProps}>\n {React.Children.map(children, (child, index) => {\n const buttonClassNames = classnames(\n styles.child,\n index === 0 && styles.firstChild,\n index === childCount - 1 && styles.lastChild,\n child.props.classNameOverride\n )\n\n if (child.type === Tooltip) {\n const button = child.props.children\n\n if (isFilterButton(button)) {\n return React.cloneElement(child, {\n children: React.cloneElement(button, {\n classNameOverride: buttonClassNames,\n }),\n })\n }\n\n return child\n }\n\n return React.cloneElement(child, {\n classNameOverride: buttonClassNames,\n })\n })}\n </div>\n )\n}\n\nButtonGroup.displayName = \"ButtonGroup\"\n","import React, { forwardRef } from \"react\"\nimport { Tooltip } from \"@kaizen/draft-tooltip\"\nimport { ClearIcon } from \"~icons/ClearIcon\"\nimport { DataAttributes } from \"~types/DataAttributes\"\nimport { isRefObject } from \"~utils/isRefObject\"\nimport { ButtonGroup, ButtonGroupProps } from \"../../ButtonGroup\"\nimport { FilterTriggerRef } from \"../../Filter\"\nimport { FilterButton, FilterButtonProps } from \"../FilterButton\"\nimport {\n FilterButtonBase,\n FilterButtonBaseProps,\n} from \"../subcomponents/FilterButtonBase\"\n\nexport type FilterButtonRemovableProps = {\n triggerButtonProps: FilterButtonProps & DataAttributes\n removeButtonProps: Partial<Omit<FilterButtonBaseProps, \"children\">> &\n DataAttributes & { tooltipText?: string }\n} & Omit<ButtonGroupProps, \"children\">\n\nexport type FilterButtonRemovableRefs = FilterTriggerRef & {\n removeButtonRef?: React.RefObject<HTMLButtonElement>\n}\n\nexport const FilterButtonRemovable = forwardRef<\n FilterButtonRemovableRefs,\n FilterButtonRemovableProps\n>(({ triggerButtonProps, removeButtonProps, ...restProps }, ref) => {\n const customRefObject = isRefObject(ref) ? ref.current : null\n const removeButtonRef = customRefObject?.removeButtonRef\n\n const removeButtonLabel =\n removeButtonProps?.tooltipText ??\n `Remove filter - ${triggerButtonProps?.label}`\n\n return (\n <ButtonGroup {...restProps}>\n <FilterButton ref={ref} {...triggerButtonProps} />\n <Tooltip text={removeButtonLabel} display=\"inline-block\" position=\"below\">\n <FilterButtonBase ref={removeButtonRef} {...removeButtonProps}>\n <ClearIcon role=\"img\" aria-label={removeButtonLabel} />\n </FilterButtonBase>\n </Tooltip>\n </ButtonGroup>\n )\n})\n\nFilterButtonRemovable.displayName = \"FilterButtonRemovable\"\n","import React, { forwardRef } from \"react\"\nimport { FilterTriggerRef } from \"~components/Filter\"\nimport { useFilterBarContext } from \"~components/FilterBar/context/FilterBarContext\"\nimport {\n FilterButton,\n FilterButtonProps,\n FilterButtonRemovable,\n} from \"~components/FilterButton\"\n\nexport type FilterBarButtonProps = FilterButtonProps & {\n id: string\n isRemovable: boolean | undefined\n}\n\nexport const FilterBarButton = forwardRef<\n FilterTriggerRef,\n FilterBarButtonProps\n>(({ id, isRemovable = false, ...props }, ref): JSX.Element => {\n const { hideFilter } = useFilterBarContext()\n\n return isRemovable ? (\n <FilterButtonRemovable\n ref={ref}\n triggerButtonProps={props}\n removeButtonProps={{ onClick: () => hideFilter(id) }}\n />\n ) : (\n <FilterButton ref={ref} {...props} />\n )\n})\n\nFilterBarButton.displayName = \"FilterBar.Button\"\n","import React from \"react\"\nimport {\n FilterDatePicker,\n FilterDatePickerProps,\n} from \"~components/FilterDatePicker\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { FilterBarButton } from \"../FilterBarButton\"\n\nexport type FilterBarDatePickerProps = Omit<\n FilterDatePickerProps,\n | \"id\"\n | \"label\"\n | \"renderTrigger\"\n | \"isOpen\"\n | \"setIsOpen\"\n | \"selectedDate\"\n | \"onDateChange\"\n | \"locale\"\n> & {\n id?: string\n locale?: FilterDatePickerProps[\"locale\"]\n onDateChange?: FilterDatePickerProps[\"onDateChange\"]\n}\n\nexport const FilterBarDatePicker = ({\n id,\n onDateChange,\n locale = \"en-AU\",\n ...props\n}: FilterBarDatePickerProps): JSX.Element => {\n const { getFilterState, setFilterOpenState, updateValue } =\n useFilterBarContext<Date | undefined>()\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarDatePicker\")\n\n const filterState = getFilterState(id)\n\n return (\n <FilterDatePicker\n {...props}\n id={id}\n locale={locale}\n selectedDate={filterState.value || undefined}\n label={filterState.name}\n renderTrigger={(triggerProps): JSX.Element => (\n <FilterBarButton\n {...triggerProps}\n id={id}\n isRemovable={filterState.isRemovable}\n />\n )}\n onDateChange={(key): void => {\n updateValue(id, key)\n onDateChange?.(key)\n }}\n isOpen={filterState.isOpen}\n setIsOpen={(open): void => setFilterOpenState(id, open)}\n />\n )\n}\n\nFilterBarDatePicker.displayName = \"FilterBar.DatePicker\"\n","import React from \"react\"\nimport { formatDateAsText } from \"@kaizen/date-picker/src/utils/formatDateAsText\"\nimport styles from \"./DateRangeDisplayLabel.module.scss\"\n\nexport type DateRangeDisplayLabelProps = {\n dateRange: { from: Date; to: Date }\n locale: Locale\n}\n\nexport const DateRangeDisplayLabel = ({\n dateRange,\n locale,\n}: DateRangeDisplayLabelProps): JSX.Element | null => {\n const formattedDateFrom = formatDateAsText(dateRange.from, undefined, locale)\n const formattedDateTo = formatDateAsText(dateRange.to, undefined, locale)\n\n return (\n <span className={styles.dateRangeDisplayLabel}>\n <span>{formattedDateFrom}</span>\n <span>-</span>\n <span>{formattedDateTo}</span>\n </span>\n )\n}\n\nDateRangeDisplayLabel.displayName = \"DateRangeDisplayLabel\"\n","import React from \"react\"\nimport { FieldMessage } from \"@kaizen/draft-form\"\nimport { DateRangeFieldValidationMessage } from \"../FilterDateRangePickerField/types\"\nimport styles from \"./DateRangeValidationMessage.module.scss\"\n\nexport type DateRangeValidationMessageProps = {\n validationMessage?: DateRangeFieldValidationMessage\n dateStartId?: string\n dateEndId?: string\n isReversed?: boolean\n}\n\nexport const DateRangeValidationMessage = ({\n validationMessage,\n dateStartId,\n dateEndId,\n isReversed,\n}: DateRangeValidationMessageProps): JSX.Element | null => {\n if (!validationMessage) return null\n\n const dateStart = validationMessage.dateStart\n const dateEnd = validationMessage.dateEnd\n\n if (dateStart && dateEnd) {\n if (dateStart.status === dateEnd.status) {\n return (\n <FieldMessage\n message={\n <ul className={styles.fieldMessageList}>\n <li id={dateStartId}>{dateStart.message}</li>\n <li id={dateEndId}>{dateEnd.message}</li>\n </ul>\n }\n status={dateStart.status || dateEnd.status}\n reversed={isReversed}\n />\n )\n }\n\n return (\n <>\n <FieldMessage\n id={dateStartId}\n message={dateStart.message}\n status={dateStart.status}\n reversed={isReversed}\n />\n <FieldMessage\n id={dateEndId}\n message={dateEnd.message}\n status={dateEnd.status}\n reversed={isReversed}\n />\n </>\n )\n }\n\n if (dateStart) {\n return (\n <FieldMessage\n id={dateStartId}\n message={dateStart.message}\n status={dateStart.status}\n reversed={isReversed}\n />\n )\n }\n\n if (dateEnd) {\n return (\n <FieldMessage\n id={dateEndId}\n message={dateEnd.message}\n status={dateEnd.status}\n reversed={isReversed}\n />\n )\n }\n\n return null\n}\n\nDateRangeValidationMessage.displayName = \"DateRangeValidationMessage\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport {\n DateInput,\n DateInputProps,\n} from \"@kaizen/date-picker/src/_subcomponents/DateInput\"\nimport { FieldMessage } from \"@kaizen/draft-form\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { isRefObject } from \"~utils/isRefObject\"\nimport {\n DateInputDescription,\n DateInputDescriptionProps,\n} from \"../DateInputDescription\"\nimport {\n DateRangeValidationMessage,\n DateRangeValidationMessageProps,\n} from \"../DateRangeValidationMessage\"\nimport styles from \"./DateRangeInputField.module.scss\"\n\nexport type DateRangeInputFieldProps = {\n id: string\n legend: string\n inputStartDateProps: Omit<DateInputProps, \"id\">\n inputEndDateProps: Omit<DateInputProps, \"id\">\n locale: Locale\n /**\n * A description that provides context for the text field\n */\n description?: DateInputDescriptionProps[\"description\"]\n isReversed?: boolean\n validationMessage?: DateRangeValidationMessageProps[\"validationMessage\"]\n disabled?: boolean\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport type DateRangeInputFieldRefs = {\n inputStartDateRef?: React.RefObject<HTMLInputElement>\n inputEndDateRef?: React.RefObject<HTMLInputElement>\n}\n\nexport const DateRangeInputField = React.forwardRef<\n DateRangeInputFieldRefs,\n DateRangeInputFieldProps\n>(\n (\n {\n id,\n legend,\n inputStartDateProps,\n inputEndDateProps,\n description,\n disabled,\n isReversed = false,\n validationMessage,\n locale,\n classNameOverride,\n ...restProps\n },\n ref\n ) => {\n const customRefObject = isRefObject(ref) ? ref.current : null\n const inputStartDateRef = customRefObject?.inputStartDateRef\n const inputEndDateRef = customRefObject?.inputEndDateRef\n\n const descriptionId = `${id}--field-message`\n\n // Date Start aria labels\n const dateStartErrorMessageId = validationMessage?.dateStart\n ? `${id}--date-start-error-message`\n : undefined\n\n const dateStartInputDescribedBy = dateStartErrorMessageId\n ? `${dateStartErrorMessageId} ${descriptionId}`\n : descriptionId\n\n const dateStartIsInvalid = dateStartErrorMessageId !== undefined\n\n // Date End aria labels\n const dateEndErrorMessageId = validationMessage?.dateEnd\n ? `${id}--date-end-error-message`\n : undefined\n\n const dateEndInputDescribedBy = dateEndErrorMessageId\n ? `${dateEndErrorMessageId} ${descriptionId}`\n : descriptionId\n\n const dateEndIsInvalid = dateEndErrorMessageId !== undefined\n\n return (\n <div className={classNameOverride} {...restProps}>\n <fieldset className={styles.dateRangeInputContainer}>\n <legend>\n <VisuallyHidden>{legend}</VisuallyHidden>\n </legend>\n <DateInput\n ref={inputStartDateRef}\n id={`${id}--from`}\n aria-describedby={dateStartInputDescribedBy}\n aria-errormessage={dateStartErrorMessageId}\n aria-invalid={dateStartIsInvalid}\n autoComplete=\"off\"\n disabled={disabled}\n status={validationMessage?.dateStart?.status}\n {...inputStartDateProps}\n classNameOverride={classnames(\n styles.inputStartDate,\n inputStartDateProps.classNameOverride\n )}\n />\n <DateInput\n ref={inputEndDateRef}\n id={`${id}--to`}\n aria-describedby={dateEndInputDescribedBy}\n aria-errormessage={dateEndErrorMessageId}\n aria-invalid={dateEndIsInvalid}\n autoComplete=\"off\"\n disabled={disabled}\n status={validationMessage?.dateEnd?.status}\n {...inputEndDateProps}\n classNameOverride={classnames(\n styles.inputEndDate,\n inputEndDateProps.classNameOverride\n )}\n />\n </fieldset>\n\n {validationMessage && (\n <DateRangeValidationMessage\n validationMessage={validationMessage}\n isReversed={isReversed}\n dateStartId={dateStartErrorMessageId}\n dateEndId={dateEndErrorMessageId}\n />\n )}\n\n <FieldMessage\n id={descriptionId}\n message={\n <DateInputDescription description={description} locale={locale} />\n }\n reversed={isReversed}\n classNameOverride={disabled ? styles.disabled : undefined}\n />\n </div>\n )\n }\n)\n\nDateRangeInputField.displayName = \"DateRangeInputField\"\n","import { isInvalidDate } from \"@kaizen/date-picker\"\n\ntype DateRangeFieldActions =\n | {\n type: \"update_selected_start_date\"\n date: Date | undefined\n inputValue?: string\n }\n | {\n type: \"update_selected_end_date\"\n date: Date | undefined\n inputValue?: string\n }\n | {\n type: \"navigate_months\"\n date: Date | undefined\n }\n | {\n type: \"update_input_start_field\"\n inputValue: string\n }\n | {\n type: \"update_input_end_field\"\n inputValue: string\n }\n\ntype FilterDateRangePickerState = {\n selectedStartDate: Date | undefined\n selectedEndDate: Date | undefined\n inputStartValue: string\n inputEndValue: string\n startMonth: Date\n}\n\nexport const filterDatePickerFieldReducer = (\n state: FilterDateRangePickerState,\n action: DateRangeFieldActions\n): FilterDateRangePickerState => {\n switch (action.type) {\n case \"update_selected_start_date\":\n return {\n ...state,\n selectedStartDate: action.date,\n inputStartValue:\n action.inputValue === undefined\n ? state.inputStartValue\n : action.inputValue,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n case \"update_selected_end_date\":\n return {\n ...state,\n selectedEndDate: action.date,\n inputEndValue:\n action.inputValue === undefined\n ? state.inputEndValue\n : action.inputValue,\n }\n case \"navigate_months\":\n return {\n ...state,\n startMonth:\n action.date && !isInvalidDate(action.date) ? action.date : new Date(),\n }\n case \"update_input_start_field\":\n return {\n ...state,\n inputStartValue: action.inputValue,\n }\n case \"update_input_end_field\":\n return {\n ...state,\n inputEndValue: action.inputValue,\n }\n }\n}\n","export const isValidRange = (\n startDate: Date | undefined,\n endDate: Date | undefined\n): boolean => {\n if (startDate && endDate) return startDate <= endDate\n return false\n}\n","import React from \"react\"\nimport { DateValidationResponse } from \"~components/FilterDatePicker\"\nimport { getNodeText } from \"../../../../utils/getNodeText\"\nimport { isValidRange } from \"./isValidRange\"\n\nexport type ValidateEndDateBeforeStartDateArgs = {\n startDate: Date\n startDateFieldLabel: React.ReactNode\n endDate: Date\n endDateInputValue: string\n}\n\nexport type ValidateEndDateBeforeStartDateResponse = {\n validationResponse: DateValidationResponse\n newDate: Date | undefined\n}\n\nexport const validateEndDateBeforeStartDate = ({\n startDate,\n startDateFieldLabel,\n endDate,\n endDateInputValue,\n}: ValidateEndDateBeforeStartDateArgs): ValidateEndDateBeforeStartDateResponse => {\n const baseResponse = {\n date: endDate,\n inputValue: endDateInputValue,\n validationMessage: undefined,\n isInvalid: false,\n isDisabled: false,\n isEmpty: false,\n isValidDate: true,\n }\n\n if (!isValidRange(startDate, endDate)) {\n return {\n validationResponse: {\n ...baseResponse,\n validationMessage: {\n status: \"error\",\n message: `Cannot be earlier than the selection in \"${getNodeText(\n startDateFieldLabel\n )}\"`,\n },\n },\n newDate: endDate,\n }\n }\n\n return {\n validationResponse: baseResponse,\n newDate: endDate,\n }\n}\n","import {\n useDateValidation,\n UseDateValidationArgs,\n ValidationMessage,\n} from \"~components/FilterDatePicker\"\nimport {\n validateEndDateBeforeStartDate,\n ValidateEndDateBeforeStartDateArgs,\n} from \"../utils/validateEndDateBeforeStartDate\"\n\nexport type UseEndDateValidationArgs = UseDateValidationArgs\n\nexport type UseEndDateValidationValue = {\n validationMessage: ValidationMessage | undefined\n validateDate: (args: {\n endDate: Date | undefined\n endDateInputValue: string\n startDate: Date | undefined\n startDateFieldLabel: React.ReactNode\n }) => Date | undefined\n validateEndDateBeforeStartDate: (\n args: ValidateEndDateBeforeStartDateArgs\n ) => Date | undefined\n}\n\nexport const useEndDateValidation = (\n args: UseEndDateValidationArgs\n): UseEndDateValidationValue => {\n const { validationMessage, validateDate, updateValidation } =\n useDateValidation(args)\n\n const handleValidateEndDateBeforeStartDate: UseEndDateValidationValue[\"validateEndDateBeforeStartDate\"] =\n handlerArgs => {\n const { validationResponse, newDate } =\n validateEndDateBeforeStartDate(handlerArgs)\n updateValidation(validationResponse)\n return newDate\n }\n\n const validateEndDate: UseEndDateValidationValue[\"validateDate\"] = ({\n endDate,\n endDateInputValue,\n startDate,\n startDateFieldLabel,\n }) => {\n const { validationResponse, newDate } = validateDate({\n date: endDate,\n inputValue: endDateInputValue,\n })\n\n if (validationResponse.isValidDate) {\n if (newDate && startDate) {\n return handleValidateEndDateBeforeStartDate({\n startDate,\n startDateFieldLabel,\n endDate: newDate,\n endDateInputValue,\n })\n }\n }\n\n updateValidation(validationResponse)\n return newDate\n }\n\n return {\n validationMessage,\n validateDate: validateEndDate,\n validateEndDateBeforeStartDate: handleValidateEndDateBeforeStartDate,\n }\n}\n","import {\n useDateValidation,\n UseDateValidationArgs,\n ValidationMessage,\n} from \"~components/FilterDatePicker\"\n\nexport type UseStartDateValidationArgs = UseDateValidationArgs\n\nexport type UseStartDateValidationValue = {\n validationMessage: ValidationMessage | undefined\n validateDate: (args: {\n date: Date | undefined\n inputValue: string\n }) => Date | undefined\n}\n\nexport const useStartDateValidation = (\n args: UseStartDateValidationArgs\n): UseStartDateValidationValue => {\n const { validationMessage, validateDate, updateValidation } =\n useDateValidation(args)\n\n const validateStartDate: UseStartDateValidationValue[\"validateDate\"] = ({\n date,\n inputValue,\n }) => {\n const { validationResponse, newDate } = validateDate({ date, inputValue })\n updateValidation(validationResponse)\n return newDate\n }\n\n return {\n validationMessage,\n validateDate: validateStartDate,\n }\n}\n","import React, { useEffect, HTMLAttributes, useReducer } from \"react\"\nimport { useIntl } from \"@cultureamp/i18n-react-intl\"\nimport classnames from \"classnames\"\nimport {\n CalendarRange,\n CalendarRangeProps,\n} from \"@kaizen/date-picker/src/_subcomponents/Calendar\"\nimport { formatDateAsText } from \"@kaizen/date-picker/src/utils/formatDateAsText\"\nimport { getLocale } from \"@kaizen/date-picker/src/utils/getLocale\"\nimport { isInvalidDate } from \"@kaizen/date-picker/src/utils/isInvalidDate\"\nimport { parseDateFromTextFormatValue } from \"@kaizen/date-picker/src/utils/parseDateFromTextFormatValue\"\nimport { DateValidationResponse } from \"~components/FilterDatePicker\"\nimport { useDateInputHandlers } from \"~components/FilterDatePicker/hooks/useDateInputHandlers\"\nimport { DataAttributes } from \"~types/DataAttributes\"\nimport {\n DateRange,\n DisabledDays,\n FilterDateSupportedLocales,\n} from \"~types/DatePicker\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n DateRangeInputField,\n DateRangeInputFieldProps,\n} from \"../DateRangeInputField\"\nimport { filterDatePickerFieldReducer } from \"./filterDateRangePickerFieldReducer\"\nimport { useEndDateValidation } from \"./hooks/useEndDateValidation\"\nimport { useStartDateValidation } from \"./hooks/useStartDateValidation\"\nimport { DateRangeFieldValidationMessage } from \"./types\"\nimport { isValidRange } from \"./utils/isValidRange\"\nimport styles from \"./FilterDateRangePickerField.module.scss\"\n\ntype InputStartDateProps = DateRangeInputFieldProps[\"inputStartDateProps\"]\ntype InputEndDateProps = DateRangeInputFieldProps[\"inputEndDateProps\"]\n\ntype FilterInputProps<InputProps> = Omit<Partial<InputProps>, \"value\"> &\n DataAttributes\n\nexport type FilterDateRangePickerFieldProps = {\n id: string\n label: string\n locale: FilterDateSupportedLocales\n /**\n * Sets first displayed month to month of provided date if there isn't a date set.\n */\n defaultMonth?: CalendarRangeProps[\"defaultMonth\"]\n /**\n * The date range passed in from the consumer that renders in the inputs and calendar.\n */\n selectedRange: DateRange | undefined\n /**\n * Callback when date is updated either by the calendar picker or by typing and blurring.\n * Date will return as `undefined` if empty, invalid or disabled.\n */\n onRangeChange: (range: DateRange | undefined) => void\n /**\n * See https://react-day-picker.js.org/api/types/Matcher\n */\n disabledDays?: DisabledDays\n inputStartDateProps?: FilterInputProps<InputStartDateProps>\n inputEndDateProps?: FilterInputProps<InputEndDateProps>\n /**\n * Custom description to provide extra context (input format help text remains).\n */\n description?: DateRangeInputFieldProps[\"description\"]\n validationMessage?: DateRangeFieldValidationMessage\n /**\n * Callback when a date is selected. Utilises internal validation if not set.\n */\n onValidate?: {\n dateStart?: (validationResponse: DateValidationResponse) => void\n dateEnd?: (validationResponse: DateValidationResponse) => void\n }\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const FilterDateRangePickerField = ({\n id,\n label,\n locale: propsLocale,\n defaultMonth,\n selectedRange,\n onRangeChange,\n disabledDays,\n inputStartDateProps,\n inputEndDateProps,\n description,\n validationMessage,\n onValidate,\n classNameOverride,\n ...restProps\n}: FilterDateRangePickerFieldProps): JSX.Element => {\n const { formatMessage } = useIntl()\n const locale = getLocale(propsLocale)\n\n const translatedDateFrom = formatMessage({\n id: \"filterDateRangePicker.dateFrom\",\n defaultMessage: \"Date from\",\n description: \"Label for the 'Date from' field\",\n })\n const translatedDateTo = formatMessage({\n id: \"filterDateRangePicker.dateTo\",\n defaultMessage: \"Date to\",\n description: \"Label for the 'date to' field\",\n })\n const inputStartDateLabel =\n inputStartDateProps?.labelText || translatedDateFrom\n const inputEndDateLabel = inputEndDateProps?.labelText || translatedDateTo\n\n const transformDateToInputValue = (date: Date | undefined): string =>\n date ? formatDateAsText(date, disabledDays, locale) : \"\"\n\n const handleDateRangeChange = (dateRange: DateRange | undefined): void => {\n onRangeChange(dateRange)\n }\n\n const dateStartValidation = useStartDateValidation({\n inputLabel: inputStartDateLabel,\n disabledDays,\n validationMessage: validationMessage?.dateStart,\n onValidate: onValidate?.dateStart,\n })\n\n const dateEndValidation = useEndDateValidation({\n inputLabel: inputEndDateLabel,\n disabledDays,\n validationMessage: validationMessage?.dateEnd,\n onValidate: onValidate?.dateEnd,\n })\n\n const validateStartDate = (\n date: Date | undefined,\n inputValue: string\n ): Date | undefined =>\n dateStartValidation.validateDate({\n date,\n inputValue,\n })\n\n const validateEndDate = (\n date: Date | undefined,\n inputValue: string\n ): Date | undefined =>\n dateEndValidation.validateDate({\n endDate: date,\n endDateInputValue: inputValue,\n startDate: selectedRange?.from,\n startDateFieldLabel: inputStartDateLabel,\n })\n\n const [state, dispatch] = useReducer(filterDatePickerFieldReducer, {\n selectedStartDate: selectedRange?.from,\n selectedEndDate: selectedRange?.to,\n inputStartValue: transformDateToInputValue(selectedRange?.from),\n inputEndValue: transformDateToInputValue(selectedRange?.to),\n startMonth:\n selectedRange?.from && !isInvalidDate(selectedRange.from)\n ? selectedRange.from\n : defaultMonth || new Date(),\n })\n\n const inputStartDateHandlers = useDateInputHandlers({\n locale,\n disabledDays,\n setInputValue: value => {\n dispatch({\n type: \"update_input_start_field\",\n inputValue: value,\n })\n },\n onDateChange: date => {\n const newDate = validateStartDate(date, state.inputStartValue)\n\n // We need to parse the date from the input field due to the\n // state.selectedEndDate being set to undefined whenever range is invalid\n const endDate = parseDateFromTextFormatValue(state.inputEndValue, locale)\n const isRangeValid = isValidRange(newDate, endDate)\n\n dispatch({\n type: \"update_selected_start_date\",\n date: newDate,\n })\n\n // If the range ends up being invalid due to the change in start date\n // we need to remove the end date as its now deemed invalid.\n dispatch({\n type: \"update_selected_end_date\",\n date: isRangeValid ? endDate : undefined,\n })\n\n handleDateRangeChange({\n from: newDate,\n to: isRangeValid ? endDate : undefined,\n })\n\n if (newDate && endDate && !isInvalidDate(endDate)) {\n // Update validation messages\n dateEndValidation.validateEndDateBeforeStartDate({\n startDate: newDate,\n startDateFieldLabel: inputStartDateLabel,\n endDate,\n endDateInputValue: state.inputEndValue,\n })\n }\n },\n ...inputStartDateProps,\n })\n\n const inputEndDateHandlers = useDateInputHandlers({\n locale,\n disabledDays,\n setInputValue: value => {\n dispatch({\n type: \"update_input_end_field\",\n inputValue: value,\n })\n },\n onDateChange: date => {\n const startDate = state.selectedStartDate\n const newEndDate = validateEndDate(date, state.inputEndValue)\n const isRangeValid = isValidRange(startDate, newEndDate)\n\n dispatch({\n type: \"update_selected_end_date\",\n date: isRangeValid ? newEndDate : undefined,\n })\n\n handleDateRangeChange({\n from: startDate,\n to: isRangeValid ? newEndDate : undefined,\n })\n },\n ...inputEndDateProps,\n })\n\n const handleCalendarSelectRange: CalendarRangeProps[\"onSelect\"] = range => {\n const inputStartValue = transformDateToInputValue(range?.from)\n const inputEndValue = transformDateToInputValue(range?.to)\n\n const newStartDate = validateStartDate(range?.from, inputStartValue)\n const newEndDate = validateEndDate(range?.to, inputEndValue)\n\n dispatch({\n type: \"update_selected_start_date\",\n date: newStartDate,\n inputValue: inputStartValue,\n })\n\n dispatch({\n type: \"update_selected_end_date\",\n date: newEndDate,\n inputValue: inputEndValue,\n })\n\n handleDateRangeChange({ from: newStartDate, to: newEndDate })\n }\n\n useEffect(() => {\n const newStartDate = validateStartDate(\n selectedRange?.from,\n state.inputStartValue\n )\n const newEndDate = validateEndDate(selectedRange?.to, state.inputEndValue)\n\n if (newStartDate && !isValidRange(newStartDate, newEndDate)) {\n dispatch({\n type: \"update_selected_end_date\",\n date: undefined,\n })\n }\n\n handleDateRangeChange({ from: newStartDate, to: newEndDate })\n }, [])\n\n return (\n <div\n className={classnames(\n styles.filterDateRangePickerField,\n classNameOverride\n )}\n {...restProps}\n >\n <DateRangeInputField\n id={`${id}--input`}\n legend={label}\n inputStartDateProps={{\n labelText: inputStartDateLabel,\n value: state.inputStartValue,\n ...inputStartDateProps,\n // The below props extend the values from inputStartDateProps, therefore must be below the spread\n ...inputStartDateHandlers,\n }}\n inputEndDateProps={{\n labelText: inputEndDateLabel,\n value: state.inputEndValue,\n ...inputEndDateProps,\n // The below props extend the values from inputEndDateProps, therefore must be below the spread\n ...inputEndDateHandlers,\n }}\n locale={locale}\n description={description}\n validationMessage={{\n dateStart: dateStartValidation.validationMessage,\n dateEnd: dateEndValidation.validationMessage,\n }}\n classNameOverride={styles.dateRangeInputField}\n />\n <CalendarRange\n disabled={disabledDays}\n locale={locale}\n selected={{\n from: state.selectedStartDate,\n to: state.selectedEndDate,\n }}\n onSelect={handleCalendarSelectRange}\n month={state.startMonth}\n onMonthChange={(value: Date) =>\n dispatch({ type: \"navigate_months\", date: value })\n }\n />\n </div>\n )\n}\n\nFilterDateRangePickerField.displayName = \"FilterDateRangePickerField\"\n","import { DateRange } from \"~types/DatePicker\"\n\nexport const isCompleteDateRange = (\n dateRange: DateRange | undefined\n): dateRange is { from: Date; to: Date } =>\n dateRange?.from !== undefined && dateRange?.to !== undefined\n","import React, { useState } from \"react\"\nimport { v4 } from \"uuid\"\nimport { getLocale } from \"@kaizen/date-picker/src/utils/getLocale\"\nimport { Filter, FilterContents, FilterProps } from \"../Filter\"\nimport { FilterButtonProps } from \"../FilterButton\"\nimport { DateRangeDisplayLabel } from \"./subcomponents/DateRangeDisplayLabel\"\nimport {\n FilterDateRangePickerField,\n FilterDateRangePickerFieldProps,\n} from \"./subcomponents/FilterDateRangePickerField\"\nimport { isValidRange } from \"./subcomponents/FilterDateRangePickerField/utils/isValidRange\"\nimport { isCompleteDateRange } from \"./utils/isCompleteDateRange\"\n\nexport type FilterDateRangePickerProps = {\n id?: string\n isOpen: FilterProps[\"isOpen\"]\n setIsOpen: FilterProps[\"setIsOpen\"]\n renderTrigger: (triggerProps: FilterButtonProps) => JSX.Element\n} & Omit<FilterDateRangePickerFieldProps, \"id\">\n\nexport const FilterDateRangePicker = ({\n id: propsId,\n isOpen,\n setIsOpen,\n renderTrigger,\n selectedRange,\n label,\n locale,\n ...restProps\n}: FilterDateRangePickerProps): JSX.Element => {\n const [id] = useState<string>(propsId || v4())\n return (\n <Filter\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n renderTrigger={(triggerProps): JSX.Element =>\n renderTrigger({\n selectedValue:\n isCompleteDateRange(selectedRange) &&\n isValidRange(selectedRange.from, selectedRange.to) ? (\n <DateRangeDisplayLabel\n dateRange={selectedRange}\n locale={getLocale(locale)}\n />\n ) : undefined,\n label,\n ...triggerProps,\n })\n }\n >\n <FilterContents>\n <FilterDateRangePickerField\n id={`${id}--input`}\n label={label}\n locale={locale}\n selectedRange={selectedRange}\n {...restProps}\n />\n </FilterContents>\n </Filter>\n )\n}\n\nFilterDateRangePicker.displayName = \"FilterDateRangePicker\"\n","import React from \"react\"\nimport {\n FilterDateRangePicker,\n FilterDateRangePickerProps,\n} from \"~components/FilterDateRangePicker\"\nimport { DateRange } from \"~types/DatePicker\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { FilterBarButton } from \"../FilterBarButton\"\n\nexport type FilterBarDateRangePickerProps = Omit<\n FilterDateRangePickerProps,\n | \"id\"\n | \"label\"\n | \"renderTrigger\"\n | \"isOpen\"\n | \"setIsOpen\"\n | \"selectedRange\"\n | \"onRangeChange\"\n | \"locale\"\n> & {\n id?: string\n onRangeChange?: FilterDateRangePickerProps[\"onRangeChange\"]\n locale?: FilterDateRangePickerProps[\"locale\"]\n}\n\nexport const FilterBarDateRangePicker = ({\n id,\n onRangeChange,\n locale = \"en-AU\",\n ...props\n}: FilterBarDateRangePickerProps): JSX.Element => {\n const { getFilterState, setFilterOpenState, updateValue } =\n useFilterBarContext<DateRange | undefined>()\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarDateRangePicker\")\n\n const filterState = getFilterState(id)\n\n return (\n <FilterDateRangePicker\n {...props}\n id={id}\n label={filterState.name}\n renderTrigger={(triggerProps): JSX.Element => (\n <FilterBarButton\n {...triggerProps}\n id={id}\n isRemovable={filterState.isRemovable}\n />\n )}\n isOpen={filterState.isOpen}\n setIsOpen={(open): void => setFilterOpenState(id, open)}\n selectedRange={filterState.value}\n onRangeChange={(range): void => {\n updateValue(id, range)\n onRangeChange?.(range)\n }}\n locale={locale}\n />\n )\n}\n\nFilterBarDateRangePicker.displayName = \"FilterBar.DateRangePicker\"\n","import React, { ButtonHTMLAttributes, HTMLAttributes, useContext } from \"react\"\nimport { useButton } from \"@react-aria/button\"\nimport { AriaMenuOptions, useMenuTrigger } from \"@react-aria/menu\"\nimport { MenuTriggerState, useMenuTriggerState } from \"@react-stately/menu\"\nimport { ItemType } from \"../../types\"\n\nexport type MenuTriggerProviderProps = {\n isOpen?: boolean\n defaultOpen?: boolean\n onOpenChange?: (isOpen: boolean) => void\n children: React.ReactNode\n}\n\nexport type MenuTriggerProviderContextType = {\n menuTriggerProps: HTMLAttributes<HTMLElement>\n buttonProps: ButtonHTMLAttributes<HTMLButtonElement>\n menuProps: AriaMenuOptions<ItemType>\n menuTriggerState: MenuTriggerState\n buttonRef: React.RefObject<HTMLButtonElement>\n}\n\nconst MenuTriggerContext = React.createContext<MenuTriggerProviderContextType>(\n {} as MenuTriggerProviderContextType\n)\nexport function MenuTriggerProvider({\n isOpen,\n defaultOpen,\n onOpenChange,\n children,\n}: MenuTriggerProviderProps): JSX.Element {\n // Create state based on the incoming props to manage the open/close\n const state = useMenuTriggerState({ isOpen, defaultOpen, onOpenChange })\n\n // Get A11y attributes and events for the menu trigger and menu elements\n const ref = React.createRef<HTMLButtonElement>()\n const { menuTriggerProps, menuProps } = useMenuTrigger<ItemType>(\n {},\n state,\n ref\n )\n\n // Get A11y attributes and events for the button based on the trigger props from useMenuTrigger\n const { buttonProps } = useButton(menuTriggerProps, ref)\n\n return (\n <MenuTriggerContext.Provider\n value={{\n menuTriggerProps,\n buttonProps,\n menuProps,\n menuTriggerState: state,\n buttonRef: ref,\n }}\n >\n {children}\n </MenuTriggerContext.Provider>\n )\n}\n\nexport const useMenuTriggerContext = (): MenuTriggerProviderContextType =>\n useContext(MenuTriggerContext)\n\nexport const MenuTriggerConsumer = MenuTriggerContext.Consumer\n\nMenuTriggerContext.displayName = \"MenuTriggerContext\"\n","import React, { HTMLAttributes, useCallback, useContext, useState } from \"react\"\nimport { useListBox } from \"@react-aria/listbox\"\nimport { Item } from \"@react-stately/collections\"\nimport { ListState, useListState } from \"@react-stately/list\"\nimport { SelectionMode, Selection } from \"@react-types/shared\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { ItemType, MultiSelectItem } from \"../../types\"\nimport { useMenuTriggerContext } from \"../MenuTriggerProvider\"\n\nexport type SelectionProviderProps = {\n selectionMode: SelectionMode\n children: React.ReactNode // control how menu should look like\n items?: ItemType[]\n onSelectionChange?: (keys: Selection) => void\n /** The currently selected keys in the collection (controlled). */\n selectedKeys?: Selection\n /** The initial selected keys in the collection (uncontrolled). */\n defaultSelectedKeys?: Selection\n label: string\n disabledKeys?: Selection\n onSearchInputChange?: (searchInput: string) => void\n}\n\nexport type SelectionProviderContextType = {\n listBoxProps: HTMLAttributes<HTMLElement>\n labelProps: HTMLAttributes<HTMLElement>\n selectionState: ListState<ItemType>\n listRef: React.RefObject<HTMLUListElement>\n searchQuery?: string\n setSearchQuery: React.Dispatch<React.SetStateAction<string>>\n}\n\nconst SelectionContext = React.createContext<SelectionProviderContextType>(\n {} as SelectionProviderContextType\n)\n\nexport const SelectionProvider = (\n props: SelectionProviderProps\n): JSX.Element => {\n const { onSearchInputChange, ...otherProps } = props\n const [searchQuery, setSearchQuery] = useState<string>(\"\")\n const { menuProps } = useMenuTriggerContext()\n /**\n * While the onSearchInputChange is a side-effect, this useEffect should be fine.\n * If the search input state becomes controlled, this useEffect could cause synchronisation\n * issues and should be replaced.\n */\n\n React.useEffect(() => {\n if (onSearchInputChange) {\n onSearchInputChange(searchQuery)\n }\n }, [searchQuery, onSearchInputChange])\n\n const searchFilter = useCallback(\n (nodes: Iterable<MultiSelectItem>): Iterable<MultiSelectItem> =>\n searchQuery\n ? Array.from(nodes).filter(f =>\n f.textValue.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : nodes,\n [searchQuery]\n )\n\n // Create state based on the incoming props to manage the selection\n const state = useListState({\n ...otherProps,\n children: item => <Item key={item.value}>{item.label}</Item>, // For initialising selection and determined item.renderer, can be only Item or Section\n filter: onSearchInputChange ? undefined : searchFilter, // If the user has passed an `onSearchInputChange` we opt them out of the default filtering\n })\n\n // Get A11y attributes and events for the listbox\n const ref = React.createRef<HTMLUListElement>()\n const { listBoxProps, labelProps } = useListBox(\n {\n ...menuProps,\n ...otherProps,\n disallowEmptySelection: true, // stop escape key from clearing selection\n },\n state,\n ref\n )\n\n return (\n <SelectionContext.Provider\n value={{\n listBoxProps,\n labelProps,\n selectionState: state,\n listRef: ref,\n setSearchQuery,\n searchQuery,\n }}\n >\n <VisuallyHidden {...labelProps}>{otherProps.label}</VisuallyHidden>\n {otherProps.children}\n </SelectionContext.Provider>\n )\n}\n\nexport const useSelectionContext = (): SelectionProviderContextType =>\n useContext(SelectionContext)\n\nexport const SelectionConsumer = SelectionContext.Consumer\n\nSelectionProvider.displayName = \"SelectionProvider\"\n","import React, { useState, useEffect } from \"react\"\nimport { Collection } from \"@react-types/shared\"\nimport classnames from \"classnames\"\nimport { useSelectionContext } from \"../../context/SelectionProvider\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./ListBox.module.scss\"\n\nexport type ListBoxItems = {\n selectedItems: MultiSelectItem[]\n unselectedItems: MultiSelectItem[]\n disabledItems: MultiSelectItem[]\n allItems: MultiSelectItem[]\n hasNoItems: boolean\n}\n\nexport type ListBoxProps = {\n children: (items: ListBoxItems) => React.ReactNode\n}\n\nconst getItemsFromKeys = (\n items: Collection<MultiSelectItem>,\n keys: Set<React.Key>\n): MultiSelectItem[] => {\n const itemKeys = Array.from(keys)\n return itemKeys.reduce<MultiSelectItem[]>((acc, itemKey) => {\n const item = items.getItem(itemKey)\n return item ? [...acc, item] : acc\n }, [])\n}\n\nexport const ListBox = ({ children }: ListBoxProps): JSX.Element => {\n const { listBoxProps, listRef, selectionState } = useSelectionContext()\n const [isOverflown, setIsOverflown] = useState(false)\n useEffect(() => {\n const listElement = listRef.current\n if (!listElement) {\n return\n }\n setIsOverflown(listElement.scrollHeight > listElement.clientHeight)\n }, [listRef])\n const {\n collection: items,\n disabledKeys,\n selectionManager: { selectedKeys },\n } = selectionState\n\n const disabledItems = getItemsFromKeys(items, disabledKeys)\n const selectedItems = getItemsFromKeys(items, selectedKeys)\n\n const unselectedItems = Array.from(items).filter(\n item => !disabledKeys.has(item.key) && !selectedKeys.has(item.key)\n )\n const allItems = Array.from(items)\n const hasNoItems = allItems.length === 0\n\n const [itemsState, setItemsState] = useState<ListBoxItems>({\n selectedItems,\n unselectedItems,\n disabledItems,\n allItems,\n hasNoItems,\n })\n\n // Only update rendering of items when filtering.\n // Avoids re-ordering of items when making a selection\n useEffect(() => {\n setItemsState({\n selectedItems,\n disabledItems,\n unselectedItems,\n allItems,\n hasNoItems,\n })\n }, [selectionState.collection.size])\n\n if (hasNoItems) {\n return (\n <>\n <div className={styles.noResultsWrapper}>{children(itemsState)}</div>\n {/* This ul with the ref needs to exist otherwise it fatals */}\n <ul ref={listRef} className={styles.hidden} />\n </>\n )\n }\n\n return (\n <ul\n {...listBoxProps}\n ref={listRef}\n className={classnames(styles.listBox, isOverflown && styles.overflown)}\n >\n {children(itemsState)}\n </ul>\n )\n}\n\nListBox.displayName = \"FilterMultiSelect.ListBox\"\n","import React, { ReactNode, useState } from \"react\"\nimport { v4 } from \"uuid\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./ListBoxSection.module.scss\"\n\ntype SectionNameProps = {\n /**\n * Becomes an aria-label on the section, informing\n * unsighted users\n */\n sectionName: string\n}\n\ntype SectionHeaderProps = {\n /**\n * Becomes an aria-label on the section, informing\n * unsighted users\n */\n sectionName?: string\n /**\n * Can be used for a visual title of the ListBoxSection or to provide addition information in a React node.\n * If this is the same title as sectionName, you should only pass in a sectionHeader to avoid duplicate descriptions.\n */\n sectionHeader: ReactNode\n}\n\nexport type ListBoxSectionProps = {\n items: MultiSelectItem[]\n children: (item: MultiSelectItem) => React.ReactNode\n} & (SectionHeaderProps | SectionNameProps)\n\nexport const ListBoxSection = ({\n items,\n children,\n sectionName,\n ...restProps\n}: ListBoxSectionProps): JSX.Element => {\n const [listSectionId] = useState<string>(v4())\n const hasSectionHeader = \"sectionHeader\" in restProps\n return (\n <li role=\"presentation\">\n <ul\n className={styles.listBoxSection}\n aria-label={!hasSectionHeader ? sectionName : undefined}\n aria-labelledby={hasSectionHeader ? listSectionId : undefined}\n role=\"group\"\n >\n {hasSectionHeader && (\n <li\n className={styles.listBoxSectionHeader}\n id={listSectionId}\n role=\"presentation\"\n >\n {sectionName && <VisuallyHidden>{sectionName}. </VisuallyHidden>}\n {restProps.sectionHeader}\n </li>\n )}\n {/*\n * This seems semantically strange but most closely aligns to WCAGs suggested pattern:\n https://www.w3.org/WAI/ARIA/apg/patterns/listbox/examples/listbox-grouped/\n * the role=\"presentation\" will throw an error a11y warning \"Element has children which are not allowed\".\n This is expected and is an accepted issue / potential limitation with axe\n */}\n {Array.from(items).map(node => node != undefined && children(node))}\n </ul>\n </li>\n )\n}\nListBoxSection.displayName = \"ListBoxSection\"\n","import React from \"react\"\nimport { Button, ButtonProps } from \"~components/Button\"\nimport styles from \"./LoadMoreButton.module.scss\"\n\nexport type LoadMoreButtonProps = ButtonProps\n\nexport const LoadMoreButton = (props: LoadMoreButtonProps): JSX.Element => (\n <div className={styles.container}>\n <Button {...props} fullWidth />\n </div>\n)\n\nLoadMoreButton.displayName = \"FilterMultiSelect.LoadMoreButton\"\n","import React from \"react\"\nimport styles from \"./MenuFooter.module.scss\"\n\nexport type MenuFooterProps = {\n children: React.ReactNode\n}\n\nexport const MenuFooter = ({ children }: MenuFooterProps): JSX.Element => (\n <div className={styles.footer}>{children}</div>\n)\n\nMenuFooter.displayName = \"FilterMultiSelect.MenuFooter\"\n","import React from \"react\"\nimport { LoadingInput, LoadingParagraph } from \"@kaizen/loading-skeleton\"\nimport { MenuFooter } from \"../MenuFooter\"\nimport styles from \"./MenuLoadingSkeleton.module.scss\"\n\nexport type MenuLoadingSkeletonProps = {\n isAnimated?: boolean\n}\n\nexport const MenuLoadingSkeleton = ({\n isAnimated = false,\n}: MenuLoadingSkeletonProps): JSX.Element => (\n <>\n <div className={styles.loadingContainer}>\n <LoadingInput\n classNameOverride={styles.loadingInput}\n isAnimated={isAnimated}\n />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n <LoadingParagraph isAnimated={isAnimated} />\n </div>\n <MenuFooter>\n <LoadingInput width={40} height={36} isAnimated={isAnimated} />\n <LoadingInput width={30} height={36} isAnimated={isAnimated} />\n </MenuFooter>\n </>\n)\n\nMenuLoadingSkeleton.displayName = \"FilterMultiSelect.MenuLoadingSkeleton\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const CheckIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"m8.333 14.342-4.166-4.167L5.342 9l2.991 2.983 6.325-6.325 1.175 1.184z\"\n />\n </SVG>\n)\n\nCheckIcon.displayName = \"CheckIcon\"\n","import React, { useMemo } from \"react\"\nimport { useFocusRing } from \"@react-aria/focus\"\nimport { useOption } from \"@react-aria/listbox\"\nimport { mergeProps } from \"@react-aria/utils\"\nimport classnames from \"classnames\"\nimport { v4 } from \"uuid\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { Badge } from \"@kaizen/draft-badge\"\nimport { CheckIcon } from \"~components/SVG/icons/CheckIcon\"\nimport { useSelectionContext } from \"../../context\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./MultiSelectOption.module.scss\"\n\nexport type MultiSelectOptionProps = {\n item: MultiSelectItem\n}\n\nexport const MultiSelectOption = ({\n item,\n}: MultiSelectOptionProps): JSX.Element => {\n const { selectionState: state } = useSelectionContext()\n // Get props for the option element\n const ref = React.createRef<HTMLLIElement>()\n const { optionProps, isSelected, isDisabled } = useOption(\n { key: item.key },\n state,\n ref\n )\n\n // Determine whether we should show a keyboard\n // focus ring for accessibility\n const { isFocusVisible, focusProps } = useFocusRing()\n const countElementId = useMemo(() => v4(), [])\n\n return (\n <li\n {...mergeProps(optionProps, focusProps)}\n ref={ref}\n className={classnames(\n styles.option,\n isSelected && styles.isSelected,\n isFocusVisible && styles.isFocusVisible,\n isDisabled && styles.isDisabled\n )}\n aria-label={item.value?.label}\n aria-describedby={item.value?.count ? countElementId : undefined}\n >\n <span\n className={classnames(styles.icon, isSelected && styles.isSelected)}\n >\n {isSelected && <CheckIcon role=\"presentation\" />}\n </span>\n {/* can also be item.value since 'rendered' is defined as item.value in SelectionProvider*/}\n {item.rendered}\n {item.value?.count && (\n <span id={countElementId} className={styles.badgeContainer}>\n <Badge classNameOverride={styles.badge}>{item.value.count}</Badge>\n <VisuallyHidden> available</VisuallyHidden>\n </span>\n )}\n </li>\n )\n}\n\nMultiSelectOption.displayName = \"FilterMultiSelect.Option\"\n","import React, { HTMLAttributes } from \"react\"\nimport { Paragraph } from \"@kaizen/typography\"\nimport styles from \"./NoResults.module.scss\"\n\nexport type NoResultsProps = {\n children: React.ReactNode\n} & HTMLAttributes<HTMLDivElement>\n\nexport const NoResults = ({\n children,\n ...restProps\n}: NoResultsProps): JSX.Element => (\n <div className={styles.container} {...restProps}>\n <Paragraph variant=\"extra-small\" color=\"dark-reduced-opacity\">\n {children}\n </Paragraph>\n </div>\n)\n\nNoResults.displayName = \"FilterMultiSelect.NoResults\"\n","import React from \"react\"\nimport { FocusScope } from \"@react-aria/focus\"\nimport { useOverlay, DismissButton } from \"@react-aria/overlays\"\nimport { useMenuTriggerContext } from \"../../context\"\nimport styles from \"./MenuPopup.module.scss\"\n\nexport type MenuPopupProps = {\n isLoading?: boolean\n loadingSkeleton?: React.ReactNode\n children: React.ReactNode\n}\n\nexport const MenuPopup = ({\n isLoading,\n loadingSkeleton,\n children,\n}: MenuPopupProps): JSX.Element => {\n const { menuTriggerState } = useMenuTriggerContext()\n\n const onClose = (): void => menuTriggerState.close()\n\n // Handle events that should cause the menu to close,\n // e.g. blur, clicking outside, or pressing the escape key.\n const overlayRef = React.createRef<HTMLDivElement>()\n const { overlayProps } = useOverlay(\n {\n onClose,\n isOpen: menuTriggerState.isOpen,\n isDismissable: true,\n },\n overlayRef\n )\n\n // Wrap in <FocusScope> so that focus is restored back to the trigger when the menu is closed\n // and auto focus on the first focusable item after loading. (disable eslint no-autofocus error for it)\n // In addition, add hidden <DismissButton> components at the start and end of the list\n // to allow screen reader users to dismiss the popup easily.\n return menuTriggerState.isOpen ? (\n <div {...overlayProps} ref={overlayRef} className={styles.menuPopup}>\n {isLoading && loadingSkeleton ? (\n <>\n <DismissButton onDismiss={onClose} />\n {loadingSkeleton}\n <DismissButton onDismiss={onClose} />\n </>\n ) : (\n // eslint-disable-next-line jsx-a11y/no-autofocus\n <FocusScope contain autoFocus restoreFocus>\n <DismissButton onDismiss={onClose} />\n\n {children}\n <DismissButton onDismiss={onClose} />\n </FocusScope>\n )}\n </div>\n ) : (\n <></>\n )\n}\n\nMenuPopup.displayName = \"FilterMultiSelect.MenuPopup\"\n","import React from \"react\"\nimport { SelectionMode, Selection } from \"@react-types/shared\"\nimport {\n MenuTriggerConsumer,\n MenuTriggerProvider,\n MenuTriggerProviderContextType,\n MenuTriggerProviderProps,\n} from \"../../context/MenuTriggerProvider\"\nimport {\n SelectionConsumer,\n SelectionProvider,\n SelectionProviderContextType,\n} from \"../../context/SelectionProvider\"\nimport { ItemType } from \"../../types\"\nimport { MenuPopup, MenuPopupProps } from \"../MenuPopup\"\n\ntype SelectionProps = {\n label: string // provide A11y context for listbox\n items: ItemType[]\n selectedKeys?: Selection\n defaultSelectedKeys?: Selection\n onSelectionChange?: (keys: Selection) => void\n selectionMode?: SelectionMode\n onSearchInputChange?: (searchInput: string) => void\n}\n\nexport type RootProps = {\n trigger: (value?: MenuTriggerProviderContextType) => React.ReactNode\n children: (value?: SelectionProviderContextType) => React.ReactNode // the content of the menu\n} & Omit<MenuPopupProps, \"children\"> &\n Omit<MenuTriggerProviderProps, \"children\"> &\n SelectionProps\n\nexport const Root = ({\n trigger,\n children,\n isOpen,\n defaultOpen,\n onOpenChange,\n isLoading,\n loadingSkeleton,\n label,\n items,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectionMode = \"multiple\",\n onSearchInputChange,\n}: RootProps): JSX.Element => {\n const menuTriggerProps = { isOpen, defaultOpen, onOpenChange }\n const menuPopupProps = { isLoading, loadingSkeleton }\n const disabledKeys: Selection = new Set(\n items\n ?.filter(item => item.isDisabled === true)\n .map(disabledItem => disabledItem.value)\n )\n const selectionProps = {\n label,\n items,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectionMode,\n disabledKeys,\n onSearchInputChange,\n }\n\n return (\n <MenuTriggerProvider {...menuTriggerProps}>\n <div>\n <MenuTriggerConsumer>{trigger}</MenuTriggerConsumer>\n <MenuPopup {...menuPopupProps}>\n <SelectionProvider {...selectionProps}>\n <SelectionConsumer>{children}</SelectionConsumer>\n </SelectionProvider>\n </MenuPopup>\n </div>\n </MenuTriggerProvider>\n )\n}\n\nRoot.displayName = \"FilterMultiSelect\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const SearchIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n id=\"a\"\n d=\"M13.435 12.063h-.723l-.256-.247a5.92 5.92 0 0 0 1.437-3.87 5.946 5.946 0 1 0-5.947 5.947 5.92 5.92 0 0 0 3.87-1.437l.247.256v.723L16.637 18 18 16.637l-4.565-4.574Zm-5.489 0A4.111 4.111 0 0 1 3.83 7.946 4.111 4.111 0 0 1 7.946 3.83a4.111 4.111 0 0 1 4.117 4.116 4.111 4.111 0 0 1-4.117 4.117Z\"\n />\n </SVG>\n)\n\nSearchIcon.displayName = \"SearchIcon\"\n","import React, { InputHTMLAttributes, useRef } from \"react\"\nimport classnames from \"classnames\"\nimport { LoadingSpinner } from \"@kaizen/loading-spinner\"\nimport { SearchIcon } from \"~components/SVG/icons/SearchIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { ClearButton } from \"../ClearButton\"\nimport styles from \"./InputSearch.module.scss\"\n\nexport type InputSearchProps = {\n id: string\n reversed?: boolean\n loading?: boolean\n secondary?: boolean\n onClear?: () => void\n} & OverrideClassName<\n Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\">\n>\n\nexport const InputSearch = (props: InputSearchProps): JSX.Element => {\n const {\n value,\n onChange,\n onClear,\n classNameOverride,\n disabled,\n reversed = false,\n loading = false,\n secondary = false,\n ...restProps\n } = props\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleOnClear = (): void => {\n inputRef.current?.focus()\n onClear && onClear()\n }\n return (\n <div\n className={classnames(\n styles.wrapper,\n secondary ? styles.secondary : styles.default,\n reversed && styles.reversed,\n disabled && styles.disabled,\n value && styles.hasEndIconAdornment,\n classNameOverride\n )}\n >\n <div className={styles.startIconAdornment}>\n {loading ? (\n <LoadingSpinner\n accessibilityLabel=\"\"\n size=\"sm\"\n classNameOverride={styles.loadingSpinner}\n />\n ) : (\n <SearchIcon role=\"presentation\" />\n )}\n </div>\n\n <input\n ref={inputRef}\n type=\"search\"\n className={styles.input}\n disabled={disabled}\n value={value}\n onChange={onChange}\n readOnly={onChange === undefined}\n {...restProps}\n />\n {/* Inputs aren't able to have pseudo elements like ::after on them,\n so we have to create an element ourselves for the focus ring */}\n <div className={styles.focusRing} />\n\n {value && (\n <ClearButton\n isReversed={reversed}\n onClick={handleOnClear}\n disabled={disabled}\n classNameOverride={styles.endIconAdornment}\n aria-label=\"clear search\"\n />\n )}\n </div>\n )\n}\n\nInputSearch.displayName = \"InputSearch\"\n","import React, { useMemo } from \"react\"\nimport { v4 } from \"uuid\"\nimport { InputSearch } from \"~components/InputSearch\"\nimport { useSelectionContext } from \"../../context\"\nimport styles from \"./SearchInput.module.scss\"\n\nexport type SearchInputProps = {\n label?: string\n id?: string\n isLoading?: boolean\n}\n\nexport const SearchInput = ({\n label,\n id,\n isLoading,\n}: SearchInputProps): JSX.Element => {\n const { setSearchQuery, searchQuery } = useSelectionContext()\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setSearchQuery(e.target.value)\n }\n\n const handleClear = (): void => setSearchQuery(\"\")\n\n const inputId = useMemo(() => id ?? v4(), [id])\n\n return (\n <div className={styles.inputSearchContainer}>\n <InputSearch\n id={inputId}\n aria-label={label ?? \"Filter options by search query\"}\n secondary\n placeholder=\"Search…\"\n value={searchQuery}\n onChange={handleChange}\n onClear={handleClear}\n loading={isLoading}\n />\n </div>\n )\n}\n\nSearchInput.displayName = \"FilterMultiSelect.SearchInput\"\n","import React from \"react\"\nimport { Divider } from \"@kaizen/draft-divider\"\nimport styles from \"./SectionDivider.module.scss\"\n\nexport const SectionDivider = (): JSX.Element => (\n <li className={styles.divider} aria-hidden=\"true\">\n <Divider variant=\"canvas\" />\n </li>\n)\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { VisuallyHidden } from \"@kaizen/a11y\"\nimport { useSelectionContext } from \"../../../context\"\nimport styles from \"../SelectionControlButton.module.scss\"\n\nexport const ClearButton = (): JSX.Element => {\n const { selectionState } = useSelectionContext()\n const filteredOptions = Array.from(selectionState.collection.getKeys())\n const selectedOptions = Array.from(\n selectionState.selectionManager.selectedKeys\n )\n const isDisabled =\n filteredOptions.length === 0 ||\n !Boolean(\n filteredOptions.find(key =>\n selectionState.selectionManager.isSelected(key)\n )\n )\n\n return (\n <button\n type=\"button\"\n className={classnames(styles.button, isDisabled && styles.isDisabled)}\n aria-disabled={isDisabled}\n onClick={\n (): void => {\n !isDisabled &&\n selectionState.selectionManager.setSelectedKeys(\n selectedOptions.filter(\n option => !filteredOptions.includes(option)\n )\n )\n }\n // TODO: add announcement here to inform selection cleared\n }\n >\n Clear<VisuallyHidden> selections</VisuallyHidden>\n </button>\n )\n}\n\nClearButton.displayName = \"FilterMultiSelect.ClearButton\"\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { useSelectionContext } from \"../../../context\"\nimport styles from \"../SelectionControlButton.module.scss\"\n\nexport const SelectAllButton = (): JSX.Element => {\n const { selectionState } = useSelectionContext()\n const selectedOptions = Array.from(\n selectionState.selectionManager.selectedKeys\n )\n const disabledOptions = selectionState.disabledKeys\n ? Array.from(selectionState.disabledKeys)\n : []\n const filteredOptions = Array.from(\n selectionState.collection.getKeys()\n ).filter(key => !disabledOptions.includes(key))\n\n return (\n <button\n type=\"button\"\n className={classnames(\n styles.button,\n selectionState.selectionManager.isSelectAll && styles.isDisabled\n )}\n aria-disabled={selectionState.selectionManager.isSelectAll}\n onClick={\n (): false | void =>\n !selectionState.selectionManager.isSelectAll &&\n selectionState.selectionManager.setSelectedKeys([\n ...selectedOptions,\n ...filteredOptions,\n ])\n // TODO: add announcement here to inform all selected\n }\n >\n Select all\n </button>\n )\n}\n\nSelectAllButton.displayName = \"FilterMultiSelect.SelectAllButton\"\n","const CONNECTOR = \", \"\n\nconst truncateByCharacterLimit = (\n labels: string[],\n limit: number,\n labelsTruncatedCount = 0\n): string => {\n if (labels.length === 1 || labels.join(\"\").replace(/,/g, \"\").length < limit) {\n const moreIndicator =\n labelsTruncatedCount > 0 ? ` + ${labelsTruncatedCount} more` : \"\"\n return `${labels.join(CONNECTOR)}${moreIndicator}`\n }\n\n const newLabels = labels.slice(0, labels.length - 1)\n return truncateByCharacterLimit(newLabels, limit, labelsTruncatedCount + 1)\n}\n\nexport const getTruncatedLabels = (labels: string[], limit: number): string =>\n truncateByCharacterLimit(labels, limit)\n","import { Selection } from \"@react-types/shared\"\nimport { ItemType } from \"../types\"\n\nexport const getSelectedOptionLabels = (\n keys?: Selection,\n items?: ItemType[]\n): string[] => {\n if (!keys || !items) {\n return []\n }\n\n if (keys === \"all\") {\n return items.map(item => item.label)\n }\n\n return Array.from(keys)\n .map(key => items.find(item => item.value === key)?.label ?? \"\")\n .filter(item => item !== \"\")\n}\n","import React from \"react\"\nimport { Selection } from \"@react-types/shared\"\nimport { ItemType } from \"../types\"\n\nexport const getSelectedOptionKeys = (\n keys?: Selection,\n items?: ItemType[]\n): React.Key[] => {\n if (!keys || !items) {\n return []\n }\n\n if (keys === \"all\") {\n return items.map(item => item.value)\n }\n\n return Array.from(keys)\n}\n","import React, { useRef } from \"react\"\nimport { FilterTriggerRef } from \"~components/Filter\"\nimport { FilterButton } from \"~components/FilterButton\"\nimport { useMenuTriggerContext } from \"../../../context\"\nimport { getTruncatedLabels } from \"../../../utils\"\n\nexport type FilterTriggerButtonProps = {\n label: string\n selectedOptionLabels: string[]\n /**\n * Character limit of the button label.\n * It will always show the first selected label regardless if it exceeds the given character limit.\n */\n labelCharacterLimitBeforeTruncate?: number\n classNameOverride?: string // TODO: migrate it to use OverrideClassName<T> and omit the props controlled by React-Aria\n}\n\nexport const FilterTriggerButton = ({\n selectedOptionLabels,\n label,\n classNameOverride,\n labelCharacterLimitBeforeTruncate = 50,\n}: FilterTriggerButtonProps): JSX.Element => {\n const { buttonProps, buttonRef, menuTriggerState } = useMenuTriggerContext()\n const ref = useRef<FilterTriggerRef>({ triggerRef: buttonRef })\n\n return (\n <FilterButton\n ref={ref}\n {...buttonProps}\n label={label}\n selectedValue={getTruncatedLabels(\n selectedOptionLabels,\n labelCharacterLimitBeforeTruncate\n )}\n classNameOverride={classNameOverride}\n isOpen={menuTriggerState.isOpen}\n />\n )\n}\n\nFilterTriggerButton.displayName = \"FilterMultiSelect.TriggerButton\"\n","import React, { useRef } from \"react\"\nimport { FilterTriggerRef } from \"~components/Filter\"\nimport { FilterButtonRemovable } from \"~components/FilterButton\"\nimport { useMenuTriggerContext } from \"../../../context\"\nimport { getTruncatedLabels } from \"../../../utils\"\nimport { FilterTriggerButtonProps } from \"../FilterTriggerButton\"\n\nexport type RemovableFilterTriggerProps = FilterTriggerButtonProps & {\n onRemove: () => void\n}\n\nexport const RemovableFilterTrigger = ({\n label,\n selectedOptionLabels,\n labelCharacterLimitBeforeTruncate = 50,\n classNameOverride,\n onRemove,\n}: RemovableFilterTriggerProps): JSX.Element => {\n const { buttonProps, buttonRef, menuTriggerState } = useMenuTriggerContext()\n const ref = useRef<FilterTriggerRef>({ triggerRef: buttonRef })\n\n return (\n <FilterButtonRemovable\n ref={ref}\n classNameOverride={classNameOverride}\n triggerButtonProps={{\n ...buttonProps,\n label,\n selectedValue: getTruncatedLabels(\n selectedOptionLabels,\n labelCharacterLimitBeforeTruncate\n ),\n isOpen: menuTriggerState.isOpen,\n }}\n removeButtonProps={{\n onClick: onRemove,\n }}\n />\n )\n}\n\nRemovableFilterTrigger.displayName = \"FilterMultiSelect.RemovableTrigger\"\n","import { ListBox } from \"./subcomponents/ListBox\"\nimport { ListBoxSection } from \"./subcomponents/ListBoxSection\"\nimport { LoadMoreButton } from \"./subcomponents/LoadMoreButton\"\nimport { MenuFooter, MenuLoadingSkeleton } from \"./subcomponents/MenuLayout\"\nimport { MultiSelectOption } from \"./subcomponents/MultiSelectOption\"\nimport { NoResults } from \"./subcomponents/NoResults\"\nimport { Root, RootProps } from \"./subcomponents/Root\"\nimport { SearchInput } from \"./subcomponents/SearchInput/SearchInput\"\nimport { SectionDivider } from \"./subcomponents/SectionDivider\"\nimport {\n ClearButton,\n SelectAllButton,\n} from \"./subcomponents/SelectionControlButton\"\nimport {\n FilterTriggerButton,\n RemovableFilterTrigger,\n} from \"./subcomponents/Trigger\"\n\nexport type FilterMultiSelectProps = RootProps\n\nexport const FilterMultiSelect = Object.assign(Root, {\n TriggerButton: FilterTriggerButton,\n RemovableTrigger: RemovableFilterTrigger,\n SearchInput,\n ListBox,\n ListBoxSection,\n SectionDivider,\n Option: MultiSelectOption,\n SelectAllButton,\n ClearButton,\n MenuFooter, // For layout\n MenuLoadingSkeleton, // Menu Loading Skeleton example\n LoadMoreButton,\n NoResults,\n})\n","export const checkArraysMatch = (a1: any[], a2: any[]): boolean => {\n if (a1.length !== a2.length) return false\n return a1.every((v, i) => v === a2[i])\n}\n","import React, { Key, useEffect, useState } from \"react\"\nimport { Selection } from \"@react-types/shared\"\nimport {\n FilterMultiSelect,\n FilterMultiSelectProps,\n ItemType,\n getSelectedOptionLabels,\n} from \"~components/FilterMultiSelect\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { checkArraysMatch } from \"../../utils/checkArraysMatch\"\n\nexport type FilterBarMultiSelectProps = Omit<\n FilterMultiSelectProps,\n | \"isOpen\"\n | \"setIsOpen\"\n | \"renderTrigger\"\n | \"label\"\n | \"selectedKeys\"\n | \"trigger\"\n> & {\n id?: string\n}\n\n// This should technically be handled within the FilterMultiSelect\n// so that it only returns consumable formats instead of Set.\n// Someone fix please.\nexport type ConsumableSelection = string | Key[] | undefined\n\nconst convertSelectionToAConsumableFormat = (\n value: Selection\n): ConsumableSelection => {\n if (value === \"all\") return \"all\"\n const arrayOfValues = Array.from(value)\n\n return arrayOfValues.length > 0 ? Array.from(value) : undefined\n}\n\nconst convertConsumableFormatIntoSelection = (\n value: ConsumableSelection\n): Selection => new Set(value)\n\nexport const FilterBarMultiSelect = ({\n id,\n items: propsItems,\n children,\n onSelectionChange,\n ...props\n}: FilterBarMultiSelectProps): JSX.Element | null => {\n const { getFilterState, setFilterOpenState, updateValue, hideFilter } =\n useFilterBarContext<ConsumableSelection>()\n const [items, setItems] = useState<ItemType[]>(propsItems)\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarMultiSelect\")\n\n const filterState = getFilterState(id)\n\n useEffect(() => {\n if (!checkArraysMatch(items, propsItems)) {\n setItems(propsItems)\n }\n }, [propsItems])\n\n useEffect(() => {\n if (Array.isArray(filterState.value)) {\n const itemValues = items.map(({ value }) => value)\n const filteredValues = filterState.value.filter(value =>\n itemValues.includes(value)\n )\n\n if (!checkArraysMatch(filterState.value, filteredValues)) {\n updateValue(id, filteredValues)\n }\n }\n }, [items])\n\n return (\n <FilterMultiSelect\n label={filterState.name}\n // Convert the incoming FilterBar state to a Set (internal FilterMultiSelect state)\n selectedKeys={new Set(filterState.value || null)}\n onSelectionChange={(keys): void => {\n // Convert the internal FilterMultiSelect state (Set) to an Array for FilterBar state\n updateValue(id, convertSelectionToAConsumableFormat(keys))\n onSelectionChange?.(keys)\n }}\n items={items}\n isOpen={filterState.isOpen}\n onOpenChange={(open): void => setFilterOpenState(id, open)}\n trigger={(): JSX.Element => {\n const triggerProps = {\n selectedOptionLabels: filterState.value\n ? getSelectedOptionLabels(\n convertConsumableFormatIntoSelection(filterState.value),\n items\n )\n : [],\n label: filterState.name,\n }\n\n return filterState.isRemovable ? (\n <FilterMultiSelect.RemovableTrigger\n {...triggerProps}\n onRemove={() => hideFilter(id)}\n />\n ) : (\n <FilterMultiSelect.TriggerButton {...triggerProps} />\n )\n }}\n {...props}\n >\n {children}\n </FilterMultiSelect>\n )\n}\n\nFilterBarMultiSelect.displayName = \"FilterBar.MultiSelect\"\n","import React, { useContext } from \"react\"\nimport { SelectState } from \"@react-stately/select\"\nimport { SelectItem, SelectOption } from \"../types\"\n\n// We set the generic default value to `any` as SelectContext\n// is instantiated as a constant which does not accept generics.\ntype SelectContextValue<Option extends SelectOption = any> = {\n state: SelectState<SelectItem<Option>>\n}\n\nconst SelectContext = React.createContext<SelectContextValue | null>(null)\n\nexport const useSelectContext = <\n Option extends SelectOption = SelectOption,\n>(): SelectContextValue<Option> => {\n const context = useContext(SelectContext)\n\n if (!context) {\n throw new Error(\n \"useSelectContext must be used within the SelectContext.Provider\"\n )\n }\n\n return context\n}\n\ntype SelectProviderProps<Option extends SelectOption> = {\n children: React.ReactNode\n state: SelectState<SelectItem<Option>>\n}\n\nexport const SelectProvider = <Option extends SelectOption = SelectOption>({\n children,\n state,\n}: SelectProviderProps<Option>): JSX.Element => (\n <SelectContext.Provider value={{ state }}>{children}</SelectContext.Provider>\n)\n","import React, { HTMLAttributes } from \"react\"\nimport { AriaListBoxOptions, useListBox } from \"@react-aria/listbox\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { useSelectContext } from \"../../context\"\nimport { SelectOption, SelectItem } from \"../../types\"\nimport styles from \"./ListBox.module.scss\"\n\nexport type SingleListBoxProps<Option extends SelectOption> = OverrideClassName<\n HTMLAttributes<HTMLUListElement>\n> & {\n children: React.ReactNode\n /** Props for the popup. */\n menuProps: AriaListBoxOptions<SelectItem<Option>>\n}\n\nexport const ListBox = <Option extends SelectOption>({\n children,\n menuProps,\n classNameOverride,\n ...restProps\n}: SingleListBoxProps<Option>): JSX.Element => {\n const { state } = useSelectContext<Option>()\n const ref = React.useRef<HTMLUListElement>(null)\n const { listBoxProps } = useListBox(\n { ...menuProps, disallowEmptySelection: true, autoFocus: \"first\" },\n state,\n ref\n )\n\n return (\n <ul\n ref={ref}\n className={classnames(styles.listBox, classNameOverride)}\n {...listBoxProps}\n {...restProps}\n >\n {children}\n </ul>\n )\n}\n\nListBox.displayName = \"ListBox\"\n","import React, { HTMLAttributes } from \"react\"\nimport { useFocusRing } from \"@react-aria/focus\"\nimport { useOption } from \"@react-aria/listbox\"\nimport { mergeProps } from \"@react-aria/utils\"\nimport classnames from \"classnames\"\nimport { useSelectContext } from \"~components/FilterSelect/context\"\nimport { CheckIcon } from \"~icons/CheckIcon\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { SelectOption, SelectOptionNode } from \"../../types\"\nimport styles from \"./Option.module.scss\"\n\nexport type OptionProps<Option extends SelectOption = SelectOption> = {\n item: SelectOptionNode<Option>\n} & OverrideClassName<Omit<HTMLAttributes<HTMLLIElement>, \"children\">>\n\nexport const Option = <Option extends SelectOption = SelectOption>({\n item,\n classNameOverride,\n ...props\n}: OptionProps<Option>): JSX.Element => {\n const { state } = useSelectContext<Option>()\n const ref = React.useRef<HTMLLIElement>(null)\n const { optionProps, isSelected, isDisabled } = useOption(\n { key: item.key },\n state,\n ref\n )\n\n const { isFocusVisible, focusProps } = useFocusRing()\n\n return (\n <li\n {...mergeProps(optionProps, focusProps, props)}\n ref={ref}\n className={classnames(\n styles.option,\n isSelected && styles.isSelected,\n isFocusVisible && styles.isFocusVisible,\n isDisabled && styles.disabled,\n classNameOverride\n )}\n aria-label={item.textValue}\n >\n {item.rendered}\n <span\n className={classnames(styles.icon, isSelected && styles.isSelected)}\n >\n {isSelected && <CheckIcon inheritSize role=\"presentation\" />}\n </span>\n </li>\n )\n}\n\nOption.displayName = \"Option\"\n","import React from \"react\"\nimport { useListBoxSection } from \"@react-aria/listbox\"\nimport { Heading } from \"@kaizen/typography\"\nimport { SelectOption, SelectOptionGroupNode } from \"../../types\"\nimport { Option } from \"../Option/Option\"\nimport styles from \"./ListBoxSection.module.scss\"\n\nexport type ListBoxSectionProps<Option extends SelectOption> = {\n section: SelectOptionGroupNode<Option>\n}\n\nexport const ListBoxSection = <Option extends SelectOption = SelectOption>({\n section,\n}: ListBoxSectionProps<Option>): JSX.Element => {\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading: section.rendered,\n \"aria-label\": section[\"aria-label\"],\n })\n\n return (\n <>\n <li {...itemProps} className={styles.sectionWrapper}>\n {section.rendered && (\n <Heading\n tag=\"span\"\n variant=\"heading-6\"\n {...headingProps}\n classNameOverride={styles.sectionHeading}\n >\n {section.rendered}\n </Heading>\n )}\n <ul {...groupProps} className={styles.sectionList}>\n {Array.from(section.childNodes).map(item => (\n <Option key={item.key} item={item} />\n ))}\n </ul>\n </li>\n </>\n )\n}\n\nListBoxSection.displayName = \"ListBoxSection\"\n","import React from \"react\"\nimport { SelectItemNode, SelectOption } from \"../../types\"\nimport { ListBoxSection } from \"../ListBoxSection\"\nimport { Option } from \"../Option\"\n\nexport type ListItemProps<Option extends SelectOption = SelectOption> = {\n item: SelectItemNode<Option>\n}\n\nexport const ListItem = <Option extends SelectOption = SelectOption>({\n item,\n}: ListItemProps<Option>): JSX.Element =>\n item.type === \"section\" ? (\n <ListBoxSection<Option> key={item.key} section={item} />\n ) : (\n <Option<Option> key={item.key} item={item} />\n )\n\nListItem.displayName = \"ListItem\"\n","import React from \"react\"\nimport { SelectOption } from \"../../types\"\nimport { ListItem, ListItemProps } from \"../ListItem\"\n\nexport type ListItemsProps<Option extends SelectOption> = {\n items: Array<ListItemProps<Option>[\"item\"]>\n}\n\n/*\n * Default rendered list of select items\n */\nexport const ListItems = <Option extends SelectOption>({\n items,\n}: ListItemsProps<Option>): JSX.Element => (\n <>\n {items.map(item => (\n <ListItem<Option> key={item.key} item={item} />\n ))}\n </>\n)\n\nListItems.displayName = \"ListItems\"\n","import React, { HTMLAttributes } from \"react\"\nimport { FocusScope } from \"@react-aria/focus\"\nimport { useOverlay, DismissButton } from \"@react-aria/overlays\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { useSelectContext } from \"../../context\"\nimport { SelectOption } from \"../../types\"\n\nexport type OverlayProps = OverrideClassName<HTMLAttributes<HTMLDivElement>> & {\n children: React.ReactNode\n}\n\nexport const Overlay = <Option extends SelectOption>({\n children,\n classNameOverride,\n ...restProps\n}: OverlayProps): JSX.Element => {\n const { state } = useSelectContext<Option>()\n\n // Handle events that should cause the menu to close,\n // e.g. blur, clicking outside, or pressing the escape key.\n const overlayRef = React.useRef<HTMLDivElement>(null)\n const { overlayProps } = useOverlay(\n { isDismissable: true, isOpen: state.isOpen, onClose: state.close },\n overlayRef\n )\n\n // Wrap in <FocusScope> so that focus is restored back to the trigger when the menu is closed\n // and auto focus on the first focusable item after loading. (disable eslint no-autofocus error for it)\n // In addition, add hidden <DismissButton> components at the start and end of the list\n // to allow screen reader users to dismiss the popup easily.\n return (\n <div\n ref={overlayRef}\n className={classNameOverride}\n {...overlayProps}\n {...restProps}\n >\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <FocusScope contain autoFocus restoreFocus>\n <DismissButton onDismiss={state.close} />\n {children}\n <DismissButton onDismiss={state.close} />\n </FocusScope>\n </div>\n )\n}\n\nOverlay.displayName = \"Overlay\"\n","import React from \"react\"\nimport { Divider } from \"@kaizen/draft-divider\"\nimport styles from \"./SectionDivider.module.scss\"\n\nexport const SectionDivider = (): JSX.Element => (\n <Divider classNameOverride={styles.divider} variant=\"canvas\" />\n)\n\nSectionDivider.displayName = \"SectionDivider\"\n","import { SelectItem, SelectOption, SelectOptionGroup } from \"../types\"\n\nexport const isSelectOptionGroup = <Option extends SelectOption>(\n item: SelectItem\n): item is SelectOptionGroup<Option> =>\n item.hasOwnProperty(\"options\") && Array.isArray(item.options)\n","import React from \"react\"\nimport { Item, Section } from \"@react-stately/collections\"\nimport { CollectionElement } from \"@react-types/shared\"\nimport { SelectItem, SelectOption } from \"../types\"\nimport { isSelectOptionGroup } from \"./isSelectOptionGroup\"\n\nexport const transformSelectItemToCollectionElement = <\n Option extends SelectOption,\n>(\n item: SelectItem<Option>\n): CollectionElement<SelectItem<Option>> =>\n isSelectOptionGroup<Option>(item) ? (\n <Section<Option> key={item.label} title={item.label} items={item.options}>\n {(child): JSX.Element => <Item key={child.value}>{child.label}</Item>}\n </Section>\n ) : (\n <Item<Option> key={item.value}>{item.label}</Item>\n )\n","import React, { useState } from \"react\"\nimport { useButton } from \"@react-aria/button\"\nimport { HiddenSelect, useSelect } from \"@react-aria/select\"\nimport {\n useSelectState,\n SelectProps as AriaSelectProps,\n} from \"@react-stately/select\"\nimport { Filter, FilterContents } from \"~components/Filter\"\nimport { FilterButtonProps } from \"~components/FilterButton\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport { SelectProvider } from \"./context\"\nimport { ListBox } from \"./subcomponents/ListBox\"\nimport { ListBoxSection } from \"./subcomponents/ListBoxSection\"\nimport { ListItem } from \"./subcomponents/ListItem\"\nimport { ListItems } from \"./subcomponents/ListItems\"\nimport { Option } from \"./subcomponents/Option\"\nimport { Overlay } from \"./subcomponents/Overlay\"\nimport { SectionDivider } from \"./subcomponents/SectionDivider\"\nimport { SelectItem, SelectItemNode, SelectOption } from \"./types\"\nimport { isSelectOptionGroup } from \"./utils/isSelectOptionGroup\"\nimport { transformSelectItemToCollectionElement } from \"./utils/transformSelectItemToCollectionElement\"\nimport styles from \"./FilterSelect.module.scss\"\n\ntype OmittedAriaSelectProps =\n | \"label\"\n | \"children\"\n | \"isOpen\"\n | \"onOpenChange\"\n | \"defaultOpen\"\n | \"items\"\n\nexport type FilterSelectProps<Option extends SelectOption = SelectOption> = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n renderTrigger: (triggerButtonProps: FilterButtonProps) => JSX.Element\n label: string\n children?: (args: { items: Array<SelectItemNode<Option>> }) => React.ReactNode\n items: Array<SelectItem<Option>>\n} & OverrideClassName<Omit<AriaSelectProps<Option>, OmittedAriaSelectProps>>\n\nexport const FilterSelect = <Option extends SelectOption = SelectOption>({\n isOpen,\n setIsOpen,\n renderTrigger,\n label,\n children,\n items,\n classNameOverride,\n selectedKey,\n ...restProps\n}: FilterSelectProps<Option>): JSX.Element => {\n // Ref will be populated by Filter\n const [triggerRef, setTriggerRef] = useState<\n React.RefObject<HTMLButtonElement>\n >({ current: null })\n\n const disabledKeys = items.reduce((acc: React.Key[], item) => {\n if (isSelectOptionGroup(item)) {\n const keys = Array.from(item.options)\n .filter(groupItem => groupItem.disabled)\n .map(disabledItems => disabledItems.value)\n return [...acc, ...keys]\n }\n\n return item.disabled ? [...acc, item.value] : acc\n }, [])\n\n const ariaSelectProps: AriaSelectProps<SelectItem<Option>> = {\n label,\n items,\n children: transformSelectItemToCollectionElement,\n isOpen,\n onOpenChange: setIsOpen,\n disabledKeys,\n selectedKey:\n typeof selectedKey === \"number\" ? selectedKey.toString() : selectedKey,\n ...restProps,\n }\n\n const state = useSelectState(ariaSelectProps)\n\n const { triggerProps, menuProps } = useSelect(\n ariaSelectProps,\n state,\n triggerRef\n )\n\n const { buttonProps } = useButton(triggerProps, triggerRef)\n\n // The collection structure is set by useSelectState's `children`\n // which we have used a util to ensure the following structure\n // - SelectOptionGroup => Section\n // - Option => Item\n const itemNodes = Array.from(state.collection) as Array<\n SelectItemNode<Option>\n >\n\n return (\n <>\n <HiddenSelect label={label} state={state} triggerRef={triggerRef} />\n <Filter\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n renderTrigger={(): JSX.Element =>\n renderTrigger({\n selectedValue: state.selectedItem?.textValue || undefined,\n label,\n isOpen,\n ...buttonProps,\n })\n }\n onMount={setTriggerRef}\n classNameOverride={classNameOverride}\n >\n <FilterContents classNameOverride={styles.filterContents}>\n <SelectProvider<Option> state={state}>\n <Overlay<Option>>\n <ListBox<Option> menuProps={menuProps}>\n {children ? (\n children({ items: itemNodes })\n ) : (\n <ListItems<Option> items={itemNodes} />\n )}\n </ListBox>\n </Overlay>\n </SelectProvider>\n </FilterContents>\n </Filter>\n </>\n )\n}\n\nFilterSelect.displayName = \"FilterSelect\"\n\nFilterSelect.Section = ListBoxSection\nFilterSelect.SectionDivider = SectionDivider\nFilterSelect.Option = Option\nFilterSelect.ItemDefaultRender = ListItem\n","import React, { useEffect, useState } from \"react\"\nimport {\n FilterSelect,\n FilterSelectProps,\n SelectItem,\n SelectOption,\n} from \"~components/FilterSelect\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport { checkArraysMatch } from \"../../utils/checkArraysMatch\"\nimport { FilterBarButton } from \"../FilterBarButton\"\n\nexport type FilterBarSelectProps<Option extends SelectOption = SelectOption> =\n Omit<\n FilterSelectProps<Option>,\n \"isOpen\" | \"setIsOpen\" | \"renderTrigger\" | \"label\" | \"selectedKey\"\n > & {\n id?: string\n }\n\nexport const FilterBarSelect = <Option extends SelectOption = SelectOption>({\n id,\n items: propsItems,\n onSelectionChange,\n ...props\n}: FilterBarSelectProps<Option>): JSX.Element => {\n const { getFilterState, setFilterOpenState, updateValue } =\n useFilterBarContext<Option[\"value\"] | undefined>()\n const [items, setItems] = useState<Array<SelectItem<Option>>>(propsItems)\n\n if (!id) throw Error(\"Missing `id` prop in FilterBarSelect\")\n\n const filterState = getFilterState(id)\n\n useEffect(() => {\n if (!checkArraysMatch(items, propsItems)) {\n setItems(propsItems)\n }\n }, [propsItems])\n\n useEffect(() => {\n if (filterState.value) {\n const itemValues = items.map(item => (item as Option)?.value)\n if (!itemValues.includes(filterState.value)) {\n updateValue(id, undefined)\n }\n }\n }, [items])\n\n return (\n <FilterSelect<Option>\n {...props}\n items={items}\n selectedKey={filterState.value || null}\n label={filterState.name}\n renderTrigger={(triggerProps): JSX.Element => (\n <FilterBarButton\n {...triggerProps}\n id={id}\n isRemovable={filterState.isRemovable}\n />\n )}\n onSelectionChange={(key): void => {\n updateValue(id, key)\n onSelectionChange?.(key)\n }}\n isOpen={filterState.isOpen}\n setIsOpen={(open): void => setFilterOpenState(id, open)}\n />\n )\n}\n\nFilterBarSelect.displayName = \"FilterBarSelect\"\n","import React from \"react\"\nimport { SVG, IconProps } from \"~components/SVG\"\n\nexport const AddIcon = (props: IconProps): JSX.Element => (\n <SVG {...props}>\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n d=\"M10 2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8Zm4 8.8h-3.2V14H9.2v-3.2H6V9.2h3.2V6h1.6v3.2H14v1.6Z\"\n />\n </SVG>\n)\n\nAddIcon.displayName = \"AddIcon\"\n","import React from \"react\"\nimport { Menu, MenuList, MenuItem } from \"@kaizen/draft-menu\"\nimport { Button } from \"~components/Button\"\nimport { AddIcon } from \"~components/SVG/icons/AddIcon\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\n\nexport const AddFiltersMenu = (): JSX.Element => {\n const { getInactiveFilters, showFilter } = useFilterBarContext()\n const inactiveFilters = getInactiveFilters()\n\n return (\n <Menu\n button={\n <Button\n label=\"Add Filters\"\n secondary\n disabled={inactiveFilters.length === 0}\n icon={<AddIcon role=\"presentation\" />}\n />\n }\n >\n <MenuList>\n {inactiveFilters.map(({ id, name }) => (\n <MenuItem\n key={id}\n label={name}\n onClick={(): void => showFilter(id)}\n />\n ))}\n </MenuList>\n </Menu>\n )\n}\n\nAddFiltersMenu.displayName = \"FilterBar.AddFiltersMenu\"\n","import React from \"react\"\nimport { Button } from \"~components/Button\"\nimport { useFilterBarContext } from \"../../context/FilterBarContext\"\nimport styles from \"./ClearAllButton.module.scss\"\n\nexport const ClearAllButton = (): JSX.Element => {\n const { clearAllFilters } = useFilterBarContext()\n\n return (\n <Button\n label=\"Clear all\"\n aria-label=\"Clear all filters\"\n classNameOverride={styles.clearAllButton}\n secondary\n onClick={clearAllFilters}\n />\n )\n}\n\nClearAllButton.displayName = \"FilterBar.ClearAllButton\"\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n FilterBarProvider,\n FilterBarProviderProps,\n} from \"./context/FilterBarContext\"\nimport {\n FilterBarDatePicker,\n FilterBarDateRangePicker,\n FilterBarMultiSelect,\n FilterBarSelect,\n} from \"./subcomponents\"\nimport { AddFiltersMenu } from \"./subcomponents/AddFiltersMenu\"\nimport { ClearAllButton } from \"./subcomponents/ClearAllButton\"\nimport { FiltersValues } from \"./types\"\nimport styles from \"./FilterBar.module.scss\"\n\nexport type FilterBarProps<ValuesMap extends FiltersValues> = OverrideClassName<\n Omit<FilterBarProviderProps<ValuesMap>, \"children\">\n>\n\nexport const FilterBar = <ValuesMap extends FiltersValues>({\n filters,\n classNameOverride,\n ...providerProps\n}: FilterBarProps<ValuesMap>): JSX.Element => (\n <FilterBarProvider<ValuesMap> filters={filters} {...providerProps}>\n {(activeFilters): JSX.Element => (\n <div className={classnames(styles.filterBar, classNameOverride)}>\n <div className={styles.filtersContainer}>\n {Object.values(activeFilters).map(({ id, Component }) => (\n // `id` will always be `string`, but keyof ValuesMap transformed it\n <React.Fragment key={id as string}>\n {React.cloneElement(Component, { id })}\n </React.Fragment>\n ))}\n <AddFiltersMenu />\n </div>\n\n <div>\n <ClearAllButton />\n </div>\n </div>\n )}\n </FilterBarProvider>\n)\n\nFilterBar.displayName = \"FilterBar\"\n\nFilterBar.DatePicker = FilterBarDatePicker\nFilterBar.DateRangePicker = FilterBarDateRangePicker\nFilterBar.MultiSelect = FilterBarMultiSelect\nFilterBar.Select = FilterBarSelect\n","import React, { useContext } from \"react\"\nimport { StaticIntlProvider } from \"@cultureamp/i18n-react-intl\"\nimport { IntlContext } from \"react-intl\"\n\ntype Props = {\n locale: string\n children: React.ReactElement\n}\nexport const OptionalIntlProvider = ({\n locale,\n children,\n}: Props): JSX.Element => {\n const parent = useContext(IntlContext)\n\n if (parent) return children\n return <StaticIntlProvider locale={locale}>{children}</StaticIntlProvider>\n}\n\nOptionalIntlProvider.displayName = \"OptionalIntlProvider\"\n","import {\n makeCssVariableDefinitionsMap,\n Theme as BaseTheme,\n} from \"@kaizen/design-tokens\"\n\n/**\n * Use this class to set and apply themes, and to access or subscribe to the currently active one.\n * This class fulfills the idea of theming and runtime theme switching by relying on CSS variables,\n * and the ability to update them in JavaScript - a framework agnostic method.\n *\n * It works by converting a Theme interface to a flattened map of CSS variable keys and values, then calling `document.documentElement.style.setProperty(key, value)`.\n */\n\nexport class ThemeManager<Theme extends BaseTheme = BaseTheme> {\n private themeChangeListeners = [] as Array<(theme: Theme) => void>\n private theme: Theme\n private rootElement: HTMLElement | null = null\n private rootElementId: string\n\n constructor(\n theme: Theme,\n rootElementId: string = \"\",\n /* This allows you to stop the class from applying the theme automatically during construction. Defaults to true */\n apply: boolean = true\n ) {\n /*\n For some reason, storybook likes this way of defining class properties better.\n If you use `constructor( private theme: Theme, ...)` - theme becomes undefined within the class's methods.\n */\n this.theme = theme\n this.rootElementId = rootElementId\n if (apply) this.applyCurrentTheme()\n }\n\n public getRootElement = (): HTMLElement | null => this.rootElement\n public getRootElementId = (): string => this.rootElementId\n public getCurrentTheme = (): Theme => this.theme\n\n public setRootElement = (element: HTMLElement): void => {\n this.rootElement = element\n }\n public setRootElementId = (rootElementId: string): string =>\n (this.rootElementId = rootElementId)\n public setAndApplyTheme = (theme: Theme, force?: boolean): void => {\n if (!force) {\n if (this.theme === theme) return\n }\n this.theme = theme\n this.applyCurrentTheme()\n this.notifyThemeChangeListeners(theme)\n }\n\n public addThemeChangeListener = (listener: (theme: Theme) => void): void => {\n this.themeChangeListeners.push(listener)\n }\n public removeThemeChangeListener = (\n listener: (theme: Theme) => void\n ): void => {\n this.themeChangeListeners = this.themeChangeListeners.filter(\n l => l !== listener\n )\n }\n public applyCurrentTheme = (): void => {\n if (typeof window !== \"undefined\") {\n this.setRootElement(\n document.getElementById(this.rootElementId) ?? document.documentElement\n )\n const cssVariableDefinitions = makeCssVariableDefinitionsMap(this.theme)\n Object.entries(cssVariableDefinitions).forEach(([key, value]) => {\n this.rootElement?.style.setProperty(key, value)\n })\n }\n }\n\n private notifyThemeChangeListeners = (theme: Theme): void => {\n this.themeChangeListeners.forEach(listener => listener(theme))\n }\n}\n\n// I would like to expose this, but instantiating ThemeManager in some situations or runtimes (such as nodejs) cause exceptions.\n// For now it is not exposed, but we might come back to it, as it makes sense to have a singleton ThemeManager in almost all cases\n/* export const defaultThemeManager = new ThemeManager(defaultTheme) */\n","import { Theme } from \"./types\"\n\nexport const heartTheme: Theme = {\n themeKey: \"heart\",\n animation: {\n easingFunction: {\n easeInOut: \"cubic-bezier(0.455, 0.03, 0.515, 0.955)\",\n easeIn: \"cubic-bezier(0.55, 0.085, 0.68, 0.53)\",\n easeOut: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n linear: \"linear\",\n bounceIn: \"cubic-bezier(0.485, 0.155, 0.24, 1.245)\",\n bounceOut: \"cubic-bezier(0.485, 0.155, 0.515, 0.845)\",\n bounceInOut: \"cubic-bezier(0.76, -0.245, 0.24, 1.245)\",\n },\n duration: {\n instant: \"0ms\",\n immediate: \"100ms\",\n rapid: \"200ms\",\n fast: \"300ms\",\n slow: \"400ms\",\n deliberate: \"700ms\",\n },\n },\n border: {\n solid: {\n borderWidth: \"2px\",\n borderRadius: \"7px\",\n borderStyle: \"solid\",\n borderColor: \"#e1e2ea\",\n },\n dashed: {\n borderWidth: \"2px\",\n borderRadius: \"7px\",\n borderStyle: \"dashed\",\n },\n borderless: {\n borderWidth: \"2px\",\n borderRadius: \"7px\",\n borderStyle: \"solid\",\n borderColor: \"transparent\",\n },\n focusRing: {\n borderWidth: \"2px\",\n borderRadius: \"10px\",\n borderStyle: \"solid\",\n },\n },\n color: {\n purple: {\n 100: \"#f4edf8\",\n 200: \"#dfc9ea\",\n 300: \"#c9a5dd\",\n 400: \"#ae67b1\",\n 500: \"#844587\",\n 600: \"#5f3361\",\n 700: \"#4a234d\",\n 800: \"#2f2438\",\n },\n blue: {\n 100: \"#e6f6ff\",\n 200: \"#bde2f5\",\n 300: \"#73c0e8\",\n 400: \"#008bd6\",\n 500: \"#0168b3\",\n 600: \"#004970\",\n 700: \"#003157\",\n },\n green: {\n 100: \"#e8f8f4\",\n 200: \"#c4ede2\",\n 300: \"#8fdbc7\",\n 400: \"#5dcbad\",\n 500: \"#44a289\",\n 600: \"#2c7d67\",\n 700: \"#22594a\",\n },\n yellow: {\n 100: \"#fff9e4\",\n 200: \"#ffeeb3\",\n 300: \"#ffe36e\",\n 400: \"#ffca4d\",\n 500: \"#ffb600\",\n 600: \"#c68600\",\n 700: \"#876400\",\n },\n red: {\n 100: \"#fdeaee\",\n 200: \"#f9c2cb\",\n 300: \"#f597a8\",\n 400: \"#e0707d\",\n 500: \"#c93b55\",\n 600: \"#a82433\",\n 700: \"#6c1e20\",\n },\n orange: {\n 100: \"#fff0e8\",\n 200: \"#ffd1b9\",\n 300: \"#ffb08a\",\n 400: \"#ff9461\",\n 500: \"#e96c2f\",\n 600: \"#b74302\",\n 700: \"#903c00\",\n },\n gray: {\n 100: \"#f9f9f9\",\n 200: \"#f4f4f5\",\n 300: \"#eaeaec\",\n 400: \"#cdcdd0\",\n 500: \"#8c8c97\",\n 600: \"#524e56\",\n },\n white: \"#ffffff\",\n },\n dataViz: {\n favorable: \"#7dd5bd\",\n unfavorable: \"#e68d97\",\n },\n layout: {\n contentMaxWidth: \"1392px\",\n contentMaxWidthWithSidebar: \"1080px\",\n contentSideMargin: \"72px\",\n mobileActionsDrawerHeight: \"60px\",\n navigationBarHeight: \"72px\",\n breakpoints: {\n medium: \"768px\",\n large: \"1080px\",\n },\n },\n shadow: {\n small: {\n boxShadow:\n \"0px 3px 16px rgba(0, 0, 0, 0.06), 0px 1px 3px rgba(0, 0, 0, 0.1)\",\n },\n large: {\n boxShadow:\n \"0px 8px 40px rgba(0, 0, 0, 0.08), 0px 3px 9px rgba(0, 0, 0, 0.1)\",\n },\n },\n spacing: {\n xs: \"0.375rem\",\n sm: \"0.75rem\",\n md: \"1.5rem\",\n lg: \"2.25rem\",\n xl: \"3rem\",\n xxl: \"3.75rem\",\n xxxl: \"4.5rem\",\n xxxxl: \"5.25rem\",\n xxxxxl: \"6rem\",\n 0: \"0\",\n 1: \".0625rem\",\n 2: \".125rem\",\n 4: \".25rem\",\n 6: \".375rem\",\n 8: \".5rem\",\n 12: \".75rem\",\n 16: \"1rem\",\n 24: \"1.5rem\",\n 32: \"2rem\",\n 40: \"2.5rem\",\n 48: \"3rem\",\n 56: \"3.5rem\",\n 64: \"4rem\",\n 72: \"4.5rem\",\n 80: \"5rem\",\n 96: \"6rem\",\n 112: \"7rem\",\n 128: \"8rem\",\n 160: \"10rem\",\n 200: \"12.5rem\",\n 240: \"15rem\",\n 280: \"17.5rem\",\n 320: \"20rem\",\n },\n typography: {\n dataLarge: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"5.25rem\",\n lineHeight: \"5.25rem\",\n letterSpacing: \"normal\",\n },\n dataLargeUnits: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"2.625rem\",\n lineHeight: \"5.25rem\",\n letterSpacing: \"normal\",\n },\n dataMedium: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"3rem\",\n lineHeight: \"5rem\",\n letterSpacing: \"normal\",\n },\n dataMediumUnits: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.5rem\",\n lineHeight: \"5rem\",\n letterSpacing: \"normal\",\n },\n dataSmall: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.5rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n dataSmallUnits: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.125rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n display0: {\n fontFamily: '\"Tiempos Headline\", Georgia, serif',\n fontWeight: 800,\n fontSize: \"4.5rem\",\n lineHeight: \"5.25rem\",\n letterSpacing: \"0em\",\n },\n heading1: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"2.125rem\",\n lineHeight: \"2.625rem\",\n letterSpacing: \"normal\",\n },\n heading2: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.75rem\",\n lineHeight: \"2.25rem\",\n letterSpacing: \"normal\",\n },\n heading3: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.375rem\",\n lineHeight: \"1.875rem\",\n letterSpacing: \"normal\",\n },\n heading4: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 600,\n fontSize: \"1.125rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n heading5: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 600,\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n heading6: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"0.875rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n paragraphIntroLede: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"1.25rem\",\n lineHeight: \"1.875rem\",\n letterSpacing: \"0\",\n },\n paragraphBody: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n paragraphSmall: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"0.875rem\",\n lineHeight: \"1.125rem\",\n letterSpacing: \"normal\",\n },\n paragraphExtraSmall: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 400,\n fontSize: \"0.75rem\",\n lineHeight: \"1.125rem\",\n letterSpacing: \"normal\",\n },\n paragraphBold: {\n fontWeight: 600,\n },\n buttonPrimary: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 700,\n fontSize: \"1.125rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n buttonSecondary: {\n fontFamily: '\"Inter\", \"Noto Sans\", Helvetica, Arial, sans-serif',\n fontWeight: 500,\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n letterSpacing: \"normal\",\n },\n },\n}\n\nexport default heartTheme\n","export * from \"./heart\"\nexport * from \"./types\"\n\nimport { heartTheme } from \"./heart\"\nexport const defaultTheme = heartTheme\n","import React, {\n Context,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\"\nimport { ThemeManager } from \"./ThemeManager\"\nimport { defaultTheme, Theme } from \"./themes\"\n\nexport const ThemeContext: Context<Theme> = createContext<Theme>(defaultTheme)\n\n/**\n * Wrap your application in this provider using a ThemeManager, to synchronise it with a react context.\n * This allows child react elements to more easily use theme variables, using the {@link useTheme} hook.\n */\nexport const ThemeProvider = ({\n themeManager,\n ...props\n}: {\n themeManager?: ThemeManager\n children: React.ReactNode\n}): JSX.Element => {\n const [themeManagerInstance] = useState<ThemeManager>(\n () => themeManager || new ThemeManager(defaultTheme)\n )\n\n const [theme, setTheme] = useState<Theme>(\n themeManagerInstance.getCurrentTheme()\n )\n\n useEffect(() => {\n let cancelled = false\n const listener = (newTheme: Theme): void => {\n if (!cancelled) setTheme(newTheme)\n }\n themeManagerInstance.addThemeChangeListener(listener)\n return () => {\n cancelled = true\n themeManagerInstance.removeThemeChangeListener(listener)\n }\n }, [])\n\n return (\n <>\n <ThemeContext.Provider value={theme}>\n {props.children}\n </ThemeContext.Provider>\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n <link\n rel=\"preload\"\n href=\"https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2\"\n as=\"font\"\n type=\"font/woff2\"\n crossOrigin=\"anonymous\"\n />\n </>\n )\n}\n\nexport const useTheme = (): Theme => useContext(ThemeContext)\n","import React from \"react\"\nimport { OptionalIntlProvider } from \"./OptionalIntlProvider\"\nimport { ThemeProvider, ThemeManager } from \"./ThemeProvider\"\n\nexport type KaizenProviderProps = {\n children: React.ReactNode\n themeManager?: ThemeManager\n locale?: string\n}\n\nexport const KaizenProvider = ({\n children,\n themeManager,\n locale = \"en\",\n}: KaizenProviderProps): JSX.Element => (\n <OptionalIntlProvider locale={locale}>\n <ThemeProvider themeManager={themeManager}>{children}</ThemeProvider>\n </OptionalIntlProvider>\n)\n\nKaizenProvider.displayName = \"KaizenProvider\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FooterRoot.module.scss\"\n\nexport type FooterRootProps = OverrideClassName<\n HTMLAttributes<HTMLHeadingElement>\n>\n\nexport const FooterRoot = ({\n children,\n classNameOverride,\n ...restProps\n}: FooterRootProps): JSX.Element => (\n <footer\n className={classnames(styles.footerRoot, classNameOverride)}\n {...restProps}\n >\n {children}\n </footer>\n)\n\nFooterRoot.displayName = \"Workflow.FooterRoot\"\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { Paragraph } from \"@kaizen/typography\"\nimport { IndicatorActiveIcon } from \"~icons/IndicatorActiveIcon\"\nimport { IndicatorInactiveIcon } from \"~icons/IndicatorInactiveIcon\"\nimport { SuccessIcon } from \"~icons/SuccessIcon\"\nimport styles from \"./ProgressStepper.module.scss\"\n\nexport type ProgressStepperProps = {\n stepName: string\n steps: [string, ...string[]]\n isComplete?: boolean\n}\n\nconst getStepStatus = (\n isComplete: boolean,\n isCurrentStep: boolean,\n step: string,\n index: number\n): {\n icon: JSX.Element\n accessibleName: string\n} => {\n if (isComplete) {\n return {\n icon: (\n <SuccessIcon\n key={index}\n inheritSize\n role=\"presentation\"\n classNameOverride=\"success\"\n />\n ),\n accessibleName: `Completed: ${step}`,\n }\n }\n if (isCurrentStep) {\n return {\n icon: (\n <IndicatorActiveIcon\n key={index}\n inheritSize\n role=\"presentation\"\n classNameOverride=\"active\"\n />\n ),\n accessibleName: `Current: ${step}`,\n }\n }\n return {\n icon: (\n <IndicatorInactiveIcon\n key={index}\n inheritSize\n classNameOverride=\"incomplete\"\n role=\"presentation\"\n />\n ),\n accessibleName: `Not started: ${step}`,\n }\n}\n\nexport const ProgressStepper = ({\n stepName,\n steps,\n isComplete = false,\n ...restprops\n}: ProgressStepperProps): JSX.Element => {\n const currentStepIndex = steps.indexOf(stepName)\n\n return (\n <div className={styles.stepsContainer}>\n <ol\n className={styles.stepList}\n {...restprops}\n aria-labelledby=\"stepper-description\"\n >\n {steps.map((step: string, index: number) => {\n const isCurrentStep = currentStepIndex === index\n const isCompletedStep = index < currentStepIndex || isComplete\n const { accessibleName, icon: Icon } = getStepStatus(\n isCompletedStep,\n isCurrentStep,\n step,\n index\n )\n return (\n <li\n className={styles.step}\n key={`${index}-${step}`}\n aria-current={isCurrentStep}\n >\n <div className={styles.stepContent}>\n <span className=\"sr-only\">\n {/* will need to be translated */}\n {accessibleName}\n </span>\n <Paragraph\n classNameOverride={styles.stepName}\n variant=\"small\"\n color=\"white\"\n aria-hidden\n >\n {step}\n </Paragraph>\n <div className={styles.stepIndicator}>\n <span className={styles.stepIcon}>{Icon}</span>\n </div>\n {index < steps.length - 1 && (\n <div\n className={classnames([\n styles.stepDivider,\n isCompletedStep && styles.completedStep,\n ])}\n />\n )}\n </div>\n </li>\n )\n })}\n </ol>\n <Paragraph\n classNameOverride={styles.stepperDescription}\n variant=\"small\"\n color=\"white\"\n id=\"stepper-description\"\n >\n Step {currentStepIndex + 1} of {steps.length}\n </Paragraph>\n </div>\n )\n}\n\nProgressStepper.displayName = \"Workflow.ProgressStepper\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./FooterActions.module.scss\"\n\nexport type FooterActionsProps = {\n actionType?: \"Previous\" | \"Next\"\n action?: JSX.Element\n} & OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, \"children\">>\n\n/** A simple wrapper for a Footer previous or next action */\nexport const FooterAction = ({\n actionType = \"Previous\",\n action,\n ...restProps\n}: FooterActionsProps): JSX.Element => (\n <div\n className={classnames([\n styles.footerAction,\n styles[`footerAction${actionType}`],\n ])}\n {...restProps}\n >\n {action}\n </div>\n)\n\nFooterAction.displayName = \"Workflow.FooterActions\"\n","import React, { HTMLAttributes } from \"react\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n FooterRoot,\n FooterAction,\n ProgressStepper,\n ProgressStepperProps,\n} from \"./components\"\n\nexport type FooterProps = {\n /** An action to return to a previous step */\n previousAction?: JSX.Element\n /** An action to progress to the next step or submit the form */\n nextAction?: JSX.Element\n} & ProgressStepperProps &\n OverrideClassName<Omit<HTMLAttributes<HTMLElement>, \"children\">>\n\nexport const Footer = ({\n steps,\n stepName,\n isComplete,\n previousAction,\n nextAction,\n ...restProps\n}: FooterProps): JSX.Element => (\n <FooterRoot {...restProps}>\n <FooterAction action={previousAction} actionType=\"Previous\" />\n <ProgressStepper\n steps={steps}\n stepName={stepName}\n isComplete={isComplete}\n />\n <FooterAction action={nextAction} actionType=\"Next\" />\n </FooterRoot>\n)\n\nFooter.displayName = \"Workflow.Footer\"\n","import React, { HTMLAttributes } from \"react\"\n// import classnames from \"classnames\"\nimport { Tag, DefaultTagProps } from \"@kaizen/draft-tag\"\nimport { Heading } from \"@kaizen/typography\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Titles.module.scss\"\n\nexport type WorkflowStatus = {\n /** @default: \"statusDraft\" */\n variant?: DefaultTagProps[\"variant\"]\n content?: string\n}\n\nexport type WorkflowTitlesProps = {\n workflowName: string\n stepName: string\n status?: WorkflowStatus\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const Titles = ({\n workflowName,\n stepName,\n status,\n ...restProps\n}: WorkflowTitlesProps): JSX.Element => (\n <div className={styles.titles} {...restProps}>\n <Heading\n variant=\"heading-1\"\n tag=\"h1\"\n color=\"dark\"\n classNameOverride={styles.pageTitle}\n >\n <Heading\n classNameOverride={styles.prefix}\n variant=\"heading-6\"\n tag=\"span\"\n color=\"dark-reduced-opacity\"\n >\n {workflowName}\n <span className=\"sr-only\">:</span>\n </Heading>\n <span>{stepName}</span>\n </Heading>\n {status && (\n // status may need to be update by a fetch\n <div className={styles.status}>\n <Tag inline variant={status?.variant || \"statusDraft\"}>\n {status?.content}\n </Tag>\n </div>\n )}\n </div>\n)\n\nTitles.displayName = \"Workflow.Titles\"\n","import React, { HTMLAttributes } from \"react\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Actions.module.scss\"\n\nexport type WorkflowActionsProps = {\n /**\n * Header actions will render in order of the array.\n */\n headerActions?: JSX.Element[]\n} & OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, \"children\">>\n\n/** A wrapper for an exit trigger (and other) actions of the Header Workflow */\nexport const Actions = ({\n headerActions,\n ...restProps\n}: WorkflowActionsProps): JSX.Element => (\n <div className={styles.actions} {...restProps}>\n {headerActions?.map((action, index) => (\n <action.type key={`header-actions ${index}`} {...action.props} />\n ))}\n </div>\n)\n\nActions.displayName = \"Workflow.Actions\"\n","import React, { HTMLAttributes } from \"react\"\nimport { Brand, BrandProps } from \"@kaizen/brand\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Branding.module.scss\"\n\nexport type WorflowBrandingProps = {\n variant?: BrandProps[\"variant\"]\n alt: string\n} & OverrideClassName<HTMLAttributes<HTMLDivElement>>\n\nexport const Branding = ({\n variant = \"logo-horizontal\",\n alt,\n}: WorflowBrandingProps): JSX.Element => (\n <div className={styles.branding}>\n <Brand classNameOverride={styles.logo} variant={variant} alt={alt} />\n </div>\n)\n\nBranding.displayName = \"Workflow.Branding\"\n","import React, { HTMLAttributes } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Root.module.scss\"\n\nexport type HeaderRootProps = OverrideClassName<\n HTMLAttributes<HTMLHeadingElement>\n>\n\nexport const HeaderRoot = ({\n children,\n classNameOverride,\n ...restProps\n}: HeaderRootProps): JSX.Element => (\n <header className={classnames(styles.root, classNameOverride)} {...restProps}>\n {children}\n </header>\n)\n\nHeaderRoot.displayName = \"Workflow.HeaderRoot\"\n","import React from \"react\"\nimport {\n HeaderRoot,\n Branding,\n Titles,\n Actions,\n WorkflowTitlesProps,\n WorkflowActionsProps,\n} from \"./components\"\n\nexport type HeaderProps = WorkflowTitlesProps & WorkflowActionsProps\n\nexport const Header = ({\n workflowName,\n stepName,\n status,\n headerActions,\n ...restProps\n}: HeaderProps): JSX.Element => (\n <HeaderRoot {...restProps}>\n <Branding alt=\"Cultureamp\" />\n <Titles workflowName={workflowName} stepName={stepName} status={status} />\n <Actions headerActions={headerActions} />\n </HeaderRoot>\n)\n\nHeader.displayName = \"Workflow.Header\"\n","import React, { HTMLAttributes, ReactNode } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Main.module.scss\"\n\nexport type WorkflowMainProps = OverrideClassName<\n HTMLAttributes<HTMLDivElement>\n> & {\n children: ReactNode\n}\n\nexport const Main = ({\n children,\n classNameOverride,\n ...restProps\n}: WorkflowMainProps): JSX.Element => (\n <main className={classnames([styles.main, classNameOverride])} {...restProps}>\n {children}\n </main>\n)\n\nMain.displayName = \"Workflow.Main\"\n","import React, { HTMLAttributes, ReactNode } from \"react\"\nimport classnames from \"classnames\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport styles from \"./Wrapper.module.scss\"\n\nexport type WorkflowWrapperProps = OverrideClassName<\n HTMLAttributes<HTMLDivElement>\n> & {\n children: ReactNode\n}\n\nexport const Wrapper = ({\n children,\n classNameOverride,\n ...restProps\n}: WorkflowWrapperProps): JSX.Element => (\n <div className={classnames(styles.wrapper, classNameOverride)} {...restProps}>\n {children}\n </div>\n)\n\nWrapper.displayName = \"Workflow.Wrapper\"\n","import React, { HTMLAttributes } from \"react\"\nimport { OverrideClassName } from \"~types/OverrideClassName\"\nimport {\n Footer,\n FooterProps,\n Header,\n Main,\n HeaderProps,\n ProgressStepper,\n Wrapper,\n} from \"./subcomponents\"\n\nexport type WorkflowProps = OverrideClassName<HTMLAttributes<HTMLDivElement>> &\n FooterProps &\n HeaderProps\n\nconst WorkflowComponent = ({\n stepName,\n steps,\n isComplete,\n workflowName,\n status,\n headerActions,\n children,\n nextAction,\n previousAction,\n classNameOverride,\n ...restProps\n}: WorkflowProps): JSX.Element => (\n <Workflow.Wrapper classNameOverride={classNameOverride} {...restProps}>\n <Workflow.Header\n workflowName={workflowName}\n stepName={stepName}\n status={status}\n headerActions={headerActions}\n />\n <Workflow.Main>{children}</Workflow.Main>\n <Workflow.Footer\n stepName={stepName}\n steps={steps}\n isComplete={isComplete}\n nextAction={nextAction}\n previousAction={previousAction}\n />\n </Workflow.Wrapper>\n)\n\n/**\n * @deprecated Use { Workflow } from `@kaizen/components/future`\n */\nexport const Workflow = Object.assign(WorkflowComponent, {\n Header,\n Footer,\n Main,\n ProgressStepper,\n Wrapper,\n})\n"],"names":["forwardRef","useRef","useImperativeHandle","styles","__rest","__assign","LoadingSpinner","BadgeAnimated","Badge","SVG","ClearButton","useMediaQueries","Heading","Paragraph","assetUrl","useIntl","classNames","FormattedMessage","BrandMomentError","useState","usePopper","useEffect","_b","_a","FocusOn","checkArraysMatch","useContext","useMemo","useReducer","dpValidateDate","formatDateAsText","isInvalidDate","isDisabledDate","parseDateFromTextFormatValue","formatDateAsNumeral","isSelectingDayInCalendar","parseDateFromNumeralFormatValue","DateInput","FieldMessage","filterDatePickerFieldReducer","v4","getLocale","CalendarSingle","Tooltip","VisuallyHidden","CalendarRange","useMenuTriggerState","useMenuTrigger","useButton","useCallback","useListState","Item","useListBox","__spreadArray","ListBox","ListBoxSection","LoadingInput","LoadingParagraph","useOption","useFocusRing","mergeProps","useOverlay","DismissButton","FocusScope","SectionDivider","Divider","useListBoxSection","Section","useSelectState","useSelect","HiddenSelect","Menu","MenuList","MenuItem","IntlContext","StaticIntlProvider","ThemeManager","rootElementId","theme","makeCssVariableDefinitionsMap","createContext","SuccessIcon","IndicatorActiveIcon","IndicatorInactiveIcon","Tag","Brand"],"mappings":"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"}