WingoUI
Buttons & Actions
ButtonButton GroupCopy ButtonDelete ButtonTheme ToggleToggleToggle Group
Inputs
Avatar UploadCalendarCheckboxColor PickerComboboxCron PickerCurrency InputDate PickerDate Range PickerDate Time PickerDuration PickerFile UploadFilter BuilderInputInput GroupListboxMasked InputMention InputMonth PickerMulti SelectNumber InputOTP InputPassword InputPhone InputRadio GroupRatingSearch InputSegmented ControlSelectSignature PadSliderSwitchTag InputTextareaTime Picker
Forms
Address InputCSV ImportFieldForm WizardInline EditInvoice line itemsRich Text Editor
Navigation
Back To TopBounce SidebarBreadcrumbCommand MenuGlobal SearchGooey NavHook SidebarNav MenuNav TabsPaginationProximity SidebarScroll ProgressSidebarStepsTable Of ContentsTabsTopbarUser MenuWorkspace Switcher
Overlays
Alert DialogContext MenuDialogDrawerDropdown MenuFamily DrawerHover CardPopoverSheetShortcuts DialogTooltipTour
Feedback
AlertBannerCookie ConsentEmoji ReactionEmpty StateNotification BellNotification CenterProgressRoute ProgressSkeletonSpinnerToast
Data Display
Approval FlowAvatarBadgeCalendar ViewCode BlockComment ThreadContact cardCountdownDescription ListDiff ViewerFile ListFile managerFolderGanttJSON ViewerKbdLog ViewerMarkdownPresenceSchedulerTagTimelineTree View
Tables & Lists
Audit LogData TableDeal PipelineEditable GridKanbanListMembers tablePermissions MatrixTableTask ListVirtual List
Charts & Stats
Animated CounterArea chartBar chartDonut chartFunnel chartGaugeGitHub ActivityHeatmap calendarLeaderboardLine chartRadial barSparklineStat CardTrackerTrend badge
Layout
AccordionApp ShellCardCollapsibleDetail LayoutEntity HeaderPage HeaderScroll AreaSeparatorSettings LayoutSplit ViewToolbar
Media
Audio PlayerCarouselImage CropperImage LightboxLocation MapQR CodeStep PlayerVideo Player
AI Kit
Agent Status CardChat MessageChat ThreadConversation ListFluid OrbGrid RevealMatrix OrbModel PickerPrompt InputReasoning IndicatorRule BuilderSuggestion ChipsTool Call TimelineUsage MeterVoice InputWorkflow Canvas
Text & Effects
Gravity Letters
Mobile
Action SheetBottom Tab BarFABHaptic ButtonHero HeaderInstall PromptLarge Title HeaderNotification BannerOnboarding CarouselPicker WheelPull To RefreshSlide To ConfirmSticky CTA BarSwipe DeckSwipeable Tabs
Commerce
Cart drawerCategory pickerCheckout stepsCoupon inputFavorite buttonFilter panelListing cardListing gridOrder trackerPricePrice rangePricing tableProduct galleryQuantity stepperReviewsSeller card
Blocks
Admin Dashboard PageAdmin ShellAI Chat PageAutomation Builder PageCheckout PageCRM Contact PageCRM Pipeline PageError PagesInbox PageInvoice PageKPI DashboardListing Detail PageLogin PageMarketplace Home PageMarketplace Search PageMarketplace ShellMobile App HomeOnboarding FlowPost Listing WizardPricing PageRegister PageSettings PageUsers Admin Page
Hooks & Utilities
AI ChatChart kitCommerceDate utilsFile exportFile typesFiltersForm validationHapticsInvoicingMotion presetsNavigationNumber formatRelative timeRomanian locationsSpreadsheetText matchTonesUIProvideruseClipboarduseConsentuseControllableStateuseCooldownuseDebounceuseKeyboardInsetuseLocaleuseLongPressuseMediaControlsuseMediaQueryuseOverflowItemsusePersistedStateuseScrollEdgesuseScrollStateuseSelectionuseShortcutuseStickToBottom
GalleryThemeCredits

Tables & Lists

Audit Log

Tables & ListsAudit Log
Tree ViewData Table
Live props
Behavior
mode
sortOrder
expandable
exportable
exportFileName
csvDelimiter
autoLoadMore
maxRows200
State
defaultSearch
loading
skeletonCount8
refreshing
error
loadingMore
Layout
groupByDay
showIp
showSeverity
searchable
filterable
showPeriod
Appearance
timeFormat
density
radius
tone
Content
currency
locale
Code
import { AuditLog } from "@/components/ui/audit-log"

<AuditLog />
Pro

v1.0.0·Added in 1.0.0

Who did what, when and to which record: a filterable activity log with day groups, before / after diffs and a CSV export.

Search the log (actor, sentence, record and IP match, accents ignored), pick a period with quick ranges (Today, Last 7 days, Last 30 days, This month) and add filter chips for user, action, record type, severity or IP; the count updates and is announced. On desktop each event is a table row under a sticky day heading: click the row or its chevron button (Enter / Space) to open the before / after diff and the technical details, where IP, request id and metadata copy on click. The record in the sentence is a link. Tab reaches the toggles, links and copy buttons in order. Export CSV downloads exactly the events on screen (disabled when there are none). Below 768px the table becomes a feed of day groups: tap a row to expand it inline, the record link moves into the details, the period and filters open as bottom sheets, and Load more is a full-width button (or loads on scroll with autoLoadMore). Rows added by Load more slide in; the first page never animates. With reduced motion the rows and details appear without movement.

Add to a project

npx wingo-ui@latest add audit-log

Pro item: the CLI needs a Pro account. See plans

Dependencies

motionlucide-reactavatarbadgebuttoncopy-buttondate-range-pickerempty-statefilter-builderprogresssearch-inputtableuse-controllable-stateuse-localecommercedate-utilsfiltersmotionnavigationnumber-formatrelative-timespreadsheettext-matchtonesui-config

Files

  • components/ui/audit-log.tsx

See also

Filter BuilderTableTimelineSpreadsheetlibFilterslib
PreviousTree ViewNext Data Table
40 results40 results
40 events
Activity log
DetailsTimeUserActionSeverityIP
Today
5 min. ago4:35 PMJessica DunnJessica Dunn voided Warning93.114.52.211
28 min. ago4:12 PMAnna PriceAnna Price updated 86.124.52.18

Changes

FieldBeforeAfter
Balance$7,315.20$0
StatusOverdueActive
OwnerRyan MartinAnna Price
Balance
Before: $7,315.20After: $0
Status
Before: OverdueAfter: Active
Owner
Before: Ryan MartinAfter: Anna Price
IP
Device
Chrome · macOS
Location
San Francisco, US
Request
42 min. ago3:58 PMQuickBooks OnlineIntegrationQuickBooks Online synced to QuickBooks 194.102.170.12
1 hr. ago3:31 PMLiam BrooksLiam Brooks changed the role of Notice79.115.62.40
2 hr. ago2:47 PMSystemSystem blocked a sign-in for Warning86.124.17.203
3 hr. ago2:05 PMMichael HayesMichael Hayes moved 5.2.144.18
3 hr. ago1:31 PMMichael HayesMichael Hayes issued 5.2.144.18
3 hr. ago1:15 PMQuickBooks OnlineIntegrationQuickBooks Online synced to QuickBooks 194.102.170.12
7 hr. ago9:34 AMRyan MartinRyan Martin updated 188.26.93.7
8 hr. ago8:49 AMJessica DunnJessica Dunn moved 93.114.52.211
Yesterday
11:05 PMAndrew PorterAndrew Porter issued 82.78.14.96
8:15 PMQuickBooks OnlineIntegrationQuickBooks Online synced to QuickBooks 194.102.170.12
8:10 PMSystemSystem blocked a sign-in for Warning86.124.17.203
6:30 PMMaria ThomasMaria Thomas updated 86.120.41.77
5:28 PMEllen StoneEllen Stone updated 109.166.130.4
4:38 PMMichael HayesMichael Hayes added the client 5.2.144.18
3:48 PMLiam BrooksLiam Brooks changed the role of Notice79.115.62.40
2:42 PMAndrew PorterAndrew Porter issued 82.78.14.96
11:45 AMAnna PriceAnna Price deleted the client Warning86.124.52.18
11:26 AMMaria ThomasMaria Thomas issued 86.120.41.77
10:57 AMAnna PriceAnna Price updated 86.124.52.18
8:51 AMAndrew PorterAndrew Porter updated 82.78.14.96
8:19 AMRyan MartinRyan Martin added the client 188.26.93.7
Tuesday, September 22
7:21 PMMaria ThomasMaria Thomas issued 86.120.41.77
5:07 PMAndrew PorterAndrew Porter issued 82.78.14.96
3:52 PMAndrew PorterAndrew Porter updated 82.78.14.96
2:39 PMAndrew PorterAndrew Porter issued 82.78.14.96
2:38 PMQuickBooks OnlineIntegrationQuickBooks Online synced to QuickBooks 194.102.170.12
1:20 PMJessica DunnJessica Dunn moved 93.114.52.211
12:12 PMRyan MartinRyan Martin updated 188.26.93.7
8:57 AMAndrew PorterAndrew Porter deleted the client Warning82.78.14.96
Monday, September 21
8:42 PMRyan MartinRyan Martin moved 188.26.93.7
8:20 PMQuickBooks OnlineIntegrationQuickBooks Online synced to QuickBooks 194.102.170.12
6:46 PMEllen StoneEllen Stone voided Warning109.166.130.4
4:19 PMAnna PriceAnna Price updated 86.124.52.18
10:54 AMRyan MartinRyan Martin exported the clientsWarning188.26.93.7
9:43 AMAnna PriceAnna Price updated 86.124.52.18
9:33 AMMaria ThomasMaria Thomas updated 86.120.41.77
8:20 AMLiam BrooksLiam Brooks changed the role of Notice79.115.62.40
Saturday, September 19
5:46 PMAnna PriceAnna Price updated 86.124.52.18
40 events

Today

  • Open:

    Changes

    FieldBeforeAfter
    Balance$7,315.20$0
    StatusOverdueActive
    OwnerRyan MartinAnna Price
    Balance
    Before: $7,315.20After: $0
    Status
    Before: OverdueAfter: Active
    Owner
    Before: Ryan MartinAfter: Anna Price
    IP
    Device
    Chrome · macOS
    Location
    San Francisco, US
    Request

Yesterday

Tuesday, September 22

Monday, September 21

Saturday, September 19

Click a row to see what changed. Filter by user or severity, pick a period, then export exactly what is on screen.

mode: client · autoLoadMore: false · exportFileName: "audit-log" · csvDelimiter: ","