@dyrected/admin 2.0.0 → 2.4.0
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/CHANGELOG.md +46 -0
- package/package.json +4 -4
- package/scripts/prefix-tailwind-precision.py +98 -0
- package/scripts/prefix-tailwind.py +67 -0
- package/src/components/auth/auth-gate.tsx +4 -4
- package/src/components/error-boundary.tsx +4 -4
- package/src/components/forms/fields/block-builder.tsx +24 -24
- package/src/components/forms/fields/date-picker.tsx +7 -7
- package/src/components/forms/fields/json-editor.tsx +5 -5
- package/src/components/forms/fields/media-picker.tsx +39 -39
- package/src/components/forms/fields/multi-select.tsx +12 -12
- package/src/components/forms/fields/radio-field.tsx +8 -8
- package/src/components/forms/fields/relationship-picker.tsx +13 -13
- package/src/components/forms/fields/rich-text-editor.tsx +22 -22
- package/src/components/forms/fields/select-field.tsx +3 -3
- package/src/components/forms/form-engine.tsx +3 -3
- package/src/components/forms/form-field-renderer.tsx +37 -37
- package/src/components/layout/admin-shell.tsx +60 -60
- package/src/components/live-preview/LivePreviewPane.tsx +14 -14
- package/src/components/media/focal-point-picker.tsx +9 -9
- package/src/components/media/media-card.tsx +10 -10
- package/src/components/media/media-grid.tsx +3 -3
- package/src/components/media/media-library-dialog.tsx +105 -105
- package/src/components/ui/badge.tsx +5 -5
- package/src/components/ui/button.tsx +11 -11
- package/src/components/ui/calendar.tsx +36 -36
- package/src/components/ui/card.tsx +6 -6
- package/src/components/ui/checkbox.tsx +3 -3
- package/src/components/ui/command.tsx +12 -12
- package/src/components/ui/data-table.tsx +18 -18
- package/src/components/ui/dialog.tsx +9 -9
- package/src/components/ui/dropdown-menu.tsx +16 -16
- package/src/components/ui/form.tsx +4 -4
- package/src/components/ui/input.tsx +3 -3
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/page-header.tsx +6 -6
- package/src/components/ui/pagination.tsx +6 -6
- package/src/components/ui/popover.tsx +1 -1
- package/src/components/ui/progress.tsx +2 -2
- package/src/components/ui/radio-group.tsx +4 -4
- package/src/components/ui/render-cell.tsx +16 -16
- package/src/components/ui/scroll-area.tsx +6 -6
- package/src/components/ui/select.tsx +14 -14
- package/src/components/ui/separator.tsx +2 -2
- package/src/components/ui/sheet.tsx +13 -13
- package/src/components/ui/sidebar.tsx +60 -60
- package/src/components/ui/skeleton.tsx +1 -1
- package/src/components/ui/sonner.tsx +1 -1
- package/src/components/ui/switch.tsx +2 -2
- package/src/components/ui/table.tsx +7 -7
- package/src/components/ui/tabs.tsx +3 -3
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle.tsx +6 -6
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/index.css +27 -27
- package/src/index.tsx +4 -4
- package/src/lib/utils.ts +7 -3
- package/src/pages/auth/first-user-page.tsx +18 -18
- package/src/pages/auth/login-page.tsx +14 -14
- package/src/pages/collections/edit-page.tsx +37 -37
- package/src/pages/collections/list-page.tsx +23 -23
- package/src/pages/dashboard/dashboard.tsx +49 -49
- package/src/pages/globals/editor-page.tsx +13 -13
- package/src/pages/media/media-page.tsx +106 -106
- package/src/pages/setup/setup-prompt.tsx +73 -44
- package/tailwind.config.ts +1 -0
- package/vite.config.ts +0 -1
|
@@ -147,7 +147,7 @@ const SidebarProvider = React.forwardRef<
|
|
|
147
147
|
} as React.CSSProperties
|
|
148
148
|
}
|
|
149
149
|
className={cn(
|
|
150
|
-
"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",
|
|
150
|
+
"dy-group/sidebar-wrapper dy-flex dy-min-h-svh dy-w-full has-[[data-variant=inset]]:dy-bg-sidebar",
|
|
151
151
|
className
|
|
152
152
|
)}
|
|
153
153
|
ref={ref}
|
|
@@ -187,7 +187,7 @@ const Sidebar = React.forwardRef<
|
|
|
187
187
|
return (
|
|
188
188
|
<div
|
|
189
189
|
className={cn(
|
|
190
|
-
"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",
|
|
190
|
+
"dy-flex dy-h-full dy-w-[--sidebar-width] dy-flex-col dy-bg-sidebar dy-text-sidebar-foreground",
|
|
191
191
|
className
|
|
192
192
|
)}
|
|
193
193
|
ref={ref}
|
|
@@ -204,7 +204,7 @@ const Sidebar = React.forwardRef<
|
|
|
204
204
|
<SheetContent
|
|
205
205
|
data-sidebar="sidebar"
|
|
206
206
|
data-mobile="true"
|
|
207
|
-
className="w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden"
|
|
207
|
+
className="dy-w-[--sidebar-width] dy-bg-sidebar dy-p-0 dy-text-sidebar-foreground [&>button]:dy-hidden"
|
|
208
208
|
style={
|
|
209
209
|
{
|
|
210
210
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE,
|
|
@@ -212,11 +212,11 @@ const Sidebar = React.forwardRef<
|
|
|
212
212
|
}
|
|
213
213
|
side={side}
|
|
214
214
|
>
|
|
215
|
-
<SheetHeader className="sr-only">
|
|
215
|
+
<SheetHeader className="dy-sr-only">
|
|
216
216
|
<SheetTitle>Sidebar</SheetTitle>
|
|
217
217
|
<SheetDescription>Displays the mobile sidebar.</SheetDescription>
|
|
218
218
|
</SheetHeader>
|
|
219
|
-
<div className="flex h-full w-full flex-col">{children}</div>
|
|
219
|
+
<div className="dy-flex dy-h-full dy-w-full dy-flex-col">{children}</div>
|
|
220
220
|
</SheetContent>
|
|
221
221
|
</Sheet>
|
|
222
222
|
)
|
|
@@ -225,7 +225,7 @@ const Sidebar = React.forwardRef<
|
|
|
225
225
|
return (
|
|
226
226
|
<div
|
|
227
227
|
ref={ref}
|
|
228
|
-
className="group peer hidden text-sidebar-foreground md:block"
|
|
228
|
+
className="dy-group dy-peer dy-hidden dy-text-sidebar-foreground md:dy-block"
|
|
229
229
|
data-state={state}
|
|
230
230
|
data-collapsible={state === "collapsed" ? collapsible : ""}
|
|
231
231
|
data-variant={variant}
|
|
@@ -234,9 +234,9 @@ const Sidebar = React.forwardRef<
|
|
|
234
234
|
{/* This is what handles the sidebar gap on desktop */}
|
|
235
235
|
<div
|
|
236
236
|
className={cn(
|
|
237
|
-
"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear",
|
|
238
|
-
"group-data-[collapsible=offcanvas]:w-0",
|
|
239
|
-
"group-data-[side=right]:rotate-180",
|
|
237
|
+
"dy-relative dy-w-[--sidebar-width] dy-bg-transparent dy-transition-[width] dy-duration-200 dy-ease-linear",
|
|
238
|
+
"dy-group-data-[collapsible=offcanvas]:dy-w-0",
|
|
239
|
+
"dy-group-data-[side=right]:dy-rotate-180",
|
|
240
240
|
variant === "floating" || variant === "inset"
|
|
241
241
|
? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]"
|
|
242
242
|
: "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
|
|
@@ -244,7 +244,7 @@ const Sidebar = React.forwardRef<
|
|
|
244
244
|
/>
|
|
245
245
|
<div
|
|
246
246
|
className={cn(
|
|
247
|
-
"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex",
|
|
247
|
+
"dy-fixed dy-inset-y-0 dy-z-10 dy-hidden dy-h-svh dy-w-[--sidebar-width] dy-transition-[left,right,width] dy-duration-200 dy-ease-linear md:dy-flex",
|
|
248
248
|
side === "left"
|
|
249
249
|
? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
|
|
250
250
|
: "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
|
|
@@ -258,7 +258,7 @@ const Sidebar = React.forwardRef<
|
|
|
258
258
|
>
|
|
259
259
|
<div
|
|
260
260
|
data-sidebar="sidebar"
|
|
261
|
-
className="flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow"
|
|
261
|
+
className="dy-flex dy-h-full dy-w-full dy-flex-col dy-bg-sidebar dy-group-data-[variant=floating]:dy-rounded-lg dy-group-data-[variant=floating]:dy-border dy-group-data-[variant=floating]:dy-border-sidebar-border dy-group-data-[variant=floating]:dy-shadow"
|
|
262
262
|
>
|
|
263
263
|
{children}
|
|
264
264
|
</div>
|
|
@@ -281,7 +281,7 @@ const SidebarTrigger = React.forwardRef<
|
|
|
281
281
|
data-sidebar="trigger"
|
|
282
282
|
variant="ghost"
|
|
283
283
|
size="icon"
|
|
284
|
-
className={cn("h-7 w-7", className)}
|
|
284
|
+
className={cn("dy-h-7 dy-w-7", className)}
|
|
285
285
|
onClick={(event) => {
|
|
286
286
|
onClick?.(event)
|
|
287
287
|
toggleSidebar()
|
|
@@ -289,7 +289,7 @@ const SidebarTrigger = React.forwardRef<
|
|
|
289
289
|
{...props}
|
|
290
290
|
>
|
|
291
291
|
<PanelLeft />
|
|
292
|
-
<span className="sr-only">Toggle Sidebar</span>
|
|
292
|
+
<span className="dy-sr-only">Toggle Sidebar</span>
|
|
293
293
|
</Button>
|
|
294
294
|
)
|
|
295
295
|
})
|
|
@@ -310,12 +310,12 @@ const SidebarRail = React.forwardRef<
|
|
|
310
310
|
onClick={toggleSidebar}
|
|
311
311
|
title="Toggle Sidebar"
|
|
312
312
|
className={cn(
|
|
313
|
-
"absolute inset-y-0 z-20 hidden w-4
|
|
314
|
-
"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize",
|
|
315
|
-
"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
316
|
-
"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
|
|
317
|
-
"[[data-side=left][data-collapsible=offcanvas]_&]
|
|
318
|
-
"[[data-side=right][data-collapsible=offcanvas]_&]
|
|
313
|
+
"dy-absolute dy-inset-y-0 dy-z-20 dy-hidden dy-w-4 dy--translate-x-1/2 dy-transition-all dy-ease-linear after:dy-absolute after:dy-inset-y-0 after:dy-left-1/2 after:dy-w-[2px] hover:after:dy-bg-sidebar-border dy-group-data-[side=left]:dy--right-4 dy-group-data-[side=right]:dy-left-0 sm:dy-flex",
|
|
314
|
+
"[[data-side=left]_&]:dy-cursor-w-resize [[data-side=right]_&]:dy-cursor-e-resize",
|
|
315
|
+
"[[data-side=left][data-state=collapsed]_&]:dy-cursor-e-resize [[data-side=right][data-state=collapsed]_&]:dy-cursor-w-resize",
|
|
316
|
+
"dy-group-data-[collapsible=offcanvas]:dy-translate-x-0 dy-group-data-[collapsible=offcanvas]:after:dy-left-full dy-group-data-[collapsible=offcanvas]:hover:dy-bg-sidebar",
|
|
317
|
+
"[[data-side=left][data-collapsible=offcanvas]_&]:dy--right-2",
|
|
318
|
+
"[[data-side=right][data-collapsible=offcanvas]_&]:dy--left-2",
|
|
319
319
|
className
|
|
320
320
|
)}
|
|
321
321
|
{...props}
|
|
@@ -332,8 +332,8 @@ const SidebarInset = React.forwardRef<
|
|
|
332
332
|
<main
|
|
333
333
|
ref={ref}
|
|
334
334
|
className={cn(
|
|
335
|
-
"relative flex w-full flex-1 flex-col bg-background",
|
|
336
|
-
"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
|
|
335
|
+
"dy-relative dy-flex dy-w-full dy-flex-1 dy-flex-col dy-bg-background",
|
|
336
|
+
"md:dy-peer-data-[variant=inset]:dy-m-2 md:dy-peer-data-[state=collapsed]:dy-peer-data-[variant=inset]:dy-ml-2 md:dy-peer-data-[variant=inset]:dy-ml-0 md:dy-peer-data-[variant=inset]:dy-rounded-xl md:dy-peer-data-[variant=inset]:dy-shadow",
|
|
337
337
|
className
|
|
338
338
|
)}
|
|
339
339
|
{...props}
|
|
@@ -351,7 +351,7 @@ const SidebarInput = React.forwardRef<
|
|
|
351
351
|
ref={ref}
|
|
352
352
|
data-sidebar="input"
|
|
353
353
|
className={cn(
|
|
354
|
-
"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
|
|
354
|
+
"dy-h-8 dy-w-full dy-bg-background dy-shadow-none focus-visible:dy-ring-2 focus-visible:dy-ring-sidebar-ring",
|
|
355
355
|
className
|
|
356
356
|
)}
|
|
357
357
|
{...props}
|
|
@@ -368,7 +368,7 @@ const SidebarHeader = React.forwardRef<
|
|
|
368
368
|
<div
|
|
369
369
|
ref={ref}
|
|
370
370
|
data-sidebar="header"
|
|
371
|
-
className={cn("flex flex-col gap-2 p-2", className)}
|
|
371
|
+
className={cn("dy-flex dy-flex-col dy-gap-2 dy-p-2", className)}
|
|
372
372
|
{...props}
|
|
373
373
|
/>
|
|
374
374
|
)
|
|
@@ -383,7 +383,7 @@ const SidebarFooter = React.forwardRef<
|
|
|
383
383
|
<div
|
|
384
384
|
ref={ref}
|
|
385
385
|
data-sidebar="footer"
|
|
386
|
-
className={cn("flex flex-col gap-2 p-2", className)}
|
|
386
|
+
className={cn("dy-flex dy-flex-col dy-gap-2 dy-p-2", className)}
|
|
387
387
|
{...props}
|
|
388
388
|
/>
|
|
389
389
|
)
|
|
@@ -398,7 +398,7 @@ const SidebarSeparator = React.forwardRef<
|
|
|
398
398
|
<Separator
|
|
399
399
|
ref={ref}
|
|
400
400
|
data-sidebar="separator"
|
|
401
|
-
className={cn("mx-2 w-auto bg-sidebar-border", className)}
|
|
401
|
+
className={cn("dy-mx-2 dy-w-auto dy-bg-sidebar-border", className)}
|
|
402
402
|
{...props}
|
|
403
403
|
/>
|
|
404
404
|
)
|
|
@@ -414,7 +414,7 @@ const SidebarContent = React.forwardRef<
|
|
|
414
414
|
ref={ref}
|
|
415
415
|
data-sidebar="content"
|
|
416
416
|
className={cn(
|
|
417
|
-
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
417
|
+
"dy-flex dy-min-h-0 dy-flex-1 dy-flex-col dy-gap-2 dy-overflow-auto dy-group-data-[collapsible=icon]:dy-overflow-hidden",
|
|
418
418
|
className
|
|
419
419
|
)}
|
|
420
420
|
{...props}
|
|
@@ -431,7 +431,7 @@ const SidebarGroup = React.forwardRef<
|
|
|
431
431
|
<div
|
|
432
432
|
ref={ref}
|
|
433
433
|
data-sidebar="group"
|
|
434
|
-
className={cn("relative flex w-full min-w-0 flex-col p-2", className)}
|
|
434
|
+
className={cn("dy-relative dy-flex dy-w-full dy-min-w-0 dy-flex-col dy-p-2", className)}
|
|
435
435
|
{...props}
|
|
436
436
|
/>
|
|
437
437
|
)
|
|
@@ -449,8 +449,8 @@ const SidebarGroupLabel = React.forwardRef<
|
|
|
449
449
|
ref={ref}
|
|
450
450
|
data-sidebar="group-label"
|
|
451
451
|
className={cn(
|
|
452
|
-
"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
453
|
-
"group-data-[collapsible=icon]
|
|
452
|
+
"dy-flex dy-h-8 dy-shrink-0 dy-items-center dy-rounded-md dy-px-2 dy-text-xs dy-font-medium dy-text-sidebar-foreground/70 dy-outline-none dy-ring-sidebar-ring dy-transition-[margin,opacity] dy-duration-200 dy-ease-linear focus-visible:dy-ring-2 [&>svg]:dy-size-4 [&>svg]:dy-shrink-0",
|
|
453
|
+
"dy-group-data-[collapsible=icon]:dy--mt-8 dy-group-data-[collapsible=icon]:dy-opacity-0",
|
|
454
454
|
className
|
|
455
455
|
)}
|
|
456
456
|
{...props}
|
|
@@ -470,10 +470,10 @@ const SidebarGroupAction = React.forwardRef<
|
|
|
470
470
|
ref={ref}
|
|
471
471
|
data-sidebar="group-action"
|
|
472
472
|
className={cn(
|
|
473
|
-
"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
473
|
+
"dy-absolute dy-right-3 dy-top-3.5 dy-flex dy-aspect-square dy-w-5 dy-items-center dy-justify-center dy-rounded-md dy-p-0 dy-text-sidebar-foreground dy-outline-none dy-ring-sidebar-ring dy-transition-transform hover:dy-bg-sidebar-accent hover:dy-text-sidebar-accent-foreground focus-visible:dy-ring-2 [&>svg]:dy-size-4 [&>svg]:dy-shrink-0",
|
|
474
474
|
// Increases the hit area of the button on mobile.
|
|
475
|
-
"after:absolute after
|
|
476
|
-
"group-data-[collapsible=icon]:hidden",
|
|
475
|
+
"after:dy-absolute after:dy--inset-2 after:md:dy-hidden",
|
|
476
|
+
"dy-group-data-[collapsible=icon]:dy-hidden",
|
|
477
477
|
className
|
|
478
478
|
)}
|
|
479
479
|
{...props}
|
|
@@ -489,7 +489,7 @@ const SidebarGroupContent = React.forwardRef<
|
|
|
489
489
|
<div
|
|
490
490
|
ref={ref}
|
|
491
491
|
data-sidebar="group-content"
|
|
492
|
-
className={cn("w-full text-sm", className)}
|
|
492
|
+
className={cn("dy-w-full dy-text-sm", className)}
|
|
493
493
|
{...props}
|
|
494
494
|
/>
|
|
495
495
|
))
|
|
@@ -502,7 +502,7 @@ const SidebarMenu = React.forwardRef<
|
|
|
502
502
|
<ul
|
|
503
503
|
ref={ref}
|
|
504
504
|
data-sidebar="menu"
|
|
505
|
-
className={cn("flex w-full min-w-0 flex-col gap-1", className)}
|
|
505
|
+
className={cn("dy-flex dy-w-full dy-min-w-0 dy-flex-col dy-gap-1", className)}
|
|
506
506
|
{...props}
|
|
507
507
|
/>
|
|
508
508
|
))
|
|
@@ -515,18 +515,18 @@ const SidebarMenuItem = React.forwardRef<
|
|
|
515
515
|
<li
|
|
516
516
|
ref={ref}
|
|
517
517
|
data-sidebar="menu-item"
|
|
518
|
-
className={cn("group/menu-item relative", className)}
|
|
518
|
+
className={cn("dy-group/menu-item dy-relative", className)}
|
|
519
519
|
{...props}
|
|
520
520
|
/>
|
|
521
521
|
))
|
|
522
522
|
SidebarMenuItem.displayName = "SidebarMenuItem"
|
|
523
523
|
|
|
524
524
|
const sidebarMenuButtonVariants = cva(
|
|
525
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]
|
|
525
|
+
"dy-peer/menu-button dy-flex dy-w-full dy-items-center dy-gap-2 dy-overflow-hidden dy-rounded-md dy-p-2 dy-text-left dy-text-sm dy-outline-none dy-ring-sidebar-ring dy-transition-[width,height,padding] hover:dy-bg-sidebar-accent hover:dy-text-sidebar-accent-foreground focus-visible:dy-ring-2 active:dy-bg-sidebar-accent active:dy-text-sidebar-accent-foreground disabled:dy-pointer-events-none disabled:dy-opacity-50 dy-group-has-[[data-sidebar=menu-action]]/menu-item:dy-pr-8 aria-disabled:dy-pointer-events-none aria-disabled:dy-opacity-50 data-[active=true]:dy-bg-sidebar-accent data-[active=true]:dy-font-medium data-[active=true]:dy-text-sidebar-accent-foreground data-[state=open]:hover:dy-bg-sidebar-accent data-[state=open]:hover:dy-text-sidebar-accent-foreground dy-group-data-[collapsible=icon]:dy-!size-8 dy-group-data-[collapsible=icon]:dy-!p-2 [&>span:last-child]:dy-truncate [&>svg]:dy-size-4 [&>svg]:dy-shrink-0",
|
|
526
526
|
{
|
|
527
527
|
variants: {
|
|
528
528
|
variant: {
|
|
529
|
-
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
529
|
+
default: "hover:dy-bg-sidebar-accent hover:dy-text-sidebar-accent-foreground",
|
|
530
530
|
outline:
|
|
531
531
|
"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
|
|
532
532
|
},
|
|
@@ -616,15 +616,15 @@ const SidebarMenuAction = React.forwardRef<
|
|
|
616
616
|
ref={ref}
|
|
617
617
|
data-sidebar="menu-action"
|
|
618
618
|
className={cn(
|
|
619
|
-
"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
|
|
619
|
+
"dy-absolute dy-right-1 dy-top-1.5 dy-flex dy-aspect-square dy-w-5 dy-items-center dy-justify-center dy-rounded-md dy-p-0 dy-text-sidebar-foreground dy-outline-none dy-ring-sidebar-ring dy-transition-transform hover:dy-bg-sidebar-accent hover:dy-text-sidebar-accent-foreground focus-visible:dy-ring-2 dy-peer-hover/menu-button:dy-text-sidebar-accent-foreground [&>svg]:dy-size-4 [&>svg]:dy-shrink-0",
|
|
620
620
|
// Increases the hit area of the button on mobile.
|
|
621
|
-
"after:absolute after
|
|
622
|
-
"peer-data-[size=sm]/menu-button:top-1",
|
|
623
|
-
"peer-data-[size=default]/menu-button:top-1.5",
|
|
624
|
-
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
625
|
-
"group-data-[collapsible=icon]:hidden",
|
|
621
|
+
"after:dy-absolute after:dy--inset-2 after:md:dy-hidden",
|
|
622
|
+
"dy-peer-data-[size=sm]/menu-button:dy-top-1",
|
|
623
|
+
"dy-peer-data-[size=default]/menu-button:dy-top-1.5",
|
|
624
|
+
"dy-peer-data-[size=lg]/menu-button:dy-top-2.5",
|
|
625
|
+
"dy-group-data-[collapsible=icon]:dy-hidden",
|
|
626
626
|
showOnHover &&
|
|
627
|
-
"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
|
|
627
|
+
"dy-group-focus-within/menu-item:dy-opacity-100 dy-group-hover/menu-item:dy-opacity-100 data-[state=open]:dy-opacity-100 dy-peer-data-[active=true]/menu-button:dy-text-sidebar-accent-foreground md:dy-opacity-0",
|
|
628
628
|
className
|
|
629
629
|
)}
|
|
630
630
|
{...props}
|
|
@@ -641,12 +641,12 @@ const SidebarMenuBadge = React.forwardRef<
|
|
|
641
641
|
ref={ref}
|
|
642
642
|
data-sidebar="menu-badge"
|
|
643
643
|
className={cn(
|
|
644
|
-
"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground",
|
|
645
|
-
"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
|
|
646
|
-
"peer-data-[size=sm]/menu-button:top-1",
|
|
647
|
-
"peer-data-[size=default]/menu-button:top-1.5",
|
|
648
|
-
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
649
|
-
"group-data-[collapsible=icon]:hidden",
|
|
644
|
+
"dy-pointer-events-none dy-absolute dy-right-1 dy-flex dy-h-5 dy-min-w-5 dy-select-none dy-items-center dy-justify-center dy-rounded-md dy-px-1 dy-text-xs dy-font-medium dy-tabular-nums dy-text-sidebar-foreground",
|
|
645
|
+
"dy-peer-hover/menu-button:dy-text-sidebar-accent-foreground dy-peer-data-[active=true]/menu-button:dy-text-sidebar-accent-foreground",
|
|
646
|
+
"dy-peer-data-[size=sm]/menu-button:dy-top-1",
|
|
647
|
+
"dy-peer-data-[size=default]/menu-button:dy-top-1.5",
|
|
648
|
+
"dy-peer-data-[size=lg]/menu-button:dy-top-2.5",
|
|
649
|
+
"dy-group-data-[collapsible=icon]:dy-hidden",
|
|
650
650
|
className
|
|
651
651
|
)}
|
|
652
652
|
{...props}
|
|
@@ -671,17 +671,17 @@ const SidebarMenuSkeleton = React.forwardRef<
|
|
|
671
671
|
<div
|
|
672
672
|
ref={ref}
|
|
673
673
|
data-sidebar="menu-skeleton"
|
|
674
|
-
className={cn("flex h-8 items-center gap-2 rounded-md px-2", className)}
|
|
674
|
+
className={cn("dy-flex dy-h-8 dy-items-center dy-gap-2 dy-rounded-md dy-px-2", className)}
|
|
675
675
|
{...props}
|
|
676
676
|
>
|
|
677
677
|
{showIcon && (
|
|
678
678
|
<Skeleton
|
|
679
|
-
className="size-4 rounded-md"
|
|
679
|
+
className="dy-size-4 dy-rounded-md"
|
|
680
680
|
data-sidebar="menu-skeleton-icon"
|
|
681
681
|
/>
|
|
682
682
|
)}
|
|
683
683
|
<Skeleton
|
|
684
|
-
className="h-4 flex-1"
|
|
684
|
+
className="dy-h-4 dy-flex-1"
|
|
685
685
|
data-sidebar="menu-skeleton-text"
|
|
686
686
|
style={{ width }}
|
|
687
687
|
/>
|
|
@@ -698,8 +698,8 @@ const SidebarMenuSub = React.forwardRef<
|
|
|
698
698
|
ref={ref}
|
|
699
699
|
data-sidebar="menu-sub"
|
|
700
700
|
className={cn(
|
|
701
|
-
"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
|
|
702
|
-
"group-data-[collapsible=icon]:hidden",
|
|
701
|
+
"dy-mx-3.5 dy-flex dy-min-w-0 dy-translate-x-px dy-flex-col dy-gap-1 dy-border-l dy-border-sidebar-border dy-px-2.5 dy-py-0.5",
|
|
702
|
+
"dy-group-data-[collapsible=icon]:dy-hidden",
|
|
703
703
|
className
|
|
704
704
|
)}
|
|
705
705
|
{...props}
|
|
@@ -730,11 +730,11 @@ const SidebarMenuSubButton = React.forwardRef<
|
|
|
730
730
|
data-size={size}
|
|
731
731
|
data-active={isActive}
|
|
732
732
|
className={cn(
|
|
733
|
-
"flex h-7 min-w-0
|
|
734
|
-
"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
|
|
735
|
-
size === "sm" && "text-xs",
|
|
736
|
-
size === "md" && "text-sm",
|
|
737
|
-
"group-data-[collapsible=icon]:hidden",
|
|
733
|
+
"dy-flex dy-h-7 dy-min-w-0 dy--translate-x-px dy-items-center dy-gap-2 dy-overflow-hidden dy-rounded-md dy-px-2 dy-text-sidebar-foreground dy-outline-none dy-ring-sidebar-ring hover:dy-bg-sidebar-accent hover:dy-text-sidebar-accent-foreground focus-visible:dy-ring-2 active:dy-bg-sidebar-accent active:dy-text-sidebar-accent-foreground disabled:dy-pointer-events-none disabled:dy-opacity-50 aria-disabled:dy-pointer-events-none aria-disabled:dy-opacity-50 [&>span:last-child]:dy-truncate [&>svg]:dy-size-4 [&>svg]:dy-shrink-0 [&>svg]:dy-text-sidebar-accent-foreground",
|
|
734
|
+
"data-[active=true]:dy-bg-sidebar-accent data-[active=true]:dy-text-sidebar-accent-foreground",
|
|
735
|
+
size === "sm" && "dy-text-xs",
|
|
736
|
+
size === "md" && "dy-text-sm",
|
|
737
|
+
"dy-group-data-[collapsible=icon]:dy-hidden",
|
|
738
738
|
className
|
|
739
739
|
)}
|
|
740
740
|
{...props}
|
|
@@ -9,7 +9,7 @@ const Switch = React.forwardRef<
|
|
|
9
9
|
>(({ className, ...props }, ref) => (
|
|
10
10
|
<SwitchPrimitives.Root
|
|
11
11
|
className={cn(
|
|
12
|
-
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
12
|
+
"dy-peer dy-inline-flex dy-h-6 dy-w-11 dy-shrink-0 dy-cursor-pointer dy-items-center dy-rounded-full dy-border-2 dy-border-transparent dy-transition-colors focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring focus-visible:dy-ring-offset-2 focus-visible:dy-ring-offset-background disabled:dy-cursor-not-allowed disabled:dy-opacity-50 data-[state=checked]:dy-bg-primary data-[state=unchecked]:dy-bg-input",
|
|
13
13
|
className
|
|
14
14
|
)}
|
|
15
15
|
{...props}
|
|
@@ -17,7 +17,7 @@ const Switch = React.forwardRef<
|
|
|
17
17
|
>
|
|
18
18
|
<SwitchPrimitives.Thumb
|
|
19
19
|
className={cn(
|
|
20
|
-
"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
|
|
20
|
+
"dy-pointer-events-none dy-block dy-h-5 dy-w-5 dy-rounded-full dy-bg-background dy-shadow-lg dy-ring-0 dy-transition-transform data-[state=checked]:dy-translate-x-5 data-[state=unchecked]:dy-translate-x-0"
|
|
21
21
|
)}
|
|
22
22
|
/>
|
|
23
23
|
</SwitchPrimitives.Root>
|
|
@@ -6,10 +6,10 @@ const Table = React.forwardRef<
|
|
|
6
6
|
HTMLTableElement,
|
|
7
7
|
React.HTMLAttributes<HTMLTableElement>
|
|
8
8
|
>(({ className, ...props }, ref) => (
|
|
9
|
-
<div className="relative w-full overflow-auto">
|
|
9
|
+
<div className="dy-relative dy-w-full dy-overflow-auto">
|
|
10
10
|
<table
|
|
11
11
|
ref={ref}
|
|
12
|
-
className={cn("w-full caption-bottom text-sm", className)}
|
|
12
|
+
className={cn("dy-w-full dy-caption-bottom dy-text-sm", className)}
|
|
13
13
|
{...props}
|
|
14
14
|
/>
|
|
15
15
|
</div>
|
|
@@ -20,7 +20,7 @@ const TableHeader = React.forwardRef<
|
|
|
20
20
|
HTMLTableSectionElement,
|
|
21
21
|
React.HTMLAttributes<HTMLTableSectionElement>
|
|
22
22
|
>(({ className, ...props }, ref) => (
|
|
23
|
-
<thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
|
|
23
|
+
<thead ref={ref} className={cn("[&_tr]:dy-border-b", className)} {...props} />
|
|
24
24
|
))
|
|
25
25
|
TableHeader.displayName = "TableHeader"
|
|
26
26
|
|
|
@@ -30,7 +30,7 @@ const TableBody = React.forwardRef<
|
|
|
30
30
|
>(({ className, ...props }, ref) => (
|
|
31
31
|
<tbody
|
|
32
32
|
ref={ref}
|
|
33
|
-
className={cn("[&_tr:last-child]:border-0", className)}
|
|
33
|
+
className={cn("[&_tr:last-child]:dy-border-0", className)}
|
|
34
34
|
{...props}
|
|
35
35
|
/>
|
|
36
36
|
))
|
|
@@ -43,7 +43,7 @@ const TableFooter = React.forwardRef<
|
|
|
43
43
|
<tfoot
|
|
44
44
|
ref={ref}
|
|
45
45
|
className={cn(
|
|
46
|
-
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
46
|
+
"dy-border-t dy-bg-muted/50 dy-font-medium [&>tr]:last:dy-border-b-0",
|
|
47
47
|
className
|
|
48
48
|
)}
|
|
49
49
|
{...props}
|
|
@@ -58,7 +58,7 @@ const TableRow = React.forwardRef<
|
|
|
58
58
|
<tr
|
|
59
59
|
ref={ref}
|
|
60
60
|
className={cn(
|
|
61
|
-
"border-b border-border/30 transition-colors hover:bg-muted/30 data-[state=selected]:bg-muted",
|
|
61
|
+
"dy-border-b dy-border-border/30 dy-transition-colors hover:dy-bg-muted/30 data-[state=selected]:dy-bg-muted",
|
|
62
62
|
className
|
|
63
63
|
)}
|
|
64
64
|
{...props}
|
|
@@ -99,7 +99,7 @@ const TableCaption = React.forwardRef<
|
|
|
99
99
|
>(({ className, ...props }, ref) => (
|
|
100
100
|
<caption
|
|
101
101
|
ref={ref}
|
|
102
|
-
className={cn("mt-4 text-sm text-muted-foreground", className)}
|
|
102
|
+
className={cn("dy-mt-4 dy-text-sm dy-text-muted-foreground", className)}
|
|
103
103
|
{...props}
|
|
104
104
|
/>
|
|
105
105
|
))
|
|
@@ -12,7 +12,7 @@ const TabsList = React.forwardRef<
|
|
|
12
12
|
<TabsPrimitive.List
|
|
13
13
|
ref={ref}
|
|
14
14
|
className={cn(
|
|
15
|
-
"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
|
|
15
|
+
"dy-inline-flex dy-h-10 dy-items-center dy-justify-center dy-rounded-md dy-bg-muted dy-p-1 dy-text-muted-foreground",
|
|
16
16
|
className
|
|
17
17
|
)}
|
|
18
18
|
{...props}
|
|
@@ -27,7 +27,7 @@ const TabsTrigger = React.forwardRef<
|
|
|
27
27
|
<TabsPrimitive.Trigger
|
|
28
28
|
ref={ref}
|
|
29
29
|
className={cn(
|
|
30
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
30
|
+
"dy-inline-flex dy-items-center dy-justify-center dy-whitespace-nowrap dy-rounded-sm dy-px-3 dy-py-1.5 dy-text-sm dy-font-medium dy-ring-offset-background dy-transition-all focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring focus-visible:dy-ring-offset-2 disabled:dy-pointer-events-none disabled:dy-opacity-50 data-[state=active]:dy-bg-background data-[state=active]:dy-text-foreground data-[state=active]:dy-shadow-sm",
|
|
31
31
|
className
|
|
32
32
|
)}
|
|
33
33
|
{...props}
|
|
@@ -42,7 +42,7 @@ const TabsContent = React.forwardRef<
|
|
|
42
42
|
<TabsPrimitive.Content
|
|
43
43
|
ref={ref}
|
|
44
44
|
className={cn(
|
|
45
|
-
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
45
|
+
"dy-mt-2 dy-ring-offset-background focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring focus-visible:dy-ring-offset-2",
|
|
46
46
|
className
|
|
47
47
|
)}
|
|
48
48
|
{...props}
|
|
@@ -9,7 +9,7 @@ const Textarea = React.forwardRef<
|
|
|
9
9
|
return (
|
|
10
10
|
<textarea
|
|
11
11
|
className={cn(
|
|
12
|
-
"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
12
|
+
"dy-flex dy-min-h-[80px] dy-w-full dy-rounded-md dy-border dy-border-input dy-bg-background dy-px-3 dy-py-2 dy-text-base dy-ring-offset-background placeholder:dy-text-muted-foreground focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring focus-visible:dy-ring-offset-2 disabled:dy-cursor-not-allowed disabled:dy-opacity-50 md:dy-text-sm",
|
|
13
13
|
className
|
|
14
14
|
)}
|
|
15
15
|
ref={ref}
|
|
@@ -5,18 +5,18 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
5
5
|
import { cn } from "../../lib/utils"
|
|
6
6
|
|
|
7
7
|
const toggleVariants = cva(
|
|
8
|
-
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
|
|
8
|
+
"dy-inline-flex dy-items-center dy-justify-center dy-rounded-md dy-text-sm dy-font-medium dy-ring-offset-background dy-transition-colors hover:dy-bg-muted hover:dy-text-muted-foreground focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring focus-visible:dy-ring-offset-2 disabled:dy-pointer-events-none disabled:dy-opacity-50 data-[state=on]:dy-bg-accent data-[state=on]:dy-text-accent-foreground [&_svg]:dy-pointer-events-none [&_svg]:dy-size-4 [&_svg]:dy-shrink-0 dy-gap-2",
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
11
11
|
variant: {
|
|
12
|
-
default: "bg-transparent",
|
|
12
|
+
default: "dy-bg-transparent",
|
|
13
13
|
outline:
|
|
14
|
-
"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
|
|
14
|
+
"dy-border dy-border-input dy-bg-transparent hover:dy-bg-accent hover:dy-text-accent-foreground",
|
|
15
15
|
},
|
|
16
16
|
size: {
|
|
17
|
-
default: "h-10 px-3 min-w-10",
|
|
18
|
-
sm: "h-9 px-2.5 min-w-9",
|
|
19
|
-
lg: "h-11 px-5 min-w-11",
|
|
17
|
+
default: "dy-h-10 dy-px-3 dy-min-w-10",
|
|
18
|
+
sm: "dy-h-9 dy-px-2.5 dy-min-w-9",
|
|
19
|
+
lg: "dy-h-11 dy-px-5 dy-min-w-11",
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
22
|
defaultVariants: {
|
|
@@ -17,7 +17,7 @@ const TooltipContent = React.forwardRef<
|
|
|
17
17
|
ref={ref}
|
|
18
18
|
sideOffset={sideOffset}
|
|
19
19
|
className={cn(
|
|
20
|
-
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",
|
|
20
|
+
"dy-z-50 dy-overflow-hidden dy-rounded-md dy-border dy-bg-popover dy-px-3 dy-py-1.5 dy-text-sm dy-text-popover-foreground dy-shadow-md dy-animate-in dy-fade-in-0 dy-zoom-in-95 data-[state=closed]:dy-animate-out data-[state=closed]:dy-fade-out-0 data-[state=closed]:dy-zoom-out-95 data-[side=bottom]:dy-slide-in-from-top-2 data-[side=left]:dy-slide-in-from-right-2 data-[side=right]:dy-slide-in-from-left-2 data-[side=top]:dy-slide-in-from-bottom-2 dy-origin-[--radix-tooltip-content-transform-origin]",
|
|
21
21
|
className
|
|
22
22
|
)}
|
|
23
23
|
{...props}
|
package/src/index.css
CHANGED
|
@@ -59,53 +59,53 @@
|
|
|
59
59
|
--sidebar-ring: 38 92% 50%;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
.admin-ui {
|
|
62
|
+
.dy-admin-ui {
|
|
63
63
|
color-scheme: light;
|
|
64
|
-
@apply font-sans;
|
|
64
|
+
@apply dy-font-sans;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
.admin-ui h1,
|
|
68
|
-
.admin-ui h2,
|
|
69
|
-
.admin-ui h3,
|
|
70
|
-
.admin-ui h4,
|
|
71
|
-
.admin-ui h5,
|
|
72
|
-
.admin-ui h6 {
|
|
73
|
-
@apply font-serif;
|
|
67
|
+
.dy-admin-ui h1,
|
|
68
|
+
.dy-admin-ui h2,
|
|
69
|
+
.dy-admin-ui h3,
|
|
70
|
+
.dy-admin-ui h4,
|
|
71
|
+
.dy-admin-ui h5,
|
|
72
|
+
.dy-admin-ui h6 {
|
|
73
|
+
@apply dy-font-serif;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
@layer utilities {
|
|
78
|
-
.admin-ui .left-accent {
|
|
79
|
-
@apply border-l-2 border-primary/10 px-4
|
|
78
|
+
.dy-admin-ui .left-accent {
|
|
79
|
+
@apply dy-border-l-2 dy-border-primary/10 dy-px-4 dy--mx-8 dy-py-4 dy-transition-all dy-duration-200 dy-bg-transparent;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
.admin-ui .left-accent:hover {
|
|
83
|
-
@apply border-l-primary bg-primary/[0.04];
|
|
82
|
+
.dy-admin-ui .left-accent:hover {
|
|
83
|
+
@apply dy-border-l-primary dy-bg-primary/[0.04];
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
.admin-ui .left-accent .left-accent {
|
|
87
|
-
@apply px-4
|
|
86
|
+
.dy-admin-ui .left-accent .left-accent {
|
|
87
|
+
@apply dy-px-4 dy--mx-4;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
.admin-ui .left-accent .left-accent .left-accent{
|
|
91
|
-
@apply px-4 mx-0;
|
|
90
|
+
.dy-admin-ui .left-accent .left-accent .left-accent{
|
|
91
|
+
@apply dy-px-4 dy-mx-0;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
.admin-ui .flat-container {
|
|
95
|
-
@apply bg-transparent border-none shadow-none p-0;
|
|
94
|
+
.dy-admin-ui .flat-container {
|
|
95
|
+
@apply dy-bg-transparent dy-border-none dy-shadow-none dy-p-0;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
@layer components {
|
|
100
|
-
.admin-ui input,
|
|
101
|
-
.admin-ui select,
|
|
102
|
-
.admin-ui textarea {
|
|
103
|
-
@apply focus-visible:ring-0 focus-visible:ring-offset-0 focus-visible:outline-none focus:outline-none border-border/60 bg-transparent transition-all;
|
|
100
|
+
.dy-admin-ui input,
|
|
101
|
+
.dy-admin-ui select,
|
|
102
|
+
.dy-admin-ui textarea {
|
|
103
|
+
@apply focus-visible:dy-ring-0 focus-visible:dy-ring-offset-0 focus-visible:dy-outline-none focus:dy-outline-none dy-border-border/60 dy-bg-transparent dy-transition-all;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
.admin-ui input:focus,
|
|
107
|
-
.admin-ui select:focus,
|
|
108
|
-
.admin-ui textarea:focus {
|
|
109
|
-
@apply border-primary/50;
|
|
106
|
+
.dy-admin-ui input:focus,
|
|
107
|
+
.dy-admin-ui select:focus,
|
|
108
|
+
.dy-admin-ui textarea:focus {
|
|
109
|
+
@apply dy-border-primary/50;
|
|
110
110
|
}
|
|
111
111
|
}
|
package/src/index.tsx
CHANGED
|
@@ -133,14 +133,14 @@ export function AdminUI({
|
|
|
133
133
|
|
|
134
134
|
if (!mounted) {
|
|
135
135
|
return (
|
|
136
|
-
<div className="flex-1 flex items-center justify-center p-12 bg-muted/5 animate-pulse">
|
|
137
|
-
<div className="text-muted-foreground/40 text-sm font-medium">Loading Dashboard...</div>
|
|
136
|
+
<div className="dy-flex-1 dy-flex dy-items-center dy-justify-center dy-p-12 dy-bg-muted/5 dy-animate-pulse">
|
|
137
|
+
<div className="dy-text-muted-foreground/40 dy-text-sm dy-font-medium">Loading Dashboard...</div>
|
|
138
138
|
</div>
|
|
139
139
|
);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
return (
|
|
143
|
-
<div className="admin-ui h-full">
|
|
143
|
+
<div className="dy-admin-ui dy-h-full">
|
|
144
144
|
<ErrorBoundary>
|
|
145
145
|
<DyrectedProvider apiKey={apiKey} baseUrl={baseUrl} siteId={siteId}>
|
|
146
146
|
<QueryProvider>
|
|
@@ -179,7 +179,7 @@ export interface AdminStandaloneProps {
|
|
|
179
179
|
|
|
180
180
|
export function AdminStandalone({ apiKey, baseUrl, siteId }: AdminStandaloneProps) {
|
|
181
181
|
return (
|
|
182
|
-
<div className="admin-ui h-full">
|
|
182
|
+
<div className="dy-admin-ui dy-h-full">
|
|
183
183
|
<DyrectedProvider apiKey={apiKey} baseUrl={baseUrl} siteId={siteId}>
|
|
184
184
|
<QueryProvider>
|
|
185
185
|
<MemoryRouter>
|
package/src/lib/utils.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { type ClassValue
|
|
2
|
-
import {
|
|
1
|
+
import { clsx, type ClassValue } from "clsx"
|
|
2
|
+
import { extendTailwindMerge } from "tailwind-merge"
|
|
3
|
+
|
|
4
|
+
const customTwMerge = extendTailwindMerge({
|
|
5
|
+
prefix: "dy-",
|
|
6
|
+
})
|
|
3
7
|
|
|
4
8
|
export function cn(...inputs: ClassValue[]) {
|
|
5
|
-
return
|
|
9
|
+
return customTwMerge(clsx(inputs))
|
|
6
10
|
}
|
|
7
11
|
|
|
8
12
|
export function getMediaUrl(val: string | any, baseUrl: string) {
|