Features: - Created TransactionsPage with mobile-optimized layout - Card-based transaction items with status indicators - Fuzzy search by description, payee, reference, username, and tags - Day filter options (5, 30, 60, 90 days) - Pagination support - Responsive design for mobile and desktop - Added getUserTransactions API method to ExpensesAPI - Supports filtering by days, user ID, and account type - Returns paginated transaction data - Updated AddExpense component with success confirmation - Shows success message in same dialog after submission - Provides option to navigate to transactions page - Clean single-dialog approach - Added "My Transactions" link to navbar menu - Added Transaction and TransactionListResponse types - Added permission management types and API methods (grantPermission, listPermissions, revokePermission) - Installed alert-dialog component for UI consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
20 lines
558 B
Vue
20 lines
558 B
Vue
<script setup lang="ts">
|
|
import type { AlertDialogTitleProps } from "reka-ui"
|
|
import type { HTMLAttributes } from "vue"
|
|
import { reactiveOmit } from "@vueuse/core"
|
|
import { AlertDialogTitle } from "reka-ui"
|
|
import { cn } from "@/lib/utils"
|
|
|
|
const props = defineProps<AlertDialogTitleProps & { class?: HTMLAttributes["class"] }>()
|
|
|
|
const delegatedProps = reactiveOmit(props, "class")
|
|
</script>
|
|
|
|
<template>
|
|
<AlertDialogTitle
|
|
v-bind="delegatedProps"
|
|
:class="cn('text-lg font-semibold', props.class)"
|
|
>
|
|
<slot />
|
|
</AlertDialogTitle>
|
|
</template>
|