betterstart-cli 0.0.95 → 0.0.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/adapters/next/integrations/_shared/actions/object-key.ts +16 -0
- package/dist/assets/adapters/next/integrations/r2/actions/r2.ts +6 -14
- package/dist/assets/adapters/next/integrations/r2/integration.ts +4 -0
- package/dist/assets/adapters/next/integrations/railway-bucket/actions/railway-bucket.ts +7 -15
- package/dist/assets/adapters/next/integrations/railway-bucket/integration.ts +4 -0
- package/dist/assets/adapters/next/integrations/vercel-blob/actions/vercel-blob.ts +2 -10
- package/dist/assets/adapters/next/integrations/vercel-blob/integration.ts +4 -0
- package/dist/assets/adapters/next/templates/init/api/upload-route.ts +37 -13
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-header.tsx +6 -6
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/delete-dialog.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-gallery-dialog.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/components/shared/search-input.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/sort-indicator.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-color-highlight.ts +10 -64
- package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-source-mode.tsx +11 -4
- package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-heading-dropdown-menu.ts +0 -1
- package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-list-dropdown-menu.ts +0 -1
- package/dist/assets/adapters/next/templates/init/lib/actions/audit/get-audit-logs.ts +5 -10
- package/dist/assets/adapters/next/templates/init/lib/actions/forms/index.ts +1 -5
- package/dist/assets/adapters/next/templates/init/lib/actions/media/create-media.ts +6 -6
- package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media.ts +4 -1
- package/dist/assets/adapters/next/templates/init/lib/actions/media/update-media.ts +5 -5
- package/dist/assets/adapters/next/templates/init/lib/actions/profile/index.ts +1 -5
- package/dist/assets/adapters/next/templates/init/lib/actions/upload/index.ts +1 -5
- package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-deliveries.ts +1 -10
- package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhooks.ts +1 -10
- package/dist/assets/adapters/next/templates/init/lib/db/core/schema.ts +4 -1
- package/dist/assets/adapters/next/templates/init/lib/lifecycle-hooks/runner.ts +1 -1
- package/dist/assets/adapters/next/templates/init/pages/admin-layout.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/auth-gate-rsc.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +6 -6
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/media/media-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/profile/profile-page.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-drawer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-content.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-table.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-content.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-table.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +6 -6
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +7 -7
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page-content.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-table.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-content.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-table.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/pages/users/users-page-content.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/users/users-page-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/users/users-table.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/types/table-meta.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/date/date.ts +15 -0
- package/dist/assets/adapters/next/templates/init/utils/editor/content-editor.ts +98 -25
- package/dist/assets/adapters/next/templates/init/utils/editor/markdown.ts +5 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/editor-toolbar.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/main-toolbar-content.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/mobile-toolbar-content.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +11 -9
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +1 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +1 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +2 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +4 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +3 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +5 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx +2 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-main.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-popover.tsx +1 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +1 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +1 -2
- package/dist/assets/shared-assets/react-admin/custom/date-picker.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +10 -8
- package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/media-field-empty-state.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +7 -7
- package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/progressive-blur.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/schema.json +1143 -876
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/badge.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/command.tsx +0 -1
- package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/field.tsx +0 -1
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +0 -1
- package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/table.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +1 -1
- package/dist/{chunk-3CLINNJL.js → chunk-MJWUGEMK.js} +32 -8
- package/dist/chunk-MJWUGEMK.js.map +1 -0
- package/dist/cli.js +8554 -9062
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{template-reader-PVN53GS7.js → template-reader-R2JIWUNK.js} +2 -2
- package/package.json +3 -3
- package/dist/chunk-3CLINNJL.js.map +0 -1
- /package/dist/{template-reader-PVN53GS7.js.map → template-reader-R2JIWUNK.js.map} +0 -0
package/dist/assets/adapters/next/templates/init/lib/actions/webhooks/get-webhook-deliveries.ts
CHANGED
|
@@ -3,19 +3,10 @@
|
|
|
3
3
|
import { requireRole, UserRole } from '@admin/auth/middleware'
|
|
4
4
|
import db from '@admin/db'
|
|
5
5
|
import { webhookDeliveries, webhooks } from '@admin/db/schema'
|
|
6
|
+
import { getExclusiveDateUpperBound } from '@admin/utils/date/date'
|
|
6
7
|
import { and, asc, desc, eq, gte, ilike, lt, or, sql } from 'drizzle-orm'
|
|
7
8
|
import type { WebhookDeliveriesPage, WebhookDeliveriesQuery } from './types'
|
|
8
9
|
|
|
9
|
-
function getExclusiveDateUpperBound(value?: string): string | null {
|
|
10
|
-
if (!value) return null
|
|
11
|
-
|
|
12
|
-
const date = new Date(`${value}T00:00:00.000Z`)
|
|
13
|
-
if (Number.isNaN(date.getTime())) return null
|
|
14
|
-
|
|
15
|
-
date.setUTCDate(date.getUTCDate() + 1)
|
|
16
|
-
return date.toISOString().slice(0, 10)
|
|
17
|
-
}
|
|
18
|
-
|
|
19
10
|
const SORTABLE_COLUMNS = {
|
|
20
11
|
createdAt: webhookDeliveries.createdAt,
|
|
21
12
|
event: webhookDeliveries.event,
|
|
@@ -3,19 +3,10 @@
|
|
|
3
3
|
import { requireRole, UserRole } from '@admin/auth/middleware'
|
|
4
4
|
import db from '@admin/db'
|
|
5
5
|
import { webhookDeliveries, webhookSubscriptions, webhooks } from '@admin/db/schema'
|
|
6
|
+
import { getExclusiveDateUpperBound } from '@admin/utils/date/date'
|
|
6
7
|
import { and, asc, count, desc, eq, gte, ilike, isNull, lt, or, sql } from 'drizzle-orm'
|
|
7
8
|
import type { WebhooksPage, WebhooksQuery } from './types'
|
|
8
9
|
|
|
9
|
-
function getExclusiveDateUpperBound(value?: string): string | null {
|
|
10
|
-
if (!value) return null
|
|
11
|
-
|
|
12
|
-
const date = new Date(`${value}T00:00:00.000Z`)
|
|
13
|
-
if (Number.isNaN(date.getTime())) return null
|
|
14
|
-
|
|
15
|
-
date.setUTCDate(date.getUTCDate() + 1)
|
|
16
|
-
return date.toISOString().slice(0, 10)
|
|
17
|
-
}
|
|
18
|
-
|
|
19
10
|
// Deliberately uncached: filters and sorting depend on delivery rows written
|
|
20
11
|
// inside after(), where cache invalidation is unavailable, so cached reads
|
|
21
12
|
// could never be refreshed.
|
|
@@ -224,7 +224,10 @@ export const auditLog = pgTable(
|
|
|
224
224
|
sourceType: varchar('source_type', { length: 50 }).notNull().default('server_action'),
|
|
225
225
|
ipAddress: varchar('ip_address', { length: 100 }),
|
|
226
226
|
userAgent: varchar('user_agent', { length: 500 }),
|
|
227
|
-
changedFields: text('changed_fields')
|
|
227
|
+
changedFields: text('changed_fields')
|
|
228
|
+
.array()
|
|
229
|
+
.notNull()
|
|
230
|
+
.default(sql`ARRAY[]::text[]`),
|
|
228
231
|
metadata: jsonb('metadata'),
|
|
229
232
|
createdAt: timestamp('created_at', { precision: 3, mode: 'string' })
|
|
230
233
|
.default(sql`CURRENT_TIMESTAMP`)
|
|
@@ -11,7 +11,7 @@ export default function AdminLayout({ children }: { children: React.ReactNode })
|
|
|
11
11
|
<AdminProviders>
|
|
12
12
|
<div
|
|
13
13
|
className={cn(
|
|
14
|
-
'admin-root size-screen
|
|
14
|
+
'admin-root size-screen mt-px antialiased',
|
|
15
15
|
GeistSans.variable,
|
|
16
16
|
GeistMono.variable
|
|
17
17
|
)}
|
|
@@ -8,7 +8,7 @@ export async function AuthGateRsc({ children }: { children: React.ReactNode }) {
|
|
|
8
8
|
return (
|
|
9
9
|
<SidebarProvider className="min-h-svh">
|
|
10
10
|
<AdminSidebar />
|
|
11
|
-
<div className="relative flex min-w-0 flex-1 flex-col [--admin-shell-content-left:0px] md:[--admin-shell-content-left:var(--sidebar-width)] md:peer-data-[state=collapsed]:[--admin-shell-content-left:var(--sidebar-width-icon)]
|
|
11
|
+
<div className="relative flex min-w-0 flex-1 flex-col pb-14 [--admin-shell-content-left:0px] md:[--admin-shell-content-left:var(--sidebar-width)] md:peer-data-[state=collapsed]:[--admin-shell-content-left:var(--sidebar-width-icon)]">
|
|
12
12
|
{children}
|
|
13
13
|
</div>
|
|
14
14
|
</SidebarProvider>
|
|
@@ -34,7 +34,7 @@ export default function DashboardPage() {
|
|
|
34
34
|
<React.Fragment>
|
|
35
35
|
<PageHeader title="Dashboard" hasBackButton={false} />
|
|
36
36
|
|
|
37
|
-
<div className="
|
|
37
|
+
<div className="w-full space-y-6 p-6">
|
|
38
38
|
<Card>
|
|
39
39
|
<CardHeader>
|
|
40
40
|
<div className="flex items-center gap-2">
|
|
@@ -44,13 +44,13 @@ export default function DashboardPage() {
|
|
|
44
44
|
</CardHeader>
|
|
45
45
|
<CardContent className="p-10!">
|
|
46
46
|
<div className="grid grid-cols-2 gap-10">
|
|
47
|
-
<div className="flex flex-col
|
|
47
|
+
<div className="flex w-full flex-col gap-1">
|
|
48
48
|
<p className="text-base font-medium">Hey, let's get started</p>
|
|
49
49
|
<p className="text-muted-foreground">
|
|
50
50
|
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos.
|
|
51
51
|
</p>
|
|
52
52
|
</div>
|
|
53
|
-
<div className="flex flex-col
|
|
53
|
+
<div className="flex w-full flex-col">
|
|
54
54
|
<Accordion type="single" collapsible defaultValue="item-1">
|
|
55
55
|
<AccordionItem value="item-1">
|
|
56
56
|
<AccordionTrigger>
|
|
@@ -59,11 +59,11 @@ export default function DashboardPage() {
|
|
|
59
59
|
<span>Setup ENV Variables</span>
|
|
60
60
|
</div>
|
|
61
61
|
</AccordionTrigger>
|
|
62
|
-
<AccordionContent className="pl-7
|
|
63
|
-
<div className="flex flex-col
|
|
62
|
+
<AccordionContent className="h-auto pl-7">
|
|
63
|
+
<div className="flex w-full flex-col gap-1">
|
|
64
64
|
{envVariables.map((env) => (
|
|
65
65
|
<div
|
|
66
|
-
className="flex flex-col
|
|
66
|
+
className="flex w-full flex-col rounded-sm border border-border bg-card py-2 pr-2 pl-4 shadow-card"
|
|
67
67
|
key={env.name}
|
|
68
68
|
>
|
|
69
69
|
<div className="flex items-center justify-between">
|
|
@@ -59,7 +59,7 @@ export function ForgotPasswordForm({ className, ...props }: React.ComponentProps
|
|
|
59
59
|
</div>
|
|
60
60
|
<div className="p-6 md:p-20">
|
|
61
61
|
{success ? (
|
|
62
|
-
<FieldGroup className="pb-12
|
|
62
|
+
<FieldGroup className="gap-10 pb-12">
|
|
63
63
|
<div className="flex flex-col items-start">
|
|
64
64
|
<h1 className="text-xl font-medium">Check your email</h1>
|
|
65
65
|
<p className="text-balance text-muted-foreground">
|
|
@@ -73,7 +73,7 @@ export function ForgotPasswordForm({ className, ...props }: React.ComponentProps
|
|
|
73
73
|
</FieldGroup>
|
|
74
74
|
) : (
|
|
75
75
|
<form onSubmit={handleSubmit}>
|
|
76
|
-
<FieldGroup className="pb-12
|
|
76
|
+
<FieldGroup className="gap-10 pb-12">
|
|
77
77
|
<div className="flex flex-col items-start">
|
|
78
78
|
<h1 className="text-xl font-medium">Forgot password</h1>
|
|
79
79
|
<p className="text-balance text-muted-foreground">
|
|
@@ -82,7 +82,7 @@ export function ForgotPasswordForm({ className, ...props }: React.ComponentProps
|
|
|
82
82
|
</p>
|
|
83
83
|
</div>
|
|
84
84
|
{error ? (
|
|
85
|
-
<div className="bg-destructive/10
|
|
85
|
+
<div className="rounded-md bg-destructive/10 p-3 text-sm text-destructive">
|
|
86
86
|
{error}
|
|
87
87
|
</div>
|
|
88
88
|
) : null}
|
|
@@ -108,7 +108,7 @@ export function ForgotPasswordForm({ className, ...props }: React.ComponentProps
|
|
|
108
108
|
</Field>
|
|
109
109
|
<Link
|
|
110
110
|
href="/admin/login"
|
|
111
|
-
className="text-
|
|
111
|
+
className="text-center text-sm underline-offset-4 hover:underline"
|
|
112
112
|
>
|
|
113
113
|
Back to login
|
|
114
114
|
</Link>
|
|
@@ -64,18 +64,18 @@ export function LoginForm({ className, ...props }: React.ComponentProps<'div'>)
|
|
|
64
64
|
/>
|
|
65
65
|
</div>
|
|
66
66
|
<form onSubmit={handleSubmit} className="p-6 md:p-20">
|
|
67
|
-
<FieldGroup className="pb-12
|
|
67
|
+
<FieldGroup className="gap-10 pb-12">
|
|
68
68
|
<div className="flex flex-col items-start">
|
|
69
69
|
<h1 className="text-xl font-medium">Welcome back</h1>
|
|
70
70
|
<p className="text-balance text-muted-foreground">Login to your account</p>
|
|
71
71
|
</div>
|
|
72
72
|
{resetSuccess ? (
|
|
73
|
-
<div className="bg-emerald-500/10 text-emerald-700 dark:text-emerald-400
|
|
73
|
+
<div className="rounded-md bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400">
|
|
74
74
|
Password reset successfully. Please log in with your new password.
|
|
75
75
|
</div>
|
|
76
76
|
) : null}
|
|
77
77
|
{error ? (
|
|
78
|
-
<div className="bg-destructive/10
|
|
78
|
+
<div className="rounded-md bg-destructive/10 p-3 text-sm text-destructive">
|
|
79
79
|
{error}
|
|
80
80
|
</div>
|
|
81
81
|
) : null}
|
|
@@ -205,7 +205,7 @@ export function MediaPageContent() {
|
|
|
205
205
|
}
|
|
206
206
|
/>
|
|
207
207
|
|
|
208
|
-
<main className="space-y-3 px-4 pb-4
|
|
208
|
+
<main className="flex-1 space-y-3 px-4 pb-4">
|
|
209
209
|
<div className="flex w-full flex-col gap-4 pt-px">
|
|
210
210
|
{activeTab === 'url' ? (
|
|
211
211
|
<MediaUrlImporter
|
|
@@ -219,7 +219,7 @@ export function MediaPageContent() {
|
|
|
219
219
|
progress={progress}
|
|
220
220
|
isUploading={isUploading}
|
|
221
221
|
multiple
|
|
222
|
-
className="h-37 shrink-0
|
|
222
|
+
className="h-37 w-full shrink-0"
|
|
223
223
|
/>
|
|
224
224
|
)}
|
|
225
225
|
</div>
|
|
@@ -237,7 +237,7 @@ export function MediaPageContent() {
|
|
|
237
237
|
selectedIds={selected}
|
|
238
238
|
isSelectMode={isSelectMode}
|
|
239
239
|
onItemClick={handleItemClick}
|
|
240
|
-
className="
|
|
240
|
+
className="px-px pt-px pb-12 lg:grid-cols-12"
|
|
241
241
|
/>
|
|
242
242
|
{total > DEFAULT_MEDIA_PAGE_SIZE ? (
|
|
243
243
|
<MediaGridPagination
|
|
@@ -9,11 +9,11 @@ export function MinimalAccountShell({
|
|
|
9
9
|
children: React.ReactNode
|
|
10
10
|
}) {
|
|
11
11
|
return (
|
|
12
|
-
<div className="min-h-screen flex
|
|
12
|
+
<div className="flex min-h-screen flex-col">
|
|
13
13
|
<header className="sticky top-0 z-50 flex h-14 items-center justify-between border-b bg-background px-6">
|
|
14
14
|
<Link
|
|
15
15
|
href="/admin/profile"
|
|
16
|
-
className="text-sm font-medium hover:text-foreground/80
|
|
16
|
+
className="text-sm font-medium transition-colors hover:text-foreground/80"
|
|
17
17
|
>
|
|
18
18
|
{name}
|
|
19
19
|
</Link>
|
|
@@ -17,7 +17,7 @@ export default async function ProfilePage() {
|
|
|
17
17
|
return (
|
|
18
18
|
<>
|
|
19
19
|
{showPageHeader && <PageHeader title="Profile" />}
|
|
20
|
-
<main className="container mx-auto max-w-5xl
|
|
20
|
+
<main className="container mx-auto w-full max-w-5xl p-4">
|
|
21
21
|
<ProfileForm
|
|
22
22
|
user={{
|
|
23
23
|
name: session.user.name,
|
|
@@ -41,7 +41,7 @@ export function ResetPasswordForm({ className, ...props }: React.ComponentProps<
|
|
|
41
41
|
/>
|
|
42
42
|
</div>
|
|
43
43
|
<div className="p-6 md:p-20">
|
|
44
|
-
<FieldGroup className="pb-12
|
|
44
|
+
<FieldGroup className="gap-10 pb-12">
|
|
45
45
|
<div className="flex flex-col items-start">
|
|
46
46
|
<h1 className="text-xl font-medium">Invalid reset link</h1>
|
|
47
47
|
<p className="text-balance text-muted-foreground">
|
|
@@ -108,13 +108,13 @@ export function ResetPasswordForm({ className, ...props }: React.ComponentProps<
|
|
|
108
108
|
/>
|
|
109
109
|
</div>
|
|
110
110
|
<form onSubmit={handleSubmit} className="p-6 md:p-20">
|
|
111
|
-
<FieldGroup className="pb-12
|
|
111
|
+
<FieldGroup className="gap-10 pb-12">
|
|
112
112
|
<div className="flex flex-col items-start">
|
|
113
113
|
<h1 className="text-xl font-medium">Reset password</h1>
|
|
114
114
|
<p className="text-balance text-muted-foreground">Enter your new password below</p>
|
|
115
115
|
</div>
|
|
116
116
|
{error ? (
|
|
117
|
-
<div className="bg-destructive/10
|
|
117
|
+
<div className="rounded-md bg-destructive/10 p-3 text-sm text-destructive">
|
|
118
118
|
{error}
|
|
119
119
|
</div>
|
|
120
120
|
) : null}
|
package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx
CHANGED
|
@@ -53,7 +53,7 @@ function SortableAuditLogHeader({
|
|
|
53
53
|
<Button
|
|
54
54
|
variant="ghost"
|
|
55
55
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
56
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
56
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
57
57
|
aria-label={`Sort by ${label}, ${sortLabel}`}
|
|
58
58
|
aria-sort={
|
|
59
59
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -46,7 +46,7 @@ export function AuditLogDetailDrawer({ auditLog, open, onOpenChange }: AuditLogD
|
|
|
46
46
|
</DrawerHeader>
|
|
47
47
|
<ScrollArea className="min-h-0 flex-1 px-6">
|
|
48
48
|
{auditLog ? (
|
|
49
|
-
<div className="flex flex-col
|
|
49
|
+
<div className="flex w-full flex-col gap-4">
|
|
50
50
|
<Card>
|
|
51
51
|
<CardHeader>
|
|
52
52
|
<CardTitle>Event Details</CardTitle>
|
package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx
CHANGED
|
@@ -7,9 +7,9 @@ interface AuditLogDetailRowProps {
|
|
|
7
7
|
|
|
8
8
|
export function AuditLogDetailRow({ label, value }: AuditLogDetailRowProps) {
|
|
9
9
|
return (
|
|
10
|
-
<div className="grid grid-cols-[120px_1fr] gap-3 border-b border-border py-2
|
|
10
|
+
<div className="grid grid-cols-[120px_1fr] gap-3 border-b border-border px-4 py-2 last:border-b-0">
|
|
11
11
|
<dt className="text-sm font-medium text-muted-foreground">{label}</dt>
|
|
12
|
-
<dd className="min-w-0 text-sm text-foreground
|
|
12
|
+
<dd className="min-w-0 text-sm break-words text-foreground">{value || 'Unknown'}</dd>
|
|
13
13
|
</div>
|
|
14
14
|
)
|
|
15
15
|
}
|
package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-content.tsx
CHANGED
|
@@ -114,7 +114,7 @@ export function AuditLogPageContent() {
|
|
|
114
114
|
isPending={isSearchFetching}
|
|
115
115
|
onSearch={handleSearch}
|
|
116
116
|
/>
|
|
117
|
-
<main className="space-y-4 px-4 pb-4
|
|
117
|
+
<main className="flex-1 space-y-4 px-4 pb-4">
|
|
118
118
|
<AuditLogTable
|
|
119
119
|
columns={columns}
|
|
120
120
|
search={search}
|
package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-table.tsx
CHANGED
|
@@ -160,7 +160,7 @@ export function AuditLogTable<TValue>({
|
|
|
160
160
|
.join(' ')
|
|
161
161
|
|
|
162
162
|
return (
|
|
163
|
-
<div className={cn('flex flex-col gap-6 pt-px pb-2
|
|
163
|
+
<div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
|
|
164
164
|
<DataGrid
|
|
165
165
|
containerClassName="min-h-0 flex-1"
|
|
166
166
|
containerRef={tableContainerRef}
|
|
@@ -197,7 +197,7 @@ export function AuditLogTable<TValue>({
|
|
|
197
197
|
<button
|
|
198
198
|
type="button"
|
|
199
199
|
aria-label={`Resize ${resizeLabel} column`}
|
|
200
|
-
className="group/resize-handle absolute
|
|
200
|
+
className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
|
|
201
201
|
data-resize-handle
|
|
202
202
|
data-column-hovered={
|
|
203
203
|
hoveredColumnId === header.column.id ? 'true' : 'false'
|
|
@@ -36,7 +36,7 @@ export function FormsSettingsPageContent() {
|
|
|
36
36
|
return (
|
|
37
37
|
<React.Fragment>
|
|
38
38
|
<PageHeader title="Form Settings" />
|
|
39
|
-
<main className="space-y-4 px-4
|
|
39
|
+
<main className="flex-1 space-y-4 px-4 pt-4 pb-4">
|
|
40
40
|
<FormsSettingsTable
|
|
41
41
|
columns={columns}
|
|
42
42
|
rows={rows}
|
package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-table.tsx
CHANGED
|
@@ -32,7 +32,7 @@ export function FormsSettingsTable({
|
|
|
32
32
|
})
|
|
33
33
|
|
|
34
34
|
return (
|
|
35
|
-
<div className={cn('flex flex-col gap-6 pt-px pb-2
|
|
35
|
+
<div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
|
|
36
36
|
<DataGrid
|
|
37
37
|
containerClassName="min-h-0 flex-1"
|
|
38
38
|
gridTemplateColumns="minmax(200px, 1fr) minmax(240px, 2fr)"
|
package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx
CHANGED
|
@@ -242,7 +242,7 @@ export function WebhookEndpointDialog({ webhook, open, onOpenChange }: WebhookEn
|
|
|
242
242
|
/>
|
|
243
243
|
{isEdit && (
|
|
244
244
|
<div className="space-y-2 rounded-md border border-border p-3">
|
|
245
|
-
<p className="text-sm font-medium
|
|
245
|
+
<p className="text-sm leading-none font-medium">Signing secret</p>
|
|
246
246
|
<div className="flex items-center gap-2">
|
|
247
247
|
<span className="min-w-0 flex-1 truncate font-mono text-xs">
|
|
248
248
|
{secret ?? 'whsec_••••••••••••••••'}
|
|
@@ -283,7 +283,7 @@ export function WebhookEndpointDialog({ webhook, open, onOpenChange }: WebhookEn
|
|
|
283
283
|
<React.Fragment>
|
|
284
284
|
{formSources.length > 0 && (
|
|
285
285
|
<fieldset className="space-y-2 rounded-md border border-border p-3">
|
|
286
|
-
<legend className="px-1 text-xs font-medium
|
|
286
|
+
<legend className="px-1 text-xs font-medium tracking-wide text-muted-foreground uppercase">
|
|
287
287
|
Events · Forms
|
|
288
288
|
</legend>
|
|
289
289
|
{formSources.flatMap((source) =>
|
|
@@ -308,7 +308,7 @@ export function WebhookEndpointDialog({ webhook, open, onOpenChange }: WebhookEn
|
|
|
308
308
|
)}
|
|
309
309
|
{contentSources.length > 0 && (
|
|
310
310
|
<fieldset className="space-y-2 rounded-md border border-border p-3">
|
|
311
|
-
<legend className="px-1 text-xs font-medium
|
|
311
|
+
<legend className="px-1 text-xs font-medium tracking-wide text-muted-foreground uppercase">
|
|
312
312
|
Events · Entities
|
|
313
313
|
</legend>
|
|
314
314
|
{contentSources.flatMap((source) =>
|
package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx
CHANGED
|
@@ -35,7 +35,7 @@ export function createWebhooksColumns({
|
|
|
35
35
|
<Button
|
|
36
36
|
variant="ghost"
|
|
37
37
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
38
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
38
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
39
39
|
aria-label={`Sort by Name, ${sortLabel}`}
|
|
40
40
|
aria-sort={
|
|
41
41
|
sortDirection === 'asc'
|
|
@@ -69,7 +69,7 @@ export function createWebhooksColumns({
|
|
|
69
69
|
<Button
|
|
70
70
|
variant="ghost"
|
|
71
71
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
72
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
72
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
73
73
|
aria-label={`Sort by URL, ${sortLabel}`}
|
|
74
74
|
aria-sort={
|
|
75
75
|
sortDirection === 'asc'
|
|
@@ -104,7 +104,7 @@ export function createWebhooksColumns({
|
|
|
104
104
|
<Button
|
|
105
105
|
variant="ghost"
|
|
106
106
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
107
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
107
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
108
108
|
aria-label={`Sort by Enabled, ${sortLabel}`}
|
|
109
109
|
aria-sort={
|
|
110
110
|
sortDirection === 'asc'
|
|
@@ -137,7 +137,7 @@ export function createWebhooksColumns({
|
|
|
137
137
|
<Button
|
|
138
138
|
variant="ghost"
|
|
139
139
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
140
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
140
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
141
141
|
aria-label={`Sort by Events, ${sortLabel}`}
|
|
142
142
|
aria-sort={
|
|
143
143
|
sortDirection === 'asc'
|
|
@@ -170,7 +170,7 @@ export function createWebhooksColumns({
|
|
|
170
170
|
<Button
|
|
171
171
|
variant="ghost"
|
|
172
172
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
173
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
173
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
174
174
|
aria-label={`Sort by Last delivery, ${sortLabel}`}
|
|
175
175
|
aria-sort={
|
|
176
176
|
sortDirection === 'asc'
|
|
@@ -217,7 +217,7 @@ export function createWebhooksColumns({
|
|
|
217
217
|
<Button
|
|
218
218
|
variant="ghost"
|
|
219
219
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
220
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
220
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
221
221
|
aria-label={`Sort by Created, ${sortLabel}`}
|
|
222
222
|
aria-sort={
|
|
223
223
|
sortDirection === 'asc'
|
package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx
CHANGED
|
@@ -24,7 +24,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
24
24
|
<Button
|
|
25
25
|
variant="ghost"
|
|
26
26
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
27
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
27
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
28
28
|
aria-label={`Sort by Status, ${sortLabel}`}
|
|
29
29
|
aria-sort={
|
|
30
30
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -60,7 +60,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
60
60
|
<Button
|
|
61
61
|
variant="ghost"
|
|
62
62
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
63
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
63
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
64
64
|
aria-label={`Sort by Event, ${sortLabel}`}
|
|
65
65
|
aria-sort={
|
|
66
66
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -89,7 +89,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
89
89
|
<Button
|
|
90
90
|
variant="ghost"
|
|
91
91
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
92
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
92
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
93
93
|
aria-label={`Sort by Endpoint, ${sortLabel}`}
|
|
94
94
|
aria-sort={
|
|
95
95
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -118,7 +118,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
118
118
|
<Button
|
|
119
119
|
variant="ghost"
|
|
120
120
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
121
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
121
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
122
122
|
aria-label={`Sort by Attempt, ${sortLabel}`}
|
|
123
123
|
aria-sort={
|
|
124
124
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -147,7 +147,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
147
147
|
<Button
|
|
148
148
|
variant="ghost"
|
|
149
149
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
150
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
150
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
151
151
|
aria-label={`Sort by Duration, ${sortLabel}`}
|
|
152
152
|
aria-sort={
|
|
153
153
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -159,7 +159,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
159
159
|
)
|
|
160
160
|
},
|
|
161
161
|
cell: ({ row }) => (
|
|
162
|
-
<span className="
|
|
162
|
+
<span className="text-muted-foreground tabular-nums">{row.original.durationMs} ms</span>
|
|
163
163
|
)
|
|
164
164
|
},
|
|
165
165
|
{
|
|
@@ -178,7 +178,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
|
|
|
178
178
|
<Button
|
|
179
179
|
variant="ghost"
|
|
180
180
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
181
|
-
className="w-full min-w-0 justify-start overflow-hidden
|
|
181
|
+
className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
|
|
182
182
|
aria-label={`Sort by When, ${sortLabel}`}
|
|
183
183
|
aria-sort={
|
|
184
184
|
sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
|
|
@@ -102,7 +102,7 @@ export function WebhooksLogsPageContent() {
|
|
|
102
102
|
isPending={isSearchFetching}
|
|
103
103
|
onSearch={handleSearch}
|
|
104
104
|
/>
|
|
105
|
-
<main className="space-y-4 px-4 pb-4
|
|
105
|
+
<main className="flex-1 space-y-4 px-4 pb-4">
|
|
106
106
|
<WebhooksLogsTable
|
|
107
107
|
columns={logsColumns}
|
|
108
108
|
search={search}
|
package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-table.tsx
CHANGED
|
@@ -127,7 +127,7 @@ export function WebhooksLogsTable<TValue>({
|
|
|
127
127
|
.join(' ')
|
|
128
128
|
|
|
129
129
|
return (
|
|
130
|
-
<div className={cn('flex flex-col gap-6 pt-px pb-2
|
|
130
|
+
<div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
|
|
131
131
|
<DataGrid
|
|
132
132
|
containerClassName="min-h-0 flex-1"
|
|
133
133
|
containerRef={tableContainerRef}
|
|
@@ -164,7 +164,7 @@ export function WebhooksLogsTable<TValue>({
|
|
|
164
164
|
<button
|
|
165
165
|
type="button"
|
|
166
166
|
aria-label={`Resize ${resizeLabel} column`}
|
|
167
|
-
className="group/resize-handle absolute
|
|
167
|
+
className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
|
|
168
168
|
data-resize-handle
|
|
169
169
|
data-column-hovered={
|
|
170
170
|
hoveredColumnId === header.column.id ? 'true' : 'false'
|
package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-content.tsx
CHANGED
|
@@ -132,7 +132,7 @@ export function WebhooksPageContent() {
|
|
|
132
132
|
isPending={isSearchFetching}
|
|
133
133
|
onSearch={handleSearch}
|
|
134
134
|
/>
|
|
135
|
-
<main className="space-y-4 px-4 pb-4
|
|
135
|
+
<main className="flex-1 space-y-4 px-4 pb-4">
|
|
136
136
|
<WebhooksTable
|
|
137
137
|
columns={columns}
|
|
138
138
|
search={search}
|
|
@@ -129,7 +129,7 @@ export function WebhooksTable<TValue>({
|
|
|
129
129
|
.join(' ')
|
|
130
130
|
|
|
131
131
|
return (
|
|
132
|
-
<div className={cn('flex flex-col gap-6 pt-px pb-2
|
|
132
|
+
<div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
|
|
133
133
|
<DataGrid
|
|
134
134
|
containerClassName="min-h-0 flex-1"
|
|
135
135
|
containerRef={tableContainerRef}
|
|
@@ -166,7 +166,7 @@ export function WebhooksTable<TValue>({
|
|
|
166
166
|
<button
|
|
167
167
|
type="button"
|
|
168
168
|
aria-label={`Resize ${resizeLabel} column`}
|
|
169
|
-
className="group/resize-handle absolute
|
|
169
|
+
className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
|
|
170
170
|
data-resize-handle
|
|
171
171
|
data-column-hovered={
|
|
172
172
|
hoveredColumnId === header.column.id ? 'true' : 'false'
|