@hoardodile/ui 0.1.6 → 0.1.8
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/chunk-2BVZEYNW.js +97 -0
- package/dist/chunk-2BVZEYNW.js.map +1 -0
- package/dist/chunk-2DTR6CD5.js +47 -0
- package/dist/chunk-2DTR6CD5.js.map +1 -0
- package/dist/chunk-2HWSCY4T.js +20 -0
- package/dist/chunk-2HWSCY4T.js.map +1 -0
- package/dist/chunk-363CCKQ7.js +75 -0
- package/dist/chunk-363CCKQ7.js.map +1 -0
- package/dist/chunk-3ZQJWBVB.js +30 -0
- package/dist/chunk-3ZQJWBVB.js.map +1 -0
- package/dist/chunk-4D36OO5W.js +277 -0
- package/dist/chunk-4D36OO5W.js.map +1 -0
- package/dist/chunk-4UITFLIN.js +31 -0
- package/dist/chunk-4UITFLIN.js.map +1 -0
- package/dist/chunk-6HAIUXNZ.js +11 -0
- package/dist/chunk-6HAIUXNZ.js.map +1 -0
- package/dist/chunk-7JMMFY67.js +62 -0
- package/dist/chunk-7JMMFY67.js.map +1 -0
- package/dist/chunk-7MWWHI6T.js +1149 -0
- package/dist/chunk-7MWWHI6T.js.map +1 -0
- package/dist/chunk-AEHTAUAQ.js +65 -0
- package/dist/chunk-AEHTAUAQ.js.map +1 -0
- package/dist/chunk-ASRGQ5BD.js +130 -0
- package/dist/chunk-ASRGQ5BD.js.map +1 -0
- package/dist/chunk-BFGOE5AI.js +187 -0
- package/dist/chunk-BFGOE5AI.js.map +1 -0
- package/dist/chunk-BRT25IDQ.js +46 -0
- package/dist/chunk-BRT25IDQ.js.map +1 -0
- package/dist/chunk-BU5DQOPM.js +29 -0
- package/dist/chunk-BU5DQOPM.js.map +1 -0
- package/dist/chunk-BWASOT5X.js +266 -0
- package/dist/chunk-BWASOT5X.js.map +1 -0
- package/dist/chunk-F32V4Z7Q.js +26 -0
- package/dist/chunk-F32V4Z7Q.js.map +1 -0
- package/dist/chunk-F7RHDRRJ.js +24 -0
- package/dist/chunk-F7RHDRRJ.js.map +1 -0
- package/dist/chunk-FH5RNCFR.js +21 -0
- package/dist/chunk-FH5RNCFR.js.map +1 -0
- package/dist/chunk-GKSX5ULZ.js +513 -0
- package/dist/chunk-GKSX5ULZ.js.map +1 -0
- package/dist/chunk-JPFDNRCA.js +26 -0
- package/dist/chunk-JPFDNRCA.js.map +1 -0
- package/dist/chunk-KNPRUZ4H.js +13 -0
- package/dist/chunk-KNPRUZ4H.js.map +1 -0
- package/dist/chunk-KOFWEPPB.js +254 -0
- package/dist/chunk-KOFWEPPB.js.map +1 -0
- package/dist/chunk-M5OJN54O.js +10 -0
- package/dist/chunk-M5OJN54O.js.map +1 -0
- package/dist/chunk-OEVALKQ5.js +51 -0
- package/dist/chunk-OEVALKQ5.js.map +1 -0
- package/dist/chunk-OW5FWLPH.js +33 -0
- package/dist/chunk-OW5FWLPH.js.map +1 -0
- package/dist/chunk-POX7TXBH.js +41 -0
- package/dist/chunk-POX7TXBH.js.map +1 -0
- package/dist/chunk-PWJBHUM2.js +58 -0
- package/dist/chunk-PWJBHUM2.js.map +1 -0
- package/dist/chunk-QGMDWGJT.js +23 -0
- package/dist/chunk-QGMDWGJT.js.map +1 -0
- package/dist/chunk-QGTQQNUL.js +36 -0
- package/dist/chunk-QGTQQNUL.js.map +1 -0
- package/dist/chunk-SAY52ZKI.js +152 -0
- package/dist/chunk-SAY52ZKI.js.map +1 -0
- package/dist/chunk-SKDPGSRL.js +166 -0
- package/dist/chunk-SKDPGSRL.js.map +1 -0
- package/dist/chunk-T56ARCUK.js +38 -0
- package/dist/chunk-T56ARCUK.js.map +1 -0
- package/dist/chunk-TDDHQZ62.js +227 -0
- package/dist/chunk-TDDHQZ62.js.map +1 -0
- package/dist/chunk-TMQ5OMBK.js +29 -0
- package/dist/chunk-TMQ5OMBK.js.map +1 -0
- package/dist/chunk-UEVND7AS.js +23 -0
- package/dist/chunk-UEVND7AS.js.map +1 -0
- package/dist/chunk-UPWHCG4S.js +40 -0
- package/dist/chunk-UPWHCG4S.js.map +1 -0
- package/dist/chunk-VWUNF7VX.js +3 -0
- package/dist/chunk-VWUNF7VX.js.map +1 -0
- package/dist/chunk-WI6O7GZK.js +45 -0
- package/dist/chunk-WI6O7GZK.js.map +1 -0
- package/dist/chunk-WVEK3WCX.js +21 -0
- package/dist/chunk-WVEK3WCX.js.map +1 -0
- package/dist/chunk-XBPQEZES.js +48 -0
- package/dist/chunk-XBPQEZES.js.map +1 -0
- package/dist/chunk-ZYAGKKR7.js +142 -0
- package/dist/chunk-ZYAGKKR7.js.map +1 -0
- package/dist/components/alert.js +2 -21
- package/dist/components/alert.js.map +1 -1
- package/dist/components/app-dialog.js +10 -654
- package/dist/components/app-dialog.js.map +1 -1
- package/dist/components/badge.js +2 -23
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumb.js +5 -501
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js +3 -76
- package/dist/components/button.js.map +1 -1
- package/dist/components/caption-bar.js +7 -518
- package/dist/components/caption-bar.js.map +1 -1
- package/dist/components/checkbox.js +4 -74
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/chip-button.js +4 -85
- package/dist/components/chip-button.js.map +1 -1
- package/dist/components/close-confirm-dialog.js +12 -662
- package/dist/components/close-confirm-dialog.js.map +1 -1
- package/dist/components/color-picker.js +7 -530
- package/dist/components/color-picker.js.map +1 -1
- package/dist/components/combobox.js +15 -934
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/confirm-by-typing-dialog.js +12 -669
- package/dist/components/confirm-by-typing-dialog.js.map +1 -1
- package/dist/components/confirm-dialog.js +11 -637
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/count-badge.js +2 -21
- package/dist/components/count-badge.js.map +1 -1
- package/dist/components/dialog.js +8 -569
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dropdown-menu.js +9 -1004
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/dropdown-select.js +9 -880
- package/dist/components/dropdown-select.js.map +1 -1
- package/dist/components/empty.js +2 -21
- package/dist/components/empty.js.map +1 -1
- package/dist/components/filter-rail.js +7 -145
- package/dist/components/filter-rail.js.map +1 -1
- package/dist/components/fixed-action-bar.js +2 -21
- package/dist/components/fixed-action-bar.js.map +1 -1
- package/dist/components/font-picker.js +11 -586
- package/dist/components/font-picker.js.map +1 -1
- package/dist/components/form.js +9 -66
- package/dist/components/form.js.map +1 -1
- package/dist/components/icon-tile.js +3 -43
- package/dist/components/icon-tile.js.map +1 -1
- package/dist/components/icon-toggle.js +3 -43
- package/dist/components/icon-toggle.js.map +1 -1
- package/dist/components/icon.js +3 -47
- package/dist/components/icon.js.map +1 -1
- package/dist/components/image-crop-panel.js +19 -772
- package/dist/components/image-crop-panel.js.map +1 -1
- package/dist/components/image-cropper.js +1 -164
- package/dist/components/image-cropper.js.map +1 -1
- package/dist/components/input-group.js +6 -268
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/input.js +3 -58
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.js +3 -38
- package/dist/components/label.js.map +1 -1
- package/dist/components/list-empty-row.js +2 -21
- package/dist/components/list-empty-row.js.map +1 -1
- package/dist/components/management-empty.js +2 -21
- package/dist/components/management-empty.js.map +1 -1
- package/dist/components/management-skeleton.js +4 -59
- package/dist/components/management-skeleton.js.map +1 -1
- package/dist/components/meta-chip.js +2 -21
- package/dist/components/meta-chip.js.map +1 -1
- package/dist/components/mobile-drawer.js +7 -268
- package/dist/components/mobile-drawer.js.map +1 -1
- package/dist/components/page-header.js +3 -42
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/page-scaffold.js +5 -76
- package/dist/components/page-scaffold.js.map +1 -1
- package/dist/components/pagination-bar.js +13 -614
- package/dist/components/pagination-bar.js.map +1 -1
- package/dist/components/pagination.js +6 -681
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/panel-toolbar.js +11 -713
- package/dist/components/panel-toolbar.js.map +1 -1
- package/dist/components/pill-tabs.js +2 -21
- package/dist/components/pill-tabs.js.map +1 -1
- package/dist/components/plugin-download-consent.js +13 -663
- package/dist/components/plugin-download-consent.js.map +1 -1
- package/dist/components/popover.js +5 -242
- package/dist/components/popover.js.map +1 -1
- package/dist/components/preview-card.js +2 -21
- package/dist/components/preview-card.js.map +1 -1
- package/dist/components/progress.js +2 -20
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.js +2 -21
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/scroll-area.js +2 -21
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/search-field.js +6 -587
- package/dist/components/search-field.js.map +1 -1
- package/dist/components/secondary-stat.js +3 -40
- package/dist/components/secondary-stat.js.map +1 -1
- package/dist/components/section-header.js +3 -43
- package/dist/components/section-header.js.map +1 -1
- package/dist/components/section-label.js +3 -44
- package/dist/components/section-label.js.map +1 -1
- package/dist/components/section-tabs.js +2 -21
- package/dist/components/section-tabs.js.map +1 -1
- package/dist/components/separator.js +3 -47
- package/dist/components/separator.js.map +1 -1
- package/dist/components/sheet.js +8 -467
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +24 -1044
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/skeleton.js +3 -39
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.js +2 -21
- package/dist/components/slider.js.map +1 -1
- package/dist/components/sortable-chip-list.js +2 -21
- package/dist/components/sortable-chip-list.js.map +1 -1
- package/dist/components/special-tag-surface.js +3 -531
- package/dist/components/special-tag-surface.js.map +1 -1
- package/dist/components/spinner.js +3 -63
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/surface.js +3 -49
- package/dist/components/surface.js.map +1 -1
- package/dist/components/switch.js +3 -51
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.js +2 -20
- package/dist/components/table.js.map +1 -1
- package/dist/components/tag-chip.js +6 -617
- package/dist/components/tag-chip.js.map +1 -1
- package/dist/components/textarea.js +3 -56
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/toast.js +8 -806
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle.js +2 -20
- package/dist/components/toggle.js.map +1 -1
- package/dist/components/tooltip.js +3 -80
- package/dist/components/tooltip.js.map +1 -1
- package/dist/hooks/use-dialog-footer-actions.js +1 -9
- package/dist/hooks/use-dialog-footer-actions.js.map +1 -1
- package/dist/hooks/use-form-field.js +1 -34
- package/dist/hooks/use-form-field.js.map +1 -1
- package/dist/hooks/use-mobile.js +2 -27
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/hooks/useMobileBackToClose.js +3 -232
- package/dist/hooks/useMobileBackToClose.js.map +1 -1
- package/dist/icons/actions.js +4 -521
- package/dist/icons/actions.js.map +1 -1
- package/dist/icons/icon-style.js +1 -49
- package/dist/icons/icon-style.js.map +1 -1
- package/dist/icons/marks.js +1 -46
- package/dist/icons/marks.js.map +1 -1
- package/dist/icons/registry.d.ts +2 -1
- package/dist/icons/registry.js +2 -1186
- package/dist/icons/registry.js.map +1 -1
- package/dist/index.js +10 -651
- package/dist/index.js.map +1 -1
- package/dist/lib/colors.js +1 -63
- package/dist/lib/colors.js.map +1 -1
- package/dist/lib/merge-config.js +1 -18
- package/dist/lib/merge-config.js.map +1 -1
- package/dist/lib/pagination.js +1 -24
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/tag-surface.js +5 -613
- package/dist/lib/tag-surface.js.map +1 -1
- package/dist/lib/utils.js +2 -24
- package/dist/lib/utils.js.map +1 -1
- package/dist/res-card-template/format.d.ts +21 -0
- package/dist/res-card-template/format.js +3 -0
- package/dist/res-card-template/format.js.map +1 -0
- package/dist/res-card-template/icon.d.ts +38 -0
- package/dist/res-card-template/icon.js +3 -0
- package/dist/res-card-template/icon.js.map +1 -0
- package/dist/res-card-template/index.d.ts +4 -0
- package/dist/res-card-template/index.js +5 -0
- package/dist/res-card-template/index.js.map +1 -0
- package/dist/res-card-template/template.d.ts +48 -0
- package/dist/res-card-template/template.js +5 -0
- package/dist/res-card-template/template.js.map +1 -0
- package/dist/viewport.js +1 -11
- package/dist/viewport.js.map +1 -1
- package/package.json +9 -2
- package/src/components/image-crop-panel.dist.test.tsx +54 -0
- package/src/icons/registry.ts +8 -0
- package/src/res-card-template/format.test.ts +45 -0
- package/src/res-card-template/format.ts +36 -0
- package/src/res-card-template/icon.test.ts +100 -0
- package/src/res-card-template/icon.ts +86 -0
- package/src/res-card-template/index.ts +22 -0
- package/src/res-card-template/template.test.ts +457 -0
- package/src/res-card-template/template.ts +429 -0
package/dist/index.js
CHANGED
|
@@ -1,653 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
import '
|
|
11
|
-
|
|
12
|
-
// src/components/dialog.tsx
|
|
13
|
-
var mergeTheme = {
|
|
14
|
-
text: ["tiny", "ui", "doc", "doc-title", "doc-heading", "quote"],
|
|
15
|
-
spacing: ["chip", "control", "nav", "sidebar", "panel"],
|
|
16
|
-
tracking: ["label"],
|
|
17
|
-
shadow: ["card", "dialog"],
|
|
18
|
-
container: ["reading", "medium", "content"],
|
|
19
|
-
font: ["doc", "heading"],
|
|
20
|
-
ease: ["standard"],
|
|
21
|
-
animate: ["skel", "pop"]
|
|
22
|
-
};
|
|
23
|
-
var twMerge = extendTailwindMerge({
|
|
24
|
-
extend: { theme: mergeTheme }
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
// src/lib/utils.ts
|
|
28
|
-
function cn(...inputs) {
|
|
29
|
-
return twMerge(clsx(inputs));
|
|
30
|
-
}
|
|
31
|
-
var buttonVariants = cva(
|
|
32
|
-
"group/button inline-flex shrink-0 items-center justify-center rounded-lg text-ui font-medium whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
33
|
-
{
|
|
34
|
-
variants: {
|
|
35
|
-
variant: {
|
|
36
|
-
default: "bg-primary px-4! text-primary-foreground hover:bg-primary/80",
|
|
37
|
-
outline: "border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
38
|
-
secondary: "bg-secondary text-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-foreground",
|
|
39
|
-
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
40
|
-
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
41
|
-
danger: "bg-[color-mix(in_oklab,var(--destructive),black_12%)] text-white hover:bg-[color-mix(in_oklab,var(--destructive),black_4%)] focus-visible:border-destructive/40 focus-visible:ring-destructive/20 disabled:bg-destructive/10 disabled:text-muted-foreground dark:focus-visible:ring-destructive/40",
|
|
42
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
43
|
-
},
|
|
44
|
-
size: {
|
|
45
|
-
default: "h-control gap-2 px-3 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
46
|
-
xs: "h-6 gap-2 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
47
|
-
sm: "h-chip gap-2 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
|
|
48
|
-
lg: "h-10 gap-2 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
49
|
-
icon: "size-9",
|
|
50
|
-
"icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
|
|
51
|
-
"icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
|
|
52
|
-
"icon-lg": "size-10"
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
defaultVariants: {
|
|
56
|
-
variant: "default",
|
|
57
|
-
size: "default"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
);
|
|
61
|
-
function Button({
|
|
62
|
-
active,
|
|
63
|
-
className,
|
|
64
|
-
variant = "default",
|
|
65
|
-
size = "default",
|
|
66
|
-
...props
|
|
67
|
-
}) {
|
|
68
|
-
return /* @__PURE__ */ jsx(
|
|
69
|
-
Button$1,
|
|
70
|
-
{
|
|
71
|
-
"data-slot": "button",
|
|
72
|
-
className: cn(
|
|
73
|
-
buttonVariants({ variant, size, className }),
|
|
74
|
-
active && "bg-accent text-accent-foreground hover:bg-accent"
|
|
75
|
-
),
|
|
76
|
-
...props
|
|
77
|
-
}
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// src/viewport.ts
|
|
82
|
-
var MOBILE_BREAKPOINT_PX = 768;
|
|
83
|
-
var MOBILE_QUERY = `(max-width: ${MOBILE_BREAKPOINT_PX - 1}px)`;
|
|
84
|
-
function isBelowMd() {
|
|
85
|
-
if (typeof window === "undefined") return false;
|
|
86
|
-
return window.matchMedia(MOBILE_QUERY).matches;
|
|
87
|
-
}
|
|
88
|
-
var HISTORY_KEY = "__appMobileOverlay";
|
|
89
|
-
var overlayStack = [];
|
|
90
|
-
var popListenerInstalled = false;
|
|
91
|
-
var historyPatched = false;
|
|
92
|
-
var nextOverlayId = 0;
|
|
93
|
-
var suppressPopCount = 0;
|
|
94
|
-
var seenSyntheticIds = /* @__PURE__ */ new Set();
|
|
95
|
-
var navigationResolver;
|
|
96
|
-
function setNavigationResolver(resolver) {
|
|
97
|
-
navigationResolver = resolver;
|
|
98
|
-
}
|
|
99
|
-
function patchHistory() {
|
|
100
|
-
if (historyPatched) return;
|
|
101
|
-
if (typeof window === "undefined") return;
|
|
102
|
-
historyPatched = true;
|
|
103
|
-
const origPush = window.history.pushState.bind(window.history);
|
|
104
|
-
window.history.pushState = (data, unused, url) => {
|
|
105
|
-
const state = data;
|
|
106
|
-
if (state !== null && typeof state === "object" && HISTORY_KEY in state) {
|
|
107
|
-
origPush(data, unused, url);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
if (overlayStack.length > 0) {
|
|
111
|
-
closeAllOverlays();
|
|
112
|
-
}
|
|
113
|
-
origPush(data, unused, url);
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
function closeAllOverlays() {
|
|
117
|
-
while (overlayStack.length > 0) {
|
|
118
|
-
const entry = overlayStack.pop();
|
|
119
|
-
if (entry?.close !== void 0) {
|
|
120
|
-
const fn = entry.close;
|
|
121
|
-
entry.close = void 0;
|
|
122
|
-
fn();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
function ensurePopListener() {
|
|
127
|
-
if (popListenerInstalled) return;
|
|
128
|
-
if (typeof window === "undefined") return;
|
|
129
|
-
popListenerInstalled = true;
|
|
130
|
-
window.addEventListener(
|
|
131
|
-
"popstate",
|
|
132
|
-
(e) => {
|
|
133
|
-
if (suppressPopCount > 0) return;
|
|
134
|
-
const state = e.state;
|
|
135
|
-
if (state !== null && typeof state === "object" && HISTORY_KEY in state) {
|
|
136
|
-
const id = state[HISTORY_KEY];
|
|
137
|
-
if (typeof id === "number" && overlayStack.some((entry) => entry.id === id)) {
|
|
138
|
-
closeTopOverlay();
|
|
139
|
-
e.stopImmediatePropagation();
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
e.stopImmediatePropagation();
|
|
143
|
-
if (typeof id === "number" && seenSyntheticIds.has(id)) {
|
|
144
|
-
window.history.back();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
true
|
|
149
|
-
// capture phase
|
|
150
|
-
);
|
|
151
|
-
window.addEventListener("popstate", handlePop);
|
|
152
|
-
patchHistory();
|
|
153
|
-
}
|
|
154
|
-
function closeTopOverlay() {
|
|
155
|
-
const top = overlayStack.pop();
|
|
156
|
-
if (top === void 0) return;
|
|
157
|
-
if (top.close === void 0) return;
|
|
158
|
-
const closeFn = top.close;
|
|
159
|
-
top.close = void 0;
|
|
160
|
-
closeFn();
|
|
161
|
-
}
|
|
162
|
-
function handlePop() {
|
|
163
|
-
if (suppressPopCount > 0) {
|
|
164
|
-
suppressPopCount--;
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
closeTopOverlay();
|
|
168
|
-
}
|
|
169
|
-
function removeFromStack(id) {
|
|
170
|
-
const idx = overlayStack.findIndex((e) => e.id === id);
|
|
171
|
-
if (idx === -1) return { removed: false, parkedBelow: 0 };
|
|
172
|
-
const wasTop = idx === overlayStack.length - 1;
|
|
173
|
-
if (!wasTop) {
|
|
174
|
-
const entry = overlayStack[idx];
|
|
175
|
-
if (entry !== void 0) entry.close = void 0;
|
|
176
|
-
return { removed: true, parkedBelow: 0 };
|
|
177
|
-
}
|
|
178
|
-
overlayStack.pop();
|
|
179
|
-
const remaining = overlayStack.splice(0, overlayStack.length);
|
|
180
|
-
const active = remaining.filter((e) => e.close !== void 0);
|
|
181
|
-
const parkedBelow = remaining.length - active.length;
|
|
182
|
-
overlayStack.push(...active);
|
|
183
|
-
return { removed: true, parkedBelow };
|
|
184
|
-
}
|
|
185
|
-
function scheduleStateRestore(id, baseState, parkedBelow) {
|
|
186
|
-
function check() {
|
|
187
|
-
const currentState = window.history.state;
|
|
188
|
-
if (currentState === null || typeof currentState !== "object" || !(HISTORY_KEY in currentState) || currentState[HISTORY_KEY] !== id) {
|
|
189
|
-
sweepParkedEntries();
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
const totalBacks = 1 + parkedBelow;
|
|
193
|
-
let done = false;
|
|
194
|
-
function restore() {
|
|
195
|
-
if (done) return;
|
|
196
|
-
done = true;
|
|
197
|
-
window.removeEventListener("popstate", onPop);
|
|
198
|
-
window.history.replaceState(baseState, "");
|
|
199
|
-
const sweptIds = sweepParkedEntries();
|
|
200
|
-
cleanupSeenIds(sweptIds);
|
|
201
|
-
}
|
|
202
|
-
function onPop() {
|
|
203
|
-
if (suppressPopCount > 0) {
|
|
204
|
-
suppressPopCount--;
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
restore();
|
|
208
|
-
}
|
|
209
|
-
window.addEventListener("popstate", onPop);
|
|
210
|
-
suppressPopCount += totalBacks;
|
|
211
|
-
for (let i = 0; i < totalBacks; i++) {
|
|
212
|
-
window.history.back();
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
let disposed = false;
|
|
216
|
-
let rafId;
|
|
217
|
-
let unsub;
|
|
218
|
-
function run() {
|
|
219
|
-
if (disposed) return;
|
|
220
|
-
disposed = true;
|
|
221
|
-
unsub?.();
|
|
222
|
-
if (rafId !== void 0) {
|
|
223
|
-
cancelAnimationFrame(rafId);
|
|
224
|
-
}
|
|
225
|
-
check();
|
|
226
|
-
}
|
|
227
|
-
if (navigationResolver !== void 0) {
|
|
228
|
-
unsub = navigationResolver(run);
|
|
229
|
-
}
|
|
230
|
-
rafId = requestAnimationFrame(run);
|
|
231
|
-
}
|
|
232
|
-
function sweepParkedEntries() {
|
|
233
|
-
const sweptIds = [];
|
|
234
|
-
for (let i = overlayStack.length - 1; i >= 0; i--) {
|
|
235
|
-
const entry = overlayStack[i];
|
|
236
|
-
if (entry !== void 0 && entry.close === void 0) {
|
|
237
|
-
sweptIds.push(entry.id);
|
|
238
|
-
overlayStack.splice(i, 1);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
return sweptIds;
|
|
242
|
-
}
|
|
243
|
-
function cleanupSeenIds(sweptIds) {
|
|
244
|
-
const activeIds = new Set(overlayStack.map((e) => e.id));
|
|
245
|
-
for (const id of sweptIds) {
|
|
246
|
-
if (!activeIds.has(id)) {
|
|
247
|
-
seenSyntheticIds.delete(id);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
function useMobileBackToClose(open, onOpenChange) {
|
|
252
|
-
const idRef = useRef(void 0);
|
|
253
|
-
const onChangeRef = useRef(onOpenChange);
|
|
254
|
-
onChangeRef.current = onOpenChange;
|
|
255
|
-
useEffect(() => {
|
|
256
|
-
if (typeof window === "undefined") return;
|
|
257
|
-
if (onChangeRef.current === void 0) return;
|
|
258
|
-
if (!isBelowMd()) return;
|
|
259
|
-
ensurePopListener();
|
|
260
|
-
if (open === true && idRef.current === void 0) {
|
|
261
|
-
const id = ++nextOverlayId;
|
|
262
|
-
idRef.current = id;
|
|
263
|
-
seenSyntheticIds.add(id);
|
|
264
|
-
const baseState = window.history.state ?? null;
|
|
265
|
-
window.history.pushState(
|
|
266
|
-
{
|
|
267
|
-
...baseState ?? {},
|
|
268
|
-
[HISTORY_KEY]: id
|
|
269
|
-
},
|
|
270
|
-
""
|
|
271
|
-
);
|
|
272
|
-
overlayStack.push({
|
|
273
|
-
id,
|
|
274
|
-
baseState,
|
|
275
|
-
close() {
|
|
276
|
-
idRef.current = void 0;
|
|
277
|
-
onChangeRef.current?.(false);
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
if (open !== true && idRef.current !== void 0) {
|
|
283
|
-
const id = idRef.current;
|
|
284
|
-
idRef.current = void 0;
|
|
285
|
-
const entryIdx = overlayStack.findIndex((e) => e.id === id);
|
|
286
|
-
const entry = entryIdx !== -1 ? overlayStack[entryIdx] : void 0;
|
|
287
|
-
const { removed, parkedBelow } = removeFromStack(id);
|
|
288
|
-
if (removed && entry !== void 0) {
|
|
289
|
-
scheduleStateRestore(id, entry.baseState, parkedBelow);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}, [open]);
|
|
293
|
-
useEffect(() => {
|
|
294
|
-
return () => {
|
|
295
|
-
if (idRef.current !== void 0) {
|
|
296
|
-
const id = idRef.current;
|
|
297
|
-
idRef.current = void 0;
|
|
298
|
-
const entryIdx = overlayStack.findIndex((e) => e.id === id);
|
|
299
|
-
const entry = entryIdx !== -1 ? overlayStack[entryIdx] : void 0;
|
|
300
|
-
const { removed, parkedBelow } = removeFromStack(id);
|
|
301
|
-
if (removed && entry !== void 0) {
|
|
302
|
-
scheduleStateRestore(id, entry.baseState, parkedBelow);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
}, []);
|
|
307
|
-
}
|
|
308
|
-
function Mark({
|
|
309
|
-
d,
|
|
310
|
-
filled,
|
|
311
|
-
className
|
|
312
|
-
}) {
|
|
313
|
-
return /* @__PURE__ */ jsx(
|
|
314
|
-
"svg",
|
|
315
|
-
{
|
|
316
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
317
|
-
viewBox: "0 0 24 24",
|
|
318
|
-
fill: "none",
|
|
319
|
-
className,
|
|
320
|
-
children: filled ? /* @__PURE__ */ jsx("path", { d, fill: "currentColor" }) : /* @__PURE__ */ jsx(
|
|
321
|
-
"path",
|
|
322
|
-
{
|
|
323
|
-
d,
|
|
324
|
-
stroke: "currentColor",
|
|
325
|
-
strokeWidth: "2",
|
|
326
|
-
strokeLinecap: "round",
|
|
327
|
-
strokeLinejoin: "round"
|
|
328
|
-
}
|
|
329
|
-
)
|
|
330
|
-
}
|
|
331
|
-
);
|
|
332
|
-
}
|
|
333
|
-
function Cross(props) {
|
|
334
|
-
return /* @__PURE__ */ jsx(Mark, { ...props, d: "M6 6l12 12M18 6L6 18" });
|
|
335
|
-
}
|
|
336
|
-
function Dialog({
|
|
337
|
-
open,
|
|
338
|
-
defaultOpen,
|
|
339
|
-
onOpenChange,
|
|
340
|
-
...props
|
|
341
|
-
}) {
|
|
342
|
-
const [uncontrolledOpen, setUncontrolledOpen] = React.useState(
|
|
343
|
-
defaultOpen ?? false
|
|
344
|
-
);
|
|
345
|
-
const isControlled = open !== void 0;
|
|
346
|
-
const currentOpen = isControlled ? open : uncontrolledOpen;
|
|
347
|
-
function handleOpenChange(next, eventDetails) {
|
|
348
|
-
if (!isControlled) setUncontrolledOpen(next);
|
|
349
|
-
onOpenChange?.(next, eventDetails);
|
|
350
|
-
}
|
|
351
|
-
useMobileBackToClose(currentOpen, handleOpenChange);
|
|
352
|
-
return /* @__PURE__ */ jsx(
|
|
353
|
-
Dialog$1.Root,
|
|
354
|
-
{
|
|
355
|
-
"data-slot": "dialog",
|
|
356
|
-
open: currentOpen,
|
|
357
|
-
onOpenChange: handleOpenChange,
|
|
358
|
-
...props
|
|
359
|
-
}
|
|
360
|
-
);
|
|
361
|
-
}
|
|
362
|
-
function DialogPortal({ ...props }) {
|
|
363
|
-
return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
|
|
364
|
-
}
|
|
365
|
-
function DialogOverlay({
|
|
366
|
-
className,
|
|
367
|
-
...props
|
|
368
|
-
}) {
|
|
369
|
-
return /* @__PURE__ */ jsx(
|
|
370
|
-
Dialog$1.Backdrop,
|
|
371
|
-
{
|
|
372
|
-
"data-slot": "dialog-overlay",
|
|
373
|
-
className: cn(
|
|
374
|
-
// The dialog layer: a static whisper-of-ink scrim plus
|
|
375
|
-
// backdrop blur — part of the surface definition, not motion.
|
|
376
|
-
"fixed inset-0 isolate z-50 bg-foreground/5 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-sm",
|
|
377
|
-
className
|
|
378
|
-
),
|
|
379
|
-
...props
|
|
380
|
-
}
|
|
381
|
-
);
|
|
382
|
-
}
|
|
383
|
-
function DialogContent({
|
|
384
|
-
className,
|
|
385
|
-
children,
|
|
386
|
-
showCloseButton = true,
|
|
387
|
-
overlayClassName,
|
|
388
|
-
contentMotion = "default",
|
|
389
|
-
...props
|
|
390
|
-
}) {
|
|
391
|
-
const { t } = useTranslation("ui", { useSuspense: false });
|
|
392
|
-
const arranged = arrangeDialogChildren(children);
|
|
393
|
-
const motionClasses = contentMotion === "minimal" ? "data-ending-style:opacity-0 data-starting-style:opacity-0" : cn(
|
|
394
|
-
"data-ending-style:translate-y-10 data-ending-style:opacity-0 data-starting-style:translate-y-10 data-starting-style:opacity-0",
|
|
395
|
-
// ≥ sm the popup is centred with -translate-y-1/2, so the
|
|
396
|
-
// starting/ending styles must keep that offset (zoom + fade
|
|
397
|
-
// only, no slide) instead of clobbering it with translate-y-0.
|
|
398
|
-
"sm:data-ending-style:-translate-y-1/2 sm:data-ending-style:scale-95 sm:data-starting-style:-translate-y-1/2 sm:data-starting-style:scale-95"
|
|
399
|
-
);
|
|
400
|
-
return /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
401
|
-
/* @__PURE__ */ jsx(DialogOverlay, { className: overlayClassName }),
|
|
402
|
-
/* @__PURE__ */ jsxs(
|
|
403
|
-
Dialog$1.Popup,
|
|
404
|
-
{
|
|
405
|
-
"data-slot": "dialog-content",
|
|
406
|
-
className: cn(
|
|
407
|
-
// The floating-card anatomy: `bg-card`
|
|
408
|
-
// hairline-bordered surface with the system's one deep shadow.
|
|
409
|
-
// Mobile: bottom sheet occupying most of the viewport so edit
|
|
410
|
-
// forms have room to breathe. The component never scrolls
|
|
411
|
-
// itself; only the inner DialogBody does. Header/body/footer
|
|
412
|
-
// parts are held apart by the card's section gap
|
|
413
|
-
// (`gap-4` between the header document, the body and the
|
|
414
|
-
// hairline footer).
|
|
415
|
-
"fixed z-50 flex flex-col gap-4 bg-card text-sm text-card-foreground shadow-dialog outline-hidden transition duration-200 ease-in-out",
|
|
416
|
-
"inset-x-0 bottom-0 max-h-[85svh] overflow-hidden rounded-t-2xl rounded-b-none border border-b-0 border-border",
|
|
417
|
-
motionClasses,
|
|
418
|
-
// ≥ sm: centred modal, allow up to 90vh.
|
|
419
|
-
"sm:inset-x-auto sm:bottom-auto sm:top-1/2 sm:left-1/2 sm:w-full sm:max-w-md sm:max-h-[90vh] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-2xl",
|
|
420
|
-
className
|
|
421
|
-
),
|
|
422
|
-
...props,
|
|
423
|
-
children: [
|
|
424
|
-
arranged,
|
|
425
|
-
showCloseButton && /* @__PURE__ */ jsxs(
|
|
426
|
-
Dialog$1.Close,
|
|
427
|
-
{
|
|
428
|
-
"data-slot": "dialog-close",
|
|
429
|
-
className: "absolute top-3 right-3 z-20 flex size-6 items-center justify-center rounded-md text-muted-foreground transition-colors duration-150 hover:bg-muted hover:text-foreground",
|
|
430
|
-
children: [
|
|
431
|
-
/* @__PURE__ */ jsx(Cross, { className: "size-3" }),
|
|
432
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: t("aria.close") })
|
|
433
|
-
]
|
|
434
|
-
}
|
|
435
|
-
)
|
|
436
|
-
]
|
|
437
|
-
}
|
|
438
|
-
)
|
|
439
|
-
] });
|
|
440
|
-
}
|
|
441
|
-
function DialogHeader({ className, ...props }) {
|
|
442
|
-
return /* @__PURE__ */ jsx(
|
|
443
|
-
"div",
|
|
444
|
-
{
|
|
445
|
-
"data-slot": "dialog-header",
|
|
446
|
-
className: cn(
|
|
447
|
-
// The header document: the card's `p-5`
|
|
448
|
-
// rhythm — 20px top and sides, no bottom padding — with the
|
|
449
|
-
// eyebrow, title row and description stacked tight; the section
|
|
450
|
-
// gap below separates it from the body.
|
|
451
|
-
"flex shrink-0 flex-col bg-card px-5 pt-5",
|
|
452
|
-
className
|
|
453
|
-
),
|
|
454
|
-
...props
|
|
455
|
-
}
|
|
456
|
-
);
|
|
457
|
-
}
|
|
458
|
-
function DialogBody({ className, ...props }) {
|
|
459
|
-
return /* @__PURE__ */ jsx(
|
|
460
|
-
"div",
|
|
461
|
-
{
|
|
462
|
-
"data-slot": "dialog-body",
|
|
463
|
-
className: cn(
|
|
464
|
-
"flex-1 overflow-y-auto overscroll-contain px-5",
|
|
465
|
-
className
|
|
466
|
-
),
|
|
467
|
-
...props
|
|
468
|
-
}
|
|
469
|
-
);
|
|
470
|
-
}
|
|
471
|
-
function DialogFooter({
|
|
472
|
-
className,
|
|
473
|
-
flush = false,
|
|
474
|
-
showCloseButton = false,
|
|
475
|
-
children,
|
|
476
|
-
...props
|
|
477
|
-
}) {
|
|
478
|
-
return /* @__PURE__ */ jsxs(
|
|
479
|
-
"div",
|
|
480
|
-
{
|
|
481
|
-
"data-slot": "dialog-footer",
|
|
482
|
-
className: cn("flex shrink-0 flex-col bg-card", className),
|
|
483
|
-
...props,
|
|
484
|
-
children: [
|
|
485
|
-
/* @__PURE__ */ jsx(
|
|
486
|
-
"div",
|
|
487
|
-
{
|
|
488
|
-
className: cn(
|
|
489
|
-
"border-t border-border",
|
|
490
|
-
flush ? "mx-4" : "mx-5"
|
|
491
|
-
)
|
|
492
|
-
}
|
|
493
|
-
),
|
|
494
|
-
/* @__PURE__ */ jsxs(
|
|
495
|
-
"div",
|
|
496
|
-
{
|
|
497
|
-
className: cn(
|
|
498
|
-
// The hairline action bar: 16px above the
|
|
499
|
-
// buttons, the card's bottom padding (20px) below.
|
|
500
|
-
"flex flex-row justify-end flex-wrap gap-2",
|
|
501
|
-
flush ? "p-4" : "px-5 pt-4 pb-5"
|
|
502
|
-
),
|
|
503
|
-
children: [
|
|
504
|
-
children,
|
|
505
|
-
showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button, { variant: "outline" }), children: "Close" })
|
|
506
|
-
]
|
|
507
|
-
}
|
|
508
|
-
)
|
|
509
|
-
]
|
|
510
|
-
}
|
|
511
|
-
);
|
|
512
|
-
}
|
|
513
|
-
function DialogTitle({ className, ...props }) {
|
|
514
|
-
return /* @__PURE__ */ jsx(
|
|
515
|
-
Dialog$1.Title,
|
|
516
|
-
{
|
|
517
|
-
"data-slot": "dialog-title",
|
|
518
|
-
className: cn("text-sm font-semibold", className),
|
|
519
|
-
...props
|
|
520
|
-
}
|
|
521
|
-
);
|
|
522
|
-
}
|
|
523
|
-
function DialogDescription({
|
|
524
|
-
className,
|
|
525
|
-
...props
|
|
526
|
-
}) {
|
|
527
|
-
return /* @__PURE__ */ jsx(
|
|
528
|
-
Dialog$1.Description,
|
|
529
|
-
{
|
|
530
|
-
"data-slot": "dialog-description",
|
|
531
|
-
className: cn(
|
|
532
|
-
"text-xs leading-5 text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
|
|
533
|
-
className
|
|
534
|
-
),
|
|
535
|
-
...props
|
|
536
|
-
}
|
|
537
|
-
);
|
|
538
|
-
}
|
|
539
|
-
function arrangeDialogChildren(children) {
|
|
540
|
-
const headers = [];
|
|
541
|
-
const footers = [];
|
|
542
|
-
const bodyNodes = [];
|
|
543
|
-
let hasExplicitBody = false;
|
|
544
|
-
React.Children.forEach(children, (child) => {
|
|
545
|
-
if (!React.isValidElement(child)) {
|
|
546
|
-
bodyNodes.push(child);
|
|
547
|
-
return;
|
|
548
|
-
}
|
|
549
|
-
if (child.type === DialogHeader) {
|
|
550
|
-
headers.push(child);
|
|
551
|
-
return;
|
|
552
|
-
}
|
|
553
|
-
if (child.type === DialogFooter) {
|
|
554
|
-
footers.push(child);
|
|
555
|
-
return;
|
|
556
|
-
}
|
|
557
|
-
if (child.type === DialogBody) {
|
|
558
|
-
hasExplicitBody = true;
|
|
559
|
-
bodyNodes.push(child);
|
|
560
|
-
return;
|
|
561
|
-
}
|
|
562
|
-
bodyNodes.push(child);
|
|
563
|
-
});
|
|
564
|
-
const body = hasExplicitBody ? bodyNodes : /* @__PURE__ */ jsx(DialogBody, { children: bodyNodes });
|
|
565
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
566
|
-
headers,
|
|
567
|
-
body,
|
|
568
|
-
footers
|
|
569
|
-
] });
|
|
570
|
-
}
|
|
571
|
-
var DialogFooterActionsContext = createContext(null);
|
|
572
|
-
var sizeClasses = {
|
|
573
|
-
sm: "sm:max-w-sm",
|
|
574
|
-
md: "sm:max-w-md",
|
|
575
|
-
lg: "sm:max-w-2xl",
|
|
576
|
-
xl: "sm:max-w-3xl",
|
|
577
|
-
"2xl": "sm:max-w-4xl"
|
|
578
|
-
};
|
|
579
|
-
function AppDialog(props) {
|
|
580
|
-
const {
|
|
581
|
-
open,
|
|
582
|
-
onOpenChange,
|
|
583
|
-
title,
|
|
584
|
-
eyebrow,
|
|
585
|
-
icon,
|
|
586
|
-
danger,
|
|
587
|
-
size,
|
|
588
|
-
flush,
|
|
589
|
-
description,
|
|
590
|
-
children,
|
|
591
|
-
footer,
|
|
592
|
-
contentClassName,
|
|
593
|
-
overlayClassName,
|
|
594
|
-
contentMotion,
|
|
595
|
-
suppressAutoFocus = true,
|
|
596
|
-
contentTestId
|
|
597
|
-
} = props;
|
|
598
|
-
const contentRef = useRef(null);
|
|
599
|
-
const [footerActions, setFooterActions] = useState(null);
|
|
600
|
-
const actionsValue = useMemo(
|
|
601
|
-
() => ({ setFooterActions }),
|
|
602
|
-
[setFooterActions]
|
|
603
|
-
);
|
|
604
|
-
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(
|
|
605
|
-
DialogContent,
|
|
606
|
-
{
|
|
607
|
-
ref: contentRef,
|
|
608
|
-
className: cn(
|
|
609
|
-
size !== void 0 && sizeClasses[size],
|
|
610
|
-
flush && "p-0",
|
|
611
|
-
contentClassName
|
|
612
|
-
),
|
|
613
|
-
overlayClassName,
|
|
614
|
-
contentMotion,
|
|
615
|
-
initialFocus: suppressAutoFocus ? contentRef : void 0,
|
|
616
|
-
"data-testid": contentTestId,
|
|
617
|
-
children: [
|
|
618
|
-
/* @__PURE__ */ jsxs(DialogHeader, { className: flush ? "gap-4" : void 0, children: [
|
|
619
|
-
eyebrow !== void 0 ? /* @__PURE__ */ jsx(
|
|
620
|
-
"span",
|
|
621
|
-
{
|
|
622
|
-
className: cn(
|
|
623
|
-
"text-tiny font-semibold tracking-label uppercase",
|
|
624
|
-
danger ? "text-destructive" : "text-muted-foreground"
|
|
625
|
-
),
|
|
626
|
-
children: eyebrow
|
|
627
|
-
}
|
|
628
|
-
) : null,
|
|
629
|
-
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-3 pr-6", children: [
|
|
630
|
-
icon,
|
|
631
|
-
/* @__PURE__ */ jsx(
|
|
632
|
-
DialogTitle,
|
|
633
|
-
{
|
|
634
|
-
className: cn("truncate", danger && "text-destructive"),
|
|
635
|
-
children: title
|
|
636
|
-
}
|
|
637
|
-
)
|
|
638
|
-
] }),
|
|
639
|
-
description !== void 0 ? /* @__PURE__ */ jsx(DialogDescription, { children: description }) : null
|
|
640
|
-
] }),
|
|
641
|
-
/* @__PURE__ */ jsx(DialogBody, { className: flush ? "p-0" : void 0, children: /* @__PURE__ */ jsx(DialogFooterActionsContext.Provider, { value: actionsValue, children }) }),
|
|
642
|
-
footer !== void 0 && footer !== null || footerActions !== null ? /* @__PURE__ */ jsxs(DialogFooter, { flush, children: [
|
|
643
|
-
footer,
|
|
644
|
-
footerActions
|
|
645
|
-
] }) : null
|
|
646
|
-
]
|
|
647
|
-
}
|
|
648
|
-
) });
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
export { AppDialog, cn, setNavigationResolver, useMobileBackToClose };
|
|
1
|
+
export { AppDialog } from './chunk-2BVZEYNW.js';
|
|
2
|
+
import './chunk-6HAIUXNZ.js';
|
|
3
|
+
import './chunk-KOFWEPPB.js';
|
|
4
|
+
export { setNavigationResolver, useMobileBackToClose } from './chunk-TDDHQZ62.js';
|
|
5
|
+
import './chunk-QGMDWGJT.js';
|
|
6
|
+
import './chunk-XBPQEZES.js';
|
|
7
|
+
import './chunk-KNPRUZ4H.js';
|
|
8
|
+
import './chunk-PWJBHUM2.js';
|
|
9
|
+
export { cn } from './chunk-M5OJN54O.js';
|
|
10
|
+
import './chunk-2HWSCY4T.js';
|
|
652
11
|
//# sourceMappingURL=index.js.map
|
|
653
12
|
//# sourceMappingURL=index.js.map
|