raft-ui 0.0.10 → 0.0.11
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.d.mts +436 -3
- package/dist/index.mjs +1122 -4
- package/dist/tv-UUMwNowu.d.mts +16 -0
- package/dist/use-theme-Y_h1DKll.mjs +34 -0
- package/dist/wip.d.mts +3 -186
- package/dist/wip.mjs +5 -440
- package/package.json +1 -1
- package/dist/button-jUlaK4eN.mjs +0 -722
- package/dist/index-lPUAF7fl.d.mts +0 -267
package/dist/wip.mjs
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { cn } from "./cn.mjs";
|
|
2
|
-
import { a as
|
|
3
|
-
import {
|
|
4
|
-
import { MessageSquare, X } from "lucide-react";
|
|
5
|
-
import { Children, Fragment, cloneElement, isValidElement, useCallback, useRef, useState } from "react";
|
|
2
|
+
import { a as tv, n as useThemeFamily } from "./use-theme-Y_h1DKll.mjs";
|
|
3
|
+
import { MessageSquare } from "lucide-react";
|
|
6
4
|
import { Button } from "@base-ui/react/button";
|
|
7
5
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
8
6
|
import { useRender } from "@base-ui/react/use-render";
|
|
9
|
-
import { Fragment
|
|
7
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
8
|
import { Toggle } from "@base-ui/react/toggle";
|
|
11
9
|
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
12
|
-
import { useHotkey } from "@tanstack/react-hotkeys";
|
|
13
|
-
import { Drawer } from "vaul";
|
|
14
10
|
//#region src/components/toggle-group/toggle-group.tsx
|
|
15
11
|
const toggleGroup = tv({
|
|
16
12
|
slots: {
|
|
@@ -639,7 +635,7 @@ function QuotedMessageCardThread({ className, render, children = "Thread", ...pr
|
|
|
639
635
|
render,
|
|
640
636
|
props: mergeProps({
|
|
641
637
|
className: thread({ className }),
|
|
642
|
-
children: /* @__PURE__ */ jsxs(Fragment
|
|
638
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(MessageSquare, {}), children] })
|
|
643
639
|
}, props),
|
|
644
640
|
state: { slot: "quoted-message-card-thread" }
|
|
645
641
|
});
|
|
@@ -1003,435 +999,4 @@ function DescriptionAction({ className, render, ...props }) {
|
|
|
1003
999
|
});
|
|
1004
1000
|
}
|
|
1005
1001
|
//#endregion
|
|
1006
|
-
|
|
1007
|
-
const lightbox = tv({
|
|
1008
|
-
slots: {
|
|
1009
|
-
backdrop: ["fixed inset-0 z-[70] bg-layer-backdrop data-[closed]:hidden"],
|
|
1010
|
-
content: ["pointer-events-none fixed inset-0 z-[71] data-[closed]:hidden"],
|
|
1011
|
-
header: ["safe-top safe-left safe-right pointer-events-auto shrink-0"],
|
|
1012
|
-
title: ["min-w-0 flex-1 truncate font-heading text-sm font-bold"],
|
|
1013
|
-
actions: ["flex shrink-0 items-center gap-1.5"],
|
|
1014
|
-
stage: ["pointer-events-none relative flex min-h-0 flex-1 items-center justify-center overflow-hidden"],
|
|
1015
|
-
media: ["pointer-events-auto max-h-[80vh] max-w-[86vw] border-2"],
|
|
1016
|
-
navigationButton: [
|
|
1017
|
-
"pointer-events-auto absolute z-10 inline-flex items-center justify-center",
|
|
1018
|
-
"border-2 border-line-strong bg-layer-panel text-foreground-strong shadow-sm",
|
|
1019
|
-
"transition-[background-color,color,opacity,box-shadow,transform] duration-150",
|
|
1020
|
-
"outline outline-[1px] outline-offset-2 outline-transparent",
|
|
1021
|
-
"focus-visible:outline-foreground-strong",
|
|
1022
|
-
"data-[disabled=true]:cursor-default",
|
|
1023
|
-
"[&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0"
|
|
1024
|
-
],
|
|
1025
|
-
infoBar: [
|
|
1026
|
-
"pointer-events-auto flex min-w-0 items-center",
|
|
1027
|
-
"bg-layer-panel text-foreground-strong",
|
|
1028
|
-
"shadow-[0_12px_32px_-18px_oklch(0_0_0_/_0.55)]"
|
|
1029
|
-
],
|
|
1030
|
-
infoTitle: ["min-w-0 flex-1 truncate font-heading text-sm font-bold"],
|
|
1031
|
-
infoActions: ["flex shrink-0 items-center gap-1.5"],
|
|
1032
|
-
close: []
|
|
1033
|
-
},
|
|
1034
|
-
variants: { theme: {
|
|
1035
|
-
brutal: {
|
|
1036
|
-
header: ["bg-transparent shadow-none"],
|
|
1037
|
-
title: ["text-foreground-strong"],
|
|
1038
|
-
media: ["border-line-strong bg-layer-panel shadow-xl"],
|
|
1039
|
-
navigationButton: [
|
|
1040
|
-
"size-8 rounded-none",
|
|
1041
|
-
"hover:bg-layer-panel data-[disabled=true]:text-black/35",
|
|
1042
|
-
"[&_svg]:size-6"
|
|
1043
|
-
],
|
|
1044
|
-
infoBar: [
|
|
1045
|
-
"w-[clamp(9rem,20vw,14rem)] max-w-[calc(100vw-3rem)] min-w-[9rem]",
|
|
1046
|
-
"gap-2 rounded-none border-2 border-black py-0.5 pr-0.5 pl-2.5 shadow-[var(--shadow)]",
|
|
1047
|
-
"[&_[data-slot=button]_svg]:stroke-2"
|
|
1048
|
-
],
|
|
1049
|
-
infoTitle: ["text-xs text-black"]
|
|
1050
|
-
},
|
|
1051
|
-
elegant: {
|
|
1052
|
-
backdrop: ["bg-[oklch(0_0_0_/_0.72)] backdrop-blur-[2px]"],
|
|
1053
|
-
header: ["bg-transparent shadow-none"],
|
|
1054
|
-
title: ["font-sans font-medium text-foreground-strong"],
|
|
1055
|
-
actions: ["gap-2"],
|
|
1056
|
-
media: ["border border-line-subtle bg-layer-panel shadow-none"],
|
|
1057
|
-
navigationButton: [
|
|
1058
|
-
"size-8 rounded-full border-0",
|
|
1059
|
-
"bg-white/75 backdrop-blur-md",
|
|
1060
|
-
"text-foreground-muted",
|
|
1061
|
-
"shadow-none",
|
|
1062
|
-
"hover:bg-white/85 hover:text-foreground-strong",
|
|
1063
|
-
"active:scale-[0.97]",
|
|
1064
|
-
"data-[disabled=true]:bg-white/35 data-[disabled=true]:text-black/30 data-[disabled=true]:shadow-none",
|
|
1065
|
-
"data-[disabled=true]:hover:bg-white/35 data-[disabled=true]:active:scale-100",
|
|
1066
|
-
"[&_svg]:size-5"
|
|
1067
|
-
],
|
|
1068
|
-
infoBar: [
|
|
1069
|
-
"w-[clamp(9rem,20vw,14rem)] max-w-[calc(100vw-3rem)] min-w-[9rem]",
|
|
1070
|
-
"gap-2 rounded py-0.5 pr-0.5 pl-2.5",
|
|
1071
|
-
"bg-[rgba(245,245,245,0.8)] text-neutral-900 shadow-none backdrop-blur-[10px]",
|
|
1072
|
-
"[&_[data-slot=button]]:text-neutral-600 [&_[data-slot=button]]:hover:bg-neutral-900/10 [&_[data-slot=button]]:hover:text-neutral-800"
|
|
1073
|
-
],
|
|
1074
|
-
infoTitle: ["font-sans text-xs font-medium text-neutral-800"],
|
|
1075
|
-
infoActions: ["gap-1"]
|
|
1076
|
-
}
|
|
1077
|
-
} }
|
|
1078
|
-
});
|
|
1079
|
-
function Lightbox({ closeOnModW = true, defaultOpen = false, modal = true, onOpenChange, open, children, ...props }) {
|
|
1080
|
-
const dialogRef = useRef(null);
|
|
1081
|
-
const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
|
|
1082
|
-
const effectiveOpen = open ?? uncontrolledOpen;
|
|
1083
|
-
const handleOpenChange = useCallback((nextOpen, eventDetails) => {
|
|
1084
|
-
if (open === void 0) setUncontrolledOpen(nextOpen);
|
|
1085
|
-
onOpenChange?.(nextOpen, eventDetails);
|
|
1086
|
-
}, [onOpenChange, open]);
|
|
1087
|
-
const modWClose = closeOnModW && effectiveOpen ? /* @__PURE__ */ jsx(LightboxModWClose, { dialogRef }) : null;
|
|
1088
|
-
return /* @__PURE__ */ jsxs(Dialog.Root, {
|
|
1089
|
-
actionsRef: dialogRef,
|
|
1090
|
-
defaultOpen,
|
|
1091
|
-
modal,
|
|
1092
|
-
onOpenChange: handleOpenChange,
|
|
1093
|
-
open,
|
|
1094
|
-
...props,
|
|
1095
|
-
children: [modWClose, children]
|
|
1096
|
-
});
|
|
1097
|
-
}
|
|
1098
|
-
function LightboxModWClose({ dialogRef }) {
|
|
1099
|
-
useHotkey("Mod+W", (event) => {
|
|
1100
|
-
event.preventDefault();
|
|
1101
|
-
event.stopPropagation();
|
|
1102
|
-
dialogRef.current?.close();
|
|
1103
|
-
}, { meta: {
|
|
1104
|
-
name: "Close lightbox",
|
|
1105
|
-
description: "Close the active lightbox before the browser closes the tab."
|
|
1106
|
-
} });
|
|
1107
|
-
return null;
|
|
1108
|
-
}
|
|
1109
|
-
function LightboxTrigger(props) {
|
|
1110
|
-
return /* @__PURE__ */ jsx(Dialog.Trigger, {
|
|
1111
|
-
"data-slot": "lightbox-trigger",
|
|
1112
|
-
...props
|
|
1113
|
-
});
|
|
1114
|
-
}
|
|
1115
|
-
function LightboxPortal(props) {
|
|
1116
|
-
return /* @__PURE__ */ jsx(Dialog.Portal, {
|
|
1117
|
-
"data-slot": "lightbox-portal",
|
|
1118
|
-
...props
|
|
1119
|
-
});
|
|
1120
|
-
}
|
|
1121
|
-
function LightboxContent({ className, initialFocus = false, finalFocus = false, ...props }) {
|
|
1122
|
-
const theme = useThemeFamily();
|
|
1123
|
-
const { backdrop, content } = lightbox({ theme });
|
|
1124
|
-
return /* @__PURE__ */ jsxs(LightboxPortal, { children: [/* @__PURE__ */ jsx(Dialog.Backdrop, {
|
|
1125
|
-
"data-slot": "lightbox-backdrop",
|
|
1126
|
-
"data-theme": theme,
|
|
1127
|
-
className: backdrop()
|
|
1128
|
-
}), /* @__PURE__ */ jsx(Dialog.Popup, {
|
|
1129
|
-
"data-slot": "lightbox-content",
|
|
1130
|
-
"data-theme": theme,
|
|
1131
|
-
initialFocus,
|
|
1132
|
-
finalFocus,
|
|
1133
|
-
className: content({ className }),
|
|
1134
|
-
...props
|
|
1135
|
-
})] });
|
|
1136
|
-
}
|
|
1137
|
-
function LightboxHeader({ render, className, ...props }) {
|
|
1138
|
-
const { header } = lightbox({ theme: useThemeFamily() });
|
|
1139
|
-
return useRender({
|
|
1140
|
-
defaultTagName: "div",
|
|
1141
|
-
render,
|
|
1142
|
-
props: mergeProps({ className: header({ className }) }, props),
|
|
1143
|
-
state: { slot: "lightbox-header" }
|
|
1144
|
-
});
|
|
1145
|
-
}
|
|
1146
|
-
function LightboxTitle({ render, className, ...props }) {
|
|
1147
|
-
const { title } = lightbox({ theme: useThemeFamily() });
|
|
1148
|
-
return useRender({
|
|
1149
|
-
defaultTagName: "div",
|
|
1150
|
-
render,
|
|
1151
|
-
props: mergeProps({ className: title({ className }) }, props),
|
|
1152
|
-
state: { slot: "lightbox-title" }
|
|
1153
|
-
});
|
|
1154
|
-
}
|
|
1155
|
-
function LightboxActions({ render, className, ...props }) {
|
|
1156
|
-
const { actions } = lightbox({ theme: useThemeFamily() });
|
|
1157
|
-
return useRender({
|
|
1158
|
-
defaultTagName: "div",
|
|
1159
|
-
render,
|
|
1160
|
-
props: mergeProps({ className: actions({ className }) }, props),
|
|
1161
|
-
state: { slot: "lightbox-actions" }
|
|
1162
|
-
});
|
|
1163
|
-
}
|
|
1164
|
-
function LightboxStage({ render, className, ...props }) {
|
|
1165
|
-
const { stage } = lightbox({ theme: useThemeFamily() });
|
|
1166
|
-
return useRender({
|
|
1167
|
-
defaultTagName: "div",
|
|
1168
|
-
render,
|
|
1169
|
-
props: mergeProps({ className: stage({ className }) }, props),
|
|
1170
|
-
state: { slot: "lightbox-stage" }
|
|
1171
|
-
});
|
|
1172
|
-
}
|
|
1173
|
-
function LightboxMedia({ render, className, ...props }) {
|
|
1174
|
-
const { media } = lightbox({ theme: useThemeFamily() });
|
|
1175
|
-
return useRender({
|
|
1176
|
-
defaultTagName: "div",
|
|
1177
|
-
render,
|
|
1178
|
-
props: mergeProps({ className: media({ className }) }, props),
|
|
1179
|
-
state: { slot: "lightbox-media" }
|
|
1180
|
-
});
|
|
1181
|
-
}
|
|
1182
|
-
function LightboxNavigationButton({ className, direction, disabled, onClick, type = "button", ...props }) {
|
|
1183
|
-
const { navigationButton } = lightbox({ theme: useThemeFamily() });
|
|
1184
|
-
const handleClick = useCallback((event) => {
|
|
1185
|
-
event.stopPropagation();
|
|
1186
|
-
if (disabled) {
|
|
1187
|
-
event.preventDefault();
|
|
1188
|
-
return;
|
|
1189
|
-
}
|
|
1190
|
-
onClick?.(event);
|
|
1191
|
-
}, [disabled, onClick]);
|
|
1192
|
-
return /* @__PURE__ */ jsx(Button$1, {
|
|
1193
|
-
"aria-disabled": disabled,
|
|
1194
|
-
className: navigationButton({ className: cn(direction === "previous" ? "left-8" : "right-8", className) }),
|
|
1195
|
-
"data-disabled": disabled ? "true" : void 0,
|
|
1196
|
-
"data-slot": "lightbox-navigation-button",
|
|
1197
|
-
"data-direction": direction,
|
|
1198
|
-
onClick: handleClick,
|
|
1199
|
-
size: "icon-lg",
|
|
1200
|
-
type,
|
|
1201
|
-
variant: "outline",
|
|
1202
|
-
...props
|
|
1203
|
-
});
|
|
1204
|
-
}
|
|
1205
|
-
function LightboxInfoBar({ render, className, ...props }) {
|
|
1206
|
-
const { infoBar } = lightbox({ theme: useThemeFamily() });
|
|
1207
|
-
return useRender({
|
|
1208
|
-
defaultTagName: "div",
|
|
1209
|
-
render,
|
|
1210
|
-
props: mergeProps({ className: infoBar({ className }) }, props),
|
|
1211
|
-
state: { slot: "lightbox-info-bar" }
|
|
1212
|
-
});
|
|
1213
|
-
}
|
|
1214
|
-
function LightboxInfoTitle({ render, className, ...props }) {
|
|
1215
|
-
const { infoTitle } = lightbox({ theme: useThemeFamily() });
|
|
1216
|
-
return useRender({
|
|
1217
|
-
defaultTagName: "div",
|
|
1218
|
-
render,
|
|
1219
|
-
props: mergeProps({ className: infoTitle({ className }) }, props),
|
|
1220
|
-
state: { slot: "lightbox-info-title" }
|
|
1221
|
-
});
|
|
1222
|
-
}
|
|
1223
|
-
function LightboxInfoActions({ render, className, ...props }) {
|
|
1224
|
-
const { infoActions } = lightbox({ theme: useThemeFamily() });
|
|
1225
|
-
return useRender({
|
|
1226
|
-
defaultTagName: "div",
|
|
1227
|
-
render,
|
|
1228
|
-
props: mergeProps({ className: infoActions({ className }) }, props),
|
|
1229
|
-
state: { slot: "lightbox-info-actions" }
|
|
1230
|
-
});
|
|
1231
|
-
}
|
|
1232
|
-
function LightboxClose({ className, ...props }) {
|
|
1233
|
-
const { close } = lightbox({ theme: useThemeFamily() });
|
|
1234
|
-
return /* @__PURE__ */ jsx(Dialog.Close, {
|
|
1235
|
-
"data-slot": "lightbox-close",
|
|
1236
|
-
className: close({ className }),
|
|
1237
|
-
...props
|
|
1238
|
-
});
|
|
1239
|
-
}
|
|
1240
|
-
//#endregion
|
|
1241
|
-
//#region src/components/bottom-sheet/bottom-sheet.tsx
|
|
1242
|
-
const bottomSheet = tv({
|
|
1243
|
-
slots: {
|
|
1244
|
-
portal: [],
|
|
1245
|
-
overlay: ["fixed inset-0 z-50", "![animation-duration:0.2s]"],
|
|
1246
|
-
positioner: ["contents"],
|
|
1247
|
-
content: [
|
|
1248
|
-
"fixed z-50 flex h-auto flex-col outline-none",
|
|
1249
|
-
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 md:data-[vaul-drawer-direction=bottom]:inset-x-3",
|
|
1250
|
-
"data-[vaul-drawer-direction=bottom]:mx-auto data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:min-h-64 data-[vaul-drawer-direction=bottom]:max-h-[82vh] data-[vaul-drawer-direction=bottom]:max-w-lg md:data-[vaul-drawer-direction=bottom]:max-w-md",
|
|
1251
|
-
"data-[vaul-drawer-direction=top]:inset-x-3 data-[vaul-drawer-direction=top]:top-3",
|
|
1252
|
-
"data-[vaul-drawer-direction=top]:mx-auto data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:max-w-md",
|
|
1253
|
-
"data-[vaul-drawer-direction=left]:inset-y-3 data-[vaul-drawer-direction=left]:left-3 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:max-w-sm",
|
|
1254
|
-
"data-[vaul-drawer-direction=right]:inset-y-3 data-[vaul-drawer-direction=right]:right-3 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:max-w-sm",
|
|
1255
|
-
"!duration-200 ![animation-duration:0.2s]"
|
|
1256
|
-
],
|
|
1257
|
-
header: ["flex flex-col items-center px-6 pt-8 pb-2 text-center"],
|
|
1258
|
-
body: ["flex flex-1 flex-col items-center px-6 pt-4 pb-6 text-center"],
|
|
1259
|
-
footer: ["mt-auto px-6 py-5 md:pb-11"],
|
|
1260
|
-
actions: ["mx-auto w-full items-center justify-center gap-2.5", "[&_[data-slot=button]]:w-full"],
|
|
1261
|
-
title: ["max-w-sm text-pretty text-center text-2xl leading-8 text-foreground-strong"],
|
|
1262
|
-
description: ["max-w-sm text-pretty text-center text-sm leading-5 text-foreground/60"]
|
|
1263
|
-
},
|
|
1264
|
-
variants: { theme: {
|
|
1265
|
-
brutal: {
|
|
1266
|
-
overlay: ["bg-layer-backdrop"],
|
|
1267
|
-
title: ["font-bold"],
|
|
1268
|
-
content: [
|
|
1269
|
-
"border-2 border-black bg-white text-black shadow-[var(--shadow-lg)]",
|
|
1270
|
-
"data-[vaul-drawer-direction=bottom]:border-x-0 md:data-[vaul-drawer-direction=bottom]:border-x-2",
|
|
1271
|
-
"data-[vaul-drawer-direction=bottom]:border-b-0 md:data-[vaul-drawer-direction=bottom]:border-b-2"
|
|
1272
|
-
]
|
|
1273
|
-
},
|
|
1274
|
-
elegant: {
|
|
1275
|
-
overlay: ["bg-layer-backdrop backdrop-blur-[2px]"],
|
|
1276
|
-
content: [
|
|
1277
|
-
"overflow-clip rounded-lg bg-layer-popover text-foreground shadow-xl md:rounded-xl",
|
|
1278
|
-
"data-[vaul-drawer-direction=bottom]:rounded-b-none",
|
|
1279
|
-
"md:data-[vaul-drawer-direction=bottom]:max-w-md",
|
|
1280
|
-
"md:data-[vaul-drawer-direction=top]:max-w-md",
|
|
1281
|
-
"md:data-[vaul-drawer-direction=left]:max-w-md",
|
|
1282
|
-
"md:data-[vaul-drawer-direction=right]:max-w-md"
|
|
1283
|
-
],
|
|
1284
|
-
header: ["bg-white px-8 pt-9 pb-2"],
|
|
1285
|
-
body: ["bg-white px-8 pt-4 pb-7"],
|
|
1286
|
-
footer: ["mt-0 px-8 py-5 md:pb-11"],
|
|
1287
|
-
actions: ["flex w-fit max-w-none flex-row justify-center", "[&_[data-slot=button]]:w-auto"],
|
|
1288
|
-
title: ["font-sans text-2xl leading-8 font-semibold text-[oklch(0.22_0_0)]"],
|
|
1289
|
-
description: ["font-sans text-sm leading-5 text-[oklch(0.48_0_0)]"]
|
|
1290
|
-
}
|
|
1291
|
-
} }
|
|
1292
|
-
});
|
|
1293
|
-
function BottomSheet({ direction = "bottom", ...props }) {
|
|
1294
|
-
return /* @__PURE__ */ jsx(Drawer.Root, {
|
|
1295
|
-
direction,
|
|
1296
|
-
...props
|
|
1297
|
-
});
|
|
1298
|
-
}
|
|
1299
|
-
function BottomSheetTrigger({ children, render, ...props }) {
|
|
1300
|
-
if (render) return /* @__PURE__ */ jsx(Drawer.Trigger, {
|
|
1301
|
-
"data-slot": "bottom-sheet-trigger",
|
|
1302
|
-
asChild: true,
|
|
1303
|
-
...props,
|
|
1304
|
-
children: cloneElement(render, void 0, children ?? render.props.children)
|
|
1305
|
-
});
|
|
1306
|
-
return /* @__PURE__ */ jsx(Drawer.Trigger, {
|
|
1307
|
-
"data-slot": "bottom-sheet-trigger",
|
|
1308
|
-
...props,
|
|
1309
|
-
children
|
|
1310
|
-
});
|
|
1311
|
-
}
|
|
1312
|
-
function BottomSheetPortal({ className, children, ...props }) {
|
|
1313
|
-
const portalChildren = Children.map(children, (child) => {
|
|
1314
|
-
if (isValidElement(child) && child.type === BottomSheetPositioner) return Children.map(child.props.children, (positionerChild) => withPortalClassName(positionerChild, className));
|
|
1315
|
-
return withPortalClassName(child, className);
|
|
1316
|
-
});
|
|
1317
|
-
return /* @__PURE__ */ jsx(Drawer.Portal, {
|
|
1318
|
-
...props,
|
|
1319
|
-
children: portalChildren
|
|
1320
|
-
});
|
|
1321
|
-
}
|
|
1322
|
-
function withPortalClassName(child, className) {
|
|
1323
|
-
if (!className || !isValidElement(child)) return child;
|
|
1324
|
-
return cloneElement(child, { className: cn(child.props.className, className) });
|
|
1325
|
-
}
|
|
1326
|
-
function BottomSheetPositioner({ className, ...props }) {
|
|
1327
|
-
const { positioner } = bottomSheet({ theme: useThemeFamily() });
|
|
1328
|
-
return /* @__PURE__ */ jsx("div", {
|
|
1329
|
-
"data-slot": "bottom-sheet-positioner",
|
|
1330
|
-
className: positioner({ className }),
|
|
1331
|
-
...props
|
|
1332
|
-
});
|
|
1333
|
-
}
|
|
1334
|
-
function BottomSheetOverlay({ className, ...props }) {
|
|
1335
|
-
const theme = useThemeFamily();
|
|
1336
|
-
const { overlay } = bottomSheet({ theme });
|
|
1337
|
-
return /* @__PURE__ */ jsx(Drawer.Overlay, {
|
|
1338
|
-
"data-slot": "bottom-sheet-overlay",
|
|
1339
|
-
"data-theme": theme,
|
|
1340
|
-
className: overlay({ className }),
|
|
1341
|
-
...props
|
|
1342
|
-
});
|
|
1343
|
-
}
|
|
1344
|
-
function BottomSheetContent({ className, ...props }) {
|
|
1345
|
-
const { content } = bottomSheet({ theme: useThemeFamily() });
|
|
1346
|
-
return /* @__PURE__ */ jsx(Drawer.Content, {
|
|
1347
|
-
"data-slot": "bottom-sheet-content",
|
|
1348
|
-
className: content({ className }),
|
|
1349
|
-
...props
|
|
1350
|
-
});
|
|
1351
|
-
}
|
|
1352
|
-
function BottomSheetClose({ className, variant, size, children, render, ...props }) {
|
|
1353
|
-
const isBrutal = useThemeFamily() === "brutal";
|
|
1354
|
-
if (render) return /* @__PURE__ */ jsx(Drawer.Close, {
|
|
1355
|
-
"data-slot": "bottom-sheet-close",
|
|
1356
|
-
asChild: true,
|
|
1357
|
-
...props,
|
|
1358
|
-
children: cloneElement(render, void 0, children ?? render.props.children)
|
|
1359
|
-
});
|
|
1360
|
-
return /* @__PURE__ */ jsx(Drawer.Close, {
|
|
1361
|
-
"data-slot": "bottom-sheet-close",
|
|
1362
|
-
asChild: true,
|
|
1363
|
-
...props,
|
|
1364
|
-
children: /* @__PURE__ */ jsx(Button$1, {
|
|
1365
|
-
variant: variant ?? (isBrutal ? "outline" : "ghost"),
|
|
1366
|
-
size: size ?? (isBrutal ? "icon-sm" : "icon-sm"),
|
|
1367
|
-
"aria-label": "Close",
|
|
1368
|
-
className: cn(isBrutal ? "absolute top-3 right-3" : "absolute top-4 right-6", isBrutal ? "bg-white" : "p-0 text-foreground-placeholder hover:bg-transparent hover:text-foreground", className),
|
|
1369
|
-
children: children ?? /* @__PURE__ */ jsx(X, { className: "size-4" })
|
|
1370
|
-
})
|
|
1371
|
-
});
|
|
1372
|
-
}
|
|
1373
|
-
function BottomSheetHeader({ className, render, ...props }) {
|
|
1374
|
-
const { header } = bottomSheet({ theme: useThemeFamily() });
|
|
1375
|
-
return useRender({
|
|
1376
|
-
defaultTagName: "div",
|
|
1377
|
-
render,
|
|
1378
|
-
props: mergeProps({ className: header({ className }) }, props),
|
|
1379
|
-
state: { slot: "bottom-sheet-header" }
|
|
1380
|
-
});
|
|
1381
|
-
}
|
|
1382
|
-
function BottomSheetFooter({ className, render, ...props }) {
|
|
1383
|
-
const { footer } = bottomSheet({ theme: useThemeFamily() });
|
|
1384
|
-
return useRender({
|
|
1385
|
-
defaultTagName: "div",
|
|
1386
|
-
render,
|
|
1387
|
-
props: mergeProps({ className: footer({ className }) }, props),
|
|
1388
|
-
state: { slot: "bottom-sheet-footer" }
|
|
1389
|
-
});
|
|
1390
|
-
}
|
|
1391
|
-
function BottomSheetBody({ className, render, ...props }) {
|
|
1392
|
-
const { body } = bottomSheet({ theme: useThemeFamily() });
|
|
1393
|
-
return useRender({
|
|
1394
|
-
defaultTagName: "div",
|
|
1395
|
-
render,
|
|
1396
|
-
props: mergeProps({ className: body({ className }) }, props),
|
|
1397
|
-
state: { slot: "bottom-sheet-body" }
|
|
1398
|
-
});
|
|
1399
|
-
}
|
|
1400
|
-
function BottomSheetActions({ className, render, children, ...props }) {
|
|
1401
|
-
const theme = useThemeFamily();
|
|
1402
|
-
const { actions } = bottomSheet({ theme });
|
|
1403
|
-
const count = Math.min(3, countActionChildren(children));
|
|
1404
|
-
return useRender({
|
|
1405
|
-
defaultTagName: "div",
|
|
1406
|
-
render,
|
|
1407
|
-
props: mergeProps({
|
|
1408
|
-
className: actions({ className: cn(theme === "elegant" ? "flex-row" : count <= 1 ? "flex max-w-64 flex-col" : count === 2 ? "flex max-w-64 flex-col-reverse" : "grid max-w-[32rem] grid-cols-3", className) }),
|
|
1409
|
-
children
|
|
1410
|
-
}, props),
|
|
1411
|
-
state: { slot: "bottom-sheet-actions" }
|
|
1412
|
-
});
|
|
1413
|
-
}
|
|
1414
|
-
function countActionChildren(children) {
|
|
1415
|
-
return Children.toArray(children).reduce((count, child) => {
|
|
1416
|
-
if (isValidElement(child) && child.type === Fragment) return count + countActionChildren(child.props.children);
|
|
1417
|
-
return count + 1;
|
|
1418
|
-
}, 0);
|
|
1419
|
-
}
|
|
1420
|
-
function BottomSheetTitle({ className, ...props }) {
|
|
1421
|
-
const { title } = bottomSheet({ theme: useThemeFamily() });
|
|
1422
|
-
return /* @__PURE__ */ jsx(Drawer.Title, {
|
|
1423
|
-
"data-slot": "bottom-sheet-title",
|
|
1424
|
-
className: title({ className }),
|
|
1425
|
-
...props
|
|
1426
|
-
});
|
|
1427
|
-
}
|
|
1428
|
-
function BottomSheetDescription({ className, ...props }) {
|
|
1429
|
-
const { description } = bottomSheet({ theme: useThemeFamily() });
|
|
1430
|
-
return /* @__PURE__ */ jsx(Drawer.Description, {
|
|
1431
|
-
"data-slot": "bottom-sheet-description",
|
|
1432
|
-
className: description({ className }),
|
|
1433
|
-
...props
|
|
1434
|
-
});
|
|
1435
|
-
}
|
|
1436
|
-
//#endregion
|
|
1437
|
-
export { BottomSheet, BottomSheetActions, BottomSheetBody, BottomSheetClose, BottomSheetContent, BottomSheetDescription, BottomSheetFooter, BottomSheetHeader, BottomSheetOverlay, BottomSheetPortal, BottomSheetPositioner, BottomSheetTitle, BottomSheetTrigger, ConversationPreviewCard, ConversationPreviewCardAction, ConversationPreviewCardAuthor, ConversationPreviewCardAuthorName, ConversationPreviewCardAuthorSubtitle, ConversationPreviewCardChannel, ConversationPreviewCardContent, ConversationPreviewCardFooter, ConversationPreviewCardMeta, ConversationPreviewCardPreview, ConversationPreviewCardPreviewAuthor, ConversationPreviewCardPreviewLeading, ConversationPreviewCardSecondaryPreview, ConversationPreviewCardTimestamp, DescriptionAction, DescriptionDetails, DescriptionItem, DescriptionList, DescriptionTerm, Lightbox, LightboxActions, LightboxClose, LightboxContent, LightboxHeader, LightboxInfoActions, LightboxInfoBar, LightboxInfoTitle, LightboxMedia, LightboxNavigationButton, LightboxPortal, LightboxStage, LightboxTitle, LightboxTrigger, ListItem, ListItemActionGroup, ListItemBody, ListItemDescription, ListItemIcon, ListItemMeta, ListItemRow, ListItemTitle, MediaListItem, MediaListItemActionGroup, MediaListItemAside, MediaListItemBody, MediaListItemSubtitle, MediaListItemText, MediaListItemTitle, MediaListItemVisual, PanelHeader, PanelHeaderActions, PanelHeaderContent, PanelHeaderIcon, PanelHeaderSubtitle, PanelHeaderSuffix, PanelHeaderTitle, PanelHeaderTitleRow, PanelHeaderVisual, PreviewShell, QuotedMessageCard, QuotedMessageCardAttachments, QuotedMessageCardAuthor, QuotedMessageCardAuthorName, QuotedMessageCardAuthorSubtitle, QuotedMessageCardBody, QuotedMessageCardChannel, QuotedMessageCardContent, QuotedMessageCardContentWrap, QuotedMessageCardHeader, QuotedMessageCardMeta, QuotedMessageCardSeparator, QuotedMessageCardTag, QuotedMessageCardThread, QuotedMessageCardTimestamp, QuotedMessageCardUnavailable, SectionHeader, SectionHeaderActions, SectionHeaderContent, SectionHeaderCount, SectionHeaderIcon, SectionHeaderTitle, SectionLabel, ToggleGroup, ToggleGroupCount, ToggleGroupItem, ToggleGroupLabel };
|
|
1002
|
+
export { ConversationPreviewCard, ConversationPreviewCardAction, ConversationPreviewCardAuthor, ConversationPreviewCardAuthorName, ConversationPreviewCardAuthorSubtitle, ConversationPreviewCardChannel, ConversationPreviewCardContent, ConversationPreviewCardFooter, ConversationPreviewCardMeta, ConversationPreviewCardPreview, ConversationPreviewCardPreviewAuthor, ConversationPreviewCardPreviewLeading, ConversationPreviewCardSecondaryPreview, ConversationPreviewCardTimestamp, DescriptionAction, DescriptionDetails, DescriptionItem, DescriptionList, DescriptionTerm, ListItem, ListItemActionGroup, ListItemBody, ListItemDescription, ListItemIcon, ListItemMeta, ListItemRow, ListItemTitle, MediaListItem, MediaListItemActionGroup, MediaListItemAside, MediaListItemBody, MediaListItemSubtitle, MediaListItemText, MediaListItemTitle, MediaListItemVisual, PanelHeader, PanelHeaderActions, PanelHeaderContent, PanelHeaderIcon, PanelHeaderSubtitle, PanelHeaderSuffix, PanelHeaderTitle, PanelHeaderTitleRow, PanelHeaderVisual, PreviewShell, QuotedMessageCard, QuotedMessageCardAttachments, QuotedMessageCardAuthor, QuotedMessageCardAuthorName, QuotedMessageCardAuthorSubtitle, QuotedMessageCardBody, QuotedMessageCardChannel, QuotedMessageCardContent, QuotedMessageCardContentWrap, QuotedMessageCardHeader, QuotedMessageCardMeta, QuotedMessageCardSeparator, QuotedMessageCardTag, QuotedMessageCardThread, QuotedMessageCardTimestamp, QuotedMessageCardUnavailable, SectionHeader, SectionHeaderActions, SectionHeaderContent, SectionHeaderCount, SectionHeaderIcon, SectionHeaderTitle, SectionLabel, ToggleGroup, ToggleGroupCount, ToggleGroupItem, ToggleGroupLabel };
|