@kaizen/components 1.20.5 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{SuccessIcon-562c344e.js → SuccessIcon-0162523d.js} +8 -3
- package/dist/cjs/SuccessIcon-0162523d.js.map +1 -0
- package/dist/cjs/SuccessIcon-4263d4c3.js +145 -0
- package/dist/cjs/SuccessIcon-4263d4c3.js.map +1 -0
- package/dist/cjs/dts/BrandMoment/_docs/ExampleHeaders.d.ts +4 -0
- package/dist/cjs/dts/Button/Button.d.ts +1 -15
- package/dist/cjs/dts/Button/components/GenericButton.d.ts +23 -10
- package/dist/cjs/dts/Button/index.d.ts +1 -0
- package/dist/cjs/dts/FilterBar/context/FilterBarContext.d.ts +5 -0
- package/dist/cjs/dts/FilterBar/context/reducer/filterBarStateReducer.d.ts +2 -0
- package/dist/cjs/dts/FilterBar/context/reducer/setupFilterBarState.d.ts +1 -1
- package/dist/cjs/dts/FilterBar/context/types.d.ts +3 -2
- package/dist/cjs/dts/FilterMultiSelect/FilterMultiSelect.d.ts +3 -6
- package/dist/cjs/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicMenu.d.ts +13 -0
- package/dist/cjs/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicValueSelect.d.ts +9 -0
- package/dist/cjs/dts/FilterMultiSelect/_docs/FilterBarExample/useDemographicData.d.ts +16 -0
- package/dist/cjs/dts/FilterMultiSelect/_docs/MockData.d.ts +10 -0
- package/dist/cjs/dts/FilterMultiSelect/subcomponents/ListBoxSection/ListBoxSection.d.ts +20 -5
- package/dist/cjs/dts/FilterMultiSelect/subcomponents/LoadMoreButton/LoadMoreButton.d.ts +1 -1
- package/dist/cjs/dts/FilterMultiSelect/subcomponents/SectionDivider/SectionDivider.d.ts +1 -4
- package/dist/cjs/dts/Workflow/subcomponents/Header/Header.d.ts +1 -1
- package/dist/cjs/dts/__future__/Workflow/subcomponents/Header/Header.d.ts +1 -1
- package/dist/cjs/future.js +1 -1
- package/dist/cjs/future.js.map +1 -1
- package/dist/cjs/index.css +14 -14
- package/dist/cjs/index.js +143 -112
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/{SuccessIcon-30b83808.js → SuccessIcon-2a676737.js} +8 -3
- package/dist/esm/SuccessIcon-2a676737.js.map +1 -0
- package/dist/esm/SuccessIcon-a903453a.js +138 -0
- package/dist/esm/SuccessIcon-a903453a.js.map +1 -0
- package/dist/esm/dts/BrandMoment/_docs/ExampleHeaders.d.ts +4 -0
- package/dist/esm/dts/Button/Button.d.ts +1 -15
- package/dist/esm/dts/Button/components/GenericButton.d.ts +23 -10
- package/dist/esm/dts/Button/index.d.ts +1 -0
- package/dist/esm/dts/FilterBar/context/FilterBarContext.d.ts +5 -0
- package/dist/esm/dts/FilterBar/context/reducer/filterBarStateReducer.d.ts +2 -0
- package/dist/esm/dts/FilterBar/context/reducer/setupFilterBarState.d.ts +1 -1
- package/dist/esm/dts/FilterBar/context/types.d.ts +3 -2
- package/dist/esm/dts/FilterMultiSelect/FilterMultiSelect.d.ts +3 -6
- package/dist/esm/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicMenu.d.ts +13 -0
- package/dist/esm/dts/FilterMultiSelect/_docs/FilterBarExample/DemographicValueSelect.d.ts +9 -0
- package/dist/esm/dts/FilterMultiSelect/_docs/FilterBarExample/useDemographicData.d.ts +16 -0
- package/dist/esm/dts/FilterMultiSelect/_docs/MockData.d.ts +10 -0
- package/dist/esm/dts/FilterMultiSelect/subcomponents/ListBoxSection/ListBoxSection.d.ts +20 -5
- package/dist/esm/dts/FilterMultiSelect/subcomponents/LoadMoreButton/LoadMoreButton.d.ts +1 -1
- package/dist/esm/dts/FilterMultiSelect/subcomponents/SectionDivider/SectionDivider.d.ts +1 -4
- package/dist/esm/dts/Workflow/subcomponents/Header/Header.d.ts +1 -1
- package/dist/esm/dts/__future__/Workflow/subcomponents/Header/Header.d.ts +1 -1
- package/dist/esm/future.js +1 -1
- package/dist/esm/future.js.map +1 -1
- package/dist/esm/index.css +15 -15
- package/dist/esm/index.js +143 -112
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +42 -19
- package/dist/styles.css +1 -1
- package/icons/chevron-down.icon.svg +15 -2
- package/icons/chevron-up.icon.svg +15 -3
- package/icons/clear.icon.svg +15 -2
- package/icons/comment-bank.icon.svg +18 -0
- package/icons/connect-line.icon.svg +5 -0
- package/icons/empty.icon.svg +14 -4
- package/icons/insights.icon.svg +5 -0
- package/icons/live.icon.svg +8 -0
- package/icons/success.icon.svg +15 -7
- package/package.json +17 -18
- package/dist/cjs/SuccessIcon-562c344e.js.map +0 -1
- package/dist/esm/SuccessIcon-30b83808.js.map +0 -1
package/dist/cjs/index.js.map
CHANGED
|
@@ -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/FilterDatePicker/utils/transformDateToInputValue.ts","../../src/FilterDatePicker/hooks/useDateInputHandlers.ts","../../src/LabelledMessage/LabelledMessage.tsx","../../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/utils/getNodeText.ts","../../src/FilterDatePicker/utils/getDateValidationHandler.tsx","../../src/FilterDatePicker/utils/validateDate.ts","../../src/FilterDatePicker/hooks/useDateValidation.ts","../../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 forwardRef,\n Ref,\n useImperativeHandle,\n useRef,\n ComponentType,\n FocusEvent,\n MouseEvent,\n} from \"react\"\nimport classnames from \"classnames\"\nimport { Badge, BadgeAnimated } from \"@kaizen/draft-badge\"\nimport { LoadingSpinner } from \"@kaizen/loading-spinner\"\nimport { ButtonProps } from \"../Button\"\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\ntype Props = ButtonProps & {\n additionalContent?: React.ReactNode\n iconButton?: boolean\n directionalLink?: boolean\n paginationLink?: boolean\n isActive?: boolean\n}\n\nexport type BadgeProps = {\n text: string\n animateChange?: boolean\n variant?: \"default\" | \"dark\" | \"active\"\n reversed?: boolean\n}\n\nexport type ButtonRef = { focus: () => void }\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: Props, 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: Props\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: Props,\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 = (props: Props, ref: Ref<HTMLAnchorElement>): 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: Props): 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<Props, { 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: Props): 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: Props): 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: Props): 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: Props): 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\"\nimport GenericButton, {\n GenericProps,\n ButtonFormAttributes,\n BadgeProps,\n ButtonRef,\n WorkingProps,\n WorkingUndefinedProps,\n} from \"./components/GenericButton\"\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/**\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 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, 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 | {\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 \"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 { ...updateDependentFilters(state) }\n }\n}\n","import { Filters, FiltersValues } from \"../../types\"\nimport { FilterBarState } from \"../types\"\n\nexport const setupFilterBarState = <ValuesMap extends FiltersValues>(\n filters: Filters<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 // A dependent filter is set to `null` here as it\n // will be re-evaluated in the `update_values` dispatch action.\n isUsable: hasDependency ? null : true,\n }\n\n if (hasDependency) {\n baseState.dependentFilterIds.add(id)\n }\n\n return baseState\n },\n {\n filters: {},\n // These will be set by the `update_values` dispatch action.\n activeFilterIds: new Set(),\n // To prevent an infinite loop calculating dependent filters,\n // `values` is set to `null` and default values will be\n // set by the `update_values` dispatch action.\n values: null,\n dependentFilterIds: new Set(),\n } as FilterBarState<ValuesMap>\n )\n\n return 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 toggleOpenFilter: <Id extends keyof ValuesMap>(\n id: Id,\n isOpen: boolean\n ) => 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)\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 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 =\n state.values === null || checkShouldUpdateValues<ValuesMap>(state, values)\n if (shouldUpdate) dispatch({ type: \"update_values\", values: { ...values } })\n }, [values])\n\n useEffect(() => {\n const shouldUpdate =\n state.values !== null && checkShouldUpdateValues<ValuesMap>(state, values)\n if (shouldUpdate) onValuesChange({ ...state.values! })\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 { 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","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","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\"\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\"\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 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, toggleOpenFilter, updateValue } = useFilterBarContext<\n Date | undefined\n >()\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 => toggleOpenFilter(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, toggleOpenFilter, updateValue } = useFilterBarContext<\n DateRange | undefined\n >()\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 => toggleOpenFilter(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>{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 from \"react\"\nimport { MultiSelectItem } from \"../../types\"\nimport styles from \"./ListBoxSection.module.scss\"\n\nexport interface ListBoxSectionProps {\n items: MultiSelectItem[]\n /**\n * Becomes an aria-label on the section, informing\n * unsighted users\n */\n sectionName: string\n children: (item: MultiSelectItem) => React.ReactNode\n}\n\nexport const ListBoxSection = ({\n items,\n sectionName,\n children,\n}: ListBoxSectionProps): JSX.Element => (\n <div aria-label={sectionName} className={styles.listBoxSection}>\n {Array.from(items).map(node => node != undefined && children(node))}\n </div>\n)\n\nListBoxSection.displayName = \"FilterMultiSelect.ListBoxSection\"\n","import React from \"react\"\nimport { Button, ButtonProps } from \"@kaizen/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 <Divider classNameOverride={styles.divider} variant=\"canvas\" />\n)\n\nSectionDivider.displayName = \"FilterMultiSelect.SectionDivider\"\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, toggleOpenFilter, 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 => toggleOpenFilter(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, toggleOpenFilter, updateValue } = useFilterBarContext<\n Option[\"value\"] | undefined\n >()\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 => toggleOpenFilter(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 { HeaderRoot, Branding, Titles, Actions } from \"./components\"\nimport { WorkflowActionsProps, WorkflowTitlesProps } from \"./\"\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}&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","formatDateAsText","isInvalidDate","isDisabledDate","parseDateFromTextFormatValue","formatDateAsNumeral","isSelectingDayInCalendar","parseDateFromNumeralFormatValue","useIntl","DateInput","FieldMessage","filterDatePickerFieldReducer","v4","getLocale","CalendarSingle","dpValidateDate","Tooltip","VisuallyHidden","CalendarRange","useMenuTriggerState","useMenuTrigger","useButton","useCallback","useListState","Item","useListBox","__spreadArray","ListBox","ListBoxSection","Button","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/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}&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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"}
|