diff --git a/web/src/lib/cast/cast-button.svelte b/web/src/lib/cast/cast-button.svelte index c6be1c11d7..392418daa5 100644 --- a/web/src/lib/cast/cast-button.svelte +++ b/web/src/lib/cast/cast-button.svelte @@ -2,44 +2,23 @@ import { t } from 'svelte-i18n'; import { onMount } from 'svelte'; import { mdiCast, mdiCastConnected } from '@mdi/js'; - import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; import { CastDestinationType, castManager } from '$lib/managers/cast-manager.svelte'; import { GCastDestination } from '$lib/utils/cast/gcast-destination.svelte'; import { IconButton } from '@immich/ui'; - interface Props { - whiteHover?: boolean; - navBar?: boolean; - } - - let { whiteHover, navBar }: Props = $props(); - onMount(async () => { await castManager.initialize(); }); - - const getButtonColor = () => { - return castManager.isCasting ? 'primary' : whiteHover ? undefined : 'opaque'; - }; {#if castManager.availableDestinations.length > 0 && castManager.availableDestinations[0].type === CastDestinationType.GCAST} - {#if navBar} - void GCastDestination.showCastDialog()} - aria-label={$t('cast')} - /> - {:else} - - {/if} + void GCastDestination.showCastDialog()} + aria-label={$t('cast')} + /> {/if} diff --git a/web/src/lib/components/admin-page/jobs/job-tile.svelte b/web/src/lib/components/admin-page/jobs/job-tile.svelte index bd04855c81..e85232deaa 100644 --- a/web/src/lib/components/admin-page/jobs/job-tile.svelte +++ b/web/src/lib/components/admin-page/jobs/job-tile.svelte @@ -17,6 +17,7 @@ import { t } from 'svelte-i18n'; import JobTileButton from './job-tile-button.svelte'; import JobTileStatus from './job-tile-status.svelte'; + import { IconButton } from '@immich/ui'; interface Props { title: string; @@ -75,12 +76,12 @@ {$t('admin.jobs_failed', { values: { jobCount: jobCounts.failed.toLocaleString($locale) } })} - onCommand({ command: JobCommand.ClearFailed, force: false })} /> diff --git a/web/src/lib/components/admin-page/settings/machine-learning-settings/machine-learning-settings.svelte b/web/src/lib/components/admin-page/settings/machine-learning-settings/machine-learning-settings.svelte index d6011ceb2c..c120cb3750 100644 --- a/web/src/lib/components/admin-page/settings/machine-learning-settings/machine-learning-settings.svelte +++ b/web/src/lib/components/admin-page/settings/machine-learning-settings/machine-learning-settings.svelte @@ -8,7 +8,7 @@ import { SettingInputFieldType } from '$lib/constants'; import { featureFlags } from '$lib/stores/server-config.store'; import type { SystemConfigDto } from '@immich/sdk'; - import { Button } from '@immich/ui'; + import { Button, IconButton } from '@immich/ui'; import { mdiMinusCircle } from '@mdi/js'; import { isEqual } from 'lodash-es'; import { t } from 'svelte-i18n'; @@ -48,12 +48,11 @@ {#each config.machineLearning.urls as _, i (i)} {#snippet removeButton()} {#if config.machineLearning.urls.length > 1} - config.machineLearning.urls.splice(i, 1)} icon={mdiMinusCircle} /> diff --git a/web/src/lib/components/album-page/album-card.svelte b/web/src/lib/components/album-page/album-card.svelte index a822e54bdf..b6b44cadfe 100644 --- a/web/src/lib/components/album-page/album-card.svelte +++ b/web/src/lib/components/album-page/album-card.svelte @@ -4,6 +4,7 @@ import { getContextMenuPositionFromEvent, type ContextMenuPosition } from '$lib/utils/context-menu'; import { getShortDateRange } from '$lib/utils/date-time'; import type { AlbumResponseDto } from '@immich/sdk'; + import { IconButton } from '@immich/ui'; import { mdiDotsVertical } from '@mdi/js'; import { t } from 'svelte-i18n'; @@ -42,12 +43,13 @@ class="absolute end-6 top-6 opacity-0 group-hover:opacity-100 focus-within:opacity-100" data-testid="context-button-parent" > - diff --git a/web/src/lib/components/album-page/album-map.svelte b/web/src/lib/components/album-page/album-map.svelte index d8b7c3de7b..a3ccc15d4d 100644 --- a/web/src/lib/components/album-page/album-map.svelte +++ b/web/src/lib/components/album-page/album-map.svelte @@ -7,7 +7,7 @@ import { delay } from '$lib/utils/asset-utils'; import { navigate } from '$lib/utils/navigation'; import { getAlbumInfo, type AlbumResponseDto, type MapMarkerResponseDto } from '@immich/sdk'; - import { LoadingSpinner, Modal, ModalBody } from '@immich/ui'; + import { IconButton, LoadingSpinner, Modal, ModalBody } from '@immich/ui'; import { mdiMapOutline } from '@mdi/js'; import { onDestroy, onMount } from 'svelte'; import { t } from 'svelte-i18n'; @@ -103,7 +103,14 @@ } - + {#if albumMapViewManager.isInMapView} diff --git a/web/src/lib/components/album-page/album-shared-link.svelte b/web/src/lib/components/album-page/album-shared-link.svelte index 3544d119d6..e7d6503da3 100644 --- a/web/src/lib/components/album-page/album-shared-link.svelte +++ b/web/src/lib/components/album-page/album-shared-link.svelte @@ -2,7 +2,7 @@ import SharedLinkCopy from '$lib/components/sharedlinks-page/actions/shared-link-copy.svelte'; import { locale } from '$lib/stores/preferences.store'; import type { AlbumResponseDto, SharedLinkResponseDto } from '@immich/sdk'; - import { Text } from '@immich/ui'; + import { IconButton, Text } from '@immich/ui'; import { mdiQrcode } from '@mdi/js'; import { DateTime } from 'luxon'; import { t } from 'svelte-i18n'; @@ -40,7 +40,14 @@ {getShareProperties()}
- +
diff --git a/web/src/lib/components/album-page/album-viewer.svelte b/web/src/lib/components/album-page/album-viewer.svelte index f8a38d9e67..acb8e0b384 100644 --- a/web/src/lib/components/album-page/album-viewer.svelte +++ b/web/src/lib/components/album-page/album-viewer.svelte @@ -14,7 +14,6 @@ import { mdiFileImagePlusOutline, mdiFolderDownloadOutline } from '@mdi/js'; import { onDestroy } from 'svelte'; import { t } from 'svelte-i18n'; - import CircleIconButton from '../elements/buttons/circle-icon-button.svelte'; import DownloadAction from '../photos-page/actions/download-action.svelte'; import AssetGrid from '../photos-page/asset-grid.svelte'; import ControlAppBar from '../shared-components/control-app-bar.svelte'; @@ -22,6 +21,7 @@ import ThemeButton from '../shared-components/theme-button.svelte'; import AlbumSummary from './album-summary.svelte'; import CastButton from '$lib/cast/cast-button.svelte'; + import { IconButton } from '@immich/ui'; interface Props { sharedLink: SharedLinkResponseDto; @@ -104,19 +104,25 @@ {/snippet} {#snippet trailing()} - + {#if sharedLink.allowUpload} - openFileUploadDialog({ albumId: album.id })} icon={mdiFileImagePlusOutline} /> {/if} {#if album.assetCount > 0 && sharedLink.allowDownload} - downloadAlbum(album)} icon={mdiFolderDownloadOutline} /> diff --git a/web/src/lib/components/asset-viewer/actions/close-action.svelte b/web/src/lib/components/asset-viewer/actions/close-action.svelte index 8a1dafc86e..7b3f525a3a 100644 --- a/web/src/lib/components/asset-viewer/actions/close-action.svelte +++ b/web/src/lib/components/asset-viewer/actions/close-action.svelte @@ -1,5 +1,6 @@ + - onClick(!isPlaying)} /> diff --git a/web/src/lib/components/asset-viewer/actions/share-action.svelte b/web/src/lib/components/asset-viewer/actions/share-action.svelte index e32c83d7cc..5ab60fcb4c 100644 --- a/web/src/lib/components/asset-viewer/actions/share-action.svelte +++ b/web/src/lib/components/asset-viewer/actions/share-action.svelte @@ -4,6 +4,7 @@ import SharedLinkCreateModal from '$lib/modals/SharedLinkCreateModal.svelte'; import { makeSharedLinkUrl } from '$lib/utils'; import type { AssetResponseDto } from '@immich/sdk'; + import { IconButton } from '@immich/ui'; import { mdiShareVariantOutline } from '@mdi/js'; import { t } from 'svelte-i18n'; @@ -22,4 +23,11 @@ }; - + diff --git a/web/src/lib/components/asset-viewer/actions/show-detail-action.svelte b/web/src/lib/components/asset-viewer/actions/show-detail-action.svelte index ce51d9891d..8ac087bca6 100644 --- a/web/src/lib/components/asset-viewer/actions/show-detail-action.svelte +++ b/web/src/lib/components/asset-viewer/actions/show-detail-action.svelte @@ -1,5 +1,6 @@ - + diff --git a/web/src/lib/components/photos-page/actions/delete-assets.svelte b/web/src/lib/components/photos-page/actions/delete-assets.svelte index cccc781bc9..b16e046523 100644 --- a/web/src/lib/components/photos-page/actions/delete-assets.svelte +++ b/web/src/lib/components/photos-page/actions/delete-assets.svelte @@ -6,6 +6,7 @@ import MenuOption from '../../shared-components/context-menu/menu-option.svelte'; import { getAssetControlContext } from '../asset-select-control-bar.svelte'; import DeleteAssetDialog from '../delete-asset-dialog.svelte'; + import { IconButton } from '@immich/ui'; interface Props { onAssetDelete: OnDelete; @@ -44,9 +45,23 @@ {#if menuItem} {:else if loading} - {}} /> + {}} + /> {:else} - + {/if} {#if isShowConfirmation} diff --git a/web/src/lib/components/photos-page/actions/download-action.svelte b/web/src/lib/components/photos-page/actions/download-action.svelte index d3e83db209..73f1a77742 100644 --- a/web/src/lib/components/photos-page/actions/download-action.svelte +++ b/web/src/lib/components/photos-page/actions/download-action.svelte @@ -8,6 +8,7 @@ import { t } from 'svelte-i18n'; import MenuOption from '../../shared-components/context-menu/menu-option.svelte'; import { getAssetControlContext } from '../asset-select-control-bar.svelte'; + import { IconButton } from '@immich/ui'; interface Props { filename?: string; @@ -39,5 +40,12 @@ {#if menuItem} {:else} - + {/if} diff --git a/web/src/lib/components/photos-page/actions/favorite-action.svelte b/web/src/lib/components/photos-page/actions/favorite-action.svelte index 9ad9907aea..98ff33cff8 100644 --- a/web/src/lib/components/photos-page/actions/favorite-action.svelte +++ b/web/src/lib/components/photos-page/actions/favorite-action.svelte @@ -10,6 +10,7 @@ import { mdiHeartMinusOutline, mdiHeartOutline, mdiTimerSand } from '@mdi/js'; import { t } from 'svelte-i18n'; import { getAssetControlContext } from '../asset-select-control-bar.svelte'; + import { IconButton } from '@immich/ui'; interface Props { onFavorite?: OnFavorite; @@ -67,8 +68,15 @@ {#if !menuItem} {#if loading} - {}} /> + {}} + /> {:else} - + {/if} {/if} diff --git a/web/src/lib/components/photos-page/actions/link-live-photo-action.svelte b/web/src/lib/components/photos-page/actions/link-live-photo-action.svelte index 479842bfb2..1d36c79730 100644 --- a/web/src/lib/components/photos-page/actions/link-live-photo-action.svelte +++ b/web/src/lib/components/photos-page/actions/link-live-photo-action.svelte @@ -9,6 +9,7 @@ import { mdiLinkOff, mdiMotionPlayOutline, mdiTimerSand } from '@mdi/js'; import { t } from 'svelte-i18n'; import MenuOption from '../../shared-components/context-menu/menu-option.svelte'; + import { IconButton } from '@immich/ui'; interface Props { onLink: OnLink; @@ -75,8 +76,15 @@ {#if !menuItem} {#if loading} - {}} /> + {}} + /> {:else} - + {/if} {/if} diff --git a/web/src/lib/components/photos-page/actions/remove-from-album.svelte b/web/src/lib/components/photos-page/actions/remove-from-album.svelte index 9ca5edd663..747cc1d01c 100644 --- a/web/src/lib/components/photos-page/actions/remove-from-album.svelte +++ b/web/src/lib/components/photos-page/actions/remove-from-album.svelte @@ -5,6 +5,7 @@ } from '$lib/components/shared-components/notification/notification'; import { modalManager } from '$lib/managers/modal-manager.svelte'; import { getAlbumInfo, removeAssetFromAlbum, type AlbumResponseDto } from '@immich/sdk'; + import { IconButton } from '@immich/ui'; import { mdiDeleteOutline, mdiImageRemoveOutline } from '@mdi/js'; import { t } from 'svelte-i18n'; import MenuOption from '../../shared-components/context-menu/menu-option.svelte'; @@ -60,5 +61,12 @@ {#if menuItem} {:else} - + {/if} diff --git a/web/src/lib/components/photos-page/actions/remove-from-shared-link.svelte b/web/src/lib/components/photos-page/actions/remove-from-shared-link.svelte index 34a288c54b..53dba07bbc 100644 --- a/web/src/lib/components/photos-page/actions/remove-from-shared-link.svelte +++ b/web/src/lib/components/photos-page/actions/remove-from-shared-link.svelte @@ -7,6 +7,7 @@ import { t } from 'svelte-i18n'; import { NotificationType, notificationController } from '../../shared-components/notification/notification'; import { getAssetControlContext } from '../asset-select-control-bar.svelte'; + import { IconButton } from '@immich/ui'; interface Props { sharedLink: SharedLinkResponseDto; @@ -58,4 +59,11 @@ }; - + diff --git a/web/src/lib/components/photos-page/actions/select-all-assets.svelte b/web/src/lib/components/photos-page/actions/select-all-assets.svelte index db688060df..f07bfd53cc 100644 --- a/web/src/lib/components/photos-page/actions/select-all-assets.svelte +++ b/web/src/lib/components/photos-page/actions/select-all-assets.svelte @@ -2,7 +2,7 @@ import type { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; import { type AssetStore, isSelectingAllAssets } from '$lib/stores/assets-store.svelte'; import { cancelMultiselect, selectAllAssets } from '$lib/utils/asset-utils'; - import { Button } from '@immich/ui'; + import { Button, IconButton } from '@immich/ui'; import { mdiSelectAll, mdiSelectRemove } from '@mdi/js'; import { t } from 'svelte-i18n'; @@ -34,8 +34,11 @@ {$isSelectingAllAssets ? $t('unselect_all') : $t('select_all')} {:else} - diff --git a/web/src/lib/components/photos-page/actions/tag-action.svelte b/web/src/lib/components/photos-page/actions/tag-action.svelte index 9c220c738f..64763414a9 100644 --- a/web/src/lib/components/photos-page/actions/tag-action.svelte +++ b/web/src/lib/components/photos-page/actions/tag-action.svelte @@ -3,6 +3,7 @@ import { tagAssets } from '$lib/utils/asset-utils'; import { mdiTagMultipleOutline, mdiTimerSand } from '@mdi/js'; import { t } from 'svelte-i18n'; + import { IconButton } from '@immich/ui'; import MenuOption from '../../shared-components/context-menu/menu-option.svelte'; import { getAssetControlContext } from '../asset-select-control-bar.svelte'; @@ -39,9 +40,16 @@ {#if !menuItem} {#if loading} - {}} /> + {}} + /> {:else} - + {/if} {/if} diff --git a/web/src/lib/components/share-page/individual-shared-viewer.svelte b/web/src/lib/components/share-page/individual-shared-viewer.svelte index 72927891e4..8fa26a4e59 100644 --- a/web/src/lib/components/share-page/individual-shared-viewer.svelte +++ b/web/src/lib/components/share-page/individual-shared-viewer.svelte @@ -16,13 +16,13 @@ import { mdiArrowLeft, mdiFileImagePlusOutline, mdiFolderDownloadOutline, mdiSelectAll } from '@mdi/js'; import { t } from 'svelte-i18n'; import AssetViewer from '../asset-viewer/asset-viewer.svelte'; - import CircleIconButton from '../elements/buttons/circle-icon-button.svelte'; import DownloadAction from '../photos-page/actions/download-action.svelte'; import RemoveFromSharedLink from '../photos-page/actions/remove-from-shared-link.svelte'; import AssetSelectControlBar from '../photos-page/asset-select-control-bar.svelte'; import ControlAppBar from '../shared-components/control-app-bar.svelte'; import GalleryViewer from '../shared-components/gallery-viewer/gallery-viewer.svelte'; import { NotificationType, notificationController } from '../shared-components/notification/notification'; + import { IconButton } from '@immich/ui'; interface Props { sharedLink: SharedLinkResponseDto; @@ -95,7 +95,14 @@ assets={assetInteraction.selectedAssets} clearSelect={() => cancelMultiselect(assetInteraction)} > - + {#if sharedLink?.allowDownload} {/if} @@ -111,15 +118,25 @@ {#snippet trailing()} {#if sharedLink?.allowUpload} - handleUploadAssets()} icon={mdiFileImagePlusOutline} /> {/if} {#if sharedLink?.allowDownload} - + {/if} {/snippet} diff --git a/web/src/lib/components/shared-components/combobox.svelte b/web/src/lib/components/shared-components/combobox.svelte index 17cfcb00d0..3ed09dd33a 100644 --- a/web/src/lib/components/shared-components/combobox.svelte +++ b/web/src/lib/components/shared-components/combobox.svelte @@ -29,6 +29,7 @@ import { t } from 'svelte-i18n'; import type { FormEventHandler } from 'svelte/elements'; import { fly } from 'svelte/transition'; + import { IconButton } from '@immich/ui'; interface Props { label: string; @@ -329,7 +330,7 @@ class:pointer-events-none={!selectedOption} > {#if selectedOption} - + {:else if !isOpen} {/if} diff --git a/web/src/lib/components/shared-components/context-menu/button-context-menu.svelte b/web/src/lib/components/shared-components/context-menu/button-context-menu.svelte index 9e5d5d2391..1cd24b44d9 100644 --- a/web/src/lib/components/shared-components/context-menu/button-context-menu.svelte +++ b/web/src/lib/components/shared-components/context-menu/button-context-menu.svelte @@ -1,10 +1,6 @@ {#if !themeManager.theme.system} - themeManager.toggleTheme()} - {padding} + color="secondary" + variant="ghost" + shape="round" /> {/if} diff --git a/web/src/lib/components/shared-components/tree/breadcrumbs.svelte b/web/src/lib/components/shared-components/tree/breadcrumbs.svelte index 452d4ea3a4..135dda0aca 100644 --- a/web/src/lib/components/shared-components/tree/breadcrumbs.svelte +++ b/web/src/lib/components/shared-components/tree/breadcrumbs.svelte @@ -1,5 +1,6 @@