Title: Changes Feed Widget --- The Changes Feed Widget displays a chronological list of recent changes made within the platform. It is designed to keep users informed about activity across the system, showing who made changes, what was changed, and when. Overview The widget fetches and renders a live feed of change events, with support for relative timestamps localized to the user's current language. Each entry in the feed displays a user avatar (color-coded by name), a summary of the change, and the time elapsed since the change occurred. Supported languages for relative timestamps: German (de), English (en), Spanish (es), French (fr), Italian (it), Polish (pl). Configuration Props | Prop | Type | Default | Description | |------|------|---------|-------------| | showHeader | boolean | true | Controls whether the widget's title and description header is rendered. Set to false when embedding the widget in a context that already provides a header, or when you want a more compact layout. | Usage Default (with header) Use the widget in its default form to display the full widget including the title and description: Embedded (without header) Set showHeader to false to suppress the built-in title and description. This is useful when embedding the widget inside a panel, card, or layout that already provides its own heading: States The widget handles the following states automatically: Loading — Displays an animated skeleton placeholder (three rows) while change data is being fetched. Error — Displays an error alert if the feed fails to load. Empty — Indicates when no changes are available. Populated — Renders the list of change feed entries with avatars, summaries, and relative timestamps. Avatar Colors User avatars are color-coded deterministically based on the user's display name. The following DaisyUI theme colors are used in rotation: bg-primary bg-secondary bg-accent bg-info bg-success bg-warning This ensures that the same user always receives the same avatar color within a session, providing visual consistency across the feed. Localization Relative timestamps (e.g., "2 minutes ago") are rendered using date-fns and respect the application's current language setting via the i18n store. If the current language does not have a matching locale, German (de) is used as the fallback. Related Widget System — Overview of the widget architecture.