{"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":""}