/**
 * @file Font Awesome Icon Library Configuration
 * @description Centralizes Font Awesome icon imports and library configuration
 * @author Matthew Raymer
 */

import { library } from "@fortawesome/fontawesome-svg-core";
import {
  faArrowDown,
  faArrowLeft,
  faArrowRight,
  faArrowRotateBackward,
  faArrowUp,
  faArrowUpRightFromSquare,
  faBan,
  faBitcoinSign,
  faBurst,
  faCalendar,
  faCamera,
  faCameraRotate,
  faCaretDown,
  faChair,
  faChartLine,
  faCheck,
  faChevronDown,
  faChevronLeft,
  faChevronRight,
  faChevronUp,
  faCircle,
  faCircleCheck,
  faCircleInfo,
  faCircleMinus,
  faCirclePlus,
  faCircleQuestion,
  faCircleRight,
  faCircleUser,
  faClock,
  faCoins,
  faComment,
  faCopy,
  faCrown,
  faDollar,
  faDownload,
  faEllipsis,
  faEllipsisVertical,
  faEnvelope,
  faEnvelopeOpenText,
  faEraser,
  faEye,
  faEyeSlash,
  faFileContract,
  faFileLines,
  faFilter,
  faFloppyDisk,
  faFolderOpen,
  faForward,
  faGear,
  faGift,
  faGlobe,
  faHammer,
  faHand,
  faHandHoldingDollar,
  faHandHoldingHeart,
  faHourglassHalf,
  faHouseChimney,
  faImage,
  faImagePortrait,
  faInfo,
  faLeftRight,
  faLightbulb,
  faLink,
  faLocationDot,
  faLock,
  faLongArrowAltLeft,
  faLongArrowAltRight,
  faMagnifyingGlass,
  faMessage,
  faMinus,
  faPen,
  faPersonCircleCheck,
  faPersonCircleQuestion,
  faPlus,
  faQrcode,
  faQuestion,
  faRightFromBracket,
  faRotate,
  faShareNodes,
  faSpinner,
  faSquare,
  faSquareCaretDown,
  faSquareCaretUp,
  faSquarePlus,
  faStar,
  faThumbtack,
  faTrashCan,
  faTriangleExclamation,
  faUser,
  faUsers,
  faXmark,
} from "@fortawesome/free-solid-svg-icons";

// these are referenced differently, eg. ":icon='['far', 'star']'" as in ProjectViewView.vue
import { faStar as faStarRegular } from "@fortawesome/free-regular-svg-icons";

// Brand icons
import { faWhatsapp } from "@fortawesome/free-brands-svg-icons";

// Initialize Font Awesome library with all required icons
library.add(
  faArrowDown,
  faArrowLeft,
  faArrowRight,
  faArrowRotateBackward,
  faArrowUp,
  faArrowUpRightFromSquare,
  faBan,
  faBitcoinSign,
  faBurst,
  faCalendar,
  faCamera,
  faCameraRotate,
  faCaretDown,
  faChair,
  faChartLine,
  faCheck,
  faChevronDown,
  faChevronLeft,
  faChevronRight,
  faChevronUp,
  faCircle,
  faCircleCheck,
  faCircleInfo,
  faCircleMinus,
  faCirclePlus,
  faCircleQuestion,
  faCircleRight,
  faCircleUser,
  faClock,
  faCoins,
  faComment,
  faCopy,
  faCrown,
  faDollar,
  faDownload,
  faEllipsis,
  faEllipsisVertical,
  faEnvelope,
  faEnvelopeOpenText,
  faEraser,
  faEye,
  faEyeSlash,
  faFileContract,
  faFileLines,
  faFilter,
  faFloppyDisk,
  faFolderOpen,
  faForward,
  faGear,
  faGift,
  faGlobe,
  faHammer,
  faHand,
  faHandHoldingDollar,
  faHandHoldingHeart,
  faHourglassHalf,
  faHouseChimney,
  faImage,
  faImagePortrait,
  faInfo,
  faLeftRight,
  faLightbulb,
  faLink,
  faLocationDot,
  faLock,
  faLongArrowAltLeft,
  faLongArrowAltRight,
  faMagnifyingGlass,
  faMessage,
  faMinus,
  faPen,
  faPersonCircleCheck,
  faPersonCircleQuestion,
  faPlus,
  faQrcode,
  faQuestion,
  faRightFromBracket,
  faRotate,
  faShareNodes,
  faSpinner,
  faSquare,
  faSquareCaretDown,
  faSquareCaretUp,
  faSquarePlus,
  faStar,
  faStarRegular,
  faThumbtack,
  faTrashCan,
  faTriangleExclamation,
  faUser,
  faUsers,
  faWhatsapp,
  faXmark,
);

// Export the FontAwesomeIcon component for use in other files
export { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
