strapi-plugin-magic-link-v5 5.5.7 → 5.5.9

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.
@@ -7,8 +7,8 @@ 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-BFzW7Xex.js");
11
- const LicenseGuard = require("./LicenseGuard-DqyOwTlf.js");
10
+ const index = require("./index-Bj3H_Z4B.js");
11
+ const LicenseGuard = require("./LicenseGuard-CiyjFnrw.js");
12
12
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
13
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
14
14
  const EMAIL_TEMPLATES = {
@@ -741,28 +741,18 @@ _Falls du diesen Link nicht angefordert hast, ignoriere diese Nachricht._`,
741
741
  try {
742
742
  const licenseRes = await get("/magic-link/license/status");
743
743
  if (licenseRes?.data) {
744
- let tier = "free";
745
- const licenseData = licenseRes.data.data || licenseRes.data;
746
- if (licenseData.features) {
747
- if (licenseData.features.enterprise) {
748
- tier = "enterprise";
749
- } else if (licenseData.features.advanced) {
750
- tier = "advanced";
751
- } else if (licenseData.features.premium) {
752
- tier = "premium";
753
- }
754
- }
744
+ const licenseData = licenseRes.data.data || {};
755
745
  const enrichedLicenseInfo = {
756
746
  ...licenseData,
757
- tier,
747
+ tier: "enterprise",
758
748
  valid: licenseRes.data.valid !== false,
759
- demo: licenseRes.data.demo === true
749
+ hasKey: licenseRes.data.hasKey === true
760
750
  };
761
751
  setLicenseInfo(enrichedLicenseInfo);
762
- console.log("💎 License Info:", enrichedLicenseInfo);
763
752
  }
764
753
  } catch (error) {
765
754
  console.error("Error loading license info:", error);
755
+ setLicenseInfo({ tier: "enterprise", valid: true, hasKey: false });
766
756
  }
767
757
  } catch (error) {
768
758
  if (error.name !== "AbortError") {
@@ -821,27 +811,6 @@ _Falls du diesen Link nicht angefordert hast, ignoriere diese Nachricht._`,
821
811
  setSelectedTemplateKey(templateEntry.value);
822
812
  }
823
813
  }, [settings.message_html, settings.message_text, selectedTemplateKey]);
824
- react.useEffect(() => {
825
- if (!licenseInfo) return;
826
- const currentTier = licenseInfo.tier || "free";
827
- let needsUpdate = false;
828
- let newSettings = { ...settings };
829
- if (settings.otp_enabled && !["premium", "advanced", "enterprise"].includes(currentTier)) {
830
- newSettings.otp_enabled = false;
831
- needsUpdate = true;
832
- }
833
- if (settings.mfa_require_totp && !["advanced", "enterprise"].includes(currentTier)) {
834
- newSettings.mfa_require_totp = false;
835
- needsUpdate = true;
836
- }
837
- if (settings.totp_as_primary_auth && !["advanced", "enterprise"].includes(currentTier)) {
838
- newSettings.totp_as_primary_auth = false;
839
- needsUpdate = true;
840
- }
841
- if (needsUpdate) {
842
- setSettings(newSettings);
843
- }
844
- }, [licenseInfo, settings]);
845
814
  const handleSave = async (e) => {
846
815
  e.preventDefault();
847
816
  setIsSaving(true);
@@ -873,31 +842,6 @@ _Falls du diesen Link nicht angefordert hast, ignoriere diese Nachricht._`,
873
842
  const updateSetting = (key, value) => {
874
843
  setSettings({ ...settings, [key]: value });
875
844
  };
876
- const checkLicenseAndSetMode = (mode) => {
877
- const currentTier = licenseInfo?.tier || "free";
878
- if (mode === "otp-email" && !["premium", "advanced", "enterprise"].includes(currentTier)) {
879
- toggleNotification({
880
- type: "warning",
881
- message: "💎 Premium License Required: Email OTP requires at least Premium license. Please upgrade your license."
882
- });
883
- return false;
884
- }
885
- if (mode === "mfa-totp" && !["advanced", "enterprise"].includes(currentTier)) {
886
- toggleNotification({
887
- type: "warning",
888
- message: "⚡ Advanced License Required: MFA with TOTP requires at least Advanced license. Please upgrade your license."
889
- });
890
- return false;
891
- }
892
- if (mode === "totp-primary" && !["advanced", "enterprise"].includes(currentTier)) {
893
- toggleNotification({
894
- type: "warning",
895
- message: "⚡ Advanced License Required: TOTP-only login requires at least Advanced license. Please upgrade your license."
896
- });
897
- return false;
898
- }
899
- return true;
900
- };
901
845
  const handleLanguageChange = (newLang) => {
902
846
  changeLanguage(newLang);
903
847
  };
@@ -1051,19 +995,6 @@ _Falls du diesen Link nicht angefordert hast, ignoriere diese Nachricht._`,
1051
995
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", fontWeight: "bold", style: { marginBottom: "8px", display: "block", textAlign: "center", color: "var(--colors-neutral700)" }, children: formatMessage({ id: index.getTrad("settings.features.title") }) }),
1052
996
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral600", style: { marginBottom: "20px", display: "block", textAlign: "center", fontSize: "12px" }, children: formatMessage({ id: index.getTrad("settings.features.subtitle") }) }),
1053
997
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 4, children: [
1054
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 4, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(ToggleCard, { $active: settings.enabled, $statusLabel: settings.enabled ? statusActive : statusInactive, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 3, children: [
1055
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", alignItems: "center", style: { marginBottom: "8px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
1056
- designSystem.Switch,
1057
- {
1058
- checked: settings.enabled,
1059
- onCheckedChange: (checked) => updateSetting("enabled", checked)
1060
- }
1061
- ) }),
1062
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
1063
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { fontSize: "14px", marginBottom: "6px", display: "block", textAlign: "center" }, children: formatMessage({ id: index.getTrad("settings.feature.enabled.title") }) }),
1064
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textColor: "neutral600", style: { fontSize: "12px", lineHeight: "1.4", textAlign: "center" }, children: formatMessage({ id: index.getTrad("settings.feature.enabled.description") }) })
1065
- ] })
1066
- ] }) }) }),
1067
998
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 4, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(ToggleCard, { $active: settings.createUserIfNotExists, $statusLabel: settings.createUserIfNotExists ? statusActive : statusInactive, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 3, children: [
1068
999
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", alignItems: "center", style: { marginBottom: "8px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
1069
1000
  designSystem.Switch,
@@ -2237,21 +2168,9 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2237
2168
  border: "2px solid rgba(128, 128, 128, 0.2)"
2238
2169
  },
2239
2170
  children: [
2240
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", alignItems: "center", style: { marginBottom: "12px" }, children: [
2241
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, children: [
2242
- /* @__PURE__ */ jsxRuntime.jsx(icons.Shield, { width: "20px", height: "20px", style: { color: licenseInfo?.tier === "advanced" || licenseInfo?.tier === "enterprise" ? "#16A34A" : "#9CA3AF" } }),
2243
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { fontSize: "14px" }, children: [
2244
- "Current License: ",
2245
- licenseInfo?.tier ? licenseInfo.tier.charAt(0).toUpperCase() + licenseInfo.tier.slice(1) : "Free"
2246
- ] })
2247
- ] }),
2248
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { style: {
2249
- backgroundColor: licenseInfo?.tier === "advanced" || licenseInfo?.tier === "enterprise" ? "#16A34A" : licenseInfo?.tier === "premium" ? "#7C3AED" : "#9CA3AF",
2250
- color: "white",
2251
- fontWeight: "600",
2252
- fontSize: "11px",
2253
- padding: "4px 12px"
2254
- }, children: licenseInfo?.tier === "advanced" || licenseInfo?.tier === "enterprise" ? "✓ All Features Unlocked" : licenseInfo?.tier === "premium" ? "Email OTP Available" : "Basic Features Only" })
2171
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, style: { marginBottom: "8px" }, children: [
2172
+ /* @__PURE__ */ jsxRuntime.jsx(icons.Shield, { width: "20px", height: "20px", style: { color: "#16A34A" } }),
2173
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { fontSize: "14px" }, children: "All authentication modes are available" })
2255
2174
  ] }),
2256
2175
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", textColor: "neutral600", style: { fontSize: "12px", lineHeight: "1.5" }, children: [
2257
2176
  "💡 ",
@@ -2336,7 +2255,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2336
2255
  $active: settings.otp_enabled && !settings.mfa_require_totp && ["premium", "advanced", "enterprise"].includes(licenseInfo?.tier),
2337
2256
  $statusLabel: settings.otp_enabled && !settings.mfa_require_totp && ["premium", "advanced", "enterprise"].includes(licenseInfo?.tier) ? "ACTIVE" : !["premium", "advanced", "enterprise"].includes(licenseInfo?.tier) ? "🔒 LOCKED" : "OFF",
2338
2257
  onClick: () => {
2339
- if (!checkLicenseAndSetMode("otp-email")) return;
2340
2258
  updateSetting("otp_enabled", true);
2341
2259
  updateSetting("mfa_require_totp", false);
2342
2260
  updateSetting("totp_as_primary_auth", false);
@@ -2352,28 +2270,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2352
2270
  position: "relative"
2353
2271
  },
2354
2272
  children: [
2355
- !["premium", "advanced", "enterprise"].includes(licenseInfo?.tier) && /* @__PURE__ */ jsxRuntime.jsxs(
2356
- "div",
2357
- {
2358
- style: {
2359
- position: "absolute",
2360
- top: 0,
2361
- left: 0,
2362
- right: 0,
2363
- bottom: 0,
2364
- display: "flex",
2365
- alignItems: "center",
2366
- justifyContent: "center",
2367
- zIndex: 10,
2368
- flexDirection: "column",
2369
- gap: "8px"
2370
- },
2371
- children: [
2372
- /* @__PURE__ */ jsxRuntime.jsx(icons.Lock, { width: "40px", height: "40px", style: { color: "#7C3AED" } }),
2373
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { color: "#7C3AED", fontSize: "13px" }, children: "Premium Required" })
2374
- ]
2375
- }
2376
- ),
2377
2273
  /* @__PURE__ */ jsxRuntime.jsx(IconWrapper, { $bgColor: "rgba(124, 58, 237, 0.1)", $iconColor: "#7C3AED", children: /* @__PURE__ */ jsxRuntime.jsx(icons.Mail, {}) }),
2378
2274
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
2379
2275
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { marginBottom: "8px", display: "block" }, children: "Magic Link + Email OTP" }),
@@ -2402,7 +2298,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2402
2298
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
2403
2299
  onClick: async (e) => {
2404
2300
  e.stopPropagation();
2405
- if (!checkLicenseAndSetMode("otp-email")) return;
2406
2301
  try {
2407
2302
  const newSettings = {
2408
2303
  ...settings,
@@ -2437,7 +2332,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2437
2332
  $active: settings.mfa_require_totp && ["advanced", "enterprise"].includes(licenseInfo?.tier),
2438
2333
  $statusLabel: settings.mfa_require_totp && ["advanced", "enterprise"].includes(licenseInfo?.tier) ? "ACTIVE" : !["advanced", "enterprise"].includes(licenseInfo?.tier) ? "🔒 LOCKED" : "OFF",
2439
2334
  onClick: () => {
2440
- if (!checkLicenseAndSetMode("mfa-totp")) return;
2441
2335
  updateSetting("otp_enabled", false);
2442
2336
  updateSetting("mfa_require_totp", true);
2443
2337
  updateSetting("totp_as_primary_auth", false);
@@ -2453,28 +2347,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2453
2347
  position: "relative"
2454
2348
  },
2455
2349
  children: [
2456
- !["advanced", "enterprise"].includes(licenseInfo?.tier) && /* @__PURE__ */ jsxRuntime.jsxs(
2457
- "div",
2458
- {
2459
- style: {
2460
- position: "absolute",
2461
- top: 0,
2462
- left: 0,
2463
- right: 0,
2464
- bottom: 0,
2465
- display: "flex",
2466
- alignItems: "center",
2467
- justifyContent: "center",
2468
- zIndex: 10,
2469
- flexDirection: "column",
2470
- gap: "8px"
2471
- },
2472
- children: [
2473
- /* @__PURE__ */ jsxRuntime.jsx(icons.Lightning, { width: "40px", height: "40px", style: { color: "#D97706" } }),
2474
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { color: "#D97706", fontSize: "13px" }, children: "Advanced Required" })
2475
- ]
2476
- }
2477
- ),
2478
2350
  /* @__PURE__ */ jsxRuntime.jsx(IconWrapper, { $bgColor: "rgba(217, 119, 6, 0.1)", $iconColor: "#D97706", children: /* @__PURE__ */ jsxRuntime.jsx(icons.Lock, {}) }),
2479
2351
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
2480
2352
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", style: { marginBottom: "8px", display: "block" }, children: "Magic Link + TOTP (MFA)" }),
@@ -2503,7 +2375,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2503
2375
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
2504
2376
  onClick: async (e) => {
2505
2377
  e.stopPropagation();
2506
- if (!checkLicenseAndSetMode("mfa-totp")) return;
2507
2378
  try {
2508
2379
  const newSettings = {
2509
2380
  ...settings,
@@ -2683,9 +2554,6 @@ ${language === "de" ? "Der Link läuft in 1 Stunde ab." : "The link expires in 1
2683
2554
  {
2684
2555
  checked: settings.totp_as_primary_auth || false,
2685
2556
  onCheckedChange: (checked) => {
2686
- if (checked && !checkLicenseAndSetMode("totp-primary")) {
2687
- return;
2688
- }
2689
2557
  updateSetting("totp_as_primary_auth", checked);
2690
2558
  }
2691
2559
  }
@@ -60,7 +60,7 @@ const index = {
60
60
  },
61
61
  Component: () => import(
62
62
  /* webpackChunkName: "magic-link-tokens" */
63
- "./index-CxCULraY.mjs"
63
+ "./index-szeYJKpN.mjs"
64
64
  ),
65
65
  permissions: pluginPermissions.access
66
66
  });
@@ -82,7 +82,7 @@ const index = {
82
82
  to: `${PLUGIN_ID}/config`,
83
83
  Component: () => import(
84
84
  /* webpackChunkName: "magic-link-settings" */
85
- "./index-ivgYEX37.mjs"
85
+ "./index-Csyi13vd.mjs"
86
86
  ),
87
87
  permissions: pluginPermissions.readSettings
88
88
  },
@@ -95,20 +95,7 @@ const index = {
95
95
  to: `${PLUGIN_ID}/license`,
96
96
  Component: () => import(
97
97
  /* webpackChunkName: "magic-link-license" */
98
- "./index-B8urUtiz.mjs"
99
- ),
100
- permissions: pluginPermissions.access
101
- },
102
- {
103
- intlLabel: {
104
- id: getTrad("Form.title.Upgrade"),
105
- defaultMessage: "Upgrade"
106
- },
107
- id: "magic-link-upgrade",
108
- to: `${PLUGIN_ID}/upgrade`,
109
- Component: () => import(
110
- /* webpackChunkName: "magic-link-upgrade" */
111
- "./LicensePage-CCNW2hT6.mjs"
98
+ "./index-Dufv-daf.mjs"
112
99
  ),
113
100
  permissions: pluginPermissions.access
114
101
  },
@@ -121,7 +108,7 @@ const index = {
121
108
  to: `${PLUGIN_ID}/whatsapp`,
122
109
  Component: () => import(
123
110
  /* webpackChunkName: "magic-link-whatsapp" */
124
- "./index-BZFGxKmY.mjs"
111
+ "./index-5jsDgD-q.mjs"
125
112
  ),
126
113
  permissions: pluginPermissions.access
127
114
  }
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect } from "react";
3
3
  import { Loader, Box, Alert, Flex, Typography, Button, Badge, Accordion } from "@strapi/design-system";
4
4
  import { useFetchClient, useNotification } from "@strapi/strapi/admin";
5
- import { ArrowClockwise, Duplicate, Download, User, Shield, Sparkle, ChartBubble } from "@strapi/icons";
5
+ import { ArrowClockwise, Duplicate, Download, User, Shield, ChartBubble } from "@strapi/icons";
6
6
  import styled, { keyframes } from "styled-components";
7
7
  const theme = {
8
8
  colors: {
@@ -172,8 +172,8 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
172
172
  if (error) {
173
173
  return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx(Box, { padding: 8, children: /* @__PURE__ */ jsx(Alert, { variant: "danger", title: "Error", children: error }) }) });
174
174
  }
175
- const isValid = licenseData?.valid;
176
- const isDemo = licenseData?.demo;
175
+ const isValid = licenseData?.valid !== false;
176
+ const hasKey = !!licenseData?.hasKey;
177
177
  const data = licenseData?.data || {};
178
178
  return /* @__PURE__ */ jsxs(Container, { children: [
179
179
  /* @__PURE__ */ jsx(StickySaveBar, { paddingTop: 5, paddingBottom: 5, paddingLeft: 6, paddingRight: 6, children: /* @__PURE__ */ jsxs(Flex, { justifyContent: "space-between", alignItems: "center", children: [
@@ -198,7 +198,7 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
198
198
  )
199
199
  ] }) }),
200
200
  /* @__PURE__ */ jsxs(Box, { paddingTop: 6, paddingLeft: 6, paddingRight: 6, paddingBottom: 10, children: [
201
- isDemo ? /* @__PURE__ */ jsx(Alert, { variant: "warning", title: "Demo Mode", children: "You're using the demo version. Upgrade to unlock all features." }) : isValid ? /* @__PURE__ */ jsx(Alert, { variant: "success", title: "License Active", children: "Your license is active and all features are unlocked." }) : /* @__PURE__ */ jsx(Alert, { variant: "danger", title: "License Issue", children: "There's an issue with your license." }),
201
+ hasKey && isValid ? /* @__PURE__ */ jsx(Alert, { variant: "success", title: "License Active", children: "License key registered. Thanks for supporting the plugin!" }) : hasKey && !isValid ? /* @__PURE__ */ jsx(Alert, { variant: "warning", title: "License Verification", children: "We couldn't reach the license server right now. The plugin keeps working — try Refresh Status later." }) : /* @__PURE__ */ jsx(Alert, { variant: "default", title: "No license key registered", children: 'All Magic Link features are available without activation. If you want to register a license key, use the form below or run "Auto-Activate" to generate one for your admin email.' }),
202
202
  data.licenseKey && /* @__PURE__ */ jsx(Box, { marginTop: 6, children: /* @__PURE__ */ jsx(LicenseKeyBanner, { children: /* @__PURE__ */ jsxs(Flex, { justifyContent: "space-between", alignItems: "flex-start", children: [
203
203
  /* @__PURE__ */ jsxs(Box, { style: { flex: 1 }, children: [
204
204
  /* @__PURE__ */ jsx(Typography, { variant: "pi", style: { color: "rgba(255,255,255,0.8)", marginBottom: "12px", textTransform: "uppercase", fontSize: "11px", letterSpacing: "0.5px", display: "block" }, children: "License Key" }),
@@ -283,45 +283,16 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
283
283
  ] })
284
284
  ] }) }) })
285
285
  ] }),
286
- /* @__PURE__ */ jsxs(Accordion.Item, { value: "features", children: [
287
- /* @__PURE__ */ jsx(Accordion.Header, { children: /* @__PURE__ */ jsx(Accordion.Trigger, { icon: Sparkle, children: "Features & Capabilities" }) }),
288
- /* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(Box, { padding: 6, children: /* @__PURE__ */ jsxs(Flex, { gap: 8, wrap: "wrap", children: [
289
- /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "180px" }, children: [
290
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Premium Features" }),
291
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: data.features?.premium ? "✓ Enabled" : "✗ Disabled" })
292
- ] }),
293
- /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "180px" }, children: [
294
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Advanced Features" }),
295
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: data.features?.advanced ? "✓ Enabled" : "✗ Disabled" })
296
- ] }),
297
- /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "180px" }, children: [
298
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Enterprise Features" }),
299
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: data.features?.enterprise ? "✓ Enabled" : "✗ Disabled" })
300
- ] })
301
- ] }) }) })
302
- ] }),
303
286
  /* @__PURE__ */ jsxs(Accordion.Item, { value: "status", children: [
304
287
  /* @__PURE__ */ jsx(Accordion.Header, { children: /* @__PURE__ */ jsx(Accordion.Trigger, { icon: ChartBubble, children: "System Status" }) }),
305
288
  /* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(Box, { padding: 6, children: /* @__PURE__ */ jsxs(Flex, { gap: 8, wrap: "wrap", children: [
306
289
  /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "150px" }, children: [
307
290
  /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "License Status" }),
308
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: data.isActive ? "Active" : "Inactive" })
309
- ] }),
310
- /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "150px" }, children: [
311
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Connection" }),
312
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: data.isOnline ? "Online" : "Offline" })
313
- ] }),
314
- /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "150px" }, children: [
315
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Last Sync" }),
316
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: data.lastPingAt ? new Date(data.lastPingAt).toLocaleTimeString() : "Never" })
291
+ /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: hasKey ? data.isActive ? "Active" : "Inactive" : "No key registered" })
317
292
  ] }),
318
293
  /* @__PURE__ */ jsxs(Box, { style: { flex: "1", minWidth: "150px" }, children: [
319
- /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Device Limit" }),
320
- /* @__PURE__ */ jsxs(Typography, { variant: "omega", fontWeight: "semiBold", children: [
321
- data.currentDevices || 0,
322
- " / ",
323
- data.maxDevices || 1
324
- ] })
294
+ /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", textTransform: "uppercase", style: { marginBottom: "8px", display: "block" }, children: "Plugin Mode" }),
295
+ /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: "Fully unlocked" })
325
296
  ] })
326
297
  ] }) }) })
327
298
  ] })
@@ -5,9 +5,9 @@ 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, VisuallyHidden, Main } from "@strapi/design-system";
7
7
  import { Cross, Sparkle, Check, Shield, Clock, Lock, Trash, ArrowClockwise, CaretDown, User, Monitor, Calendar, Plus, Earth, WarningCircle, Server, Eye, Mail, Cog, Key, Link } from "@strapi/icons";
8
- import { g as getTrad, P as PLUGIN_ID } from "./index-34ICAF9_.mjs";
8
+ import { g as getTrad, P as PLUGIN_ID } from "./index-DQUYFsLT.mjs";
9
9
  import { useFetchClient, useNotification } from "@strapi/strapi/admin";
10
- import { L as LicenseGuard, a as LanguageProvider } from "./LicenseGuard-5sMwgS6j.mjs";
10
+ import { L as LicenseGuard, a as LanguageProvider } from "./LicenseGuard-DJ5fq2UZ.mjs";
11
11
  const CreateTokenModal = ({ isOpen, onClose, onSubmit, formData, setFormData }) => {
12
12
  const { formatMessage } = useIntl();
13
13
  const [contextText, setContextText] = useState("");
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index-BFzW7Xex.js");
2
+ const index = require("../_chunks/index-Bj3H_Z4B.js");
3
3
  require("@strapi/icons");
4
4
  module.exports = index.index;
@@ -1,4 +1,4 @@
1
- import { i } from "../_chunks/index-34ICAF9_.mjs";
1
+ import { i } from "../_chunks/index-DQUYFsLT.mjs";
2
2
  import "@strapi/icons";
3
3
  export {
4
4
  i as default