@ai-matrx/design-system 0.42.0 → 0.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/data-table/index.cjs +1378 -1327
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.js +1393 -1342
- package/dist/data-table/index.js.map +1 -1
- package/dist/index.cjs +534 -468
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +67 -1
- package/dist/index.d.ts +67 -1
- package/dist/index.js +541 -475
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -148,6 +148,9 @@ __export(src_exports, {
|
|
|
148
148
|
DropdownMenuTrigger: () => DropdownMenuTrigger,
|
|
149
149
|
EditableLabel: () => EditableLabel,
|
|
150
150
|
EnterInput: () => EnterInput,
|
|
151
|
+
ErrorActions: () => ErrorActions,
|
|
152
|
+
ErrorActionsProvider: () => ErrorActionsProvider,
|
|
153
|
+
ErrorBox: () => ErrorBox,
|
|
151
154
|
FORBIDDEN_HOST_MOTION_UTILITIES: () => FORBIDDEN_HOST_MOTION_UTILITIES,
|
|
152
155
|
HoverCard: () => HoverCard,
|
|
153
156
|
HoverCardContent: () => HoverCardContent,
|
|
@@ -254,6 +257,7 @@ __export(src_exports, {
|
|
|
254
257
|
useCardSize: () => useCardSize,
|
|
255
258
|
useDialogContainer: () => useDialogContainer,
|
|
256
259
|
useDrawerDirection: () => useDrawerDirection,
|
|
260
|
+
useErrorActions: () => useErrorActions,
|
|
257
261
|
useIsMobile: () => useIsMobile,
|
|
258
262
|
usePortalContainer: () => usePortalContainer,
|
|
259
263
|
useRadixDialogModal: () => useRadixDialogModal,
|
|
@@ -864,8 +868,58 @@ function BottomSheetFooter({
|
|
|
864
868
|
|
|
865
869
|
// src/alert.tsx
|
|
866
870
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
871
|
+
var React5 = __toESM(require("react"), 1);
|
|
872
|
+
|
|
873
|
+
// src/error-box.tsx
|
|
867
874
|
var React4 = __toESM(require("react"), 1);
|
|
868
875
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
876
|
+
var CONTEXT_KEY = /* @__PURE__ */ Symbol.for("@ai-matrx/design-system/error-actions");
|
|
877
|
+
var registry = globalThis;
|
|
878
|
+
var ErrorActionsContext = registry[CONTEXT_KEY] ?? (registry[CONTEXT_KEY] = React4.createContext(null));
|
|
879
|
+
function ErrorActionsProvider({
|
|
880
|
+
render,
|
|
881
|
+
children
|
|
882
|
+
}) {
|
|
883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ErrorActionsContext.Provider, { value: render, children });
|
|
884
|
+
}
|
|
885
|
+
function useErrorActions() {
|
|
886
|
+
return React4.useContext(ErrorActionsContext);
|
|
887
|
+
}
|
|
888
|
+
function ErrorActions(props) {
|
|
889
|
+
const render = useErrorActions();
|
|
890
|
+
if (!render) return null;
|
|
891
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: render(props) });
|
|
892
|
+
}
|
|
893
|
+
var ErrorBox = React4.forwardRef(function ErrorBox2({
|
|
894
|
+
as = "p",
|
|
895
|
+
message,
|
|
896
|
+
title,
|
|
897
|
+
error,
|
|
898
|
+
operation,
|
|
899
|
+
records,
|
|
900
|
+
unsavedInput,
|
|
901
|
+
origin,
|
|
902
|
+
children,
|
|
903
|
+
...rest
|
|
904
|
+
}, ref) {
|
|
905
|
+
const Tag = as;
|
|
906
|
+
const facts = {
|
|
907
|
+
...message !== void 0 ? { message } : {},
|
|
908
|
+
...title !== void 0 ? { title } : {},
|
|
909
|
+
...error !== void 0 ? { error } : {},
|
|
910
|
+
...operation !== void 0 ? { operation } : {},
|
|
911
|
+
...records !== void 0 ? { records } : {},
|
|
912
|
+
...unsavedInput !== void 0 ? { unsavedInput } : {},
|
|
913
|
+
...origin !== void 0 ? { origin } : {}
|
|
914
|
+
};
|
|
915
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Tag, { ref, role: "alert", "data-error-box": "", ...rest, children: [
|
|
916
|
+
children ?? message,
|
|
917
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ErrorActions, { ...facts })
|
|
918
|
+
] });
|
|
919
|
+
});
|
|
920
|
+
|
|
921
|
+
// src/alert.tsx
|
|
922
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
869
923
|
var alertVariants = (0, import_class_variance_authority2.cva)(
|
|
870
924
|
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg~*]:pl-7",
|
|
871
925
|
{
|
|
@@ -883,8 +937,8 @@ var alertVariants = (0, import_class_variance_authority2.cva)(
|
|
|
883
937
|
}
|
|
884
938
|
}
|
|
885
939
|
);
|
|
886
|
-
var Alert =
|
|
887
|
-
({ className, variant, ...props }, ref) => /* @__PURE__ */ (0,
|
|
940
|
+
var Alert = React5.forwardRef(
|
|
941
|
+
({ className, variant, children, errorFacts, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
888
942
|
"div",
|
|
889
943
|
{
|
|
890
944
|
ref,
|
|
@@ -892,12 +946,16 @@ var Alert = React4.forwardRef(
|
|
|
892
946
|
"data-slot": "alert",
|
|
893
947
|
"data-variant": variant ?? "default",
|
|
894
948
|
className: cn(alertVariants({ variant }), className),
|
|
895
|
-
...props
|
|
949
|
+
...props,
|
|
950
|
+
children: [
|
|
951
|
+
children,
|
|
952
|
+
variant === "destructive" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ErrorActions, { origin: "design-system/Alert", ...errorFacts }) : null
|
|
953
|
+
]
|
|
896
954
|
}
|
|
897
955
|
)
|
|
898
956
|
);
|
|
899
957
|
Alert.displayName = "Alert";
|
|
900
|
-
var AlertTitle =
|
|
958
|
+
var AlertTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
901
959
|
"h5",
|
|
902
960
|
{
|
|
903
961
|
ref,
|
|
@@ -907,7 +965,7 @@ var AlertTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
907
965
|
}
|
|
908
966
|
));
|
|
909
967
|
AlertTitle.displayName = "AlertTitle";
|
|
910
|
-
var AlertDescription =
|
|
968
|
+
var AlertDescription = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
911
969
|
"div",
|
|
912
970
|
{
|
|
913
971
|
ref,
|
|
@@ -921,13 +979,13 @@ AlertDescription.displayName = "AlertDescription";
|
|
|
921
979
|
// src/alert-dialog.tsx
|
|
922
980
|
var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
|
|
923
981
|
var import_react_tree2 = require("@ai-matrx/kit/react-tree");
|
|
924
|
-
var
|
|
982
|
+
var React8 = __toESM(require("react"), 1);
|
|
925
983
|
|
|
926
984
|
// src/button.tsx
|
|
927
985
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
928
986
|
var import_class_variance_authority3 = require("class-variance-authority");
|
|
929
|
-
var
|
|
930
|
-
var
|
|
987
|
+
var React6 = __toESM(require("react"), 1);
|
|
988
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
931
989
|
var buttonVariants = (0, import_class_variance_authority3.cva)(
|
|
932
990
|
"inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-0 disabled:pointer-events-none disabled:opacity-50 active:scale-[0.98] [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
933
991
|
{
|
|
@@ -990,11 +1048,11 @@ var TOUCH_FLOOR_SIZES = /* @__PURE__ */ new Set([
|
|
|
990
1048
|
"roundIcon"
|
|
991
1049
|
]);
|
|
992
1050
|
var SQUARE_SIZES = /* @__PURE__ */ new Set(["icon", "icon-sm", "roundIcon"]);
|
|
993
|
-
var Button =
|
|
1051
|
+
var Button = React6.forwardRef(
|
|
994
1052
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
995
1053
|
const Component = asChild ? import_react_slot.Slot : "button";
|
|
996
1054
|
const resolvedSize = size ?? "default";
|
|
997
|
-
return /* @__PURE__ */ (0,
|
|
1055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
998
1056
|
Component,
|
|
999
1057
|
{
|
|
1000
1058
|
className: cn(buttonVariants({ variant, size, className })),
|
|
@@ -1051,19 +1109,19 @@ var FORBIDDEN_HOST_MOTION_UTILITIES = [
|
|
|
1051
1109
|
];
|
|
1052
1110
|
|
|
1053
1111
|
// src/portal-container.tsx
|
|
1054
|
-
var
|
|
1055
|
-
var
|
|
1112
|
+
var React7 = __toESM(require("react"), 1);
|
|
1113
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1056
1114
|
var CONTEXT_SLOT2 = /* @__PURE__ */ Symbol.for("ai-matrx.design-system.portal-container-context");
|
|
1057
1115
|
var contextRegistry2 = globalThis;
|
|
1058
|
-
var PortalContainerContext = contextRegistry2[CONTEXT_SLOT2] ??=
|
|
1116
|
+
var PortalContainerContext = contextRegistry2[CONTEXT_SLOT2] ??= React7.createContext(void 0);
|
|
1059
1117
|
function PortalContainerProvider({
|
|
1060
1118
|
container,
|
|
1061
1119
|
children
|
|
1062
1120
|
}) {
|
|
1063
|
-
return /* @__PURE__ */ (0,
|
|
1121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PortalContainerContext.Provider, { value: container ?? void 0, children });
|
|
1064
1122
|
}
|
|
1065
1123
|
function usePortalContainer(explicit) {
|
|
1066
|
-
const injected =
|
|
1124
|
+
const injected = React7.useContext(PortalContainerContext);
|
|
1067
1125
|
if (explicit !== void 0) {
|
|
1068
1126
|
return explicit ?? void 0;
|
|
1069
1127
|
}
|
|
@@ -1071,7 +1129,7 @@ function usePortalContainer(explicit) {
|
|
|
1071
1129
|
}
|
|
1072
1130
|
|
|
1073
1131
|
// src/alert-dialog.tsx
|
|
1074
|
-
var
|
|
1132
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1075
1133
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
1076
1134
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
1077
1135
|
var AlertDialogPortal = ({
|
|
@@ -1079,10 +1137,10 @@ var AlertDialogPortal = ({
|
|
|
1079
1137
|
...props
|
|
1080
1138
|
}) => {
|
|
1081
1139
|
const resolved = usePortalContainer(container);
|
|
1082
|
-
return /* @__PURE__ */ (0,
|
|
1140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AlertDialogPrimitive.Portal, { container: resolved ?? null, ...props });
|
|
1083
1141
|
};
|
|
1084
1142
|
AlertDialogPortal.displayName = "AlertDialogPortal";
|
|
1085
|
-
var AlertDialogOverlay =
|
|
1143
|
+
var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1086
1144
|
AlertDialogPrimitive.Overlay,
|
|
1087
1145
|
{
|
|
1088
1146
|
ref,
|
|
@@ -1096,9 +1154,9 @@ var AlertDialogOverlay = React7.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1096
1154
|
}
|
|
1097
1155
|
));
|
|
1098
1156
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
1099
|
-
var AlertDialogContentPrimitive =
|
|
1157
|
+
var AlertDialogContentPrimitive = React8.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AlertDialogPrimitive.Content, { ...props, ref, "aria-modal": "true" }));
|
|
1100
1158
|
AlertDialogContentPrimitive.displayName = "AlertDialogContentPrimitive";
|
|
1101
|
-
var AlertDialogDescription =
|
|
1159
|
+
var AlertDialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1102
1160
|
AlertDialogPrimitive.Description,
|
|
1103
1161
|
{
|
|
1104
1162
|
ref,
|
|
@@ -1108,11 +1166,11 @@ var AlertDialogDescription = React7.forwardRef(({ className, ...props }, ref) =>
|
|
|
1108
1166
|
}
|
|
1109
1167
|
));
|
|
1110
1168
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
1111
|
-
var AlertDialogContent =
|
|
1169
|
+
var AlertDialogContent = React8.forwardRef(({ className, children, container, animated = true, ...props }, ref) => {
|
|
1112
1170
|
const hasDescription = (0, import_react_tree2.treeContainsComponent)(children, AlertDialogDescription) || (0, import_react_tree2.treeContainsComponent)(children, AlertDialogPrimitive.Description);
|
|
1113
|
-
return /* @__PURE__ */ (0,
|
|
1114
|
-
/* @__PURE__ */ (0,
|
|
1115
|
-
/* @__PURE__ */ (0,
|
|
1171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(AlertDialogPortal, { container, children: [
|
|
1172
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AlertDialogOverlay, {}),
|
|
1173
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1116
1174
|
AlertDialogContentPrimitive,
|
|
1117
1175
|
{
|
|
1118
1176
|
ref,
|
|
@@ -1132,7 +1190,7 @@ var AlertDialogContent = React7.forwardRef(({ className, children, container, an
|
|
|
1132
1190
|
),
|
|
1133
1191
|
...props,
|
|
1134
1192
|
children: [
|
|
1135
|
-
hasDescription ? null : /* @__PURE__ */ (0,
|
|
1193
|
+
hasDescription ? null : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AlertDialogPrimitive.Description, { className: "sr-only", children: "Please confirm the action described in this dialog." }),
|
|
1136
1194
|
children
|
|
1137
1195
|
]
|
|
1138
1196
|
}
|
|
@@ -1143,7 +1201,7 @@ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
|
1143
1201
|
var AlertDialogHeader = ({
|
|
1144
1202
|
className,
|
|
1145
1203
|
...props
|
|
1146
|
-
}) => /* @__PURE__ */ (0,
|
|
1204
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1147
1205
|
"div",
|
|
1148
1206
|
{
|
|
1149
1207
|
"data-slot": "alert-dialog-header",
|
|
@@ -1155,7 +1213,7 @@ AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
|
1155
1213
|
var AlertDialogFooter = ({
|
|
1156
1214
|
className,
|
|
1157
1215
|
...props
|
|
1158
|
-
}) => /* @__PURE__ */ (0,
|
|
1216
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1159
1217
|
"div",
|
|
1160
1218
|
{
|
|
1161
1219
|
"data-slot": "alert-dialog-footer",
|
|
@@ -1187,7 +1245,7 @@ var AlertDialogFooter = ({
|
|
|
1187
1245
|
}
|
|
1188
1246
|
);
|
|
1189
1247
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
1190
|
-
var AlertDialogTitle =
|
|
1248
|
+
var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1191
1249
|
AlertDialogPrimitive.Title,
|
|
1192
1250
|
{
|
|
1193
1251
|
ref,
|
|
@@ -1197,7 +1255,7 @@ var AlertDialogTitle = React7.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1197
1255
|
}
|
|
1198
1256
|
));
|
|
1199
1257
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
1200
|
-
var AlertDialogAction =
|
|
1258
|
+
var AlertDialogAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1201
1259
|
AlertDialogPrimitive.Action,
|
|
1202
1260
|
{
|
|
1203
1261
|
ref,
|
|
@@ -1207,7 +1265,7 @@ var AlertDialogAction = React7.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1207
1265
|
}
|
|
1208
1266
|
));
|
|
1209
1267
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
1210
|
-
var AlertDialogCancel =
|
|
1268
|
+
var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1211
1269
|
AlertDialogPrimitive.Cancel,
|
|
1212
1270
|
{
|
|
1213
1271
|
ref,
|
|
@@ -1224,14 +1282,14 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
|
1224
1282
|
|
|
1225
1283
|
// src/avatar.tsx
|
|
1226
1284
|
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
|
|
1227
|
-
var
|
|
1228
|
-
var
|
|
1285
|
+
var React9 = __toESM(require("react"), 1);
|
|
1286
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1229
1287
|
var AVATAR_SIZES = {
|
|
1230
1288
|
sm: "h-8 w-8 text-[11px]",
|
|
1231
1289
|
md: "h-9 w-9 text-xs",
|
|
1232
1290
|
lg: "h-10 w-10 text-sm"
|
|
1233
1291
|
};
|
|
1234
|
-
var Avatar =
|
|
1292
|
+
var Avatar = React9.forwardRef(({ className, size = "lg", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1235
1293
|
AvatarPrimitive.Root,
|
|
1236
1294
|
{
|
|
1237
1295
|
ref,
|
|
@@ -1245,7 +1303,7 @@ var Avatar = React8.forwardRef(({ className, size = "lg", ...props }, ref) => /*
|
|
|
1245
1303
|
}
|
|
1246
1304
|
));
|
|
1247
1305
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
1248
|
-
var AvatarImage =
|
|
1306
|
+
var AvatarImage = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1249
1307
|
AvatarPrimitive.Image,
|
|
1250
1308
|
{
|
|
1251
1309
|
ref,
|
|
@@ -1255,7 +1313,7 @@ var AvatarImage = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
1255
1313
|
}
|
|
1256
1314
|
));
|
|
1257
1315
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
1258
|
-
var AvatarFallback =
|
|
1316
|
+
var AvatarFallback = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1259
1317
|
AvatarPrimitive.Fallback,
|
|
1260
1318
|
{
|
|
1261
1319
|
ref,
|
|
@@ -1270,8 +1328,8 @@ var AvatarFallback = React8.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1270
1328
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
1271
1329
|
|
|
1272
1330
|
// src/card.tsx
|
|
1273
|
-
var
|
|
1274
|
-
var
|
|
1331
|
+
var React10 = __toESM(require("react"), 1);
|
|
1332
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1275
1333
|
var CARD_SIZES = {
|
|
1276
1334
|
sm: {
|
|
1277
1335
|
root: "rounded-xl border bg-card text-card-foreground shadow",
|
|
@@ -1289,12 +1347,12 @@ var CARD_SIZES = {
|
|
|
1289
1347
|
padTopless: "p-6 pt-0"
|
|
1290
1348
|
}
|
|
1291
1349
|
};
|
|
1292
|
-
var CardSizeContext =
|
|
1350
|
+
var CardSizeContext = React10.createContext("md");
|
|
1293
1351
|
function useCardSize() {
|
|
1294
|
-
return
|
|
1352
|
+
return React10.useContext(CardSizeContext);
|
|
1295
1353
|
}
|
|
1296
|
-
var Card =
|
|
1297
|
-
({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0,
|
|
1354
|
+
var Card = React10.forwardRef(
|
|
1355
|
+
({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CardSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1298
1356
|
"div",
|
|
1299
1357
|
{
|
|
1300
1358
|
ref,
|
|
@@ -1306,9 +1364,9 @@ var Card = React9.forwardRef(
|
|
|
1306
1364
|
) })
|
|
1307
1365
|
);
|
|
1308
1366
|
Card.displayName = "Card";
|
|
1309
|
-
var CardHeader =
|
|
1367
|
+
var CardHeader = React10.forwardRef(({ className, ...props }, ref) => {
|
|
1310
1368
|
const size = useCardSize();
|
|
1311
|
-
return /* @__PURE__ */ (0,
|
|
1369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1312
1370
|
"div",
|
|
1313
1371
|
{
|
|
1314
1372
|
ref,
|
|
@@ -1323,7 +1381,7 @@ var CardHeader = React9.forwardRef(({ className, ...props }, ref) => {
|
|
|
1323
1381
|
);
|
|
1324
1382
|
});
|
|
1325
1383
|
CardHeader.displayName = "CardHeader";
|
|
1326
|
-
var CardTitle =
|
|
1384
|
+
var CardTitle = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1327
1385
|
"h3",
|
|
1328
1386
|
{
|
|
1329
1387
|
ref,
|
|
@@ -1333,7 +1391,7 @@ var CardTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1333
1391
|
}
|
|
1334
1392
|
));
|
|
1335
1393
|
CardTitle.displayName = "CardTitle";
|
|
1336
|
-
var CardDescription =
|
|
1394
|
+
var CardDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1337
1395
|
"p",
|
|
1338
1396
|
{
|
|
1339
1397
|
ref,
|
|
@@ -1343,7 +1401,7 @@ var CardDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1343
1401
|
}
|
|
1344
1402
|
));
|
|
1345
1403
|
CardDescription.displayName = "CardDescription";
|
|
1346
|
-
var CardAction =
|
|
1404
|
+
var CardAction = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1347
1405
|
"div",
|
|
1348
1406
|
{
|
|
1349
1407
|
ref,
|
|
@@ -1353,9 +1411,9 @@ var CardAction = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1353
1411
|
}
|
|
1354
1412
|
));
|
|
1355
1413
|
CardAction.displayName = "CardAction";
|
|
1356
|
-
var CardContent =
|
|
1414
|
+
var CardContent = React10.forwardRef(({ className, ...props }, ref) => {
|
|
1357
1415
|
const size = useCardSize();
|
|
1358
|
-
return /* @__PURE__ */ (0,
|
|
1416
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1359
1417
|
"div",
|
|
1360
1418
|
{
|
|
1361
1419
|
ref,
|
|
@@ -1366,9 +1424,9 @@ var CardContent = React9.forwardRef(({ className, ...props }, ref) => {
|
|
|
1366
1424
|
);
|
|
1367
1425
|
});
|
|
1368
1426
|
CardContent.displayName = "CardContent";
|
|
1369
|
-
var CardFooter =
|
|
1427
|
+
var CardFooter = React10.forwardRef(({ className, ...props }, ref) => {
|
|
1370
1428
|
const size = useCardSize();
|
|
1371
|
-
return /* @__PURE__ */ (0,
|
|
1429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1372
1430
|
"div",
|
|
1373
1431
|
{
|
|
1374
1432
|
ref,
|
|
@@ -1386,13 +1444,13 @@ CardFooter.displayName = "CardFooter";
|
|
|
1386
1444
|
|
|
1387
1445
|
// src/checkbox.tsx
|
|
1388
1446
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
1389
|
-
var
|
|
1390
|
-
var
|
|
1447
|
+
var React11 = __toESM(require("react"), 1);
|
|
1448
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1391
1449
|
var CHECKBOX_SIZES = {
|
|
1392
1450
|
sm: { root: "h-3.5 w-3.5 rounded-xs", glyph: "h-3 w-3" },
|
|
1393
1451
|
md: { root: "h-4 w-4 rounded-sm", glyph: "h-3.5 w-3.5" }
|
|
1394
1452
|
};
|
|
1395
|
-
var Checkbox =
|
|
1453
|
+
var Checkbox = React11.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1396
1454
|
CheckboxPrimitive.Root,
|
|
1397
1455
|
{
|
|
1398
1456
|
ref,
|
|
@@ -1403,12 +1461,12 @@ var Checkbox = React10.forwardRef(({ className, size = "md", ...props }, ref) =>
|
|
|
1403
1461
|
className
|
|
1404
1462
|
),
|
|
1405
1463
|
...props,
|
|
1406
|
-
children: /* @__PURE__ */ (0,
|
|
1464
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1407
1465
|
CheckboxPrimitive.Indicator,
|
|
1408
1466
|
{
|
|
1409
1467
|
"data-slot": "checkbox-indicator",
|
|
1410
1468
|
className: "flex items-center justify-center text-current",
|
|
1411
|
-
children: props.checked === "indeterminate" ? /* @__PURE__ */ (0,
|
|
1469
|
+
children: props.checked === "indeterminate" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DividerHorizontalIcon, { className: CHECKBOX_SIZES[size].glyph }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CheckIcon, { className: CHECKBOX_SIZES[size].glyph })
|
|
1412
1470
|
}
|
|
1413
1471
|
)
|
|
1414
1472
|
}
|
|
@@ -1417,11 +1475,11 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
|
1417
1475
|
|
|
1418
1476
|
// src/collapsible.tsx
|
|
1419
1477
|
var CollapsiblePrimitive = __toESM(require("@radix-ui/react-collapsible"), 1);
|
|
1420
|
-
var
|
|
1421
|
-
var
|
|
1478
|
+
var React12 = __toESM(require("react"), 1);
|
|
1479
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1422
1480
|
var Collapsible = CollapsiblePrimitive.Root;
|
|
1423
1481
|
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
1424
|
-
var CollapsibleContent2 =
|
|
1482
|
+
var CollapsibleContent2 = React12.forwardRef(({ className, animated = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1425
1483
|
CollapsiblePrimitive.CollapsibleContent,
|
|
1426
1484
|
{
|
|
1427
1485
|
ref,
|
|
@@ -1438,15 +1496,15 @@ CollapsibleContent2.displayName = "CollapsibleContent";
|
|
|
1438
1496
|
// src/command.tsx
|
|
1439
1497
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
1440
1498
|
var import_cmdk = require("cmdk");
|
|
1441
|
-
var
|
|
1499
|
+
var React14 = __toESM(require("react"), 1);
|
|
1442
1500
|
|
|
1443
1501
|
// src/use-is-mobile.ts
|
|
1444
|
-
var
|
|
1502
|
+
var React13 = __toESM(require("react"), 1);
|
|
1445
1503
|
var MOBILE_BREAKPOINT = 768;
|
|
1446
1504
|
function useIsMobile() {
|
|
1447
|
-
const [isMobile, setIsMobile] =
|
|
1448
|
-
const [hasMounted, setHasMounted] =
|
|
1449
|
-
|
|
1505
|
+
const [isMobile, setIsMobile] = React13.useState(false);
|
|
1506
|
+
const [hasMounted, setHasMounted] = React13.useState(false);
|
|
1507
|
+
React13.useEffect(() => {
|
|
1450
1508
|
setHasMounted(true);
|
|
1451
1509
|
const onChange = () => {
|
|
1452
1510
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -1466,8 +1524,8 @@ function useIsMobile() {
|
|
|
1466
1524
|
}
|
|
1467
1525
|
|
|
1468
1526
|
// src/command.tsx
|
|
1469
|
-
var
|
|
1470
|
-
var Command =
|
|
1527
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1528
|
+
var Command = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1471
1529
|
import_cmdk.Command,
|
|
1472
1530
|
{
|
|
1473
1531
|
ref,
|
|
@@ -1482,12 +1540,12 @@ Command.displayName = import_cmdk.Command.displayName;
|
|
|
1482
1540
|
var DIALOG_DESKTOP_CLASSES = `fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg ${CENTERED_DIALOG} gap-4 overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg`;
|
|
1483
1541
|
var DIALOG_MOBILE_SHEET_CLASSES = "fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] translate-x-0 translate-y-0 gap-4 overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain";
|
|
1484
1542
|
var DIALOG_MOBILE_SHEET_OVERRIDE = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-x-0 translate-y-0 w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
1485
|
-
var CommandDialogContent =
|
|
1543
|
+
var CommandDialogContent = React14.forwardRef(({ className, children, container, ...props }, ref) => {
|
|
1486
1544
|
const isMobile = useIsMobile();
|
|
1487
1545
|
const isModal = useRadixDialogModal();
|
|
1488
1546
|
const portalContainer = usePortalContainer(container);
|
|
1489
|
-
return /* @__PURE__ */ (0,
|
|
1490
|
-
isModal ? /* @__PURE__ */ (0,
|
|
1547
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(DialogPrimitive.Portal, { container: portalContainer, children: [
|
|
1548
|
+
isModal ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1491
1549
|
DialogPrimitive.Overlay,
|
|
1492
1550
|
{
|
|
1493
1551
|
className: cn(
|
|
@@ -1496,7 +1554,7 @@ var CommandDialogContent = React13.forwardRef(({ className, children, container,
|
|
|
1496
1554
|
)
|
|
1497
1555
|
}
|
|
1498
1556
|
) : null,
|
|
1499
|
-
/* @__PURE__ */ (0,
|
|
1557
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1500
1558
|
DialogPrimitive.Content,
|
|
1501
1559
|
{
|
|
1502
1560
|
ref,
|
|
@@ -1512,9 +1570,9 @@ var CommandDialogContent = React13.forwardRef(({ className, children, container,
|
|
|
1512
1570
|
...props,
|
|
1513
1571
|
children: [
|
|
1514
1572
|
children,
|
|
1515
|
-
/* @__PURE__ */ (0,
|
|
1516
|
-
/* @__PURE__ */ (0,
|
|
1517
|
-
/* @__PURE__ */ (0,
|
|
1573
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(DialogPrimitive.Close, { className: "absolute right-2 top-4 flex h-10 w-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground sm:right-4", children: [
|
|
1574
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(XIcon, { className: "h-4 w-4" }),
|
|
1575
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sr-only", children: "Close" })
|
|
1518
1576
|
] })
|
|
1519
1577
|
]
|
|
1520
1578
|
}
|
|
@@ -1528,21 +1586,21 @@ var CommandDialog = ({
|
|
|
1528
1586
|
...props
|
|
1529
1587
|
}) => {
|
|
1530
1588
|
const modal = props.modal ?? true;
|
|
1531
|
-
return /* @__PURE__ */ (0,
|
|
1589
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DialogPrimitive.Root, { ...props, modal, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1532
1590
|
CommandDialogContent,
|
|
1533
1591
|
{
|
|
1534
1592
|
className: "overflow-hidden p-0",
|
|
1535
1593
|
...container !== void 0 ? { container } : {},
|
|
1536
1594
|
children: [
|
|
1537
|
-
/* @__PURE__ */ (0,
|
|
1538
|
-
/* @__PURE__ */ (0,
|
|
1595
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DialogPrimitive.Title, { className: "sr-only" }),
|
|
1596
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
|
|
1539
1597
|
]
|
|
1540
1598
|
}
|
|
1541
1599
|
) }) });
|
|
1542
1600
|
};
|
|
1543
|
-
var CommandInput =
|
|
1544
|
-
/* @__PURE__ */ (0,
|
|
1545
|
-
/* @__PURE__ */ (0,
|
|
1601
|
+
var CommandInput = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1602
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1603
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1546
1604
|
import_cmdk.Command.Input,
|
|
1547
1605
|
{
|
|
1548
1606
|
ref,
|
|
@@ -1555,7 +1613,7 @@ var CommandInput = React13.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1555
1613
|
)
|
|
1556
1614
|
] }));
|
|
1557
1615
|
CommandInput.displayName = import_cmdk.Command.Input.displayName;
|
|
1558
|
-
var CommandList =
|
|
1616
|
+
var CommandList = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1559
1617
|
import_cmdk.Command.List,
|
|
1560
1618
|
{
|
|
1561
1619
|
ref,
|
|
@@ -1564,7 +1622,7 @@ var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1564
1622
|
}
|
|
1565
1623
|
));
|
|
1566
1624
|
CommandList.displayName = import_cmdk.Command.List.displayName;
|
|
1567
|
-
var CommandEmpty =
|
|
1625
|
+
var CommandEmpty = React14.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1568
1626
|
import_cmdk.Command.Empty,
|
|
1569
1627
|
{
|
|
1570
1628
|
ref,
|
|
@@ -1573,7 +1631,7 @@ var CommandEmpty = React13.forwardRef((props, ref) => /* @__PURE__ */ (0, import
|
|
|
1573
1631
|
}
|
|
1574
1632
|
));
|
|
1575
1633
|
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
|
|
1576
|
-
var CommandGroup =
|
|
1634
|
+
var CommandGroup = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1577
1635
|
import_cmdk.Command.Group,
|
|
1578
1636
|
{
|
|
1579
1637
|
ref,
|
|
@@ -1585,7 +1643,7 @@ var CommandGroup = React13.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1585
1643
|
}
|
|
1586
1644
|
));
|
|
1587
1645
|
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
|
|
1588
|
-
var CommandSeparator =
|
|
1646
|
+
var CommandSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1589
1647
|
import_cmdk.Command.Separator,
|
|
1590
1648
|
{
|
|
1591
1649
|
ref,
|
|
@@ -1594,7 +1652,7 @@ var CommandSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
1594
1652
|
}
|
|
1595
1653
|
));
|
|
1596
1654
|
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
|
|
1597
|
-
var CommandItem =
|
|
1655
|
+
var CommandItem = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1598
1656
|
import_cmdk.Command.Item,
|
|
1599
1657
|
{
|
|
1600
1658
|
ref,
|
|
@@ -1610,7 +1668,7 @@ var CommandShortcut = ({
|
|
|
1610
1668
|
className,
|
|
1611
1669
|
...props
|
|
1612
1670
|
}) => {
|
|
1613
|
-
return /* @__PURE__ */ (0,
|
|
1671
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1614
1672
|
"span",
|
|
1615
1673
|
{
|
|
1616
1674
|
className: cn(
|
|
@@ -1624,7 +1682,7 @@ var CommandShortcut = ({
|
|
|
1624
1682
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1625
1683
|
|
|
1626
1684
|
// src/confirm-dialog.tsx
|
|
1627
|
-
var
|
|
1685
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1628
1686
|
function ConfirmDialog({
|
|
1629
1687
|
open,
|
|
1630
1688
|
onOpenChange,
|
|
@@ -1640,20 +1698,20 @@ function ConfirmDialog({
|
|
|
1640
1698
|
portalContainer,
|
|
1641
1699
|
onConfirm
|
|
1642
1700
|
}) {
|
|
1643
|
-
return /* @__PURE__ */ (0,
|
|
1701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1644
1702
|
AlertDialogContent,
|
|
1645
1703
|
{
|
|
1646
1704
|
className: contentClassName,
|
|
1647
1705
|
...portalContainer === void 0 ? {} : { container: portalContainer },
|
|
1648
1706
|
children: [
|
|
1649
|
-
/* @__PURE__ */ (0,
|
|
1650
|
-
/* @__PURE__ */ (0,
|
|
1651
|
-
description ? /* @__PURE__ */ (0,
|
|
1707
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(AlertDialogHeader, { children: [
|
|
1708
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AlertDialogTitle, { children: title }),
|
|
1709
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AlertDialogDescription, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { children: description }) }) : null
|
|
1652
1710
|
] }),
|
|
1653
1711
|
content ?? null,
|
|
1654
|
-
/* @__PURE__ */ (0,
|
|
1655
|
-
cancelLabel === null ? null : /* @__PURE__ */ (0,
|
|
1656
|
-
/* @__PURE__ */ (0,
|
|
1712
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(AlertDialogFooter, { children: [
|
|
1713
|
+
cancelLabel === null ? null : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AlertDialogCancel, { className: "max-lg:min-h-11", disabled: busy, children: cancelLabel }),
|
|
1714
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1657
1715
|
AlertDialogAction,
|
|
1658
1716
|
{
|
|
1659
1717
|
disabled: busy || confirmDisabled,
|
|
@@ -1669,7 +1727,7 @@ function ConfirmDialog({
|
|
|
1669
1727
|
variant === "destructive" && buttonVariants({ variant: "destructive" })
|
|
1670
1728
|
),
|
|
1671
1729
|
children: [
|
|
1672
|
-
busy ? /* @__PURE__ */ (0,
|
|
1730
|
+
busy ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Loader2Icon, { className: cn("mr-2 h-4 w-4", MOTION_SPIN) }) : null,
|
|
1673
1731
|
confirmLabel
|
|
1674
1732
|
]
|
|
1675
1733
|
}
|
|
@@ -1683,18 +1741,18 @@ function ConfirmDialog({
|
|
|
1683
1741
|
// src/confirm-host.tsx
|
|
1684
1742
|
var import_confirm_opener = require("@ai-matrx/kit/confirm-opener");
|
|
1685
1743
|
var import_opener_react = require("@ai-matrx/kit/opener-react");
|
|
1686
|
-
var
|
|
1687
|
-
var
|
|
1744
|
+
var React15 = __toESM(require("react"), 1);
|
|
1745
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1688
1746
|
function ConfirmDialogHost() {
|
|
1689
1747
|
const { request, open, settle } = (0, import_opener_react.useOpenerHost)(import_confirm_opener.confirmOpener);
|
|
1690
|
-
const handleConfirm =
|
|
1691
|
-
const handleOpenChange =
|
|
1748
|
+
const handleConfirm = React15.useCallback(() => settle(true), [settle]);
|
|
1749
|
+
const handleOpenChange = React15.useCallback(
|
|
1692
1750
|
(next) => {
|
|
1693
1751
|
if (!next) settle(false);
|
|
1694
1752
|
},
|
|
1695
1753
|
[settle]
|
|
1696
1754
|
);
|
|
1697
|
-
return /* @__PURE__ */ (0,
|
|
1755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1698
1756
|
ConfirmDialog,
|
|
1699
1757
|
{
|
|
1700
1758
|
open,
|
|
@@ -1711,8 +1769,8 @@ function ConfirmDialogHost() {
|
|
|
1711
1769
|
|
|
1712
1770
|
// src/context-menu.tsx
|
|
1713
1771
|
var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
|
|
1714
|
-
var
|
|
1715
|
-
var
|
|
1772
|
+
var React16 = __toESM(require("react"), 1);
|
|
1773
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1716
1774
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
1717
1775
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
1718
1776
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -1722,7 +1780,7 @@ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
|
1722
1780
|
var SURFACE_CLASS = "z-50 min-w-[8rem] max-h-[var(--radix-context-menu-content-available-height)] overflow-y-auto overflow-x-hidden overscroll-contain rounded-md border bg-popover p-1 text-popover-foreground";
|
|
1723
1781
|
var ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1724
1782
|
var INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1725
|
-
var ContextMenuSubTrigger =
|
|
1783
|
+
var ContextMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1726
1784
|
ContextMenuPrimitive.SubTrigger,
|
|
1727
1785
|
{
|
|
1728
1786
|
ref,
|
|
@@ -1735,12 +1793,12 @@ var ContextMenuSubTrigger = React15.forwardRef(({ className, inset, children, ..
|
|
|
1735
1793
|
...props,
|
|
1736
1794
|
children: [
|
|
1737
1795
|
children,
|
|
1738
|
-
/* @__PURE__ */ (0,
|
|
1796
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1739
1797
|
]
|
|
1740
1798
|
}
|
|
1741
1799
|
));
|
|
1742
1800
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1743
|
-
var ContextMenuSubContent =
|
|
1801
|
+
var ContextMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1744
1802
|
ContextMenuPrimitive.SubContent,
|
|
1745
1803
|
{
|
|
1746
1804
|
ref,
|
|
@@ -1750,9 +1808,9 @@ var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) =>
|
|
|
1750
1808
|
}
|
|
1751
1809
|
));
|
|
1752
1810
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1753
|
-
var ContextMenuContent =
|
|
1811
|
+
var ContextMenuContent = React16.forwardRef(({ className, container, ...props }, ref) => {
|
|
1754
1812
|
const portalContainer = usePortalContainer(container);
|
|
1755
|
-
return /* @__PURE__ */ (0,
|
|
1813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1756
1814
|
ContextMenuPrimitive.Content,
|
|
1757
1815
|
{
|
|
1758
1816
|
ref,
|
|
@@ -1763,7 +1821,7 @@ var ContextMenuContent = React15.forwardRef(({ className, container, ...props },
|
|
|
1763
1821
|
) });
|
|
1764
1822
|
});
|
|
1765
1823
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1766
|
-
var ContextMenuItem =
|
|
1824
|
+
var ContextMenuItem = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1767
1825
|
ContextMenuPrimitive.Item,
|
|
1768
1826
|
{
|
|
1769
1827
|
ref,
|
|
@@ -1778,7 +1836,7 @@ var ContextMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
1778
1836
|
}
|
|
1779
1837
|
));
|
|
1780
1838
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1781
|
-
var ContextMenuCheckboxItem =
|
|
1839
|
+
var ContextMenuCheckboxItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1782
1840
|
ContextMenuPrimitive.CheckboxItem,
|
|
1783
1841
|
{
|
|
1784
1842
|
ref,
|
|
@@ -1786,13 +1844,13 @@ var ContextMenuCheckboxItem = React15.forwardRef(({ className, children, ...prop
|
|
|
1786
1844
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
1787
1845
|
...props,
|
|
1788
1846
|
children: [
|
|
1789
|
-
/* @__PURE__ */ (0,
|
|
1847
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1790
1848
|
children
|
|
1791
1849
|
]
|
|
1792
1850
|
}
|
|
1793
1851
|
));
|
|
1794
1852
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1795
|
-
var ContextMenuRadioItem =
|
|
1853
|
+
var ContextMenuRadioItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1796
1854
|
ContextMenuPrimitive.RadioItem,
|
|
1797
1855
|
{
|
|
1798
1856
|
ref,
|
|
@@ -1800,13 +1858,13 @@ var ContextMenuRadioItem = React15.forwardRef(({ className, children, ...props }
|
|
|
1800
1858
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
1801
1859
|
...props,
|
|
1802
1860
|
children: [
|
|
1803
|
-
/* @__PURE__ */ (0,
|
|
1861
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
1804
1862
|
children
|
|
1805
1863
|
]
|
|
1806
1864
|
}
|
|
1807
1865
|
));
|
|
1808
1866
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1809
|
-
var ContextMenuLabel =
|
|
1867
|
+
var ContextMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1810
1868
|
ContextMenuPrimitive.Label,
|
|
1811
1869
|
{
|
|
1812
1870
|
ref,
|
|
@@ -1820,7 +1878,7 @@ var ContextMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1820
1878
|
}
|
|
1821
1879
|
));
|
|
1822
1880
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1823
|
-
var ContextMenuSeparator =
|
|
1881
|
+
var ContextMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1824
1882
|
ContextMenuPrimitive.Separator,
|
|
1825
1883
|
{
|
|
1826
1884
|
ref,
|
|
@@ -1833,7 +1891,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
|
1833
1891
|
var ContextMenuShortcut = ({
|
|
1834
1892
|
className,
|
|
1835
1893
|
...props
|
|
1836
|
-
}) => /* @__PURE__ */ (0,
|
|
1894
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1837
1895
|
"span",
|
|
1838
1896
|
{
|
|
1839
1897
|
"data-slot": "context-menu-shortcut",
|
|
@@ -1848,12 +1906,12 @@ var import_react = require("react");
|
|
|
1848
1906
|
|
|
1849
1907
|
// src/popover.tsx
|
|
1850
1908
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
|
|
1851
|
-
var
|
|
1852
|
-
var
|
|
1909
|
+
var React17 = __toESM(require("react"), 1);
|
|
1910
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1853
1911
|
var Popover = PopoverPrimitive.Root;
|
|
1854
1912
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1855
1913
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1856
|
-
var PopoverContent =
|
|
1914
|
+
var PopoverContent = React17.forwardRef(
|
|
1857
1915
|
({
|
|
1858
1916
|
className,
|
|
1859
1917
|
align = "center",
|
|
@@ -1864,7 +1922,7 @@ var PopoverContent = React16.forwardRef(
|
|
|
1864
1922
|
...props
|
|
1865
1923
|
}, ref) => {
|
|
1866
1924
|
const portalContainer = usePortalContainer(container);
|
|
1867
|
-
return /* @__PURE__ */ (0,
|
|
1925
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1868
1926
|
PopoverPrimitive.Content,
|
|
1869
1927
|
{
|
|
1870
1928
|
ref,
|
|
@@ -1890,7 +1948,7 @@ var PopoverContent = React16.forwardRef(
|
|
|
1890
1948
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1891
1949
|
|
|
1892
1950
|
// src/creatable-picker.tsx
|
|
1893
|
-
var
|
|
1951
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1894
1952
|
function article(noun) {
|
|
1895
1953
|
return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
|
|
1896
1954
|
}
|
|
@@ -1965,8 +2023,8 @@ function CreatablePicker({
|
|
|
1965
2023
|
setBusy(false);
|
|
1966
2024
|
}
|
|
1967
2025
|
};
|
|
1968
|
-
return /* @__PURE__ */ (0,
|
|
1969
|
-
/* @__PURE__ */ (0,
|
|
2026
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
|
|
2027
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1970
2028
|
"button",
|
|
1971
2029
|
{
|
|
1972
2030
|
type: "button",
|
|
@@ -1980,12 +2038,12 @@ function CreatablePicker({
|
|
|
1980
2038
|
triggerClassName
|
|
1981
2039
|
),
|
|
1982
2040
|
children: [
|
|
1983
|
-
/* @__PURE__ */ (0,
|
|
1984
|
-
/* @__PURE__ */ (0,
|
|
2041
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
|
|
2042
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
|
|
1985
2043
|
]
|
|
1986
2044
|
}
|
|
1987
2045
|
) }),
|
|
1988
|
-
/* @__PURE__ */ (0,
|
|
2046
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PopoverContent, { sizing: "content", align: "start", className: "p-0", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1989
2047
|
Command,
|
|
1990
2048
|
{
|
|
1991
2049
|
filter: (itemValue, search, keywords) => {
|
|
@@ -1993,7 +2051,7 @@ function CreatablePicker({
|
|
|
1993
2051
|
return haystack.includes(search.toLowerCase()) ? 1 : 0;
|
|
1994
2052
|
},
|
|
1995
2053
|
children: [
|
|
1996
|
-
/* @__PURE__ */ (0,
|
|
2054
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1997
2055
|
CommandInput,
|
|
1998
2056
|
{
|
|
1999
2057
|
ref: inputRef,
|
|
@@ -2005,13 +2063,13 @@ function CreatablePicker({
|
|
|
2005
2063
|
placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
|
|
2006
2064
|
}
|
|
2007
2065
|
),
|
|
2008
|
-
/* @__PURE__ */ (0,
|
|
2009
|
-
/* @__PURE__ */ (0,
|
|
2010
|
-
groups.map((group) => /* @__PURE__ */ (0,
|
|
2066
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(CommandList, { children: [
|
|
2067
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(CommandEmpty, { children: emptyLabel }),
|
|
2068
|
+
groups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2011
2069
|
CommandGroup,
|
|
2012
2070
|
{
|
|
2013
2071
|
...group.heading === void 0 ? {} : { heading: group.heading },
|
|
2014
|
-
children: group.options.map((option) => /* @__PURE__ */ (0,
|
|
2072
|
+
children: group.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2015
2073
|
CommandItem,
|
|
2016
2074
|
{
|
|
2017
2075
|
value: option.label,
|
|
@@ -2022,7 +2080,7 @@ function CreatablePicker({
|
|
|
2022
2080
|
},
|
|
2023
2081
|
className: "gap-2 text-xs",
|
|
2024
2082
|
children: [
|
|
2025
|
-
/* @__PURE__ */ (0,
|
|
2083
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2026
2084
|
LucideCheckIcon,
|
|
2027
2085
|
{
|
|
2028
2086
|
className: cn(
|
|
@@ -2031,8 +2089,8 @@ function CreatablePicker({
|
|
|
2031
2089
|
)
|
|
2032
2090
|
}
|
|
2033
2091
|
),
|
|
2034
|
-
/* @__PURE__ */ (0,
|
|
2035
|
-
option.hint ? /* @__PURE__ */ (0,
|
|
2092
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
|
|
2093
|
+
option.hint ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
|
|
2036
2094
|
]
|
|
2037
2095
|
},
|
|
2038
2096
|
option.value
|
|
@@ -2041,9 +2099,9 @@ function CreatablePicker({
|
|
|
2041
2099
|
group.heading ?? "__ungrouped__"
|
|
2042
2100
|
))
|
|
2043
2101
|
] }),
|
|
2044
|
-
canCreate ? /* @__PURE__ */ (0,
|
|
2045
|
-
createExtra && typed && !exactMatch ? /* @__PURE__ */ (0,
|
|
2046
|
-
/* @__PURE__ */ (0,
|
|
2102
|
+
canCreate ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "space-y-1 border-t border-border p-1", children: [
|
|
2103
|
+
createExtra && typed && !exactMatch ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
|
|
2104
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2047
2105
|
"button",
|
|
2048
2106
|
{
|
|
2049
2107
|
type: "button",
|
|
@@ -2051,22 +2109,22 @@ function CreatablePicker({
|
|
|
2051
2109
|
onClick: () => void create(typed),
|
|
2052
2110
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-50",
|
|
2053
2111
|
children: [
|
|
2054
|
-
busy ? /* @__PURE__ */ (0,
|
|
2055
|
-
/* @__PURE__ */ (0,
|
|
2112
|
+
busy ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
2113
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
|
|
2056
2114
|
]
|
|
2057
2115
|
}
|
|
2058
2116
|
),
|
|
2059
|
-
needsName ? /* @__PURE__ */ (0,
|
|
2117
|
+
needsName ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
2060
2118
|
"Type the name of the ",
|
|
2061
2119
|
noun,
|
|
2062
2120
|
" you want to add \u2014 then this creates it."
|
|
2063
2121
|
] }) : null
|
|
2064
2122
|
] }) : null,
|
|
2065
|
-
footerActions?.length || manageAction ? /* @__PURE__ */ (0,
|
|
2123
|
+
footerActions?.length || manageAction ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "space-y-0.5 border-t border-border p-1", children: [
|
|
2066
2124
|
footerActions?.map((action) => {
|
|
2067
2125
|
const Icon2 = action.icon;
|
|
2068
|
-
return /* @__PURE__ */ (0,
|
|
2069
|
-
/* @__PURE__ */ (0,
|
|
2126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
|
|
2127
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2070
2128
|
"button",
|
|
2071
2129
|
{
|
|
2072
2130
|
type: "button",
|
|
@@ -2076,15 +2134,15 @@ function CreatablePicker({
|
|
|
2076
2134
|
},
|
|
2077
2135
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
2078
2136
|
children: [
|
|
2079
|
-
Icon2 ? /* @__PURE__ */ (0,
|
|
2080
|
-
/* @__PURE__ */ (0,
|
|
2137
|
+
Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Icon2, { className: "size-3.5 shrink-0" }) : null,
|
|
2138
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "min-w-0 truncate", children: action.label })
|
|
2081
2139
|
]
|
|
2082
2140
|
}
|
|
2083
2141
|
),
|
|
2084
|
-
action.note ? /* @__PURE__ */ (0,
|
|
2142
|
+
action.note ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
|
|
2085
2143
|
] }, action.label);
|
|
2086
2144
|
}),
|
|
2087
|
-
manageAction ? /* @__PURE__ */ (0,
|
|
2145
|
+
manageAction ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2088
2146
|
"a",
|
|
2089
2147
|
{
|
|
2090
2148
|
href: manageAction.href,
|
|
@@ -2093,18 +2151,18 @@ function CreatablePicker({
|
|
|
2093
2151
|
onClick: close,
|
|
2094
2152
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
2095
2153
|
children: [
|
|
2096
|
-
/* @__PURE__ */ (0,
|
|
2097
|
-
/* @__PURE__ */ (0,
|
|
2154
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
|
|
2155
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "min-w-0 truncate", children: manageAction.label })
|
|
2098
2156
|
]
|
|
2099
2157
|
}
|
|
2100
2158
|
) : null
|
|
2101
2159
|
] }) : null,
|
|
2102
|
-
lockedNote ? /* @__PURE__ */ (0,
|
|
2103
|
-
/* @__PURE__ */ (0,
|
|
2104
|
-
/* @__PURE__ */ (0,
|
|
2105
|
-
/* @__PURE__ */ (0,
|
|
2160
|
+
lockedNote ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "space-y-1 border-t border-border p-2", children: [
|
|
2161
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
2162
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(LockIcon, { className: "mt-px size-3 shrink-0" }),
|
|
2163
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: lockedNote })
|
|
2106
2164
|
] }),
|
|
2107
|
-
lockedAction ? /* @__PURE__ */ (0,
|
|
2165
|
+
lockedAction ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2108
2166
|
"button",
|
|
2109
2167
|
{
|
|
2110
2168
|
type: "button",
|
|
@@ -2114,8 +2172,8 @@ function CreatablePicker({
|
|
|
2114
2172
|
},
|
|
2115
2173
|
className: "flex w-full items-center gap-2 rounded-sm px-1 py-1 text-left text-xs font-medium text-primary transition-colors hover:bg-accent",
|
|
2116
2174
|
children: [
|
|
2117
|
-
/* @__PURE__ */ (0,
|
|
2118
|
-
/* @__PURE__ */ (0,
|
|
2175
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
2176
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "min-w-0 truncate", children: lockedAction.label })
|
|
2119
2177
|
]
|
|
2120
2178
|
}
|
|
2121
2179
|
) : null
|
|
@@ -2130,16 +2188,16 @@ function CreatablePicker({
|
|
|
2130
2188
|
var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
2131
2189
|
var VisuallyHidden2 = __toESM(require("@radix-ui/react-visually-hidden"), 1);
|
|
2132
2190
|
var import_react_tree3 = require("@ai-matrx/kit/react-tree");
|
|
2133
|
-
var
|
|
2134
|
-
var
|
|
2135
|
-
var DialogWindowedByDefaultContext =
|
|
2191
|
+
var React18 = __toESM(require("react"), 1);
|
|
2192
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2193
|
+
var DialogWindowedByDefaultContext = React18.createContext(false);
|
|
2136
2194
|
var Dialog = ({
|
|
2137
2195
|
children,
|
|
2138
2196
|
...props
|
|
2139
2197
|
}) => {
|
|
2140
2198
|
const isMobile = useIsMobile();
|
|
2141
2199
|
const modal = props.modal ?? isMobile;
|
|
2142
|
-
return /* @__PURE__ */ (0,
|
|
2200
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogWindowedByDefaultContext.Provider, { value: props.modal === void 0, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogPrimitive2.Root, { ...props, modal, children }) }) });
|
|
2143
2201
|
};
|
|
2144
2202
|
Dialog.displayName = "Dialog";
|
|
2145
2203
|
var DialogTrigger = DialogPrimitive2.Trigger;
|
|
@@ -2149,14 +2207,14 @@ var DialogPortal = ({
|
|
|
2149
2207
|
...props
|
|
2150
2208
|
}) => {
|
|
2151
2209
|
const resolved = usePortalContainer(container);
|
|
2152
|
-
return /* @__PURE__ */ (0,
|
|
2210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
|
|
2153
2211
|
};
|
|
2154
2212
|
DialogPortal.displayName = "DialogPortal";
|
|
2155
2213
|
var CONTEXT_SLOT3 = /* @__PURE__ */ Symbol.for("ai-matrx.design-system.dialog-container-context");
|
|
2156
2214
|
var contextRegistry3 = globalThis;
|
|
2157
|
-
var DialogContainerContext = contextRegistry3[CONTEXT_SLOT3] ??=
|
|
2158
|
-
var useDialogContainer = () =>
|
|
2159
|
-
var DialogOverlay =
|
|
2215
|
+
var DialogContainerContext = contextRegistry3[CONTEXT_SLOT3] ??= React18.createContext(null);
|
|
2216
|
+
var useDialogContainer = () => React18.useContext(DialogContainerContext);
|
|
2217
|
+
var DialogOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2160
2218
|
DialogPrimitive2.Overlay,
|
|
2161
2219
|
{
|
|
2162
2220
|
ref,
|
|
@@ -2172,9 +2230,9 @@ var DialogOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
2172
2230
|
}
|
|
2173
2231
|
));
|
|
2174
2232
|
DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
2175
|
-
var DialogContentPrimitive =
|
|
2233
|
+
var DialogContentPrimitive = React18.forwardRef((props, ref) => {
|
|
2176
2234
|
const isModal = useRadixDialogModal();
|
|
2177
|
-
return /* @__PURE__ */ (0,
|
|
2235
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2178
2236
|
DialogPrimitive2.Content,
|
|
2179
2237
|
{
|
|
2180
2238
|
...props,
|
|
@@ -2187,12 +2245,12 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
|
|
|
2187
2245
|
var DIALOG_DESKTOP_CLASSES2 = "matrx-dialog-card fixed inset-0 z-[10000] m-auto grid h-fit min-w-0 w-full max-w-lg gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg";
|
|
2188
2246
|
var DIALOG_MOBILE_SHEET_CLASSES2 = "matrx-mobile-sheet matrx-dialog-card fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] gap-4 [--dialog-pad:1rem] overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain";
|
|
2189
2247
|
var DIALOG_MOBILE_SHEET_OVERRIDE2 = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-none w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
2190
|
-
var DialogWindowHandleContext =
|
|
2248
|
+
var DialogWindowHandleContext = React18.createContext(null);
|
|
2191
2249
|
var WINDOW_KEEP_VISIBLE = 80;
|
|
2192
2250
|
function isInteractiveTarget(target) {
|
|
2193
2251
|
return target instanceof Element && Boolean(target.closest("button, a, input, textarea, select, [role='button'], [contenteditable='true']"));
|
|
2194
2252
|
}
|
|
2195
|
-
var DialogContent =
|
|
2253
|
+
var DialogContent = React18.forwardRef(
|
|
2196
2254
|
({
|
|
2197
2255
|
className,
|
|
2198
2256
|
children,
|
|
@@ -2211,13 +2269,13 @@ var DialogContent = React17.forwardRef(
|
|
|
2211
2269
|
const injectedContainer = usePortalContainer(container);
|
|
2212
2270
|
const asSheet = mobileSheet && isMobile;
|
|
2213
2271
|
const windowed = !isModal && !asSheet;
|
|
2214
|
-
const windowedByDefault =
|
|
2215
|
-
const [containerEl, setContainerEl] =
|
|
2272
|
+
const windowedByDefault = React18.useContext(DialogWindowedByDefaultContext);
|
|
2273
|
+
const [containerEl, setContainerEl] = React18.useState(
|
|
2216
2274
|
null
|
|
2217
2275
|
);
|
|
2218
|
-
const [offset, setOffset] =
|
|
2219
|
-
const dragRef =
|
|
2220
|
-
const handle =
|
|
2276
|
+
const [offset, setOffset] = React18.useState({ x: 0, y: 0 });
|
|
2277
|
+
const dragRef = React18.useRef(null);
|
|
2278
|
+
const handle = React18.useMemo(() => {
|
|
2221
2279
|
if (!windowed) return null;
|
|
2222
2280
|
const clamp = (value, limit) => Math.max(-limit, Math.min(limit, value));
|
|
2223
2281
|
return {
|
|
@@ -2245,7 +2303,7 @@ var DialogContent = React17.forwardRef(
|
|
|
2245
2303
|
onDoubleClick: () => setOffset({ x: 0, y: 0 })
|
|
2246
2304
|
};
|
|
2247
2305
|
}, [windowed, offset.x, offset.y]);
|
|
2248
|
-
const mergedRef =
|
|
2306
|
+
const mergedRef = React18.useCallback(
|
|
2249
2307
|
(node) => {
|
|
2250
2308
|
setContainerEl(node);
|
|
2251
2309
|
if (typeof ref === "function") ref(node);
|
|
@@ -2256,9 +2314,9 @@ var DialogContent = React17.forwardRef(
|
|
|
2256
2314
|
);
|
|
2257
2315
|
const hasTitle = (0, import_react_tree3.treeContainsComponent)(children, DialogTitle) || (0, import_react_tree3.treeContainsComponent)(children, DialogPrimitive2.Title);
|
|
2258
2316
|
const hasDescription = (0, import_react_tree3.treeContainsComponent)(children, DialogDescription) || (0, import_react_tree3.treeContainsComponent)(children, DialogPrimitive2.Description);
|
|
2259
|
-
return /* @__PURE__ */ (0,
|
|
2260
|
-
isModal ? /* @__PURE__ */ (0,
|
|
2261
|
-
/* @__PURE__ */ (0,
|
|
2317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(DialogPortal, { container, children: [
|
|
2318
|
+
isModal ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogOverlay, {}) : null,
|
|
2319
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2262
2320
|
DialogContentPrimitive,
|
|
2263
2321
|
{
|
|
2264
2322
|
ref: mergedRef,
|
|
@@ -2291,23 +2349,23 @@ var DialogContent = React17.forwardRef(
|
|
|
2291
2349
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
2292
2350
|
...props,
|
|
2293
2351
|
children: [
|
|
2294
|
-
hasTitle ? null : /* @__PURE__ */ (0,
|
|
2295
|
-
/* @__PURE__ */ (0,
|
|
2352
|
+
hasTitle ? null : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(VisuallyHidden2.Root, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogPrimitive2.Title, { children: "Dialog" }) }),
|
|
2353
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DialogWindowHandleContext.Provider, { value: handle, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2296
2354
|
PortalContainerProvider,
|
|
2297
2355
|
{
|
|
2298
2356
|
container: containerEl ?? injectedContainer ?? null,
|
|
2299
2357
|
children
|
|
2300
2358
|
}
|
|
2301
2359
|
) }) }),
|
|
2302
|
-
showCloseButton ? /* @__PURE__ */ (0,
|
|
2360
|
+
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2303
2361
|
DialogPrimitive2.Close,
|
|
2304
2362
|
{
|
|
2305
2363
|
"data-slot": "dialog-close",
|
|
2306
2364
|
"aria-label": "Close",
|
|
2307
2365
|
className: "absolute right-2 top-4 flex h-11 w-11 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground sm:right-4 lg:h-10 lg:w-10",
|
|
2308
2366
|
children: [
|
|
2309
|
-
/* @__PURE__ */ (0,
|
|
2310
|
-
/* @__PURE__ */ (0,
|
|
2367
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(XIcon, { className: "h-4 w-4" }),
|
|
2368
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "sr-only", children: "Close" })
|
|
2311
2369
|
]
|
|
2312
2370
|
}
|
|
2313
2371
|
) : null
|
|
@@ -2322,8 +2380,8 @@ var DialogHeader = ({
|
|
|
2322
2380
|
className,
|
|
2323
2381
|
...props
|
|
2324
2382
|
}) => {
|
|
2325
|
-
const handle =
|
|
2326
|
-
return /* @__PURE__ */ (0,
|
|
2383
|
+
const handle = React18.useContext(DialogWindowHandleContext);
|
|
2384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2327
2385
|
"div",
|
|
2328
2386
|
{
|
|
2329
2387
|
"data-slot": "dialog-header",
|
|
@@ -2347,7 +2405,7 @@ DialogHeader.displayName = "DialogHeader";
|
|
|
2347
2405
|
var DialogFooter = ({
|
|
2348
2406
|
className,
|
|
2349
2407
|
...props
|
|
2350
|
-
}) => /* @__PURE__ */ (0,
|
|
2408
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2351
2409
|
"div",
|
|
2352
2410
|
{
|
|
2353
2411
|
"data-slot": "dialog-footer",
|
|
@@ -2379,7 +2437,7 @@ var DialogFooter = ({
|
|
|
2379
2437
|
}
|
|
2380
2438
|
);
|
|
2381
2439
|
DialogFooter.displayName = "DialogFooter";
|
|
2382
|
-
var DialogTitle =
|
|
2440
|
+
var DialogTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2383
2441
|
DialogPrimitive2.Title,
|
|
2384
2442
|
{
|
|
2385
2443
|
ref,
|
|
@@ -2389,7 +2447,7 @@ var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2389
2447
|
}
|
|
2390
2448
|
));
|
|
2391
2449
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
2392
|
-
var DialogDescription =
|
|
2450
|
+
var DialogDescription = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2393
2451
|
DialogPrimitive2.Description,
|
|
2394
2452
|
{
|
|
2395
2453
|
ref,
|
|
@@ -2402,8 +2460,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
|
2402
2460
|
|
|
2403
2461
|
// src/dropdown-menu.tsx
|
|
2404
2462
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
2405
|
-
var
|
|
2406
|
-
var
|
|
2463
|
+
var React19 = __toESM(require("react"), 1);
|
|
2464
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2407
2465
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
2408
2466
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
2409
2467
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
@@ -2413,7 +2471,7 @@ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
|
2413
2471
|
var MENU_SURFACE_CLASS = "z-[10001] min-w-[8rem] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto overflow-x-hidden overscroll-contain rounded-md border bg-popover p-1 text-popover-foreground";
|
|
2414
2472
|
var MENU_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
2415
2473
|
var MENU_INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
2416
|
-
var DropdownMenuSubTrigger =
|
|
2474
|
+
var DropdownMenuSubTrigger = React19.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2417
2475
|
DropdownMenuPrimitive.SubTrigger,
|
|
2418
2476
|
{
|
|
2419
2477
|
ref,
|
|
@@ -2426,12 +2484,12 @@ var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, .
|
|
|
2426
2484
|
...props,
|
|
2427
2485
|
children: [
|
|
2428
2486
|
children,
|
|
2429
|
-
/* @__PURE__ */ (0,
|
|
2487
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
2430
2488
|
]
|
|
2431
2489
|
}
|
|
2432
2490
|
));
|
|
2433
2491
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
2434
|
-
var DropdownMenuSubContent =
|
|
2492
|
+
var DropdownMenuSubContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2435
2493
|
DropdownMenuPrimitive.SubContent,
|
|
2436
2494
|
{
|
|
2437
2495
|
ref,
|
|
@@ -2441,9 +2499,9 @@ var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) =
|
|
|
2441
2499
|
}
|
|
2442
2500
|
));
|
|
2443
2501
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
2444
|
-
var DropdownMenuContent =
|
|
2502
|
+
var DropdownMenuContent = React19.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
|
|
2445
2503
|
const portalContainer = usePortalContainer(container);
|
|
2446
|
-
return /* @__PURE__ */ (0,
|
|
2504
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2447
2505
|
DropdownMenuPrimitive.Content,
|
|
2448
2506
|
{
|
|
2449
2507
|
ref,
|
|
@@ -2460,7 +2518,7 @@ var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, conta
|
|
|
2460
2518
|
) });
|
|
2461
2519
|
});
|
|
2462
2520
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
2463
|
-
var DropdownMenuItem =
|
|
2521
|
+
var DropdownMenuItem = React19.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2464
2522
|
DropdownMenuPrimitive.Item,
|
|
2465
2523
|
{
|
|
2466
2524
|
ref,
|
|
@@ -2470,7 +2528,7 @@ var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2470
2528
|
}
|
|
2471
2529
|
));
|
|
2472
2530
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
2473
|
-
var DropdownMenuCheckboxItem =
|
|
2531
|
+
var DropdownMenuCheckboxItem = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2474
2532
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2475
2533
|
{
|
|
2476
2534
|
ref,
|
|
@@ -2478,13 +2536,13 @@ var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...pro
|
|
|
2478
2536
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
2479
2537
|
...props,
|
|
2480
2538
|
children: [
|
|
2481
|
-
/* @__PURE__ */ (0,
|
|
2539
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
2482
2540
|
children
|
|
2483
2541
|
]
|
|
2484
2542
|
}
|
|
2485
2543
|
));
|
|
2486
2544
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
2487
|
-
var DropdownMenuRadioItem =
|
|
2545
|
+
var DropdownMenuRadioItem = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2488
2546
|
DropdownMenuPrimitive.RadioItem,
|
|
2489
2547
|
{
|
|
2490
2548
|
ref,
|
|
@@ -2492,13 +2550,13 @@ var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props
|
|
|
2492
2550
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
2493
2551
|
...props,
|
|
2494
2552
|
children: [
|
|
2495
|
-
/* @__PURE__ */ (0,
|
|
2553
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
2496
2554
|
children
|
|
2497
2555
|
]
|
|
2498
2556
|
}
|
|
2499
2557
|
));
|
|
2500
2558
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2501
|
-
var DropdownMenuLabel =
|
|
2559
|
+
var DropdownMenuLabel = React19.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2502
2560
|
DropdownMenuPrimitive.Label,
|
|
2503
2561
|
{
|
|
2504
2562
|
ref,
|
|
@@ -2508,7 +2566,7 @@ var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2508
2566
|
}
|
|
2509
2567
|
));
|
|
2510
2568
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2511
|
-
var DropdownMenuSeparator =
|
|
2569
|
+
var DropdownMenuSeparator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2512
2570
|
DropdownMenuPrimitive.Separator,
|
|
2513
2571
|
{
|
|
2514
2572
|
ref,
|
|
@@ -2521,7 +2579,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
2521
2579
|
var DropdownMenuShortcut = ({
|
|
2522
2580
|
className,
|
|
2523
2581
|
...props
|
|
2524
|
-
}) => /* @__PURE__ */ (0,
|
|
2582
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2525
2583
|
"span",
|
|
2526
2584
|
{
|
|
2527
2585
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -2533,7 +2591,7 @@ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
|
2533
2591
|
|
|
2534
2592
|
// src/editable-label.tsx
|
|
2535
2593
|
var import_react2 = require("react");
|
|
2536
|
-
var
|
|
2594
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2537
2595
|
function EditableLabel({
|
|
2538
2596
|
value,
|
|
2539
2597
|
onCommit,
|
|
@@ -2640,8 +2698,8 @@ function EditableLabel({
|
|
|
2640
2698
|
setEditing
|
|
2641
2699
|
]);
|
|
2642
2700
|
if (editing) {
|
|
2643
|
-
return /* @__PURE__ */ (0,
|
|
2644
|
-
/* @__PURE__ */ (0,
|
|
2701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
|
|
2702
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2645
2703
|
"input",
|
|
2646
2704
|
{
|
|
2647
2705
|
ref: inputRef,
|
|
@@ -2681,12 +2739,12 @@ function EditableLabel({
|
|
|
2681
2739
|
)
|
|
2682
2740
|
}
|
|
2683
2741
|
),
|
|
2684
|
-
busy && /* @__PURE__ */ (0,
|
|
2685
|
-
error && /* @__PURE__ */ (0,
|
|
2742
|
+
busy && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
|
|
2743
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
|
|
2686
2744
|
] });
|
|
2687
2745
|
}
|
|
2688
2746
|
if (controlled) return null;
|
|
2689
|
-
return /* @__PURE__ */ (0,
|
|
2747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2690
2748
|
"button",
|
|
2691
2749
|
{
|
|
2692
2750
|
type: "button",
|
|
@@ -2720,8 +2778,8 @@ function EditableLabel({
|
|
|
2720
2778
|
}
|
|
2721
2779
|
|
|
2722
2780
|
// src/input.tsx
|
|
2723
|
-
var
|
|
2724
|
-
var
|
|
2781
|
+
var React20 = __toESM(require("react"), 1);
|
|
2782
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2725
2783
|
var getVariantStyles = (variant = "default") => {
|
|
2726
2784
|
const baseStyles = `flex h-10 w-full border border-border bg-background text-foreground shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
|
|
2727
2785
|
file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
|
|
@@ -2749,9 +2807,9 @@ var getVariantStyles = (variant = "default") => {
|
|
|
2749
2807
|
return baseStyles;
|
|
2750
2808
|
}
|
|
2751
2809
|
};
|
|
2752
|
-
var Input =
|
|
2810
|
+
var Input = React20.forwardRef(
|
|
2753
2811
|
({ className, type, variant = "default", ...props }, ref) => {
|
|
2754
|
-
return /* @__PURE__ */ (0,
|
|
2812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2755
2813
|
"input",
|
|
2756
2814
|
{
|
|
2757
2815
|
type,
|
|
@@ -2763,7 +2821,7 @@ var Input = React19.forwardRef(
|
|
|
2763
2821
|
}
|
|
2764
2822
|
);
|
|
2765
2823
|
Input.displayName = "Input";
|
|
2766
|
-
var EnterInput =
|
|
2824
|
+
var EnterInput = React20.forwardRef(
|
|
2767
2825
|
({ onEnter, ...props }, ref) => {
|
|
2768
2826
|
const handleKeyDown = (e) => {
|
|
2769
2827
|
if (e.key === "Enter" && onEnter) {
|
|
@@ -2771,7 +2829,7 @@ var EnterInput = React19.forwardRef(
|
|
|
2771
2829
|
onEnter();
|
|
2772
2830
|
}
|
|
2773
2831
|
};
|
|
2774
|
-
return /* @__PURE__ */ (0,
|
|
2832
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2775
2833
|
Input,
|
|
2776
2834
|
{
|
|
2777
2835
|
...props,
|
|
@@ -2787,11 +2845,11 @@ var EnterInput = React19.forwardRef(
|
|
|
2787
2845
|
}
|
|
2788
2846
|
);
|
|
2789
2847
|
EnterInput.displayName = "EnterInput";
|
|
2790
|
-
var BasicInput =
|
|
2848
|
+
var BasicInput = React20.forwardRef(
|
|
2791
2849
|
// `variant` is accepted (prop-compatible with Input) but intentionally
|
|
2792
2850
|
// unused — and destructured so it never leaks onto the DOM element.
|
|
2793
2851
|
({ className, type, variant: _variant = "default", ...props }, ref) => {
|
|
2794
|
-
return /* @__PURE__ */ (0,
|
|
2852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2795
2853
|
"input",
|
|
2796
2854
|
{
|
|
2797
2855
|
type,
|
|
@@ -2806,10 +2864,10 @@ var BasicInput = React19.forwardRef(
|
|
|
2806
2864
|
}
|
|
2807
2865
|
);
|
|
2808
2866
|
BasicInput.displayName = "BasicInput";
|
|
2809
|
-
var InputWithPrefix =
|
|
2810
|
-
return /* @__PURE__ */ (0,
|
|
2811
|
-
prefix && /* @__PURE__ */ (0,
|
|
2812
|
-
/* @__PURE__ */ (0,
|
|
2867
|
+
var InputWithPrefix = React20.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
|
|
2868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: cn("relative", wrapperClassName), children: [
|
|
2869
|
+
prefix && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
|
|
2870
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2813
2871
|
Input,
|
|
2814
2872
|
{
|
|
2815
2873
|
ref,
|
|
@@ -2823,9 +2881,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
|
|
|
2823
2881
|
|
|
2824
2882
|
// src/label.tsx
|
|
2825
2883
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
|
|
2826
|
-
var
|
|
2827
|
-
var
|
|
2828
|
-
var Label3 =
|
|
2884
|
+
var React21 = __toESM(require("react"), 1);
|
|
2885
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2886
|
+
var Label3 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2829
2887
|
LabelPrimitive.Root,
|
|
2830
2888
|
{
|
|
2831
2889
|
ref,
|
|
@@ -2840,7 +2898,7 @@ Label3.displayName = LabelPrimitive.Root.displayName;
|
|
|
2840
2898
|
|
|
2841
2899
|
// src/overflow-toolbar.tsx
|
|
2842
2900
|
var import_react3 = require("react");
|
|
2843
|
-
var
|
|
2901
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2844
2902
|
var GAP_PX = 6;
|
|
2845
2903
|
var TONE = {
|
|
2846
2904
|
default: "border border-border bg-background hover:bg-accent text-foreground",
|
|
@@ -2862,16 +2920,16 @@ function ToolbarButton({
|
|
|
2862
2920
|
action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
|
|
2863
2921
|
TONE[tone]
|
|
2864
2922
|
);
|
|
2865
|
-
const inner = /* @__PURE__ */ (0,
|
|
2866
|
-
/* @__PURE__ */ (0,
|
|
2923
|
+
const inner = /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
2924
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2867
2925
|
Icon2,
|
|
2868
2926
|
{
|
|
2869
2927
|
className: cn("w-3.5 h-3.5 shrink-0", action.running && "matrx-spin")
|
|
2870
2928
|
}
|
|
2871
2929
|
),
|
|
2872
|
-
showLabel && /* @__PURE__ */ (0,
|
|
2930
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { children: text })
|
|
2873
2931
|
] });
|
|
2874
|
-
const control = action.href && !action.disabled ? /* @__PURE__ */ (0,
|
|
2932
|
+
const control = action.href && !action.disabled ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2875
2933
|
"a",
|
|
2876
2934
|
{
|
|
2877
2935
|
href: action.href,
|
|
@@ -2881,7 +2939,7 @@ function ToolbarButton({
|
|
|
2881
2939
|
"aria-label": action.label,
|
|
2882
2940
|
children: inner
|
|
2883
2941
|
}
|
|
2884
|
-
) : /* @__PURE__ */ (0,
|
|
2942
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2885
2943
|
"button",
|
|
2886
2944
|
{
|
|
2887
2945
|
type: "button",
|
|
@@ -2893,12 +2951,12 @@ function ToolbarButton({
|
|
|
2893
2951
|
}
|
|
2894
2952
|
);
|
|
2895
2953
|
if (enableTooltip && action.hideLabel && renderTooltip) {
|
|
2896
|
-
return /* @__PURE__ */ (0,
|
|
2954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_jsx_runtime27.Fragment, { children: renderTooltip(control, action.label) });
|
|
2897
2955
|
}
|
|
2898
2956
|
return control;
|
|
2899
2957
|
}
|
|
2900
2958
|
function OverflowTrigger({ ariaLabel }) {
|
|
2901
|
-
return /* @__PURE__ */ (0,
|
|
2959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2902
2960
|
"button",
|
|
2903
2961
|
{
|
|
2904
2962
|
type: "button",
|
|
@@ -2909,7 +2967,7 @@ function OverflowTrigger({ ariaLabel }) {
|
|
|
2909
2967
|
"inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
|
|
2910
2968
|
"border border-border bg-background hover:bg-accent text-foreground"
|
|
2911
2969
|
),
|
|
2912
|
-
children: /* @__PURE__ */ (0,
|
|
2970
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
|
|
2913
2971
|
}
|
|
2914
2972
|
);
|
|
2915
2973
|
}
|
|
@@ -2969,22 +3027,22 @@ function OverflowToolbar({
|
|
|
2969
3027
|
}, [signature, leading != null]);
|
|
2970
3028
|
const shown = visibleActions.slice(0, visibleCount);
|
|
2971
3029
|
const hidden = visibleActions.slice(visibleCount);
|
|
2972
|
-
return /* @__PURE__ */ (0,
|
|
2973
|
-
/* @__PURE__ */ (0,
|
|
3030
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
|
|
3031
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2974
3032
|
"div",
|
|
2975
3033
|
{
|
|
2976
3034
|
ref: ghostRef,
|
|
2977
3035
|
"aria-hidden": true,
|
|
2978
3036
|
className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
|
|
2979
3037
|
children: [
|
|
2980
|
-
visibleActions.map((a) => /* @__PURE__ */ (0,
|
|
2981
|
-
/* @__PURE__ */ (0,
|
|
3038
|
+
visibleActions.map((a) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ToolbarButton, { action: a }, a.id)),
|
|
3039
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
2982
3040
|
]
|
|
2983
3041
|
}
|
|
2984
3042
|
),
|
|
2985
|
-
/* @__PURE__ */ (0,
|
|
2986
|
-
leading != null && /* @__PURE__ */ (0,
|
|
2987
|
-
shown.map((a) => /* @__PURE__ */ (0,
|
|
3043
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center justify-end gap-1.5", children: [
|
|
3044
|
+
leading != null && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { ref: leadingRef, className: "shrink-0", children: leading }),
|
|
3045
|
+
shown.map((a) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2988
3046
|
ToolbarButton,
|
|
2989
3047
|
{
|
|
2990
3048
|
action: a,
|
|
@@ -2995,7 +3053,7 @@ function OverflowToolbar({
|
|
|
2995
3053
|
)),
|
|
2996
3054
|
hidden.length > 0 && renderOverflowMenu({
|
|
2997
3055
|
actions: hidden,
|
|
2998
|
-
trigger: /* @__PURE__ */ (0,
|
|
3056
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
2999
3057
|
})
|
|
3000
3058
|
] })
|
|
3001
3059
|
] });
|
|
@@ -3003,20 +3061,20 @@ function OverflowToolbar({
|
|
|
3003
3061
|
|
|
3004
3062
|
// src/progress.tsx
|
|
3005
3063
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
|
|
3006
|
-
var
|
|
3007
|
-
var
|
|
3064
|
+
var React23 = __toESM(require("react"), 1);
|
|
3065
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3008
3066
|
var PROGRESS_TONES = {
|
|
3009
3067
|
default: "bg-primary",
|
|
3010
3068
|
success: "bg-success",
|
|
3011
3069
|
warning: "bg-warning",
|
|
3012
3070
|
destructive: "bg-destructive"
|
|
3013
3071
|
};
|
|
3014
|
-
var Progress =
|
|
3072
|
+
var Progress = React23.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
|
|
3015
3073
|
const { value, max } = props;
|
|
3016
3074
|
const ceiling = max ?? 100;
|
|
3017
3075
|
const isIndeterminate = value === null || value === void 0;
|
|
3018
3076
|
const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
|
|
3019
|
-
return /* @__PURE__ */ (0,
|
|
3077
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3020
3078
|
ProgressPrimitive.Root,
|
|
3021
3079
|
{
|
|
3022
3080
|
ref,
|
|
@@ -3026,7 +3084,7 @@ var Progress = React22.forwardRef(({ className, tone = "default", indicatorClass
|
|
|
3026
3084
|
className
|
|
3027
3085
|
),
|
|
3028
3086
|
...props,
|
|
3029
|
-
children: /* @__PURE__ */ (0,
|
|
3087
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3030
3088
|
ProgressPrimitive.Indicator,
|
|
3031
3089
|
{
|
|
3032
3090
|
"data-slot": "progress-indicator",
|
|
@@ -3046,9 +3104,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
3046
3104
|
|
|
3047
3105
|
// src/scroll-area.tsx
|
|
3048
3106
|
var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
|
|
3049
|
-
var
|
|
3050
|
-
var
|
|
3051
|
-
var ScrollArea =
|
|
3107
|
+
var React24 = __toESM(require("react"), 1);
|
|
3108
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3109
|
+
var ScrollArea = React24.forwardRef(
|
|
3052
3110
|
({
|
|
3053
3111
|
className,
|
|
3054
3112
|
children,
|
|
@@ -3057,7 +3115,7 @@ var ScrollArea = React23.forwardRef(
|
|
|
3057
3115
|
scrollBarClassName,
|
|
3058
3116
|
orientation = "vertical",
|
|
3059
3117
|
...props
|
|
3060
|
-
}, ref) => /* @__PURE__ */ (0,
|
|
3118
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
3061
3119
|
ScrollAreaPrimitive.Root,
|
|
3062
3120
|
{
|
|
3063
3121
|
ref,
|
|
@@ -3065,7 +3123,7 @@ var ScrollArea = React23.forwardRef(
|
|
|
3065
3123
|
className: cn("relative overflow-hidden", className),
|
|
3066
3124
|
...props,
|
|
3067
3125
|
children: [
|
|
3068
|
-
/* @__PURE__ */ (0,
|
|
3126
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3069
3127
|
ScrollAreaPrimitive.Viewport,
|
|
3070
3128
|
{
|
|
3071
3129
|
ref: viewportRef,
|
|
@@ -3074,14 +3132,14 @@ var ScrollArea = React23.forwardRef(
|
|
|
3074
3132
|
children
|
|
3075
3133
|
}
|
|
3076
3134
|
),
|
|
3077
|
-
/* @__PURE__ */ (0,
|
|
3078
|
-
/* @__PURE__ */ (0,
|
|
3135
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ScrollBar, { orientation, className: scrollBarClassName }),
|
|
3136
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ScrollAreaPrimitive.Corner, {})
|
|
3079
3137
|
]
|
|
3080
3138
|
}
|
|
3081
3139
|
)
|
|
3082
3140
|
);
|
|
3083
3141
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
3084
|
-
var ScrollBar =
|
|
3142
|
+
var ScrollBar = React24.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3085
3143
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
3086
3144
|
{
|
|
3087
3145
|
ref,
|
|
@@ -3094,7 +3152,7 @@ var ScrollBar = React23.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
3094
3152
|
className
|
|
3095
3153
|
),
|
|
3096
3154
|
...props,
|
|
3097
|
-
children: /* @__PURE__ */ (0,
|
|
3155
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3098
3156
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
3099
3157
|
{
|
|
3100
3158
|
"data-slot": "scroll-area-thumb",
|
|
@@ -3106,7 +3164,7 @@ var ScrollBar = React23.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
3106
3164
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
3107
3165
|
|
|
3108
3166
|
// src/score-ring.tsx
|
|
3109
|
-
var
|
|
3167
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3110
3168
|
var DEFAULT_SCORE_THRESHOLDS = {
|
|
3111
3169
|
good: 75,
|
|
3112
3170
|
warning: 50
|
|
@@ -3137,7 +3195,7 @@ function ScoreRing({
|
|
|
3137
3195
|
const circumference = 2 * Math.PI * radius;
|
|
3138
3196
|
const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
|
|
3139
3197
|
const dashOffset = circumference * (1 - boundedPct / 100);
|
|
3140
|
-
return /* @__PURE__ */ (0,
|
|
3198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
3141
3199
|
"div",
|
|
3142
3200
|
{
|
|
3143
3201
|
className: cn(
|
|
@@ -3148,8 +3206,8 @@ function ScoreRing({
|
|
|
3148
3206
|
role: "img",
|
|
3149
3207
|
"aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
|
|
3150
3208
|
children: [
|
|
3151
|
-
/* @__PURE__ */ (0,
|
|
3152
|
-
/* @__PURE__ */ (0,
|
|
3209
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
|
|
3210
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3153
3211
|
"circle",
|
|
3154
3212
|
{
|
|
3155
3213
|
cx: "50",
|
|
@@ -3160,7 +3218,7 @@ function ScoreRing({
|
|
|
3160
3218
|
fill: "none"
|
|
3161
3219
|
}
|
|
3162
3220
|
),
|
|
3163
|
-
pct !== null ? /* @__PURE__ */ (0,
|
|
3221
|
+
pct !== null ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3164
3222
|
"circle",
|
|
3165
3223
|
{
|
|
3166
3224
|
cx: "50",
|
|
@@ -3179,8 +3237,8 @@ function ScoreRing({
|
|
|
3179
3237
|
}
|
|
3180
3238
|
) : null
|
|
3181
3239
|
] }),
|
|
3182
|
-
/* @__PURE__ */ (0,
|
|
3183
|
-
/* @__PURE__ */ (0,
|
|
3240
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "absolute flex flex-col items-center justify-center", children: [
|
|
3241
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3184
3242
|
"span",
|
|
3185
3243
|
{
|
|
3186
3244
|
className: cn(
|
|
@@ -3190,7 +3248,7 @@ function ScoreRing({
|
|
|
3190
3248
|
children: pct === null ? "\u2014" : `${pct}${suffix}`
|
|
3191
3249
|
}
|
|
3192
3250
|
),
|
|
3193
|
-
label ? /* @__PURE__ */ (0,
|
|
3251
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
|
|
3194
3252
|
] })
|
|
3195
3253
|
]
|
|
3196
3254
|
}
|
|
@@ -3198,7 +3256,7 @@ function ScoreRing({
|
|
|
3198
3256
|
}
|
|
3199
3257
|
|
|
3200
3258
|
// src/segmented-control.tsx
|
|
3201
|
-
var
|
|
3259
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3202
3260
|
function SegmentedControl({
|
|
3203
3261
|
value,
|
|
3204
3262
|
onValueChange,
|
|
@@ -3213,7 +3271,7 @@ function SegmentedControl({
|
|
|
3213
3271
|
md: "h-9 text-sm",
|
|
3214
3272
|
lg: "h-10 text-base"
|
|
3215
3273
|
};
|
|
3216
|
-
return /* @__PURE__ */ (0,
|
|
3274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3217
3275
|
"div",
|
|
3218
3276
|
{
|
|
3219
3277
|
className: cn(
|
|
@@ -3224,7 +3282,7 @@ function SegmentedControl({
|
|
|
3224
3282
|
role: "tablist",
|
|
3225
3283
|
children: data.map((option) => {
|
|
3226
3284
|
const isActive = value === option.value;
|
|
3227
|
-
return /* @__PURE__ */ (0,
|
|
3285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3228
3286
|
"button",
|
|
3229
3287
|
{
|
|
3230
3288
|
type: "button",
|
|
@@ -3250,8 +3308,8 @@ function SegmentedControl({
|
|
|
3250
3308
|
}
|
|
3251
3309
|
|
|
3252
3310
|
// src/archive-filter.tsx
|
|
3253
|
-
var
|
|
3254
|
-
var
|
|
3311
|
+
var React25 = __toESM(require("react"), 1);
|
|
3312
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3255
3313
|
var ARCHIVE_FILTER_VALUES = ["active", "archived", "all"];
|
|
3256
3314
|
var DEFAULT_ARCHIVE_FILTER = "active";
|
|
3257
3315
|
var ARCHIVE_LABEL = "Archived";
|
|
@@ -3276,7 +3334,7 @@ function ArchiveFilter({
|
|
|
3276
3334
|
"aria-label": ariaLabel = "Archive filter",
|
|
3277
3335
|
disabled = false
|
|
3278
3336
|
}) {
|
|
3279
|
-
const data =
|
|
3337
|
+
const data = React25.useMemo(
|
|
3280
3338
|
() => ARCHIVE_FILTER_VALUES.map((state) => {
|
|
3281
3339
|
const text = labels?.[state] ?? ARCHIVE_FILTER_LABELS[state];
|
|
3282
3340
|
const count = counts?.[state];
|
|
@@ -3284,15 +3342,15 @@ function ArchiveFilter({
|
|
|
3284
3342
|
value: state,
|
|
3285
3343
|
disabled,
|
|
3286
3344
|
ariaLabel: typeof count === "number" ? `${text} ${count}` : text,
|
|
3287
|
-
label: typeof count === "number" ? /* @__PURE__ */ (0,
|
|
3288
|
-
/* @__PURE__ */ (0,
|
|
3289
|
-
/* @__PURE__ */ (0,
|
|
3345
|
+
label: typeof count === "number" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
3346
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { children: text }),
|
|
3347
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-muted-foreground tabular-nums", children: count })
|
|
3290
3348
|
] }) : text
|
|
3291
3349
|
};
|
|
3292
3350
|
}),
|
|
3293
3351
|
[counts, labels, disabled]
|
|
3294
3352
|
);
|
|
3295
|
-
return /* @__PURE__ */ (0,
|
|
3353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { role: "group", "aria-label": ariaLabel, className: cn("inline-flex", className), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3296
3354
|
SegmentedControl,
|
|
3297
3355
|
{
|
|
3298
3356
|
value,
|
|
@@ -3304,7 +3362,7 @@ function ArchiveFilter({
|
|
|
3304
3362
|
}
|
|
3305
3363
|
|
|
3306
3364
|
// src/archived-disclosure.tsx
|
|
3307
|
-
var
|
|
3365
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
3308
3366
|
function ArchivedDisclosure({
|
|
3309
3367
|
count,
|
|
3310
3368
|
open,
|
|
@@ -3318,8 +3376,8 @@ function ArchivedDisclosure({
|
|
|
3318
3376
|
}) {
|
|
3319
3377
|
if (count <= 0 && !(open && keepWhileOpen)) return null;
|
|
3320
3378
|
const parenthetical = countLabel === void 0 ? String(count) : countLabel;
|
|
3321
|
-
return /* @__PURE__ */ (0,
|
|
3322
|
-
/* @__PURE__ */ (0,
|
|
3379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: cn("min-w-0", className), children: [
|
|
3380
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3323
3381
|
"button",
|
|
3324
3382
|
{
|
|
3325
3383
|
type: "button",
|
|
@@ -3327,21 +3385,21 @@ function ArchivedDisclosure({
|
|
|
3327
3385
|
"aria-expanded": open,
|
|
3328
3386
|
className: "flex w-full items-center gap-2 rounded-lg px-2 py-2 text-sm text-muted-foreground hover:bg-accent active:bg-accent",
|
|
3329
3387
|
children: [
|
|
3330
|
-
open ? /* @__PURE__ */ (0,
|
|
3331
|
-
/* @__PURE__ */ (0,
|
|
3332
|
-
/* @__PURE__ */ (0,
|
|
3388
|
+
open ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ChevronDownIcon, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ChevronRightIcon, { className: "h-4 w-4 shrink-0" }),
|
|
3389
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ArchiveIcon, { className: "h-4 w-4 shrink-0" }),
|
|
3390
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "truncate", children: parenthetical === null ? label : `${label} (${parenthetical})` })
|
|
3333
3391
|
]
|
|
3334
3392
|
}
|
|
3335
3393
|
),
|
|
3336
|
-
open && children ? /* @__PURE__ */ (0,
|
|
3394
|
+
open && children ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: cn("mt-1", contentClassName), children }) : null
|
|
3337
3395
|
] });
|
|
3338
3396
|
}
|
|
3339
3397
|
|
|
3340
3398
|
// src/select.tsx
|
|
3341
3399
|
var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
|
|
3342
3400
|
var import_class_variance_authority4 = require("class-variance-authority");
|
|
3343
|
-
var
|
|
3344
|
-
var
|
|
3401
|
+
var React26 = __toESM(require("react"), 1);
|
|
3402
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
3345
3403
|
var Select = SelectPrimitive.Root;
|
|
3346
3404
|
var SelectGroup = SelectPrimitive.Group;
|
|
3347
3405
|
var SelectValue = SelectPrimitive.Value;
|
|
@@ -3360,7 +3418,7 @@ var selectTriggerVariants = (0, import_class_variance_authority4.cva)(
|
|
|
3360
3418
|
}
|
|
3361
3419
|
}
|
|
3362
3420
|
);
|
|
3363
|
-
var SelectTrigger =
|
|
3421
|
+
var SelectTrigger = React26.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
3364
3422
|
SelectPrimitive.Trigger,
|
|
3365
3423
|
{
|
|
3366
3424
|
ref,
|
|
@@ -3368,12 +3426,12 @@ var SelectTrigger = React25.forwardRef(({ className, children, hideArrow = false
|
|
|
3368
3426
|
...props,
|
|
3369
3427
|
children: [
|
|
3370
3428
|
children,
|
|
3371
|
-
!hideArrow && /* @__PURE__ */ (0,
|
|
3429
|
+
!hideArrow && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadixChevronDownIcon, { className: "h-4 w-4 shrink-0 opacity-50" }) })
|
|
3372
3430
|
]
|
|
3373
3431
|
}
|
|
3374
3432
|
));
|
|
3375
3433
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
3376
|
-
var SelectScrollUpButton =
|
|
3434
|
+
var SelectScrollUpButton = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3377
3435
|
SelectPrimitive.ScrollUpButton,
|
|
3378
3436
|
{
|
|
3379
3437
|
ref,
|
|
@@ -3382,11 +3440,11 @@ var SelectScrollUpButton = React25.forwardRef(({ className, ...props }, ref) =>
|
|
|
3382
3440
|
className
|
|
3383
3441
|
),
|
|
3384
3442
|
...props,
|
|
3385
|
-
children: /* @__PURE__ */ (0,
|
|
3443
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadixChevronUpIcon, {})
|
|
3386
3444
|
}
|
|
3387
3445
|
));
|
|
3388
3446
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
3389
|
-
var SelectScrollDownButton =
|
|
3447
|
+
var SelectScrollDownButton = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3390
3448
|
SelectPrimitive.ScrollDownButton,
|
|
3391
3449
|
{
|
|
3392
3450
|
ref,
|
|
@@ -3395,11 +3453,11 @@ var SelectScrollDownButton = React25.forwardRef(({ className, ...props }, ref) =
|
|
|
3395
3453
|
className
|
|
3396
3454
|
),
|
|
3397
3455
|
...props,
|
|
3398
|
-
children: /* @__PURE__ */ (0,
|
|
3456
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadixChevronDownIcon, {})
|
|
3399
3457
|
}
|
|
3400
3458
|
));
|
|
3401
3459
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
3402
|
-
var SelectContent =
|
|
3460
|
+
var SelectContent = React26.forwardRef(
|
|
3403
3461
|
({
|
|
3404
3462
|
className,
|
|
3405
3463
|
children,
|
|
@@ -3409,7 +3467,7 @@ var SelectContent = React25.forwardRef(
|
|
|
3409
3467
|
...props
|
|
3410
3468
|
}, ref) => {
|
|
3411
3469
|
const portalContainer = usePortalContainer(container);
|
|
3412
|
-
return /* @__PURE__ */ (0,
|
|
3470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
3413
3471
|
SelectPrimitive.Content,
|
|
3414
3472
|
{
|
|
3415
3473
|
ref,
|
|
@@ -3427,8 +3485,8 @@ var SelectContent = React25.forwardRef(
|
|
|
3427
3485
|
position,
|
|
3428
3486
|
...props,
|
|
3429
3487
|
children: [
|
|
3430
|
-
/* @__PURE__ */ (0,
|
|
3431
|
-
/* @__PURE__ */ (0,
|
|
3488
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SelectScrollUpButton, {}),
|
|
3489
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3432
3490
|
SelectPrimitive.Viewport,
|
|
3433
3491
|
{
|
|
3434
3492
|
className: cn(
|
|
@@ -3438,14 +3496,14 @@ var SelectContent = React25.forwardRef(
|
|
|
3438
3496
|
children
|
|
3439
3497
|
}
|
|
3440
3498
|
),
|
|
3441
|
-
/* @__PURE__ */ (0,
|
|
3499
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SelectScrollDownButton, {})
|
|
3442
3500
|
]
|
|
3443
3501
|
}
|
|
3444
3502
|
) });
|
|
3445
3503
|
}
|
|
3446
3504
|
);
|
|
3447
3505
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
3448
|
-
var SelectLabel =
|
|
3506
|
+
var SelectLabel = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3449
3507
|
SelectPrimitive.Label,
|
|
3450
3508
|
{
|
|
3451
3509
|
ref,
|
|
@@ -3454,7 +3512,7 @@ var SelectLabel = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3454
3512
|
}
|
|
3455
3513
|
));
|
|
3456
3514
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
3457
|
-
var SelectItem =
|
|
3515
|
+
var SelectItem = React26.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
3458
3516
|
SelectPrimitive.Item,
|
|
3459
3517
|
{
|
|
3460
3518
|
ref,
|
|
@@ -3465,14 +3523,14 @@ var SelectItem = React25.forwardRef(({ className, children, description, ...prop
|
|
|
3465
3523
|
),
|
|
3466
3524
|
...props,
|
|
3467
3525
|
children: [
|
|
3468
|
-
/* @__PURE__ */ (0,
|
|
3469
|
-
/* @__PURE__ */ (0,
|
|
3470
|
-
description ? /* @__PURE__ */ (0,
|
|
3526
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
3527
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "min-w-0 whitespace-normal break-words [overflow-wrap:anywhere]", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SelectPrimitive.ItemText, { children }) }),
|
|
3528
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "block min-w-0 break-words text-xs leading-snug text-muted-foreground [overflow-wrap:anywhere]", children: description }) : null
|
|
3471
3529
|
]
|
|
3472
3530
|
}
|
|
3473
3531
|
));
|
|
3474
3532
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
3475
|
-
var SelectSeparator =
|
|
3533
|
+
var SelectSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3476
3534
|
SelectPrimitive.Separator,
|
|
3477
3535
|
{
|
|
3478
3536
|
ref,
|
|
@@ -3484,9 +3542,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
|
3484
3542
|
|
|
3485
3543
|
// src/separator.tsx
|
|
3486
3544
|
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
|
|
3487
|
-
var
|
|
3488
|
-
var
|
|
3489
|
-
var Separator4 =
|
|
3545
|
+
var React27 = __toESM(require("react"), 1);
|
|
3546
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
3547
|
+
var Separator4 = React27.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3490
3548
|
SeparatorPrimitive.Root,
|
|
3491
3549
|
{
|
|
3492
3550
|
ref,
|
|
@@ -3506,11 +3564,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
3506
3564
|
var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
3507
3565
|
var import_react_tree4 = require("@ai-matrx/kit/react-tree");
|
|
3508
3566
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
3509
|
-
var
|
|
3510
|
-
var
|
|
3511
|
-
var SheetContentBase =
|
|
3567
|
+
var React28 = __toESM(require("react"), 1);
|
|
3568
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3569
|
+
var SheetContentBase = React28.forwardRef(({ ...props }, ref) => {
|
|
3512
3570
|
const isModal = useRadixDialogModal();
|
|
3513
|
-
return /* @__PURE__ */ (0,
|
|
3571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3514
3572
|
SheetPrimitive.Content,
|
|
3515
3573
|
{
|
|
3516
3574
|
...props,
|
|
@@ -3520,15 +3578,15 @@ var SheetContentBase = React27.forwardRef(({ ...props }, ref) => {
|
|
|
3520
3578
|
);
|
|
3521
3579
|
});
|
|
3522
3580
|
SheetContentBase.displayName = "SheetContentBase";
|
|
3523
|
-
var Sheet =
|
|
3581
|
+
var Sheet = React28.forwardRef(({ children, ...props }, _ref) => {
|
|
3524
3582
|
const modal = props.modal ?? true;
|
|
3525
|
-
return /* @__PURE__ */ (0,
|
|
3583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SheetPrimitive.Root, { ...props, modal, children }) });
|
|
3526
3584
|
});
|
|
3527
3585
|
Sheet.displayName = "Sheet";
|
|
3528
3586
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
3529
3587
|
var SheetClose = SheetPrimitive.Close;
|
|
3530
3588
|
var SheetPortal = SheetPrimitive.Portal;
|
|
3531
|
-
var SheetOverlay =
|
|
3589
|
+
var SheetOverlay = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3532
3590
|
SheetPrimitive.Overlay,
|
|
3533
3591
|
{
|
|
3534
3592
|
className: cn(
|
|
@@ -3565,7 +3623,7 @@ var sheetVariants = (0, import_class_variance_authority5.cva)(
|
|
|
3565
3623
|
}
|
|
3566
3624
|
}
|
|
3567
3625
|
);
|
|
3568
|
-
var SheetDescription =
|
|
3626
|
+
var SheetDescription = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3569
3627
|
SheetPrimitive.Description,
|
|
3570
3628
|
{
|
|
3571
3629
|
ref,
|
|
@@ -3574,7 +3632,7 @@ var SheetDescription = React27.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
3574
3632
|
}
|
|
3575
3633
|
));
|
|
3576
3634
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
3577
|
-
var SheetContent =
|
|
3635
|
+
var SheetContent = React28.forwardRef(
|
|
3578
3636
|
({
|
|
3579
3637
|
side = "right",
|
|
3580
3638
|
className,
|
|
@@ -3586,9 +3644,9 @@ var SheetContent = React27.forwardRef(
|
|
|
3586
3644
|
...props
|
|
3587
3645
|
}, ref) => {
|
|
3588
3646
|
const hasDescription = (0, import_react_tree4.treeContainsComponent)(children, SheetDescription) || (0, import_react_tree4.treeContainsComponent)(children, SheetPrimitive.Description);
|
|
3589
|
-
return /* @__PURE__ */ (0,
|
|
3590
|
-
!hideOverlay && /* @__PURE__ */ (0,
|
|
3591
|
-
/* @__PURE__ */ (0,
|
|
3647
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(SheetPortal, { children: [
|
|
3648
|
+
!hideOverlay && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(SheetOverlay, { className: overlayClassName }),
|
|
3649
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
3592
3650
|
SheetContentBase,
|
|
3593
3651
|
{
|
|
3594
3652
|
ref,
|
|
@@ -3600,9 +3658,9 @@ var SheetContent = React27.forwardRef(
|
|
|
3600
3658
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
3601
3659
|
...props,
|
|
3602
3660
|
children: [
|
|
3603
|
-
!hideCloseButton && /* @__PURE__ */ (0,
|
|
3604
|
-
/* @__PURE__ */ (0,
|
|
3605
|
-
/* @__PURE__ */ (0,
|
|
3661
|
+
!hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
3662
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Cross2Icon, { className: "h-4 w-4" }),
|
|
3663
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "sr-only", children: "Close" })
|
|
3606
3664
|
] }),
|
|
3607
3665
|
children
|
|
3608
3666
|
]
|
|
@@ -3615,7 +3673,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
|
3615
3673
|
var SheetHeader = ({
|
|
3616
3674
|
className,
|
|
3617
3675
|
...props
|
|
3618
|
-
}) => /* @__PURE__ */ (0,
|
|
3676
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3619
3677
|
"div",
|
|
3620
3678
|
{
|
|
3621
3679
|
className: cn(
|
|
@@ -3629,7 +3687,7 @@ SheetHeader.displayName = "SheetHeader";
|
|
|
3629
3687
|
var SheetFooter = ({
|
|
3630
3688
|
className,
|
|
3631
3689
|
...props
|
|
3632
|
-
}) => /* @__PURE__ */ (0,
|
|
3690
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3633
3691
|
"div",
|
|
3634
3692
|
{
|
|
3635
3693
|
"data-slot": "sheet-footer",
|
|
@@ -3641,7 +3699,7 @@ var SheetFooter = ({
|
|
|
3641
3699
|
}
|
|
3642
3700
|
);
|
|
3643
3701
|
SheetFooter.displayName = "SheetFooter";
|
|
3644
|
-
var SheetTitle =
|
|
3702
|
+
var SheetTitle = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3645
3703
|
SheetPrimitive.Title,
|
|
3646
3704
|
{
|
|
3647
3705
|
ref,
|
|
@@ -3652,12 +3710,12 @@ var SheetTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3652
3710
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
3653
3711
|
|
|
3654
3712
|
// src/organization-picker.tsx
|
|
3655
|
-
var
|
|
3713
|
+
var React30 = __toESM(require("react"), 1);
|
|
3656
3714
|
|
|
3657
3715
|
// src/skeleton.tsx
|
|
3658
|
-
var
|
|
3716
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
3659
3717
|
function Skeleton({ className, animated = true, ...props }) {
|
|
3660
|
-
return /* @__PURE__ */ (0,
|
|
3718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3661
3719
|
"div",
|
|
3662
3720
|
{
|
|
3663
3721
|
"data-slot": "skeleton",
|
|
@@ -3673,8 +3731,8 @@ function Skeleton({ className, animated = true, ...props }) {
|
|
|
3673
3731
|
|
|
3674
3732
|
// src/switch.tsx
|
|
3675
3733
|
var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
|
|
3676
|
-
var
|
|
3677
|
-
var
|
|
3734
|
+
var React29 = __toESM(require("react"), 1);
|
|
3735
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3678
3736
|
var SWITCH_SIZES = {
|
|
3679
3737
|
sm: {
|
|
3680
3738
|
root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
|
|
@@ -3685,7 +3743,7 @@ var SWITCH_SIZES = {
|
|
|
3685
3743
|
thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
3686
3744
|
}
|
|
3687
3745
|
};
|
|
3688
|
-
var Switch =
|
|
3746
|
+
var Switch = React29.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3689
3747
|
SwitchPrimitives.Root,
|
|
3690
3748
|
{
|
|
3691
3749
|
ref,
|
|
@@ -3696,7 +3754,7 @@ var Switch = React28.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3696
3754
|
className
|
|
3697
3755
|
),
|
|
3698
3756
|
...props,
|
|
3699
|
-
children: /* @__PURE__ */ (0,
|
|
3757
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3700
3758
|
SwitchPrimitives.Thumb,
|
|
3701
3759
|
{
|
|
3702
3760
|
"data-slot": "switch-thumb",
|
|
@@ -3711,7 +3769,7 @@ var Switch = React28.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3711
3769
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
3712
3770
|
|
|
3713
3771
|
// src/organization-picker.tsx
|
|
3714
|
-
var
|
|
3772
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3715
3773
|
var SEARCH_APPEARS_ABOVE = 8;
|
|
3716
3774
|
function matchesQuery(org, query) {
|
|
3717
3775
|
const q = query.trim().toLowerCase();
|
|
@@ -3726,7 +3784,7 @@ function OrganizationAbbreviation({
|
|
|
3726
3784
|
className
|
|
3727
3785
|
}) {
|
|
3728
3786
|
const mark = abbreviation && abbreviation.trim() || name.trim().slice(0, 1) || "?";
|
|
3729
|
-
return /* @__PURE__ */ (0,
|
|
3787
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3730
3788
|
"span",
|
|
3731
3789
|
{
|
|
3732
3790
|
className: cn(
|
|
@@ -3751,8 +3809,8 @@ function OrganizationPicker({
|
|
|
3751
3809
|
itemClassName,
|
|
3752
3810
|
className
|
|
3753
3811
|
}) {
|
|
3754
|
-
const [query, setQuery] =
|
|
3755
|
-
const [showFixtures, setShowFixtures] =
|
|
3812
|
+
const [query, setQuery] = React30.useState("");
|
|
3813
|
+
const [showFixtures, setShowFixtures] = React30.useState(false);
|
|
3756
3814
|
const active = organizations.find((o) => o.id === activeOrganizationId) ?? null;
|
|
3757
3815
|
const isDefault = (id) => !!defaultOrganizationId && id === defaultOrganizationId;
|
|
3758
3816
|
const rank = (org) => org.id === defaultOrganizationId ? 0 : org.isOwn ? 1 : 2;
|
|
@@ -3764,7 +3822,7 @@ function OrganizationPicker({
|
|
|
3764
3822
|
const sharesItsName = (org) => organizations.filter((other) => other.name.trim() === org.name.trim()).length > 1;
|
|
3765
3823
|
const renderRow = (org) => {
|
|
3766
3824
|
const isActive = org.id === activeOrganizationId;
|
|
3767
|
-
return /* @__PURE__ */ (0,
|
|
3825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("li", { role: "none", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
3768
3826
|
"button",
|
|
3769
3827
|
{
|
|
3770
3828
|
type: "button",
|
|
@@ -3781,7 +3839,7 @@ function OrganizationPicker({
|
|
|
3781
3839
|
itemClassName
|
|
3782
3840
|
),
|
|
3783
3841
|
children: [
|
|
3784
|
-
/* @__PURE__ */ (0,
|
|
3842
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3785
3843
|
OrganizationAbbreviation,
|
|
3786
3844
|
{
|
|
3787
3845
|
abbreviation: org.abbreviation,
|
|
@@ -3792,12 +3850,12 @@ function OrganizationPicker({
|
|
|
3792
3850
|
)
|
|
3793
3851
|
}
|
|
3794
3852
|
),
|
|
3795
|
-
/* @__PURE__ */ (0,
|
|
3796
|
-
/* @__PURE__ */ (0,
|
|
3797
|
-
sharesItsName(org) && org.distinguisher ? /* @__PURE__ */ (0,
|
|
3853
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
3854
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "truncate", children: org.name }),
|
|
3855
|
+
sharesItsName(org) && org.distinguisher ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "truncate text-[10px] font-normal text-muted-foreground", children: org.distinguisher }) : null
|
|
3798
3856
|
] }),
|
|
3799
|
-
org.isPersonal && /* @__PURE__ */ (0,
|
|
3800
|
-
isDefault(org.id) && /* @__PURE__ */ (0,
|
|
3857
|
+
org.isPersonal && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Personal" }),
|
|
3858
|
+
isDefault(org.id) && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3801
3859
|
StarIcon,
|
|
3802
3860
|
{
|
|
3803
3861
|
className: "h-[13px] w-[13px] shrink-0 fill-warning text-warning",
|
|
@@ -3806,23 +3864,31 @@ function OrganizationPicker({
|
|
|
3806
3864
|
role: "img"
|
|
3807
3865
|
}
|
|
3808
3866
|
),
|
|
3809
|
-
isActive && /* @__PURE__ */ (0,
|
|
3867
|
+
isActive && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(LucideCheckIcon, { className: "h-[15px] w-[15px] shrink-0 text-primary" })
|
|
3810
3868
|
]
|
|
3811
3869
|
}
|
|
3812
3870
|
) }, org.id);
|
|
3813
3871
|
};
|
|
3814
|
-
return /* @__PURE__ */ (0,
|
|
3815
|
-
!hideHeading && /* @__PURE__ */ (0,
|
|
3816
|
-
loading ? /* @__PURE__ */ (0,
|
|
3817
|
-
/* @__PURE__ */ (0,
|
|
3818
|
-
/* @__PURE__ */ (0,
|
|
3819
|
-
] }) : loadFailed ? /* @__PURE__ */ (0,
|
|
3820
|
-
|
|
3872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: cn("flex flex-col", className), "data-slot": "organization-picker", children: [
|
|
3873
|
+
!hideHeading && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "px-2 py-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Organization" }),
|
|
3874
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "space-y-1 px-1 py-1", "aria-busy": "true", "aria-label": "Loading organizations", children: [
|
|
3875
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Skeleton, { className: "h-7 rounded-md" }),
|
|
3876
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Skeleton, { className: "h-7 rounded-md" })
|
|
3877
|
+
] }) : loadFailed ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3878
|
+
ErrorBox,
|
|
3879
|
+
{
|
|
3880
|
+
className: "px-2 py-2 text-xs text-destructive",
|
|
3881
|
+
operation: "Load your organizations",
|
|
3882
|
+
origin: "design-system/OrganizationPicker",
|
|
3883
|
+
children: "Could not load organizations."
|
|
3884
|
+
}
|
|
3885
|
+
) : organizations.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "px-2 py-2 text-xs text-muted-foreground", children: "Your account is not a member of any organization. Ask an administrator to add you to one." }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
3886
|
+
active ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "px-2 pb-1 text-[11px] text-muted-foreground", "data-slot": "organization-picker-status", children: [
|
|
3821
3887
|
"Working in",
|
|
3822
3888
|
" ",
|
|
3823
|
-
/* @__PURE__ */ (0,
|
|
3824
|
-
] }) : /* @__PURE__ */ (0,
|
|
3825
|
-
searchable && /* @__PURE__ */ (0,
|
|
3889
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "font-medium text-foreground", children: active.name })
|
|
3890
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "px-2 pb-1 text-[11px] text-destructive", "data-slot": "organization-picker-status", children: "No organization selected \u2014 pick one below." }),
|
|
3891
|
+
searchable && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "px-2 pb-1.5", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3826
3892
|
Input,
|
|
3827
3893
|
{
|
|
3828
3894
|
type: "search",
|
|
@@ -3836,7 +3902,7 @@ function OrganizationPicker({
|
|
|
3836
3902
|
"data-slot": "organization-picker-search"
|
|
3837
3903
|
}
|
|
3838
3904
|
) }),
|
|
3839
|
-
listed.length === 0 && fixtures.length === 0 ? /* @__PURE__ */ (0,
|
|
3905
|
+
listed.length === 0 && fixtures.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
3840
3906
|
"p",
|
|
3841
3907
|
{
|
|
3842
3908
|
className: "px-2 py-2 text-xs text-muted-foreground",
|
|
@@ -3858,16 +3924,16 @@ function OrganizationPicker({
|
|
|
3858
3924
|
clicking. So: count the matches, say where they are, and carry
|
|
3859
3925
|
the click that reveals them — the same shape as the honest
|
|
3860
3926
|
empty-filter twin one line down. (TAILS-3) */
|
|
3861
|
-
/* @__PURE__ */ (0,
|
|
3927
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3862
3928
|
"p",
|
|
3863
3929
|
{
|
|
3864
3930
|
className: "px-2 py-2 text-xs text-muted-foreground",
|
|
3865
3931
|
"data-slot": "organization-picker-only-fixtures",
|
|
3866
|
-
children: query.trim() ? /* @__PURE__ */ (0,
|
|
3932
|
+
children: query.trim() ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
3867
3933
|
fixtures.length === 1 ? `1 match for \u201C${query.trim()}\u201D is in your test organizations` : `All ${fixtures.length} matches for \u201C${query.trim()}\u201D are in your test organizations`,
|
|
3868
|
-
showFixtures ? ", listed below." : /* @__PURE__ */ (0,
|
|
3934
|
+
showFixtures ? ", listed below." : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
3869
3935
|
" \u2014 ",
|
|
3870
|
-
/* @__PURE__ */ (0,
|
|
3936
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3871
3937
|
"button",
|
|
3872
3938
|
{
|
|
3873
3939
|
type: "button",
|
|
@@ -3885,8 +3951,8 @@ function OrganizationPicker({
|
|
|
3885
3951
|
] }) : `Every organization you belong to is a test organization \u2014 all ${fixtures.length} are below.`
|
|
3886
3952
|
}
|
|
3887
3953
|
)
|
|
3888
|
-
) : /* @__PURE__ */ (0,
|
|
3889
|
-
/* @__PURE__ */ (0,
|
|
3954
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "max-h-72 overflow-y-auto", role: "listbox", "aria-label": "Organizations", children: listed.map(renderRow) }),
|
|
3955
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3890
3956
|
ArchivedDisclosure,
|
|
3891
3957
|
{
|
|
3892
3958
|
count: fixtures.length,
|
|
@@ -3894,7 +3960,7 @@ function OrganizationPicker({
|
|
|
3894
3960
|
onOpenChange: setShowFixtures,
|
|
3895
3961
|
label: "Test organizations",
|
|
3896
3962
|
className: "mt-0.5",
|
|
3897
|
-
children: /* @__PURE__ */ (0,
|
|
3963
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3898
3964
|
"ul",
|
|
3899
3965
|
{
|
|
3900
3966
|
className: "max-h-72 overflow-y-auto",
|
|
@@ -3905,9 +3971,9 @@ function OrganizationPicker({
|
|
|
3905
3971
|
)
|
|
3906
3972
|
}
|
|
3907
3973
|
),
|
|
3908
|
-
onSetDefault && /* @__PURE__ */ (0,
|
|
3909
|
-
/* @__PURE__ */ (0,
|
|
3910
|
-
/* @__PURE__ */ (0,
|
|
3974
|
+
onSetDefault && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
3975
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "my-1 border-t border-border" }),
|
|
3976
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3911
3977
|
DefaultOrganizationSwitch,
|
|
3912
3978
|
{
|
|
3913
3979
|
active,
|
|
@@ -3925,17 +3991,17 @@ function DefaultOrganizationSwitch({
|
|
|
3925
3991
|
onChange
|
|
3926
3992
|
}) {
|
|
3927
3993
|
const disabled = !active;
|
|
3928
|
-
return /* @__PURE__ */ (0,
|
|
3994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
3929
3995
|
"div",
|
|
3930
3996
|
{
|
|
3931
3997
|
className: "flex items-center justify-between gap-3 rounded-md px-2 py-1.5",
|
|
3932
3998
|
"data-slot": "organization-picker-default",
|
|
3933
3999
|
children: [
|
|
3934
|
-
/* @__PURE__ */ (0,
|
|
3935
|
-
/* @__PURE__ */ (0,
|
|
3936
|
-
/* @__PURE__ */ (0,
|
|
4000
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "min-w-0", children: [
|
|
4001
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-xs font-medium text-foreground", children: "Keep it at the top" }),
|
|
4002
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "truncate text-[11px] text-muted-foreground", children: disabled ? "Select an organization first" : checked ? `${active.name} is first in this list on every device` : "Star it so it is first in this list on every device" })
|
|
3937
4003
|
] }),
|
|
3938
|
-
/* @__PURE__ */ (0,
|
|
4004
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3939
4005
|
Switch,
|
|
3940
4006
|
{
|
|
3941
4007
|
checked,
|
|
@@ -3951,7 +4017,7 @@ function DefaultOrganizationSwitch({
|
|
|
3951
4017
|
|
|
3952
4018
|
// src/tabbed-bottom-sheet.tsx
|
|
3953
4019
|
var import_react4 = require("react");
|
|
3954
|
-
var
|
|
4020
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3955
4021
|
function TabbedBottomSheet({
|
|
3956
4022
|
open,
|
|
3957
4023
|
onOpenChange,
|
|
@@ -3966,15 +4032,15 @@ function TabbedBottomSheet({
|
|
|
3966
4032
|
if (open) setSelectedTabId(initialTabId);
|
|
3967
4033
|
}
|
|
3968
4034
|
const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
|
|
3969
|
-
return /* @__PURE__ */ (0,
|
|
4035
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3970
4036
|
BottomSheet,
|
|
3971
4037
|
{
|
|
3972
4038
|
open,
|
|
3973
4039
|
onOpenChange,
|
|
3974
4040
|
title,
|
|
3975
4041
|
size: "full",
|
|
3976
|
-
children: /* @__PURE__ */ (0,
|
|
3977
|
-
/* @__PURE__ */ (0,
|
|
4042
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
|
|
4043
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3978
4044
|
BottomSheetHeader,
|
|
3979
4045
|
{
|
|
3980
4046
|
title: selectedTab ? selectedTab.label : title,
|
|
@@ -3982,19 +4048,19 @@ function TabbedBottomSheet({
|
|
|
3982
4048
|
onBack: () => setSelectedTabId(null)
|
|
3983
4049
|
}
|
|
3984
4050
|
),
|
|
3985
|
-
selectedTab ? /* @__PURE__ */ (0,
|
|
4051
|
+
selectedTab ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(BottomSheetBody, { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
|
|
3986
4052
|
const Icon2 = tab.icon;
|
|
3987
|
-
return /* @__PURE__ */ (0,
|
|
4053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
3988
4054
|
"button",
|
|
3989
4055
|
{
|
|
3990
4056
|
type: "button",
|
|
3991
4057
|
onClick: () => setSelectedTabId(tab.id),
|
|
3992
4058
|
className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
|
|
3993
4059
|
children: [
|
|
3994
|
-
Icon2 ? /* @__PURE__ */ (0,
|
|
3995
|
-
/* @__PURE__ */ (0,
|
|
4060
|
+
Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
|
|
4061
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
|
|
3996
4062
|
tab.trailing,
|
|
3997
|
-
/* @__PURE__ */ (0,
|
|
4063
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
|
|
3998
4064
|
]
|
|
3999
4065
|
}
|
|
4000
4066
|
) }, tab.id);
|
|
@@ -4005,19 +4071,19 @@ function TabbedBottomSheet({
|
|
|
4005
4071
|
}
|
|
4006
4072
|
|
|
4007
4073
|
// src/table.tsx
|
|
4008
|
-
var
|
|
4009
|
-
var
|
|
4074
|
+
var React31 = __toESM(require("react"), 1);
|
|
4075
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
4010
4076
|
var TABLE_SIZES = {
|
|
4011
4077
|
sm: { head: "px-2", cell: "p-2" },
|
|
4012
4078
|
md: { head: "px-3", cell: "p-3" }
|
|
4013
4079
|
};
|
|
4014
|
-
var TableSizeContext =
|
|
4080
|
+
var TableSizeContext = React31.createContext("md");
|
|
4015
4081
|
function useTableSize() {
|
|
4016
|
-
return
|
|
4082
|
+
return React31.useContext(TableSizeContext);
|
|
4017
4083
|
}
|
|
4018
|
-
var Table =
|
|
4084
|
+
var Table = React31.forwardRef(
|
|
4019
4085
|
({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
|
|
4020
|
-
const table = /* @__PURE__ */ (0,
|
|
4086
|
+
const table = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4021
4087
|
"table",
|
|
4022
4088
|
{
|
|
4023
4089
|
ref,
|
|
@@ -4027,7 +4093,7 @@ var Table = React30.forwardRef(
|
|
|
4027
4093
|
...props
|
|
4028
4094
|
}
|
|
4029
4095
|
);
|
|
4030
|
-
return /* @__PURE__ */ (0,
|
|
4096
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4031
4097
|
"div",
|
|
4032
4098
|
{
|
|
4033
4099
|
"data-slot": "table-wrapper",
|
|
@@ -4038,7 +4104,7 @@ var Table = React30.forwardRef(
|
|
|
4038
4104
|
}
|
|
4039
4105
|
);
|
|
4040
4106
|
Table.displayName = "Table";
|
|
4041
|
-
var TableHeader =
|
|
4107
|
+
var TableHeader = React31.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4042
4108
|
"thead",
|
|
4043
4109
|
{
|
|
4044
4110
|
ref,
|
|
@@ -4052,7 +4118,7 @@ var TableHeader = React30.forwardRef(({ className, sticky = false, ...props }, r
|
|
|
4052
4118
|
}
|
|
4053
4119
|
));
|
|
4054
4120
|
TableHeader.displayName = "TableHeader";
|
|
4055
|
-
var TableBody =
|
|
4121
|
+
var TableBody = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4056
4122
|
"tbody",
|
|
4057
4123
|
{
|
|
4058
4124
|
ref,
|
|
@@ -4062,7 +4128,7 @@ var TableBody = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
4062
4128
|
}
|
|
4063
4129
|
));
|
|
4064
4130
|
TableBody.displayName = "TableBody";
|
|
4065
|
-
var TableFooter =
|
|
4131
|
+
var TableFooter = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4066
4132
|
"tfoot",
|
|
4067
4133
|
{
|
|
4068
4134
|
ref,
|
|
@@ -4075,7 +4141,7 @@ var TableFooter = React30.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4075
4141
|
}
|
|
4076
4142
|
));
|
|
4077
4143
|
TableFooter.displayName = "TableFooter";
|
|
4078
|
-
var TableRow =
|
|
4144
|
+
var TableRow = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4079
4145
|
"tr",
|
|
4080
4146
|
{
|
|
4081
4147
|
ref,
|
|
@@ -4088,9 +4154,9 @@ var TableRow = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
4088
4154
|
}
|
|
4089
4155
|
));
|
|
4090
4156
|
TableRow.displayName = "TableRow";
|
|
4091
|
-
var TableHead =
|
|
4157
|
+
var TableHead = React31.forwardRef(({ className, ...props }, ref) => {
|
|
4092
4158
|
const size = useTableSize();
|
|
4093
|
-
return /* @__PURE__ */ (0,
|
|
4159
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4094
4160
|
"th",
|
|
4095
4161
|
{
|
|
4096
4162
|
ref,
|
|
@@ -4105,9 +4171,9 @@ var TableHead = React30.forwardRef(({ className, ...props }, ref) => {
|
|
|
4105
4171
|
);
|
|
4106
4172
|
});
|
|
4107
4173
|
TableHead.displayName = "TableHead";
|
|
4108
|
-
var TableCell =
|
|
4174
|
+
var TableCell = React31.forwardRef(({ className, ...props }, ref) => {
|
|
4109
4175
|
const size = useTableSize();
|
|
4110
|
-
return /* @__PURE__ */ (0,
|
|
4176
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4111
4177
|
"td",
|
|
4112
4178
|
{
|
|
4113
4179
|
ref,
|
|
@@ -4122,7 +4188,7 @@ var TableCell = React30.forwardRef(({ className, ...props }, ref) => {
|
|
|
4122
4188
|
);
|
|
4123
4189
|
});
|
|
4124
4190
|
TableCell.displayName = "TableCell";
|
|
4125
|
-
var TableCaption =
|
|
4191
|
+
var TableCaption = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4126
4192
|
"caption",
|
|
4127
4193
|
{
|
|
4128
4194
|
ref,
|
|
@@ -4135,11 +4201,11 @@ TableCaption.displayName = "TableCaption";
|
|
|
4135
4201
|
|
|
4136
4202
|
// src/tabs.tsx
|
|
4137
4203
|
var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
|
|
4138
|
-
var
|
|
4139
|
-
var
|
|
4204
|
+
var React32 = __toESM(require("react"), 1);
|
|
4205
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
4140
4206
|
var Tabs = TabsPrimitive.Root;
|
|
4141
4207
|
var TABS_TRIGGER_BASE = "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm";
|
|
4142
|
-
var TabsList =
|
|
4208
|
+
var TabsList = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4143
4209
|
TabsPrimitive.List,
|
|
4144
4210
|
{
|
|
4145
4211
|
ref,
|
|
@@ -4152,7 +4218,7 @@ var TabsList = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
4152
4218
|
}
|
|
4153
4219
|
));
|
|
4154
4220
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
4155
|
-
var TabsTrigger =
|
|
4221
|
+
var TabsTrigger = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4156
4222
|
TabsPrimitive.Trigger,
|
|
4157
4223
|
{
|
|
4158
4224
|
ref,
|
|
@@ -4166,7 +4232,7 @@ var TabsTrigger = React31.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4166
4232
|
}
|
|
4167
4233
|
));
|
|
4168
4234
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
4169
|
-
var TabsTriggerCore =
|
|
4235
|
+
var TabsTriggerCore = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4170
4236
|
TabsPrimitive.Trigger,
|
|
4171
4237
|
{
|
|
4172
4238
|
ref,
|
|
@@ -4176,7 +4242,7 @@ var TabsTriggerCore = React31.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
4176
4242
|
}
|
|
4177
4243
|
));
|
|
4178
4244
|
TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
|
|
4179
|
-
var TabsContent =
|
|
4245
|
+
var TabsContent = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4180
4246
|
TabsPrimitive.Content,
|
|
4181
4247
|
{
|
|
4182
4248
|
ref,
|
|
@@ -4192,8 +4258,8 @@ var TabsContent = React31.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4192
4258
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
4193
4259
|
|
|
4194
4260
|
// src/textarea.tsx
|
|
4195
|
-
var
|
|
4196
|
-
var
|
|
4261
|
+
var React33 = __toESM(require("react"), 1);
|
|
4262
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4197
4263
|
var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
|
|
4198
4264
|
var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
|
|
4199
4265
|
function getStretchClasses(className) {
|
|
@@ -4206,7 +4272,7 @@ function getStretchClasses(className) {
|
|
|
4206
4272
|
var TEXTAREA_ELEVATED_CLASS = "flex h-auto w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground shadow-textarea transition duration-400 placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[2px] focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
|
|
4207
4273
|
var TEXTAREA_CONTROL_CLASS = "flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
|
|
4208
4274
|
function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
4209
|
-
|
|
4275
|
+
React33.useEffect(() => {
|
|
4210
4276
|
if (!autoGrow || !ref.current) return;
|
|
4211
4277
|
const textarea = ref.current;
|
|
4212
4278
|
textarea.style.height = "auto";
|
|
@@ -4222,8 +4288,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
|
4222
4288
|
}, [value, autoGrow, minHeight, maxHeight, ref]);
|
|
4223
4289
|
}
|
|
4224
4290
|
function useMergedTextareaRef(forwarded) {
|
|
4225
|
-
const internal =
|
|
4226
|
-
const callback =
|
|
4291
|
+
const internal = React33.useRef(null);
|
|
4292
|
+
const callback = React33.useCallback(
|
|
4227
4293
|
(node) => {
|
|
4228
4294
|
internal.current = node;
|
|
4229
4295
|
if (typeof forwarded === "function") forwarded(node);
|
|
@@ -4240,13 +4306,13 @@ function boxStyle(minHeight, maxHeight) {
|
|
|
4240
4306
|
maxHeight: maxHeight ? `${maxHeight}px` : void 0
|
|
4241
4307
|
};
|
|
4242
4308
|
}
|
|
4243
|
-
var Textarea =
|
|
4309
|
+
var Textarea = React33.forwardRef(
|
|
4244
4310
|
({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
|
|
4245
4311
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
4246
4312
|
const stretchClasses = getStretchClasses(className);
|
|
4247
4313
|
const needsWrapper = Boolean(wrapperClassName || stretchClasses);
|
|
4248
4314
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
4249
|
-
const textarea = /* @__PURE__ */ (0,
|
|
4315
|
+
const textarea = /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4250
4316
|
"textarea",
|
|
4251
4317
|
{
|
|
4252
4318
|
ref: callback,
|
|
@@ -4262,15 +4328,15 @@ var Textarea = React32.forwardRef(
|
|
|
4262
4328
|
}
|
|
4263
4329
|
);
|
|
4264
4330
|
if (!needsWrapper) return textarea;
|
|
4265
|
-
return /* @__PURE__ */ (0,
|
|
4331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
|
|
4266
4332
|
}
|
|
4267
4333
|
);
|
|
4268
4334
|
Textarea.displayName = "Textarea";
|
|
4269
|
-
var BasicTextarea =
|
|
4335
|
+
var BasicTextarea = React33.forwardRef(
|
|
4270
4336
|
({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
|
|
4271
4337
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
4272
4338
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
4273
|
-
return /* @__PURE__ */ (0,
|
|
4339
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4274
4340
|
"textarea",
|
|
4275
4341
|
{
|
|
4276
4342
|
ref: callback,
|
|
@@ -4288,7 +4354,7 @@ var BasicTextarea = React32.forwardRef(
|
|
|
4288
4354
|
}
|
|
4289
4355
|
);
|
|
4290
4356
|
BasicTextarea.displayName = "BasicTextarea";
|
|
4291
|
-
var TextareaWithPrefix =
|
|
4357
|
+
var TextareaWithPrefix = React33.forwardRef(
|
|
4292
4358
|
({
|
|
4293
4359
|
prefix,
|
|
4294
4360
|
className,
|
|
@@ -4300,13 +4366,13 @@ var TextareaWithPrefix = React32.forwardRef(
|
|
|
4300
4366
|
}, forwarded) => {
|
|
4301
4367
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
4302
4368
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
4303
|
-
return /* @__PURE__ */ (0,
|
|
4369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
4304
4370
|
"div",
|
|
4305
4371
|
{
|
|
4306
4372
|
className: cn("relative", getStretchClasses(className), wrapperClassName),
|
|
4307
4373
|
children: [
|
|
4308
|
-
prefix ? /* @__PURE__ */ (0,
|
|
4309
|
-
/* @__PURE__ */ (0,
|
|
4374
|
+
prefix ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
|
|
4375
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4310
4376
|
"textarea",
|
|
4311
4377
|
{
|
|
4312
4378
|
ref: callback,
|
|
@@ -4385,14 +4451,14 @@ function useScrollFade() {
|
|
|
4385
4451
|
|
|
4386
4452
|
// src/hover-card.tsx
|
|
4387
4453
|
var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
|
|
4388
|
-
var
|
|
4389
|
-
var
|
|
4454
|
+
var React34 = __toESM(require("react"), 1);
|
|
4455
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4390
4456
|
var HoverCard = HoverCardPrimitive.Root;
|
|
4391
4457
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
4392
|
-
var HoverCardContent =
|
|
4458
|
+
var HoverCardContent = React34.forwardRef(
|
|
4393
4459
|
({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
4394
4460
|
const resolved = usePortalContainer(container);
|
|
4395
|
-
return /* @__PURE__ */ (0,
|
|
4461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4396
4462
|
HoverCardPrimitive.Content,
|
|
4397
4463
|
{
|
|
4398
4464
|
ref,
|
|
@@ -4413,9 +4479,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
|
4413
4479
|
|
|
4414
4480
|
// src/radio-group.tsx
|
|
4415
4481
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
4416
|
-
var
|
|
4417
|
-
var
|
|
4418
|
-
var RadioGroupSizeContext =
|
|
4482
|
+
var React35 = __toESM(require("react"), 1);
|
|
4483
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
4484
|
+
var RadioGroupSizeContext = React35.createContext("md");
|
|
4419
4485
|
var CONTROL_CLASSES = {
|
|
4420
4486
|
sm: "h-3.5 w-3.5",
|
|
4421
4487
|
md: "h-4 w-4",
|
|
@@ -4426,7 +4492,7 @@ var DOT_CLASSES = {
|
|
|
4426
4492
|
md: "h-1.5 w-1.5",
|
|
4427
4493
|
lg: "h-2 w-2"
|
|
4428
4494
|
};
|
|
4429
|
-
var RadioGroup3 =
|
|
4495
|
+
var RadioGroup3 = React35.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4430
4496
|
RadioGroupPrimitive.Root,
|
|
4431
4497
|
{
|
|
4432
4498
|
ref,
|
|
@@ -4436,10 +4502,10 @@ var RadioGroup3 = React34.forwardRef(({ className, size = "md", ...props }, ref)
|
|
|
4436
4502
|
}
|
|
4437
4503
|
) }));
|
|
4438
4504
|
RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
|
|
4439
|
-
var RadioGroupItem =
|
|
4440
|
-
const groupSize =
|
|
4505
|
+
var RadioGroupItem = React35.forwardRef(({ className, size, ...props }, ref) => {
|
|
4506
|
+
const groupSize = React35.useContext(RadioGroupSizeContext);
|
|
4441
4507
|
const resolved = size ?? groupSize;
|
|
4442
|
-
return /* @__PURE__ */ (0,
|
|
4508
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4443
4509
|
RadioGroupPrimitive.Item,
|
|
4444
4510
|
{
|
|
4445
4511
|
ref,
|
|
@@ -4456,7 +4522,7 @@ var RadioGroupItem = React34.forwardRef(({ className, size, ...props }, ref) =>
|
|
|
4456
4522
|
className
|
|
4457
4523
|
),
|
|
4458
4524
|
...props,
|
|
4459
|
-
children: /* @__PURE__ */ (0,
|
|
4525
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4460
4526
|
"div",
|
|
4461
4527
|
{
|
|
4462
4528
|
className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
|
|
@@ -4469,7 +4535,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
4469
4535
|
|
|
4470
4536
|
// src/resizable.tsx
|
|
4471
4537
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
4472
|
-
var
|
|
4538
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4473
4539
|
var HANDLE_SIZES = {
|
|
4474
4540
|
xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
|
|
4475
4541
|
sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
|
|
@@ -4483,7 +4549,7 @@ var HANDLE_SIZES = {
|
|
|
4483
4549
|
var ResizablePanelGroup = ({
|
|
4484
4550
|
className,
|
|
4485
4551
|
...props
|
|
4486
|
-
}) => /* @__PURE__ */ (0,
|
|
4552
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4487
4553
|
import_react_resizable_panels.Group,
|
|
4488
4554
|
{
|
|
4489
4555
|
"data-slot": "resizable-group",
|
|
@@ -4498,7 +4564,7 @@ var ResizableHandle = ({
|
|
|
4498
4564
|
size = "xs",
|
|
4499
4565
|
className,
|
|
4500
4566
|
...props
|
|
4501
|
-
}) => /* @__PURE__ */ (0,
|
|
4567
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4502
4568
|
import_react_resizable_panels.Separator,
|
|
4503
4569
|
{
|
|
4504
4570
|
"data-slot": "resizable-handle",
|
|
@@ -4518,15 +4584,15 @@ var ResizableHandle = ({
|
|
|
4518
4584
|
className
|
|
4519
4585
|
),
|
|
4520
4586
|
...props,
|
|
4521
|
-
children: withHandle ? /* @__PURE__ */ (0,
|
|
4587
|
+
children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
|
|
4522
4588
|
}
|
|
4523
4589
|
);
|
|
4524
4590
|
ResizableHandle.displayName = "ResizableHandle";
|
|
4525
4591
|
|
|
4526
4592
|
// src/slider.tsx
|
|
4527
4593
|
var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
|
|
4528
|
-
var
|
|
4529
|
-
var
|
|
4594
|
+
var React36 = __toESM(require("react"), 1);
|
|
4595
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4530
4596
|
var TRACK_CLASSES = {
|
|
4531
4597
|
sm: "h-1",
|
|
4532
4598
|
md: "h-1.5",
|
|
@@ -4537,12 +4603,12 @@ var THUMB_CLASSES = {
|
|
|
4537
4603
|
md: "h-4 w-4",
|
|
4538
4604
|
lg: "h-5 w-5"
|
|
4539
4605
|
};
|
|
4540
|
-
var Slider =
|
|
4606
|
+
var Slider = React36.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
4541
4607
|
const thumbCount = Math.max(
|
|
4542
4608
|
1,
|
|
4543
4609
|
(props.value ?? props.defaultValue ?? [0]).length
|
|
4544
4610
|
);
|
|
4545
|
-
return /* @__PURE__ */ (0,
|
|
4611
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4546
4612
|
SliderPrimitive.Root,
|
|
4547
4613
|
{
|
|
4548
4614
|
ref,
|
|
@@ -4554,7 +4620,7 @@ var Slider = React35.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4554
4620
|
),
|
|
4555
4621
|
...props,
|
|
4556
4622
|
children: [
|
|
4557
|
-
/* @__PURE__ */ (0,
|
|
4623
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4558
4624
|
SliderPrimitive.Track,
|
|
4559
4625
|
{
|
|
4560
4626
|
"data-slot": "slider-track",
|
|
@@ -4563,7 +4629,7 @@ var Slider = React35.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4563
4629
|
TRACK_CLASSES[size],
|
|
4564
4630
|
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
|
|
4565
4631
|
),
|
|
4566
|
-
children: /* @__PURE__ */ (0,
|
|
4632
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4567
4633
|
SliderPrimitive.Range,
|
|
4568
4634
|
{
|
|
4569
4635
|
"data-slot": "slider-range",
|
|
@@ -4572,7 +4638,7 @@ var Slider = React35.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4572
4638
|
)
|
|
4573
4639
|
}
|
|
4574
4640
|
),
|
|
4575
|
-
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ (0,
|
|
4641
|
+
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4576
4642
|
SliderPrimitive.Thumb,
|
|
4577
4643
|
{
|
|
4578
4644
|
"data-slot": "slider-thumb",
|
|
@@ -4599,8 +4665,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
4599
4665
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
4600
4666
|
var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
|
|
4601
4667
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
4602
|
-
var
|
|
4603
|
-
var
|
|
4668
|
+
var React37 = __toESM(require("react"), 1);
|
|
4669
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
4604
4670
|
var toggleVariants = (0, import_class_variance_authority6.cva)(
|
|
4605
4671
|
"inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
4606
4672
|
{
|
|
@@ -4621,7 +4687,7 @@ var toggleVariants = (0, import_class_variance_authority6.cva)(
|
|
|
4621
4687
|
}
|
|
4622
4688
|
}
|
|
4623
4689
|
);
|
|
4624
|
-
var Toggle =
|
|
4690
|
+
var Toggle = React37.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4625
4691
|
TogglePrimitive.Root,
|
|
4626
4692
|
{
|
|
4627
4693
|
ref,
|
|
@@ -4631,21 +4697,21 @@ var Toggle = React36.forwardRef(({ className, variant, size, ...props }, ref) =>
|
|
|
4631
4697
|
}
|
|
4632
4698
|
));
|
|
4633
4699
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
4634
|
-
var ToggleGroupContext =
|
|
4635
|
-
var ToggleGroup =
|
|
4700
|
+
var ToggleGroupContext = React37.createContext({ size: "default", variant: "default" });
|
|
4701
|
+
var ToggleGroup = React37.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4636
4702
|
ToggleGroupPrimitive.Root,
|
|
4637
4703
|
{
|
|
4638
4704
|
ref,
|
|
4639
4705
|
"data-slot": "toggle-group",
|
|
4640
4706
|
className: cn("flex items-center justify-center gap-1", className),
|
|
4641
4707
|
...props,
|
|
4642
|
-
children: /* @__PURE__ */ (0,
|
|
4708
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
4643
4709
|
}
|
|
4644
4710
|
));
|
|
4645
4711
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
4646
|
-
var ToggleGroupItem =
|
|
4647
|
-
const context =
|
|
4648
|
-
return /* @__PURE__ */ (0,
|
|
4712
|
+
var ToggleGroupItem = React37.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
4713
|
+
const context = React37.useContext(ToggleGroupContext);
|
|
4714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4649
4715
|
ToggleGroupPrimitive.Item,
|
|
4650
4716
|
{
|
|
4651
4717
|
ref,
|
|
@@ -4666,14 +4732,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
4666
4732
|
|
|
4667
4733
|
// src/tooltip.tsx
|
|
4668
4734
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
4669
|
-
var
|
|
4670
|
-
var
|
|
4735
|
+
var React38 = __toESM(require("react"), 1);
|
|
4736
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
4671
4737
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
4672
4738
|
var Tooltip = TooltipPrimitive.Root;
|
|
4673
4739
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
4674
|
-
var TooltipContent =
|
|
4740
|
+
var TooltipContent = React38.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
4675
4741
|
const resolved = usePortalContainer(container);
|
|
4676
|
-
return /* @__PURE__ */ (0,
|
|
4742
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
4677
4743
|
TooltipPrimitive.Content,
|
|
4678
4744
|
{
|
|
4679
4745
|
ref,
|
|
@@ -4708,7 +4774,7 @@ function getTapTargetLinkComponent() {
|
|
|
4708
4774
|
}
|
|
4709
4775
|
|
|
4710
4776
|
// src/tap-target/tap-target-button.tsx
|
|
4711
|
-
var
|
|
4777
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4712
4778
|
var EXTERNAL_RE = /^(https?:|mailto:|tel:)/i;
|
|
4713
4779
|
var TAP_OUTER_CLASS = "matrx-tap-target group";
|
|
4714
4780
|
var TAP_GROUP_OUTER_CLASS = "matrx-tap-target matrx-tap-target-sm group";
|
|
@@ -4724,9 +4790,9 @@ function IconContent({
|
|
|
4724
4790
|
className: cn2(className, icon.props.className)
|
|
4725
4791
|
});
|
|
4726
4792
|
}
|
|
4727
|
-
return /* @__PURE__ */ (0,
|
|
4793
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className, children: icon });
|
|
4728
4794
|
}
|
|
4729
|
-
return /* @__PURE__ */ (0,
|
|
4795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4730
4796
|
"svg",
|
|
4731
4797
|
{
|
|
4732
4798
|
className,
|
|
@@ -4763,7 +4829,7 @@ function buildTapInner({
|
|
|
4763
4829
|
children,
|
|
4764
4830
|
strokeWidth = 2
|
|
4765
4831
|
}) {
|
|
4766
|
-
const iconEl = /* @__PURE__ */ (0,
|
|
4832
|
+
const iconEl = /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4767
4833
|
IconContent,
|
|
4768
4834
|
{
|
|
4769
4835
|
icon,
|
|
@@ -4774,11 +4840,11 @@ function buildTapInner({
|
|
|
4774
4840
|
);
|
|
4775
4841
|
const pillClasses = label ? `${pillClassName} ${inlineModifier}`.trim() : pillClassName;
|
|
4776
4842
|
if (!label) {
|
|
4777
|
-
return /* @__PURE__ */ (0,
|
|
4843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: pillClasses, children: iconEl });
|
|
4778
4844
|
}
|
|
4779
|
-
return /* @__PURE__ */ (0,
|
|
4845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: pillClasses, children: [
|
|
4780
4846
|
iconEl,
|
|
4781
|
-
/* @__PURE__ */ (0,
|
|
4847
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: labelClassName ?? "matrx-tap-label", children: label })
|
|
4782
4848
|
] });
|
|
4783
4849
|
}
|
|
4784
4850
|
function renderTapTarget({
|
|
@@ -4866,7 +4932,7 @@ function renderTrigger({
|
|
|
4866
4932
|
buttonRef
|
|
4867
4933
|
}) {
|
|
4868
4934
|
if (disabled && href) {
|
|
4869
|
-
return /* @__PURE__ */ (0,
|
|
4935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4870
4936
|
"span",
|
|
4871
4937
|
{
|
|
4872
4938
|
"aria-disabled": "true",
|
|
@@ -4879,7 +4945,7 @@ function renderTrigger({
|
|
|
4879
4945
|
if (href) {
|
|
4880
4946
|
const isExternal = EXTERNAL_RE.test(href);
|
|
4881
4947
|
if (isExternal) {
|
|
4882
|
-
return /* @__PURE__ */ (0,
|
|
4948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4883
4949
|
"a",
|
|
4884
4950
|
{
|
|
4885
4951
|
href,
|
|
@@ -4893,7 +4959,7 @@ function renderTrigger({
|
|
|
4893
4959
|
}
|
|
4894
4960
|
const Link = linkComponent ?? getTapTargetLinkComponent();
|
|
4895
4961
|
if (Link) {
|
|
4896
|
-
return /* @__PURE__ */ (0,
|
|
4962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4897
4963
|
Link,
|
|
4898
4964
|
{
|
|
4899
4965
|
href,
|
|
@@ -4906,7 +4972,7 @@ function renderTrigger({
|
|
|
4906
4972
|
}
|
|
4907
4973
|
);
|
|
4908
4974
|
}
|
|
4909
|
-
return /* @__PURE__ */ (0,
|
|
4975
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4910
4976
|
"a",
|
|
4911
4977
|
{
|
|
4912
4978
|
href,
|
|
@@ -4919,7 +4985,7 @@ function renderTrigger({
|
|
|
4919
4985
|
);
|
|
4920
4986
|
}
|
|
4921
4987
|
if (as === "label") {
|
|
4922
|
-
return /* @__PURE__ */ (0,
|
|
4988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4923
4989
|
"label",
|
|
4924
4990
|
{
|
|
4925
4991
|
htmlFor,
|
|
@@ -4929,7 +4995,7 @@ function renderTrigger({
|
|
|
4929
4995
|
}
|
|
4930
4996
|
);
|
|
4931
4997
|
}
|
|
4932
|
-
return /* @__PURE__ */ (0,
|
|
4998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4933
4999
|
"button",
|
|
4934
5000
|
{
|
|
4935
5001
|
ref: buttonRef,
|
|
@@ -4953,14 +5019,14 @@ function withTooltip(trigger, {
|
|
|
4953
5019
|
if (tooltip === false) return trigger;
|
|
4954
5020
|
const label = typeof tooltip === "string" && tooltip.length > 0 ? tooltip : ariaLabel;
|
|
4955
5021
|
if (!label) return trigger;
|
|
4956
|
-
return /* @__PURE__ */ (0,
|
|
4957
|
-
/* @__PURE__ */ (0,
|
|
5022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Tooltip, { children: [
|
|
5023
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TooltipTrigger, { asChild: true, children: disabled ? (
|
|
4958
5024
|
// Radix Tooltip triggers need a hoverable element; a disabled button
|
|
4959
5025
|
// does not dispatch pointer events, so we wrap in a span for the
|
|
4960
5026
|
// trigger target while keeping the disabled visual state.
|
|
4961
|
-
/* @__PURE__ */ (0,
|
|
5027
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "inline-flex", children: trigger })
|
|
4962
5028
|
) : trigger }),
|
|
4963
|
-
/* @__PURE__ */ (0,
|
|
5029
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TooltipContent, { side: tooltipSide, align: tooltipAlign, children: label })
|
|
4964
5030
|
] });
|
|
4965
5031
|
}
|
|
4966
5032
|
var TapTargetButton = (0, import_react6.forwardRef)(function TapTargetButton2({
|
|
@@ -5116,7 +5182,7 @@ var TapTargetButtonDestructive = (0, import_react6.forwardRef)(function TapTarge
|
|
|
5116
5182
|
hoverBgColor = "hover:bg-destructive/90",
|
|
5117
5183
|
...rest
|
|
5118
5184
|
}, ref) {
|
|
5119
|
-
return /* @__PURE__ */ (0,
|
|
5185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5120
5186
|
TapTargetButtonSolid,
|
|
5121
5187
|
{
|
|
5122
5188
|
ref,
|
|
@@ -5181,32 +5247,32 @@ function TapTargetButtonGroup({
|
|
|
5181
5247
|
children,
|
|
5182
5248
|
className
|
|
5183
5249
|
}) {
|
|
5184
|
-
return /* @__PURE__ */ (0,
|
|
5250
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
5185
5251
|
"div",
|
|
5186
5252
|
{
|
|
5187
5253
|
className: className ? `relative inline-flex h-9 items-center ${className}` : "relative inline-flex h-9 items-center",
|
|
5188
5254
|
children: [
|
|
5189
|
-
/* @__PURE__ */ (0,
|
|
5190
|
-
/* @__PURE__ */ (0,
|
|
5255
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "pointer-events-none absolute inset-x-0 top-1/2 -translate-y-1/2 h-7 rounded-full matrx-glass-thin-border" }),
|
|
5256
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "relative flex min-w-0 items-center", children })
|
|
5191
5257
|
]
|
|
5192
5258
|
}
|
|
5193
5259
|
);
|
|
5194
5260
|
}
|
|
5195
5261
|
|
|
5196
5262
|
// src/tap-target/tap-target-labeled.tsx
|
|
5197
|
-
var
|
|
5263
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
5198
5264
|
function TapTargetLabeled({
|
|
5199
5265
|
label,
|
|
5200
5266
|
children,
|
|
5201
5267
|
hideLabel = false,
|
|
5202
5268
|
toolTipSide = "bottom"
|
|
5203
5269
|
}) {
|
|
5204
|
-
return /* @__PURE__ */ (0,
|
|
5205
|
-
/* @__PURE__ */ (0,
|
|
5270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(Tooltip, { children: [
|
|
5271
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex flex-col items-center p-0 gap-0 space-y-0 space-x-0 shrink-0", children: [
|
|
5206
5272
|
children,
|
|
5207
|
-
!hideLabel && /* @__PURE__ */ (0,
|
|
5273
|
+
!hideLabel && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-[10px] text-muted-foreground/70 leading-tight max-w-[52px] text-center truncate", children: label })
|
|
5208
5274
|
] }) }),
|
|
5209
|
-
/* @__PURE__ */ (0,
|
|
5275
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TooltipContent, { side: toolTipSide, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "font-mono text-xs max-w-[280px] break-all", children: label }) })
|
|
5210
5276
|
] }) });
|
|
5211
5277
|
}
|
|
5212
5278
|
//# sourceMappingURL=index.cjs.map
|