@muhgholy/next-drive 4.23.7 → 4.23.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-LAKT7IJJ.cjs → chunk-OU5TKLHV.cjs} +885 -788
- package/dist/chunk-OU5TKLHV.cjs.map +1 -0
- package/dist/{chunk-MVYNW56R.js → chunk-RBSFEEJJ.js} +882 -785
- package/dist/chunk-RBSFEEJJ.js.map +1 -0
- package/dist/client/components/drive/{RenameAccountDialog.d.ts → account/rename.d.ts} +2 -2
- package/dist/client/components/drive/account/rename.d.ts.map +1 -0
- package/dist/client/components/drive/{dnd-provider.d.ts → dnd/context.d.ts} +1 -1
- package/dist/client/components/drive/dnd/context.d.ts.map +1 -0
- package/dist/client/components/drive/{CreateFolderDialog.d.ts → folder/create.d.ts} +2 -2
- package/dist/client/components/drive/folder/create.d.ts.map +1 -0
- package/dist/client/components/drive/{RenameDialog.d.ts → item/rename.d.ts} +3 -3
- package/dist/client/components/drive/item/rename.d.ts.map +1 -0
- package/dist/client/components/{dialog.d.ts → shared/confirm.d.ts} +2 -2
- package/dist/client/components/shared/confirm.d.ts.map +1 -0
- package/dist/client/components/ui/{alert-dialog.d.ts → alert-modal.d.ts} +1 -1
- package/dist/client/components/ui/alert-modal.d.ts.map +1 -0
- package/dist/client/components/ui/{dialog-fullscreen.d.ts → fullscreen.d.ts} +1 -1
- package/dist/client/components/ui/fullscreen.d.ts.map +1 -0
- package/dist/client/components/ui/{dialog.d.ts → modal.d.ts} +1 -1
- package/dist/client/components/ui/modal.d.ts.map +1 -0
- package/dist/client/context.d.ts.map +1 -1
- package/dist/client/hooks/{useUpload.d.ts → use-upload.d.ts} +1 -1
- package/dist/client/hooks/use-upload.d.ts.map +1 -0
- package/dist/client/index.cjs +227 -164
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.ts +12 -11
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +227 -164
- package/dist/client/index.js.map +1 -1
- package/dist/server/actions/auth.d.ts +4 -0
- package/dist/server/actions/auth.d.ts.map +1 -0
- package/dist/server/actions/cors.d.ts +4 -0
- package/dist/server/actions/cors.d.ts.map +1 -0
- package/dist/server/actions/drive.d.ts +18 -0
- package/dist/server/actions/drive.d.ts.map +1 -0
- package/dist/server/actions/public.d.ts +4 -0
- package/dist/server/actions/public.d.ts.map +1 -0
- package/dist/server/actions/shared.d.ts +14 -0
- package/dist/server/actions/shared.d.ts.map +1 -0
- package/dist/server/express.cjs +11 -11
- package/dist/server/express.js +2 -2
- package/dist/server/hono.cjs +11 -11
- package/dist/server/hono.js +2 -2
- package/dist/server/index.cjs +16 -16
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/security/{cryptoUtils.d.ts → crypto-utils.d.ts} +1 -1
- package/dist/server/security/crypto-utils.d.ts.map +1 -0
- package/dist/server/security/{mimeFilter.d.ts → mime-filter.d.ts} +1 -1
- package/dist/server/security/mime-filter.d.ts.map +1 -0
- package/dist/server/storage-adapters/google.d.ts.map +1 -0
- package/dist/server/storage-adapters/local.d.ts.map +1 -0
- package/dist/server/utils/{folderValidation.d.ts → folder-validation.d.ts} +1 -1
- package/dist/server/utils/folder-validation.d.ts.map +1 -0
- package/dist/server/utils/{imageConvert.d.ts → image-convert.d.ts} +1 -1
- package/dist/server/utils/image-convert.d.ts.map +1 -0
- package/dist/types/lib/database/index.d.ts +2 -2
- package/dist/types/lib/database/index.d.ts.map +1 -1
- package/dist/types/server/index.d.ts +5 -5
- package/dist/types/server/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-LAKT7IJJ.cjs.map +0 -1
- package/dist/chunk-MVYNW56R.js.map +0 -1
- package/dist/client/components/dialog.d.ts.map +0 -1
- package/dist/client/components/drive/CreateFolderDialog.d.ts.map +0 -1
- package/dist/client/components/drive/RenameAccountDialog.d.ts.map +0 -1
- package/dist/client/components/drive/RenameDialog.d.ts.map +0 -1
- package/dist/client/components/drive/dnd-provider.d.ts.map +0 -1
- package/dist/client/components/ui/alert-dialog.d.ts.map +0 -1
- package/dist/client/components/ui/dialog-fullscreen.d.ts.map +0 -1
- package/dist/client/components/ui/dialog.d.ts.map +0 -1
- package/dist/client/hooks/useUpload.d.ts.map +0 -1
- package/dist/server/providers/google.d.ts.map +0 -1
- package/dist/server/providers/local.d.ts.map +0 -1
- package/dist/server/security/cryptoUtils.d.ts.map +0 -1
- package/dist/server/security/mimeFilter.d.ts.map +0 -1
- package/dist/server/utils/folderValidation.d.ts.map +0 -1
- package/dist/server/utils/imageConvert.d.ts.map +0 -1
- /package/dist/server/{providers → storage-adapters}/google.d.ts +0 -0
- /package/dist/server/{providers → storage-adapters}/local.d.ts +0 -0
package/dist/client/index.cjs
CHANGED
|
@@ -92,9 +92,15 @@ var DriveProvider = (props) => {
|
|
|
92
92
|
headers,
|
|
93
93
|
credentials: withCredentials ? "include" : "same-origin"
|
|
94
94
|
});
|
|
95
|
-
|
|
95
|
+
try {
|
|
96
|
+
return await res.json();
|
|
97
|
+
} catch (parseErr) {
|
|
98
|
+
const detail = parseErr instanceof Error ? parseErr.message : String(parseErr);
|
|
99
|
+
return { status: res.status || 0, message: `Could not read the server response for "${action}" (${detail})` };
|
|
100
|
+
}
|
|
96
101
|
} catch (err) {
|
|
97
|
-
|
|
102
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
103
|
+
return { status: 0, message: `Network request failed for "${action}" (${detail})` };
|
|
98
104
|
}
|
|
99
105
|
}, [apiEndpoint, activeAccountId, withCredentials]);
|
|
100
106
|
const fetchItems = React3.useCallback(async () => {
|
|
@@ -369,9 +375,9 @@ var useUpload = (apiEndpoint, activeAccountId, withCredentials = false, onUpload
|
|
|
369
375
|
addLog(uploadId, "success", `Chunk uploaded successfully`);
|
|
370
376
|
return [true, data.data, false];
|
|
371
377
|
} catch (error) {
|
|
372
|
-
const
|
|
373
|
-
addLog(uploadId, "error", `Network/Fetch error: ${
|
|
374
|
-
return [false,
|
|
378
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
379
|
+
addLog(uploadId, "error", `Network/Fetch error: ${detail}`);
|
|
380
|
+
return [false, `Upload connection failed: ${detail}`, true];
|
|
375
381
|
}
|
|
376
382
|
};
|
|
377
383
|
const processItem = async (item, file, folderId) => {
|
|
@@ -1057,7 +1063,7 @@ function Label2({
|
|
|
1057
1063
|
}
|
|
1058
1064
|
);
|
|
1059
1065
|
}
|
|
1060
|
-
var
|
|
1066
|
+
var DriveConfirm = (props) => {
|
|
1061
1067
|
const { title, description, onConfirm, disableEscapeKeyDown, inputs, onClose, open } = props;
|
|
1062
1068
|
const [error, setError] = React3.useState(null);
|
|
1063
1069
|
const [isLoading, setIsLoading] = React3.useState(false);
|
|
@@ -1154,11 +1160,29 @@ var DialogConfirmation = (props) => {
|
|
|
1154
1160
|
)
|
|
1155
1161
|
] }, input.id)) }),
|
|
1156
1162
|
/* @__PURE__ */ jsxRuntime.jsxs(DialogFooter, { children: [
|
|
1157
|
-
/* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", onClick: handleClose, disabled: isLoading, children: "Cancel" }),
|
|
1158
1163
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1159
1164
|
Button,
|
|
1160
1165
|
{
|
|
1161
|
-
|
|
1166
|
+
type: "button",
|
|
1167
|
+
variant: "outline",
|
|
1168
|
+
onClick: (e) => {
|
|
1169
|
+
e.preventDefault();
|
|
1170
|
+
e.stopPropagation();
|
|
1171
|
+
handleClose();
|
|
1172
|
+
},
|
|
1173
|
+
disabled: isLoading,
|
|
1174
|
+
children: "Cancel"
|
|
1175
|
+
}
|
|
1176
|
+
),
|
|
1177
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1178
|
+
Button,
|
|
1179
|
+
{
|
|
1180
|
+
type: "button",
|
|
1181
|
+
onClick: (e) => {
|
|
1182
|
+
e.preventDefault();
|
|
1183
|
+
e.stopPropagation();
|
|
1184
|
+
void handleConfirm();
|
|
1185
|
+
},
|
|
1162
1186
|
disabled: isLoading || !isFormValid(),
|
|
1163
1187
|
children: "Confirm"
|
|
1164
1188
|
}
|
|
@@ -1168,7 +1192,7 @@ var DialogConfirmation = (props) => {
|
|
|
1168
1192
|
}
|
|
1169
1193
|
) });
|
|
1170
1194
|
};
|
|
1171
|
-
var
|
|
1195
|
+
var DriveAccountRename = (props) => {
|
|
1172
1196
|
const { open, onClose, account, onConfirm } = props;
|
|
1173
1197
|
const {
|
|
1174
1198
|
register,
|
|
@@ -1229,52 +1253,65 @@ var RenameAccountDialog = (props) => {
|
|
|
1229
1253
|
e.preventDefault();
|
|
1230
1254
|
}
|
|
1231
1255
|
},
|
|
1232
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1257
|
+
"form",
|
|
1258
|
+
{
|
|
1259
|
+
onSubmit: (e) => {
|
|
1260
|
+
e.stopPropagation();
|
|
1261
|
+
void handleSubmit(handleFormSubmit)(e);
|
|
1262
|
+
},
|
|
1263
|
+
children: [
|
|
1264
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { children: [
|
|
1265
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: "Rename Account" }),
|
|
1266
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: "Enter a new display name for this storage account." })
|
|
1267
|
+
] }),
|
|
1268
|
+
errors.name && /* @__PURE__ */ jsxRuntime.jsxs(Alert, { variant: "destructive", children: [
|
|
1269
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "nd:h-4 nd:w-4" }),
|
|
1270
|
+
/* @__PURE__ */ jsxRuntime.jsx(AlertTitle, { children: "Error" }),
|
|
1271
|
+
/* @__PURE__ */ jsxRuntime.jsx(AlertDescription, { children: errors.name.message })
|
|
1272
|
+
] }),
|
|
1273
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:grid nd:gap-4 nd:py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:grid nd:gap-2", children: [
|
|
1274
|
+
/* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "rename-account-input", children: "Account name" }),
|
|
1275
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1276
|
+
Input,
|
|
1277
|
+
{
|
|
1278
|
+
id: "rename-account-input",
|
|
1279
|
+
...register("name", {
|
|
1280
|
+
required: "Account name is required",
|
|
1281
|
+
validate: (value) => {
|
|
1282
|
+
const trimmed = value.trim();
|
|
1283
|
+
if (!trimmed) return "Account name cannot be empty";
|
|
1284
|
+
if (trimmed.length > 255)
|
|
1285
|
+
return "Account name is too long";
|
|
1286
|
+
return true;
|
|
1287
|
+
}
|
|
1288
|
+
}),
|
|
1289
|
+
placeholder: "Enter account name",
|
|
1290
|
+
disabled: isSubmitting,
|
|
1291
|
+
autoComplete: "off"
|
|
1256
1292
|
}
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1293
|
+
)
|
|
1294
|
+
] }) }),
|
|
1295
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogFooter, { children: [
|
|
1296
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1297
|
+
Button,
|
|
1298
|
+
{
|
|
1299
|
+
type: "button",
|
|
1300
|
+
variant: "outline",
|
|
1301
|
+
onClick: (e) => {
|
|
1302
|
+
e.preventDefault();
|
|
1303
|
+
e.stopPropagation();
|
|
1304
|
+
handleClose();
|
|
1305
|
+
},
|
|
1306
|
+
disabled: isSubmitting,
|
|
1307
|
+
children: "Cancel"
|
|
1308
|
+
}
|
|
1309
|
+
),
|
|
1310
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Saving..." : "Save" })
|
|
1311
|
+
] })
|
|
1312
|
+
]
|
|
1313
|
+
}
|
|
1314
|
+
)
|
|
1278
1315
|
}
|
|
1279
1316
|
) });
|
|
1280
1317
|
};
|
|
@@ -1495,7 +1532,7 @@ var ContextMenuSeparator = React3__namespace.forwardRef(({ className, ...props }
|
|
|
1495
1532
|
}
|
|
1496
1533
|
));
|
|
1497
1534
|
ContextMenuSeparator.displayName = ContextMenuPrimitive__namespace.Separator.displayName;
|
|
1498
|
-
var
|
|
1535
|
+
var DriveFolderCreate = (props) => {
|
|
1499
1536
|
const { open, onClose, onConfirm } = props;
|
|
1500
1537
|
const {
|
|
1501
1538
|
register,
|
|
@@ -1547,56 +1584,69 @@ var CreateFolderDialog = (props) => {
|
|
|
1547
1584
|
e.preventDefault();
|
|
1548
1585
|
}
|
|
1549
1586
|
},
|
|
1550
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1587
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1588
|
+
"form",
|
|
1589
|
+
{
|
|
1590
|
+
onSubmit: (e) => {
|
|
1591
|
+
e.stopPropagation();
|
|
1592
|
+
void handleSubmit(handleFormSubmit)(e);
|
|
1593
|
+
},
|
|
1594
|
+
children: [
|
|
1595
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { children: [
|
|
1596
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: "Create New Folder" }),
|
|
1597
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: "Enter a name for the new folder" })
|
|
1598
|
+
] }),
|
|
1599
|
+
errors.name && /* @__PURE__ */ jsxRuntime.jsxs(Alert, { variant: "destructive", children: [
|
|
1600
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "nd:h-4 nd:w-4" }),
|
|
1601
|
+
/* @__PURE__ */ jsxRuntime.jsx(AlertTitle, { children: "Error" }),
|
|
1602
|
+
/* @__PURE__ */ jsxRuntime.jsx(AlertDescription, { children: errors.name.message })
|
|
1603
|
+
] }),
|
|
1604
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:grid nd:gap-4 nd:py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:grid nd:gap-2", children: [
|
|
1605
|
+
/* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "folder-name", children: "Folder name" }),
|
|
1606
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1607
|
+
Input,
|
|
1608
|
+
{
|
|
1609
|
+
id: "folder-name",
|
|
1610
|
+
...register("name", {
|
|
1611
|
+
required: "Folder name is required",
|
|
1612
|
+
validate: (value) => {
|
|
1613
|
+
const trimmed = value.trim();
|
|
1614
|
+
if (!trimmed) return "Folder name cannot be empty";
|
|
1615
|
+
if (trimmed.length > 255)
|
|
1616
|
+
return "Folder name is too long";
|
|
1617
|
+
return true;
|
|
1618
|
+
}
|
|
1619
|
+
}),
|
|
1620
|
+
placeholder: "Enter folder name",
|
|
1621
|
+
disabled: isSubmitting,
|
|
1622
|
+
autoComplete: "off"
|
|
1574
1623
|
}
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1624
|
+
)
|
|
1625
|
+
] }) }),
|
|
1626
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogFooter, { children: [
|
|
1627
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1628
|
+
Button,
|
|
1629
|
+
{
|
|
1630
|
+
type: "button",
|
|
1631
|
+
variant: "outline",
|
|
1632
|
+
onClick: (e) => {
|
|
1633
|
+
e.preventDefault();
|
|
1634
|
+
e.stopPropagation();
|
|
1635
|
+
handleClose();
|
|
1636
|
+
},
|
|
1637
|
+
disabled: isSubmitting,
|
|
1638
|
+
children: "Cancel"
|
|
1639
|
+
}
|
|
1640
|
+
),
|
|
1641
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Creating..." : "Create" })
|
|
1642
|
+
] })
|
|
1643
|
+
]
|
|
1644
|
+
}
|
|
1645
|
+
)
|
|
1596
1646
|
}
|
|
1597
1647
|
) });
|
|
1598
1648
|
};
|
|
1599
|
-
var
|
|
1649
|
+
var DriveItemRename = (props) => {
|
|
1600
1650
|
const { open, onClose, item, onConfirm } = props;
|
|
1601
1651
|
const {
|
|
1602
1652
|
register,
|
|
@@ -1656,57 +1706,70 @@ var RenameDialog = (props) => {
|
|
|
1656
1706
|
e.preventDefault();
|
|
1657
1707
|
}
|
|
1658
1708
|
},
|
|
1659
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1709
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1710
|
+
"form",
|
|
1711
|
+
{
|
|
1712
|
+
onSubmit: (e) => {
|
|
1713
|
+
e.stopPropagation();
|
|
1714
|
+
void handleSubmit(handleFormSubmit)(e);
|
|
1715
|
+
},
|
|
1716
|
+
children: [
|
|
1717
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { children: [
|
|
1718
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogTitle, { children: [
|
|
1719
|
+
"Rename ",
|
|
1720
|
+
itemType
|
|
1721
|
+
] }),
|
|
1722
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogDescription, { children: [
|
|
1723
|
+
"Enter a new name for this ",
|
|
1724
|
+
itemType.toLowerCase()
|
|
1725
|
+
] })
|
|
1726
|
+
] }),
|
|
1727
|
+
errors.name && /* @__PURE__ */ jsxRuntime.jsxs(Alert, { variant: "destructive", children: [
|
|
1728
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "nd:h-4 nd:w-4" }),
|
|
1729
|
+
/* @__PURE__ */ jsxRuntime.jsx(AlertTitle, { children: "Error" }),
|
|
1730
|
+
/* @__PURE__ */ jsxRuntime.jsx(AlertDescription, { children: errors.name.message })
|
|
1731
|
+
] }),
|
|
1732
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:grid nd:gap-4 nd:py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "nd:grid nd:gap-2", children: [
|
|
1733
|
+
/* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "rename-input", children: "Name" }),
|
|
1734
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1735
|
+
Input,
|
|
1736
|
+
{
|
|
1737
|
+
id: "rename-input",
|
|
1738
|
+
...register("name", {
|
|
1739
|
+
required: "Name is required",
|
|
1740
|
+
validate: (value) => {
|
|
1741
|
+
const trimmed = value.trim();
|
|
1742
|
+
if (!trimmed) return "Name cannot be empty";
|
|
1743
|
+
if (trimmed.length > 255) return "Name is too long";
|
|
1744
|
+
return true;
|
|
1745
|
+
}
|
|
1746
|
+
}),
|
|
1747
|
+
placeholder: "Enter name",
|
|
1748
|
+
disabled: isSubmitting,
|
|
1749
|
+
autoComplete: "off"
|
|
1688
1750
|
}
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1751
|
+
)
|
|
1752
|
+
] }) }),
|
|
1753
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogFooter, { children: [
|
|
1754
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1755
|
+
Button,
|
|
1756
|
+
{
|
|
1757
|
+
type: "button",
|
|
1758
|
+
variant: "outline",
|
|
1759
|
+
onClick: (e) => {
|
|
1760
|
+
e.preventDefault();
|
|
1761
|
+
e.stopPropagation();
|
|
1762
|
+
handleClose();
|
|
1763
|
+
},
|
|
1764
|
+
disabled: isSubmitting,
|
|
1765
|
+
children: "Cancel"
|
|
1766
|
+
}
|
|
1767
|
+
),
|
|
1768
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { type: "submit", disabled: isSubmitting, children: isSubmitting ? "Renaming..." : "Rename" })
|
|
1769
|
+
] })
|
|
1770
|
+
]
|
|
1771
|
+
}
|
|
1772
|
+
)
|
|
1710
1773
|
}
|
|
1711
1774
|
) });
|
|
1712
1775
|
};
|
|
@@ -1988,7 +2051,7 @@ var DriveFileGrid = (props) => {
|
|
|
1988
2051
|
hasMore && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: observerTarget, className: "nd:flex nd:justify-center nd:py-6", children: isLoadingMore && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "nd:size-6 nd:animate-spin nd:text-muted-foreground" }) })
|
|
1989
2052
|
] }),
|
|
1990
2053
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1991
|
-
|
|
2054
|
+
DriveFolderCreate,
|
|
1992
2055
|
{
|
|
1993
2056
|
open: dialogs.newFolder,
|
|
1994
2057
|
onClose: () => setDialogs((prev) => ({ ...prev, newFolder: false })),
|
|
@@ -1998,7 +2061,7 @@ var DriveFileGrid = (props) => {
|
|
|
1998
2061
|
}
|
|
1999
2062
|
),
|
|
2000
2063
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2001
|
-
|
|
2064
|
+
DriveItemRename,
|
|
2002
2065
|
{
|
|
2003
2066
|
open: dialogs.rename,
|
|
2004
2067
|
onClose: () => {
|
|
@@ -2013,7 +2076,7 @@ var DriveFileGrid = (props) => {
|
|
|
2013
2076
|
}
|
|
2014
2077
|
),
|
|
2015
2078
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2016
|
-
|
|
2079
|
+
DriveConfirm,
|
|
2017
2080
|
{
|
|
2018
2081
|
open: dialogs.delete,
|
|
2019
2082
|
onClose: () => {
|
|
@@ -2274,7 +2337,7 @@ var DriveHeader = ({ className }) => {
|
|
|
2274
2337
|
)
|
|
2275
2338
|
] }),
|
|
2276
2339
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2277
|
-
|
|
2340
|
+
DriveConfirm,
|
|
2278
2341
|
{
|
|
2279
2342
|
open: dialogs.delete,
|
|
2280
2343
|
onClose: () => setDialogs((prev) => ({ ...prev, delete: false })),
|
|
@@ -2290,7 +2353,7 @@ var DriveHeader = ({ className }) => {
|
|
|
2290
2353
|
}
|
|
2291
2354
|
),
|
|
2292
2355
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2293
|
-
|
|
2356
|
+
DriveConfirm,
|
|
2294
2357
|
{
|
|
2295
2358
|
open: dialogs.emptyTrash,
|
|
2296
2359
|
onClose: () => setDialogs((prev) => ({ ...prev, emptyTrash: false })),
|
|
@@ -2304,7 +2367,7 @@ var DriveHeader = ({ className }) => {
|
|
|
2304
2367
|
}
|
|
2305
2368
|
),
|
|
2306
2369
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2307
|
-
|
|
2370
|
+
DriveFolderCreate,
|
|
2308
2371
|
{
|
|
2309
2372
|
open: dialogs.newFolder,
|
|
2310
2373
|
onClose: () => setDialogs((prev) => ({ ...prev, newFolder: false })),
|
|
@@ -3014,7 +3077,7 @@ var ChooserSidebar = (props) => {
|
|
|
3014
3077
|
] }),
|
|
3015
3078
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:p-2.5 nd:border-t nd:border-border/50 nd:bg-background/50 nd:dark:bg-background/30", children: /* @__PURE__ */ jsxRuntime.jsx(DriveStorageIndicator, {}) }),
|
|
3016
3079
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3017
|
-
|
|
3080
|
+
DriveAccountRename,
|
|
3018
3081
|
{
|
|
3019
3082
|
open: renameDialog.open,
|
|
3020
3083
|
onClose: () => setRenameDialog({ open: false, account: null }),
|
|
@@ -3023,7 +3086,7 @@ var ChooserSidebar = (props) => {
|
|
|
3023
3086
|
}
|
|
3024
3087
|
),
|
|
3025
3088
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3026
|
-
|
|
3089
|
+
DriveConfirm,
|
|
3027
3090
|
{
|
|
3028
3091
|
open: deleteDialog.open,
|
|
3029
3092
|
onClose: () => setDeleteDialog({ open: false, account: null }),
|
|
@@ -3451,7 +3514,7 @@ var SidebarContent = (props) => {
|
|
|
3451
3514
|
] }),
|
|
3452
3515
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:p-2.5 nd:border-t nd:border-border/50 nd:bg-background/50 nd:dark:bg-background/30", children: /* @__PURE__ */ jsxRuntime.jsx(DriveStorageIndicator, {}) }),
|
|
3453
3516
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3454
|
-
|
|
3517
|
+
DriveAccountRename,
|
|
3455
3518
|
{
|
|
3456
3519
|
open: renameDialog.open,
|
|
3457
3520
|
onClose: () => setRenameDialog({ open: false, account: null }),
|
|
@@ -3460,7 +3523,7 @@ var SidebarContent = (props) => {
|
|
|
3460
3523
|
}
|
|
3461
3524
|
),
|
|
3462
3525
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3463
|
-
|
|
3526
|
+
DriveConfirm,
|
|
3464
3527
|
{
|
|
3465
3528
|
open: deleteDialog.open,
|
|
3466
3529
|
onClose: () => setDeleteDialog({ open: false, account: null }),
|
|
@@ -3820,7 +3883,7 @@ var DriveExplorer = (props) => {
|
|
|
3820
3883
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "nd:px-2 nd:py-6 nd:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "nd:text-xs nd:text-muted-foreground", children: "No actions available" }) }) })
|
|
3821
3884
|
] }),
|
|
3822
3885
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3823
|
-
|
|
3886
|
+
DriveFolderCreate,
|
|
3824
3887
|
{
|
|
3825
3888
|
open: dialogs.newFolder,
|
|
3826
3889
|
onClose: () => setDialogs((prev) => ({ ...prev, newFolder: false })),
|
|
@@ -3830,7 +3893,7 @@ var DriveExplorer = (props) => {
|
|
|
3830
3893
|
}
|
|
3831
3894
|
),
|
|
3832
3895
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3833
|
-
|
|
3896
|
+
DriveItemRename,
|
|
3834
3897
|
{
|
|
3835
3898
|
open: dialogs.rename,
|
|
3836
3899
|
onClose: () => {
|
|
@@ -3845,7 +3908,7 @@ var DriveExplorer = (props) => {
|
|
|
3845
3908
|
}
|
|
3846
3909
|
),
|
|
3847
3910
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3848
|
-
|
|
3911
|
+
DriveConfirm,
|
|
3849
3912
|
{
|
|
3850
3913
|
open: dialogs.delete,
|
|
3851
3914
|
onClose: () => {
|