{"version":3,"file":"static/chunks/6538-a75d5af99c473208.js","mappings":"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","sources":["webpack://_N_E/./src/components/atoms/Divider/Divider.tsx","webpack://_N_E/./src/components/atoms/InputDropDown/InputDropDown.tsx","webpack://_N_E/./src/components/atoms/InputError/InputError.tsx","webpack://_N_E/./src/components/atoms/InputField/InputStyling.ts","webpack://_N_E/./src/components/atoms/InputLabel/InputLabel.tsx","webpack://_N_E/./src/components/molecules/Loading/Loading.tsx","webpack://_N_E/./src/components/organisms/PageWrapper/PageWrapper.tsx","webpack://_N_E/./src/lib/constants/constants/featureFlags.ts","webpack://_N_E/./src/lib/hooks/featureFlags/useOptimizelyFeature.ts","webpack://_N_E/./src/lib/hooks/toasts/Toast.tsx","webpack://_N_E/./src/lib/utils/ComponentFocused/ComponentFocused.tsx","webpack://_N_E/./src/lib/utils/helpers/ObjectsHelpers/AppendAttributeIfExists.ts","webpack://_N_E/<anon>"],"sourcesContent":["/** The colors that can be used for the divider */\nexport type DividerColor = 'darkGrey' | 'lightGrey' | 'white';\n\n/**\n * IDivider Interface for the Divider component\n *\n * @interface IDivider\n */\nexport interface IDivider {\n /**\n * The color of divider to display.\n *\n * @memberof IDivider\n * @member {DividerColor} type\n */\n type: DividerColor;\n /**\n * The optional classes to be applied to the component.\n *\n * @memberof IDivider\n * @default ''\n * @member {string} [classes]\n */\n classes?: string;\n}\n\n/**\n * Divider Class Map The class map for the divider component.\n *\n * @constant\n */\nconst dividerClassMap = {\n darkGrey: 'border-neutral-600 bg-neutral-600',\n lightGrey: 'border-neutral-300 bg-neutral-300',\n white: 'border-neutral-100 bg-neutral-100',\n};\n\n/**\n * Divider - Divider Element for separating content.\n *\n * @param {IDivider} props - The props for the Divider component\n * @returns {React.FC<IDivider>} Divider Component\n */\nconst Divider: React.FC<IDivider> = ({ type, classes = '' }: IDivider) => {\n const dividerClasses = `border-top-[.5px] w-full ${dividerClassMap[type]} ${classes}`;\n return <hr data-testid=\"divider\" className={dividerClasses} />;\n};\n\nexport default Divider;\n","import { ColorShade, ColorType } from '@/components/atoms/Colors/Colors';\nimport Icon from '@/components/atoms/Icon/Icon';\nimport InputError from '@/components/atoms/InputError/InputError';\nimport {\n inputClasses,\n inputDisabledClasses,\n inputErrorClasses,\n labelClasses as labelClassesBase,\n labelDisabledClasses,\n} from '@/components/atoms/InputField/InputStyling';\nimport { bodySizeClasses } from '@/components/atoms/Typography/TextClasses';\nimport { Listbox, Transition } from '@headlessui/react';\nimport { cva } from 'cva';\nimport { LegacyRef, forwardRef, useCallback, useEffect, useState } from 'react';\nimport {\n FieldError,\n FieldErrorsImpl,\n FieldValues,\n Merge,\n} from 'react-hook-form';\n\n/**\n * IInputDropDown Interface for the Input Drop Down Values\n *\n * @interface IInputDropDownOption\n */\nexport interface IInputDropDownOption {\n /**\n * The name of the option.\n *\n * @memberof IInputDropDownOption\n * @member {string} name\n */\n name: string;\n /**\n * The value of the option.\n *\n * @memberof IInputDropDownOption\n * @member {string} value\n */\n value: string;\n}\n\n/**\n * InputDropDown Interface for the Input Drop Down Component\n *\n * @interface IInputDropDown\n */\nexport interface IInputDropDown {\n /**\n * The label of the input.\n *\n * @memberof IInputDropDown\n * @member {string} label\n */\n label: string;\n /**\n * The values to display in the drop down.\n *\n * @memberof IInputDropDown\n * @member {IInputDropDownOption[]} values\n */\n values: IInputDropDownOption[];\n /**\n * If the input is read only.\n *\n * @memberof IInputDropDown\n * @member {boolean} [readOnly]\n */\n readOnly?: boolean;\n /**\n * The function to call when the input value changes.\n *\n * @memberof IInputDropDown\n * @member {LegacyRef<HTMLInputElement> | undefined} [inputRef]\n */\n inputRef?: LegacyRef<HTMLInputElement> | undefined;\n /**\n * The function to call when the input value changes.\n *\n * @memberof IInputDropDown\n * @member {(value: IInputDropDownOption) => void} [onChange]\n * @param value\n * @returns {void}\n */\n onChange?: (value: IInputDropDownOption) => void;\n /**\n * The onFocus function\n *\n * @memberof IInputDropDown\n * @member {() => void} [onFocus]\n * @returns {void}\n */\n onFocus?: () => void;\n /**\n * The onBlur function\n *\n * @memberof IInputDropDown\n * @member {() => void} [onBlur]\n * @returns {void}\n */\n onBlur?: () => void;\n /**\n * A formatter function for the the display the selected value of the input.\n *\n * @memberof IInputDropDown\n * @member {(value: IInputDropDownOption) => string} [inputValueFormatter]\n * @param {IInputDropDownOption} value - The value to format.\n * @returns {string} The formatted value.\n */\n inputValueFormatter?: (value: IInputDropDownOption) => string;\n /**\n * The error message to display.\n *\n * @memberof IInputDropDown\n * @member {FieldError | Merge<FieldError, FieldErrorsImpl<FieldValues>>} [error]\n */\n error?:\n | FieldError\n | Merge<FieldError, FieldErrorsImpl<FieldValues>>\n | undefined;\n /**\n * The value set to the field\n *\n * @memberof IInputDropDown\n * @member {IInputDropDownOption} [value]\n */\n value?: IInputDropDownOption;\n /**\n * If the error should be hidden\n *\n * @memberof IInputDropDown\n * @default false\n * @member {boolean} [hideError]\n */\n hideError?: boolean;\n /**\n * The optional classes to apply to the input.\n *\n * @memberof IInputDropDown\n * @default ''\n * @member {string} [classes]\n */\n classes?: string;\n /**\n * The optional classes to apply to the list box container.\n *\n * @memberof IInputDropDown\n * @default ''\n * @member {string} [listBoxContainerClasses]\n */\n listBoxContainerClasses?: string;\n /**\n * The list box button classes\n *\n * @memberof IInputDropDown\n * @default ''\n * @member {string} [listBoxButtonClasses]\n */\n listBoxButtonClasses?: string;\n /**\n * The list box button open classes\n *\n * @memberof IInputDropDown\n * @default ''\n * @member {string} [listBoxButtonOpenClasses]\n */\n listBoxButtonOpenClasses?: string;\n /**\n * The listbox options classes\n *\n * @memberof IInputDropDown\n * @default ''\n * @member {string} [listBoxOptionsClasses]\n */\n listBoxOptionsClasses?: string;\n /**\n * The optional error classes to apply to the input.\n *\n * @memberof IInputDropDown\n * @default ''\n * @member {string} [inputErrorClasses]\n */\n inputErrorClasses?: string;\n /**\n * The children to render in the component.\n *\n * @memberof IInputDropDown\n * @member {React.ReactNode} [children]\n */\n children?: React.ReactNode;\n}\n\n/**\n * Input Dynamic Dynamic Input Component that renders an input with a label that\n * moves over the top of the input when the input is focused.\n *\n * @param {IInputDropDown} props - The props to pass to the component.\n * @returns {React.FC<IInputDropDown>} Input Dynamic Component\n */\nconst InputDropDown = forwardRef<HTMLButtonElement, IInputDropDown>(\n (\n {\n label,\n values,\n error,\n readOnly,\n onChange,\n onFocus,\n onBlur,\n inputValueFormatter,\n value,\n classes = '',\n listBoxOptionsClasses,\n listBoxContainerClasses,\n listBoxButtonOpenClasses,\n listBoxButtonClasses: listboxButtonClassesOverride,\n inputErrorClasses: inputErrorClassesOverride,\n hideError = false,\n children,\n },\n ref\n ) => {\n // Set Input State\n const [inputValue, setInputValue] = useState<IInputDropDownOption>({\n name: '',\n value: '',\n });\n\n useEffect(() => {\n if (value) {\n setInputValue(value);\n }\n }, [value]);\n\n /**\n * Change Value Change Value of input on the prop on change and state.\n *\n * @param {IInputDropDownOption} data - The data to set the input value to.\n */\n const changeValue = (data: IInputDropDownOption) => {\n if (data) {\n setInputValue(data);\n if (onChange) {\n onChange(data);\n }\n }\n };\n\n /**\n * The handle Focus callback function\n *\n * @returns {void}\n */\n const handleFocus = useCallback(() => {\n onFocus?.();\n }, [onFocus]);\n\n /**\n * The handle Blur callback function\n *\n * @returns {void}\n */\n const handleBlur = useCallback(() => {\n onBlur?.();\n }, [onBlur]);\n\n // Set Chevron Color Shades based on state\n let chevronColorShade: ColorShade = 300;\n let chevronColorType: ColorType = 'base';\n\n // If there is an input value\n const isInputValue = inputValue.value !== '';\n\n // If there is an error apply additional classes\n if (error) {\n chevronColorShade = 200;\n chevronColorType = 'error';\n }\n\n // If their is a read only value apply additional classes\n if (readOnly) {\n // Set Chevron\n chevronColorShade = 600;\n chevronColorType = 'neutral';\n }\n const isError = error ? 'true' : 'false';\n const testId = `input-drop-down-${isInputValue}-${isError}-${readOnly}`;\n\n /**\n * The classes for the listbox button\n *\n * @constant {Function}\n */\n const listBoxButtonClasses = cva(\n `${inputClasses} ${listboxButtonClassesOverride}`,\n {\n variants: {\n error: {\n true: inputErrorClassesOverride ?? inputErrorClasses,\n },\n readOnly: {\n true: inputDisabledClasses,\n },\n open: {\n true:\n listBoxButtonOpenClasses ??\n '!rounded-b-none border-solid !border-base-400 !border-2',\n },\n },\n }\n );\n /**\n * The classes for the label\n *\n * @constant {Function}\n */\n const labelClasses = cva(`${labelClassesBase} leading-5 top-2.5`, {\n variants: {\n empty: {\n true: 'text-neutral-700 text-body4 !top-[18px]',\n },\n error: {\n true: '!text-error-200',\n },\n readOnly: {\n true: labelDisabledClasses,\n },\n },\n });\n /**\n * The classes for the input field\n *\n * @constant {Function}\n */\n const inputFieldClasses = cva(\n `${bodySizeClasses.body4} absolute top-[22px] left-0 text-left ml-3 truncate w-[90%]`,\n {\n variants: {\n error: {\n true: 'text-error-200',\n },\n readOnly: {\n true: 'text-neutral-500',\n false: 'text-neutral-800',\n },\n centered: {\n true: 'absolute top-4 right-0',\n },\n },\n }\n );\n\n /**\n * The classes for the option\n *\n * @constant {Function}\n */\n const optionClasses = cva(\n 'select-none relative px-3 py-2.5 hover:bg-base-100 cursor-pointer focus:bg-base-200',\n {\n variants: {\n active: {\n true: 'bg-base-100',\n },\n selected: {\n true: 'bg-base-200',\n },\n },\n }\n );\n\n return (\n <div className={classes}>\n <Listbox\n as=\"div\"\n data-testid={testId}\n value={inputValue}\n onChange={changeValue}\n disabled={readOnly}\n onFocus={handleFocus}\n >\n {({ open }) => (\n <>\n <div\n className={`relative h-full w-full ${listBoxContainerClasses}`}\n >\n <Listbox.Button\n className={listBoxButtonClasses({\n error: !readOnly && !!error,\n readOnly: readOnly,\n open: !readOnly && open,\n })}\n data-testid=\"input-drop-down-button\"\n ref={ref}\n onBlur={handleBlur}\n >\n <span\n className={inputFieldClasses({\n error: !readOnly && !!error,\n readOnly: readOnly,\n centered: !label,\n })}\n data-testid=\"input-drop-down-value\"\n >\n {isInputValue && inputValue && inputValueFormatter\n ? inputValueFormatter(inputValue)\n : inputValue.name}\n </span>\n <span className=\"absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none\">\n {open ? (\n <Icon\n icon=\"chevronUp\"\n size={22}\n colorType={chevronColorType}\n colorShade={chevronColorShade}\n />\n ) : (\n <Icon\n icon=\"chevronDown\"\n size={22}\n colorType={chevronColorType}\n colorShade={chevronColorShade}\n />\n )}\n </span>\n <Listbox.Label\n className={labelClasses({\n error: !readOnly && !!error,\n readOnly: readOnly,\n empty: !isInputValue,\n })}\n >\n {label}\n </Listbox.Label>\n </Listbox.Button>\n\n {children}\n\n <Transition\n show={open}\n enter=\"transition ease-out duration-200\"\n enterFrom=\"opacity-0 translate-y-1\"\n leave=\"transition ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n className=\"absolute w-full rounded-md bg-white shadow-lg z-[11]\"\n >\n <Listbox.Options\n static\n className={`max-h-[200px] rounded-md rounded-t-none text-base shadow-xs overflow-auto focus:outline-none sm:text-sm sm:leading-5 bg-neutral-100 ${listBoxOptionsClasses}`}\n >\n {values.map((value) => (\n <Listbox.Option\n key={value.value}\n value={value}\n data-testid={`dropdown-menu-item-${value.value}`}\n className=\"text-left\"\n >\n {({ selected, active }) => (\n <div\n className={optionClasses({\n active,\n selected,\n })}\n >\n <span\n className={`${bodySizeClasses.body4} text-neutral-800 block truncate`}\n >\n {value.name}\n </span>\n </div>\n )}\n </Listbox.Option>\n ))}\n </Listbox.Options>\n </Transition>\n </div>\n </>\n )}\n </Listbox>\n {!hideError && <InputError error={error} />}\n </div>\n );\n }\n);\n\nInputDropDown.displayName = 'InputDropDown';\n\nexport default InputDropDown;\n","import { errorMessageClasses } from '@/components/atoms/InputField/InputStyling';\nimport { FieldError, FieldErrorsImpl, Merge } from 'react-hook-form';\n\n/**\n * The input field error\n *\n * @type {InputFieldError}\n */\nexport type InputFieldError =\n | FieldError\n | Merge<FieldError, FieldErrorsImpl<FieldError>>\n | undefined;\n\n/**\n * IInputError Interface for the InputError Component\n *\n * @interface IInputError\n */\nexport interface IInputError {\n /**\n * The error object from react-hook-form\n *\n * @memberof IInputError\n * @member {InputFieldError} error\n */\n error: InputFieldError;\n /**\n * Optional classes for the component\n *\n * @memberof IInputError\n * @default ''\n * @member {string} [classes]\n */\n classes?: string;\n}\n\n/**\n * Input Error Used to display an error message for a form input.\n *\n * @param {IInputError} props - The props for the InputError component\n * @returns {React.FC<IInputError>} InputError Component\n */\nconst InputError: React.FC<IInputError> = ({\n error,\n classes = '',\n}: IInputError) => {\n return (\n <div className={`flex h-5 ${classes}`}>\n <span\n className={errorMessageClasses}\n data-testid=\"input-error\"\n role=\"alert\"\n >\n {error ? (error.message as string) : ''}\n </span>\n </div>\n );\n};\n\nexport default InputError;\n","import { bodySizeClasses } from '../Typography/TextClasses';\n\n/**\n * Base Classes Label Input Base Classes\n *\n * @constant\n */\nexport const baseClasses = `${bodySizeClasses.body4} h-14 w-full rounded border border-neutral-300 py-0`;\n\n/**\n * Label Classes Base Classes for the Label\n *\n * @constant\n */\nexport const labelClasses =\n 'font-petco text-[0.75rem] absolute text-neutral-700 duration-300 -translate-y-1 scale-60 top-2.5 z-10 origin-[0] bg-white px-3 left-0';\n\n/**\n * Label Focus Classes Base Classes for the Label when the input is focused\n *\n * @constant\n */\nexport const labelFocusClasses = 'peer-focus:text-[0.75rem] peer-focus:top-5';\n\n/** Label Disabled Classes Base Classes for the Label when the input is disabled */\nexport const labelDisabledClasses = '!text-neutral-500';\n\n/**\n * Label Peer Placeholder Shown Classes Show when only the blank place holder is\n * being shown\n *\n * @constant\n */\nexport const labelPeerPlaceholderShownClasses =\n 'peer-placeholder-shown:scale-100 peer-placeholder-shown:text-[1rem] peer-placeholder-shown:-translate-y-3.5 peer-placeholder-shown:top-1/2 peer-placeholder:transform peer-placeholder:-translate-top-1/2';\n\n/**\n * Input Classes Classes for our input field\n *\n * @constant\n */\nexport const inputClasses = `${baseClasses} bg-neutral-100 rounded-md border-1 border-neutral-700 appearance-none focus:outline-none focus:ring-2 focus:ring-base-400 focus:border-invisible peer pt-4`;\n\n/**\n * Input Error Classes Classes for our input field when there is an error\n *\n * @constant\n */\nexport const inputErrorClasses =\n '!border-error-200 !border-solid !border-2 !focus:ring-0';\n\n/**\n * Input Disabled Classes Classes for our input field when it is disabled\n *\n * @constant\n */\nexport const inputDisabledClasses =\n '!border-neutral-500 !text-neutral-500 !bg-neutral-300 cursor-not-allowed';\n\n/**\n * Error Message Classes Classes for our error message\n *\n * @constant\n */\nexport const errorMessageClasses = `${bodySizeClasses.overline} text-error-200 h-5`;\n","import { bodySizeClasses } from '@/components/atoms/Typography/TextClasses';\n/**\n * IInputLabel - Interface for InputLabel component\n *\n * @interface IInputLabel\n */\nexport interface IInputLabel {\n /**\n * The name of the input label.\n *\n * @memberof IInputLabel\n * @member {string} name\n */\n name: string;\n /**\n * The children of the input label.\n *\n * @memberof IInputLabel\n * @member {React.ReactNode | string} children\n */\n children: React.ReactNode | string;\n /**\n * The optional classes for the input label.\n *\n * @memberof IInputLabel\n * @default ''\n * @member {string} [classes]\n */\n classes?: string;\n}\n\n/**\n * Input Label Used to display a label for a form input.\n *\n * @param {IInputLabel} props - The props for the InputLabel component\n * @returns {React.FC<IInputLabel>} InputLabel Component\n */\nconst InputLabel: React.FC<IInputLabel> = ({\n name,\n children,\n classes = '',\n}: IInputLabel) => {\n const inputLabelClasses = `${bodySizeClasses.body3} cursor-pointer text-neutral-800 ${classes}`;\n return (\n <label\n htmlFor={name}\n className={inputLabelClasses}\n data-testid=\"input-label\"\n >\n {children}\n </label>\n );\n};\n\nexport default InputLabel;\n","import Heading from '@/components/atoms/Heading/Heading';\nimport LoadingSpinner, {\n ILoadingSpinner,\n} from '@/components/atoms/LoadingSpinner/LoadingSpinner';\nimport React from 'react';\n\n/**\n * ILoading - The props for the Loading component\n *\n * @augments ILoadingSpinner\n * @interface ILoading\n */\nexport interface ILoading extends ILoadingSpinner {\n /**\n * The title to be displayed below the spinner.\n *\n * @memberof ILoading\n * @member {string} title\n */\n title: string;\n}\n\n/**\n * Loading Molecule Loading spinner with title text below\n *\n * There is an 8 px bottom margin associated with the LoadingSpinner itself\n * which is why the Heading only has an 8px padding top and not 16px. I believe\n * this is due to the spinning .svg taking space on the bottom as it spins.\n *\n * @param {ILoading} props - The props for the Loading component\n * @returns {React.FC<ILoading>} Loading Component\n */\nconst Loading: React.FC<ILoading> = ({\n classes = '',\n title,\n size,\n}: ILoading) => {\n return (\n <div data-testid=\"loading\" className={`text-center ${classes}`}>\n <LoadingSpinner size={size} />\n <Heading size=\"h5\" font=\"amasis\" className=\"text-neutral-800 pt-2\">\n {title}\n </Heading>\n </div>\n );\n};\n\nexport default Loading;\n","import { ReactNode } from 'react';\n\n/**\n * IPageWrapper\n *\n * @interface IPageWrapper\n */\nexport interface IPageWrapper {\n /**\n * The content of the page.\n *\n * @memberof IPageWrapper\n * @member {ReactNode} children\n */\n children: ReactNode;\n /**\n * The classes to apply to the component.\n *\n * @memberof IPageWrapper\n * @default ''\n * @member {string} [classes]\n */\n classes?: string;\n}\n\n/**\n * Page Wrapper Used to wrap the entire page in a fixed size container.\n *\n * @param {IPageWrapper} props - The props for the PageWrapper component\n * @returns {React.FC<IPageWrapper>} PageWrapper Component\n */\nconst PageWrapper: React.FC<IPageWrapper> = ({\n children,\n classes = '',\n}: IPageWrapper) => {\n return <div className={`max-w-[1440px] mx-auto ${classes}`}>{children}</div>;\n};\n\nexport default PageWrapper;\n","/**\n * The feature flag for the persistent search used by shelters\n *\n * @constant {string}\n */\nexport const flagShelterPersistentSearch =\n 'test_flag_persistent_search_shelter';\n\n/**\n * The feature flag for the map search.\n *\n * @constant {string}\n */\nexport const flagMapSearch = 'test_flag_map_search';\n\n/**\n * The feature flag for the map version of search-all.\n *\n * @constant {string}\n */\nexport const flagMapPages = 'test_flag_map_pages';\n\n/**\n * The feature flag for the map search results page.\n *\n * @constant {string}\n */\nexport const flagMapSearchResults = 'test_flag_map_search_results';\n\n/**\n * The feature flag for the microchip creation search.\n *\n * @constant {string}\n */\nexport const flagMicrochipCreationSearch =\n 'test_flag_microchip_creation_search';\n\n/**\n * The feature flag for the facebook integration.\n *\n * @constant {string}\n */\nexport const flagFacebookIntegration = 'test_flag_facebook_integration';\n\n/**\n * The feature flag for the static map in the address step.\n *\n * @constant {string}\n */\nexport const flagStaticMapInAddressStep =\n 'test_flag_static_map_in_address_step';\n","import { featureFlagOverrideKey } from '@/lib/utils/featureFlags/optimizely/featureFlagOverride';\nimport CookieStorage from '@/lib/utils/storage/cookie-storage';\nimport { useDecision } from '@optimizely/react-sdk';\nimport { useEffect, useState } from 'react';\n\n/**\n * Hook to get the enabled features\n *\n * @param {string} flag - The flag to check\n * @returns {boolean} Is the feature enabled\n */\nexport const useOptimizelyFeature = (flag: string): boolean => {\n const cookies = new CookieStorage();\n const overrideCookie = cookies.get(featureFlagOverrideKey);\n const [enabled, setEnabled] = useState(() => overrideCookie === flag);\n const [decision, clientReady] = useDecision(flag);\n\n useEffect(() => {\n // Check if optimizely has the feature flag and if the client is ready\n if (clientReady && decision.enabled === true) {\n setEnabled(true);\n }\n }, [decision, clientReady]);\n return enabled;\n};\n","import { createContext, ReactNode, useContext, useReducer } from 'react';\n\n/**\n * Toast Type Types of Toasts Allowed\n *\n * @typedef {ToastType}\n */\nexport type ToastType = 'success' | 'error' | 'info' | 'warning';\n\n/** Toast Action Types Actions Allowed for Toast */\nexport type ToastActionType = 'ADD_TOAST' | 'DELETE_TOAST';\n\n/**\n * Toast Toast Type\n *\n * @typedef {Toast}\n */\nexport type Toast = {\n /** Id of Toast */\n id: string;\n /** Message to Display */\n message?: string;\n /** If the Toast is Persistent */\n persistent?: boolean;\n /** If the Toast should show an Icon */\n showIcon?: boolean;\n /** Type of Toast */\n type: ToastType;\n};\n\n/**\n * Toast State State of the Toasts\n *\n * @interface\n */\ninterface IToastState {\n /** Array of Toasts */\n toasts: Toast[];\n}\n\n/**\n * Toast Initial State Value\n *\n * @constant\n */\nexport const toastInitialValue: IToastState = {\n toasts: [],\n};\n\n/**\n * Toast Init Config\n *\n * @param {IToastState} state - The State to Init the Config with\n * @returns {object} - The Initial Config\n */\nexport const initConfig = (state: IToastState) => ({\n ...toastInitialValue,\n ...state,\n});\n\n/**\n * IToastAction Interface for Toast Actions\n *\n * @interface\n */\nexport interface IToastAction {\n /** Type of Action */\n type: ToastActionType;\n /** Toast to Add or Delete */\n toast: Toast;\n}\n\n/**\n * Toast Context Used for creating the Context Object for the useToastContext\n * Function\n *\n * @constant\n */\nexport const ToastContext = createContext<{\n /** The State of the Toasts */\n state: IToastState;\n /** The Dispatch Function for the Toasts */\n dispatch: React.Dispatch<IToastAction>;\n}>({\n state: toastInitialValue,\n /** @returns {null} - Null */\n dispatch: () => null,\n});\n\n/**\n * Toast Reducer Reducer for adding and removing Toasts\n *\n * @param {IToastState} state - The State of the Toasts\n * @param {IToastAction} action - The Action to Perform on the Toasts\n * @returns {object} - The Updated State\n */\nexport function ToastReducer(state: IToastState, action: IToastAction) {\n switch (action.type) {\n case 'ADD_TOAST': {\n return {\n ...state,\n toasts: [...state.toasts, action.toast],\n };\n }\n case 'DELETE_TOAST': {\n const updatedToasts = state.toasts.filter((e) => e.id != action.toast.id);\n return {\n ...state,\n toasts: updatedToasts,\n };\n }\n }\n}\n\n/**\n * IToast Provider The Interface for what the Toast Provider will be expecting\n *\n * @interface\n */\nexport interface IToastProvider {\n /** The Children to Provide Context to */\n children: ReactNode;\n}\n\n/**\n * Toast Provider Used to provide the ability to use Toasts to any children of\n * the provider.\n *\n * @param {IToastProvider} children - The children this will be providing\n * Context to.\n * @returns {Element} ToastContext\n */\nexport function ToastProvider({ children }: IToastProvider): JSX.Element {\n const [state, dispatch] = useReducer(ToastReducer, toastInitialValue);\n\n return (\n <ToastContext.Provider value={{ state, dispatch }}>\n {children}\n </ToastContext.Provider>\n );\n}\n\n/**\n * Use Toast Context Used to allow components to interact with the Toast Context\n *\n * @returns {ToastContext} ToastContext\n */\nexport const useToastContext = () => useContext(ToastContext);\n","import { useEffect, useRef, useState } from 'react';\n\n/**\n * Returns a reference and a state that changes when the component is clicked\n * outside\n *\n * @param {boolean} initialIsFocused - Initial focus state\n * @returns {object} - Object with ref and isFocused state\n */\nexport function useComponentFocused(initialIsFocused: boolean) {\n const [isComponentFocused, setIsComponentFocused] =\n useState(initialIsFocused);\n\n const ref = useRef<HTMLInputElement>(null);\n\n /**\n * Handles click outside of the component\n *\n * @param {MouseEvent} event - The event object\n * @returns {void}\n */\n const handleClickOutside = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setIsComponentFocused(false);\n } else {\n setIsComponentFocused(true);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n return { ref, isComponentFocused, setIsComponentFocused };\n}\n","/* eslint-disable jsdoc/tag-lines */\n/**\n * Helper function used to append a key:value pair to an object definition if\n * the value is not undefined.\n *\n * @example\n * const isUndefined = undefined;\n *\n * const objectWithNoUndefinedValues = {\n * key1: 'value1',\n * ...appendAttributeIfExists('newKey', 'not sure if is not undefined'),\n * ...appendAttributeIfExists('newKeyUndefined', isUndefined),\n * };\n *\n * // result { key1:'value1', newKey: 'not sure if is not undefined' }\n *\n * @param {string} key - The key of the key:value pair\n * @param {unknown} value - The value of the key:value pair\n * @returns {object} - The object used to append to the object definition\n */\nconst appendAttributeIfExists = (\n key: string,\n value: unknown\n): { [key: string]: unknown } => (value !== undefined ? { [key]: value } : {});\n\nexport default appendAttributeIfExists;\n"],"names":["dividerClassMap","darkGrey","lightGrey","white","__webpack_exports__","Z","type","classes","param","dividerClasses","concat","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","hr","className","InputDropDown","forwardRef","ref","label","values","error","readOnly","onChange","onFocus","onBlur","inputValueFormatter","value","listBoxOptionsClasses","listBoxContainerClasses","listBoxButtonOpenClasses","listBoxButtonClasses","listboxButtonClassesOverride","inputErrorClasses","inputErrorClassesOverride","hideError","children","inputValue","setInputValue","useState","name","useEffect","handleFocus","useCallback","handleBlur","chevronColorShade","chevronColorType","isInputValue","isError","cva","inputClasses","variants","true","inputDisabledClasses","open","labelClasses","labelClassesBase","empty","labelDisabledClasses","inputFieldClasses","bodySizeClasses","body4","false","centered","optionClasses","active","selected","jsxs","div","Listbox","as","data","disabled","Fragment","Button","span","Icon","icon","size","colorType","colorShade","Label","Transition","show","enter","enterFrom","leave","leaveFrom","leaveTo","Options","static","map","Option","InputError","displayName","errorMessageClasses","role","message","baseClasses","labelFocusClasses","labelPeerPlaceholderShownClasses","overline","inputLabelClasses","body3","htmlFor","title","LoadingSpinner","Heading","font","flagShelterPersistentSearch","flagMapSearchResults","flagMicrochipCreationSearch","flagFacebookIntegration","flagStaticMapInAddressStep","useOptimizelyFeature","cookies","CookieStorage","overrideCookie","get","featureFlagOverrideKey","enabled","setEnabled","flag","decision","clientReady","useDecision","toastInitialValue","toasts","ToastContext","createContext","state","dispatch","ToastReducer","action","toast","updatedToasts","filter","e","id","ToastProvider","useReducer","Provider","useToastContext","useContext","useComponentFocused","initialIsFocused","isComponentFocused","setIsComponentFocused","useRef","handleClickOutside","current","contains","event","target","document","addEventListener","removeEventListener","key","undefined"],"sourceRoot":""}