Appearance
Types ​
TypeScript type definitions in app/types/. Not auto-imported — always use explicit import type { X } from '~/types/x'.
Why Explicit Imports ​
Nuxt auto-imports only apply to composables and utils. Type files must be imported manually. Use import type (not import) to keep the runtime bundle clean.
Grouped by Domain ​
API & HTTP ​
| File | Key types defined |
|---|---|
api.ts | ApiResponse<T>, PaginatedData<T>, ApiRequestOptions — standard backend response envelope matching Laravel's RestResponse.php |
api-client.ts | FetchConfig, FetchResponse<T>, ErrorWithResponse — low-level fetch client shapes |
Analytics & Amplitude ​
| File | Key types defined |
|---|---|
amplitude.ts | AmplitudeEventProperties, AmplitudeEnvironment, AmplitudeGlobalProperties, AmplitudeUserProperties, AmplitudeTracker, AmplitudeTrackOptions, SessionReplayInitOptions, SessionReplayPrivacyConfig |
transaction.ts | TransactionEvent enum, AssetSubEvent enum, FolderSubEvent enum, CollageSubEvent enum, TransactionPayload — exhaustive activity-event vocabulary; do not add new values without a codebase audit |
Assets ​
| File | Key types defined |
|---|---|
asset.ts | Asset, AssetParams, UpdateAssetPayload, DeleteFilePayload, ConvertPayload, DownloadHistoryPayload, MakeVersionPayload |
asset-detail.ts | AssetDetail — rich asset shape used on the asset detail page, including nested collections, tags, and version info |
upload.ts | UploadFileItem, UploadFileInfo, UploadQueueEntry — upload queue shapes ported from old Admin-Frontend upload mixins |
DAM Core ​
| File | Key types defined |
|---|---|
dam.ts | TagItem — tag shape used across DAM tag inputs |
dam-display.ts | ThumbnailSize, DisplaySortDirection, DisplaySortColumn, DisplaySortChange — DAM display-panel (view mode, thumbnail size, sort) controls |
dam-list.ts | FolderAssetItem, CellFormat, DamColumn, DamListAction — shared row and column shapes for all four list-view components |
filters.ts | FilterFieldType, FilterOperator, FilterValue, FilterValueMarkers, FilterItem, FilterGroup — filter model mirroring Admin-Frontend's buildFiltersNew() shape |
search.ts | SearchTab, SearchScope, SearchContextLabel, SEARCH_TAB_TO_COLLECTION map, scopeToContextLabel() helper |
typesense.ts | TypesenseCollection, TextMatchType, TypesenseHit<T>, TypesenseGroupedHit<T>, TypesenseFacetCount, TypesenseSearchResponse<T> — raw Typesense HTTP API protocol shapes |
trash.ts | TrashFolder, TrashAsset, TrashItem, RestorePayload |
Folders, Collections & Dashboard ​
| File | Key types defined |
|---|---|
folder.ts | Folder, UncategorisedObj, folder API payloads |
folder-detail.ts | FolderDetail, FolderDetailFile, FolderDetailSearchData — types scoped to the folder detail page |
collection.ts | Collection, CollectionDetailsParams, UpdateCollectionPayload — imports PreviewImage from dashboard.ts |
collage-detail.ts | CollageDetailFile, CollageDetailAsset, CollageDetailSelectedItem, CollageDetailFilterItem, CollageDetailFilterObj — types scoped to the collage detail page |
dashboard.ts | PreviewImage, Collage, RecentUpload, ChartData, ChartDataset, DashboardOverview |
Sharing & External Access ​
| File | Key types defined |
|---|---|
sharing.ts | ShareFile, ShareFolder, ShareLink, sharing API payloads |
shared-assets.ts | ShareAsset, ShareBreadcrumb, ShowShareAssetsParams — guest-portal / shared-assets view shapes |
external.ts | ExternalBranding — branding/logo/color config for the guest-portal OTP flow |
external-users.ts | ExternalUser, ExternalUserListParams, ExternalUserListResponse, AddExternalUserPayload — partner/external-user management (distinct from external.ts which covers the guest portal) |
Auth, Users & Members ​
| File | Key types defined |
|---|---|
auth.ts | UserData, User, AuthUser — resolved role/permission data for the current session; imports Workspace from layout.ts |
members.ts | MemberUser, MemberListParams, MemberListResponse — workspace member management via useMembersApi |
profile.ts | UserProfileResponse, SupportSessionData, SupportSession, Passkey — user profile and passkey shapes |
org-settings.ts | RoleOption, InstanceOption, UserProp — shared by user-management dialogs and settings pages |
Workspace & Portal ​
| File | Key types defined |
|---|---|
workspace-settings.ts | WorkspaceApiDetail, WorkspaceUser, UpdateWorkspaceSettingsPayload — workspace settings API types (named WorkspaceApiDetail to avoid collisions with local stubs elsewhere) |
portal.ts | PortalBranding, PortalSettings, PortalWorkspace, PortalInstance — DAM instance / brand-portal configuration |
UI & Components ​
| File | Key types defined |
|---|---|
components.ts | AssetCardProps, MenuItem, AssetImageOverlayProps and other component prop/emit shapes |
dialogs.ts | AssetQuickViewProps, AssetQuickViewEmits, FolderItem, FileItem and other dialog prop shapes |
image-editor.ts | FlipState, ResizeDims, CropData, TransformState, CropBoxData, CropPresetGroup, ExportFormatOption — shared by ImageEditor.vue and the asset-detail action panel |
layout.ts | MenuRoute, CreateNewRoute, BrandPortalRoute, AuthUser, Workspace — sidebar and navigation shapes |
snackbar.ts | SnackbarColor, SnackbarMethods, SnackbarColorMap, SNACKBAR_COLORS constant |
notification.ts | Notification, AnnouncementNotificationItem, Announcement — notification-bell and CMS announcement shapes |
Shared Infrastructure ​
| File | Key types defined |
|---|---|
common.ts | AnalyticsPayload, UserAgentAndLocation, BrowserOsResponse, TransactionResponse, NuxtAppWithApi, ChartColorScheme — cross-cutting utility types |
store.ts | StorageInfo, StoreFolder, StoreCollection, StoreAsset, StoreFile, DamInstance — canonical shapes used by Pinia stores |
custom-fields.ts | FieldType union, CustomFieldDefinition — custom metadata field schema |
Type Declarations (.d.ts) ​
| File | Purpose |
|---|---|
assets.d.ts | Module declarations for static asset imports (SVG, PNG, etc.) |
nuxt.d.ts | Nuxt app augmentations (e.g. NuxtApp extensions) |
router.d.ts | Vue Router meta-field augmentations |
vue-audio-visual.d.ts | Ambient declaration for the vue-audio-visual package |