@dimaan/ui 0.0.13 → 0.0.15
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/index.cjs +379 -151
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +405 -103
- package/dist/index.d.ts +405 -103
- package/dist/index.js +353 -153
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5,9 +5,10 @@ import { DirectionProvider } from '@radix-ui/react-direction';
|
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
8
|
-
import { Loader2, Check, Minus, Calendar, X, ChevronLeft, ChevronRight, ChevronDown, ChevronUp, ArrowLeft, Menu, ChevronsUpDown, Search, RefreshCw, Inbox, SearchX } from 'lucide-react';
|
|
8
|
+
import { Loader2, Check, Minus, Calendar, X, ChevronLeft, ChevronRight, ChevronDown, ChevronUp, ArrowLeft, Menu, FileQuestion, ChevronsUpDown, Search, RefreshCw, Inbox, SearchX } from 'lucide-react';
|
|
9
9
|
import * as RadixPopover from '@radix-ui/react-popover';
|
|
10
10
|
import { DayPicker } from 'react-day-picker';
|
|
11
|
+
import * as RadixDialog from '@radix-ui/react-dialog';
|
|
11
12
|
import * as RadixDropdown from '@radix-ui/react-dropdown-menu';
|
|
12
13
|
import { useFormContext, Controller } from 'react-hook-form';
|
|
13
14
|
import * as RadixSelect from '@radix-ui/react-select';
|
|
@@ -16347,86 +16348,6 @@ function readDocumentLocale() {
|
|
|
16347
16348
|
return lang || void 0;
|
|
16348
16349
|
}
|
|
16349
16350
|
|
|
16350
|
-
// src/components/dropdown-menu/dropdownMenuVariants.ts
|
|
16351
|
-
var dropdownMenuContentClass = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
16352
|
-
var dropdownMenuItemBaseClass = "relative flex w-full cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0";
|
|
16353
|
-
var dropdownMenuItemVariantClass = {
|
|
16354
|
-
default: "text-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground",
|
|
16355
|
-
destructive: "text-destructive data-[highlighted]:bg-destructive data-[highlighted]:text-destructive-foreground"
|
|
16356
|
-
};
|
|
16357
|
-
var dropdownMenuItemInsetClass = "ps-8";
|
|
16358
|
-
var dropdownMenuSeparatorClass = "-mx-1 my-1 h-px bg-border";
|
|
16359
|
-
var dropdownMenuLabelClass = "px-2 py-1.5 text-xs font-semibold text-muted-foreground select-none";
|
|
16360
|
-
var dropdownMenuShortcutClass = "ms-auto text-xs tracking-widest text-muted-foreground";
|
|
16361
|
-
var DropdownMenu = RadixDropdown.Root;
|
|
16362
|
-
var DropdownMenuTrigger = RadixDropdown.Trigger;
|
|
16363
|
-
var DropdownMenuGroup = RadixDropdown.Group;
|
|
16364
|
-
var DropdownMenuPortal = RadixDropdown.Portal;
|
|
16365
|
-
var DropdownMenuContent = forwardRef(function DropdownMenuContent2({ className, sideOffset = 4, ...props }, ref) {
|
|
16366
|
-
return /* @__PURE__ */ jsx(RadixDropdown.Portal, { children: /* @__PURE__ */ jsx(
|
|
16367
|
-
RadixDropdown.Content,
|
|
16368
|
-
{
|
|
16369
|
-
ref,
|
|
16370
|
-
sideOffset,
|
|
16371
|
-
"data-slot": "dropdown-menu-content",
|
|
16372
|
-
className: cn(dropdownMenuContentClass, className),
|
|
16373
|
-
...props
|
|
16374
|
-
}
|
|
16375
|
-
) });
|
|
16376
|
-
});
|
|
16377
|
-
var DropdownMenuItem = forwardRef(function DropdownMenuItem2({ className, variant = "default", inset = false, ...props }, ref) {
|
|
16378
|
-
return /* @__PURE__ */ jsx(
|
|
16379
|
-
RadixDropdown.Item,
|
|
16380
|
-
{
|
|
16381
|
-
ref,
|
|
16382
|
-
"data-slot": "dropdown-menu-item",
|
|
16383
|
-
"data-variant": variant,
|
|
16384
|
-
className: cn(
|
|
16385
|
-
dropdownMenuItemBaseClass,
|
|
16386
|
-
dropdownMenuItemVariantClass[variant],
|
|
16387
|
-
inset && dropdownMenuItemInsetClass,
|
|
16388
|
-
className
|
|
16389
|
-
),
|
|
16390
|
-
...props
|
|
16391
|
-
}
|
|
16392
|
-
);
|
|
16393
|
-
});
|
|
16394
|
-
var DropdownMenuSeparator = forwardRef(function DropdownMenuSeparator2({ className, ...props }, ref) {
|
|
16395
|
-
return /* @__PURE__ */ jsx(
|
|
16396
|
-
RadixDropdown.Separator,
|
|
16397
|
-
{
|
|
16398
|
-
ref,
|
|
16399
|
-
"data-slot": "dropdown-menu-separator",
|
|
16400
|
-
className: cn(dropdownMenuSeparatorClass, className),
|
|
16401
|
-
...props
|
|
16402
|
-
}
|
|
16403
|
-
);
|
|
16404
|
-
});
|
|
16405
|
-
var DropdownMenuLabel = forwardRef(function DropdownMenuLabel2({ className, inset = false, ...props }, ref) {
|
|
16406
|
-
return /* @__PURE__ */ jsx(
|
|
16407
|
-
RadixDropdown.Label,
|
|
16408
|
-
{
|
|
16409
|
-
ref,
|
|
16410
|
-
"data-slot": "dropdown-menu-label",
|
|
16411
|
-
className: cn(dropdownMenuLabelClass, inset && dropdownMenuItemInsetClass, className),
|
|
16412
|
-
...props
|
|
16413
|
-
}
|
|
16414
|
-
);
|
|
16415
|
-
});
|
|
16416
|
-
var DropdownMenuShortcut = forwardRef(
|
|
16417
|
-
function DropdownMenuShortcut2({ className, ...props }, ref) {
|
|
16418
|
-
return /* @__PURE__ */ jsx(
|
|
16419
|
-
"span",
|
|
16420
|
-
{
|
|
16421
|
-
ref,
|
|
16422
|
-
"data-slot": "dropdown-menu-shortcut",
|
|
16423
|
-
className: cn(dropdownMenuShortcutClass, className),
|
|
16424
|
-
...props
|
|
16425
|
-
}
|
|
16426
|
-
);
|
|
16427
|
-
}
|
|
16428
|
-
);
|
|
16429
|
-
|
|
16430
16351
|
// src/components/empty-state/emptyStateVariants.ts
|
|
16431
16352
|
var emptyStateContainerSizeClass = {
|
|
16432
16353
|
sm: "py-8 gap-2",
|
|
@@ -16506,6 +16427,303 @@ var EmptyState = forwardRef(function EmptyState2({ icon, title, description, act
|
|
|
16506
16427
|
}
|
|
16507
16428
|
);
|
|
16508
16429
|
});
|
|
16430
|
+
|
|
16431
|
+
// src/components/page-header/PageHeader.tsx
|
|
16432
|
+
var import_react_router_dom2 = __toESM(require_dist2());
|
|
16433
|
+
|
|
16434
|
+
// src/components/page-header/pageHeaderVariants.ts
|
|
16435
|
+
var pageHeaderBaseClass = "flex w-full flex-col gap-3";
|
|
16436
|
+
var pageHeaderBorderedClass = "border-b border-border pb-4";
|
|
16437
|
+
var pageHeaderTitleRowClass = "flex flex-wrap items-start justify-between gap-3 sm:gap-4";
|
|
16438
|
+
var pageHeaderTitleBlockClass = "min-w-0 flex-1 space-y-1";
|
|
16439
|
+
var pageHeaderTitleClass = "text-2xl font-semibold tracking-tight text-foreground";
|
|
16440
|
+
var pageHeaderDescriptionClass = "text-sm text-muted-foreground";
|
|
16441
|
+
var pageHeaderActionsClass = "flex shrink-0 flex-wrap items-center gap-2";
|
|
16442
|
+
var pageHeaderBackClass = "inline-flex items-center gap-1.5 self-start text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-md";
|
|
16443
|
+
var pageHeaderBackIconClass = "size-4 shrink-0 rtl:rotate-180";
|
|
16444
|
+
var pageHeaderBreadcrumbsClass = "text-xs text-muted-foreground";
|
|
16445
|
+
var PageHeader = forwardRef(function PageHeader2({
|
|
16446
|
+
title,
|
|
16447
|
+
description,
|
|
16448
|
+
breadcrumbs,
|
|
16449
|
+
back,
|
|
16450
|
+
actions,
|
|
16451
|
+
as = "h1",
|
|
16452
|
+
bordered = false,
|
|
16453
|
+
className,
|
|
16454
|
+
...props
|
|
16455
|
+
}, ref) {
|
|
16456
|
+
return /* @__PURE__ */ jsxs(
|
|
16457
|
+
"header",
|
|
16458
|
+
{
|
|
16459
|
+
ref,
|
|
16460
|
+
"data-slot": "page-header",
|
|
16461
|
+
className: cn(pageHeaderBaseClass, bordered && pageHeaderBorderedClass, className),
|
|
16462
|
+
...props,
|
|
16463
|
+
children: [
|
|
16464
|
+
breadcrumbs ? /* @__PURE__ */ jsx("div", { "data-slot": "page-header-breadcrumbs", className: pageHeaderBreadcrumbsClass, children: breadcrumbs }) : null,
|
|
16465
|
+
back ? /* @__PURE__ */ jsx(PageHeaderBack, { ...back }) : null,
|
|
16466
|
+
/* @__PURE__ */ jsxs("div", { "data-slot": "page-header-row", className: pageHeaderTitleRowClass, children: [
|
|
16467
|
+
/* @__PURE__ */ jsxs("div", { className: pageHeaderTitleBlockClass, children: [
|
|
16468
|
+
createElement(
|
|
16469
|
+
as,
|
|
16470
|
+
{ "data-slot": "page-header-title", className: pageHeaderTitleClass },
|
|
16471
|
+
title
|
|
16472
|
+
),
|
|
16473
|
+
description ? /* @__PURE__ */ jsx("p", { "data-slot": "page-header-description", className: pageHeaderDescriptionClass, children: description }) : null
|
|
16474
|
+
] }),
|
|
16475
|
+
actions ? /* @__PURE__ */ jsx("div", { "data-slot": "page-header-actions", className: pageHeaderActionsClass, children: actions }) : null
|
|
16476
|
+
] })
|
|
16477
|
+
]
|
|
16478
|
+
}
|
|
16479
|
+
);
|
|
16480
|
+
});
|
|
16481
|
+
function PageHeaderBack({ label = "Back", to, onClick, render }) {
|
|
16482
|
+
const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
16483
|
+
/* @__PURE__ */ jsx(ArrowLeft, { className: pageHeaderBackIconClass, "aria-hidden": "true" }),
|
|
16484
|
+
/* @__PURE__ */ jsx("span", { children: label })
|
|
16485
|
+
] });
|
|
16486
|
+
if (render) {
|
|
16487
|
+
return render({
|
|
16488
|
+
to,
|
|
16489
|
+
onClick,
|
|
16490
|
+
className: pageHeaderBackClass,
|
|
16491
|
+
children: inner
|
|
16492
|
+
});
|
|
16493
|
+
}
|
|
16494
|
+
if (to) {
|
|
16495
|
+
return /* @__PURE__ */ jsx(import_react_router_dom2.Link, { to, onClick, className: pageHeaderBackClass, children: inner });
|
|
16496
|
+
}
|
|
16497
|
+
return /* @__PURE__ */ jsx("button", { type: "button", onClick, className: pageHeaderBackClass, children: inner });
|
|
16498
|
+
}
|
|
16499
|
+
|
|
16500
|
+
// src/components/detail-page/detailPageVariants.ts
|
|
16501
|
+
var detailPageBaseClass = "flex w-full flex-col gap-6";
|
|
16502
|
+
var detailPageBodyClass = "flex flex-col gap-6";
|
|
16503
|
+
var detailPageSkeletonRowClass = "h-5 w-full animate-pulse rounded-md bg-muted";
|
|
16504
|
+
var detailPageEmptyClass = "rounded-md border border-border bg-card";
|
|
16505
|
+
var DEFAULT_LABELS = {
|
|
16506
|
+
notFoundTitle: "Not found",
|
|
16507
|
+
notFoundDescription: "The record you\u2019re looking for does not exist or has been removed."
|
|
16508
|
+
};
|
|
16509
|
+
var DEFAULT_SKELETON_ROW_COUNT = 6;
|
|
16510
|
+
function DetailPage({
|
|
16511
|
+
title,
|
|
16512
|
+
description,
|
|
16513
|
+
back,
|
|
16514
|
+
actions,
|
|
16515
|
+
bordered = true,
|
|
16516
|
+
isLoading = false,
|
|
16517
|
+
loadingRowCount = DEFAULT_SKELETON_ROW_COUNT,
|
|
16518
|
+
notFound = false,
|
|
16519
|
+
notFoundState,
|
|
16520
|
+
labels: labelsProp,
|
|
16521
|
+
children,
|
|
16522
|
+
className,
|
|
16523
|
+
bodyClassName
|
|
16524
|
+
}) {
|
|
16525
|
+
const labels = { ...DEFAULT_LABELS, ...labelsProp };
|
|
16526
|
+
return /* @__PURE__ */ jsxs(
|
|
16527
|
+
"div",
|
|
16528
|
+
{
|
|
16529
|
+
"data-slot": "detail-page",
|
|
16530
|
+
"data-state": isLoading ? "loading" : notFound ? "not-found" : "ready",
|
|
16531
|
+
"aria-busy": isLoading || void 0,
|
|
16532
|
+
className: cn(detailPageBaseClass, className),
|
|
16533
|
+
children: [
|
|
16534
|
+
/* @__PURE__ */ jsx(
|
|
16535
|
+
PageHeader,
|
|
16536
|
+
{
|
|
16537
|
+
title,
|
|
16538
|
+
description,
|
|
16539
|
+
back,
|
|
16540
|
+
actions,
|
|
16541
|
+
bordered
|
|
16542
|
+
}
|
|
16543
|
+
),
|
|
16544
|
+
isLoading ? /* @__PURE__ */ jsx(DetailPageSkeleton, { rowCount: loadingRowCount }) : notFound ? /* @__PURE__ */ jsx("div", { "data-slot": "detail-page-empty", "data-state": "not-found", className: detailPageEmptyClass, children: /* @__PURE__ */ jsx(
|
|
16545
|
+
EmptyState,
|
|
16546
|
+
{
|
|
16547
|
+
size: "lg",
|
|
16548
|
+
icon: notFoundState?.icon ?? /* @__PURE__ */ jsx(FileQuestion, {}),
|
|
16549
|
+
title: notFoundState?.title ?? labels.notFoundTitle,
|
|
16550
|
+
description: notFoundState?.description ?? labels.notFoundDescription,
|
|
16551
|
+
action: notFoundState?.action ?? null
|
|
16552
|
+
}
|
|
16553
|
+
) }) : /* @__PURE__ */ jsx("div", { "data-slot": "detail-page-body", className: cn(detailPageBodyClass, bodyClassName), children })
|
|
16554
|
+
]
|
|
16555
|
+
}
|
|
16556
|
+
);
|
|
16557
|
+
}
|
|
16558
|
+
function DetailPageSkeleton({ rowCount }) {
|
|
16559
|
+
const rows = Array.from({ length: Math.max(1, rowCount) }, (_, i) => `detail-page-skeleton-${i}`);
|
|
16560
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", "aria-hidden": "true", children: rows.map((key) => /* @__PURE__ */ jsx(
|
|
16561
|
+
"div",
|
|
16562
|
+
{
|
|
16563
|
+
"data-testid": "detail-page-skeleton-row",
|
|
16564
|
+
className: detailPageSkeletonRowClass
|
|
16565
|
+
},
|
|
16566
|
+
key
|
|
16567
|
+
)) });
|
|
16568
|
+
}
|
|
16569
|
+
|
|
16570
|
+
// src/components/dialog/dialogVariants.ts
|
|
16571
|
+
var dialogOverlayClass = "fixed inset-0 z-50 bg-foreground/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0";
|
|
16572
|
+
var dialogContentClass = "fixed start-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border border-border bg-background p-6 text-foreground shadow-lg outline-none rtl:translate-x-1/2 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
16573
|
+
var dialogHeaderClass = "flex flex-col gap-1.5 text-start";
|
|
16574
|
+
var dialogTitleClass = "text-lg font-semibold text-foreground";
|
|
16575
|
+
var dialogDescriptionClass = "text-sm text-muted-foreground";
|
|
16576
|
+
var dialogFooterClass = "flex flex-col-reverse gap-2 sm:flex-row sm:items-center sm:justify-end";
|
|
16577
|
+
var dialogCloseButtonClass = "absolute end-4 top-4 inline-flex size-7 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none";
|
|
16578
|
+
var Dialog = RadixDialog.Root;
|
|
16579
|
+
var DialogTrigger = RadixDialog.Trigger;
|
|
16580
|
+
var DialogPortal = RadixDialog.Portal;
|
|
16581
|
+
var DialogClose = RadixDialog.Close;
|
|
16582
|
+
var DialogOverlay = forwardRef(function DialogOverlay2({ className, ...props }, ref) {
|
|
16583
|
+
return /* @__PURE__ */ jsx(
|
|
16584
|
+
RadixDialog.Overlay,
|
|
16585
|
+
{
|
|
16586
|
+
ref,
|
|
16587
|
+
"data-slot": "dialog-overlay",
|
|
16588
|
+
className: cn(dialogOverlayClass, className),
|
|
16589
|
+
...props
|
|
16590
|
+
}
|
|
16591
|
+
);
|
|
16592
|
+
});
|
|
16593
|
+
var DialogContent = forwardRef(function DialogContent2({ className, children, showCloseButton = true, closeLabel = "Close", ...props }, ref) {
|
|
16594
|
+
return /* @__PURE__ */ jsxs(RadixDialog.Portal, { children: [
|
|
16595
|
+
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
16596
|
+
/* @__PURE__ */ jsxs(
|
|
16597
|
+
RadixDialog.Content,
|
|
16598
|
+
{
|
|
16599
|
+
ref,
|
|
16600
|
+
"data-slot": "dialog-content",
|
|
16601
|
+
className: cn(dialogContentClass, className),
|
|
16602
|
+
...props,
|
|
16603
|
+
children: [
|
|
16604
|
+
children,
|
|
16605
|
+
showCloseButton ? /* @__PURE__ */ jsx(
|
|
16606
|
+
RadixDialog.Close,
|
|
16607
|
+
{
|
|
16608
|
+
"aria-label": closeLabel,
|
|
16609
|
+
"data-slot": "dialog-close-button",
|
|
16610
|
+
className: dialogCloseButtonClass,
|
|
16611
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-4", "aria-hidden": "true" })
|
|
16612
|
+
}
|
|
16613
|
+
) : null
|
|
16614
|
+
]
|
|
16615
|
+
}
|
|
16616
|
+
)
|
|
16617
|
+
] });
|
|
16618
|
+
});
|
|
16619
|
+
function DialogHeader({ className, ...props }) {
|
|
16620
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "dialog-header", className: cn(dialogHeaderClass, className), ...props });
|
|
16621
|
+
}
|
|
16622
|
+
function DialogFooter({ className, ...props }) {
|
|
16623
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "dialog-footer", className: cn(dialogFooterClass, className), ...props });
|
|
16624
|
+
}
|
|
16625
|
+
var DialogTitle = forwardRef(function DialogTitle2({ className, ...props }, ref) {
|
|
16626
|
+
return /* @__PURE__ */ jsx(
|
|
16627
|
+
RadixDialog.Title,
|
|
16628
|
+
{
|
|
16629
|
+
ref,
|
|
16630
|
+
"data-slot": "dialog-title",
|
|
16631
|
+
className: cn(dialogTitleClass, className),
|
|
16632
|
+
...props
|
|
16633
|
+
}
|
|
16634
|
+
);
|
|
16635
|
+
});
|
|
16636
|
+
var DialogDescription = forwardRef(function DialogDescription2({ className, ...props }, ref) {
|
|
16637
|
+
return /* @__PURE__ */ jsx(
|
|
16638
|
+
RadixDialog.Description,
|
|
16639
|
+
{
|
|
16640
|
+
ref,
|
|
16641
|
+
"data-slot": "dialog-description",
|
|
16642
|
+
className: cn(dialogDescriptionClass, className),
|
|
16643
|
+
...props
|
|
16644
|
+
}
|
|
16645
|
+
);
|
|
16646
|
+
});
|
|
16647
|
+
|
|
16648
|
+
// src/components/dropdown-menu/dropdownMenuVariants.ts
|
|
16649
|
+
var dropdownMenuContentClass = "z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
16650
|
+
var dropdownMenuItemBaseClass = "relative flex w-full cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0";
|
|
16651
|
+
var dropdownMenuItemVariantClass = {
|
|
16652
|
+
default: "text-foreground data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground",
|
|
16653
|
+
destructive: "text-destructive data-[highlighted]:bg-destructive data-[highlighted]:text-destructive-foreground"
|
|
16654
|
+
};
|
|
16655
|
+
var dropdownMenuItemInsetClass = "ps-8";
|
|
16656
|
+
var dropdownMenuSeparatorClass = "-mx-1 my-1 h-px bg-border";
|
|
16657
|
+
var dropdownMenuLabelClass = "px-2 py-1.5 text-xs font-semibold text-muted-foreground select-none";
|
|
16658
|
+
var dropdownMenuShortcutClass = "ms-auto text-xs tracking-widest text-muted-foreground";
|
|
16659
|
+
var DropdownMenu = RadixDropdown.Root;
|
|
16660
|
+
var DropdownMenuTrigger = RadixDropdown.Trigger;
|
|
16661
|
+
var DropdownMenuGroup = RadixDropdown.Group;
|
|
16662
|
+
var DropdownMenuPortal = RadixDropdown.Portal;
|
|
16663
|
+
var DropdownMenuContent = forwardRef(function DropdownMenuContent2({ className, sideOffset = 4, ...props }, ref) {
|
|
16664
|
+
return /* @__PURE__ */ jsx(RadixDropdown.Portal, { children: /* @__PURE__ */ jsx(
|
|
16665
|
+
RadixDropdown.Content,
|
|
16666
|
+
{
|
|
16667
|
+
ref,
|
|
16668
|
+
sideOffset,
|
|
16669
|
+
"data-slot": "dropdown-menu-content",
|
|
16670
|
+
className: cn(dropdownMenuContentClass, className),
|
|
16671
|
+
...props
|
|
16672
|
+
}
|
|
16673
|
+
) });
|
|
16674
|
+
});
|
|
16675
|
+
var DropdownMenuItem = forwardRef(function DropdownMenuItem2({ className, variant = "default", inset = false, ...props }, ref) {
|
|
16676
|
+
return /* @__PURE__ */ jsx(
|
|
16677
|
+
RadixDropdown.Item,
|
|
16678
|
+
{
|
|
16679
|
+
ref,
|
|
16680
|
+
"data-slot": "dropdown-menu-item",
|
|
16681
|
+
"data-variant": variant,
|
|
16682
|
+
className: cn(
|
|
16683
|
+
dropdownMenuItemBaseClass,
|
|
16684
|
+
dropdownMenuItemVariantClass[variant],
|
|
16685
|
+
inset && dropdownMenuItemInsetClass,
|
|
16686
|
+
className
|
|
16687
|
+
),
|
|
16688
|
+
...props
|
|
16689
|
+
}
|
|
16690
|
+
);
|
|
16691
|
+
});
|
|
16692
|
+
var DropdownMenuSeparator = forwardRef(function DropdownMenuSeparator2({ className, ...props }, ref) {
|
|
16693
|
+
return /* @__PURE__ */ jsx(
|
|
16694
|
+
RadixDropdown.Separator,
|
|
16695
|
+
{
|
|
16696
|
+
ref,
|
|
16697
|
+
"data-slot": "dropdown-menu-separator",
|
|
16698
|
+
className: cn(dropdownMenuSeparatorClass, className),
|
|
16699
|
+
...props
|
|
16700
|
+
}
|
|
16701
|
+
);
|
|
16702
|
+
});
|
|
16703
|
+
var DropdownMenuLabel = forwardRef(function DropdownMenuLabel2({ className, inset = false, ...props }, ref) {
|
|
16704
|
+
return /* @__PURE__ */ jsx(
|
|
16705
|
+
RadixDropdown.Label,
|
|
16706
|
+
{
|
|
16707
|
+
ref,
|
|
16708
|
+
"data-slot": "dropdown-menu-label",
|
|
16709
|
+
className: cn(dropdownMenuLabelClass, inset && dropdownMenuItemInsetClass, className),
|
|
16710
|
+
...props
|
|
16711
|
+
}
|
|
16712
|
+
);
|
|
16713
|
+
});
|
|
16714
|
+
var DropdownMenuShortcut = forwardRef(
|
|
16715
|
+
function DropdownMenuShortcut2({ className, ...props }, ref) {
|
|
16716
|
+
return /* @__PURE__ */ jsx(
|
|
16717
|
+
"span",
|
|
16718
|
+
{
|
|
16719
|
+
ref,
|
|
16720
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
16721
|
+
className: cn(dropdownMenuShortcutClass, className),
|
|
16722
|
+
...props
|
|
16723
|
+
}
|
|
16724
|
+
);
|
|
16725
|
+
}
|
|
16726
|
+
);
|
|
16509
16727
|
function Field(props) {
|
|
16510
16728
|
const formContext = useFormContext();
|
|
16511
16729
|
if (props.name !== void 0) {
|
|
@@ -16635,6 +16853,57 @@ function mergeRefs2(...refs) {
|
|
|
16635
16853
|
};
|
|
16636
16854
|
}
|
|
16637
16855
|
|
|
16856
|
+
// src/components/form-page/formPageVariants.ts
|
|
16857
|
+
var formPageBaseClass = "flex w-full flex-col gap-6";
|
|
16858
|
+
var formPageBodyClass = "flex-1";
|
|
16859
|
+
var formPageActionsBarClass = "sticky bottom-0 -mx-6 -mb-6 mt-6 flex items-center justify-end gap-2 border-t border-border bg-background/95 px-6 py-3 backdrop-blur supports-[backdrop-filter]:bg-background/80";
|
|
16860
|
+
var formPageSkeletonRowClass = "h-10 w-full animate-pulse rounded-md bg-muted";
|
|
16861
|
+
var DEFAULT_SKELETON_ROW_COUNT2 = 6;
|
|
16862
|
+
function FormPage({
|
|
16863
|
+
title,
|
|
16864
|
+
description,
|
|
16865
|
+
back,
|
|
16866
|
+
bordered = true,
|
|
16867
|
+
onSubmit,
|
|
16868
|
+
isLoading = false,
|
|
16869
|
+
loadingRowCount = DEFAULT_SKELETON_ROW_COUNT2,
|
|
16870
|
+
actions,
|
|
16871
|
+
children,
|
|
16872
|
+
className,
|
|
16873
|
+
formClassName,
|
|
16874
|
+
bodyClassName,
|
|
16875
|
+
actionsClassName
|
|
16876
|
+
}) {
|
|
16877
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "form-page", className: cn(formPageBaseClass, className), children: [
|
|
16878
|
+
/* @__PURE__ */ jsx(PageHeader, { title, description, back, bordered }),
|
|
16879
|
+
/* @__PURE__ */ jsxs(
|
|
16880
|
+
"form",
|
|
16881
|
+
{
|
|
16882
|
+
onSubmit,
|
|
16883
|
+
"aria-busy": isLoading || void 0,
|
|
16884
|
+
noValidate: true,
|
|
16885
|
+
"data-slot": "form-page-form",
|
|
16886
|
+
className: cn("flex flex-1 flex-col gap-6", formClassName),
|
|
16887
|
+
children: [
|
|
16888
|
+
/* @__PURE__ */ jsx("div", { "data-slot": "form-page-body", className: cn(formPageBodyClass, bodyClassName), children: isLoading ? /* @__PURE__ */ jsx(FormPageSkeleton, { rowCount: loadingRowCount }) : children }),
|
|
16889
|
+
actions !== null && actions !== void 0 ? /* @__PURE__ */ jsx(
|
|
16890
|
+
"div",
|
|
16891
|
+
{
|
|
16892
|
+
"data-slot": "form-page-actions",
|
|
16893
|
+
className: cn(formPageActionsBarClass, actionsClassName),
|
|
16894
|
+
children: actions
|
|
16895
|
+
}
|
|
16896
|
+
) : null
|
|
16897
|
+
]
|
|
16898
|
+
}
|
|
16899
|
+
)
|
|
16900
|
+
] });
|
|
16901
|
+
}
|
|
16902
|
+
function FormPageSkeleton({ rowCount }) {
|
|
16903
|
+
const rows = Array.from({ length: Math.max(1, rowCount) }, (_, i) => `form-page-skeleton-${i}`);
|
|
16904
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", "aria-hidden": "true", children: rows.map((key) => /* @__PURE__ */ jsx("div", { "data-testid": "form-page-skeleton-row", className: formPageSkeletonRowClass }, key)) });
|
|
16905
|
+
}
|
|
16906
|
+
|
|
16638
16907
|
// src/components/input/inputVariants.ts
|
|
16639
16908
|
var inputVariantClass = {
|
|
16640
16909
|
default: "border border-input bg-background hover:border-ring",
|
|
@@ -16750,75 +17019,6 @@ function LanguageSwitcher({
|
|
|
16750
17019
|
);
|
|
16751
17020
|
}
|
|
16752
17021
|
|
|
16753
|
-
// src/components/page-header/PageHeader.tsx
|
|
16754
|
-
var import_react_router_dom2 = __toESM(require_dist2());
|
|
16755
|
-
|
|
16756
|
-
// src/components/page-header/pageHeaderVariants.ts
|
|
16757
|
-
var pageHeaderBaseClass = "flex w-full flex-col gap-3";
|
|
16758
|
-
var pageHeaderBorderedClass = "border-b border-border pb-4";
|
|
16759
|
-
var pageHeaderTitleRowClass = "flex flex-wrap items-start justify-between gap-3 sm:gap-4";
|
|
16760
|
-
var pageHeaderTitleBlockClass = "min-w-0 flex-1 space-y-1";
|
|
16761
|
-
var pageHeaderTitleClass = "text-2xl font-semibold tracking-tight text-foreground";
|
|
16762
|
-
var pageHeaderDescriptionClass = "text-sm text-muted-foreground";
|
|
16763
|
-
var pageHeaderActionsClass = "flex shrink-0 flex-wrap items-center gap-2";
|
|
16764
|
-
var pageHeaderBackClass = "inline-flex items-center gap-1.5 self-start text-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-md";
|
|
16765
|
-
var pageHeaderBackIconClass = "size-4 shrink-0 rtl:rotate-180";
|
|
16766
|
-
var pageHeaderBreadcrumbsClass = "text-xs text-muted-foreground";
|
|
16767
|
-
var PageHeader = forwardRef(function PageHeader2({
|
|
16768
|
-
title,
|
|
16769
|
-
description,
|
|
16770
|
-
breadcrumbs,
|
|
16771
|
-
back,
|
|
16772
|
-
actions,
|
|
16773
|
-
as = "h1",
|
|
16774
|
-
bordered = false,
|
|
16775
|
-
className,
|
|
16776
|
-
...props
|
|
16777
|
-
}, ref) {
|
|
16778
|
-
return /* @__PURE__ */ jsxs(
|
|
16779
|
-
"header",
|
|
16780
|
-
{
|
|
16781
|
-
ref,
|
|
16782
|
-
"data-slot": "page-header",
|
|
16783
|
-
className: cn(pageHeaderBaseClass, bordered && pageHeaderBorderedClass, className),
|
|
16784
|
-
...props,
|
|
16785
|
-
children: [
|
|
16786
|
-
breadcrumbs ? /* @__PURE__ */ jsx("div", { "data-slot": "page-header-breadcrumbs", className: pageHeaderBreadcrumbsClass, children: breadcrumbs }) : null,
|
|
16787
|
-
back ? /* @__PURE__ */ jsx(PageHeaderBack, { ...back }) : null,
|
|
16788
|
-
/* @__PURE__ */ jsxs("div", { "data-slot": "page-header-row", className: pageHeaderTitleRowClass, children: [
|
|
16789
|
-
/* @__PURE__ */ jsxs("div", { className: pageHeaderTitleBlockClass, children: [
|
|
16790
|
-
createElement(
|
|
16791
|
-
as,
|
|
16792
|
-
{ "data-slot": "page-header-title", className: pageHeaderTitleClass },
|
|
16793
|
-
title
|
|
16794
|
-
),
|
|
16795
|
-
description ? /* @__PURE__ */ jsx("p", { "data-slot": "page-header-description", className: pageHeaderDescriptionClass, children: description }) : null
|
|
16796
|
-
] }),
|
|
16797
|
-
actions ? /* @__PURE__ */ jsx("div", { "data-slot": "page-header-actions", className: pageHeaderActionsClass, children: actions }) : null
|
|
16798
|
-
] })
|
|
16799
|
-
]
|
|
16800
|
-
}
|
|
16801
|
-
);
|
|
16802
|
-
});
|
|
16803
|
-
function PageHeaderBack({ label = "Back", to, onClick, render }) {
|
|
16804
|
-
const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
16805
|
-
/* @__PURE__ */ jsx(ArrowLeft, { className: pageHeaderBackIconClass, "aria-hidden": "true" }),
|
|
16806
|
-
/* @__PURE__ */ jsx("span", { children: label })
|
|
16807
|
-
] });
|
|
16808
|
-
if (render) {
|
|
16809
|
-
return render({
|
|
16810
|
-
to,
|
|
16811
|
-
onClick,
|
|
16812
|
-
className: pageHeaderBackClass,
|
|
16813
|
-
children: inner
|
|
16814
|
-
});
|
|
16815
|
-
}
|
|
16816
|
-
if (to) {
|
|
16817
|
-
return /* @__PURE__ */ jsx(import_react_router_dom2.Link, { to, onClick, className: pageHeaderBackClass, children: inner });
|
|
16818
|
-
}
|
|
16819
|
-
return /* @__PURE__ */ jsx("button", { type: "button", onClick, className: pageHeaderBackClass, children: inner });
|
|
16820
|
-
}
|
|
16821
|
-
|
|
16822
17022
|
// src/components/select/selectVariants.ts
|
|
16823
17023
|
var selectVariantClass = {
|
|
16824
17024
|
default: "border border-input bg-background hover:border-ring",
|
|
@@ -17431,7 +17631,7 @@ function SortIndicator({ active, direction }) {
|
|
|
17431
17631
|
if (!active) return /* @__PURE__ */ jsx(ChevronsUpDown, { "aria-hidden": "true", className });
|
|
17432
17632
|
return direction === "asc" ? /* @__PURE__ */ jsx(ChevronUp, { "aria-hidden": "true", className }) : /* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": "true", className });
|
|
17433
17633
|
}
|
|
17434
|
-
var
|
|
17634
|
+
var DEFAULT_LABELS2 = {
|
|
17435
17635
|
searchPlaceholder: "Search\u2026",
|
|
17436
17636
|
searchAriaLabel: "Search",
|
|
17437
17637
|
reset: "Reset filters",
|
|
@@ -17464,7 +17664,7 @@ function ListPage({
|
|
|
17464
17664
|
labels: labelsProp,
|
|
17465
17665
|
className
|
|
17466
17666
|
}) {
|
|
17467
|
-
const labels = { ...
|
|
17667
|
+
const labels = { ...DEFAULT_LABELS2, ...labelsProp };
|
|
17468
17668
|
const initialFilterValues = useMemo(() => {
|
|
17469
17669
|
const init = {};
|
|
17470
17670
|
for (const f of filters ?? []) {
|
|
@@ -17893,6 +18093,6 @@ react-router-dom/dist/index.js:
|
|
|
17893
18093
|
*)
|
|
17894
18094
|
*/
|
|
17895
18095
|
|
|
17896
|
-
export { AppShell, Avatar, Badge, Button, Checkbox, DashboardContent, DashboardHeader, DashboardLayout, DashboardMain, DatePicker, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EmptyState, Field, HeaderActions, HeaderCollapseTrigger, HeaderMobileTrigger, HeaderSearch, HeaderTitle, Input, LanguageSwitcher, ListPage, PageHeader, RadioGroup, RadioGroupItem, Select, Sidebar, SidebarFooter, SidebarGroup, SidebarHeader, SidebarNav, SidebarNavGroup, SidebarNavItem, Switch, Table, Textarea, badgeBaseClass, badgeDotSizeClass, badgeSizeClass, badgeVariantClass, buttonBaseClass, buttonSizeClass, buttonVariantClass, cn, datePickerCalendarClass, datePickerCaptionClass, datePickerContentClass, datePickerDayBaseClass, datePickerDayWrapperClass, datePickerDisabledClass, datePickerMonthClass, datePickerMonthGridClass, datePickerMonthsClass, datePickerNavButtonClass, datePickerNavClass, datePickerOutsideClass, datePickerPlaceholderClass, datePickerSelectedClass, datePickerTodayClass, datePickerTriggerBaseClass, datePickerTriggerSizeClass, datePickerTriggerVariantClass, datePickerValueClass, datePickerWeekClass, datePickerWeekdayClass, datePickerWeekdaysClass, dropdownMenuContentClass, dropdownMenuItemBaseClass, dropdownMenuItemInsetClass, dropdownMenuItemVariantClass, dropdownMenuLabelClass, dropdownMenuSeparatorClass, dropdownMenuShortcutClass, emptyStateActionsSpacingClass, emptyStateBaseClass, emptyStateContainerSizeClass, emptyStateDescriptionSizeClass, emptyStateIconWrapperBaseClass, emptyStateIconWrapperSizeClass, emptyStateTitleSizeClass, inputBaseClass, inputSizeClass, inputVariantClass, pageHeaderActionsClass, pageHeaderBackClass, pageHeaderBackIconClass, pageHeaderBaseClass, pageHeaderBorderedClass, pageHeaderBreadcrumbsClass, pageHeaderDescriptionClass, pageHeaderTitleBlockClass, pageHeaderTitleClass, pageHeaderTitleRowClass, radioGroupBaseClass, radioGroupOrientationClass, radioIndicatorBaseClass, radioIndicatorDotClass, radioIndicatorSizeClass, radioItemBaseClass, radioItemSizeClass, radioLabelSizeClass, radioOptionRowClass, selectBaseClass, selectSizeClass, selectVariantClass, switchThumbBaseClass, switchThumbClass, switchTrackBaseClass, switchTrackClass, alignClass as tableAlignClass, tableBaseClass, selectedRowClass as tableSelectedRowClass, tableSizeClass, sortIconClass as tableSortIconClass, textareaBaseClass, textareaResizeClass, textareaSizeClass, textareaVariantClass, useDashboardLayout, useDirection };
|
|
18096
|
+
export { AppShell, Avatar, Badge, Button, Checkbox, DashboardContent, DashboardHeader, DashboardLayout, DashboardMain, DatePicker, DetailPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, EmptyState, Field, FormPage, HeaderActions, HeaderCollapseTrigger, HeaderMobileTrigger, HeaderSearch, HeaderTitle, Input, LanguageSwitcher, ListPage, PageHeader, RadioGroup, RadioGroupItem, Select, Sidebar, SidebarFooter, SidebarGroup, SidebarHeader, SidebarNav, SidebarNavGroup, SidebarNavItem, Switch, Table, Textarea, badgeBaseClass, badgeDotSizeClass, badgeSizeClass, badgeVariantClass, buttonBaseClass, buttonSizeClass, buttonVariantClass, cn, datePickerCalendarClass, datePickerCaptionClass, datePickerContentClass, datePickerDayBaseClass, datePickerDayWrapperClass, datePickerDisabledClass, datePickerMonthClass, datePickerMonthGridClass, datePickerMonthsClass, datePickerNavButtonClass, datePickerNavClass, datePickerOutsideClass, datePickerPlaceholderClass, datePickerSelectedClass, datePickerTodayClass, datePickerTriggerBaseClass, datePickerTriggerSizeClass, datePickerTriggerVariantClass, datePickerValueClass, datePickerWeekClass, datePickerWeekdayClass, datePickerWeekdaysClass, detailPageBaseClass, detailPageBodyClass, detailPageEmptyClass, detailPageSkeletonRowClass, dialogCloseButtonClass, dialogContentClass, dialogDescriptionClass, dialogFooterClass, dialogHeaderClass, dialogOverlayClass, dialogTitleClass, dropdownMenuContentClass, dropdownMenuItemBaseClass, dropdownMenuItemInsetClass, dropdownMenuItemVariantClass, dropdownMenuLabelClass, dropdownMenuSeparatorClass, dropdownMenuShortcutClass, emptyStateActionsSpacingClass, emptyStateBaseClass, emptyStateContainerSizeClass, emptyStateDescriptionSizeClass, emptyStateIconWrapperBaseClass, emptyStateIconWrapperSizeClass, emptyStateTitleSizeClass, formPageActionsBarClass, formPageBaseClass, formPageBodyClass, formPageSkeletonRowClass, inputBaseClass, inputSizeClass, inputVariantClass, pageHeaderActionsClass, pageHeaderBackClass, pageHeaderBackIconClass, pageHeaderBaseClass, pageHeaderBorderedClass, pageHeaderBreadcrumbsClass, pageHeaderDescriptionClass, pageHeaderTitleBlockClass, pageHeaderTitleClass, pageHeaderTitleRowClass, radioGroupBaseClass, radioGroupOrientationClass, radioIndicatorBaseClass, radioIndicatorDotClass, radioIndicatorSizeClass, radioItemBaseClass, radioItemSizeClass, radioLabelSizeClass, radioOptionRowClass, selectBaseClass, selectSizeClass, selectVariantClass, switchThumbBaseClass, switchThumbClass, switchTrackBaseClass, switchTrackClass, alignClass as tableAlignClass, tableBaseClass, selectedRowClass as tableSelectedRowClass, tableSizeClass, sortIconClass as tableSortIconClass, textareaBaseClass, textareaResizeClass, textareaSizeClass, textareaVariantClass, useDashboardLayout, useDirection };
|
|
17897
18097
|
//# sourceMappingURL=index.js.map
|
|
17898
18098
|
//# sourceMappingURL=index.js.map
|