diff --git a/apps/frontend/admin/components/rename-requests/RenameRequests.svelte b/apps/frontend/admin/components/rename-requests/RenameRequests.svelte index 4dbdf7bad..eb6f16aad 100644 --- a/apps/frontend/admin/components/rename-requests/RenameRequests.svelte +++ b/apps/frontend/admin/components/rename-requests/RenameRequests.svelte @@ -5,7 +5,7 @@ import { iconLibrary } from '@/shared/icons'; import type { RenameRequest } from './types'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; let renameRequests: RenameRequest[]; @@ -74,18 +74,18 @@ > {#if !renameRequest.inUse} - await approveRequest(renameRequest.id)} + onclick={async () => await approveRequest(renameRequest.id)} /> {/if} - await declineRequest(renameRequest.id)} + onclick={async () => await declineRequest(renameRequest.id)} /> diff --git a/apps/frontend/auctions/components/results/Selected.svelte b/apps/frontend/auctions/components/results/Selected.svelte index 0199747e1..a8a1bb0c1 100644 --- a/apps/frontend/auctions/components/results/Selected.svelte +++ b/apps/frontend/auctions/components/results/Selected.svelte @@ -6,7 +6,7 @@ import { wowthingData } from '@/shared/stores/data'; import { leftPad } from '@/utils/formatting'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; export let selected: string; @@ -79,7 +79,7 @@ {#if realm.region === Region.EU && euLocales[realm.locale]} {@const { icon: countryIcon, name: countryName } = euLocales[realm.locale]} - - + {/if} diff --git a/apps/frontend/components/appearances/AppearancesItem.svelte b/apps/frontend/components/appearances/AppearancesItem.svelte index 8585f9306..b2b7c68cb 100644 --- a/apps/frontend/components/appearances/AppearancesItem.svelte +++ b/apps/frontend/components/appearances/AppearancesItem.svelte @@ -1,5 +1,3 @@ - -
- +
diff --git a/apps/frontend/components/explore/ExploreIcons.svelte b/apps/frontend/components/explore/ExploreIcons.svelte index 8481a3dd8..530dd18f9 100644 --- a/apps/frontend/components/explore/ExploreIcons.svelte +++ b/apps/frontend/components/explore/ExploreIcons.svelte @@ -3,7 +3,7 @@ import { iconLibrary } from '@/shared/icons'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; const icons = sortBy(Object.entries(iconLibrary), ([name]) => name); @@ -25,7 +25,7 @@
{#each icons as [name, icon] (name)}
- + {name}
{/each} diff --git a/apps/frontend/components/explore/ExploreTransmog.svelte b/apps/frontend/components/explore/ExploreTransmog.svelte index 9b75134fe..19a81dc25 100644 --- a/apps/frontend/components/explore/ExploreTransmog.svelte +++ b/apps/frontend/components/explore/ExploreTransmog.svelte @@ -16,7 +16,7 @@ import ParsedText from '@/shared/components/parsed-text/ParsedText.svelte'; import WowheadLink from '@/shared/components/links/WowheadLink.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import { iconLibrary } from '@/shared/icons'; const slotOrder = bestTypeOrder.concat(weaponSubclassOrder.map((sub) => sub + 100)); @@ -168,7 +168,7 @@ {#if isPrimary} - + {/if}
diff --git a/apps/frontend/components/home/table/HomeTableGroupHead.svelte b/apps/frontend/components/home/table/HomeTableGroupHead.svelte index 522a2f25e..50cd4036b 100644 --- a/apps/frontend/components/home/table/HomeTableGroupHead.svelte +++ b/apps/frontend/components/home/table/HomeTableGroupHead.svelte @@ -20,7 +20,7 @@ import HeadMovementSpeed from '@/components/character-table/head/MovementSpeed.svelte'; import HeadProgress from './head/HomeTableHeadProgress.svelte'; import HeadTasks from './head/HomeTableHeadTasks.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import RowGold from './row/HomeTableRowGold.svelte'; import RowPlayedTime from './row/HomeTableRowPlayedTime.svelte'; import SpacerRow from '@/components/character-table/CharacterTableSpacerRow.svelte'; @@ -142,7 +142,7 @@ > {:else if field === 'callings'} - SL + SL {:else if field === 'covenant'} @@ -152,11 +152,11 @@ {:else if field === 'emissariesBfa'} - BfA + BfA {:else if field === 'emissariesLegion'} - Legion + Legion {:else if field === 'gear'} Gear @@ -244,15 +244,15 @@ {:else if field === 'vaultMythicPlus'} setSortState()} - >Dungeon Dungeon {:else if field === 'vaultRaid'} setSortState()} - >Raid Raid {:else if field === 'vaultWorld'} setSortState()} - >World World {:else}   diff --git a/apps/frontend/components/home/table/head/HomeTableHeadTasks.svelte b/apps/frontend/components/home/table/head/HomeTableHeadTasks.svelte index 6e637e567..00ce731d0 100644 --- a/apps/frontend/components/home/table/head/HomeTableHeadTasks.svelte +++ b/apps/frontend/components/home/table/head/HomeTableHeadTasks.svelte @@ -7,10 +7,9 @@ import { userState } from '@/user-home/state/user'; import type { SortableProps } from '@/types/props'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import ParsedText from '@/shared/components/parsed-text/ParsedText.svelte'; import Tooltip from '@/components/tooltips/task/TooltipTaskHead.svelte'; - import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; let { getSortState, setSortState }: SortableProps = $props(); @@ -61,11 +60,7 @@ > {#if chore} {#if chore.icon} - {#if 'body' in chore.icon} - - {:else} - - {/if} + {/if} {:else} diff --git a/apps/frontend/components/home/table/row/HomeTableRowProfessionCooldowns.svelte b/apps/frontend/components/home/table/row/HomeTableRowProfessionCooldowns.svelte index 5735c5a09..872e4a9dc 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowProfessionCooldowns.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowProfessionCooldowns.svelte @@ -28,10 +28,10 @@ class:status-fail={data.anyFull} use:componentTooltip={{ component: Tooltip, - props: { + propsFunc: () => ({ character, cooldowns: data.cooldowns, - }, + }), }} > {#if data.total > 0} diff --git a/apps/frontend/components/home/table/row/HomeTableRowProfessionMoxie.svelte b/apps/frontend/components/home/table/row/HomeTableRowProfessionMoxie.svelte index 915274882..00d6336a4 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowProfessionMoxie.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowProfessionMoxie.svelte @@ -62,7 +62,7 @@
{#each professions as profession} - {@const { amount, percent, tooltip } = getCurrencyData( + {@const { amount, tooltip } = getCurrencyData( $timeStore, character, wowthingData.static.currencyById.get(professionMoxie[profession.id]) diff --git a/apps/frontend/components/home/table/row/HomeTableRowProgress.svelte b/apps/frontend/components/home/table/row/HomeTableRowProgress.svelte index f86a8ff43..c056a926e 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowProgress.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowProgress.svelte @@ -6,7 +6,7 @@ import getProgress from '@/utils/get-progress'; import type { CharacterProps } from '@/types/props'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import TooltipProgress from '@/components/tooltips/progress/TooltipProgress.svelte'; let { character }: CharacterProps = $props(); @@ -42,7 +42,7 @@ }} > {#if data.have > 0 && data.have === data.total} - + {:else} {data.have} / {data.total} {/if} diff --git a/apps/frontend/components/home/table/row/HomeTableRowSettings.svelte b/apps/frontend/components/home/table/row/HomeTableRowSettings.svelte index 716e48ffb..4c5a045f7 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowSettings.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowSettings.svelte @@ -6,7 +6,7 @@ import type { Character } from '@/types/character'; import CheckboxInput from '@/shared/components/forms/CheckboxInput.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; export let character: Character; @@ -65,10 +65,10 @@
- {#if $characterSettingsStore === character.id} diff --git a/apps/frontend/components/home/table/row/HomeTableRowTask.svelte b/apps/frontend/components/home/table/row/HomeTableRowTask.svelte index 0addcedc2..be5d5c2e3 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowTask.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowTask.svelte @@ -6,7 +6,7 @@ import { userState } from '@/user-home/state/user'; import type { CharacterProps } from '@/types/props'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; type Props = CharacterProps & { fullTaskName: string; @@ -52,11 +52,11 @@ > {#if Object.values(charTask.chores).filter((chore) => !chore.skipped).length === 1} {#if charTask.status === QuestStatus.Completed} - + {:else if charTask.countCompleted === charTask.countTotal} - + {:else if !inProgress} - + {:else} {charTask.countCompleted} / {charTask.countTotal} {/if} diff --git a/apps/frontend/components/home/table/row/HomeTableRowTaskChore.svelte b/apps/frontend/components/home/table/row/HomeTableRowTaskChore.svelte index d665d2222..045db17a9 100644 --- a/apps/frontend/components/home/table/row/HomeTableRowTaskChore.svelte +++ b/apps/frontend/components/home/table/row/HomeTableRowTaskChore.svelte @@ -5,7 +5,7 @@ import { toNiceNumber } from '@/utils/formatting/to-nice-number'; import type { CharacterProps } from '@/types/props'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; type Props = CharacterProps & { choreName: string; @@ -38,9 +38,9 @@ data-full-task-name={fullTaskName} > {#if charChore?.status === QuestStatus.Completed} - + + --> {:else if charChore?.status === QuestStatus.InProgress} {toNiceNumber(charChore.progressCurrent, 0)} / {toNiceNumber( @@ -49,6 +49,6 @@ )} {:else if charChore?.status === QuestStatus.NotStarted} - + {/if} diff --git a/apps/frontend/components/home/view-switcher/ViewSwitcher.svelte b/apps/frontend/components/home/view-switcher/ViewSwitcher.svelte index c3d626f8c..41f899ad9 100644 --- a/apps/frontend/components/home/view-switcher/ViewSwitcher.svelte +++ b/apps/frontend/components/home/view-switcher/ViewSwitcher.svelte @@ -8,7 +8,7 @@ import { userState } from '@/user-home/state/user'; import Holidays from './Holidays.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import ParagonQuests from '../table/paragon/ParagonQuests.svelte'; import ParsedText from '@/shared/components/parsed-text/ParsedText.svelte'; @@ -93,7 +93,7 @@ data-tooltip="Settings" use:link > - + {/if}
diff --git a/apps/frontend/components/items/ItemsItem.svelte b/apps/frontend/components/items/ItemsItem.svelte index 9bfc8f7b5..9e3b41c9f 100644 --- a/apps/frontend/components/items/ItemsItem.svelte +++ b/apps/frontend/components/items/ItemsItem.svelte @@ -12,7 +12,7 @@ import type { Character, CharacterGear } from '@/types'; import CraftedQualityIcon from '@/shared/components/images/CraftedQualityIcon.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; import type { ConvertibleCategoryUpgrade } from './convertible/types'; import WowheadLink from '@/shared/components/links/WowheadLink.svelte'; @@ -226,7 +226,7 @@ {#if iconName} {:else} - + {/if}
{/if} diff --git a/apps/frontend/components/items/convertible/CharacterItems.svelte b/apps/frontend/components/items/convertible/CharacterItems.svelte index 57f03ffdc..4d3517565 100644 --- a/apps/frontend/components/items/convertible/CharacterItems.svelte +++ b/apps/frontend/components/items/convertible/CharacterItems.svelte @@ -6,7 +6,7 @@ import { getItemUrl } from '@/utils/get-item-url'; import type { LazyConvertibleCharacterItem } from '@/user-home/state/lazy/convertible.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; let { data }: { data: LazyConvertibleCharacterItem[] } = $props(); @@ -75,8 +75,8 @@
{#if slotData.isPurchased} - {#if slotData.isConvertible} - {#if data[inventoryType].modifiers[modifier].userHas} - + {:else} {#if data[inventoryType].modifiers[modifier].userHas} - + {:else} --- {/if} diff --git a/apps/frontend/components/items/convertible/DifficultyTable.svelte b/apps/frontend/components/items/convertible/DifficultyTable.svelte index e9e17af30..4da62816b 100644 --- a/apps/frontend/components/items/convertible/DifficultyTable.svelte +++ b/apps/frontend/components/items/convertible/DifficultyTable.svelte @@ -13,7 +13,7 @@ import { convertibleTypes } from './data'; import type { ConvertibleCategory } from './types'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import Tooltip from './DifficultyTooltip.svelte'; type Props = { @@ -113,21 +113,19 @@ }} > {#if data?.userHas} - + {:else if data?.anyIsConvertible || data?.anyIsPurchaseable || data?.anyIsUpgradeable} {#if data.anyIsPurchaseable} - {/if} {#if data.anyIsUpgradeable} - {character.realm.name} {#if isPurchased} - @@ -96,8 +96,8 @@ {#if isUpgradeable} - {:else} @@ -106,8 +106,8 @@ {#if isConvertible} - diff --git a/apps/frontend/components/items/tokens/TokenItem.svelte b/apps/frontend/components/items/tokens/TokenItem.svelte index 659b2131b..031e6731e 100644 --- a/apps/frontend/components/items/tokens/TokenItem.svelte +++ b/apps/frontend/components/items/tokens/TokenItem.svelte @@ -21,7 +21,7 @@ import CollectibleCount from '@/components/collectible/CollectibleCount.svelte'; import CollectedIcon from '@/shared/components/collected-icon/CollectedIcon.svelte'; import FactionIcon from '@/shared/components/images/FactionIcon.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import SpecializationIcon from '@/shared/components/images/SpecializationIcon.svelte'; import TooltipAlreadyHave from '@/components/tooltips/auction-already-have/TooltipAuctionAlreadyHave.svelte'; import WowheadLink from '@/shared/components/links/WowheadLink.svelte'; @@ -230,7 +230,7 @@ {#if intersected} - - +
{/if} @@ -207,7 +207,7 @@ class="overlay buyable iconify-icon drop-shadow" class:status-success={appearance.userHas} > - + {:else if appearance.userHas} @@ -223,7 +223,7 @@ {#if hardModeItemIds.has(dataItem.id)}
- +
{/if} diff --git a/apps/frontend/components/journal/JournalOptions.svelte b/apps/frontend/components/journal/JournalOptions.svelte index 7d8f5abb5..8334deed0 100644 --- a/apps/frontend/components/journal/JournalOptions.svelte +++ b/apps/frontend/components/journal/JournalOptions.svelte @@ -3,7 +3,7 @@ import { browserState } from '@/shared/state/browser.svelte'; import CheckboxInput from '@/shared/components/forms/CheckboxInput.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; let filterText = $derived.by(() => { const state = browserState.current.journal; @@ -121,7 +121,7 @@ > Filters: {filterText} - ({ character, instanceId: instance.id, lockout }), }} > - / {maxBosses} {:else if lockout?.defeatedBosses >= maxBosses} - + {:else if lockout?.defeatedBosses > 0} - + {:else if settingsState.value.layout.showEmptyLockouts} - + {/if} {:else} @@ -86,7 +86,7 @@ }} > {#if settingsState.value.layout.showEmptyLockouts} - + {/if} {/if} diff --git a/apps/frontend/components/professions/equipment/TableRow.svelte b/apps/frontend/components/professions/equipment/TableRow.svelte index b38a03369..a5d07e946 100644 --- a/apps/frontend/components/professions/equipment/TableRow.svelte +++ b/apps/frontend/components/professions/equipment/TableRow.svelte @@ -15,7 +15,7 @@ import CurrenciesCell from '@/user-home/components/currencies/TableRow.svelte'; import Empty from '../../items/ItemsEmpty.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import Item from '../../items/ItemsItem.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; @@ -122,7 +122,7 @@ tooltip={getNameForFaction(profession.name, character.faction)} /> {:else} - + {/if} diff --git a/apps/frontend/components/professions/recipes/View.svelte b/apps/frontend/components/professions/recipes/View.svelte index e83036720..e80b1f667 100644 --- a/apps/frontend/components/professions/recipes/View.svelte +++ b/apps/frontend/components/professions/recipes/View.svelte @@ -10,7 +10,7 @@ import { newNavState, professionsRecipesState } from '@/stores/local-storage'; import { userState } from '@/user-home/state/user'; import { useCharacterFilter } from '@/utils/characters'; - import type { Character, Expansion } from '@/types'; + import type { Character, ExpansionData } from '@/types'; import type { StaticDataProfession, StaticDataProfessionCategory, @@ -20,13 +20,13 @@ import Checkbox from '@/shared/components/forms/CheckboxInput.svelte'; import ClassIcon from '@/shared/components/images/ClassIcon.svelte'; import FactionIcon from '@/shared/components/images/FactionIcon.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import ProfessionIcon from '@/shared/components/images/ProfessionIcon.svelte'; import WowheadLink from '@/shared/components/links/WowheadLink.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; import YesNoIcon from '@/shared/components/icons/YesNoIcon.svelte'; - export let expansion: Expansion; + export let expansion: ExpansionData; export let profession: StaticDataProfession; let categoryChildren: StaticDataProfessionCategory[]; @@ -251,7 +251,7 @@ target="_blank" data-tooltip="Find auctions" > - + {/if} diff --git a/apps/frontend/components/progress/ProgressTableBodyRaidSkip.svelte b/apps/frontend/components/progress/ProgressTableBodyRaidSkip.svelte index 8569f6179..fa779f339 100644 --- a/apps/frontend/components/progress/ProgressTableBodyRaidSkip.svelte +++ b/apps/frontend/components/progress/ProgressTableBodyRaidSkip.svelte @@ -6,7 +6,7 @@ import type { UserQuestDataCharacterProgress } from '@/types/data'; import type { ManualDataProgressGroup } from '@/types/data/manual'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import Tooltip from '@/components/tooltips/progress-raid-skip/TooltipProgressRaidSkip.svelte'; export let character: Character; @@ -95,9 +95,9 @@ {#each progresses as progress}
{#if progress.completed} - + {:else if progress.progressQuest === undefined} - + {:else} {progress.progressQuest.objectives?.[0]?.have ?? 0} / diff --git a/apps/frontend/components/tooltips/auction-already-have/TooltipAuctionAlreadyHave.svelte b/apps/frontend/components/tooltips/auction-already-have/TooltipAuctionAlreadyHave.svelte index b3b1d4772..a70e72057 100644 --- a/apps/frontend/components/tooltips/auction-already-have/TooltipAuctionAlreadyHave.svelte +++ b/apps/frontend/components/tooltips/auction-already-have/TooltipAuctionAlreadyHave.svelte @@ -6,7 +6,7 @@ import { ItemLocation } from '@/enums/item-location'; import type { HasNameAndRealm, UserItem } from '@/types/shared'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; type Props = { groupItems?: boolean; @@ -92,7 +92,10 @@ {#each items as item} - + {item.containerName} Slot {item.slot} diff --git a/apps/frontend/components/tooltips/character-best-item-level/Tooltip.svelte b/apps/frontend/components/tooltips/character-best-item-level/Tooltip.svelte index ee11bec9d..fb115de8e 100644 --- a/apps/frontend/components/tooltips/character-best-item-level/Tooltip.svelte +++ b/apps/frontend/components/tooltips/character-best-item-level/Tooltip.svelte @@ -6,7 +6,7 @@ import getItemLevelQuality from '@/utils/get-item-level-quality'; import type { CharacterProps } from '@/types/props'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import SpecializationIcon from '@/shared/components/images/SpecializationIcon.svelte'; type Props = CharacterProps & { @@ -63,7 +63,7 @@ {#each missingSlots as missingSlot (missingSlot)} - + {/each} diff --git a/apps/frontend/components/tooltips/dailies/TooltipDailies.svelte b/apps/frontend/components/tooltips/dailies/TooltipDailies.svelte index f033bc3e9..542c9d35d 100644 --- a/apps/frontend/components/tooltips/dailies/TooltipDailies.svelte +++ b/apps/frontend/components/tooltips/dailies/TooltipDailies.svelte @@ -8,7 +8,7 @@ import type { Character, DailyQuestsReward } from '@/types'; import type { GlobalDailyQuest } from '@/types/data'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; export let callings: [DailyQuestsReward, GlobalDailyQuest, boolean][]; @@ -63,8 +63,8 @@ {#each callings as [rewards, daily, status], callingIndex} - diff --git a/apps/frontend/components/tooltips/mythic-plus-score/TooltipMythicPlusScore.svelte b/apps/frontend/components/tooltips/mythic-plus-score/TooltipMythicPlusScore.svelte index be2a7153f..51538ba17 100644 --- a/apps/frontend/components/tooltips/mythic-plus-score/TooltipMythicPlusScore.svelte +++ b/apps/frontend/components/tooltips/mythic-plus-score/TooltipMythicPlusScore.svelte @@ -6,10 +6,9 @@ import { userStore } from '@/stores'; import { getRunCounts } from '@/utils/dungeon'; import getRaiderIoColor from '@/utils/get-raider-io-color'; - import { getRunQuality, getRunQualityAffix } from '@/utils/mythic-plus'; + import { getRunQualityAffix } from '@/utils/mythic-plus'; import type { Character, CharacterMythicPlusAddonRun, CharacterRaiderIoSeason } from '@/types'; import type { UserDataRaiderIoScoreTiers } from '@/types/user-data'; - import { Constants } from '@/data/constants'; export let character: Character; export let scores: CharacterRaiderIoSeason; diff --git a/apps/frontend/components/tooltips/progress/TooltipProgress.svelte b/apps/frontend/components/tooltips/progress/TooltipProgress.svelte index 8bd96501c..6a015ad09 100644 --- a/apps/frontend/components/tooltips/progress/TooltipProgress.svelte +++ b/apps/frontend/components/tooltips/progress/TooltipProgress.svelte @@ -120,6 +120,7 @@ .name { padding-right: 1rem; text-align: left; + width: 100%; :global(.description-short) { color: #00ccff; diff --git a/apps/frontend/components/tooltips/reputation-header/TooltipReputationHeaderEntry.svelte b/apps/frontend/components/tooltips/reputation-header/TooltipReputationHeaderEntry.svelte index d372f5bbd..10876af9c 100644 --- a/apps/frontend/components/tooltips/reputation-header/TooltipReputationHeaderEntry.svelte +++ b/apps/frontend/components/tooltips/reputation-header/TooltipReputationHeaderEntry.svelte @@ -10,7 +10,7 @@ ManualDataReputationSet, } from '@/types/data/manual'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte'; import { userState } from '@/user-home/state/user'; @@ -103,7 +103,7 @@ {#each rewards as reward} - + {reward.name} diff --git a/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte b/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte index ef424ab0f..388eae2f8 100644 --- a/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte +++ b/apps/frontend/components/tooltips/task/TooltipTaskRow.svelte @@ -1,20 +1,14 @@ -{#snippet hoverIcon(icon: ComponentProps['icon'])} +{#snippet hoverIcon(icon: Icon)}
- +
{/snippet} @@ -195,7 +194,7 @@
{:else if (thing.bonusIds || []).includes(999999)}
- +
{/if} diff --git a/apps/frontend/components/vendors/VendorsOptions.svelte b/apps/frontend/components/vendors/VendorsOptions.svelte index 497a0ef86..3aa440f30 100644 --- a/apps/frontend/components/vendors/VendorsOptions.svelte +++ b/apps/frontend/components/vendors/VendorsOptions.svelte @@ -3,7 +3,7 @@ import { browserState } from '@/shared/state/browser.svelte'; import CheckboxInput from '@/shared/components/forms/CheckboxInput.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; let filters = $derived.by(() => { let byType1: string[] = []; @@ -160,7 +160,7 @@ > Filters: {filters} - {#each farms as farm}
- +
{/each} @@ -120,7 +120,7 @@ {@const dropData = dropDatas[dataIndex]} {@const icon = getDropIcon(drop, false)}
- + {dropData.name} diff --git a/apps/frontend/components/zone-maps/ZoneMapsMap.svelte b/apps/frontend/components/zone-maps/ZoneMapsMap.svelte index f3f2cc9f3..a47b96375 100644 --- a/apps/frontend/components/zone-maps/ZoneMapsMap.svelte +++ b/apps/frontend/components/zone-maps/ZoneMapsMap.svelte @@ -19,7 +19,7 @@ import Checkbox from '@/shared/components/forms/CheckboxInput.svelte'; import ClassIcon from '@/shared/components/images/ClassIcon.svelte'; import Counter from './ZoneMapsCounter.svelte'; - import IconifyIcon from '@/shared/components/images/IconifyIcon.svelte'; + import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte'; import Image from '@/shared/components/images/Image.svelte'; import Loot from './ZoneMapsLoot.svelte'; import Thing from './ZoneMapsThing.svelte'; @@ -416,7 +416,7 @@ | MAX {/if} - Loot list -
- +
{:else} @@ -188,7 +188,7 @@ type={FarmIdType[farm.idType].toLowerCase()} >
- +
{#if status.need && farm.type != FarmType.Vendor && map.mapName !== 'misc_exiles_reach'} diff --git a/apps/frontend/data/expansion.ts b/apps/frontend/data/expansion.ts index c988e3dc7..9b155d214 100644 --- a/apps/frontend/data/expansion.ts +++ b/apps/frontend/data/expansion.ts @@ -1,36 +1,36 @@ import sortBy from 'lodash/sortBy'; -import { Expansion } from '@/types'; +import { ExpansionData } from '@/types'; -export const expansionMap: Record = Object.fromEntries( +export const expansionMap: Record = Object.fromEntries( [ - new Expansion(0, 'Classic', 'classic', 'Classic'), - new Expansion(1, 'Burning Crusade', 'burning-crusade', 'TBC'), - new Expansion(2, 'Wrath of the Lich King', 'wrath-of-the-lich-king', 'WotLK'), - new Expansion(3, 'Cataclysm', 'cataclysm', 'Cata'), - new Expansion(4, 'Mists of Pandaria', 'mists-of-pandaria', 'MoP'), - new Expansion(5, 'Warlords of Draenor', 'warlords-of-draenor', 'WoD'), - new Expansion(6, 'Legion', 'legion', 'Legion'), - new Expansion(7, 'Battle for Azeroth', 'battle-for-azeroth', 'BfA'), - new Expansion(8, 'Shadowlands', 'shadowlands', 'SL'), - new Expansion(9, 'Dragonflight', 'dragonflight', 'DF'), - new Expansion(10, 'The War Within', 'war-within', 'TWW'), - new Expansion(11, 'Midnight', 'midnight', 'Mid'), + new ExpansionData(0, 'Classic', 'classic', 'Classic'), + new ExpansionData(1, 'Burning Crusade', 'burning-crusade', 'TBC'), + new ExpansionData(2, 'Wrath of the Lich King', 'wrath-of-the-lich-king', 'WotLK'), + new ExpansionData(3, 'Cataclysm', 'cataclysm', 'Cata'), + new ExpansionData(4, 'Mists of Pandaria', 'mists-of-pandaria', 'MoP'), + new ExpansionData(5, 'Warlords of Draenor', 'warlords-of-draenor', 'WoD'), + new ExpansionData(6, 'Legion', 'legion', 'Legion'), + new ExpansionData(7, 'Battle for Azeroth', 'battle-for-azeroth', 'BfA'), + new ExpansionData(8, 'Shadowlands', 'shadowlands', 'SL'), + new ExpansionData(9, 'Dragonflight', 'dragonflight', 'DF'), + new ExpansionData(10, 'The War Within', 'war-within', 'TWW'), + new ExpansionData(11, 'Midnight', 'midnight', 'Mid'), ].map((exp) => [exp.id, exp]) ); -export const expansionSlugMap: Record = Object.fromEntries( +export const expansionSlugMap: Record = Object.fromEntries( Object.values(expansionMap).map((expansion) => [expansion.slug, expansion]) ); -export const expansionShortNameMap: Record = Object.fromEntries( +export const expansionShortNameMap: Record = Object.fromEntries( Object.values(expansionMap).map((expansion) => [ expansion.shortName.toLocaleLowerCase(), expansion, ]) ); -export const expansionOrder: Expansion[] = sortBy( +export const expansionOrder: ExpansionData[] = sortBy( Object.values(expansionMap), (expansion) => expansion.id ); diff --git a/apps/frontend/data/holidays.ts b/apps/frontend/data/holidays.ts index 11b0566bf..af2f5c245 100644 --- a/apps/frontend/data/holidays.ts +++ b/apps/frontend/data/holidays.ts @@ -1,5 +1,4 @@ import { Holiday } from '@/enums/holiday'; -import { getNumberKeyedEntries } from '@/utils/get-number-keyed-entries'; export const holidayMinimumLevel: Record = { // Timewalking: TBC diff --git a/apps/frontend/data/icons.ts b/apps/frontend/data/icons.ts index 7de3b375a..c20077b4a 100644 --- a/apps/frontend/data/icons.ts +++ b/apps/frontend/data/icons.ts @@ -1,7 +1,6 @@ -import type { IconifyIcon } from '@iconify/types'; - import { Constants } from '@/data/constants'; import { iconLibrary } from '@/shared/icons'; +import type { Icon } from '@/types/icons'; export const imageStrings: Record = { alliance: Constants.icons.alliance, @@ -39,7 +38,7 @@ export const imageStrings: Record = { 'gold-medal': 'achievement/8890', }; -export const iconStrings: Record = { +export const iconStrings: Record = { exclamation: iconLibrary.mdiExclamationThick, fire: iconLibrary.mdiFire, item: iconLibrary.mdiGiftOutline, @@ -80,7 +79,7 @@ export const iconStrings: Record = { armorPlate: iconLibrary.mdiLetterP, }; -export const soulbindSockets: Record = { +export const soulbindSockets: Record = { 1: iconLibrary.mdiLightningBoltOutline, // Finesse 2: iconLibrary.mdiSwordCross, // Potency 3: iconLibrary.mdiShieldHalfFull, // Endurance diff --git a/apps/frontend/data/professions/cooldowns.ts b/apps/frontend/data/professions/cooldowns.ts index 527daec0b..29d5d8ac9 100644 --- a/apps/frontend/data/professions/cooldowns.ts +++ b/apps/frontend/data/professions/cooldowns.ts @@ -1,6 +1,8 @@ import { Profession } from '@/enums/profession'; import { DbResetType } from '@/shared/stores/db/enums'; import type { ProfessionCooldownQuest, ProfessionCooldownSpell } from '@/types'; +import { expansionSubProfession } from '../sub-professions'; +import { Expansion } from '@/enums/expansion'; export const expansionProfessionConcentration: Record> = { // Midnight @@ -399,6 +401,7 @@ export const professionCooldowns: (ProfessionCooldownQuest | ProfessionCooldownS key: 'midProfessionSkinningGloomclaw', name: '[Mid] Skin Gloomclaw (Eversong)', profession: Profession.Skinning, + subProfessionId: expansionSubProfession[Expansion.Midnight][Profession.Skinning], minimumLevel: 80, reset: DbResetType.Daily, ids: [88545], @@ -408,6 +411,7 @@ export const professionCooldowns: (ProfessionCooldownQuest | ProfessionCooldownS key: 'midProfessionSkinningSilverscale', name: "[Mid] Skin Silverscale (Zul'Aman)", profession: Profession.Skinning, + subProfessionId: expansionSubProfession[Expansion.Midnight][Profession.Skinning], minimumLevel: 80, reset: DbResetType.Daily, ids: [88526], @@ -417,6 +421,7 @@ export const professionCooldowns: (ProfessionCooldownQuest | ProfessionCooldownS key: 'midProfessionSkinningLumenfin', name: '[Mid] Skin Lumenfin (Harandar)', profession: Profession.Skinning, + subProfessionId: expansionSubProfession[Expansion.Midnight][Profession.Skinning], minimumLevel: 80, reset: DbResetType.Daily, ids: [88531], @@ -426,6 +431,7 @@ export const professionCooldowns: (ProfessionCooldownQuest | ProfessionCooldownS key: 'midProfessionSkinningUmbrafang', name: '[Mid] Skin Umbrafang (Voidstorm)', profession: Profession.Skinning, + subProfessionId: expansionSubProfession[Expansion.Midnight][Profession.Skinning], minimumLevel: 80, reset: DbResetType.Daily, ids: [88532], @@ -435,6 +441,7 @@ export const professionCooldowns: (ProfessionCooldownQuest | ProfessionCooldownS key: 'midProfessionSkinningNetherscythe', name: '[Mid] Skin Netherscythe (Voidstorm)', profession: Profession.Skinning, + subProfessionId: expansionSubProfession[Expansion.Midnight][Profession.Skinning], minimumLevel: 80, reset: DbResetType.Daily, ids: [88524], diff --git a/apps/frontend/data/professions/skinning.ts b/apps/frontend/data/professions/skinning.ts index 60d83783b..729688a20 100644 --- a/apps/frontend/data/professions/skinning.ts +++ b/apps/frontend/data/professions/skinning.ts @@ -1,5 +1,7 @@ +import { Expansion } from '@/enums/expansion'; import { Profession } from '@/enums/profession'; import type { TaskProfession } from '@/types/data'; +import { expansionSubProfession } from '../sub-professions'; const midnightTaskQuests = [ 93710, // Tempered in Darkness @@ -11,7 +13,7 @@ const midnightTaskQuests = [ export const midnightSkinning: TaskProfession = { id: Profession.Skinning, - subProfessionId: 2917, + subProfessionId: expansionSubProfession[Expansion.Midnight][Profession.Skinning], treatiseQuest: { itemId: 245828, // Thalassian Treatise on Skinning questId: 95136, diff --git a/apps/frontend/data/quests.ts b/apps/frontend/data/quests.ts index d3bba3bb4..776d331af 100644 --- a/apps/frontend/data/quests.ts +++ b/apps/frontend/data/quests.ts @@ -1,6 +1,14 @@ import { ItemQuality } from '@/enums/item-quality'; +import { QuestStatus } from '@/enums/quest-status'; import { GlobalDailyQuest } from '@/types/data'; +export const questStatusClass: Record = { + [QuestStatus.NotStarted]: 'status-fail', + [QuestStatus.InProgress]: 'status-shrug', + [QuestStatus.Completed]: 'status-success', + [QuestStatus.Error]: 'status-fail', +}; + export const progressQuestMap: Record = { slKorthia: 'shapingFate', slNewDeal: 'newDeal', diff --git a/apps/frontend/data/region.ts b/apps/frontend/data/region.ts index 7466b6dd3..8c7c1f8ba 100644 --- a/apps/frontend/data/region.ts +++ b/apps/frontend/data/region.ts @@ -1,7 +1,7 @@ import { Region } from '@/enums/region'; import { iconLibrary } from '@/shared/icons'; import type { ResetTime } from '@/types'; -import type { IconifyIcon } from '@iconify/types'; +import type { Icon } from '@/types/icons'; // Times are [hour, minute] in UTC export const resetTimes: Record = { @@ -37,7 +37,7 @@ export const resetTimes: Record = { }, }; -export const euLocales: Record = { +export const euLocales: Record = { deDE: { icon: iconLibrary.twemojiFlagGermany, name: 'Germany', diff --git a/apps/frontend/data/sub-professions.ts b/apps/frontend/data/sub-professions.ts new file mode 100644 index 000000000..2ac871c0b --- /dev/null +++ b/apps/frontend/data/sub-professions.ts @@ -0,0 +1,21 @@ +import { Expansion } from '@/enums/expansion'; +import { Profession } from '@/enums/profession'; + +export const expansionSubProfession: Record> = { + [Expansion.Midnight]: { + [Profession.Alchemy]: 2906, + [Profession.Archaeology]: null, + [Profession.Blacksmithing]: 2907, + [Profession.Cooking]: 2908, + [Profession.Enchanting]: 2909, + [Profession.Engineering]: 2910, + [Profession.Fishing]: 2911, + [Profession.Herbalism]: 2912, + [Profession.Inscription]: 2913, + [Profession.Jewelcrafting]: 2914, + [Profession.Leatherworking]: 2915, + [Profession.Mining]: 2916, + [Profession.Skinning]: 2917, + [Profession.Tailoring]: 2918, + }, +}; diff --git a/apps/frontend/data/tasks/10-the-war-within/11-2-0.ts b/apps/frontend/data/tasks/10-the-war-within/11-2-0.ts index efc134f64..2f3203490 100644 --- a/apps/frontend/data/tasks/10-the-war-within/11-2-0.ts +++ b/apps/frontend/data/tasks/10-the-war-within/11-2-0.ts @@ -1,4 +1,3 @@ -import { Constants } from '@/data/constants'; import { iconLibrary } from '@/shared/icons'; import { DbResetType } from '@/shared/stores/db/enums'; import { userState } from '@/user-home/state/user'; diff --git a/apps/frontend/data/tasks/10-the-war-within/delves.ts b/apps/frontend/data/tasks/10-the-war-within/delves.ts index c4ffe30b0..b00c9fff8 100644 --- a/apps/frontend/data/tasks/10-the-war-within/delves.ts +++ b/apps/frontend/data/tasks/10-the-war-within/delves.ts @@ -1,4 +1,4 @@ -import { iconComponents } from '@/shared/icons'; +import { iconLibrary } from '@/shared/icons'; import { DbResetType } from '@/shared/stores/db/enums'; import type { Task } from '@/types/tasks'; @@ -25,7 +25,7 @@ export const twwDelves: Task = { { key: 'gilded', name: 'Gilded Stash', - icon: iconComponents.GameCutDiamond, + icon: iconLibrary.GameCutDiamond, minimumLevel: 80, questReset: DbResetType.Weekly, questResetForced: true, @@ -42,7 +42,7 @@ export const twwDelves: Task = { { key: 'map', name: 'Map Drop', - icon: iconComponents.GameTreasureMap, + icon: iconLibrary.GameTreasureMap, minimumLevel: 80, alwaysStarted: true, questReset: DbResetType.Weekly, diff --git a/apps/frontend/data/tasks/11-midnight/12-0-0.ts b/apps/frontend/data/tasks/11-midnight/12-0-0.ts index ab03dc5f1..ef1feba52 100644 --- a/apps/frontend/data/tasks/11-midnight/12-0-0.ts +++ b/apps/frontend/data/tasks/11-midnight/12-0-0.ts @@ -87,6 +87,7 @@ export const midChores12_0_0: Task = { key: 'unity', name: 'Unity', minimumLevel: 90, + showQuestName: true, icon: aliasedIcons.planet, questReset: DbResetType.Weekly, // TODO: weird 3 week garbage? questIds: [ diff --git a/apps/frontend/data/tasks/11-midnight/prey.ts b/apps/frontend/data/tasks/11-midnight/prey.ts index 38c63e223..11aeb4e35 100644 --- a/apps/frontend/data/tasks/11-midnight/prey.ts +++ b/apps/frontend/data/tasks/11-midnight/prey.ts @@ -104,7 +104,7 @@ const nightmareQuestIds: number[] = [ ]; const preyFunc = (questIds: number[], index: number) => { - return (char: Character, chore: Chore) => { + return (char: Character) => { const charQuests = userState.quests.characterById.get(char.id); const completedOrInProgress = questIds.filter( (questId) => diff --git a/apps/frontend/data/tasks/events/bonus.ts b/apps/frontend/data/tasks/events/bonus.ts index 82920b13b..3ad2b621a 100644 --- a/apps/frontend/data/tasks/events/bonus.ts +++ b/apps/frontend/data/tasks/events/bonus.ts @@ -52,7 +52,7 @@ export const eventBonus: Task = { requiredHolidays: [Holiday.BonusBattleground], questReset: DbResetType.Weekly, questResetForced: true, - questIds: [83345], // A Call to Battle + questIds: [93593], // A Call to Battle }, { key: 'petBattles', diff --git a/apps/frontend/enums/expansion.ts b/apps/frontend/enums/expansion.ts new file mode 100644 index 000000000..ec11783c5 --- /dev/null +++ b/apps/frontend/enums/expansion.ts @@ -0,0 +1,14 @@ +export enum Expansion { + Classic = 0, + TheBurningCrusade = 1, + WrathOfTheLichKing = 2, + Cataclysm = 3, + MistsOfPandaria = 4, + WarlordsOfDraenor = 5, + Legion = 6, + BattleForAzeroth = 7, + Shadowlands = 8, + Dragonflight = 9, + TheWarWithin = 10, + Midnight = 11, +} diff --git a/apps/frontend/shared/components/collected-icon/CollectedIcon.svelte b/apps/frontend/shared/components/collected-icon/CollectedIcon.svelte index e3cd9c784..c031683b8 100644 --- a/apps/frontend/shared/components/collected-icon/CollectedIcon.svelte +++ b/apps/frontend/shared/components/collected-icon/CollectedIcon.svelte @@ -1,5 +1,5 @@ + + diff --git a/apps/frontend/shared/components/icons/YesNoIcon.svelte b/apps/frontend/shared/components/icons/YesNoIcon.svelte index f2a6bd9bf..19ebcd984 100644 --- a/apps/frontend/shared/components/icons/YesNoIcon.svelte +++ b/apps/frontend/shared/components/icons/YesNoIcon.svelte @@ -1,22 +1,20 @@ - + diff --git a/apps/frontend/shared/components/images/IconifyIcon.svelte b/apps/frontend/shared/components/images/IconifyIcon.svelte deleted file mode 100644 index d864307f4..000000000 --- a/apps/frontend/shared/components/images/IconifyIcon.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/apps/frontend/shared/components/images/IconifyWrapper.svelte b/apps/frontend/shared/components/images/IconifyWrapper.svelte index 2cb50e743..a11628a26 100644 --- a/apps/frontend/shared/components/images/IconifyWrapper.svelte +++ b/apps/frontend/shared/components/images/IconifyWrapper.svelte @@ -1,13 +1,18 @@ - - - +{#if 'body' in icon} + {@const actualIcon = (icon || iconLibrary.mdiImageBrokenVariant) as IconifyIcon} + +{:else} + {@const Icon = icon as ComponentIcon} + + + +{/if} diff --git a/apps/frontend/shared/components/paginate/PaginateBar.svelte b/apps/frontend/shared/components/paginate/PaginateBar.svelte index e36e69f27..dc4750f71 100644 --- a/apps/frontend/shared/components/paginate/PaginateBar.svelte +++ b/apps/frontend/shared/components/paginate/PaginateBar.svelte @@ -1,7 +1,7 @@