strapi-plugin-magic-link-v5 4.13.2 → 4.14.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.
@@ -59,7 +59,7 @@ const index = {
59
59
  },
60
60
  Component: () => import(
61
61
  /* webpackChunkName: "magic-link-tokens" */
62
- "./index-CM1jcmjC.mjs"
62
+ "./index-Dp1Uwmvk.mjs"
63
63
  ),
64
64
  permissions: []
65
65
  // Leeres Array = keine Permission-Prüfung nötig
@@ -82,7 +82,7 @@ const index = {
82
82
  to: `${PLUGIN_ID}/config`,
83
83
  Component: () => import(
84
84
  /* webpackChunkName: "magic-link-settings" */
85
- "./index-C-21KLAd.mjs"
85
+ "./index-CxkqwrH5.mjs"
86
86
  ),
87
87
  permissions: pluginPermissions.readSettings
88
88
  },
@@ -7,7 +7,7 @@ const reactIntl = require("react-intl");
7
7
  const designSystem = require("@strapi/design-system");
8
8
  const icons = require("@strapi/icons");
9
9
  const admin = require("@strapi/strapi/admin");
10
- const index = require("./index-DhL5XylV.js");
10
+ const index = require("./index-CHLk5ilu.js");
11
11
  const LicenseGuard = require("./LicenseGuard-CmMMPuWx.js");
12
12
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
13
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
@@ -60,7 +60,7 @@ const index = {
60
60
  },
61
61
  Component: () => Promise.resolve().then(() => require(
62
62
  /* webpackChunkName: "magic-link-tokens" */
63
- "./index-K0mbdMcq.js"
63
+ "./index-CLEwSQlV.js"
64
64
  )),
65
65
  permissions: []
66
66
  // Leeres Array = keine Permission-Prüfung nötig
@@ -83,7 +83,7 @@ const index = {
83
83
  to: `${PLUGIN_ID}/config`,
84
84
  Component: () => Promise.resolve().then(() => require(
85
85
  /* webpackChunkName: "magic-link-settings" */
86
- "./index-DJw1GIir.js"
86
+ "./index-CFIllI6K.js"
87
87
  )),
88
88
  permissions: pluginPermissions.readSettings
89
89
  },
@@ -7,7 +7,7 @@ const styled = require("styled-components");
7
7
  const reactIntl = require("react-intl");
8
8
  const designSystem = require("@strapi/design-system");
9
9
  const icons = require("@strapi/icons");
10
- const index = require("./index-DhL5XylV.js");
10
+ const index = require("./index-CHLk5ilu.js");
11
11
  const admin = require("@strapi/strapi/admin");
12
12
  const LicenseGuard = require("./LicenseGuard-CmMMPuWx.js");
13
13
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -2347,6 +2347,63 @@ const StyledTable = styled__default.default(designSystem.Table)`
2347
2347
  color: ${(props) => props.theme.colors.neutral800};
2348
2348
  }
2349
2349
  }
2350
+
2351
+ /* Mobile Optimization - Card Layout */
2352
+ @media screen and (max-width: 768px) {
2353
+ display: block !important;
2354
+ width: 100% !important;
2355
+
2356
+ thead {
2357
+ display: none !important;
2358
+ }
2359
+
2360
+ tbody {
2361
+ display: block !important;
2362
+ width: 100% !important;
2363
+ }
2364
+
2365
+ tr {
2366
+ display: block !important;
2367
+ margin-bottom: 16px !important;
2368
+ border: 2px solid #E5E7EB !important;
2369
+ border-radius: 12px !important;
2370
+ padding: 16px !important;
2371
+ background: white !important;
2372
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important;
2373
+ width: 100% !important;
2374
+ }
2375
+
2376
+ td {
2377
+ display: flex !important;
2378
+ justify-content: space-between !important;
2379
+ align-items: center !important;
2380
+ padding: 8px 0 !important;
2381
+ border: none !important;
2382
+ width: 100% !important;
2383
+
2384
+ &:not(:last-child) {
2385
+ border-bottom: 1px solid #E5E7EB !important;
2386
+ padding-bottom: 8px !important;
2387
+ margin-bottom: 8px !important;
2388
+ }
2389
+
2390
+ &::before {
2391
+ content: attr(data-label) !important;
2392
+ font-weight: 600 !important;
2393
+ color: #6B7280 !important;
2394
+ font-size: 11px !important;
2395
+ text-transform: uppercase !important;
2396
+ letter-spacing: 0.5px !important;
2397
+ display: block !important;
2398
+ flex-shrink: 0 !important;
2399
+ }
2400
+
2401
+ /* Hide empty labels */
2402
+ &[data-label=""]::before {
2403
+ display: none !important;
2404
+ }
2405
+ }
2406
+ }
2350
2407
  `;
2351
2408
  const StyledBadgeWrapper = styled__default.default.span`
2352
2409
  display: inline-block;
@@ -2972,14 +3029,14 @@ const TokensProfessional = () => {
2972
3029
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { children: formatMessage({ id: index.getTrad("tokens.table.actions") }) }) })
2973
3030
  ] }) }),
2974
3031
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tbody, { children: paginatedTokens.map((token) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
2975
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(
3032
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": "", children: /* @__PURE__ */ jsxRuntime.jsx(
2976
3033
  designSystem.Checkbox,
2977
3034
  {
2978
3035
  checked: selectedTokens.includes(token.id),
2979
3036
  onCheckedChange: (checked) => handleSelectToken(token.id, checked)
2980
3037
  }
2981
3038
  ) }),
2982
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
3039
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": formatMessage({ id: index.getTrad("tokens.table.email") }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
2983
3040
  /* @__PURE__ */ jsxRuntime.jsx(
2984
3041
  designSystem.Box,
2985
3042
  {
@@ -3001,7 +3058,7 @@ const TokensProfessional = () => {
3001
3058
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textColor: "neutral600", children: token.user_id ? formatMessage({ id: index.getTrad("tokens.user.id") }, { id: token.user_id }) : formatMessage({ id: index.getTrad("tokens.user.new") }) })
3002
3059
  ] })
3003
3060
  ] }) }),
3004
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { maxWidth: "200px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
3061
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": formatMessage({ id: index.getTrad("tokens.table.token") }), children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { maxWidth: "200px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
3005
3062
  designSystem.Typography,
3006
3063
  {
3007
3064
  variant: "pi",
@@ -3024,12 +3081,12 @@ const TokensProfessional = () => {
3024
3081
  children: token.token
3025
3082
  }
3026
3083
  ) }) }),
3027
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: getStatusBadge(token) }),
3028
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 1, children: [
3084
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": formatMessage({ id: index.getTrad("tokens.table.status") }), children: getStatusBadge(token) }),
3085
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": formatMessage({ id: index.getTrad("tokens.table.created") }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 1, children: [
3029
3086
  /* @__PURE__ */ jsxRuntime.jsx(icons.Calendar, { style: { width: "14px", height: "14px", color: theme.colors.neutral[500] } }),
3030
3087
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", children: formatDate(token.createdAt) })
3031
3088
  ] }) }),
3032
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 1, children: [
3089
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": formatMessage({ id: index.getTrad("tokens.table.expiresAt") }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 1, children: [
3033
3090
  /* @__PURE__ */ jsxRuntime.jsx(icons.Clock, { style: { width: "14px", height: "14px", color: theme.colors.warning[500] } }),
3034
3091
  (() => {
3035
3092
  const formattedDate = formatDate(token.expires_at);
@@ -3051,7 +3108,7 @@ const TokensProfessional = () => {
3051
3108
  );
3052
3109
  })()
3053
3110
  ] }) }),
3054
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 1, justifyContent: "flex-end", children: [
3111
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { "data-label": formatMessage({ id: index.getTrad("tokens.table.actions") }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 1, justifyContent: "flex-end", children: [
3055
3112
  /* @__PURE__ */ jsxRuntime.jsx(
3056
3113
  designSystem.IconButton,
3057
3114
  {
@@ -5,7 +5,7 @@ import { useIntl } from "react-intl";
5
5
  import { Box, Typography, Flex, Button, Accordion, SingleSelect, SingleSelectOption, Grid, Toggle, NumberInput, TextInput, Divider, Badge } from "@strapi/design-system";
6
6
  import { Check, Cog, Shield, Mail, Code } from "@strapi/icons";
7
7
  import { useNotification, useFetchClient } from "@strapi/strapi/admin";
8
- import { g as getTrad } from "./index-DkN9S9d_.mjs";
8
+ import { g as getTrad } from "./index-BDe1aP6I.mjs";
9
9
  import { u as usePluginLanguage, L as LicenseGuard, a as LanguageProvider } from "./LicenseGuard-CaYQ_9Dz.mjs";
10
10
  const theme = {
11
11
  colors: {
@@ -5,7 +5,7 @@ import styled, { keyframes, css } from "styled-components";
5
5
  import { useIntl } from "react-intl";
6
6
  import { Box, Flex, Typography, Button, TextInput, Textarea, Checkbox, IconButton, Loader, Searchbar, SingleSelect, SingleSelectOption, Thead, Tr, Th, Tbody, Td, Pagination, PreviousLink, PageLink, NextLink, Table, Badge, Main, VisuallyHidden } from "@strapi/design-system";
7
7
  import { Cross, Sparkle, Check, Shield, Clock, Lock, Trash, ArrowClockwise, CaretDown, User, Monitor, Calendar, Plus, Earth, WarningCircle, Server, Cog, Key, Eye, Link } from "@strapi/icons";
8
- import { g as getTrad } from "./index-DkN9S9d_.mjs";
8
+ import { g as getTrad } from "./index-BDe1aP6I.mjs";
9
9
  import { useFetchClient, useNotification } from "@strapi/strapi/admin";
10
10
  import { L as LicenseGuard, a as LanguageProvider } from "./LicenseGuard-CaYQ_9Dz.mjs";
11
11
  const CreateTokenModal = ({ isOpen, onClose, onSubmit, formData, setFormData }) => {
@@ -2343,6 +2343,63 @@ const StyledTable = styled(Table)`
2343
2343
  color: ${(props) => props.theme.colors.neutral800};
2344
2344
  }
2345
2345
  }
2346
+
2347
+ /* Mobile Optimization - Card Layout */
2348
+ @media screen and (max-width: 768px) {
2349
+ display: block !important;
2350
+ width: 100% !important;
2351
+
2352
+ thead {
2353
+ display: none !important;
2354
+ }
2355
+
2356
+ tbody {
2357
+ display: block !important;
2358
+ width: 100% !important;
2359
+ }
2360
+
2361
+ tr {
2362
+ display: block !important;
2363
+ margin-bottom: 16px !important;
2364
+ border: 2px solid #E5E7EB !important;
2365
+ border-radius: 12px !important;
2366
+ padding: 16px !important;
2367
+ background: white !important;
2368
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important;
2369
+ width: 100% !important;
2370
+ }
2371
+
2372
+ td {
2373
+ display: flex !important;
2374
+ justify-content: space-between !important;
2375
+ align-items: center !important;
2376
+ padding: 8px 0 !important;
2377
+ border: none !important;
2378
+ width: 100% !important;
2379
+
2380
+ &:not(:last-child) {
2381
+ border-bottom: 1px solid #E5E7EB !important;
2382
+ padding-bottom: 8px !important;
2383
+ margin-bottom: 8px !important;
2384
+ }
2385
+
2386
+ &::before {
2387
+ content: attr(data-label) !important;
2388
+ font-weight: 600 !important;
2389
+ color: #6B7280 !important;
2390
+ font-size: 11px !important;
2391
+ text-transform: uppercase !important;
2392
+ letter-spacing: 0.5px !important;
2393
+ display: block !important;
2394
+ flex-shrink: 0 !important;
2395
+ }
2396
+
2397
+ /* Hide empty labels */
2398
+ &[data-label=""]::before {
2399
+ display: none !important;
2400
+ }
2401
+ }
2402
+ }
2346
2403
  `;
2347
2404
  const StyledBadgeWrapper = styled.span`
2348
2405
  display: inline-block;
@@ -2968,14 +3025,14 @@ const TokensProfessional = () => {
2968
3025
  /* @__PURE__ */ jsx(Th, { children: /* @__PURE__ */ jsx(VisuallyHidden, { children: formatMessage({ id: getTrad("tokens.table.actions") }) }) })
2969
3026
  ] }) }),
2970
3027
  /* @__PURE__ */ jsx(Tbody, { children: paginatedTokens.map((token) => /* @__PURE__ */ jsxs(Tr, { children: [
2971
- /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsx(
3028
+ /* @__PURE__ */ jsx(Td, { "data-label": "", children: /* @__PURE__ */ jsx(
2972
3029
  Checkbox,
2973
3030
  {
2974
3031
  checked: selectedTokens.includes(token.id),
2975
3032
  onCheckedChange: (checked) => handleSelectToken(token.id, checked)
2976
3033
  }
2977
3034
  ) }),
2978
- /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 2, children: [
3035
+ /* @__PURE__ */ jsx(Td, { "data-label": formatMessage({ id: getTrad("tokens.table.email") }), children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 2, children: [
2979
3036
  /* @__PURE__ */ jsx(
2980
3037
  Box,
2981
3038
  {
@@ -2997,7 +3054,7 @@ const TokensProfessional = () => {
2997
3054
  /* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "neutral600", children: token.user_id ? formatMessage({ id: getTrad("tokens.user.id") }, { id: token.user_id }) : formatMessage({ id: getTrad("tokens.user.new") }) })
2998
3055
  ] })
2999
3056
  ] }) }),
3000
- /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsx(Box, { style: { maxWidth: "200px" }, children: /* @__PURE__ */ jsx(
3057
+ /* @__PURE__ */ jsx(Td, { "data-label": formatMessage({ id: getTrad("tokens.table.token") }), children: /* @__PURE__ */ jsx(Box, { style: { maxWidth: "200px" }, children: /* @__PURE__ */ jsx(
3001
3058
  Typography,
3002
3059
  {
3003
3060
  variant: "pi",
@@ -3020,12 +3077,12 @@ const TokensProfessional = () => {
3020
3077
  children: token.token
3021
3078
  }
3022
3079
  ) }) }),
3023
- /* @__PURE__ */ jsx(Td, { children: getStatusBadge(token) }),
3024
- /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 1, children: [
3080
+ /* @__PURE__ */ jsx(Td, { "data-label": formatMessage({ id: getTrad("tokens.table.status") }), children: getStatusBadge(token) }),
3081
+ /* @__PURE__ */ jsx(Td, { "data-label": formatMessage({ id: getTrad("tokens.table.created") }), children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 1, children: [
3025
3082
  /* @__PURE__ */ jsx(Calendar, { style: { width: "14px", height: "14px", color: theme.colors.neutral[500] } }),
3026
3083
  /* @__PURE__ */ jsx(Typography, { variant: "pi", children: formatDate(token.createdAt) })
3027
3084
  ] }) }),
3028
- /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 1, children: [
3085
+ /* @__PURE__ */ jsx(Td, { "data-label": formatMessage({ id: getTrad("tokens.table.expiresAt") }), children: /* @__PURE__ */ jsxs(Flex, { alignItems: "center", gap: 1, children: [
3029
3086
  /* @__PURE__ */ jsx(Clock, { style: { width: "14px", height: "14px", color: theme.colors.warning[500] } }),
3030
3087
  (() => {
3031
3088
  const formattedDate = formatDate(token.expires_at);
@@ -3047,7 +3104,7 @@ const TokensProfessional = () => {
3047
3104
  );
3048
3105
  })()
3049
3106
  ] }) }),
3050
- /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsxs(Flex, { gap: 1, justifyContent: "flex-end", children: [
3107
+ /* @__PURE__ */ jsx(Td, { "data-label": formatMessage({ id: getTrad("tokens.table.actions") }), children: /* @__PURE__ */ jsxs(Flex, { gap: 1, justifyContent: "flex-end", children: [
3051
3108
  /* @__PURE__ */ jsx(
3052
3109
  IconButton,
3053
3110
  {
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index-DhL5XylV.js");
2
+ const index = require("../_chunks/index-CHLk5ilu.js");
3
3
  require("@strapi/icons");
4
4
  module.exports = index.index;
@@ -1,4 +1,4 @@
1
- import { i } from "../_chunks/index-DkN9S9d_.mjs";
1
+ import { i } from "../_chunks/index-BDe1aP6I.mjs";
2
2
  import "@strapi/icons";
3
3
  export {
4
4
  i as default
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.13.2",
2
+ "version": "4.14.1",
3
3
  "keywords": [],
4
4
  "type": "commonjs",
5
5
  "exports": {