@interware/content-generator 0.8.0 → 0.8.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/dist/_chunks/{App-DD1MzaWm.mjs → App-2eX-mcfo.mjs} +2 -2
- package/dist/_chunks/{App-DspaMfyW.js → App-CvZirjX_.js} +2 -2
- package/dist/_chunks/{ImageStudioTabs-DwaLxRjl.mjs → ImageStudioTabs-B6fkCK-o.mjs} +47 -7
- package/dist/_chunks/{ImageStudioTabs-uXSBkFeu.js → ImageStudioTabs-CNktoRax.js} +46 -6
- package/dist/_chunks/{Settings-ps0o7-fC.js → Settings-B-QPodCh.js} +1 -1
- package/dist/_chunks/{Settings-C6TbUrgU.mjs → Settings-CaGruvIm.mjs} +1 -1
- package/dist/_chunks/{StudioApp-B7kGpqqo.js → StudioApp-BDoB31L0.js} +2 -2
- package/dist/_chunks/{StudioApp-B5I1OfGw.mjs → StudioApp-CF03znuL.mjs} +2 -2
- package/dist/_chunks/{index-zenHkX-p.mjs → index-DlemRDzs.mjs} +3 -3
- package/dist/_chunks/{index-BudahdfX.js → index-DwHGS-BJ.js} +3 -3
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/features/library/LibraryTab.d.ts +5 -0
- package/package.json +1 -1
|
@@ -5,8 +5,8 @@ import { P as PluginProviders } from "./PluginProviders-DWMpcAIh.mjs";
|
|
|
5
5
|
import { useMemo, useState, useEffect, useRef, useCallback } from "react";
|
|
6
6
|
import { Box, Flex, Typography, Button, Badge, TextInput, Loader, Table, Thead, Tr, Th, VisuallyHidden, Tbody, Td, TextButton, IconButton, Link, LinkButton, Field, Radio, Modal, Textarea, Combobox, ComboboxOption, Toggle, Grid } from "@strapi/design-system";
|
|
7
7
|
import { Plus, Search, Check, Pencil, ExternalLink, ArrowLeft, Image, Clock, WarningCircle, Trash, Sparkle, PlusCircle } from "@strapi/icons";
|
|
8
|
-
import { P as PLUGIN_ID, S as STUDIO_PATH, p as pluginPermissions } from "./index-
|
|
9
|
-
import { L as LibraryImagePicker, P as PromptComposer, a as LEGACY_ROUTES, S as StudioRedirect, l as legacyRedirect } from "./ImageStudioTabs-
|
|
8
|
+
import { P as PLUGIN_ID, S as STUDIO_PATH, p as pluginPermissions } from "./index-DlemRDzs.mjs";
|
|
9
|
+
import { L as LibraryImagePicker, P as PromptComposer, a as LEGACY_ROUTES, S as StudioRedirect, l as legacyRedirect } from "./ImageStudioTabs-B6fkCK-o.mjs";
|
|
10
10
|
import { useIntl } from "react-intl";
|
|
11
11
|
import { useFormik } from "formik";
|
|
12
12
|
import * as Yup from "yup";
|
|
@@ -7,8 +7,8 @@ const PluginProviders = require("./PluginProviders-D79TeGSE.js");
|
|
|
7
7
|
const react = require("react");
|
|
8
8
|
const designSystem = require("@strapi/design-system");
|
|
9
9
|
const icons = require("@strapi/icons");
|
|
10
|
-
const index = require("./index-
|
|
11
|
-
const ImageStudioTabs = require("./ImageStudioTabs-
|
|
10
|
+
const index = require("./index-DwHGS-BJ.js");
|
|
11
|
+
const ImageStudioTabs = require("./ImageStudioTabs-CNktoRax.js");
|
|
12
12
|
const reactIntl = require("react-intl");
|
|
13
13
|
const formik = require("formik");
|
|
14
14
|
const Yup = require("yup");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Modal, Flex, Button, Loader, Typography, Grid, Box, lightTheme, Checkbox, Field, TextInput, Dialog, SingleSelect, SingleSelectOption, Link, Badge, IconButtonGroup, IconButton, Toggle, Menu, Table, Thead, Tr, Th, VisuallyHidden, Tbody, Td, TextButton, LinkButton, NumberInput, Divider, Textarea, Tabs } from "@strapi/design-system";
|
|
2
|
+
import { Modal, Flex, Button, Loader, Typography, Grid, Box, lightTheme, Checkbox, Field, TextInput, Dialog, SingleSelect, SingleSelectOption, Link, Badge, IconButtonGroup, IconButton, Toggle, Menu, Table, Thead, Tr, Th, VisuallyHidden, Tbody, Td, TextButton, LinkButton, ProgressBar, NumberInput, Divider, Textarea, Tabs } from "@strapi/design-system";
|
|
3
3
|
import { useLocation, Navigate, useSearchParams } from "react-router-dom";
|
|
4
|
-
import { S as STUDIO_PATH } from "./index-
|
|
4
|
+
import { S as STUDIO_PATH } from "./index-DlemRDzs.mjs";
|
|
5
5
|
import { useMemo, useState, useEffect, useId, useRef, useReducer, useCallback, useSyncExternalStore, useLayoutEffect, memo, forwardRef } from "react";
|
|
6
6
|
import { ChevronRight, Folder, Magic, Pencil, Upload, Sparkle, Plus, Cross, Download, ArrowClockwise, House, ChevronDown, FilePdf, File as File$1, More, ExternalLink, Trash, User, Star, SquaresFour, Quotes, PriceTag, Paragraph, NumberList, Minus, Italic, Image as Image$1, HeadingTwo, HeadingOne, Hashtag, Feather, Drag, BulletList, ArrowLeft, Check, ArrowsCounterClockwise, ArrowLineLeft, ArrowLineRight, Expand, WarningCircle, Play, Phone, Mail, PinMap, Earth, PresentationChart, ChartPie, ChartBubble, Cog, Database, Cloud, Globe, Server, Lightbulb, Crown, SealCheck, Briefcase, Rocket, Shield, CheckCircle, Lightning, Heart, Collapse, Bold, ArrowUp, ArrowDown, Duplicate, Lock, EyeStriked, Eye } from "@strapi/icons";
|
|
7
7
|
import { useTheme } from "styled-components";
|
|
@@ -2140,6 +2140,11 @@ const useDriveSync = (watching = false) => {
|
|
|
2140
2140
|
[links, refresh, post, del]
|
|
2141
2141
|
);
|
|
2142
2142
|
};
|
|
2143
|
+
const uploadSummary = (total, failed) => {
|
|
2144
|
+
if (failed.length === 0) return { type: "success", message: total === 1 ? "Archivo subido" : `${total} archivos subidos` };
|
|
2145
|
+
if (failed.length === total) return { type: "danger", message: `No se pudo subir: ${failed.join(", ")}.` };
|
|
2146
|
+
return { type: "warning", message: `${total - failed.length} de ${total} archivos subidos. No se pudo subir: ${failed.join(", ")}.` };
|
|
2147
|
+
};
|
|
2143
2148
|
const status = (err) => err?.response?.status ?? err?.status;
|
|
2144
2149
|
const LibraryTab = () => {
|
|
2145
2150
|
const c = useThemeColors();
|
|
@@ -2156,7 +2161,10 @@ const LibraryTab = () => {
|
|
|
2156
2161
|
const [dragOver, setDragOver] = useState(false);
|
|
2157
2162
|
const [bgBusy, setBgBusy] = useState({});
|
|
2158
2163
|
const [bgTarget, setBgTarget] = useState(null);
|
|
2164
|
+
const [uploading, setUploading] = useState(null);
|
|
2159
2165
|
const uploadInput = useRef(null);
|
|
2166
|
+
const currentRef = useRef(current);
|
|
2167
|
+
currentRef.current = current;
|
|
2160
2168
|
const replaceInput = useRef(null);
|
|
2161
2169
|
const replaceTarget = useRef(null);
|
|
2162
2170
|
const path = pathTo(tree, current);
|
|
@@ -2214,9 +2222,30 @@ const LibraryTab = () => {
|
|
|
2214
2222
|
await refresh();
|
|
2215
2223
|
}
|
|
2216
2224
|
};
|
|
2217
|
-
|
|
2225
|
+
useEffect(() => {
|
|
2226
|
+
if (!uploading) return;
|
|
2227
|
+
const warn = (e) => e.preventDefault();
|
|
2228
|
+
window.addEventListener("beforeunload", warn);
|
|
2229
|
+
return () => window.removeEventListener("beforeunload", warn);
|
|
2230
|
+
}, [uploading]);
|
|
2231
|
+
const upload = async (list) => {
|
|
2218
2232
|
const arr = [...list ?? []];
|
|
2219
|
-
if (arr.length
|
|
2233
|
+
if (!arr.length || uploading) return;
|
|
2234
|
+
const folderId = current;
|
|
2235
|
+
const failed = [];
|
|
2236
|
+
for (const [i, file] of arr.entries()) {
|
|
2237
|
+
setUploading({ done: i, total: arr.length, name: file.name });
|
|
2238
|
+
try {
|
|
2239
|
+
const uploaded = await api.uploadFiles([file], folderId);
|
|
2240
|
+
if (currentRef.current === folderId) setFiles((prev) => [...uploaded, ...prev]);
|
|
2241
|
+
} catch {
|
|
2242
|
+
failed.push(file.name);
|
|
2243
|
+
}
|
|
2244
|
+
}
|
|
2245
|
+
setUploading(null);
|
|
2246
|
+
const { type, message } = uploadSummary(arr.length, failed);
|
|
2247
|
+
notify(type, message);
|
|
2248
|
+
await refresh();
|
|
2220
2249
|
};
|
|
2221
2250
|
const setBgStatus = (file, s) => setBgBusy((b) => {
|
|
2222
2251
|
const next = { ...b };
|
|
@@ -2298,7 +2327,7 @@ const LibraryTab = () => {
|
|
|
2298
2327
|
hasRadius: true,
|
|
2299
2328
|
position: "relative",
|
|
2300
2329
|
onDragOver: (e) => {
|
|
2301
|
-
if (e.dataTransfer.types.includes("Files")) {
|
|
2330
|
+
if (e.dataTransfer.types.includes("Files") && !uploading) {
|
|
2302
2331
|
e.preventDefault();
|
|
2303
2332
|
setDragOver(true);
|
|
2304
2333
|
}
|
|
@@ -2310,7 +2339,7 @@ const LibraryTab = () => {
|
|
|
2310
2339
|
if (e.dataTransfer.files.length) {
|
|
2311
2340
|
e.preventDefault();
|
|
2312
2341
|
setDragOver(false);
|
|
2313
|
-
upload(e.dataTransfer.files);
|
|
2342
|
+
if (!uploading) upload(e.dataTransfer.files);
|
|
2314
2343
|
}
|
|
2315
2344
|
},
|
|
2316
2345
|
children: [
|
|
@@ -2331,7 +2360,7 @@ const LibraryTab = () => {
|
|
|
2331
2360
|
/* @__PURE__ */ jsx(Button, { variant: "danger-light", startIcon: /* @__PURE__ */ jsx(Trash, {}), onClick: () => setDialog({ kind: "deleteFolder" }), children: "Eliminar carpeta" })
|
|
2332
2361
|
] }),
|
|
2333
2362
|
/* @__PURE__ */ jsx(Button, { variant: "secondary", startIcon: /* @__PURE__ */ jsx(Plus, {}), onClick: () => setDialog({ kind: "newFolder" }), children: "Nueva carpeta" }),
|
|
2334
|
-
/* @__PURE__ */ jsx(Button, { startIcon: /* @__PURE__ */ jsx(Upload, {}), onClick: () => uploadInput.current?.click(), children: "Subir archivos" })
|
|
2363
|
+
/* @__PURE__ */ jsx(Button, { startIcon: /* @__PURE__ */ jsx(Upload, {}), onClick: () => uploadInput.current?.click(), disabled: !!uploading, loading: !!uploading, children: "Subir archivos" })
|
|
2335
2364
|
] })
|
|
2336
2365
|
] }),
|
|
2337
2366
|
subfolders.length > 0 && /* @__PURE__ */ jsx(Grid.Root, { gap: 2, paddingBottom: 4, children: subfolders.map((f) => /* @__PURE__ */ jsx(Grid.Item, { col: 3, s: 6, xs: 12, children: /* @__PURE__ */ jsx(
|
|
@@ -2358,6 +2387,17 @@ const LibraryTab = () => {
|
|
|
2358
2387
|
] })
|
|
2359
2388
|
}
|
|
2360
2389
|
) }, f.id)) }),
|
|
2390
|
+
uploading && /* @__PURE__ */ jsx(Box, { padding: 3, marginBottom: 4, hasRadius: true, background: "primary100", borderColor: "primary200", role: "status", "aria-live": "polite", children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
|
2391
|
+
/* @__PURE__ */ jsxs(Typography, { textColor: "primary700", children: [
|
|
2392
|
+
"Subiendo ",
|
|
2393
|
+
uploading.done + 1,
|
|
2394
|
+
" de ",
|
|
2395
|
+
uploading.total,
|
|
2396
|
+
" · ",
|
|
2397
|
+
uploading.name
|
|
2398
|
+
] }),
|
|
2399
|
+
/* @__PURE__ */ jsx(ProgressBar, { value: Math.round(uploading.done / uploading.total * 100), children: `${uploading.done} de ${uploading.total} archivos subidos` })
|
|
2400
|
+
] }) }),
|
|
2361
2401
|
loading2 ? /* @__PURE__ */ jsx(Flex, { justifyContent: "center", padding: 8, children: /* @__PURE__ */ jsx(Loader, { children: "Cargando archivos…" }) }) : files.length === 0 ? /* @__PURE__ */ jsx(EmptyNote, { children: subfolders.length ? "No hay archivos sueltos en esta carpeta." : "Carpeta vacía. Arrastra archivos aquí o usa «Subir archivos»." }) : /* @__PURE__ */ jsx(Grid.Root, { gap: 4, children: files.map((f) => /* @__PURE__ */ jsx(Grid.Item, { col: 3, m: 4, s: 6, xs: 12, children: /* @__PURE__ */ jsx(FileCard, { file: f, onAction: onFileAction, busy: bgBusy[f.id], drive: driveView(drive.links, `file:${f.id}`, currentInside) }) }, f.id)) }),
|
|
2362
2402
|
dragOver && /* @__PURE__ */ jsx(Flex, { position: "absolute", justifyContent: "center", background: "primary100", hasRadius: true, style: { inset: 0, border: `2px dashed ${c.primary600}`, opacity: 0.95 }, children: /* @__PURE__ */ jsxs(Typography, { variant: "beta", textColor: "primary700", children: [
|
|
2363
2403
|
"Suelta para subir a «",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
3
|
const designSystem = require("@strapi/design-system");
|
|
4
4
|
const reactRouterDom = require("react-router-dom");
|
|
5
|
-
const index = require("./index-
|
|
5
|
+
const index = require("./index-DwHGS-BJ.js");
|
|
6
6
|
const react = require("react");
|
|
7
7
|
const icons = require("@strapi/icons");
|
|
8
8
|
const styledComponents = require("styled-components");
|
|
@@ -2143,6 +2143,11 @@ const useDriveSync = (watching = false) => {
|
|
|
2143
2143
|
[links, refresh, post, del]
|
|
2144
2144
|
);
|
|
2145
2145
|
};
|
|
2146
|
+
const uploadSummary = (total, failed) => {
|
|
2147
|
+
if (failed.length === 0) return { type: "success", message: total === 1 ? "Archivo subido" : `${total} archivos subidos` };
|
|
2148
|
+
if (failed.length === total) return { type: "danger", message: `No se pudo subir: ${failed.join(", ")}.` };
|
|
2149
|
+
return { type: "warning", message: `${total - failed.length} de ${total} archivos subidos. No se pudo subir: ${failed.join(", ")}.` };
|
|
2150
|
+
};
|
|
2146
2151
|
const status = (err) => err?.response?.status ?? err?.status;
|
|
2147
2152
|
const LibraryTab = () => {
|
|
2148
2153
|
const c = useThemeColors();
|
|
@@ -2159,7 +2164,10 @@ const LibraryTab = () => {
|
|
|
2159
2164
|
const [dragOver, setDragOver] = react.useState(false);
|
|
2160
2165
|
const [bgBusy, setBgBusy] = react.useState({});
|
|
2161
2166
|
const [bgTarget, setBgTarget] = react.useState(null);
|
|
2167
|
+
const [uploading, setUploading] = react.useState(null);
|
|
2162
2168
|
const uploadInput = react.useRef(null);
|
|
2169
|
+
const currentRef = react.useRef(current);
|
|
2170
|
+
currentRef.current = current;
|
|
2163
2171
|
const replaceInput = react.useRef(null);
|
|
2164
2172
|
const replaceTarget = react.useRef(null);
|
|
2165
2173
|
const path = pathTo(tree, current);
|
|
@@ -2217,9 +2225,30 @@ const LibraryTab = () => {
|
|
|
2217
2225
|
await refresh();
|
|
2218
2226
|
}
|
|
2219
2227
|
};
|
|
2220
|
-
|
|
2228
|
+
react.useEffect(() => {
|
|
2229
|
+
if (!uploading) return;
|
|
2230
|
+
const warn = (e) => e.preventDefault();
|
|
2231
|
+
window.addEventListener("beforeunload", warn);
|
|
2232
|
+
return () => window.removeEventListener("beforeunload", warn);
|
|
2233
|
+
}, [uploading]);
|
|
2234
|
+
const upload = async (list) => {
|
|
2221
2235
|
const arr = [...list ?? []];
|
|
2222
|
-
if (arr.length
|
|
2236
|
+
if (!arr.length || uploading) return;
|
|
2237
|
+
const folderId = current;
|
|
2238
|
+
const failed = [];
|
|
2239
|
+
for (const [i, file] of arr.entries()) {
|
|
2240
|
+
setUploading({ done: i, total: arr.length, name: file.name });
|
|
2241
|
+
try {
|
|
2242
|
+
const uploaded = await api.uploadFiles([file], folderId);
|
|
2243
|
+
if (currentRef.current === folderId) setFiles((prev) => [...uploaded, ...prev]);
|
|
2244
|
+
} catch {
|
|
2245
|
+
failed.push(file.name);
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
setUploading(null);
|
|
2249
|
+
const { type, message } = uploadSummary(arr.length, failed);
|
|
2250
|
+
notify(type, message);
|
|
2251
|
+
await refresh();
|
|
2223
2252
|
};
|
|
2224
2253
|
const setBgStatus = (file, s) => setBgBusy((b) => {
|
|
2225
2254
|
const next = { ...b };
|
|
@@ -2301,7 +2330,7 @@ const LibraryTab = () => {
|
|
|
2301
2330
|
hasRadius: true,
|
|
2302
2331
|
position: "relative",
|
|
2303
2332
|
onDragOver: (e) => {
|
|
2304
|
-
if (e.dataTransfer.types.includes("Files")) {
|
|
2333
|
+
if (e.dataTransfer.types.includes("Files") && !uploading) {
|
|
2305
2334
|
e.preventDefault();
|
|
2306
2335
|
setDragOver(true);
|
|
2307
2336
|
}
|
|
@@ -2313,7 +2342,7 @@ const LibraryTab = () => {
|
|
|
2313
2342
|
if (e.dataTransfer.files.length) {
|
|
2314
2343
|
e.preventDefault();
|
|
2315
2344
|
setDragOver(false);
|
|
2316
|
-
upload(e.dataTransfer.files);
|
|
2345
|
+
if (!uploading) upload(e.dataTransfer.files);
|
|
2317
2346
|
}
|
|
2318
2347
|
},
|
|
2319
2348
|
children: [
|
|
@@ -2334,7 +2363,7 @@ const LibraryTab = () => {
|
|
|
2334
2363
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "danger-light", startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}), onClick: () => setDialog({ kind: "deleteFolder" }), children: "Eliminar carpeta" })
|
|
2335
2364
|
] }),
|
|
2336
2365
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "secondary", startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}), onClick: () => setDialog({ kind: "newFolder" }), children: "Nueva carpeta" }),
|
|
2337
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Upload, {}), onClick: () => uploadInput.current?.click(), children: "Subir archivos" })
|
|
2366
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Upload, {}), onClick: () => uploadInput.current?.click(), disabled: !!uploading, loading: !!uploading, children: "Subir archivos" })
|
|
2338
2367
|
] })
|
|
2339
2368
|
] }),
|
|
2340
2369
|
subfolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 2, paddingBottom: 4, children: subfolders.map((f) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2361,6 +2390,17 @@ const LibraryTab = () => {
|
|
|
2361
2390
|
] })
|
|
2362
2391
|
}
|
|
2363
2392
|
) }, f.id)) }),
|
|
2393
|
+
uploading && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 3, marginBottom: 4, hasRadius: true, background: "primary100", borderColor: "primary200", role: "status", "aria-live": "polite", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
|
2394
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { textColor: "primary700", children: [
|
|
2395
|
+
"Subiendo ",
|
|
2396
|
+
uploading.done + 1,
|
|
2397
|
+
" de ",
|
|
2398
|
+
uploading.total,
|
|
2399
|
+
" · ",
|
|
2400
|
+
uploading.name
|
|
2401
|
+
] }),
|
|
2402
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.ProgressBar, { value: Math.round(uploading.done / uploading.total * 100), children: `${uploading.done} de ${uploading.total} archivos subidos` })
|
|
2403
|
+
] }) }),
|
|
2364
2404
|
loading2 ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", padding: 8, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Loader, { children: "Cargando archivos…" }) }) : files.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(EmptyNote, { children: subfolders.length ? "No hay archivos sueltos en esta carpeta." : "Carpeta vacía. Arrastra archivos aquí o usa «Subir archivos»." }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, m: 4, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(FileCard, { file: f, onAction: onFileAction, busy: bgBusy[f.id], drive: driveView(drive.links, `file:${f.id}`, currentInside) }) }, f.id)) }),
|
|
2365
2405
|
dragOver && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { position: "absolute", justifyContent: "center", background: "primary100", hasRadius: true, style: { inset: 0, border: `2px dashed ${c.primary600}`, opacity: 0.95 }, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "beta", textColor: "primary700", children: [
|
|
2366
2406
|
"Suelta para subir a «",
|
|
@@ -7,7 +7,7 @@ const react = require("react");
|
|
|
7
7
|
const designSystem = require("@strapi/design-system");
|
|
8
8
|
const formik = require("formik");
|
|
9
9
|
const PluginProviders = require("./PluginProviders-D79TeGSE.js");
|
|
10
|
-
const index = require("./index-
|
|
10
|
+
const index = require("./index-DwHGS-BJ.js");
|
|
11
11
|
const useSettings = () => {
|
|
12
12
|
const { get, post, del } = admin.useFetchClient();
|
|
13
13
|
const getSettings = react.useCallback(
|
|
@@ -5,7 +5,7 @@ import { useCallback, useState, useRef, useEffect, useMemo } from "react";
|
|
|
5
5
|
import { Box, Grid, Field, Flex, Button, Typography, Textarea } from "@strapi/design-system";
|
|
6
6
|
import { Formik } from "formik";
|
|
7
7
|
import { P as PluginProviders } from "./PluginProviders-DWMpcAIh.mjs";
|
|
8
|
-
import { P as PLUGIN_ID } from "./index-
|
|
8
|
+
import { P as PLUGIN_ID } from "./index-DlemRDzs.mjs";
|
|
9
9
|
const useSettings = () => {
|
|
10
10
|
const { get, post, del } = useFetchClient();
|
|
11
11
|
const getSettings = useCallback(
|
|
@@ -4,9 +4,9 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
4
4
|
const admin = require("@strapi/strapi/admin");
|
|
5
5
|
const reactRouterDom = require("react-router-dom");
|
|
6
6
|
const PluginProviders = require("./PluginProviders-D79TeGSE.js");
|
|
7
|
-
const index = require("./index-
|
|
7
|
+
const index = require("./index-DwHGS-BJ.js");
|
|
8
8
|
const designSystem = require("@strapi/design-system");
|
|
9
|
-
const ImageStudioTabs = require("./ImageStudioTabs-
|
|
9
|
+
const ImageStudioTabs = require("./ImageStudioTabs-CNktoRax.js");
|
|
10
10
|
const ImageStudio = () => /* @__PURE__ */ jsxRuntime.jsxs(admin.Page.Main, { children: [
|
|
11
11
|
/* @__PURE__ */ jsxRuntime.jsx(admin.Page.Title, { children: "Estudio de imágenes" }),
|
|
12
12
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { height: "100vh" }, children: /* @__PURE__ */ jsxRuntime.jsx(ImageStudioTabs.ImageStudioTabs, {}) })
|
|
@@ -2,9 +2,9 @@ import { jsxs, jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Page } from "@strapi/strapi/admin";
|
|
3
3
|
import { Routes, Route } from "react-router-dom";
|
|
4
4
|
import { P as PluginProviders } from "./PluginProviders-DWMpcAIh.mjs";
|
|
5
|
-
import { p as pluginPermissions } from "./index-
|
|
5
|
+
import { p as pluginPermissions } from "./index-DlemRDzs.mjs";
|
|
6
6
|
import { Box } from "@strapi/design-system";
|
|
7
|
-
import { I as ImageStudioTabs } from "./ImageStudioTabs-
|
|
7
|
+
import { I as ImageStudioTabs } from "./ImageStudioTabs-B6fkCK-o.mjs";
|
|
8
8
|
const ImageStudio = () => /* @__PURE__ */ jsxs(Page.Main, { children: [
|
|
9
9
|
/* @__PURE__ */ jsx(Page.Title, { children: "Estudio de imágenes" }),
|
|
10
10
|
/* @__PURE__ */ jsx(Box, { style: { height: "100vh" }, children: /* @__PURE__ */ jsx(ImageStudioTabs, {}) })
|
|
@@ -56,7 +56,7 @@ const index = {
|
|
|
56
56
|
defaultMessage: "Generador de contenido"
|
|
57
57
|
},
|
|
58
58
|
Component: async () => {
|
|
59
|
-
const { App } = await import("./App-
|
|
59
|
+
const { App } = await import("./App-2eX-mcfo.mjs");
|
|
60
60
|
return App;
|
|
61
61
|
},
|
|
62
62
|
permissions: [
|
|
@@ -71,7 +71,7 @@ const index = {
|
|
|
71
71
|
defaultMessage: "Estudio de imágenes"
|
|
72
72
|
},
|
|
73
73
|
Component: async () => {
|
|
74
|
-
const { StudioApp } = await import("./StudioApp-
|
|
74
|
+
const { StudioApp } = await import("./StudioApp-CF03znuL.mjs");
|
|
75
75
|
return StudioApp;
|
|
76
76
|
},
|
|
77
77
|
permissions: [
|
|
@@ -91,7 +91,7 @@ const index = {
|
|
|
91
91
|
defaultMessage: PLUGIN_ID
|
|
92
92
|
},
|
|
93
93
|
Component: async () => {
|
|
94
|
-
const component = await import("./Settings-
|
|
94
|
+
const component = await import("./Settings-CaGruvIm.mjs");
|
|
95
95
|
return component.default;
|
|
96
96
|
},
|
|
97
97
|
to: `plugins/${PLUGIN_ID}/settings`,
|
|
@@ -57,7 +57,7 @@ const index = {
|
|
|
57
57
|
defaultMessage: "Generador de contenido"
|
|
58
58
|
},
|
|
59
59
|
Component: async () => {
|
|
60
|
-
const { App } = await Promise.resolve().then(() => require("./App-
|
|
60
|
+
const { App } = await Promise.resolve().then(() => require("./App-CvZirjX_.js"));
|
|
61
61
|
return App;
|
|
62
62
|
},
|
|
63
63
|
permissions: [
|
|
@@ -72,7 +72,7 @@ const index = {
|
|
|
72
72
|
defaultMessage: "Estudio de imágenes"
|
|
73
73
|
},
|
|
74
74
|
Component: async () => {
|
|
75
|
-
const { StudioApp } = await Promise.resolve().then(() => require("./StudioApp-
|
|
75
|
+
const { StudioApp } = await Promise.resolve().then(() => require("./StudioApp-BDoB31L0.js"));
|
|
76
76
|
return StudioApp;
|
|
77
77
|
},
|
|
78
78
|
permissions: [
|
|
@@ -92,7 +92,7 @@ const index = {
|
|
|
92
92
|
defaultMessage: PLUGIN_ID
|
|
93
93
|
},
|
|
94
94
|
Component: async () => {
|
|
95
|
-
const component = await Promise.resolve().then(() => require("./Settings-
|
|
95
|
+
const component = await Promise.resolve().then(() => require("./Settings-B-QPodCh.js"));
|
|
96
96
|
return component.default;
|
|
97
97
|
},
|
|
98
98
|
to: `plugins/${PLUGIN_ID}/settings`,
|
package/dist/admin/index.js
CHANGED
package/dist/admin/index.mjs
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
/** Resultado de subir varios archivos: el aviso dice cuántos entraron y cuáles fallaron. */
|
|
2
|
+
export declare const uploadSummary: (total: number, failed: string[]) => {
|
|
3
|
+
type: 'success' | 'warning' | 'danger';
|
|
4
|
+
message: string;
|
|
5
|
+
};
|
|
1
6
|
/** Pestaña «Imágenes y documentos»: la Media Library de Strapi organizada por carpetas. */
|
|
2
7
|
export declare const LibraryTab: () => import("react/jsx-runtime").JSX.Element;
|
package/package.json
CHANGED