Component Documentation

This documentation covers all Vue components in the Inventory Management UI application.

Component Categories

Global Components

Centrally managed features that provide consistent user interaction patterns across the entire application. These components are rendered globally in App.vue and controlled via Pinia stores, including loading overlays, error displays, and confirmation modals.

Format Components

Components for displaying and formatting data, including text display, form inputs, dropdowns, and specialized formatters.

Layout Components

High-level layout components for structuring pages and sections, including detail views, list views, and application layout.

Icon Components

SVG icon components used throughout the application.

Theme and Colors

Guidelines and helpers for consistent color usage across the frontend: Theme and Colors

Action Components

Button components for various user actions like editing, saving, deleting, etc.

Component Structure

All components follow these conventions:

Common Patterns

Props Validation

interface Props {
  required: string;
  optional?: boolean;
  withDefault?: string;
}

const props = withDefaults(defineProps<Props>(), {
  optional: false,
  withDefault: "default value",
});

Event Emissions

const emit = defineEmits<{
  click: [];
  change: [value: string];
  customEvent: [data: CustomType];
}>();

Computed Properties

const computedValue = computed(() => {
  return props.someValue ? "active" : "inactive";
});