Appearance
Components Documentation
Overview
This section documents all Vue components used in the Admin Frontend application. Components are organized by functionality and located in the components/ directory.
Component Structure
DAM Components
AssetList
Components for displaying and managing assets:
AssetContainer- Asset preview containerAssetUpload- Asset upload interfaceVersions- Asset version managementAddTags- Tag management for assets
Collage
Components for collage functionality:
FileListingCard- Asset card in collage viewAvatarList- User avatar listMediaResources- Media resource displayVideoHoverContent- Video hover actionsNonVideoHoverContent- Non-video hover actions
Folders
Folder management components:
FolderCard- Folder display cardFolderDialogs- Folder operation dialogs
Search
Search-related components:
SearchBar- Search input componentSearchBarTypeSense- Typesense search barSearchFilter- Filter panelSearchTabs- Search tabs navigationSearchBulkActions- Bulk action toolbar
Dialogs
Dialog components for various operations:
AdvanceShareDialog- Advanced sharing optionsAssetPermissionDialog- Asset permissionsCreateCollageDialog- Create collage dialogPermissionDialog- General permission dialogPreviewDialog- Asset preview dialogQuickViewDialog- Quick view dialogShareAssetDialog- Share asset dialog
Theme Components
Global
Global theme components:
CollageHeader- Main application headerCoreHeader- Core header componentLeftMenu- Left navigation menuDamNotification- DAM notificationsOverlayLoader- Loading overlayError- Error display component
Settings
Settings-related components:
AccountSettingsLeftMenu- Settings navigationWorkspaceNote- Workspace notes
Table Components
Table components for data display:
announcementTable- Announcements tableexternalUserTable- External users tableInvoiceTable- Invoices tableshareLinkListTable- Share links tableusersMenuOption- User menu optionswpAdminsTable- Workspace admins table
Utility Components
BreadCrumbs- Breadcrumb navigationViewToggle- View mode toggleUpgradePlanSection- Plan upgrade sectionEmailNotificationsAlert- Email notification alert
Component Patterns
Props
Components use props for data input:
javascript
props: {
file: Object,
folder: Object,
canEdit: Boolean,
// ... other props
}Events
Components emit events for parent communication:
javascript
this.$emit('fileSelect', file)
this.$emit('menuAction', action)Slots
Many components use slots for flexible content:
vue
<slot name="actions"></slot>
<slot name="content"></slot>Component Best Practices
- Single Responsibility - Each component has a focused purpose
- Reusability - Components are designed for reuse
- Props Validation - Props are validated with types
- Event Communication - Parent-child communication via events
- Scoped Styles - Styles are scoped to prevent conflicts
Component Documentation
Detailed documentation for each component includes:
- Purpose and functionality
- Props and their types
- Events emitted
- Slots available
- Usage examples
- Dependencies