strapi-plugin-magic-link-v5 4.11.0 → 4.11.2

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.
@@ -26,8 +26,9 @@ import { usePluginLanguage } from '../../components/LanguageProvider';
26
26
  const theme = {
27
27
  colors: {
28
28
  primary: { 600: '#0284C7', 700: '#075985', 100: '#E0F2FE', 50: '#F0F9FF' },
29
- success: { 600: '#16A34A', 700: '#15803D', 50: '#DCFCE7' },
30
- warning: { 700: '#A16207', 50: '#FEF3C7' },
29
+ success: { 600: '#16A34A', 700: '#15803D', 100: '#DCFCE7', 50: '#F0FDF4' },
30
+ danger: { 600: '#DC2626', 700: '#B91C1C', 100: '#FEE2E2', 50: '#FEF2F2' },
31
+ warning: { 600: '#D97706', 700: '#A16207', 100: '#FEF3C7', 50: '#FFFBEB' },
31
32
  neutral: { 0: '#FFFFFF', 50: '#F9FAFB', 100: '#F3F4F6', 200: '#E5E7EB', 400: '#9CA3AF', 600: '#4B5563', 700: '#374151', 800: '#1F2937' }
32
33
  },
33
34
  shadows: { sm: '0 1px 3px rgba(0,0,0,0.1)', md: '0 4px 6px rgba(0,0,0,0.1)', xl: '0 20px 25px rgba(0,0,0,0.1)' },
@@ -1220,9 +1221,10 @@ ${language === 'de' ? 'Der Link läuft in 1 Stunde ab.' : 'The link expires in 1
1220
1221
  {formatMessage({ id: getTrad('settings.rateLimit.maxAttempts.label') })}
1221
1222
  </Typography>
1222
1223
  <NumberInput
1224
+ name="rate_limit_max_attempts"
1223
1225
  hint={formatMessage({ id: getTrad('settings.rateLimit.maxAttempts.hint') })}
1224
1226
  value={settings.rate_limit_max_attempts}
1225
- onChange={val => updateSetting('rate_limit_max_attempts', val)}
1227
+ onValueChange={val => updateSetting('rate_limit_max_attempts', val)}
1226
1228
  min={1}
1227
1229
  max={100}
1228
1230
  />
@@ -1234,9 +1236,10 @@ ${language === 'de' ? 'Der Link läuft in 1 Stunde ab.' : 'The link expires in 1
1234
1236
  {formatMessage({ id: getTrad('settings.rateLimit.windowMinutes.label') })}
1235
1237
  </Typography>
1236
1238
  <NumberInput
1239
+ name="rate_limit_window_minutes"
1237
1240
  hint={formatMessage({ id: getTrad('settings.rateLimit.windowMinutes.hint') })}
1238
1241
  value={settings.rate_limit_window_minutes}
1239
- onChange={val => updateSetting('rate_limit_window_minutes', val)}
1242
+ onValueChange={val => updateSetting('rate_limit_window_minutes', val)}
1240
1243
  min={1}
1241
1244
  max={1440}
1242
1245
  />
@@ -1251,48 +1254,40 @@ ${language === 'de' ? 'Der Link läuft in 1 Stunde ab.' : 'The link expires in 1
1251
1254
  <Typography variant="sigma" fontWeight="bold" style={{ marginBottom: '16px', display: 'block', color: theme.colors.neutral[700] }}>
1252
1255
  {formatMessage({ id: getTrad('settings.rateLimit.stats.title') })}
1253
1256
  </Typography>
1254
- <Grid.Root gap={4} style={{ marginBottom: '24px' }}>
1255
- <Grid.Item col={3} s={6} xs={12}>
1256
- <Box padding={4} background="neutral100" style={{ borderRadius: '8px', textAlign: 'center' }}>
1257
- <Typography variant="alpha" style={{ color: theme.colors.primary[600] }}>
1258
- {rateLimitStats.totalEntries || 0}
1259
- </Typography>
1260
- <Typography variant="pi" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px' }}>
1261
- {formatMessage({ id: getTrad('settings.rateLimit.stats.total') })}
1262
- </Typography>
1263
- </Box>
1264
- </Grid.Item>
1265
- <Grid.Item col={3} s={6} xs={12}>
1266
- <Box padding={4} background="danger100" style={{ borderRadius: '8px', textAlign: 'center' }}>
1267
- <Typography variant="alpha" style={{ color: theme.colors.danger[600] }}>
1268
- {rateLimitStats.blocked || 0}
1269
- </Typography>
1270
- <Typography variant="pi" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px' }}>
1271
- {formatMessage({ id: getTrad('settings.rateLimit.stats.blocked') })}
1272
- </Typography>
1273
- </Box>
1274
- </Grid.Item>
1275
- <Grid.Item col={3} s={6} xs={12}>
1276
- <Box padding={4} background="primary100" style={{ borderRadius: '8px', textAlign: 'center' }}>
1277
- <Typography variant="alpha" style={{ color: theme.colors.primary[600] }}>
1278
- {rateLimitStats.ipLimits || 0}
1279
- </Typography>
1280
- <Typography variant="pi" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px' }}>
1281
- {formatMessage({ id: getTrad('settings.rateLimit.stats.ipLimits') })}
1282
- </Typography>
1283
- </Box>
1284
- </Grid.Item>
1285
- <Grid.Item col={3} s={6} xs={12}>
1286
- <Box padding={4} background="success100" style={{ borderRadius: '8px', textAlign: 'center' }}>
1287
- <Typography variant="alpha" style={{ color: theme.colors.success[600] }}>
1288
- {rateLimitStats.emailLimits || 0}
1289
- </Typography>
1290
- <Typography variant="pi" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px' }}>
1291
- {formatMessage({ id: getTrad('settings.rateLimit.stats.emailLimits') })}
1292
- </Typography>
1293
- </Box>
1294
- </Grid.Item>
1295
- </Grid.Root>
1257
+ <Flex gap={4} wrap="wrap" justifyContent="center" style={{ marginBottom: '24px' }}>
1258
+ <Box padding={4} background="neutral100" style={{ borderRadius: '8px', textAlign: 'center', minWidth: '140px', flex: '1' }}>
1259
+ <Typography variant="beta" style={{ color: theme.colors.primary[600], fontWeight: '700' }}>
1260
+ {rateLimitStats.totalEntries || 0}
1261
+ </Typography>
1262
+ <Typography variant="omega" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px', display: 'block' }}>
1263
+ {formatMessage({ id: getTrad('settings.rateLimit.stats.total') })}
1264
+ </Typography>
1265
+ </Box>
1266
+ <Box padding={4} background="danger100" style={{ borderRadius: '8px', textAlign: 'center', minWidth: '140px', flex: '1' }}>
1267
+ <Typography variant="beta" style={{ color: theme.colors.danger[600], fontWeight: '700' }}>
1268
+ {rateLimitStats.blocked || 0}
1269
+ </Typography>
1270
+ <Typography variant="omega" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px', display: 'block' }}>
1271
+ {formatMessage({ id: getTrad('settings.rateLimit.stats.blocked') })}
1272
+ </Typography>
1273
+ </Box>
1274
+ <Box padding={4} background="primary100" style={{ borderRadius: '8px', textAlign: 'center', minWidth: '140px', flex: '1' }}>
1275
+ <Typography variant="beta" style={{ color: theme.colors.primary[600], fontWeight: '700' }}>
1276
+ {rateLimitStats.ipLimits || 0}
1277
+ </Typography>
1278
+ <Typography variant="omega" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px', display: 'block' }}>
1279
+ {formatMessage({ id: getTrad('settings.rateLimit.stats.ipLimits') })}
1280
+ </Typography>
1281
+ </Box>
1282
+ <Box padding={4} background="success100" style={{ borderRadius: '8px', textAlign: 'center', minWidth: '140px', flex: '1' }}>
1283
+ <Typography variant="beta" style={{ color: theme.colors.success[600], fontWeight: '700' }}>
1284
+ {rateLimitStats.emailLimits || 0}
1285
+ </Typography>
1286
+ <Typography variant="omega" textColor="neutral600" style={{ fontSize: '11px', marginTop: '4px', display: 'block' }}>
1287
+ {formatMessage({ id: getTrad('settings.rateLimit.stats.emailLimits') })}
1288
+ </Typography>
1289
+ </Box>
1290
+ </Flex>
1296
1291
 
1297
1292
  {/* Management Buttons */}
1298
1293
  <Flex gap={3} justifyContent="center">
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.11.0",
2
+ "version": "4.11.2",
3
3
  "keywords": [],
4
4
  "type": "commonjs",
5
5
  "exports": {