@vicacha-devs/strapi-plugin-inbox 0.0.0-stage → 1.1.0

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.
Files changed (90) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +17 -2
  3. package/dist/admin/InboxHomePage-B5xUPD7Y.mjs +2153 -0
  4. package/dist/admin/InboxHomePage-BCHbPE2t.js +2171 -0
  5. package/dist/admin/LocalizationRoutingTab-CEXbHNe4.mjs +282 -0
  6. package/dist/admin/LocalizationRoutingTab-Dt6U-kXn.js +281 -0
  7. package/dist/admin/SettingsPage-Dif7Cq7I.mjs +819 -0
  8. package/dist/admin/SettingsPage-qB_efKCl.js +837 -0
  9. package/dist/admin/ar-CbjX4o07.mjs +268 -0
  10. package/dist/admin/ar-KedDMvsH.js +268 -0
  11. package/dist/admin/de-BrJIGJEV.mjs +268 -0
  12. package/dist/admin/de-rj5pqQ0S.js +268 -0
  13. package/dist/admin/en-BE8TARw0.mjs +268 -0
  14. package/dist/admin/en-CuTmgXZL.js +268 -0
  15. package/dist/admin/es-Berf1dRb.js +268 -0
  16. package/dist/admin/es-Ce4nMwC7.mjs +268 -0
  17. package/dist/admin/fr-CfdjWCiu.js +268 -0
  18. package/dist/admin/fr-Y3GKi6mQ.mjs +268 -0
  19. package/dist/admin/index-5e9dAMBs.mjs +822 -0
  20. package/dist/admin/index-DLfoIVZP.js +839 -0
  21. package/dist/admin/index.js +5 -0
  22. package/dist/admin/index.mjs +5 -0
  23. package/dist/admin/it-DXXnvX5J.mjs +268 -0
  24. package/dist/admin/it-DkJ3WwLA.js +268 -0
  25. package/dist/admin/pt-D7WKv-MR.js +268 -0
  26. package/dist/admin/pt-QDCJ6lOH.mjs +268 -0
  27. package/dist/admin/ru-DgYTw9aE.js +268 -0
  28. package/dist/admin/ru-DzP0H4fh.mjs +268 -0
  29. package/dist/admin/src/components/Initializer.d.ts +6 -0
  30. package/dist/admin/src/components/PluginIcon.d.ts +3 -0
  31. package/dist/admin/src/components/inbox/AlertBannersTab.d.ts +10 -0
  32. package/dist/admin/src/components/inbox/CaseworkDetailPanel.d.ts +15 -0
  33. package/dist/admin/src/components/inbox/CaseworkPayloadChecklistColumn.d.ts +12 -0
  34. package/dist/admin/src/components/inbox/CaseworkSubmissionsTab.d.ts +12 -0
  35. package/dist/admin/src/components/inbox/FormBuilderTab.d.ts +17 -0
  36. package/dist/admin/src/components/inbox/FormChecklistAndLocalePanels.d.ts +17 -0
  37. package/dist/admin/src/components/inbox/FormRoutingDrawer.d.ts +15 -0
  38. package/dist/admin/src/components/inbox/SubscribersTab.d.ts +10 -0
  39. package/dist/admin/src/components/settings/AntiSpamCaptchaTab.d.ts +9 -0
  40. package/dist/admin/src/components/settings/BridgesNotificationsTab.d.ts +8 -0
  41. package/dist/admin/src/components/settings/CaptchaProviderCard.d.ts +21 -0
  42. package/dist/admin/src/components/settings/LocalizationRoutingTab.d.ts +16 -0
  43. package/dist/admin/src/index.d.ts +21 -0
  44. package/dist/admin/src/pages/InboxHomePage.d.ts +3 -0
  45. package/dist/admin/src/pages/SettingsPage.d.ts +3 -0
  46. package/dist/admin/src/pluginId.d.ts +3 -0
  47. package/dist/admin/src/translations/cmLabels.d.ts +1 -0
  48. package/dist/admin/src/translations/cmPlaceholders.d.ts +1 -0
  49. package/dist/admin/src/utils/getTranslation.d.ts +3 -0
  50. package/dist/admin/tr-5q4NwTgF.mjs +268 -0
  51. package/dist/admin/tr-CT-24fLA.js +268 -0
  52. package/dist/admin/zh-CYhWM5Qr.mjs +268 -0
  53. package/dist/admin/zh-CmCHcNcd.js +268 -0
  54. package/dist/server/index.js +3108 -0
  55. package/dist/server/index.mjs +3108 -0
  56. package/dist/server/src/bootstrap.d.ts +5 -0
  57. package/dist/server/src/config/index.d.ts +5 -0
  58. package/dist/server/src/content-types/alert-banner/index.d.ts +73 -0
  59. package/dist/server/src/content-types/alert-banner/schema.json.d.ts +73 -0
  60. package/dist/server/src/content-types/index.d.ts +253 -0
  61. package/dist/server/src/content-types/submission/index.d.ts +111 -0
  62. package/dist/server/src/content-types/submission/schema.json.d.ts +126 -0
  63. package/dist/server/src/content-types/subscriber/index.d.ts +69 -0
  64. package/dist/server/src/content-types/subscriber/schema.json.d.ts +69 -0
  65. package/dist/server/src/controllers/caseworkHandlers.d.ts +10 -0
  66. package/dist/server/src/controllers/communityHandlers.d.ts +10 -0
  67. package/dist/server/src/controllers/formHandlers.d.ts +14 -0
  68. package/dist/server/src/controllers/inboxController.d.ts +40 -0
  69. package/dist/server/src/controllers/index.d.ts +2 -0
  70. package/dist/server/src/destroy.d.ts +5 -0
  71. package/dist/server/src/index.d.ts +2 -0
  72. package/dist/server/src/register.d.ts +5 -0
  73. package/dist/server/src/routes/admin.d.ts +12 -0
  74. package/dist/server/src/routes/content-api.d.ts +13 -0
  75. package/dist/server/src/routes/index.d.ts +26 -0
  76. package/dist/server/src/services/alertService.d.ts +16 -0
  77. package/dist/server/src/services/docHelper.d.ts +28 -0
  78. package/dist/server/src/services/formBuilderMapper.d.ts +22 -0
  79. package/dist/server/src/services/formBuilderSync.d.ts +13 -0
  80. package/dist/server/src/services/formService.d.ts +40 -0
  81. package/dist/server/src/services/index.d.ts +2 -0
  82. package/dist/server/src/services/settings.d.ts +9 -0
  83. package/dist/server/src/services/submissionEcosystemBridges.d.ts +21 -0
  84. package/dist/server/src/services/submissionFormBuilderBridge.d.ts +23 -0
  85. package/dist/server/src/services/submissionService.d.ts +58 -0
  86. package/dist/server/src/services/subscriberService.d.ts +22 -0
  87. package/dist/shared/index.d.ts +1 -0
  88. package/dist/shared/index.js +917 -0
  89. package/dist/shared/index.mjs +917 -0
  90. package/package.json +125 -3
@@ -0,0 +1,282 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Tabs, Box, Flex, Typography, Badge, Field, SingleSelect, SingleSelectOption, MultiSelect, MultiSelectOption } from "@strapi/design-system";
3
+ import { m as mergeSelectOptions, L as LOCALE_OPTIONS } from "./index-5e9dAMBs.mjs";
4
+ const DEPARTMENT_OPTIONS = [
5
+ { value: "general", label: "general — General Inquiries & Info" },
6
+ { value: "imamate", label: "imamate — Imamate & Religious Guidance (Fatwa)" },
7
+ {
8
+ value: "nikah_family",
9
+ label: "nikah_family — Nikah, Marriage & Family Counseling"
10
+ },
11
+ {
12
+ value: "new_muslims",
13
+ label: "new_muslims — New Muslims (Shahada & Revert Care)"
14
+ },
15
+ {
16
+ value: "halal_certification",
17
+ label: "halal_certification — Halal Certification & Audits"
18
+ },
19
+ {
20
+ value: "janazah_urgent",
21
+ label: "janazah_urgent — Urgent Janazah & Funeral Services"
22
+ },
23
+ {
24
+ value: "education",
25
+ label: "education — Islamic Education, Madrasah & Courses"
26
+ },
27
+ {
28
+ value: "zakat_charity",
29
+ label: "zakat_charity — Zakat, Sadaqah & Social Welfare"
30
+ },
31
+ {
32
+ value: "administration",
33
+ label: "administration — Mosque Administration & Board"
34
+ },
35
+ { value: "services", label: "services — Community & Facility Services" },
36
+ { value: "social_aid", label: "social_aid — Humanitarian & Social Aid" },
37
+ {
38
+ value: "visits_tours",
39
+ label: "visits_tours — Guided Mosque Visits & School Tours"
40
+ }
41
+ ];
42
+ const TOPIC_OPTIONS = [
43
+ {
44
+ value: "announcements",
45
+ label: "announcements — General Mosque Announcements"
46
+ },
47
+ { value: "events", label: "events — Community Events & Conferences" },
48
+ {
49
+ value: "courses",
50
+ label: "courses — Arabic, Quran & Islamic Studies Courses"
51
+ },
52
+ {
53
+ value: "ramadan_eid",
54
+ label: "ramadan_eid — Ramadan, Suhoor/Iftar & Eid Bulletins"
55
+ },
56
+ {
57
+ value: "newsletter",
58
+ label: "newsletter — Weekly Jumu'ah & Community Newsletter"
59
+ },
60
+ { value: "khutbahs", label: "khutbahs — Friday Khutbah Summaries & Audio" },
61
+ {
62
+ value: "urgent_janazah",
63
+ label: "urgent_janazah — Urgent Janazah & Funeral Alerts"
64
+ },
65
+ {
66
+ value: "charity_campaigns",
67
+ label: "charity_campaigns — Zakat & Relief Campaigns"
68
+ },
69
+ {
70
+ value: "youth_programs",
71
+ label: "youth_programs — Youth, Sisters & Family Programs"
72
+ },
73
+ {
74
+ value: "new_muslims",
75
+ label: "new_muslims — New Muslim Circle & Mentorship"
76
+ }
77
+ ];
78
+ const LocalizationRoutingTab = ({
79
+ t,
80
+ settings,
81
+ setSettings
82
+ }) => {
83
+ const localeOpts = mergeSelectOptions(
84
+ LOCALE_OPTIONS,
85
+ settings.supportedLocales
86
+ );
87
+ const departmentOpts = mergeSelectOptions(
88
+ DEPARTMENT_OPTIONS,
89
+ settings.availableDepartments
90
+ );
91
+ const topicOpts = mergeSelectOptions(TOPIC_OPTIONS, settings.availableTopics);
92
+ return /* @__PURE__ */ jsx(Tabs.Content, { value: "routing", children: /* @__PURE__ */ jsxs(
93
+ Box,
94
+ {
95
+ padding: 6,
96
+ background: "neutral0",
97
+ hasRadius: true,
98
+ shadow: "filterShadow",
99
+ style: { borderTopLeftRadius: 0, borderTopRightRadius: 0 },
100
+ children: [
101
+ /* @__PURE__ */ jsxs(
102
+ Flex,
103
+ {
104
+ justifyContent: "space-between",
105
+ alignItems: "center",
106
+ paddingBottom: 2,
107
+ wrap: "wrap",
108
+ gap: 2,
109
+ children: [
110
+ /* @__PURE__ */ jsxs(Box, { children: [
111
+ /* @__PURE__ */ jsx(Typography, { variant: "beta", tag: "h2", children: t(
112
+ "settings.ui.1_localization_routing_multi_calendar_configurat",
113
+ "Localization & Service-Desk Routing"
114
+ ) }),
115
+ /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral600", children: t(
116
+ "settings.ui.define_default_supported_locales_primary_and_sec",
117
+ "Define default/supported locales, service-desk routing departments, and subscriber interest topics."
118
+ ) })
119
+ ] }),
120
+ /* @__PURE__ */ jsxs(Badge, { children: [
121
+ (settings.supportedLocales || []).length,
122
+ " ",
123
+ t("settings.ui.active_locales", "Active Locales")
124
+ ] })
125
+ ]
126
+ }
127
+ ),
128
+ /* @__PURE__ */ jsxs(
129
+ Box,
130
+ {
131
+ paddingTop: 4,
132
+ style: {
133
+ display: "grid",
134
+ gridTemplateColumns: "repeat(2, minmax(0, 1fr))",
135
+ gap: 20
136
+ },
137
+ children: [
138
+ /* @__PURE__ */ jsxs(
139
+ Field.Root,
140
+ {
141
+ name: "defaultLocale",
142
+ hint: t(
143
+ "settings.ui.fallback_language_when_a_public_form_request_or_",
144
+ "Fallback language when a public form request or alert query omits a locale parameter."
145
+ ),
146
+ children: [
147
+ /* @__PURE__ */ jsx(Field.Label, { children: t("field.default_locale", "Default Locale") }),
148
+ /* @__PURE__ */ jsx(
149
+ SingleSelect,
150
+ {
151
+ placeholder: t(
152
+ "placeholder.select_default_locale_e_g_es",
153
+ "Select default locale (e.g., es)"
154
+ ),
155
+ value: settings.defaultLocale || "es",
156
+ onChange: (val) => setSettings({ ...settings, defaultLocale: String(val) }),
157
+ children: localeOpts.map((opt) => /* @__PURE__ */ jsx(SingleSelectOption, { value: opt.value, children: opt.label }, opt.value))
158
+ }
159
+ ),
160
+ /* @__PURE__ */ jsx(Field.Hint, {})
161
+ ]
162
+ }
163
+ ),
164
+ /* @__PURE__ */ jsxs(
165
+ Field.Root,
166
+ {
167
+ name: "supportedLocales",
168
+ hint: t(
169
+ "settings.ui.iso_language_codes_enabled_for_localized_form_la",
170
+ "ISO language codes enabled for localized form labels, validation errors, and alert banners."
171
+ ),
172
+ children: [
173
+ /* @__PURE__ */ jsx(Field.Label, { children: t("field.supported_locales", "Supported Locales") }),
174
+ /* @__PURE__ */ jsx(
175
+ MultiSelect,
176
+ {
177
+ name: "supportedLocales",
178
+ withTags: true,
179
+ placeholder: t(
180
+ "placeholder.select_supported_locales",
181
+ "Select supported locales..."
182
+ ),
183
+ value: settings.supportedLocales || ["es", "en", "ar", "tr"],
184
+ onChange: (nextValues) => setSettings({
185
+ ...settings,
186
+ supportedLocales: nextValues.length > 0 ? nextValues : ["es"]
187
+ }),
188
+ onClear: () => setSettings({
189
+ ...settings,
190
+ supportedLocales: ["es"]
191
+ }),
192
+ children: localeOpts.map((opt) => /* @__PURE__ */ jsx(MultiSelectOption, { value: opt.value, children: opt.label }, opt.value))
193
+ }
194
+ ),
195
+ /* @__PURE__ */ jsx(Field.Hint, {})
196
+ ]
197
+ }
198
+ ),
199
+ /* @__PURE__ */ jsxs(
200
+ Field.Root,
201
+ {
202
+ name: "availableDepartments",
203
+ hint: t(
204
+ "settings.ui.departments_available_for_routing_incoming_inqui",
205
+ "Departments available for routing incoming inquiries and religious/community service applications."
206
+ ),
207
+ children: [
208
+ /* @__PURE__ */ jsx(Field.Label, { children: t("field.service_desk_departments", "Service-Desk Departments") }),
209
+ /* @__PURE__ */ jsx(
210
+ MultiSelect,
211
+ {
212
+ name: "availableDepartments",
213
+ withTags: true,
214
+ placeholder: t(
215
+ "placeholder.select_service_desk_departments",
216
+ "Select service-desk departments..."
217
+ ),
218
+ value: settings.availableDepartments || ["general"],
219
+ onChange: (nextValues) => setSettings({
220
+ ...settings,
221
+ availableDepartments: nextValues.length > 0 ? nextValues : ["general"]
222
+ }),
223
+ onClear: () => setSettings({
224
+ ...settings,
225
+ availableDepartments: ["general"]
226
+ }),
227
+ children: departmentOpts.map((opt) => /* @__PURE__ */ jsx(MultiSelectOption, { value: opt.value, children: opt.label }, opt.value))
228
+ }
229
+ ),
230
+ /* @__PURE__ */ jsx(Field.Hint, {})
231
+ ]
232
+ }
233
+ ),
234
+ /* @__PURE__ */ jsxs(
235
+ Field.Root,
236
+ {
237
+ name: "availableTopics",
238
+ hint: t(
239
+ "settings.ui.topics_community_members_can_choose_when_subscri",
240
+ "Topics community members can choose when subscribing to announcements and newsletters."
241
+ ),
242
+ children: [
243
+ /* @__PURE__ */ jsx(Field.Label, { children: t(
244
+ "field.subscriber_interest_topics",
245
+ "Subscriber Interest Topics"
246
+ ) }),
247
+ /* @__PURE__ */ jsx(
248
+ MultiSelect,
249
+ {
250
+ name: "availableTopics",
251
+ withTags: true,
252
+ placeholder: t(
253
+ "placeholder.select_subscriber_interest_topics",
254
+ "Select subscriber interest topics..."
255
+ ),
256
+ value: settings.availableTopics || ["announcements"],
257
+ onChange: (nextValues) => setSettings({
258
+ ...settings,
259
+ availableTopics: nextValues.length > 0 ? nextValues : ["announcements"]
260
+ }),
261
+ onClear: () => setSettings({
262
+ ...settings,
263
+ availableTopics: ["announcements"]
264
+ }),
265
+ children: topicOpts.map((opt) => /* @__PURE__ */ jsx(MultiSelectOption, { value: opt.value, children: opt.label }, opt.value))
266
+ }
267
+ ),
268
+ /* @__PURE__ */ jsx(Field.Hint, {})
269
+ ]
270
+ }
271
+ )
272
+ ]
273
+ }
274
+ )
275
+ ]
276
+ }
277
+ ) });
278
+ };
279
+ export {
280
+ LocalizationRoutingTab as L,
281
+ TOPIC_OPTIONS as T
282
+ };
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ const jsxRuntime = require("react/jsx-runtime");
3
+ const designSystem = require("@strapi/design-system");
4
+ const index = require("./index-DLfoIVZP.js");
5
+ const DEPARTMENT_OPTIONS = [
6
+ { value: "general", label: "general — General Inquiries & Info" },
7
+ { value: "imamate", label: "imamate — Imamate & Religious Guidance (Fatwa)" },
8
+ {
9
+ value: "nikah_family",
10
+ label: "nikah_family — Nikah, Marriage & Family Counseling"
11
+ },
12
+ {
13
+ value: "new_muslims",
14
+ label: "new_muslims — New Muslims (Shahada & Revert Care)"
15
+ },
16
+ {
17
+ value: "halal_certification",
18
+ label: "halal_certification — Halal Certification & Audits"
19
+ },
20
+ {
21
+ value: "janazah_urgent",
22
+ label: "janazah_urgent — Urgent Janazah & Funeral Services"
23
+ },
24
+ {
25
+ value: "education",
26
+ label: "education — Islamic Education, Madrasah & Courses"
27
+ },
28
+ {
29
+ value: "zakat_charity",
30
+ label: "zakat_charity — Zakat, Sadaqah & Social Welfare"
31
+ },
32
+ {
33
+ value: "administration",
34
+ label: "administration — Mosque Administration & Board"
35
+ },
36
+ { value: "services", label: "services — Community & Facility Services" },
37
+ { value: "social_aid", label: "social_aid — Humanitarian & Social Aid" },
38
+ {
39
+ value: "visits_tours",
40
+ label: "visits_tours — Guided Mosque Visits & School Tours"
41
+ }
42
+ ];
43
+ const TOPIC_OPTIONS = [
44
+ {
45
+ value: "announcements",
46
+ label: "announcements — General Mosque Announcements"
47
+ },
48
+ { value: "events", label: "events — Community Events & Conferences" },
49
+ {
50
+ value: "courses",
51
+ label: "courses — Arabic, Quran & Islamic Studies Courses"
52
+ },
53
+ {
54
+ value: "ramadan_eid",
55
+ label: "ramadan_eid — Ramadan, Suhoor/Iftar & Eid Bulletins"
56
+ },
57
+ {
58
+ value: "newsletter",
59
+ label: "newsletter — Weekly Jumu'ah & Community Newsletter"
60
+ },
61
+ { value: "khutbahs", label: "khutbahs — Friday Khutbah Summaries & Audio" },
62
+ {
63
+ value: "urgent_janazah",
64
+ label: "urgent_janazah — Urgent Janazah & Funeral Alerts"
65
+ },
66
+ {
67
+ value: "charity_campaigns",
68
+ label: "charity_campaigns — Zakat & Relief Campaigns"
69
+ },
70
+ {
71
+ value: "youth_programs",
72
+ label: "youth_programs — Youth, Sisters & Family Programs"
73
+ },
74
+ {
75
+ value: "new_muslims",
76
+ label: "new_muslims — New Muslim Circle & Mentorship"
77
+ }
78
+ ];
79
+ const LocalizationRoutingTab = ({
80
+ t,
81
+ settings,
82
+ setSettings
83
+ }) => {
84
+ const localeOpts = index.mergeSelectOptions(
85
+ index.LOCALE_OPTIONS,
86
+ settings.supportedLocales
87
+ );
88
+ const departmentOpts = index.mergeSelectOptions(
89
+ DEPARTMENT_OPTIONS,
90
+ settings.availableDepartments
91
+ );
92
+ const topicOpts = index.mergeSelectOptions(TOPIC_OPTIONS, settings.availableTopics);
93
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "routing", children: /* @__PURE__ */ jsxRuntime.jsxs(
94
+ designSystem.Box,
95
+ {
96
+ padding: 6,
97
+ background: "neutral0",
98
+ hasRadius: true,
99
+ shadow: "filterShadow",
100
+ style: { borderTopLeftRadius: 0, borderTopRightRadius: 0 },
101
+ children: [
102
+ /* @__PURE__ */ jsxRuntime.jsxs(
103
+ designSystem.Flex,
104
+ {
105
+ justifyContent: "space-between",
106
+ alignItems: "center",
107
+ paddingBottom: 2,
108
+ wrap: "wrap",
109
+ gap: 2,
110
+ children: [
111
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
112
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", tag: "h2", children: t(
113
+ "settings.ui.1_localization_routing_multi_calendar_configurat",
114
+ "Localization & Service-Desk Routing"
115
+ ) }),
116
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral600", children: t(
117
+ "settings.ui.define_default_supported_locales_primary_and_sec",
118
+ "Define default/supported locales, service-desk routing departments, and subscriber interest topics."
119
+ ) })
120
+ ] }),
121
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Badge, { children: [
122
+ (settings.supportedLocales || []).length,
123
+ " ",
124
+ t("settings.ui.active_locales", "Active Locales")
125
+ ] })
126
+ ]
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsxRuntime.jsxs(
130
+ designSystem.Box,
131
+ {
132
+ paddingTop: 4,
133
+ style: {
134
+ display: "grid",
135
+ gridTemplateColumns: "repeat(2, minmax(0, 1fr))",
136
+ gap: 20
137
+ },
138
+ children: [
139
+ /* @__PURE__ */ jsxRuntime.jsxs(
140
+ designSystem.Field.Root,
141
+ {
142
+ name: "defaultLocale",
143
+ hint: t(
144
+ "settings.ui.fallback_language_when_a_public_form_request_or_",
145
+ "Fallback language when a public form request or alert query omits a locale parameter."
146
+ ),
147
+ children: [
148
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: t("field.default_locale", "Default Locale") }),
149
+ /* @__PURE__ */ jsxRuntime.jsx(
150
+ designSystem.SingleSelect,
151
+ {
152
+ placeholder: t(
153
+ "placeholder.select_default_locale_e_g_es",
154
+ "Select default locale (e.g., es)"
155
+ ),
156
+ value: settings.defaultLocale || "es",
157
+ onChange: (val) => setSettings({ ...settings, defaultLocale: String(val) }),
158
+ children: localeOpts.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: opt.value, children: opt.label }, opt.value))
159
+ }
160
+ ),
161
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
162
+ ]
163
+ }
164
+ ),
165
+ /* @__PURE__ */ jsxRuntime.jsxs(
166
+ designSystem.Field.Root,
167
+ {
168
+ name: "supportedLocales",
169
+ hint: t(
170
+ "settings.ui.iso_language_codes_enabled_for_localized_form_la",
171
+ "ISO language codes enabled for localized form labels, validation errors, and alert banners."
172
+ ),
173
+ children: [
174
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: t("field.supported_locales", "Supported Locales") }),
175
+ /* @__PURE__ */ jsxRuntime.jsx(
176
+ designSystem.MultiSelect,
177
+ {
178
+ name: "supportedLocales",
179
+ withTags: true,
180
+ placeholder: t(
181
+ "placeholder.select_supported_locales",
182
+ "Select supported locales..."
183
+ ),
184
+ value: settings.supportedLocales || ["es", "en", "ar", "tr"],
185
+ onChange: (nextValues) => setSettings({
186
+ ...settings,
187
+ supportedLocales: nextValues.length > 0 ? nextValues : ["es"]
188
+ }),
189
+ onClear: () => setSettings({
190
+ ...settings,
191
+ supportedLocales: ["es"]
192
+ }),
193
+ children: localeOpts.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.MultiSelectOption, { value: opt.value, children: opt.label }, opt.value))
194
+ }
195
+ ),
196
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
197
+ ]
198
+ }
199
+ ),
200
+ /* @__PURE__ */ jsxRuntime.jsxs(
201
+ designSystem.Field.Root,
202
+ {
203
+ name: "availableDepartments",
204
+ hint: t(
205
+ "settings.ui.departments_available_for_routing_incoming_inqui",
206
+ "Departments available for routing incoming inquiries and religious/community service applications."
207
+ ),
208
+ children: [
209
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: t("field.service_desk_departments", "Service-Desk Departments") }),
210
+ /* @__PURE__ */ jsxRuntime.jsx(
211
+ designSystem.MultiSelect,
212
+ {
213
+ name: "availableDepartments",
214
+ withTags: true,
215
+ placeholder: t(
216
+ "placeholder.select_service_desk_departments",
217
+ "Select service-desk departments..."
218
+ ),
219
+ value: settings.availableDepartments || ["general"],
220
+ onChange: (nextValues) => setSettings({
221
+ ...settings,
222
+ availableDepartments: nextValues.length > 0 ? nextValues : ["general"]
223
+ }),
224
+ onClear: () => setSettings({
225
+ ...settings,
226
+ availableDepartments: ["general"]
227
+ }),
228
+ children: departmentOpts.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.MultiSelectOption, { value: opt.value, children: opt.label }, opt.value))
229
+ }
230
+ ),
231
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
232
+ ]
233
+ }
234
+ ),
235
+ /* @__PURE__ */ jsxRuntime.jsxs(
236
+ designSystem.Field.Root,
237
+ {
238
+ name: "availableTopics",
239
+ hint: t(
240
+ "settings.ui.topics_community_members_can_choose_when_subscri",
241
+ "Topics community members can choose when subscribing to announcements and newsletters."
242
+ ),
243
+ children: [
244
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: t(
245
+ "field.subscriber_interest_topics",
246
+ "Subscriber Interest Topics"
247
+ ) }),
248
+ /* @__PURE__ */ jsxRuntime.jsx(
249
+ designSystem.MultiSelect,
250
+ {
251
+ name: "availableTopics",
252
+ withTags: true,
253
+ placeholder: t(
254
+ "placeholder.select_subscriber_interest_topics",
255
+ "Select subscriber interest topics..."
256
+ ),
257
+ value: settings.availableTopics || ["announcements"],
258
+ onChange: (nextValues) => setSettings({
259
+ ...settings,
260
+ availableTopics: nextValues.length > 0 ? nextValues : ["announcements"]
261
+ }),
262
+ onClear: () => setSettings({
263
+ ...settings,
264
+ availableTopics: ["announcements"]
265
+ }),
266
+ children: topicOpts.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.MultiSelectOption, { value: opt.value, children: opt.label }, opt.value))
267
+ }
268
+ ),
269
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
270
+ ]
271
+ }
272
+ )
273
+ ]
274
+ }
275
+ )
276
+ ]
277
+ }
278
+ ) });
279
+ };
280
+ exports.LocalizationRoutingTab = LocalizationRoutingTab;
281
+ exports.TOPIC_OPTIONS = TOPIC_OPTIONS;