strapi-plugin-oidc 1.7.5 → 1.7.6

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.
@@ -166,7 +166,7 @@ const index = {
166
166
  defaultMessage: "Configuration"
167
167
  },
168
168
  Component: async () => {
169
- return await Promise.resolve().then(() => require("./index-CacQfQ3a.js"));
169
+ return await Promise.resolve().then(() => require("./index-D2rlNx1-.js"));
170
170
  },
171
171
  permissions: [{ action: "plugin::strapi-plugin-oidc.read", subject: null }]
172
172
  }
@@ -7,7 +7,7 @@ const react = require("react");
7
7
  const designSystem = require("@strapi/design-system");
8
8
  const icons = require("@strapi/icons");
9
9
  const reactIntl = require("react-intl");
10
- const index = require("./index-CLUIKIK3.js");
10
+ const index = require("./index-CrnGXADu.js");
11
11
  const styled = require("styled-components");
12
12
  const lucideReact = require("lucide-react");
13
13
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -70,15 +70,21 @@ const TagInputWrapper = styled__default.default(designSystem.Box)`
70
70
  flex-wrap: wrap;
71
71
  gap: 4px;
72
72
  align-items: center;
73
- padding: 8px 16px;
73
+ padding-inline: ${({ theme }) => theme.spaces[4]};
74
+ padding-block: ${({ theme }) => theme.spaces[3]};
74
75
  border-radius: 4px;
75
76
  border: 1px solid ${({ theme }) => theme.colors.neutral200};
76
77
  background-color: ${({ theme }) => theme.colors.neutral0};
77
78
  cursor: text;
78
79
  min-width: 220px;
79
- min-height: 4rem;
80
+ min-height: 4.8rem;
80
81
  flex: 0 0 auto;
81
82
 
83
+ ${({ theme }) => theme.breakpoints.medium} {
84
+ padding-block: ${({ theme }) => theme.spaces[2]};
85
+ min-height: 4rem;
86
+ }
87
+
82
88
  &:focus-within {
83
89
  border-color: ${({ theme }) => theme.colors.primary600};
84
90
  box-shadow: 0 0 0 2px ${({ theme }) => theme.colors.primary100};
@@ -143,7 +149,6 @@ function TagInputShell({
143
149
  inputProps,
144
150
  children
145
151
  }) {
146
- const inputId = react.useId();
147
152
  return /* @__PURE__ */ jsxRuntime.jsxs(TagInputWrapper, { ref: wrapperRef, onClick: () => inputRef.current?.focus(), children: [
148
153
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, wrap: "wrap", alignItems: "center", style: { flex: 1, minWidth: 0 }, children: [
149
154
  startIcon && /* @__PURE__ */ jsxRuntime.jsx(StartIconSlot, { children: startIcon }),
@@ -155,14 +160,6 @@ function TagInputShell({
155
160
  type: "text",
156
161
  placeholder: value.length === 0 ? placeholder : "",
157
162
  "aria-label": placeholder,
158
- autoComplete: "off",
159
- autoCorrect: "off",
160
- autoCapitalize: "off",
161
- spellCheck: false,
162
- name: `tag-input-${inputId}`,
163
- "data-form-type": "other",
164
- "data-lpignore": "true",
165
- "data-1p-ignore": "true",
166
163
  ...inputProps
167
164
  }
168
165
  )
@@ -747,6 +744,16 @@ function TagDateInput({ value = [], onChange, placeholder, startIcon }) {
747
744
  }
748
745
  );
749
746
  }
747
+ const SizedButton = styled__default.default(designSystem.Button)`
748
+ && {
749
+ height: 4.8rem;
750
+ }
751
+ ${({ theme }) => theme.breakpoints.medium} {
752
+ && {
753
+ height: 4rem;
754
+ }
755
+ }
756
+ `;
750
757
  const Icon = styled__default.default.span`
751
758
  display: inline-flex;
752
759
  align-items: center;
@@ -911,91 +918,98 @@ function Whitelist({
911
918
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
912
919
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", variant: "omega", textColor: "neutral600", marginBottom: 4, children: formatMessage(index.getTrad("whitelist.description")) }),
913
920
  useWhitelist && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
914
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 8, marginTop: 5, marginBottom: 5, alignItems: "stretch", wrap: "wrap", children: [
915
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", style: { minWidth: "280px", flex: "1 1 280px" }, children: [
916
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { flex: 1, minWidth: "200px" }, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(
917
- designSystem.Field.Input,
918
- {
919
- type: "text",
920
- disabled: loading,
921
- value: email,
922
- hasError: Boolean(email && !EMAIL_REGEX.test(email)),
923
- onChange: (e) => setEmail(e.currentTarget.value),
924
- placeholder: formatMessage(index.getTrad("whitelist.email.placeholder")),
925
- style: { fontSize: "1.4rem", lineHeight: "2.2rem" }
926
- }
927
- ) }) }),
928
- /* @__PURE__ */ jsxRuntime.jsx(
929
- designSystem.Button,
930
- {
931
- size: "S",
932
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}),
933
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
934
- disabled: loading || email.trim() === "" || !EMAIL_REGEX.test(email),
935
- loading,
936
- onClick: onSaveEmail,
937
- children: formatMessage(index.getTrad("page.add"))
938
- }
939
- )
940
- ] }),
941
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
942
- /* @__PURE__ */ jsxRuntime.jsx(
943
- designSystem.Button,
944
- {
945
- size: "S",
946
- variant: "tertiary",
947
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Download, {}),
948
- onClick: onExport,
949
- disabled: users.length === 0,
950
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
951
- children: formatMessage(index.getTrad("whitelist.export"))
952
- }
953
- ),
954
- /* @__PURE__ */ jsxRuntime.jsx(
955
- designSystem.Button,
956
- {
957
- size: "S",
958
- variant: "tertiary",
959
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Upload, {}),
960
- onClick: () => fileInputRef.current?.click(),
961
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
962
- children: formatMessage(index.getTrad("whitelist.import"))
963
- }
964
- ),
965
- /* @__PURE__ */ jsxRuntime.jsx(
966
- "input",
967
- {
968
- ref: fileInputRef,
969
- type: "file",
970
- accept: ".json,application/json",
971
- style: { display: "none" },
972
- onChange: handleImport
973
- }
974
- ),
975
- /* @__PURE__ */ jsxRuntime.jsx(
976
- ConfirmDialog,
977
- {
978
- trigger: /* @__PURE__ */ jsxRuntime.jsx(
979
- designSystem.Button,
921
+ /* @__PURE__ */ jsxRuntime.jsxs(
922
+ designSystem.Flex,
923
+ {
924
+ gap: 8,
925
+ marginTop: 5,
926
+ marginBottom: 5,
927
+ alignItems: "stretch",
928
+ wrap: "wrap",
929
+ style: { rowGap: "0.8rem" },
930
+ children: [
931
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", style: { minWidth: "280px", flex: "1 1 280px" }, children: [
932
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { flex: 1, minWidth: "200px" }, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(
933
+ designSystem.Field.Input,
934
+ {
935
+ type: "text",
936
+ disabled: loading,
937
+ value: email,
938
+ hasError: Boolean(email && !EMAIL_REGEX.test(email)),
939
+ onChange: (e) => setEmail(e.currentTarget.value),
940
+ placeholder: formatMessage(index.getTrad("whitelist.email.placeholder")),
941
+ style: { fontSize: "1.4rem", lineHeight: "2.2rem" }
942
+ }
943
+ ) }) }),
944
+ /* @__PURE__ */ jsxRuntime.jsx(
945
+ SizedButton,
980
946
  {
981
947
  size: "S",
982
- variant: "danger-light",
983
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
948
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}),
949
+ disabled: loading || email.trim() === "" || !EMAIL_REGEX.test(email),
950
+ loading,
951
+ onClick: onSaveEmail,
952
+ children: formatMessage(index.getTrad("page.add"))
953
+ }
954
+ )
955
+ ] }),
956
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", children: [
957
+ /* @__PURE__ */ jsxRuntime.jsx(
958
+ SizedButton,
959
+ {
960
+ size: "S",
961
+ variant: "tertiary",
962
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Download, {}),
963
+ onClick: onExport,
984
964
  disabled: users.length === 0,
985
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
986
- children: formatMessage(index.getTrad("whitelist.delete.all.label"))
965
+ children: formatMessage(index.getTrad("whitelist.export"))
987
966
  }
988
967
  ),
989
- title: formatMessage(index.getTrad("whitelist.delete.all.title")),
990
- body: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(index.getTrad("whitelist.delete.all.description"), {
991
- count: users.length
992
- }) }) }),
993
- confirmLabel: formatMessage(index.getTrad("whitelist.delete.all.label")),
994
- onConfirm: onDeleteAll
995
- }
996
- )
997
- ] })
998
- ] }),
968
+ /* @__PURE__ */ jsxRuntime.jsx(
969
+ SizedButton,
970
+ {
971
+ size: "S",
972
+ variant: "tertiary",
973
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Upload, {}),
974
+ onClick: () => fileInputRef.current?.click(),
975
+ children: formatMessage(index.getTrad("whitelist.import"))
976
+ }
977
+ ),
978
+ /* @__PURE__ */ jsxRuntime.jsx(
979
+ "input",
980
+ {
981
+ ref: fileInputRef,
982
+ type: "file",
983
+ accept: ".json,application/json",
984
+ style: { display: "none" },
985
+ onChange: handleImport
986
+ }
987
+ ),
988
+ /* @__PURE__ */ jsxRuntime.jsx(
989
+ ConfirmDialog,
990
+ {
991
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(
992
+ SizedButton,
993
+ {
994
+ size: "S",
995
+ variant: "danger-light",
996
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
997
+ disabled: users.length === 0,
998
+ children: formatMessage(index.getTrad("whitelist.delete.all.label"))
999
+ }
1000
+ ),
1001
+ title: formatMessage(index.getTrad("whitelist.delete.all.title")),
1002
+ body: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(index.getTrad("whitelist.delete.all.description"), {
1003
+ count: users.length
1004
+ }) }) }),
1005
+ confirmLabel: formatMessage(index.getTrad("whitelist.delete.all.label")),
1006
+ onConfirm: onDeleteAll
1007
+ }
1008
+ )
1009
+ ] })
1010
+ ]
1011
+ }
1012
+ ),
999
1013
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
1000
1014
  /* @__PURE__ */ jsxRuntime.jsxs(CustomTable, { colCount: 4, rowCount: users.length, children: [
1001
1015
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Thead, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
@@ -3740,14 +3754,13 @@ function AuditLog({ title } = {}) {
3740
3754
  title ?? /* @__PURE__ */ jsxRuntime.jsx("span", {}),
3741
3755
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
3742
3756
  /* @__PURE__ */ jsxRuntime.jsx(
3743
- designSystem.Button,
3757
+ SizedButton,
3744
3758
  {
3745
3759
  size: "S",
3746
3760
  variant: "tertiary",
3747
3761
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Download, {}),
3748
3762
  onClick: handleExport,
3749
3763
  disabled: pagination.total === 0,
3750
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
3751
3764
  children: formatMessage(index.getTrad("auditlog.export"))
3752
3765
  }
3753
3766
  ),
@@ -3755,13 +3768,12 @@ function AuditLog({ title } = {}) {
3755
3768
  ConfirmDialog,
3756
3769
  {
3757
3770
  trigger: /* @__PURE__ */ jsxRuntime.jsx(
3758
- designSystem.Button,
3771
+ SizedButton,
3759
3772
  {
3760
3773
  size: "S",
3761
3774
  variant: "danger-light",
3762
3775
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
3763
3776
  disabled: pagination.total === 0,
3764
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
3765
3777
  children: formatMessage(index.getTrad("auditlog.clear"))
3766
3778
  }
3767
3779
  ),
@@ -3842,13 +3854,12 @@ function AuditLog({ title } = {}) {
3842
3854
  }
3843
3855
  ),
3844
3856
  hasActiveFilters && /* @__PURE__ */ jsxRuntime.jsx(
3845
- designSystem.Button,
3857
+ SizedButton,
3846
3858
  {
3847
3859
  size: "S",
3848
3860
  variant: "danger-light",
3849
3861
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
3850
3862
  onClick: clearFilters,
3851
- style: { height: "4rem" },
3852
3863
  children: formatMessage(index.getTrad("auditlog.filters.clear"))
3853
3864
  }
3854
3865
  )
@@ -4369,7 +4380,7 @@ function HomePage$1() {
4369
4380
  ] }) })
4370
4381
  ] })
4371
4382
  ] }),
4372
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsx(
4383
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", marginBottom: 8, children: /* @__PURE__ */ jsxRuntime.jsx(
4373
4384
  designSystem.Button,
4374
4385
  {
4375
4386
  size: "L",
@@ -165,7 +165,7 @@ const index = {
165
165
  defaultMessage: "Configuration"
166
166
  },
167
167
  Component: async () => {
168
- return await import("./index-BjmTHbr9.mjs");
168
+ return await import("./index-pieFAsgM.mjs");
169
169
  },
170
170
  permissions: [{ action: "plugin::strapi-plugin-oidc.read", subject: null }]
171
171
  }
@@ -2,10 +2,10 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useBlocker, Routes, Route } from "react-router-dom";
3
3
  import { useNotification, useFetchClient, Page, Layouts } from "@strapi/strapi/admin";
4
4
  import { useState, useRef, useId, useEffect, useCallback, useReducer, useMemo, memo } from "react";
5
- import { Typography, Flex, Box, MultiSelect, MultiSelectOption, Dialog, Button, Table, Pagination, PreviousLink, NextLink, PageLink, Field, Divider, Thead, Tr, Th, Tbody, Td, IconButton, Tooltip, Alert } from "@strapi/design-system";
5
+ import { Typography, Flex, Box, MultiSelect, MultiSelectOption, Button, Dialog, Table, Pagination, PreviousLink, NextLink, PageLink, Field, Divider, Thead, Tr, Th, Tbody, Td, IconButton, Tooltip, Alert } from "@strapi/design-system";
6
6
  import { Cross, WarningCircle, Plus, Download, Upload, Trash, Calendar, Mail, Information } from "@strapi/icons";
7
7
  import { useIntl } from "react-intl";
8
- import { g as getTrad } from "./index-BfX_taLq.mjs";
8
+ import { g as getTrad } from "./index-DRJ6Ty2J.mjs";
9
9
  import styled from "styled-components";
10
10
  import { Filter, ClipboardList, Server } from "lucide-react";
11
11
  function Role({ oidcRoles, roles, onChangeRole }) {
@@ -66,15 +66,21 @@ const TagInputWrapper = styled(Box)`
66
66
  flex-wrap: wrap;
67
67
  gap: 4px;
68
68
  align-items: center;
69
- padding: 8px 16px;
69
+ padding-inline: ${({ theme }) => theme.spaces[4]};
70
+ padding-block: ${({ theme }) => theme.spaces[3]};
70
71
  border-radius: 4px;
71
72
  border: 1px solid ${({ theme }) => theme.colors.neutral200};
72
73
  background-color: ${({ theme }) => theme.colors.neutral0};
73
74
  cursor: text;
74
75
  min-width: 220px;
75
- min-height: 4rem;
76
+ min-height: 4.8rem;
76
77
  flex: 0 0 auto;
77
78
 
79
+ ${({ theme }) => theme.breakpoints.medium} {
80
+ padding-block: ${({ theme }) => theme.spaces[2]};
81
+ min-height: 4rem;
82
+ }
83
+
78
84
  &:focus-within {
79
85
  border-color: ${({ theme }) => theme.colors.primary600};
80
86
  box-shadow: 0 0 0 2px ${({ theme }) => theme.colors.primary100};
@@ -139,7 +145,6 @@ function TagInputShell({
139
145
  inputProps,
140
146
  children
141
147
  }) {
142
- const inputId = useId();
143
148
  return /* @__PURE__ */ jsxs(TagInputWrapper, { ref: wrapperRef, onClick: () => inputRef.current?.focus(), children: [
144
149
  /* @__PURE__ */ jsxs(Flex, { gap: 2, wrap: "wrap", alignItems: "center", style: { flex: 1, minWidth: 0 }, children: [
145
150
  startIcon && /* @__PURE__ */ jsx(StartIconSlot, { children: startIcon }),
@@ -151,14 +156,6 @@ function TagInputShell({
151
156
  type: "text",
152
157
  placeholder: value.length === 0 ? placeholder : "",
153
158
  "aria-label": placeholder,
154
- autoComplete: "off",
155
- autoCorrect: "off",
156
- autoCapitalize: "off",
157
- spellCheck: false,
158
- name: `tag-input-${inputId}`,
159
- "data-form-type": "other",
160
- "data-lpignore": "true",
161
- "data-1p-ignore": "true",
162
159
  ...inputProps
163
160
  }
164
161
  )
@@ -743,6 +740,16 @@ function TagDateInput({ value = [], onChange, placeholder, startIcon }) {
743
740
  }
744
741
  );
745
742
  }
743
+ const SizedButton = styled(Button)`
744
+ && {
745
+ height: 4.8rem;
746
+ }
747
+ ${({ theme }) => theme.breakpoints.medium} {
748
+ && {
749
+ height: 4rem;
750
+ }
751
+ }
752
+ `;
746
753
  const Icon = styled.span`
747
754
  display: inline-flex;
748
755
  align-items: center;
@@ -907,91 +914,98 @@ function Whitelist({
907
914
  return /* @__PURE__ */ jsxs(Box, { children: [
908
915
  /* @__PURE__ */ jsx(Typography, { tag: "p", variant: "omega", textColor: "neutral600", marginBottom: 4, children: formatMessage(getTrad("whitelist.description")) }),
909
916
  useWhitelist && /* @__PURE__ */ jsxs(Fragment, { children: [
910
- /* @__PURE__ */ jsxs(Flex, { gap: 8, marginTop: 5, marginBottom: 5, alignItems: "stretch", wrap: "wrap", children: [
911
- /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", style: { minWidth: "280px", flex: "1 1 280px" }, children: [
912
- /* @__PURE__ */ jsx(Box, { style: { flex: 1, minWidth: "200px" }, children: /* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsx(
913
- Field.Input,
914
- {
915
- type: "text",
916
- disabled: loading,
917
- value: email,
918
- hasError: Boolean(email && !EMAIL_REGEX.test(email)),
919
- onChange: (e) => setEmail(e.currentTarget.value),
920
- placeholder: formatMessage(getTrad("whitelist.email.placeholder")),
921
- style: { fontSize: "1.4rem", lineHeight: "2.2rem" }
922
- }
923
- ) }) }),
924
- /* @__PURE__ */ jsx(
925
- Button,
926
- {
927
- size: "S",
928
- startIcon: /* @__PURE__ */ jsx(Plus, {}),
929
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
930
- disabled: loading || email.trim() === "" || !EMAIL_REGEX.test(email),
931
- loading,
932
- onClick: onSaveEmail,
933
- children: formatMessage(getTrad("page.add"))
934
- }
935
- )
936
- ] }),
937
- /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", children: [
938
- /* @__PURE__ */ jsx(
939
- Button,
940
- {
941
- size: "S",
942
- variant: "tertiary",
943
- startIcon: /* @__PURE__ */ jsx(Download, {}),
944
- onClick: onExport,
945
- disabled: users.length === 0,
946
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
947
- children: formatMessage(getTrad("whitelist.export"))
948
- }
949
- ),
950
- /* @__PURE__ */ jsx(
951
- Button,
952
- {
953
- size: "S",
954
- variant: "tertiary",
955
- startIcon: /* @__PURE__ */ jsx(Upload, {}),
956
- onClick: () => fileInputRef.current?.click(),
957
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
958
- children: formatMessage(getTrad("whitelist.import"))
959
- }
960
- ),
961
- /* @__PURE__ */ jsx(
962
- "input",
963
- {
964
- ref: fileInputRef,
965
- type: "file",
966
- accept: ".json,application/json",
967
- style: { display: "none" },
968
- onChange: handleImport
969
- }
970
- ),
971
- /* @__PURE__ */ jsx(
972
- ConfirmDialog,
973
- {
974
- trigger: /* @__PURE__ */ jsx(
975
- Button,
917
+ /* @__PURE__ */ jsxs(
918
+ Flex,
919
+ {
920
+ gap: 8,
921
+ marginTop: 5,
922
+ marginBottom: 5,
923
+ alignItems: "stretch",
924
+ wrap: "wrap",
925
+ style: { rowGap: "0.8rem" },
926
+ children: [
927
+ /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", style: { minWidth: "280px", flex: "1 1 280px" }, children: [
928
+ /* @__PURE__ */ jsx(Box, { style: { flex: 1, minWidth: "200px" }, children: /* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsx(
929
+ Field.Input,
930
+ {
931
+ type: "text",
932
+ disabled: loading,
933
+ value: email,
934
+ hasError: Boolean(email && !EMAIL_REGEX.test(email)),
935
+ onChange: (e) => setEmail(e.currentTarget.value),
936
+ placeholder: formatMessage(getTrad("whitelist.email.placeholder")),
937
+ style: { fontSize: "1.4rem", lineHeight: "2.2rem" }
938
+ }
939
+ ) }) }),
940
+ /* @__PURE__ */ jsx(
941
+ SizedButton,
976
942
  {
977
943
  size: "S",
978
- variant: "danger-light",
979
- startIcon: /* @__PURE__ */ jsx(Trash, {}),
944
+ startIcon: /* @__PURE__ */ jsx(Plus, {}),
945
+ disabled: loading || email.trim() === "" || !EMAIL_REGEX.test(email),
946
+ loading,
947
+ onClick: onSaveEmail,
948
+ children: formatMessage(getTrad("page.add"))
949
+ }
950
+ )
951
+ ] }),
952
+ /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", children: [
953
+ /* @__PURE__ */ jsx(
954
+ SizedButton,
955
+ {
956
+ size: "S",
957
+ variant: "tertiary",
958
+ startIcon: /* @__PURE__ */ jsx(Download, {}),
959
+ onClick: onExport,
980
960
  disabled: users.length === 0,
981
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
982
- children: formatMessage(getTrad("whitelist.delete.all.label"))
961
+ children: formatMessage(getTrad("whitelist.export"))
983
962
  }
984
963
  ),
985
- title: formatMessage(getTrad("whitelist.delete.all.title")),
986
- body: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(getTrad("whitelist.delete.all.description"), {
987
- count: users.length
988
- }) }) }),
989
- confirmLabel: formatMessage(getTrad("whitelist.delete.all.label")),
990
- onConfirm: onDeleteAll
991
- }
992
- )
993
- ] })
994
- ] }),
964
+ /* @__PURE__ */ jsx(
965
+ SizedButton,
966
+ {
967
+ size: "S",
968
+ variant: "tertiary",
969
+ startIcon: /* @__PURE__ */ jsx(Upload, {}),
970
+ onClick: () => fileInputRef.current?.click(),
971
+ children: formatMessage(getTrad("whitelist.import"))
972
+ }
973
+ ),
974
+ /* @__PURE__ */ jsx(
975
+ "input",
976
+ {
977
+ ref: fileInputRef,
978
+ type: "file",
979
+ accept: ".json,application/json",
980
+ style: { display: "none" },
981
+ onChange: handleImport
982
+ }
983
+ ),
984
+ /* @__PURE__ */ jsx(
985
+ ConfirmDialog,
986
+ {
987
+ trigger: /* @__PURE__ */ jsx(
988
+ SizedButton,
989
+ {
990
+ size: "S",
991
+ variant: "danger-light",
992
+ startIcon: /* @__PURE__ */ jsx(Trash, {}),
993
+ disabled: users.length === 0,
994
+ children: formatMessage(getTrad("whitelist.delete.all.label"))
995
+ }
996
+ ),
997
+ title: formatMessage(getTrad("whitelist.delete.all.title")),
998
+ body: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", textAlign: "center", children: formatMessage(getTrad("whitelist.delete.all.description"), {
999
+ count: users.length
1000
+ }) }) }),
1001
+ confirmLabel: formatMessage(getTrad("whitelist.delete.all.label")),
1002
+ onConfirm: onDeleteAll
1003
+ }
1004
+ )
1005
+ ] })
1006
+ ]
1007
+ }
1008
+ ),
995
1009
  /* @__PURE__ */ jsx(Divider, {}),
996
1010
  /* @__PURE__ */ jsxs(CustomTable, { colCount: 4, rowCount: users.length, children: [
997
1011
  /* @__PURE__ */ jsx(Thead, { children: /* @__PURE__ */ jsxs(Tr, { children: [
@@ -3736,14 +3750,13 @@ function AuditLog({ title } = {}) {
3736
3750
  title ?? /* @__PURE__ */ jsx("span", {}),
3737
3751
  /* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
3738
3752
  /* @__PURE__ */ jsx(
3739
- Button,
3753
+ SizedButton,
3740
3754
  {
3741
3755
  size: "S",
3742
3756
  variant: "tertiary",
3743
3757
  startIcon: /* @__PURE__ */ jsx(Download, {}),
3744
3758
  onClick: handleExport,
3745
3759
  disabled: pagination.total === 0,
3746
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
3747
3760
  children: formatMessage(getTrad("auditlog.export"))
3748
3761
  }
3749
3762
  ),
@@ -3751,13 +3764,12 @@ function AuditLog({ title } = {}) {
3751
3764
  ConfirmDialog,
3752
3765
  {
3753
3766
  trigger: /* @__PURE__ */ jsx(
3754
- Button,
3767
+ SizedButton,
3755
3768
  {
3756
3769
  size: "S",
3757
3770
  variant: "danger-light",
3758
3771
  startIcon: /* @__PURE__ */ jsx(Trash, {}),
3759
3772
  disabled: pagination.total === 0,
3760
- style: { paddingTop: "1.1rem", paddingBottom: "1.1rem", height: "auto" },
3761
3773
  children: formatMessage(getTrad("auditlog.clear"))
3762
3774
  }
3763
3775
  ),
@@ -3838,13 +3850,12 @@ function AuditLog({ title } = {}) {
3838
3850
  }
3839
3851
  ),
3840
3852
  hasActiveFilters && /* @__PURE__ */ jsx(
3841
- Button,
3853
+ SizedButton,
3842
3854
  {
3843
3855
  size: "S",
3844
3856
  variant: "danger-light",
3845
3857
  startIcon: /* @__PURE__ */ jsx(Trash, {}),
3846
3858
  onClick: clearFilters,
3847
- style: { height: "4rem" },
3848
3859
  children: formatMessage(getTrad("auditlog.filters.clear"))
3849
3860
  }
3850
3861
  )
@@ -4365,7 +4376,7 @@ function HomePage() {
4365
4376
  ] }) })
4366
4377
  ] })
4367
4378
  ] }),
4368
- /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsx(
4379
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", marginBottom: 8, children: /* @__PURE__ */ jsx(
4369
4380
  Button,
4370
4381
  {
4371
4382
  size: "L",
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const index = require("./index-CLUIKIK3.js");
3
+ const index = require("./index-CrnGXADu.js");
4
4
  exports.default = index.index;
@@ -1,4 +1,4 @@
1
- import { i } from "./index-BfX_taLq.mjs";
1
+ import { i } from "./index-DRJ6Ty2J.mjs";
2
2
  export {
3
3
  i as default
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strapi-plugin-oidc",
3
- "version": "1.7.5",
3
+ "version": "1.7.6",
4
4
  "description": "A Strapi plugin that provides OpenID Connect (OIDC) authentication functionality for the Strapi Admin Panel.",
5
5
  "strapi": {
6
6
  "displayName": "OIDC Plugin",