@redacto.io/consent-sdk-react-native 3.0.0 → 3.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.
@@ -88,8 +88,9 @@ __export(privacy_center_exports, {
88
88
  module.exports = __toCommonJS(privacy_center_exports);
89
89
 
90
90
  // src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
91
- var import_react_i18next19 = require("react-i18next");
92
- var import_react_native28 = require("react-native");
91
+ var import_react_query2 = require("@tanstack/react-query");
92
+ var import_react_i18next20 = require("react-i18next");
93
+ var import_react_native29 = require("react-native");
93
94
 
94
95
  // src/RedactoPrivacyCenter/lib/i18n.ts
95
96
  var import_i18next = __toESM(require("i18next"));
@@ -259,6 +260,8 @@ var translation_default = {
259
260
  grievanceTypes: "Grievance Types",
260
261
  close: "Close",
261
262
  noData: "No Data",
263
+ noDataTitle: "Nothing to show yet",
264
+ noDataDescription: "We couldn't find any consents, requests, or activity linked to your account yet. Your privacy records will appear here once they're available.",
262
265
  rowsPerPage: "Rows per page:",
263
266
  pageOf: "Page {{current}} of {{total}}",
264
267
  rowsSelected: "{{count}} of {{total}} row(s) selected",
@@ -535,6 +538,8 @@ var translation_default2 = {
535
538
  grievanceTypes: "\u0985\u09AD\u09BF\u09AF\u09CB\u0997\u09F0 \u09AA\u09CD\u09F0\u0995\u09BE\u09F0",
536
539
  close: "\u09AC\u09A8\u09CD\u09A7 \u0995\u09F0\u0995",
537
540
  noData: "\u09A1\u09C7\u099F\u09BE \u09A8\u09BE\u0987",
541
+ noDataTitle: "\u098F\u09A4\u09BF\u09AF\u09BC\u09BE\u09B2\u09C8\u0995\u09C7 \u09A6\u09C7\u0996\u09C1\u09F1\u09BE\u09AC\u09B2\u09C8 \u098F\u0995\u09CB \u09A8\u09BE\u0987",
542
+ noDataDescription: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u098F\u0995\u09BE\u0989\u09A3\u09CD\u099F\u09F0 \u09B8\u09C8\u09A4\u09C7 \u09B8\u0982\u09AF\u09C1\u0995\u09CD\u09A4 \u0995\u09CB\u09A8\u09CB \u09B8\u09A8\u09CD\u09AE\u09A4\u09BF, \u0985\u09A8\u09C1\u09F0\u09CB\u09A7 \u09AC\u09BE \u0995\u09BE\u09F0\u09CD\u09AF\u09CD\u09AF\u09BE\u09F1\u09B2\u09C0 \u0986\u09AE\u09BF \u098F\u09A4\u09BF\u09AF\u09BC\u09BE\u09B2\u09C8\u0995\u09C7 \u09AC\u09BF\u099A\u09BE\u09F0\u09BF \u09AA\u09CB\u09F1\u09BE \u09A8\u09BE\u0987\u0964 \u0989\u09AA\u09B2\u09AC\u09CD\u09A7 \u09B9\u09CB\u09F1\u09BE\u09F0 \u09B2\u0997\u09C7 \u09B2\u0997\u09C7 \u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u0997\u09CB\u09AA\u09A8\u09C0\u09AF\u09BC\u09A4\u09BE \u09F0\u09C7\u0995\u09F0\u09CD\u09A1\u09B8\u09AE\u09C2\u09B9 \u0987\u09AF\u09BC\u09BE\u09A4 \u09A6\u09C7\u0996\u09BE \u09AF\u09BE\u09AC\u0964",
538
543
  rowsPerPage: "\u09AA\u09C3\u09B7\u09CD\u09A0\u09BE\u09A4 \u09B6\u09BE\u09F0\u09C0:",
539
544
  pageOf: "\u09AA\u09C3\u09B7\u09CD\u09A0\u09BE {{current}} / {{total}}",
540
545
  rowsSelected: "{{total}}-\u09F0 {{count}} \u09B6\u09BE\u09F0\u09C0 \u09A8\u09BF\u09F0\u09CD\u09AC\u09BE\u099A\u09BF\u09A4",
@@ -846,6 +851,8 @@ var translation_default3 = {
846
851
  grievanceTypes: "\u0985\u09AD\u09BF\u09AF\u09CB\u0997\u09C7\u09B0 \u09A7\u09B0\u09A8",
847
852
  close: "\u09AC\u09A8\u09CD\u09A7 \u0995\u09B0\u09C1\u09A8",
848
853
  noData: "\u0995\u09CB\u09A8\u09CB \u09A1\u09C7\u099F\u09BE \u09A8\u09C7\u0987",
854
+ noDataTitle: "\u098F\u0996\u09A8\u09CB \u09A6\u09C7\u0996\u09BE\u09A8\u09CB\u09B0 \u09AE\u09A4\u09CB \u0995\u09BF\u099B\u09C1 \u09A8\u09C7\u0987",
855
+ noDataDescription: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0985\u09CD\u09AF\u09BE\u0995\u09BE\u0989\u09A8\u09CD\u099F\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09B8\u09AE\u09CD\u09AA\u09B0\u09CD\u0995\u09BF\u09A4 \u0995\u09CB\u09A8\u09CB \u09B8\u09AE\u09CD\u09AE\u09A4\u09BF, \u0985\u09A8\u09C1\u09B0\u09CB\u09A7 \u09AC\u09BE \u0995\u09CD\u09B0\u09BF\u09AF\u09BC\u09BE\u0995\u09B2\u09BE\u09AA \u0986\u09AE\u09B0\u09BE \u098F\u0996\u09A8\u09CB \u0996\u09C1\u0981\u099C\u09C7 \u09AA\u09BE\u0987\u09A8\u09BF\u0964 \u0989\u09AA\u09B2\u09AC\u09CD\u09A7 \u09B9\u0993\u09AF\u09BC\u09BE\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09B8\u09BE\u09A5\u09C7\u0987 \u0986\u09AA\u09A8\u09BE\u09B0 \u0997\u09CB\u09AA\u09A8\u09C0\u09AF\u09BC\u09A4\u09BE \u09B0\u09C7\u0995\u09B0\u09CD\u09A1\u0997\u09C1\u09B2\u09BF \u098F\u0996\u09BE\u09A8\u09C7 \u09AA\u09CD\u09B0\u09A6\u09B0\u09CD\u09B6\u09BF\u09A4 \u09B9\u09AC\u09C7\u0964",
849
856
  rowsPerPage: "\u09AA\u09CD\u09B0\u09A4\u09BF \u09AA\u09C3\u09B7\u09CD\u09A0\u09BE\u09AF\u09BC \u09B8\u09BE\u09B0\u09BF:",
850
857
  pageOf: "\u09AA\u09C3\u09B7\u09CD\u09A0\u09BE {{current}} / {{total}}",
851
858
  rowsSelected: "{{total}}-\u098F\u09B0 \u09AE\u09A7\u09CD\u09AF\u09C7 {{count}} \u09B8\u09BE\u09B0\u09BF \u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09BF\u09A4",
@@ -1157,6 +1164,8 @@ var translation_default4 = {
1157
1164
  grievanceTypes: "\u0936\u093F\u0915\u093E\u092F\u0924 \u092A\u094D\u0930\u0915\u093E\u0930",
1158
1165
  close: "\u092C\u0928\u094D\u0926 \u0915\u0930\u0940\u0902",
1159
1166
  noData: "\u0915\u094B\u0928\u094B \u0921\u0947\u091F\u093E \u0928\u0948",
1167
+ noDataTitle: "\u0905\u092C\u0939\u0940\u0902 \u0926\u0947\u0916\u093E\u0935\u0947 \u0916\u093E\u0924\u093F\u0930 \u0915\u0941\u091B \u0928\u0907\u0916\u0947",
1168
+ noDataDescription: "\u0930\u0909\u0930\u093E \u0916\u093E\u0924\u093E \u0938\u0947 \u091C\u0941\u0921\u093C\u0932 \u0915\u0935\u0928\u094B \u0938\u0939\u092E\u0924\u093F, \u0905\u0928\u0941\u0930\u094B\u0927, \u092F\u093E \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0905\u092C\u0939\u0940\u0902 \u0924\u0915 \u0928\u093E \u092E\u093F\u0932\u0932\u0964 \u0930\u0909\u0930\u093E \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0930\u093F\u0915\u0949\u0930\u094D\u0921 \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0924\u0947 \u0908 \u0907\u0939\u093E\u0901 \u0926\u0947\u0916\u093E\u0908 \u0926\u093F\u0939\u0940\u0964",
1160
1169
  rowsPerPage: "\u092A\u0943\u0937\u094D\u0920 \u092A\u094D\u0930\u0924\u093F \u092A\u0902\u0915\u094D\u0924\u093F:",
1161
1170
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
1162
1171
  rowsSelected: "{{total}} \u092E\u0947\u0902 \u0938\u0947 {{count}} \u092A\u0902\u0915\u094D\u0924\u093F \u091A\u0941\u0928\u0932 \u0917\u0907\u0932",
@@ -1468,6 +1477,8 @@ var translation_default5 = {
1468
1477
  grievanceTypes: "\u0917\u0941\u0928\u093E\u0938\u094B \u0925\u093E\u0916\u094B",
1469
1478
  close: "\u092C\u0928\u094D\u0926 \u0916\u093E\u0932\u093E\u092E",
1470
1479
  noData: "\u0921\u0947\u091F\u093E \u0928\u0902\u0917\u094C",
1480
+ noDataTitle: "\u0926\u093E\u0928\u094B \u0926\u093F\u0928\u0925\u093F\u0928\u094B \u0925\u093E\u0916\u093E\u092F \u091C\u0947\u092C\u094B \u0917\u0948\u092F\u093E",
1481
+ noDataDescription: "\u0926\u093E\u0928\u094B \u0938\u092E \u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u090F\u0915\u093E\u0909\u0928\u094D\u091F\u091C\u094B\u0902 \u0938\u094B\u092E\u094B\u0928\u094D\u0926\u094B \u0925\u093E\u0928\u093E\u092F \u091C\u0947\u092C\u094B \u0938\u0939\u092E\u0924\u093F, \u0939\u093E\u092C\u093E\u092F \u090F\u092C\u093E \u0916\u093E\u092E\u093E\u0928\u093F \u091C\u094B\u0902 \u092E\u094B\u0928\u0928\u094B \u0939\u093E\u092F\u093E\u0916\u0948\u0964 \u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u0917\u094B\u092A\u0928\u0940\u092F\u0925\u093E \u0930\u093F\u0915\u0930\u094D\u0921\u092B\u094B\u0930 \u092E\u094B\u0928\u0928\u094B \u0939\u093E\u0928\u093E\u092F \u092C\u093E\u0926\u093F \u092C\u0947\u092F\u093E\u0935\u0928\u094B \u0926\u093F\u0928\u0925\u093F\u091C\u093E\u0917\u094B\u0928\u0964",
1471
1482
  rowsPerPage: "\u092A\u0943\u0937\u094D\u0920\u0928\u093F \u092A\u0902\u0915\u094D\u0924\u093F:",
1472
1483
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
1473
1484
  rowsSelected: "{{total}} \u0928\u093F\u092B\u094D\u0930\u093E\u092F {{count}} \u092A\u0902\u0915\u094D\u0924\u093F \u0938\u093E\u092F\u0916 '\u0916\u0948",
@@ -1779,6 +1790,8 @@ var translation_default6 = {
1779
1790
  grievanceTypes: "\u0936\u093F\u0915\u093E\u092F\u0924 \u092A\u094D\u0930\u0915\u093E\u0930",
1780
1791
  close: "\u092C\u0902\u0926 \u0915\u0930\u094B",
1781
1792
  noData: "\u0915\u094B\u0928\u094B \u0921\u0947\u091F\u093E \u0928\u0948",
1793
+ noDataTitle: "\u0905\u091C\u0947\u0902 \u0926\u093F\u0915\u094D\u0916\u093E\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u0915\u093F\u091B \u0928\u0947\u0908\u0902",
1794
+ noDataDescription: "\u0924\u0941\u0902\u0926\u0947 \u0916\u093E\u0924\u0947 \u0915\u0928\u094D\u0928\u0948 \u091C\u0941\u0921\u093C\u0940 \u0926\u0940 \u0915\u094B\u0908 \u092C\u0940 \u0938\u0939\u092E\u0924\u093F, \u092C\u0947\u0928\u0924\u0940 \u091C\u093E\u0902 \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0905\u091C\u0947\u0902 \u0924\u0915 \u0928\u0947\u0908\u0902 \u092E\u093F\u0932\u0940\u0964 \u0924\u0941\u0902\u0926\u0947 \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0930\u093F\u0915\u0949\u0930\u094D\u0921 \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0902\u0926\u0947 \u0917\u0948 \u0907\u0924\u094D\u0925\u0947\u0902 \u0926\u093F\u0915\u094D\u0916\u0928\u0947 \u0917\u0940 \u092E\u093F\u0932\u0919\u0928\u0964",
1782
1795
  rowsPerPage: "\u092A\u0943\u0937\u094D\u0920 \u092A\u094D\u0930\u0924\u093F \u092A\u0902\u0915\u094D\u0924\u093F:",
1783
1796
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
1784
1797
  rowsSelected: "{{total}} \u092E\u0927\u094D\u092F\u0947 {{count}} \u092A\u0902\u0915\u094D\u0924\u093F \u091A\u0941\u0928\u0932 \u0917\u0947\u0932",
@@ -2090,6 +2103,8 @@ var translation_default7 = {
2090
2103
  grievanceTypes: "\u0924\u0915\u094D\u0930\u093E\u0930 \u092A\u094D\u0930\u0915\u093E\u0930",
2091
2104
  close: "\u092C\u0902\u0926 \u0915\u0930\u093E\u0924",
2092
2105
  noData: "\u0921\u0947\u091F\u093E \u0928\u093E",
2106
+ noDataTitle: "\u0905\u091C\u0942\u0928 \u0926\u093E\u0916\u094B\u0935\u092A\u093E\u0915 \u0915\u093E\u0902\u092F \u0928\u093E",
2107
+ noDataDescription: "\u0924\u0941\u092E\u091A\u094D\u092F\u093E \u0916\u093E\u0924\u094D\u092F\u093E\u0915\u0921\u0947\u0928 \u091C\u094B\u0921\u093F\u0932\u094D\u0932\u0940 \u0915\u0938\u0932\u0940\u091A \u0938\u0902\u092E\u0924\u0940, \u092E\u093E\u0917\u0923\u094D\u092F\u094B \u0935\u093E \u0915\u0943\u0924\u0940 \u0906\u092E\u0915\u093E\u0902 \u0905\u091C\u0942\u0928 \u092E\u0947\u0933\u0942\u0902\u0915 \u0928\u093E\u0924. \u0909\u092A\u0932\u092C\u094D\u0927 \u091C\u093E\u0924\u0915\u091A \u0924\u0941\u092E\u091A\u094D\u092F\u094B \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0928\u094B\u0902\u0926\u0940 \u0939\u093E\u0902\u0917\u093E \u0926\u093F\u0938\u0924\u0932\u094D\u092F\u094B.",
2093
2108
  rowsPerPage: "\u092A\u093E\u0928\u093E\u0915 \u092A\u0902\u0915\u094D\u0924\u0940:",
2094
2109
  pageOf: "\u092A\u093E\u0928 {{current}} / {{total}}",
2095
2110
  rowsSelected: "{{total}} \u092E\u0927\u094D\u092F\u0947 {{count}} \u092A\u0902\u0915\u094D\u0924\u0940 \u0928\u093F\u0935\u0921\u0932\u0940",
@@ -2401,6 +2416,8 @@ var translation_default8 = {
2401
2416
  grievanceTypes: "\u0AAB\u0AB0\u0ABF\u0AAF\u0ABE\u0AA6 \u0AAA\u0ACD\u0AB0\u0A95\u0ABE\u0AB0\u0ACB",
2402
2417
  close: "\u0AAC\u0A82\u0AA7 \u0A95\u0AB0\u0ACB",
2403
2418
  noData: "\u0AA1\u0AC7\u0A9F\u0ABE \u0AA8\u0AA5\u0AC0",
2419
+ noDataTitle: "\u0AB9\u0A9C\u0AC1 \u0AB8\u0AC1\u0AA7\u0AC0 \u0AAC\u0AA4\u0ABE\u0AB5\u0AB5\u0ABE \u0AAE\u0ABE\u0A9F\u0AC7 \u0A95\u0A82\u0A88 \u0AA8\u0AA5\u0AC0",
2420
+ noDataDescription: "\u0AA4\u0AAE\u0ABE\u0AB0\u0ABE \u0A96\u0ABE\u0AA4\u0ABE \u0AB8\u0ABE\u0AA5\u0AC7 \u0A9C\u0ACB\u0AA1\u0ABE\u0AAF\u0AC7\u0AB2\u0AC0 \u0A95\u0ACB\u0A88 \u0AB8\u0A82\u0AAE\u0AA4\u0ABF\u0A93, \u0AB5\u0ABF\u0AA8\u0A82\u0AA4\u0AC0\u0A93 \u0A85\u0AA5\u0AB5\u0ABE \u0AAA\u0ACD\u0AB0\u0AB5\u0AC3\u0AA4\u0ACD\u0AA4\u0ABF \u0A85\u0AAE\u0AA8\u0AC7 \u0AB9\u0A9C\u0AC1 \u0AB8\u0AC1\u0AA7\u0AC0 \u0AAE\u0AB3\u0AC0 \u0AA8\u0AA5\u0AC0. \u0AA4\u0AAE\u0ABE\u0AB0\u0ABE \u0A97\u0ACB\u0AAA\u0AA8\u0AC0\u0AAF\u0AA4\u0ABE \u0AB0\u0AC7\u0A95\u0ACB\u0AB0\u0ACD\u0AA1 \u0A89\u0AAA\u0AB2\u0AAC\u0ACD\u0AA7 \u0AA5\u0AA4\u0ABE\u0A82 \u0A9C \u0A85\u0AB9\u0AC0\u0A82 \u0AA6\u0AC7\u0A96\u0ABE\u0AB6\u0AC7.",
2404
2421
  rowsPerPage: "\u0AA6\u0AB0 \u0AAA\u0AC3\u0AB7\u0ACD\u0AA0 \u0AAA\u0A82\u0A95\u0ACD\u0AA4\u0ABF\u0A93:",
2405
2422
  pageOf: "\u0AAA\u0AC3\u0AB7\u0ACD\u0AA0 {{current}} / {{total}}",
2406
2423
  rowsSelected: "{{total}} \u0AAE\u0ABE\u0A82\u0AA5\u0AC0 {{count}} \u0AAA\u0A82\u0A95\u0ACD\u0AA4\u0ABF \u0AAA\u0AB8\u0A82\u0AA6",
@@ -2712,6 +2729,8 @@ var translation_default9 = {
2712
2729
  grievanceTypes: "\u0936\u093F\u0915\u093E\u092F\u0924 \u092A\u094D\u0930\u0915\u093E\u0930",
2713
2730
  close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
2714
2731
  noData: "\u0915\u094B\u0908 \u0921\u0947\u091F\u093E \u0928\u0939\u0940\u0902",
2732
+ noDataTitle: "\u0905\u092D\u0940 \u0926\u093F\u0916\u093E\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0915\u0941\u091B \u0928\u0939\u0940\u0902",
2733
+ noDataDescription: "\u0939\u092E\u0947\u0902 \u0905\u092D\u0940 \u0924\u0915 \u0906\u092A\u0915\u0947 \u0916\u093E\u0924\u0947 \u0938\u0947 \u091C\u0941\u0921\u093C\u0940 \u0915\u094B\u0908 \u0938\u0939\u092E\u0924\u093F, \u0905\u0928\u0941\u0930\u094B\u0927 \u092F\u093E \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0928\u0939\u0940\u0902 \u092E\u093F\u0932\u0940\u0964 \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0924\u0947 \u0939\u0940 \u0906\u092A\u0915\u0947 \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0930\u093F\u0915\u0949\u0930\u094D\u0921 \u092F\u0939\u093E\u0901 \u0926\u093F\u0916\u093E\u0908 \u0926\u0947\u0902\u0917\u0947\u0964",
2715
2734
  rowsPerPage: "\u092A\u094D\u0930\u0924\u093F \u092A\u0943\u0937\u094D\u0920 \u092A\u0902\u0915\u094D\u0924\u093F\u092F\u093E\u0901:",
2716
2735
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
2717
2736
  rowsSelected: "\u0915\u0941\u0932 {{total}} \u092E\u0947\u0902 \u0938\u0947 {{count}} \u092A\u0902\u0915\u094D\u0924\u093F\u092F\u093E\u0901 \u091A\u092F\u0928\u093F\u0924",
@@ -3023,6 +3042,8 @@ var translation_default10 = {
3023
3042
  grievanceTypes: "\u0CAA\u0CB0\u0CBE\u0CA4\u0CBF \u0CB5\u0CBF\u0CA7\u0C97\u0CB3\u0CC1",
3024
3043
  close: "\u0CAE\u0CC1\u0C9A\u0CCD\u0C9A\u0CBF",
3025
3044
  noData: "\u0CA1\u0CC7\u0C9F\u0CBE \u0C87\u0CB2\u0CCD\u0CB2",
3045
+ noDataTitle: "\u0C87\u0CA8\u0CCD\u0CA8\u0CC2 \u0CA4\u0CCB\u0CB0\u0CBF\u0CB8\u0CB2\u0CC1 \u0C8F\u0CA8\u0CC2 \u0C87\u0CB2\u0CCD\u0CB2",
3046
+ noDataDescription: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0C96\u0CBE\u0CA4\u0CC6\u0C97\u0CC6 \u0CB8\u0C82\u0CAC\u0C82\u0CA7\u0CBF\u0CB8\u0CBF\u0CA6 \u0CAF\u0CBE\u0CB5\u0CC1\u0CA6\u0CC7 \u0CB8\u0CAE\u0CCD\u0CAE\u0CA4\u0CBF\u0C97\u0CB3\u0CC1, \u0CB5\u0CBF\u0CA8\u0C82\u0CA4\u0CBF\u0C97\u0CB3\u0CC1 \u0C85\u0CA5\u0CB5\u0CBE \u0C9A\u0C9F\u0CC1\u0CB5\u0C9F\u0CBF\u0C95\u0CC6 \u0CA8\u0CAE\u0C97\u0CC6 \u0C87\u0CA8\u0CCD\u0CA8\u0CC2 \u0C95\u0C82\u0CA1\u0CC1\u0CAC\u0C82\u0CA6\u0CBF\u0CB2\u0CCD\u0CB2. \u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0C97\u0CCC\u0CAA\u0CCD\u0CAF\u0CA4\u0CBE \u0CA6\u0CBE\u0C96\u0CB2\u0CC6\u0C97\u0CB3\u0CC1 \u0CB2\u0CAD\u0CCD\u0CAF\u0CB5\u0CBE\u0CA6 \u0CA4\u0C95\u0CCD\u0CB7\u0CA3 \u0C85\u0CB5\u0CC1 \u0C87\u0CB2\u0CCD\u0CB2\u0CBF \u0C97\u0CCB\u0C9A\u0CB0\u0CBF\u0CB8\u0CC1\u0CA4\u0CCD\u0CA4\u0CB5\u0CC6.",
3026
3047
  rowsPerPage: "\u0CAA\u0CC1\u0C9F\u0C95\u0CCD\u0C95\u0CC6 \u0CB8\u0CBE\u0CB2\u0CC1\u0C97\u0CB3\u0CC1:",
3027
3048
  pageOf: "\u0CAA\u0CC1\u0C9F {{current}} / {{total}}",
3028
3049
  rowsSelected: "{{total}} \u0CB0\u0CB2\u0CCD\u0CB2\u0CBF {{count}} \u0CB8\u0CBE\u0CB2\u0CC1 \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CB2\u0CBE\u0C97\u0CBF\u0CA6\u0CC6",
@@ -3334,6 +3355,8 @@ var translation_default11 = {
3334
3355
  grievanceTypes: "\u0634\u06A9\u0627\u06CC\u062A \u0642\u0633\u0645",
3335
3356
  close: "\u0628\u0646\u062F \u06A9\u0631\u0648",
3336
3357
  noData: "\u0688\u06CC\u0679\u0627 \u06A9\u0627\u0646\u06C1\u06C1",
3358
+ noDataTitle: "\u0627\u0628\u0655 \u062A\u0627\u0645 \u06C1\u0627\u0648\u064F\u0646 \u062E\u0672\u0637\u0631\u0655 \u06A9\u0627\u0646\u065B\u06C1\u06C1 \u0646\u0655",
3359
+ noDataDescription: "\u0627\u0633\u06C1\u0650 \u062A\u064F\u06C1\u0646\u065B\u062F\u0650 \u0627\u06A9\u0627\u0624\u0646\u0679\u064E\u0633 \u0633\u0655\u062A\u06CD \u062C\u064F\u0691\u0655\u0645\u0655\u0698 \u06A9\u0627\u0646\u065B\u06C1\u06C1\u0650 \u0631\u0636\u0627\u0645\u0646\u062F\u06CC\u060C \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u0655 \u06CC\u0627 \u0633\u0631\u06AF\u0631\u0645\u06CC \u0627\u0628\u0655 \u062A\u0627\u0645 \u0646\u0655 \u0644\u064E\u0628\u06D4 \u062A\u064F\u06C1\u0646\u065B\u062F \u0631\u0627\u0632\u062F\u0627\u0631\u06CC \u0631\u06CC\u06A9\u0627\u0631\u0688 \u06CC\u06C1\u0650 \u062F\u0633\u062A\u06CC\u0627\u0628 \u0633\u067E\u062F\u0650\u062A\u06BE \u06CC\u0650\u062A\u06C1\u0650 \u06A9\u0646\u06C1\u0650 \u0648\u064F\u0686\u06BE\u0646\u06C1\u0655 \u06CC\u0650\u06CC\u0650\u06C1\u0655\u06D4",
3337
3360
  rowsPerPage: "\u0635\u0641\u062D\u06C1 \u0641\u06CC \u0642\u0637\u0627\u0631\u0627\u06BA:",
3338
3361
  pageOf: "\u0635\u0641\u062D\u06C1 {{current}} / {{total}}",
3339
3362
  rowsSelected: "{{total}} \u0645\u0646\u0632 {{count}} \u0642\u0637\u0627\u0631 \u0686\u064F\u0646\u0650\u062A",
@@ -3645,6 +3668,8 @@ var translation_default12 = {
3645
3668
  grievanceTypes: "\u0936\u093F\u0915\u093E\u092F\u0924 \u092A\u094D\u0930\u0915\u093E\u0930",
3646
3669
  close: "\u092C\u0928\u094D\u0926 \u0915\u0930\u0942",
3647
3670
  noData: "\u0915\u094B\u0928\u094B \u0921\u0947\u091F\u093E \u0928\u0948",
3671
+ noDataTitle: "\u0905\u0916\u0928 \u0924\u0915 \u0926\u0947\u0916\u093E\u092C\u092F \u0932\u0947\u0932 \u0915\u093F\u091B\u0941 \u0928\u0939\u093F",
3672
+ noDataDescription: "\u0905\u0939\u093E\u0901\u0915 \u0916\u093E\u0924\u093E \u0938\u0901 \u091C\u0941\u0921\u093C\u0932 \u0915\u094B\u0928\u094B \u0938\u0939\u092E\u0924\u093F, \u0905\u0928\u0941\u0930\u094B\u0927, \u0935\u093E \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0905\u0916\u0928 \u0924\u0915 \u0928\u0939\u093F \u092D\u0947\u091F\u0932\u0964 \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0907\u0924\u0947 \u0905\u0939\u093E\u0901\u0915 \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0930\u093F\u0915\u0949\u0930\u094D\u0921 \u090F\u0924\u092F \u0926\u0947\u0916\u093E\u090F\u0924\u0964",
3648
3673
  rowsPerPage: "\u092A\u0943\u0937\u094D\u0920 \u092A\u094D\u0930\u0924\u093F \u092A\u0902\u0915\u094D\u0924\u093F:",
3649
3674
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
3650
3675
  rowsSelected: "{{total}} \u092E\u0927\u094D\u092F\u0947 {{count}} \u092A\u0902\u0915\u094D\u0924\u093F \u091A\u0941\u0928\u0932 \u0917\u0947\u0932",
@@ -3956,6 +3981,8 @@ var translation_default13 = {
3956
3981
  grievanceTypes: "\u0D2A\u0D30\u0D3E\u0D24\u0D3F \u0D24\u0D30\u0D19\u0D4D\u0D19\u0D7E",
3957
3982
  close: "\u0D05\u0D1F\u0D2F\u0D4D\u0D15\u0D4D\u0D15\u0D41\u0D15",
3958
3983
  noData: "\u0D21\u0D3E\u0D31\u0D4D\u0D31\u0D2F\u0D3F\u0D32\u0D4D\u0D32",
3984
+ noDataTitle: "\u0D07\u0D24\u0D41\u0D35\u0D30\u0D46 \u0D15\u0D3E\u0D23\u0D3F\u0D15\u0D4D\u0D15\u0D3E\u0D7B \u0D12\u0D28\u0D4D\u0D28\u0D41\u0D2E\u0D3F\u0D32\u0D4D\u0D32",
3985
+ noDataDescription: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D33\u0D41\u0D1F\u0D46 \u0D05\u0D15\u0D4D\u0D15\u0D57\u0D23\u0D4D\u0D1F\u0D41\u0D2E\u0D3E\u0D2F\u0D3F \u0D2C\u0D28\u0D4D\u0D27\u0D3F\u0D2A\u0D4D\u0D2A\u0D3F\u0D1A\u0D4D\u0D1A \u0D38\u0D2E\u0D4D\u0D2E\u0D24\u0D19\u0D4D\u0D19\u0D33\u0D4B \u0D05\u0D2D\u0D4D\u0D2F\u0D7C\u0D24\u0D4D\u0D25\u0D28\u0D15\u0D33\u0D4B \u0D2A\u0D4D\u0D30\u0D35\u0D43\u0D24\u0D4D\u0D24\u0D3F\u0D2F\u0D4B \u0D07\u0D24\u0D41\u0D35\u0D30\u0D46 \u0D1E\u0D19\u0D4D\u0D19\u0D7E\u0D15\u0D4D\u0D15\u0D4D \u0D15\u0D23\u0D4D\u0D1F\u0D46\u0D24\u0D4D\u0D24\u0D3E\u0D28\u0D3E\u0D2F\u0D3F\u0D32\u0D4D\u0D32. \u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D33\u0D41\u0D1F\u0D46 \u0D38\u0D4D\u0D35\u0D15\u0D3E\u0D30\u0D4D\u0D2F\u0D24\u0D3E \u0D30\u0D47\u0D16\u0D15\u0D7E \u0D32\u0D2D\u0D4D\u0D2F\u0D2E\u0D3E\u0D15\u0D41\u0D2E\u0D4D\u0D2A\u0D4B\u0D7E \u0D05\u0D35 \u0D07\u0D35\u0D3F\u0D1F\u0D46 \u0D26\u0D43\u0D36\u0D4D\u0D2F\u0D2E\u0D3E\u0D15\u0D41\u0D02.",
3959
3986
  rowsPerPage: "\u0D2A\u0D47\u0D1C\u0D3F\u0D28\u0D4D \u0D35\u0D30\u0D3F\u0D15\u0D7E:",
3960
3987
  pageOf: "\u0D2A\u0D47\u0D1C\u0D4D {{current}} / {{total}}",
3961
3988
  rowsSelected: "{{total}}-\u0D7D {{count}} \u0D35\u0D30\u0D3F \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D24\u0D4D\u0D24\u0D41",
@@ -4267,6 +4294,8 @@ var translation_default14 = {
4267
4294
  grievanceTypes: "\uABC1\uABE4\uABD5\uABD2\uABE4 \uABC4\uABE3\uABE0\uABC1\uABE4\uABE1",
4268
4295
  close: "\uABC1\uABE5\uABD5",
4269
4296
  noData: "\uABD7\uABE6\uABC7\uABE5 \uABC2\uABE9\uABC7\uABE6",
4297
+ noDataTitle: "\uABCD\uABE7\uABD6\uABE4\uABDB \uABD0\uABE5\uABCE\uABD5 \uABCE\uABE0\uABC5\uABD5 \uABC0\uABD4\uABE4\uABC1\uABE8 \uABC2\uABE9\uABC7\uABE6",
4298
+ noDataDescription: "\uABCD\uABE7\uABD6\uABE4\uABDB \uABD0\uABE5\uABCE\uABD5 \uABD1\uABD7\uABE3\uABDD\uABD2\uABE4 \uABD1\uABC0\uABE5\uABCE\uABDF\uABC7\uABC0 \uABC1\uABDD\uABC5\uABD7\uABE8\uABC5 \uABC0\uABC5\uABC1\uABE6\uABDF\uABC7, \uABCD\uABE7\uABD4\uABDB\uABD0\uABDD, \uABC5\uABE0\uABC7\uABED\uABD4\uABD2 \uABC8\uABE8\uABD7\uABDD\uABD5\uABE4\uABE0 \uABD1\uABC3\uABE0\uABC7 \uABD0\uABEA\uABD7\uABD4\uABE6\uABEB \uABD1\uABD7\uABE3\uABDD\uABD2\uABE4 \uABC4\uABED\uABD4\uABE5\uABCF\uABDA\uABE6\uABC1\uABE4 \uABD4\uABE4\uABC0\uABE3\uABD4\uABD7\uABC1\uABE4\uABE1 \uABD0\uABEA\uABC2\uABDB\uABC4 \uABC3\uABC7\uABC3\uABD7 \uABC3\uABD0\uABDD \uABD1\uABC1\uABE4\uABD7 \uABCE\uABD4\uABDB\uABC0\uABC5\uABE4\uABEB",
4270
4299
  rowsPerPage: "\uABC2\uABE6\uABE1\uABD2\uABE4 \uABC3\uABD4\uABE8\uABD1\uABE3\uABCF\uABD5:",
4271
4300
  pageOf: "\uABC2\uABE6\uABE1 {{current}} / {{total}}",
4272
4301
  rowsSelected: "{{total}} \uABD2\uABE4 \uABC3\uABD4\uABE8\uABD1\uABE3\uABCF\uABD5 {{count}} \uABC1\uABE4\uABC4 \uABC8\uABE8\uABDF\uABC1\uABE5\uABD6\uABC8\uABD4\uABE6",
@@ -4578,6 +4607,8 @@ var translation_default15 = {
4578
4607
  grievanceTypes: "\u0924\u0915\u094D\u0930\u093E\u0930 \u092A\u094D\u0930\u0915\u093E\u0930",
4579
4608
  close: "\u092C\u0902\u0926 \u0915\u0930\u093E",
4580
4609
  noData: "\u0921\u0947\u091F\u093E \u0928\u093E\u0939\u0940",
4610
+ noDataTitle: "\u0905\u0926\u094D\u092F\u093E\u092A \u0926\u093E\u0916\u0935\u0923\u094D\u092F\u093E\u0938\u093E\u0930\u0916\u0947 \u0915\u093E\u0939\u0940 \u0928\u093E\u0939\u0940",
4611
+ noDataDescription: "\u0924\u0941\u092E\u091A\u094D\u092F\u093E \u0916\u093E\u0924\u094D\u092F\u093E\u0936\u0940 \u0938\u0902\u092C\u0902\u0927\u093F\u0924 \u0915\u094B\u0923\u0924\u094D\u092F\u093E\u0939\u0940 \u0938\u0902\u092E\u0924\u0940, \u0935\u093F\u0928\u0902\u0924\u094D\u092F\u093E \u0915\u093F\u0902\u0935\u093E \u0915\u094D\u0930\u093F\u092F\u093E\u0915\u0932\u093E\u092A \u0905\u0926\u094D\u092F\u093E\u092A \u0906\u092E\u094D\u0939\u093E\u0932\u093E \u0906\u0922\u0933\u0932\u0947 \u0928\u093E\u0939\u0940\u0924. \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0924\u093E\u091A \u0924\u0941\u092E\u091A\u094D\u092F\u093E \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0928\u094B\u0902\u0926\u0940 \u092F\u0947\u0925\u0947 \u0926\u093F\u0938\u0924\u0940\u0932.",
4581
4612
  rowsPerPage: "\u092A\u094D\u0930\u0924\u093F \u092A\u0943\u0937\u094D\u0920 \u092A\u0902\u0915\u094D\u0924\u0940:",
4582
4613
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
4583
4614
  rowsSelected: "{{total}} \u092A\u0948\u0915\u0940 {{count}} \u092A\u0902\u0915\u094D\u0924\u0940 \u0928\u093F\u0935\u0921\u0932\u0940",
@@ -4889,6 +4920,8 @@ var translation_default16 = {
4889
4920
  grievanceTypes: "\u0917\u0941\u0928\u093E\u0938\u094B \u092A\u094D\u0930\u0915\u093E\u0930\u0939\u0930\u0942",
4890
4921
  close: "\u092C\u0928\u094D\u0926 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
4891
4922
  noData: "\u0921\u0947\u091F\u093E \u091B\u0948\u0928",
4923
+ noDataTitle: "\u0905\u0939\u093F\u0932\u0947\u0938\u092E\u094D\u092E \u0926\u0947\u0916\u093E\u0909\u0928\u0947 \u0915\u0947\u0939\u0940 \u091B\u0948\u0928",
4924
+ noDataDescription: "\u0924\u092A\u093E\u0908\u0902\u0915\u094B \u0916\u093E\u0924\u093E\u0938\u0901\u0917 \u091C\u094B\u0921\u093F\u090F\u0915\u093E \u0915\u0941\u0928\u0948 \u0938\u0939\u092E\u0924\u093F, \u0905\u0928\u0941\u0930\u094B\u0927 \u0935\u093E \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0939\u093E\u092E\u0940\u0932\u0947 \u0905\u0939\u093F\u0932\u0947\u0938\u092E\u094D\u092E \u092B\u0947\u0932\u093E \u092A\u093E\u0930\u0947\u0928\u094C\u0902\u0964 \u0909\u092A\u0932\u092C\u094D\u0927 \u092D\u090F\u092A\u091B\u093F \u0924\u092A\u093E\u0908\u0902\u0915\u093E \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E \u0930\u0947\u0915\u0930\u094D\u0921\u0939\u0930\u0942 \u092F\u0939\u093E\u0901 \u0926\u0947\u0916\u093F\u0928\u0947\u091B\u0928\u094D\u0964",
4892
4925
  rowsPerPage: "\u092A\u0943\u0937\u094D\u0920 \u092A\u094D\u0930\u0924\u093F \u092A\u0919\u094D\u0915\u094D\u0924\u093F\u0939\u0930\u0942:",
4893
4926
  pageOf: "\u092A\u0943\u0937\u094D\u0920 {{current}} / {{total}}",
4894
4927
  rowsSelected: "{{total}} \u092E\u0927\u094D\u092F\u0947 {{count}} \u092A\u0919\u094D\u0915\u094D\u0924\u093F \u091A\u092F\u0928 \u0917\u0930\u093F\u092F\u094B",
@@ -5200,6 +5233,8 @@ var translation_default17 = {
5200
5233
  grievanceTypes: "\u0B05\u0B2D\u0B3F\u0B2F\u0B4B\u0B17 \u0B2A\u0B4D\u0B30\u0B15\u0B3E\u0B30",
5201
5234
  close: "\u0B2C\u0B28\u0B4D\u0B26 \u0B15\u0B30\u0B28\u0B4D\u0B24\u0B41",
5202
5235
  noData: "\u0B24\u0B25\u0B4D\u0B5F \u0B28\u0B3E\u0B39\u0B3F\u0B01",
5236
+ noDataTitle: "\u0B0F\u0B2A\u0B30\u0B4D\u0B2F\u0B4D\u0B5F\u0B28\u0B4D\u0B24 \u0B26\u0B47\u0B16\u0B3E\u0B07\u0B2C\u0B3E\u0B15\u0B41 \u0B15\u0B3F\u0B1B\u0B3F \u0B28\u0B3E\u0B39\u0B3F\u0B01",
5237
+ noDataDescription: "\u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B06\u0B15\u0B3E\u0B09\u0B23\u0B4D\u0B1F \u0B38\u0B39\u0B3F\u0B24 \u0B38\u0B02\u0B2F\u0B41\u0B15\u0B4D\u0B24 \u0B15\u0B4C\u0B23\u0B38\u0B3F \u0B38\u0B2E\u0B4D\u0B2E\u0B24\u0B3F, \u0B05\u0B28\u0B41\u0B30\u0B4B\u0B27 \u0B15\u0B3F\u0B2E\u0B4D\u0B2C\u0B3E \u0B15\u0B3E\u0B30\u0B4D\u0B2F\u0B4D\u0B5F\u0B15\u0B33\u0B3E\u0B2A \u0B06\u0B2E\u0B47 \u0B0F\u0B2A\u0B30\u0B4D\u0B2F\u0B4D\u0B5F\u0B28\u0B4D\u0B24 \u0B2A\u0B3E\u0B07\u0B32\u0B41 \u0B28\u0B3E\u0B39\u0B3F\u0B01\u0964 \u0B09\u0B2A\u0B32\u0B2C\u0B4D\u0B27 \u0B39\u0B47\u0B2C\u0B3E \u0B2E\u0B3E\u0B24\u0B4D\u0B30\u0B47 \u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B17\u0B4B\u0B2A\u0B28\u0B40\u0B5F\u0B24\u0B3E \u0B30\u0B47\u0B15\u0B30\u0B4D\u0B21 \u0B0F\u0B20\u0B3E\u0B30\u0B47 \u0B26\u0B47\u0B16\u0B3E\u0B2F\u0B3F\u0B2C\u0964",
5203
5238
  rowsPerPage: "\u0B2A\u0B43\u0B37\u0B4D\u0B20\u0B3E\u0B15\u0B41 \u0B27\u0B3E\u0B21\u0B3C\u0B3F:",
5204
5239
  pageOf: "\u0B2A\u0B43\u0B37\u0B4D\u0B20\u0B3E {{current}} / {{total}}",
5205
5240
  rowsSelected: "{{total}} \u0B30\u0B41 {{count}} \u0B27\u0B3E\u0B21\u0B3C\u0B3F \u0B2C\u0B3E\u0B1B\u0B3F\u0B32\u0B47",
@@ -5511,6 +5546,8 @@ var translation_default18 = {
5511
5546
  grievanceTypes: "\u0A38\u0A3C\u0A3F\u0A15\u0A3E\u0A07\u0A24 \u0A15\u0A3F\u0A38\u0A2E\u0A3E\u0A02",
5512
5547
  close: "\u0A2C\u0A70\u0A26 \u0A15\u0A30\u0A4B",
5513
5548
  noData: "\u0A15\u0A4B\u0A08 \u0A21\u0A47\u0A1F\u0A3E \u0A28\u0A39\u0A40\u0A02",
5549
+ noDataTitle: "\u0A05\u0A1C\u0A47 \u0A26\u0A3F\u0A16\u0A3E\u0A09\u0A23 \u0A32\u0A08 \u0A15\u0A41\u0A1D \u0A28\u0A39\u0A40\u0A02",
5550
+ noDataDescription: "\u0A05\u0A38\u0A40\u0A02 \u0A24\u0A41\u0A39\u0A3E\u0A21\u0A47 \u0A16\u0A3E\u0A24\u0A47 \u0A28\u0A3E\u0A32 \u0A1C\u0A41\u0A5C\u0A40 \u0A15\u0A4B\u0A08 \u0A38\u0A39\u0A3F\u0A2E\u0A24\u0A40, \u0A2C\u0A47\u0A28\u0A24\u0A40 \u0A1C\u0A3E\u0A02 \u0A17\u0A24\u0A40\u0A35\u0A3F\u0A27\u0A40 \u0A05\u0A1C\u0A47 \u0A28\u0A39\u0A40\u0A02 \u0A32\u0A71\u0A2D \u0A38\u0A15\u0A47\u0964 \u0A24\u0A41\u0A39\u0A3E\u0A21\u0A47 \u0A17\u0A4B\u0A2A\u0A28\u0A40\u0A2F\u0A24\u0A3E \u0A30\u0A3F\u0A15\u0A3E\u0A30\u0A21 \u0A09\u0A2A\u0A32\u0A2C\u0A27 \u0A39\u0A41\u0A70\u0A26\u0A47 \u0A39\u0A40 \u0A07\u0A71\u0A25\u0A47 \u0A26\u0A3F\u0A16\u0A3E\u0A08 \u0A26\u0A47\u0A23\u0A17\u0A47\u0964",
5514
5551
  rowsPerPage: "\u0A2A\u0A70\u0A28\u0A47 \u0A2A\u0A4D\u0A30\u0A24\u0A40 \u0A15\u0A24\u0A3E\u0A30\u0A3E\u0A02:",
5515
5552
  pageOf: "\u0A2A\u0A70\u0A28\u0A3E {{current}} / {{total}}",
5516
5553
  rowsSelected: "{{total}} \u0A35\u0A3F\u0A71\u0A1A\u0A4B\u0A02 {{count}} \u0A15\u0A24\u0A3E\u0A30 \u0A1A\u0A41\u0A23\u0A40 \u0A17\u0A08",
@@ -5822,6 +5859,8 @@ var translation_default19 = {
5822
5859
  grievanceTypes: "\u0905\u092D\u093F\u092F\u094B\u0917\u092A\u094D\u0930\u0915\u093E\u0930\u093E\u0903",
5823
5860
  close: "\u0938\u092E\u093E\u092A\u092F",
5824
5861
  noData: "\u0921\u0947\u091F\u093E \u0928\u093E\u0938\u094D\u0924\u093F",
5862
+ noDataTitle: "\u0905\u0926\u094D\u092F\u093E\u092A\u093F \u0915\u093F\u092E\u092A\u093F \u0926\u0930\u094D\u0936\u092F\u093F\u0924\u0941\u0902 \u0928\u093E\u0938\u094D\u0924\u093F",
5863
+ noDataDescription: "\u092D\u0935\u0924\u0903 \u0916\u093E\u0924\u092F\u093E \u0938\u0939 \u0938\u092E\u094D\u092C\u0926\u094D\u0927\u093E\u0903 \u0915\u093E\u0936\u094D\u091A\u0928 \u0938\u092E\u094D\u092E\u0924\u092F\u0903, \u0905\u0928\u0941\u0930\u094B\u0927\u093E\u0903, \u0915\u093E\u0930\u094D\u092F\u0915\u0932\u093E\u092A\u093E\u0903 \u0935\u093E \u0905\u0926\u094D\u092F\u093E\u092A\u093F \u0905\u0938\u094D\u092E\u093E\u092D\u093F\u0903 \u0928 \u092A\u094D\u0930\u093E\u092A\u094D\u0924\u093E\u0903\u0964 \u0909\u092A\u0932\u092C\u094D\u0927\u093E\u0903 \u0938\u0924\u093F \u092D\u0935\u0924\u0903 \u0917\u094B\u092A\u0928\u0940\u092F\u0924\u093E-\u0905\u092D\u093F\u0932\u0947\u0916\u093E\u0903 \u0905\u0924\u094D\u0930 \u0926\u0930\u094D\u0936\u092F\u093F\u0937\u094D\u092F\u0928\u094D\u0924\u0947\u0964",
5825
5864
  rowsPerPage: "\u092A\u0943\u0937\u094D\u0920\u0947 \u092A\u0902\u0915\u094D\u0924\u092F\u0903:",
5826
5865
  pageOf: "\u092A\u0943\u0937\u094D\u0920\u092E\u094D {{current}} / {{total}}",
5827
5866
  rowsSelected: "{{total}} \u092E\u0927\u094D\u092F\u0947 {{count}} \u092A\u0902\u0915\u094D\u0924\u093F\u0903 \u091A\u093F\u0924\u093E",
@@ -6133,6 +6172,8 @@ var translation_default20 = {
6133
6172
  grievanceTypes: "\u1C69\u1C6F\u1C5F\u1C79\u1C6D \u1C5E\u1C6E\u1C60\u1C5F\u1C71",
6134
6173
  close: "\u1C75\u1C5A\u1C78\u1C6B\u1C5A",
6135
6174
  noData: "\u1C70\u1C6E\u1C74\u1C5F \u1C75\u1C5F\u1C79\u1C71\u1C69\u1C5C\u1C7C\u1C5F",
6175
+ noDataTitle: "\u1C71\u1C64\u1C5B \u1C5B\u1C5F\u1C60 \u1C61\u1C5F\u1C66\u1C5F\u1C78 \u1C6B\u1C6E\u1C60\u1C77\u1C5F\u1C63 \u1C5E\u1C5F\u1C79\u1C5C\u1C64\u1C6B \u1C75\u1C5F\u1C5D",
6176
+ noDataDescription: "\u1C5F\u1C5E\u1C6E \u1C71\u1C64\u1C5B \u1C5B\u1C5F\u1C60 \u1C5F\u1C62\u1C5F\u1C5C \u1C6E\u1C60\u1C5F\u1C63\u1C69\u1C71\u1C74 \u1C65\u1C5F\u1C5E\u1C5F\u1C5C \u1C61\u1C5A\u1C72\u1C5F\u1C63 \u1C61\u1C5F\u1C66\u1C5F\u1C78 \u1C65\u1C5A\u1C66\u1C5A\u1C62\u1C5A\u1C5B\u1C64, \u1C66\u1C5F\u1C75\u1C5F\u1C6D, \u1C5F\u1C68\u1C75\u1C5F\u1C5D \u1C60\u1C5F\u1C79\u1C62\u1C64 \u1C75\u1C5F\u1C5D \u1C67\u1C5F\u1C62 \u1C6B\u1C5F\u1C72\u1C6E\u1C6D\u1C5F\u1C6B\u1C7C\u1C5F\u1C7E \u1C5F\u1C62\u1C5F\u1C5C \u1C6F\u1C68\u1C5F\u1C6D\u1C63\u1C6E\u1C65\u1C64 \u1C68\u1C64\u1C60\u1C5A\u1C68\u1C70 \u1C60\u1C5A \u1C67\u1C5F\u1C62\u1C5A\u1C5C \u1C60\u1C77\u1C5F\u1C71 \u1C71\u1C5A\u1C78\u1C70\u1C6E \u1C6B\u1C6E\u1C60\u1C77\u1C5F\u1C63\u1C5A\u1C5C\u1C7C\u1C5F\u1C7E",
6136
6177
  rowsPerPage: "\u1C6F\u1C6E\u1C61\u1C7D \u1C6F\u1C64\u1C68\u1C64 \u1C6A\u1C77\u1C69\u1C74\u1C5F\u1C79:",
6137
6178
  pageOf: "\u1C6F\u1C6E\u1C61\u1C7D {{current}} / {{total}}",
6138
6179
  rowsSelected: "{{total}} \u1C60\u1C77\u1C5A\u1C71 {{count}} \u1C6A\u1C77\u1C69\u1C74\u1C5F\u1C79 \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63",
@@ -6444,6 +6485,8 @@ var translation_default21 = {
6444
6485
  grievanceTypes: "\u0634\u06AA\u0627\u064A\u062A \u0642\u0633\u0645\u0646",
6445
6486
  close: "\u0628\u0646\u062F \u06AA\u0631\u064A\u0648",
6446
6487
  noData: "\u068A\u064A\u067D\u0627 \u06AA\u0627\u0646\u0647\u064A",
6488
+ noDataTitle: "\u0627\u0683\u0627 \u068F\u064A\u06A9\u0627\u0631\u06BB \u0644\u0627\u0621\u0650 \u06AA\u062C\u0647\u0647 \u0646\u0627\u0647\u064A",
6489
+ noDataDescription: "\u0627\u0633\u0627\u0646 \u06A9\u064A \u0627\u0683\u0627 \u062A\u0627\u0626\u064A\u0646 \u062A\u0648\u0647\u0627\u0646 \u062C\u064A \u0627\u06AA\u0627\u0626\u0648\u0646\u067D \u0633\u0627\u0646 \u0644\u0627\u06B3\u0627\u067E\u064A\u0644 \u06AA\u0627\u0628\u0647 \u0631\u0636\u0627\u0645\u0646\u062F\u064A\u060C \u062F\u0631\u062E\u0648\u0627\u0633\u062A \u064A\u0627 \u0633\u0631\u06AF\u0631\u0645\u064A \u0646\u0647 \u0645\u0644\u064A. \u062A\u0648\u0647\u0627\u0646 \u062C\u0627 \u0631\u0627\u0632\u062F\u0627\u0631\u064A \u0631\u06AA\u0627\u0631\u068A \u0645\u0648\u062C\u0648\u062F \u067F\u064A\u0646\u062F\u064A \u0626\u064A \u0647\u062A\u064A \u0638\u0627\u0647\u0631 \u067F\u064A\u0646\u062F\u0627.",
6447
6490
  rowsPerPage: "\u0635\u0641\u062D\u064A \u0641\u064A \u0642\u0637\u0627\u0631\u0648\u0646:",
6448
6491
  pageOf: "\u0635\u0641\u062D\u0648 {{current}} / {{total}}",
6449
6492
  rowsSelected: "{{total}} \u0645\u0627\u0646 {{count}} \u0642\u0637\u0627\u0631 \u0686\u0648\u0646\u068A\u064A\u0644",
@@ -6755,6 +6798,8 @@ var translation_default22 = {
6755
6798
  grievanceTypes: "\u0BAE\u0BC1\u0BB1\u0BC8\u0BAF\u0BC0\u0B9F\u0BCD\u0B9F\u0BC1 \u0BB5\u0B95\u0BC8\u0B95\u0BB3\u0BCD",
6756
6799
  close: "\u0BAE\u0BC2\u0B9F\u0BC1",
6757
6800
  noData: "\u0BA4\u0BB0\u0BB5\u0BC1 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8",
6801
+ noDataTitle: "\u0B87\u0BA9\u0BCD\u0BA9\u0BC1\u0BAE\u0BCD \u0B95\u0BBE\u0B9F\u0BCD\u0B9F \u0B8E\u0BA4\u0BC1\u0BB5\u0BC1\u0BAE\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8",
6802
+ noDataDescription: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B95\u0BA3\u0B95\u0BCD\u0B95\u0BC1\u0B9F\u0BA9\u0BCD \u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0B92\u0BAA\u0BCD\u0BAA\u0BC1\u0BA4\u0BB2\u0BCD\u0B95\u0BB3\u0BCD, \u0B95\u0BCB\u0BB0\u0BBF\u0B95\u0BCD\u0B95\u0BC8\u0B95\u0BB3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BA4\u0BC1 \u0B9A\u0BC6\u0BAF\u0BB2\u0BCD\u0BAA\u0BBE\u0B9F\u0BC1 \u0B8E\u0BA4\u0BC8\u0BAF\u0BC1\u0BAE\u0BCD \u0B87\u0BA9\u0BCD\u0BA9\u0BC1\u0BAE\u0BCD \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BBE\u0BB2\u0BCD \u0B95\u0BA3\u0BCD\u0B9F\u0BB1\u0BBF\u0BAF \u0BAE\u0BC1\u0B9F\u0BBF\u0BAF\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8. \u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BA9\u0BBF\u0BAF\u0BC1\u0BB0\u0BBF\u0BAE\u0BC8 \u0BAA\u0BA4\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BCD \u0B95\u0BBF\u0B9F\u0BC8\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD\u0BAA\u0BCB\u0BA4\u0BC1 \u0B85\u0BB5\u0BC8 \u0B87\u0B99\u0BCD\u0B95\u0BC7 \u0BA4\u0BCB\u0BA9\u0BCD\u0BB1\u0BC1\u0BAE\u0BCD.",
6758
6803
  rowsPerPage: "\u0BAA\u0B95\u0BCD\u0B95\u0BA4\u0BCD\u0BA4\u0BBF\u0BB1\u0BCD\u0B95\u0BC1 \u0BB5\u0BB0\u0BBF\u0B9A\u0BC8\u0B95\u0BB3\u0BCD:",
6759
6804
  pageOf: "\u0BAA\u0B95\u0BCD\u0B95\u0BAE\u0BCD {{current}} / {{total}}",
6760
6805
  rowsSelected: "{{count}} / {{total}} \u0BB5\u0BB0\u0BBF\u0B9A\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
@@ -7066,6 +7111,8 @@ var translation_default23 = {
7066
7111
  grievanceTypes: "\u0C2B\u0C3F\u0C30\u0C4D\u0C2F\u0C3E\u0C26\u0C41 \u0C30\u0C15\u0C3E\u0C32\u0C41",
7067
7112
  close: "\u0C2E\u0C42\u0C38\u0C3F\u0C35\u0C47\u0C2F\u0C02\u0C21\u0C3F",
7068
7113
  noData: "\u0C21\u0C47\u0C1F\u0C3E \u0C32\u0C47\u0C26\u0C41",
7114
+ noDataTitle: "\u0C1A\u0C42\u0C2A\u0C3F\u0C02\u0C1A\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C07\u0C02\u0C15\u0C3E \u0C0F\u0C2E\u0C40 \u0C32\u0C47\u0C26\u0C41",
7115
+ noDataDescription: "\u0C2E\u0C40 \u0C16\u0C3E\u0C24\u0C3E\u0C15\u0C41 \u0C05\u0C28\u0C41\u0C38\u0C02\u0C27\u0C3E\u0C28\u0C3F\u0C02\u0C1A\u0C2C\u0C21\u0C3F\u0C28 \u0C0F \u0C38\u0C2E\u0C4D\u0C2E\u0C24\u0C41\u0C32\u0C41, \u0C05\u0C2D\u0C4D\u0C2F\u0C30\u0C4D\u0C25\u0C28\u0C32\u0C41 \u0C32\u0C47\u0C26\u0C3E \u0C15\u0C3E\u0C30\u0C4D\u0C2F\u0C3E\u0C1A\u0C30\u0C23 \u0C07\u0C02\u0C15\u0C3E \u0C2E\u0C3E\u0C15\u0C41 \u0C15\u0C28\u0C41\u0C17\u0C4A\u0C28\u0C2C\u0C21\u0C32\u0C47\u0C26\u0C41. \u0C05\u0C02\u0C26\u0C41\u0C2C\u0C3E\u0C1F\u0C41\u0C32\u0C4B\u0C15\u0C3F \u0C35\u0C1A\u0C4D\u0C1A\u0C3F\u0C28 \u0C24\u0C30\u0C4D\u0C35\u0C3E\u0C24 \u0C2E\u0C40 \u0C17\u0C4B\u0C2A\u0C4D\u0C2F\u0C24\u0C3E \u0C30\u0C3F\u0C15\u0C3E\u0C30\u0C4D\u0C21\u0C41\u0C32\u0C41 \u0C07\u0C15\u0C4D\u0C15\u0C21 \u0C15\u0C28\u0C3F\u0C2A\u0C3F\u0C38\u0C4D\u0C24\u0C3E\u0C2F\u0C3F.",
7069
7116
  rowsPerPage: "\u0C2A\u0C47\u0C1C\u0C40\u0C15\u0C3F \u0C35\u0C30\u0C41\u0C38\u0C32\u0C41:",
7070
7117
  pageOf: "\u0C2A\u0C47\u0C1C\u0C40 {{current}} / {{total}}",
7071
7118
  rowsSelected: "{{total}}\u0C32\u0C4B {{count}} \u0C35\u0C30\u0C41\u0C38 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C2C\u0C21\u0C3F\u0C02\u0C26\u0C3F",
@@ -7377,6 +7424,8 @@ var translation_default24 = {
7377
7424
  grievanceTypes: "\u0634\u06A9\u0627\u06CC\u062A \u06A9\u06CC \u0627\u0642\u0633\u0627\u0645",
7378
7425
  close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
7379
7426
  noData: "\u06A9\u0648\u0626\u06CC \u0688\u06CC\u0679\u0627 \u0646\u06C1\u06CC\u06BA",
7427
+ noDataTitle: "\u0627\u0628\u06BE\u06CC \u062F\u06A9\u06BE\u0627\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u06A9\u0686\u06BE \u0646\u06C1\u06CC\u06BA",
7428
+ noDataDescription: "\u06C1\u0645\u06CC\u06BA \u0627\u0628\u06BE\u06CC \u062A\u06A9 \u0622\u067E \u06A9\u06D2 \u0627\u06A9\u0627\u0624\u0646\u0679 \u0633\u06D2 \u0645\u0646\u0633\u0644\u06A9 \u06A9\u0648\u0626\u06CC \u0631\u0636\u0627\u0645\u0646\u062F\u06CC\u060C \u062F\u0631\u062E\u0648\u0627\u0633\u062A \u06CC\u0627 \u0633\u0631\u06AF\u0631\u0645\u06CC \u0646\u06C1\u06CC\u06BA \u0645\u0644\u06CC\u06D4 \u0622\u067E \u06A9\u06D2 \u067E\u0631\u0627\u0626\u06CC\u0648\u06CC\u0633\u06CC \u0631\u06CC\u06A9\u0627\u0631\u0688 \u062F\u0633\u062A\u06CC\u0627\u0628 \u06C1\u0648\u062A\u06D2 \u06C1\u06CC \u06CC\u06C1\u0627\u06BA \u0638\u0627\u06C1\u0631 \u06C1\u0648 \u062C\u0627\u0626\u06CC\u06BA \u06AF\u06D2\u06D4",
7380
7429
  rowsPerPage: "\u0641\u06CC \u0635\u0641\u062D\u06C1 \u0642\u0637\u0627\u0631\u06CC\u06BA:",
7381
7430
  pageOf: "\u0635\u0641\u062D\u06C1 {{current}} / {{total}}",
7382
7431
  rowsSelected: "{{count}} \u0627\u0632 {{total}} \u0642\u0637\u0627\u0631 \u0645\u0646\u062A\u062E\u0628",
@@ -9412,11 +9461,8 @@ function useTheme() {
9412
9461
  return ctx;
9413
9462
  }
9414
9463
 
9415
- // src/RedactoPrivacyCenter/components/ConsentManager.tsx
9416
- var import_react8 = require("react");
9417
- var import_react_native6 = require("react-native");
9418
- var import_react_i18next3 = require("react-i18next");
9419
- var import_react_native_svg5 = __toESM(require("react-native-svg"));
9464
+ // src/RedactoPrivacyCenter/context/DataAvailabilityContext.tsx
9465
+ var import_react6 = require("react");
9420
9466
 
9421
9467
  // src/RedactoPrivacyCenter/lib/useCurrentLanguage.ts
9422
9468
  var import_react5 = require("react");
@@ -9437,6 +9483,114 @@ function useCurrentLanguage() {
9437
9483
  return { currentLanguage, langParam };
9438
9484
  }
9439
9485
 
9486
+ // src/RedactoPrivacyCenter/context/DataAvailabilityContext.tsx
9487
+ var import_jsx_runtime5 = require("react/jsx-runtime");
9488
+ var DataAvailabilityContext = (0, import_react6.createContext)(null);
9489
+ function isConsentsEmpty(v) {
9490
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
9491
+ return ((_b = (_a = v.status_summary) == null ? void 0 : _a.total_purposes) != null ? _b : 0) === 0 && ((_d = (_c = v.direct) == null ? void 0 : _c.length) != null ? _d : 0) === 0 && ((_f = (_e = v.nominated) == null ? void 0 : _e.length) != null ? _f : 0) === 0 && ((_h = (_g = v.nominators) == null ? void 0 : _g.length) != null ? _h : 0) === 0 && ((_j = (_i = v.data) == null ? void 0 : _i.length) != null ? _j : 0) === 0 && ((_l = (_k = v.product_purpose_groups) == null ? void 0 : _k.length) != null ? _l : 0) === 0 && ((_n = (_m = v.direct_product_groups) == null ? void 0 : _m.length) != null ? _n : 0) === 0 && ((_p = (_o = v.nominated_purposes) == null ? void 0 : _o.length) != null ? _p : 0) === 0;
9492
+ }
9493
+ function DataAvailabilityProvider({ children }) {
9494
+ const {
9495
+ accessToken,
9496
+ refreshToken,
9497
+ email,
9498
+ organizationId,
9499
+ workspaceId,
9500
+ onError,
9501
+ updateTokens
9502
+ } = useAuth();
9503
+ const { consentClient } = useBaseUrl();
9504
+ const { langParam } = useCurrentLanguage();
9505
+ const authContext = (0, import_react6.useMemo)(
9506
+ () => ({ accessToken, refreshToken, onError, updateTokens }),
9507
+ [accessToken, refreshToken, onError, updateTokens]
9508
+ );
9509
+ const [status, setStatus] = (0, import_react6.useState)("checking");
9510
+ const runIdRef = (0, import_react6.useRef)(0);
9511
+ const mountedRef = (0, import_react6.useRef)(true);
9512
+ (0, import_react6.useEffect)(() => {
9513
+ mountedRef.current = true;
9514
+ return () => {
9515
+ mountedRef.current = false;
9516
+ };
9517
+ }, []);
9518
+ const runCheck = (0, import_react6.useCallback)(async () => {
9519
+ if (!organizationId || !workspaceId) return;
9520
+ const runId = ++runIdRef.current;
9521
+ setStatus("checking");
9522
+ const contact = email;
9523
+ const consentsEmptyP = fetchUserConsents({
9524
+ organizationId,
9525
+ workspaceId,
9526
+ limit: 1,
9527
+ nominatedLimit: 1,
9528
+ language: langParam,
9529
+ authContext,
9530
+ consentClient
9531
+ }).then((v) => !!v && isConsentsEmpty(v)).catch(() => false);
9532
+ const casesEmptyP = contact ? fetchCaseHistory(
9533
+ organizationId,
9534
+ workspaceId,
9535
+ contact,
9536
+ 0,
9537
+ 1,
9538
+ authContext,
9539
+ consentClient,
9540
+ langParam
9541
+ ).then((v) => {
9542
+ var _a, _b;
9543
+ return !!v && ((_b = (_a = v.data) == null ? void 0 : _a.length) != null ? _b : 0) === 0;
9544
+ }).catch(() => false) : Promise.resolve(true);
9545
+ const activitiesEmptyP = fetchActivities(
9546
+ organizationId,
9547
+ workspaceId,
9548
+ 0,
9549
+ 1,
9550
+ authContext,
9551
+ consentClient,
9552
+ langParam
9553
+ ).then((v) => {
9554
+ var _a, _b;
9555
+ return !!v && ((_b = (_a = v.pagination) == null ? void 0 : _a.total_count) != null ? _b : 0) === 0;
9556
+ }).catch(() => false);
9557
+ const [consentsEmpty, casesEmpty, activitiesEmpty] = await Promise.all([
9558
+ consentsEmptyP,
9559
+ casesEmptyP,
9560
+ activitiesEmptyP
9561
+ ]);
9562
+ if (!mountedRef.current || runId !== runIdRef.current) return;
9563
+ setStatus(
9564
+ consentsEmpty && casesEmpty && activitiesEmpty ? "empty" : "has-data"
9565
+ );
9566
+ }, [organizationId, workspaceId, email, authContext, consentClient, langParam]);
9567
+ (0, import_react6.useEffect)(() => {
9568
+ if (organizationId && workspaceId && accessToken) {
9569
+ void runCheck();
9570
+ }
9571
+ }, [organizationId, workspaceId, accessToken, runCheck]);
9572
+ const value = (0, import_react6.useMemo)(
9573
+ () => ({ status }),
9574
+ [status]
9575
+ );
9576
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DataAvailabilityContext.Provider, { value, children });
9577
+ }
9578
+ function useDataAvailability() {
9579
+ const ctx = (0, import_react6.useContext)(DataAvailabilityContext);
9580
+ if (!ctx) {
9581
+ throw new Error(
9582
+ "useDataAvailability must be used within a DataAvailabilityProvider"
9583
+ );
9584
+ }
9585
+ return ctx;
9586
+ }
9587
+
9588
+ // src/RedactoPrivacyCenter/components/ConsentManager.tsx
9589
+ var import_react9 = require("react");
9590
+ var import_react_native6 = require("react-native");
9591
+ var import_react_i18next3 = require("react-i18next");
9592
+ var import_react_native_svg5 = __toESM(require("react-native-svg"));
9593
+
9440
9594
  // src/RedactoPrivacyCenter/lib/consentManagerUtils.ts
9441
9595
  function purposeItemToUserConsent(purpose, group) {
9442
9596
  var _a, _b, _c, _d;
@@ -9523,10 +9677,10 @@ var ConsentStatusEnum = /* @__PURE__ */ ((ConsentStatusEnum2) => {
9523
9677
  })(ConsentStatusEnum || {});
9524
9678
 
9525
9679
  // src/RedactoPrivacyCenter/ui/PCSelect.tsx
9526
- var import_react6 = require("react");
9680
+ var import_react7 = require("react");
9527
9681
  var import_react_native = require("react-native");
9528
9682
  var import_react_native_svg = __toESM(require("react-native-svg"));
9529
- var import_jsx_runtime5 = require("react/jsx-runtime");
9683
+ var import_jsx_runtime6 = require("react/jsx-runtime");
9530
9684
  var PCSelect = ({
9531
9685
  label,
9532
9686
  value,
@@ -9536,16 +9690,16 @@ var PCSelect = ({
9536
9690
  compact = false,
9537
9691
  style
9538
9692
  }) => {
9539
- const [open, setOpen] = (0, import_react6.useState)(false);
9693
+ const [open, setOpen] = (0, import_react7.useState)(false);
9540
9694
  const selected = options.find((o) => o.value === value);
9541
9695
  const { colors } = useTheme();
9542
9696
  const handleSelect = (val) => {
9543
9697
  onChange(val);
9544
9698
  setOpen(false);
9545
9699
  };
9546
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_native.View, { style: [compact ? styles.containerCompact : styles.container, style], children: [
9547
- label ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native.Text, { style: styles.label, children: label }) : null,
9548
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
9700
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_native.View, { style: [compact ? styles.containerCompact : styles.container, style], children: [
9701
+ label ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native.Text, { style: styles.label, children: label }) : null,
9702
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
9549
9703
  import_react_native.TouchableOpacity,
9550
9704
  {
9551
9705
  style: [compact ? styles.triggerCompact : styles.trigger, { borderColor: colors.border, backgroundColor: colors.surface }],
@@ -9553,7 +9707,7 @@ var PCSelect = ({
9553
9707
  activeOpacity: 0.7,
9554
9708
  accessibilityRole: "button",
9555
9709
  children: [
9556
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
9710
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9557
9711
  import_react_native.Text,
9558
9712
  {
9559
9713
  style: [
@@ -9565,7 +9719,7 @@ var PCSelect = ({
9565
9719
  children: selected ? compact ? selected.value === "en" ? "EN" : selected.label.split("(")[0].trim().substring(0, 6) : selected.label : placeholder
9566
9720
  }
9567
9721
  ),
9568
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native_svg.default, { width: compact ? 10 : 16, height: compact ? 10 : 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
9722
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native_svg.default, { width: compact ? 10 : 16, height: compact ? 10 : 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9569
9723
  import_react_native_svg.Path,
9570
9724
  {
9571
9725
  d: "M6 9l6 6 6-6",
@@ -9578,17 +9732,17 @@ var PCSelect = ({
9578
9732
  ]
9579
9733
  }
9580
9734
  ),
9581
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
9735
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9582
9736
  import_react_native.Modal,
9583
9737
  {
9584
9738
  visible: open,
9585
9739
  transparent: true,
9586
9740
  animationType: "fade",
9587
9741
  onRequestClose: () => setOpen(false),
9588
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native.Pressable, { style: styles.overlay, onPress: () => setOpen(false), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_native.View, { style: styles.dropdown, children: [
9589
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_native.View, { style: styles.dropdownHeader, children: [
9590
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native.Text, { style: styles.dropdownTitle, children: label || "Select" }),
9591
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native.TouchableOpacity, { onPress: () => setOpen(false), hitSlop: 8, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native_svg.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
9742
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native.Pressable, { style: styles.overlay, onPress: () => setOpen(false), children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_native.View, { style: styles.dropdown, children: [
9743
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_native.View, { style: styles.dropdownHeader, children: [
9744
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native.Text, { style: styles.dropdownTitle, children: label || "Select" }),
9745
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native.TouchableOpacity, { onPress: () => setOpen(false), hitSlop: 8, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native_svg.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9592
9746
  import_react_native_svg.Path,
9593
9747
  {
9594
9748
  d: "M18 6L6 18M6 6l12 12",
@@ -9599,16 +9753,16 @@ var PCSelect = ({
9599
9753
  }
9600
9754
  ) }) })
9601
9755
  ] }),
9602
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native.ScrollView, { style: styles.optionsList, bounces: false, children: options.map((opt) => {
9756
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native.ScrollView, { style: styles.optionsList, bounces: false, children: options.map((opt) => {
9603
9757
  const isSelected = opt.value === value;
9604
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
9758
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
9605
9759
  import_react_native.TouchableOpacity,
9606
9760
  {
9607
9761
  style: [styles.option, isSelected && styles.optionSelected],
9608
9762
  onPress: () => handleSelect(opt.value),
9609
9763
  activeOpacity: 0.6,
9610
9764
  children: [
9611
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
9765
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9612
9766
  import_react_native.Text,
9613
9767
  {
9614
9768
  style: [
@@ -9618,7 +9772,7 @@ var PCSelect = ({
9618
9772
  children: opt.label
9619
9773
  }
9620
9774
  ),
9621
- isSelected && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native_svg.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
9775
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native_svg.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9622
9776
  import_react_native_svg.Path,
9623
9777
  {
9624
9778
  d: "M5 13l4 4L19 7",
@@ -9743,14 +9897,14 @@ var styles = import_react_native.StyleSheet.create({
9743
9897
  });
9744
9898
 
9745
9899
  // src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx
9746
- var import_react7 = require("react");
9900
+ var import_react8 = require("react");
9747
9901
  var import_react_native5 = require("react-native");
9748
9902
  var import_react_native_svg4 = __toESM(require("react-native-svg"));
9749
9903
  var import_react_i18next2 = require("react-i18next");
9750
9904
 
9751
9905
  // src/RedactoPrivacyCenter/ui/PCButton.tsx
9752
9906
  var import_react_native2 = require("react-native");
9753
- var import_jsx_runtime6 = require("react/jsx-runtime");
9907
+ var import_jsx_runtime7 = require("react/jsx-runtime");
9754
9908
  var PCButton = ({
9755
9909
  onPress,
9756
9910
  title,
@@ -9761,7 +9915,7 @@ var PCButton = ({
9761
9915
  textStyle
9762
9916
  }) => {
9763
9917
  const isDisabled = disabled || loading;
9764
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9918
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
9765
9919
  import_react_native2.TouchableOpacity,
9766
9920
  {
9767
9921
  onPress,
@@ -9777,13 +9931,13 @@ var PCButton = ({
9777
9931
  ],
9778
9932
  accessibilityRole: "button",
9779
9933
  accessibilityState: { disabled: isDisabled },
9780
- children: loading ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9934
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
9781
9935
  import_react_native2.ActivityIndicator,
9782
9936
  {
9783
9937
  size: "small",
9784
9938
  color: variant === "primary" ? "#ffffff" : "#4f87ff"
9785
9939
  }
9786
- ) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
9940
+ ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
9787
9941
  import_react_native2.Text,
9788
9942
  {
9789
9943
  style: [
@@ -9856,14 +10010,14 @@ var styles2 = import_react_native2.StyleSheet.create({
9856
10010
  // src/RedactoPrivacyCenter/ui/PCCheckbox.tsx
9857
10011
  var import_react_native3 = require("react-native");
9858
10012
  var import_react_native_svg2 = __toESM(require("react-native-svg"));
9859
- var import_jsx_runtime7 = require("react/jsx-runtime");
10013
+ var import_jsx_runtime8 = require("react/jsx-runtime");
9860
10014
  var PCCheckbox = ({
9861
10015
  checked,
9862
10016
  onChange,
9863
10017
  label,
9864
10018
  disabled = false
9865
10019
  }) => {
9866
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
10020
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
9867
10021
  import_react_native3.TouchableOpacity,
9868
10022
  {
9869
10023
  style: styles3.container,
@@ -9873,7 +10027,7 @@ var PCCheckbox = ({
9873
10027
  accessibilityRole: "checkbox",
9874
10028
  accessibilityState: { checked, disabled },
9875
10029
  children: [
9876
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
10030
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
9877
10031
  import_react_native3.View,
9878
10032
  {
9879
10033
  style: [
@@ -9881,7 +10035,7 @@ var PCCheckbox = ({
9881
10035
  checked ? styles3.boxChecked : styles3.boxUnchecked,
9882
10036
  disabled && styles3.disabled
9883
10037
  ],
9884
- children: checked && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native_svg2.default, { width: 12, height: 12, viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
10038
+ children: checked && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native_svg2.default, { width: 12, height: 12, viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
9885
10039
  import_react_native_svg2.Path,
9886
10040
  {
9887
10041
  d: "M2.5 5L4.2 6.7L7.5 3.3",
@@ -9893,7 +10047,7 @@ var PCCheckbox = ({
9893
10047
  ) })
9894
10048
  }
9895
10049
  ),
9896
- label ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native3.Text, { style: [styles3.label, disabled && styles3.disabled], children: label }) : null
10050
+ label ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native3.Text, { style: [styles3.label, disabled && styles3.disabled], children: label }) : null
9897
10051
  ]
9898
10052
  }
9899
10053
  );
@@ -9933,7 +10087,7 @@ var styles3 = import_react_native3.StyleSheet.create({
9933
10087
  // src/RedactoPrivacyCenter/ui/PCModal.tsx
9934
10088
  var import_react_native4 = require("react-native");
9935
10089
  var import_react_native_svg3 = __toESM(require("react-native-svg"));
9936
- var import_jsx_runtime8 = require("react/jsx-runtime");
10090
+ var import_jsx_runtime9 = require("react/jsx-runtime");
9937
10091
  var widthForSize = {
9938
10092
  sm: "80%",
9939
10093
  md: "90%",
@@ -9946,35 +10100,35 @@ var PCModal = ({
9946
10100
  children,
9947
10101
  size = "md"
9948
10102
  }) => {
9949
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
10103
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
9950
10104
  import_react_native4.Modal,
9951
10105
  {
9952
10106
  visible,
9953
10107
  transparent: true,
9954
10108
  animationType: "fade",
9955
10109
  onRequestClose: onClose,
9956
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native4.Pressable, { style: styles4.overlay, onPress: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
10110
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native4.Pressable, { style: styles4.overlay, onPress: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
9957
10111
  import_react_native4.KeyboardAvoidingView,
9958
10112
  {
9959
10113
  behavior: import_react_native4.Platform.OS === "ios" ? "padding" : "height",
9960
10114
  style: styles4.keyboardView,
9961
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
10115
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
9962
10116
  import_react_native4.Pressable,
9963
10117
  {
9964
10118
  style: [styles4.card, { width: widthForSize[size] }],
9965
10119
  onPress: () => {
9966
10120
  },
9967
10121
  children: [
9968
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_react_native4.View, { style: styles4.header, children: [
9969
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native4.Text, { style: styles4.title, numberOfLines: 1, children: title != null ? title : "" }),
9970
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
10122
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_native4.View, { style: styles4.header, children: [
10123
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native4.Text, { style: styles4.title, numberOfLines: 1, children: title != null ? title : "" }),
10124
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
9971
10125
  import_react_native4.TouchableOpacity,
9972
10126
  {
9973
10127
  onPress: onClose,
9974
10128
  hitSlop: 8,
9975
10129
  accessibilityLabel: "Close",
9976
10130
  accessibilityRole: "button",
9977
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native_svg3.default, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
10131
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native_svg3.default, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
9978
10132
  import_react_native_svg3.Path,
9979
10133
  {
9980
10134
  d: "M18 6L6 18M6 6l12 12",
@@ -9987,7 +10141,7 @@ var PCModal = ({
9987
10141
  }
9988
10142
  )
9989
10143
  ] }),
9990
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
10144
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
9991
10145
  import_react_native4.ScrollView,
9992
10146
  {
9993
10147
  style: styles4.body,
@@ -10063,7 +10217,7 @@ var styles4 = import_react_native4.StyleSheet.create({
10063
10217
  });
10064
10218
 
10065
10219
  // src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx
10066
- var import_jsx_runtime9 = require("react/jsx-runtime");
10220
+ var import_jsx_runtime10 = require("react/jsx-runtime");
10067
10221
  var ModifyConsentModal = ({
10068
10222
  visible,
10069
10223
  onClose,
@@ -10073,12 +10227,12 @@ var ModifyConsentModal = ({
10073
10227
  }) => {
10074
10228
  const { t } = (0, import_react_i18next2.useTranslation)();
10075
10229
  const { colors } = useTheme();
10076
- const [isAccordionOpen, setIsAccordionOpen] = (0, import_react7.useState)(false);
10077
- const [selectedDataElementUuids, setSelectedDataElementUuids] = (0, import_react7.useState)([]);
10078
- const chevronAnim = (0, import_react7.useState)(new import_react_native5.Animated.Value(0))[0];
10230
+ const [isAccordionOpen, setIsAccordionOpen] = (0, import_react8.useState)(false);
10231
+ const [selectedDataElementUuids, setSelectedDataElementUuids] = (0, import_react8.useState)([]);
10232
+ const chevronAnim = (0, import_react8.useState)(new import_react_native5.Animated.Value(0))[0];
10079
10233
  const nominatorInfo = selectedRecord == null ? void 0 : selectedRecord.nominator_info;
10080
10234
  const nominatorLabel = (nominatorInfo == null ? void 0 : nominatorInfo.name) || (nominatorInfo == null ? void 0 : nominatorInfo.email) || (nominatorInfo == null ? void 0 : nominatorInfo.org_user_id) || null;
10081
- const actionConfig = (0, import_react7.useMemo)(() => {
10235
+ const actionConfig = (0, import_react8.useMemo)(() => {
10082
10236
  if (!selectedRecord) return null;
10083
10237
  const status = selectedRecord.status;
10084
10238
  if (status === "ACTIVE" /* ACTIVE */) {
@@ -10111,27 +10265,27 @@ var ModifyConsentModal = ({
10111
10265
  return null;
10112
10266
  }, [selectedRecord, t, nominatorLabel, colors.error, colors.primary]);
10113
10267
  const isRegrantAction = (actionConfig == null ? void 0 : actionConfig.action) === "regrant";
10114
- const regrantEligibleDataElements = (0, import_react7.useMemo)(
10268
+ const regrantEligibleDataElements = (0, import_react8.useMemo)(
10115
10269
  () => ((selectedRecord == null ? void 0 : selectedRecord.data_elements) || []).filter(
10116
10270
  (el) => Boolean(el == null ? void 0 : el.uuid) && el.enabled
10117
10271
  ),
10118
10272
  [selectedRecord]
10119
10273
  );
10120
- const requiredDataElementUuidSet = (0, import_react7.useMemo)(
10274
+ const requiredDataElementUuidSet = (0, import_react8.useMemo)(
10121
10275
  () => new Set(regrantEligibleDataElements.filter((el) => el.required).map((el) => el.uuid)),
10122
10276
  [regrantEligibleDataElements]
10123
10277
  );
10124
- (0, import_react7.useEffect)(() => {
10278
+ (0, import_react8.useEffect)(() => {
10125
10279
  setIsAccordionOpen(Boolean(isRegrantAction));
10126
10280
  }, [isRegrantAction, selectedRecord]);
10127
- (0, import_react7.useEffect)(() => {
10281
+ (0, import_react8.useEffect)(() => {
10128
10282
  import_react_native5.Animated.timing(chevronAnim, {
10129
10283
  toValue: isAccordionOpen ? 1 : 0,
10130
10284
  duration: 200,
10131
10285
  useNativeDriver: true
10132
10286
  }).start();
10133
10287
  }, [isAccordionOpen, chevronAnim]);
10134
- (0, import_react7.useEffect)(() => {
10288
+ (0, import_react8.useEffect)(() => {
10135
10289
  if (isRegrantAction) {
10136
10290
  setSelectedDataElementUuids(regrantEligibleDataElements.map((el) => el.uuid));
10137
10291
  } else {
@@ -10162,11 +10316,11 @@ var ModifyConsentModal = ({
10162
10316
  });
10163
10317
  const showSelectedFallback = !isRegrantAction && Array.isArray(selectedRecord == null ? void 0 : selectedRecord.data_elements) && ((selectedRecord == null ? void 0 : selectedRecord.data_elements) || []).filter((el) => el.selected).length > 0;
10164
10318
  const isConfirmDisabled = !(selectedRecord == null ? void 0 : selectedRecord.purpose_uuid) || isRegrantAction && selectedDataElementUuids.length === 0 || isLoading;
10165
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PCModal, { visible, onClose, title: t("modifyConsent"), size: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_native5.View, { children: [
10166
- selectedRecord && !actionConfig ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.noActions, { color: colors.textSecondary }], children: t("noActionsAvailable") }) : null,
10167
- selectedRecord && actionConfig ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
10168
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.description, { color: colors.textSecondary }], children: actionConfig.description }),
10169
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
10319
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PCModal, { visible, onClose, title: t("modifyConsent"), size: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native5.View, { children: [
10320
+ selectedRecord && !actionConfig ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.noActions, { color: colors.textSecondary }], children: t("noActionsAvailable") }) : null,
10321
+ selectedRecord && actionConfig ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
10322
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.description, { color: colors.textSecondary }], children: actionConfig.description }),
10323
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
10170
10324
  import_react_native5.View,
10171
10325
  {
10172
10326
  style: [
@@ -10174,16 +10328,16 @@ var ModifyConsentModal = ({
10174
10328
  { backgroundColor: colors.surface, borderColor: colors.border }
10175
10329
  ],
10176
10330
  children: [
10177
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
10331
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
10178
10332
  import_react_native5.TouchableOpacity,
10179
10333
  {
10180
10334
  style: styles5.accordionHeader,
10181
10335
  onPress: () => setIsAccordionOpen((v) => !v),
10182
10336
  activeOpacity: 0.7,
10183
10337
  children: [
10184
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_native5.View, { style: styles5.accordionHeaderText, children: [
10185
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.purposeName, { color: colors.text }], children: selectedRecord.purpose }),
10186
- selectedRecord.purpose_description ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10338
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native5.View, { style: styles5.accordionHeaderText, children: [
10339
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.purposeName, { color: colors.text }], children: selectedRecord.purpose }),
10340
+ selectedRecord.purpose_description ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10187
10341
  import_react_native5.Text,
10188
10342
  {
10189
10343
  style: [styles5.purposeDescription, { color: colors.textSecondary }],
@@ -10191,7 +10345,7 @@ var ModifyConsentModal = ({
10191
10345
  }
10192
10346
  ) : null
10193
10347
  ] }),
10194
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Animated.View, { style: { transform: [{ rotate: chevronRotation }] }, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native_svg4.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10348
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Animated.View, { style: { transform: [{ rotate: chevronRotation }] }, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg4.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10195
10349
  import_react_native_svg4.Path,
10196
10350
  {
10197
10351
  d: "M6 9l6 6 6-6",
@@ -10204,7 +10358,7 @@ var ModifyConsentModal = ({
10204
10358
  ]
10205
10359
  }
10206
10360
  ),
10207
- isAccordionOpen ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10361
+ isAccordionOpen ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10208
10362
  import_react_native5.View,
10209
10363
  {
10210
10364
  style: [
@@ -10214,13 +10368,13 @@ var ModifyConsentModal = ({
10214
10368
  borderTopWidth: import_react_native5.StyleSheet.hairlineWidth
10215
10369
  }
10216
10370
  ],
10217
- children: isRegrantAction && regrantEligibleDataElements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_native5.View, { children: [
10218
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.helperText, { color: colors.textSecondary }], children: t("selectDataElementsForRegrant") }),
10219
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.View, { style: styles5.checkboxList, children: regrantEligibleDataElements.map((element) => {
10371
+ children: isRegrantAction && regrantEligibleDataElements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native5.View, { children: [
10372
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.helperText, { color: colors.textSecondary }], children: t("selectDataElementsForRegrant") }),
10373
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.View, { style: styles5.checkboxList, children: regrantEligibleDataElements.map((element) => {
10220
10374
  const isRequired = requiredDataElementUuidSet.has(element.uuid);
10221
10375
  const isChecked = isRequired || selectedDataElementUuids.includes(element.uuid);
10222
10376
  const labelText = isRequired ? `${element.name} (${t("mandatory")})` : element.name;
10223
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.View, { style: styles5.checkboxRow, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10377
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.View, { style: styles5.checkboxRow, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10224
10378
  PCCheckbox,
10225
10379
  {
10226
10380
  checked: isChecked,
@@ -10230,7 +10384,7 @@ var ModifyConsentModal = ({
10230
10384
  }
10231
10385
  ) }, element.uuid);
10232
10386
  }) })
10233
- ] }) : showSelectedFallback ? (selectedRecord.data_elements || []).filter((el) => el.selected).map((el, idx, arr) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
10387
+ ] }) : showSelectedFallback ? (selectedRecord.data_elements || []).filter((el) => el.selected).map((el, idx, arr) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
10234
10388
  import_react_native5.View,
10235
10389
  {
10236
10390
  style: [
@@ -10238,18 +10392,18 @@ var ModifyConsentModal = ({
10238
10392
  idx < arr.length - 1 && styles5.bulletRowSpacing
10239
10393
  ],
10240
10394
  children: [
10241
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.View, { style: [styles5.bulletDot, { backgroundColor: colors.primary }] }),
10242
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.bulletText, { color: colors.text }], children: el.name })
10395
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.View, { style: [styles5.bulletDot, { backgroundColor: colors.primary }] }),
10396
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.bulletText, { color: colors.text }], children: el.name })
10243
10397
  ]
10244
10398
  },
10245
10399
  el.uuid || idx
10246
- )) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.helperText, { color: colors.textSecondary }], children: t("noDataElementsAvailable") })
10400
+ )) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.helperText, { color: colors.textSecondary }], children: t("noDataElementsAvailable") })
10247
10401
  }
10248
10402
  ) : null
10249
10403
  ]
10250
10404
  }
10251
10405
  ),
10252
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
10406
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
10253
10407
  import_react_native5.View,
10254
10408
  {
10255
10409
  style: [
@@ -10260,7 +10414,7 @@ var ModifyConsentModal = ({
10260
10414
  }
10261
10415
  ],
10262
10416
  children: [
10263
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native_svg4.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10417
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg4.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10264
10418
  import_react_native_svg4.Path,
10265
10419
  {
10266
10420
  d: "M12 9v4m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z",
@@ -10270,12 +10424,12 @@ var ModifyConsentModal = ({
10270
10424
  strokeLinejoin: "round"
10271
10425
  }
10272
10426
  ) }),
10273
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react_native5.Text, { style: [styles5.warningText, { color: colors.warning }], children: actionConfig.warningMessage })
10427
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native5.Text, { style: [styles5.warningText, { color: colors.warning }], children: actionConfig.warningMessage })
10274
10428
  ]
10275
10429
  }
10276
10430
  ),
10277
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_native5.View, { style: styles5.footer, children: [
10278
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10431
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native5.View, { style: styles5.footer, children: [
10432
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10279
10433
  PCButton,
10280
10434
  {
10281
10435
  title: t("cancel"),
@@ -10284,7 +10438,7 @@ var ModifyConsentModal = ({
10284
10438
  style: styles5.footerButton
10285
10439
  }
10286
10440
  ),
10287
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
10441
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10288
10442
  PCButton,
10289
10443
  {
10290
10444
  title: actionConfig.buttonLabel,
@@ -10394,7 +10548,7 @@ var styles5 = import_react_native5.StyleSheet.create({
10394
10548
  });
10395
10549
 
10396
10550
  // src/RedactoPrivacyCenter/components/ConsentManager.tsx
10397
- var import_jsx_runtime10 = require("react/jsx-runtime");
10551
+ var import_jsx_runtime11 = require("react/jsx-runtime");
10398
10552
  var SEARCH_DEBOUNCE_DELAY = 400;
10399
10553
  var DEFAULT_PAGE = 1;
10400
10554
  var DEFAULT_PAGE_SIZE = 10;
@@ -10430,7 +10584,7 @@ function StatusBadge({ status }) {
10430
10584
  const { t } = (0, import_react_i18next3.useTranslation)();
10431
10585
  const { colors } = useTheme();
10432
10586
  const { fg, bg } = getStatusColors(status, colors);
10433
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: [badgeStyles.container, { backgroundColor: bg }], children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [badgeStyles.text, { color: fg }], children: getStatusLabel(status, t) }) });
10587
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: [badgeStyles.container, { backgroundColor: bg }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [badgeStyles.text, { color: fg }], children: getStatusLabel(status, t) }) });
10434
10588
  }
10435
10589
  var badgeStyles = import_react_native6.StyleSheet.create({
10436
10590
  container: {
@@ -10446,7 +10600,7 @@ var badgeStyles = import_react_native6.StyleSheet.create({
10446
10600
  });
10447
10601
  function MethodIcon({ method, color }) {
10448
10602
  if (method === "MOBILE") {
10449
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg5.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10603
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native_svg5.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10450
10604
  import_react_native_svg5.Path,
10451
10605
  {
10452
10606
  d: "M5 4a2 2 0 012-2h10a2 2 0 012 2v16a2 2 0 01-2 2H7a2 2 0 01-2-2V4zM10 18h4",
@@ -10458,7 +10612,7 @@ function MethodIcon({ method, color }) {
10458
10612
  ) });
10459
10613
  }
10460
10614
  if (method === "WEB") {
10461
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg5.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
10615
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native_svg5.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10462
10616
  import_react_native_svg5.Path,
10463
10617
  {
10464
10618
  d: "M2 6a2 2 0 012-2h16a2 2 0 012 2v9a2 2 0 01-2 2H4a2 2 0 01-2-2V6zM7 21h10M12 17v4",
@@ -10474,14 +10628,14 @@ function MethodIcon({ method, color }) {
10474
10628
  function SkeletonCard({ pulse }) {
10475
10629
  const { colors } = useTheme();
10476
10630
  const opacity = pulse.interpolate({ inputRange: [0, 1], outputRange: [0.4, 0.8] });
10477
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: [skeletonStyles.card, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
10478
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineWide, { backgroundColor: colors.border, opacity }] }),
10479
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineMid, { backgroundColor: colors.border, opacity }] }),
10480
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: skeletonStyles.row, children: [
10481
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineSmall, { backgroundColor: colors.border, opacity }] }),
10482
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineSmall, { backgroundColor: colors.border, opacity }] })
10631
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: [skeletonStyles.card, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
10632
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineWide, { backgroundColor: colors.border, opacity }] }),
10633
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineMid, { backgroundColor: colors.border, opacity }] }),
10634
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: skeletonStyles.row, children: [
10635
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineSmall, { backgroundColor: colors.border, opacity }] }),
10636
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineSmall, { backgroundColor: colors.border, opacity }] })
10483
10637
  ] }),
10484
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineButton, { backgroundColor: colors.border, opacity }] })
10638
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Animated.View, { style: [skeletonStyles.line, skeletonStyles.lineButton, { backgroundColor: colors.border, opacity }] })
10485
10639
  ] });
10486
10640
  }
10487
10641
  var skeletonStyles = import_react_native6.StyleSheet.create({
@@ -10513,30 +10667,30 @@ function ConsentManager() {
10513
10667
  const { accessToken, refreshToken, email, organizationId, workspaceId, updateTokens, onError } = useAuth();
10514
10668
  const { consentClient } = useBaseUrl();
10515
10669
  const { langParam } = useCurrentLanguage();
10516
- const authContext = (0, import_react8.useMemo)(
10670
+ const authContext = (0, import_react9.useMemo)(
10517
10671
  () => ({ accessToken, refreshToken, onError, updateTokens }),
10518
10672
  [accessToken, refreshToken, onError, updateTokens]
10519
10673
  );
10520
10674
  const contact = email || "";
10521
- const [activeTab, setActiveTab] = (0, import_react8.useState)("direct");
10522
- const [consentDetail, setConsentDetail] = (0, import_react8.useState)(null);
10523
- const [consentData, setConsentData] = (0, import_react8.useState)([]);
10524
- const [totalCount, setTotalCount] = (0, import_react8.useState)(0);
10525
- const [productOptions, setProductOptions] = (0, import_react8.useState)([]);
10526
- const [searchQuery, setSearchQuery] = (0, import_react8.useState)("");
10527
- const [debouncedSearch, setDebouncedSearch] = (0, import_react8.useState)("");
10528
- const [statusFilter, setStatusFilter] = (0, import_react8.useState)(ALL_VALUE);
10529
- const [productFilter, setProductFilter] = (0, import_react8.useState)(ALL_VALUE);
10530
- const [currentPage, setCurrentPage] = (0, import_react8.useState)(DEFAULT_PAGE);
10531
- const [pageSize] = (0, import_react8.useState)(DEFAULT_PAGE_SIZE);
10532
- const [isLoading, setIsLoading] = (0, import_react8.useState)(true);
10533
- const [refreshing, setRefreshing] = (0, import_react8.useState)(false);
10534
- const [isModalOpen, setIsModalOpen] = (0, import_react8.useState)(false);
10535
- const [selectedRecord, setSelectedRecord] = (0, import_react8.useState)(null);
10536
- const [isManageLoading, setIsManageLoading] = (0, import_react8.useState)(false);
10537
- const [exportModalVisible, setExportModalVisible] = (0, import_react8.useState)(false);
10538
- const pulseAnim = (0, import_react8.useRef)(new import_react_native6.Animated.Value(0)).current;
10539
- (0, import_react8.useEffect)(() => {
10675
+ const [activeTab, setActiveTab] = (0, import_react9.useState)("direct");
10676
+ const [consentDetail, setConsentDetail] = (0, import_react9.useState)(null);
10677
+ const [consentData, setConsentData] = (0, import_react9.useState)([]);
10678
+ const [totalCount, setTotalCount] = (0, import_react9.useState)(0);
10679
+ const [productOptions, setProductOptions] = (0, import_react9.useState)([]);
10680
+ const [searchQuery, setSearchQuery] = (0, import_react9.useState)("");
10681
+ const [debouncedSearch, setDebouncedSearch] = (0, import_react9.useState)("");
10682
+ const [statusFilter, setStatusFilter] = (0, import_react9.useState)(ALL_VALUE);
10683
+ const [productFilter, setProductFilter] = (0, import_react9.useState)(ALL_VALUE);
10684
+ const [currentPage, setCurrentPage] = (0, import_react9.useState)(DEFAULT_PAGE);
10685
+ const [pageSize] = (0, import_react9.useState)(DEFAULT_PAGE_SIZE);
10686
+ const [isLoading, setIsLoading] = (0, import_react9.useState)(true);
10687
+ const [refreshing, setRefreshing] = (0, import_react9.useState)(false);
10688
+ const [isModalOpen, setIsModalOpen] = (0, import_react9.useState)(false);
10689
+ const [selectedRecord, setSelectedRecord] = (0, import_react9.useState)(null);
10690
+ const [isManageLoading, setIsManageLoading] = (0, import_react9.useState)(false);
10691
+ const [exportModalVisible, setExportModalVisible] = (0, import_react9.useState)(false);
10692
+ const pulseAnim = (0, import_react9.useRef)(new import_react_native6.Animated.Value(0)).current;
10693
+ (0, import_react9.useEffect)(() => {
10540
10694
  if (!isLoading) return;
10541
10695
  const loop = import_react_native6.Animated.loop(
10542
10696
  import_react_native6.Animated.sequence([
@@ -10547,11 +10701,11 @@ function ConsentManager() {
10547
10701
  loop.start();
10548
10702
  return () => loop.stop();
10549
10703
  }, [isLoading, pulseAnim]);
10550
- (0, import_react8.useEffect)(() => {
10704
+ (0, import_react9.useEffect)(() => {
10551
10705
  const timer = setTimeout(() => setDebouncedSearch(searchQuery), SEARCH_DEBOUNCE_DELAY);
10552
10706
  return () => clearTimeout(timer);
10553
10707
  }, [searchQuery]);
10554
- const flattenProductGroups = (0, import_react8.useCallback)(
10708
+ const flattenProductGroups = (0, import_react9.useCallback)(
10555
10709
  (groups) => {
10556
10710
  if (!groups || groups.length === 0) return [];
10557
10711
  return groups.flatMap(
@@ -10568,7 +10722,7 @@ function ConsentManager() {
10568
10722
  },
10569
10723
  []
10570
10724
  );
10571
- const filterConsentRows = (0, import_react8.useCallback)(
10725
+ const filterConsentRows = (0, import_react9.useCallback)(
10572
10726
  (rows, search, statusValue, productUuid) => {
10573
10727
  const normalizedSearch = search.trim().toLowerCase();
10574
10728
  return rows.filter((row) => {
@@ -10581,7 +10735,7 @@ function ConsentManager() {
10581
10735
  },
10582
10736
  []
10583
10737
  );
10584
- const buildProductOptions = (0, import_react8.useCallback)(
10738
+ const buildProductOptions = (0, import_react9.useCallback)(
10585
10739
  (groups) => {
10586
10740
  if (!groups || groups.length === 0) return [];
10587
10741
  const map = /* @__PURE__ */ new Map();
@@ -10594,7 +10748,7 @@ function ConsentManager() {
10594
10748
  },
10595
10749
  []
10596
10750
  );
10597
- const fetchData = (0, import_react8.useCallback)(async () => {
10751
+ const fetchData = (0, import_react9.useCallback)(async () => {
10598
10752
  var _a2, _b2;
10599
10753
  if (!organizationId || !workspaceId) return;
10600
10754
  try {
@@ -10663,24 +10817,24 @@ function ConsentManager() {
10663
10817
  filterConsentRows,
10664
10818
  buildProductOptions
10665
10819
  ]);
10666
- (0, import_react8.useEffect)(() => {
10820
+ (0, import_react9.useEffect)(() => {
10667
10821
  setIsLoading(true);
10668
10822
  fetchData().finally(() => setIsLoading(false));
10669
10823
  }, [fetchData]);
10670
- const handleRefresh = (0, import_react8.useCallback)(async () => {
10824
+ const handleRefresh = (0, import_react9.useCallback)(async () => {
10671
10825
  setRefreshing(true);
10672
10826
  await fetchData();
10673
10827
  setRefreshing(false);
10674
10828
  }, [fetchData]);
10675
- const handleOpenModal = (0, import_react8.useCallback)((record) => {
10829
+ const handleOpenModal = (0, import_react9.useCallback)((record) => {
10676
10830
  setSelectedRecord(record);
10677
10831
  setIsModalOpen(true);
10678
10832
  }, []);
10679
- const handleCloseModal = (0, import_react8.useCallback)(() => {
10833
+ const handleCloseModal = (0, import_react9.useCallback)(() => {
10680
10834
  setIsModalOpen(false);
10681
10835
  setSelectedRecord(null);
10682
10836
  }, []);
10683
- const handleManageConsent = (0, import_react8.useCallback)(
10837
+ const handleManageConsent = (0, import_react9.useCallback)(
10684
10838
  async (purposeId, action, nominatorContact, dataElementUuids) => {
10685
10839
  if (!organizationId || !workspaceId || !contact) return;
10686
10840
  const errorTitleByAction = {
@@ -10760,7 +10914,7 @@ function ConsentManager() {
10760
10914
  },
10761
10915
  [organizationId, workspaceId, contact, authContext, consentClient, fetchData, handleCloseModal, t]
10762
10916
  );
10763
- const handleExport = (0, import_react8.useCallback)(async () => {
10917
+ const handleExport = (0, import_react9.useCallback)(async () => {
10764
10918
  if (consentData.length === 0) {
10765
10919
  setExportModalVisible(false);
10766
10920
  return;
@@ -10792,7 +10946,7 @@ function ConsentManager() {
10792
10946
  console.error("Export failed:", e);
10793
10947
  }
10794
10948
  }, [consentData, t]);
10795
- const statusOptions = (0, import_react8.useMemo)(
10949
+ const statusOptions = (0, import_react9.useMemo)(
10796
10950
  () => [
10797
10951
  { value: ALL_VALUE, label: t("all") },
10798
10952
  { value: "ACTIVE" /* ACTIVE */, label: t("statusActive") },
@@ -10802,7 +10956,7 @@ function ConsentManager() {
10802
10956
  ],
10803
10957
  [t]
10804
10958
  );
10805
- const productSelectOptions = (0, import_react8.useMemo)(
10959
+ const productSelectOptions = (0, import_react9.useMemo)(
10806
10960
  () => [{ value: ALL_VALUE, label: t("all") }, ...productOptions],
10807
10961
  [productOptions, t]
10808
10962
  );
@@ -10833,24 +10987,24 @@ function ConsentManager() {
10833
10987
  }).filter(Boolean);
10834
10988
  const hasInfo = Boolean(statusLabel) || nominatorLabels.length > 0;
10835
10989
  if (!hasInfo) return null;
10836
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: [styles6.visibilityStrip, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
10837
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: { flex: 1 }, children: [
10838
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.visibilityTitle, { color: colors.text }], children: t("consentVisibility") }),
10839
- nominatorLabels.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.Text, { style: [styles6.visibilitySubtitle, { color: colors.textSecondary }], children: [
10990
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: [styles6.visibilityStrip, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
10991
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: { flex: 1 }, children: [
10992
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.visibilityTitle, { color: colors.text }], children: t("consentVisibility") }),
10993
+ nominatorLabels.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.Text, { style: [styles6.visibilitySubtitle, { color: colors.textSecondary }], children: [
10840
10994
  t("managingConsentsFor"),
10841
10995
  " ",
10842
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: { fontWeight: "600", color: colors.text }, children: nominatorLabels.join(", ") })
10996
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: { fontWeight: "600", color: colors.text }, children: nominatorLabels.join(", ") })
10843
10997
  ] }) : null
10844
10998
  ] }),
10845
- statusLabel ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: [styles6.statusPill, { backgroundColor: statusBg }], children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.statusPillText, { color: statusFg }], children: statusLabel }) }) : null
10999
+ statusLabel ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: [styles6.statusPill, { backgroundColor: statusBg }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.statusPillText, { color: statusFg }], children: statusLabel }) }) : null
10846
11000
  ] });
10847
11001
  };
10848
- const renderTabs = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: [styles6.tabsRow, { borderBottomColor: colors.border }], children: [
11002
+ const renderTabs = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: [styles6.tabsRow, { borderBottomColor: colors.border }], children: [
10849
11003
  { key: "direct", label: t("myConsents"), badge: directBadge },
10850
11004
  { key: "nominated", label: t("managing"), badge: nominatedBadge }
10851
11005
  ].map((tab) => {
10852
11006
  const isActive = activeTab === tab.key;
10853
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
11007
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
10854
11008
  import_react_native6.TouchableOpacity,
10855
11009
  {
10856
11010
  style: [
@@ -10863,7 +11017,7 @@ function ConsentManager() {
10863
11017
  },
10864
11018
  activeOpacity: 0.7,
10865
11019
  children: [
10866
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11020
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10867
11021
  import_react_native6.Text,
10868
11022
  {
10869
11023
  style: [
@@ -10873,7 +11027,7 @@ function ConsentManager() {
10873
11027
  children: tab.label
10874
11028
  }
10875
11029
  ),
10876
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: [styles6.tabBadge, { backgroundColor: colors.surface, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.tabBadgeText, { color: colors.textSecondary }], children: tab.badge }) })
11030
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: [styles6.tabBadge, { backgroundColor: colors.surface, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.tabBadgeText, { color: colors.textSecondary }], children: tab.badge }) })
10877
11031
  ]
10878
11032
  },
10879
11033
  tab.key
@@ -10884,39 +11038,39 @@ function ConsentManager() {
10884
11038
  const validTillText = consent.status === "DECLINED" /* DECLINED */ || consent.status === "WITHDRAW" /* WITHDRAWN */ ? "-" : consent.status === "ACTIVE" /* ACTIVE */ && !consent.valid_till ? t("untilWithdrawalNoExpiry") : formatDateTime(consent.valid_till);
10885
11039
  const givenDateText = formatDateTime(consent.given_date);
10886
11040
  const givenRelative = formatRelativeTime(consent.given_date);
10887
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
11041
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
10888
11042
  import_react_native6.View,
10889
11043
  {
10890
11044
  style: [styles6.card, { backgroundColor: colors.surface, borderColor: colors.border }],
10891
11045
  children: [
10892
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.cardTopRow, children: [
10893
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.purposeName, { color: colors.text }], numberOfLines: 2, children: consent.purpose }),
10894
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(StatusBadge, { status: consent.status })
11046
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.cardTopRow, children: [
11047
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.purposeName, { color: colors.text }], numberOfLines: 2, children: consent.purpose }),
11048
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(StatusBadge, { status: consent.status })
10895
11049
  ] }),
10896
- consent.purpose_description ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.purposeDesc, { color: colors.textSecondary }], numberOfLines: 2, children: consent.purpose_description }) : null,
10897
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.metaGrid, children: [
10898
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
10899
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("product") }),
10900
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], numberOfLines: 1, children: consent.product_name || "-" })
11050
+ consent.purpose_description ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.purposeDesc, { color: colors.textSecondary }], numberOfLines: 2, children: consent.purpose_description }) : null,
11051
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.metaGrid, children: [
11052
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
11053
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("product") }),
11054
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], numberOfLines: 1, children: consent.product_name || "-" })
10901
11055
  ] }),
10902
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
10903
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("method") }),
10904
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.methodRow, children: [
10905
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MethodIcon, { method: consent.method, color: colors.textSecondary }),
10906
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], children: consent.method || "-" })
11056
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
11057
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("method") }),
11058
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.methodRow, children: [
11059
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MethodIcon, { method: consent.method, color: colors.textSecondary }),
11060
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], children: consent.method || "-" })
10907
11061
  ] })
10908
11062
  ] }),
10909
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
10910
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("givenDate") }),
10911
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], children: givenDateText }),
10912
- givenRelative ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaSubvalue, { color: colors.textSecondary }], children: givenRelative }) : null
11063
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
11064
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("givenDate") }),
11065
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], children: givenDateText }),
11066
+ givenRelative ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaSubvalue, { color: colors.textSecondary }], children: givenRelative }) : null
10913
11067
  ] }),
10914
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
10915
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("validTill") }),
10916
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], children: validTillText })
11068
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.metaCell, children: [
11069
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaLabel, { color: colors.textSecondary }], children: t("validTill") }),
11070
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.metaValue, { color: colors.text }], children: validTillText })
10917
11071
  ] })
10918
11072
  ] }),
10919
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: [styles6.cardFooter, { borderTopColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11073
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: [styles6.cardFooter, { borderTopColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10920
11074
  import_react_native6.TouchableOpacity,
10921
11075
  {
10922
11076
  style: [
@@ -10929,7 +11083,7 @@ function ConsentManager() {
10929
11083
  onPress: () => handleOpenModal(consent),
10930
11084
  disabled: isDeclined,
10931
11085
  activeOpacity: 0.7,
10932
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11086
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10933
11087
  import_react_native6.Text,
10934
11088
  {
10935
11089
  style: [
@@ -10946,23 +11100,23 @@ function ConsentManager() {
10946
11100
  `${consent.purpose_uuid || "p"}-${consent.product_uuid || "pr"}-${index}`
10947
11101
  );
10948
11102
  };
10949
- const renderEmpty = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.emptyContainer, children: [
10950
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.emptyTitle, { color: colors.text }], children: t("noData") || "No Data" }),
10951
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.emptyText, { color: colors.textSecondary }], children: searchQuery || statusFilter !== ALL_VALUE || productFilter !== ALL_VALUE ? t("noResultsForSearch") || "No consents match your current filters" : t("noConsentsYet") || "No consents to display yet" })
11103
+ const renderEmpty = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.emptyContainer, children: [
11104
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.emptyTitle, { color: colors.text }], children: t("noData") || "No Data" }),
11105
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.emptyText, { color: colors.textSecondary }], children: searchQuery || statusFilter !== ALL_VALUE || productFilter !== ALL_VALUE ? t("noResultsForSearch") || "No consents match your current filters" : t("noConsentsYet") || "No consents to display yet" })
10952
11106
  ] });
10953
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: [styles6.container, { backgroundColor: colors.background }], children: [
10954
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
11107
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: [styles6.container, { backgroundColor: colors.background }], children: [
11108
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
10955
11109
  import_react_native6.ScrollView,
10956
11110
  {
10957
11111
  contentContainerStyle: styles6.scrollContent,
10958
11112
  keyboardShouldPersistTaps: "handled",
10959
- refreshControl: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.RefreshControl, { refreshing, onRefresh: handleRefresh, tintColor: colors.primary }),
11113
+ refreshControl: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.RefreshControl, { refreshing, onRefresh: handleRefresh, tintColor: colors.primary }),
10960
11114
  children: [
10961
11115
  renderUserRelationshipStrip(),
10962
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: [styles6.filtersCard, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
11116
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: [styles6.filtersCard, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
10963
11117
  renderTabs(),
10964
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: [styles6.searchContainer, { borderColor: colors.border, backgroundColor: colors.background }], children: [
10965
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg5.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11118
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: [styles6.searchContainer, { borderColor: colors.border, backgroundColor: colors.background }], children: [
11119
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native_svg5.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10966
11120
  import_react_native_svg5.Path,
10967
11121
  {
10968
11122
  d: "M11 19a8 8 0 100-16 8 8 0 000 16zM21 21l-4.35-4.35",
@@ -10972,7 +11126,7 @@ function ConsentManager() {
10972
11126
  strokeLinejoin: "round"
10973
11127
  }
10974
11128
  ) }),
10975
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11129
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10976
11130
  import_react_native6.TextInput,
10977
11131
  {
10978
11132
  style: [styles6.searchInput, { color: colors.text }],
@@ -10988,7 +11142,7 @@ function ConsentManager() {
10988
11142
  returnKeyType: "search"
10989
11143
  }
10990
11144
  ),
10991
- searchQuery.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11145
+ searchQuery.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
10992
11146
  import_react_native6.TouchableOpacity,
10993
11147
  {
10994
11148
  onPress: () => {
@@ -10996,7 +11150,7 @@ function ConsentManager() {
10996
11150
  setCurrentPage(DEFAULT_PAGE);
10997
11151
  },
10998
11152
  hitSlop: 8,
10999
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg5.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11153
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native_svg5.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11000
11154
  import_react_native_svg5.Path,
11001
11155
  {
11002
11156
  d: "M18 6L6 18M6 6l12 12",
@@ -11009,8 +11163,8 @@ function ConsentManager() {
11009
11163
  }
11010
11164
  ) : null
11011
11165
  ] }),
11012
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.filterRow, children: [
11013
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: styles6.filterCol, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11166
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.filterRow, children: [
11167
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: styles6.filterCol, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11014
11168
  PCSelect,
11015
11169
  {
11016
11170
  value: statusFilter,
@@ -11022,7 +11176,7 @@ function ConsentManager() {
11022
11176
  placeholder: t("status")
11023
11177
  }
11024
11178
  ) }),
11025
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: styles6.filterCol, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11179
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: styles6.filterCol, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11026
11180
  PCSelect,
11027
11181
  {
11028
11182
  value: productFilter,
@@ -11035,14 +11189,14 @@ function ConsentManager() {
11035
11189
  }
11036
11190
  ) })
11037
11191
  ] }),
11038
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
11192
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
11039
11193
  import_react_native6.TouchableOpacity,
11040
11194
  {
11041
11195
  style: [styles6.exportButton, { borderColor: colors.border, backgroundColor: colors.background }],
11042
11196
  onPress: () => setExportModalVisible(true),
11043
11197
  activeOpacity: 0.7,
11044
11198
  children: [
11045
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native_svg5.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11199
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native_svg5.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11046
11200
  import_react_native_svg5.Path,
11047
11201
  {
11048
11202
  d: "M12 4v12m0-12l-5 5m5-5l5 5M4 20h16",
@@ -11052,14 +11206,14 @@ function ConsentManager() {
11052
11206
  strokeLinejoin: "round"
11053
11207
  }
11054
11208
  ) }),
11055
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.exportButtonText, { color: colors.text }], children: t("export") })
11209
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.exportButtonText, { color: colors.text }], children: t("export") })
11056
11210
  ]
11057
11211
  }
11058
11212
  )
11059
11213
  ] }),
11060
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: styles6.list, children: Array.from({ length: SKELETON_ROW_COUNT }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SkeletonCard, { pulse: pulseAnim }, i)) }) : consentData.length === 0 ? renderEmpty() : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: styles6.list, children: consentData.map((c, idx) => renderConsentCard(c, idx)) }),
11061
- !isLoading && consentData.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.paginationRow, children: [
11062
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11214
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: styles6.list, children: Array.from({ length: SKELETON_ROW_COUNT }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SkeletonCard, { pulse: pulseAnim }, i)) }) : consentData.length === 0 ? renderEmpty() : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: styles6.list, children: consentData.map((c, idx) => renderConsentCard(c, idx)) }),
11215
+ !isLoading && consentData.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.paginationRow, children: [
11216
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11063
11217
  import_react_native6.TouchableOpacity,
11064
11218
  {
11065
11219
  style: [
@@ -11069,11 +11223,11 @@ function ConsentManager() {
11069
11223
  disabled: !canPrev,
11070
11224
  onPress: () => setCurrentPage((p) => Math.max(1, p - 1)),
11071
11225
  activeOpacity: 0.7,
11072
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.pageButtonText, { color: colors.text }], children: t("previous") || "Previous" })
11226
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.pageButtonText, { color: colors.text }], children: t("previous") || "Previous" })
11073
11227
  }
11074
11228
  ),
11075
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.pageInfo, { color: colors.textSecondary }], children: `${currentPage} / ${totalPages}` }),
11076
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11229
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.pageInfo, { color: colors.textSecondary }], children: `${currentPage} / ${totalPages}` }),
11230
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11077
11231
  import_react_native6.TouchableOpacity,
11078
11232
  {
11079
11233
  style: [
@@ -11083,14 +11237,14 @@ function ConsentManager() {
11083
11237
  disabled: !canNext,
11084
11238
  onPress: () => setCurrentPage((p) => Math.min(totalPages, p + 1)),
11085
11239
  activeOpacity: 0.7,
11086
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.pageButtonText, { color: colors.text }], children: t("next") || "Next" })
11240
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.pageButtonText, { color: colors.text }], children: t("next") || "Next" })
11087
11241
  }
11088
11242
  )
11089
11243
  ] }) : null
11090
11244
  ]
11091
11245
  }
11092
11246
  ),
11093
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11247
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11094
11248
  ModifyConsentModal,
11095
11249
  {
11096
11250
  visible: isModalOpen,
@@ -11100,27 +11254,27 @@ function ConsentManager() {
11100
11254
  onManageConsent: handleManageConsent
11101
11255
  }
11102
11256
  ),
11103
- exportModalVisible ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.View, { style: styles6.exportModalOverlay, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: [styles6.exportModalCard, { backgroundColor: colors.surface }], children: [
11104
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.exportModalTitle, { color: colors.text }], children: t("exportConsentData") }),
11105
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.exportModalSubtitle, { color: colors.textSecondary }], children: t("exportConsentDataSubtitle") }),
11106
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.exportModalBody, { color: colors.textSecondary }], children: t("exportingIncludesFilters") }),
11107
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native6.View, { style: styles6.exportModalActions, children: [
11108
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11257
+ exportModalVisible ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.View, { style: styles6.exportModalOverlay, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: [styles6.exportModalCard, { backgroundColor: colors.surface }], children: [
11258
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.exportModalTitle, { color: colors.text }], children: t("exportConsentData") }),
11259
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.exportModalSubtitle, { color: colors.textSecondary }], children: t("exportConsentDataSubtitle") }),
11260
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.exportModalBody, { color: colors.textSecondary }], children: t("exportingIncludesFilters") }),
11261
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native6.View, { style: styles6.exportModalActions, children: [
11262
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11109
11263
  import_react_native6.TouchableOpacity,
11110
11264
  {
11111
11265
  style: [styles6.exportCancelButton, { borderColor: colors.border }],
11112
11266
  onPress: () => setExportModalVisible(false),
11113
11267
  activeOpacity: 0.7,
11114
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: [styles6.exportCancelText, { color: colors.text }], children: t("cancel") })
11268
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: [styles6.exportCancelText, { color: colors.text }], children: t("cancel") })
11115
11269
  }
11116
11270
  ),
11117
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
11271
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11118
11272
  import_react_native6.TouchableOpacity,
11119
11273
  {
11120
11274
  style: [styles6.exportConfirmButton, { backgroundColor: colors.primary }],
11121
11275
  onPress: handleExport,
11122
11276
  activeOpacity: 0.7,
11123
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native6.Text, { style: styles6.exportConfirmText, children: t("export") })
11277
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native6.Text, { style: styles6.exportConfirmText, children: t("export") })
11124
11278
  }
11125
11279
  )
11126
11280
  ] })
@@ -11407,10 +11561,10 @@ var styles6 = import_react_native6.StyleSheet.create({
11407
11561
  });
11408
11562
 
11409
11563
  // src/RedactoPrivacyCenter/components/ActivitiesList.tsx
11410
- var import_react9 = require("react");
11564
+ var import_react10 = require("react");
11411
11565
  var import_react_native7 = require("react-native");
11412
11566
  var import_react_i18next4 = require("react-i18next");
11413
- var import_jsx_runtime11 = require("react/jsx-runtime");
11567
+ var import_jsx_runtime12 = require("react/jsx-runtime");
11414
11568
  var PAGE_SIZE = 15;
11415
11569
  var ACTIVITY_TYPE_COLORS = {
11416
11570
  consent_given: { bg: "rgba(16, 185, 129, 0.1)", text: "#10B981" },
@@ -11448,19 +11602,19 @@ function ActivitiesList() {
11448
11602
  const { accessToken, refreshToken, organizationId, workspaceId, updateTokens, onError } = useAuth();
11449
11603
  const { consentClient } = useBaseUrl();
11450
11604
  const { colors } = useTheme();
11451
- const authContext = (0, import_react9.useMemo)(() => ({
11605
+ const authContext = (0, import_react10.useMemo)(() => ({
11452
11606
  accessToken,
11453
11607
  refreshToken,
11454
11608
  onError,
11455
11609
  updateTokens
11456
11610
  }), [accessToken, refreshToken, onError, updateTokens]);
11457
- const [activities, setActivities] = (0, import_react9.useState)([]);
11458
- const [totalCount, setTotalCount] = (0, import_react9.useState)(0);
11459
- const [isLoading, setIsLoading] = (0, import_react9.useState)(true);
11460
- const [refreshing, setRefreshing] = (0, import_react9.useState)(false);
11461
- const [loadingMore, setLoadingMore] = (0, import_react9.useState)(false);
11462
- const [offset, setOffset] = (0, import_react9.useState)(0);
11463
- const fetchData = (0, import_react9.useCallback)(
11611
+ const [activities, setActivities] = (0, import_react10.useState)([]);
11612
+ const [totalCount, setTotalCount] = (0, import_react10.useState)(0);
11613
+ const [isLoading, setIsLoading] = (0, import_react10.useState)(true);
11614
+ const [refreshing, setRefreshing] = (0, import_react10.useState)(false);
11615
+ const [loadingMore, setLoadingMore] = (0, import_react10.useState)(false);
11616
+ const [offset, setOffset] = (0, import_react10.useState)(0);
11617
+ const fetchData = (0, import_react10.useCallback)(
11464
11618
  async (newOffset = 0, append = false) => {
11465
11619
  var _a, _b, _c;
11466
11620
  if (!organizationId || !workspaceId) return;
@@ -11494,59 +11648,59 @@ function ActivitiesList() {
11494
11648
  },
11495
11649
  [organizationId, workspaceId, authContext, consentClient]
11496
11650
  );
11497
- (0, import_react9.useEffect)(() => {
11651
+ (0, import_react10.useEffect)(() => {
11498
11652
  setIsLoading(true);
11499
11653
  fetchData(0).finally(() => setIsLoading(false));
11500
11654
  }, [fetchData]);
11501
- const handleRefresh = (0, import_react9.useCallback)(async () => {
11655
+ const handleRefresh = (0, import_react10.useCallback)(async () => {
11502
11656
  setRefreshing(true);
11503
11657
  await fetchData(0);
11504
11658
  setRefreshing(false);
11505
11659
  }, [fetchData]);
11506
- const handleLoadMore = (0, import_react9.useCallback)(async () => {
11660
+ const handleLoadMore = (0, import_react10.useCallback)(async () => {
11507
11661
  if (loadingMore || activities.length >= totalCount) return;
11508
11662
  setLoadingMore(true);
11509
11663
  const nextOffset = offset + PAGE_SIZE;
11510
11664
  await fetchData(nextOffset, true);
11511
11665
  setLoadingMore(false);
11512
11666
  }, [loadingMore, activities.length, totalCount, offset, fetchData]);
11513
- const renderItem = (0, import_react9.useCallback)(
11667
+ const renderItem = (0, import_react10.useCallback)(
11514
11668
  ({ item }) => {
11515
11669
  const typeColor = getActivityTypeColor(item.activity_type);
11516
11670
  const displayTitle = item.title_display || item.title || "";
11517
11671
  const displayDescription = item.description_display || item.description || "";
11518
11672
  const displayType = item.activity_type_display || item.activity_type || "";
11519
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native7.View, { style: [styles7.card, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
11520
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native7.View, { style: styles7.cardTopRow, children: [
11521
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.View, { style: [styles7.typeBadge, { backgroundColor: typeColor.bg }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.Text, { style: [styles7.typeBadgeText, { color: typeColor.text }], children: displayType }) }),
11522
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.Text, { style: [styles7.timestamp, { color: colors.textSecondary }], children: formatTimestamp(item.timestamp) })
11673
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native7.View, { style: [styles7.card, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
11674
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native7.View, { style: styles7.cardTopRow, children: [
11675
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.View, { style: [styles7.typeBadge, { backgroundColor: typeColor.bg }], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.Text, { style: [styles7.typeBadgeText, { color: typeColor.text }], children: displayType }) }),
11676
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.Text, { style: [styles7.timestamp, { color: colors.textSecondary }], children: formatTimestamp(item.timestamp) })
11523
11677
  ] }),
11524
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.Text, { style: [styles7.title, { color: colors.text }], numberOfLines: 2, children: displayTitle }),
11525
- displayDescription ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.Text, { style: [styles7.description, { color: colors.textSecondary }], numberOfLines: 3, children: truncate(displayDescription) }) : null,
11526
- item.case_id || item.status ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native7.View, { style: styles7.metaRow, children: [
11527
- item.case_id ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native7.Text, { style: [styles7.caseId, { color: colors.textSecondary }], children: [
11678
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.Text, { style: [styles7.title, { color: colors.text }], numberOfLines: 2, children: displayTitle }),
11679
+ displayDescription ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.Text, { style: [styles7.description, { color: colors.textSecondary }], numberOfLines: 3, children: truncate(displayDescription) }) : null,
11680
+ item.case_id || item.status ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native7.View, { style: styles7.metaRow, children: [
11681
+ item.case_id ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native7.Text, { style: [styles7.caseId, { color: colors.textSecondary }], children: [
11528
11682
  t("caseID") || "Case ID",
11529
11683
  ": ",
11530
11684
  item.case_id
11531
11685
  ] }) : null,
11532
- item.status_display || item.status ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.Text, { style: [styles7.statusText, { color: colors.textSecondary }], children: item.status_display || item.status }) : null
11686
+ item.status_display || item.status ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.Text, { style: [styles7.statusText, { color: colors.textSecondary }], children: item.status_display || item.status }) : null
11533
11687
  ] }) : null
11534
11688
  ] });
11535
11689
  },
11536
11690
  [colors, t]
11537
11691
  );
11538
- const renderFooter = (0, import_react9.useCallback)(() => {
11692
+ const renderFooter = (0, import_react10.useCallback)(() => {
11539
11693
  if (!loadingMore) return null;
11540
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.View, { style: styles7.footerLoader, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.ActivityIndicator, { size: "small", color: colors.primary }) });
11694
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.View, { style: styles7.footerLoader, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.ActivityIndicator, { size: "small", color: colors.primary }) });
11541
11695
  }, [loadingMore, colors]);
11542
- const renderEmpty = (0, import_react9.useCallback)(
11543
- () => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.View, { style: styles7.emptyContainer, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.Text, { style: [styles7.emptyText, { color: colors.textSecondary }], children: t("noData") || "No activities found" }) }),
11696
+ const renderEmpty = (0, import_react10.useCallback)(
11697
+ () => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.View, { style: styles7.emptyContainer, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.Text, { style: [styles7.emptyText, { color: colors.textSecondary }], children: t("noData") || "No activities found" }) }),
11544
11698
  [colors, t]
11545
11699
  );
11546
11700
  if (isLoading) {
11547
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.View, { style: [styles7.loaderContainer, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.ActivityIndicator, { size: "large", color: colors.primary }) });
11701
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.View, { style: [styles7.loaderContainer, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.ActivityIndicator, { size: "large", color: colors.primary }) });
11548
11702
  }
11549
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native7.View, { style: [styles7.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11703
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native7.View, { style: [styles7.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
11550
11704
  import_react_native7.FlatList,
11551
11705
  {
11552
11706
  data: activities,
@@ -11557,7 +11711,7 @@ function ActivitiesList() {
11557
11711
  contentContainerStyle: styles7.listContent,
11558
11712
  onEndReached: handleLoadMore,
11559
11713
  onEndReachedThreshold: 0.3,
11560
- refreshControl: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
11714
+ refreshControl: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
11561
11715
  import_react_native7.RefreshControl,
11562
11716
  {
11563
11717
  refreshing,
@@ -11645,18 +11799,32 @@ var styles7 = import_react_native7.StyleSheet.create({
11645
11799
  });
11646
11800
 
11647
11801
  // src/RedactoPrivacyCenter/components/ReceiptsList.tsx
11648
- var import_react10 = require("react");
11802
+ var import_react11 = require("react");
11649
11803
  var import_react_native9 = require("react-native");
11650
11804
  var import_react_i18next5 = require("react-i18next");
11651
11805
  var import_react_native_svg6 = __toESM(require("react-native-svg"));
11652
11806
 
11653
11807
  // src/RedactoPrivacyCenter/lib/receiptDownload.ts
11654
11808
  var import_react_native8 = require("react-native");
11809
+ function loadExpoFileSystem() {
11810
+ try {
11811
+ return require("expo-file-system/legacy");
11812
+ } catch {
11813
+ return require("expo-file-system");
11814
+ }
11815
+ }
11816
+ function getBase64Encoding(FileSystem) {
11817
+ var _a;
11818
+ if (((_a = FileSystem.EncodingType) == null ? void 0 : _a.Base64) != null) {
11819
+ return FileSystem.EncodingType.Base64;
11820
+ }
11821
+ return "base64";
11822
+ }
11655
11823
  async function saveAndShareReceiptPdf(base64, fileName) {
11656
11824
  let FileSystem;
11657
11825
  let Sharing;
11658
11826
  try {
11659
- FileSystem = require("expo-file-system");
11827
+ FileSystem = loadExpoFileSystem();
11660
11828
  Sharing = require("expo-sharing");
11661
11829
  } catch {
11662
11830
  import_react_native8.Alert.alert(
@@ -11672,7 +11840,7 @@ async function saveAndShareReceiptPdf(base64, fileName) {
11672
11840
  }
11673
11841
  const fileUri = `${dir}${fileName}`;
11674
11842
  await FileSystem.writeAsStringAsync(fileUri, base64, {
11675
- encoding: FileSystem.EncodingType.Base64
11843
+ encoding: getBase64Encoding(FileSystem)
11676
11844
  });
11677
11845
  const canShare = typeof Sharing.isAvailableAsync === "function" ? await Sharing.isAvailableAsync() : true;
11678
11846
  if (canShare) {
@@ -11692,7 +11860,7 @@ async function saveAndShareReceiptPdf(base64, fileName) {
11692
11860
  }
11693
11861
 
11694
11862
  // src/RedactoPrivacyCenter/components/ReceiptsList.tsx
11695
- var import_jsx_runtime12 = require("react/jsx-runtime");
11863
+ var import_jsx_runtime13 = require("react/jsx-runtime");
11696
11864
  var PAGE_SIZE2 = 10;
11697
11865
  var EVENT_COLORS = {
11698
11866
  GRANTED: { bg: "rgba(16, 185, 129, 0.1)", text: "#10B981" },
@@ -11816,29 +11984,29 @@ function ReceiptsList() {
11816
11984
  const { consentClient } = useBaseUrl();
11817
11985
  const { colors } = useTheme();
11818
11986
  const { langParam } = useCurrentLanguage();
11819
- const authContext = (0, import_react10.useMemo)(
11987
+ const authContext = (0, import_react11.useMemo)(
11820
11988
  () => ({ accessToken, refreshToken, onError, updateTokens }),
11821
11989
  [accessToken, refreshToken, onError, updateTokens]
11822
11990
  );
11823
- const [receipts, setReceipts] = (0, import_react10.useState)([]);
11824
- const [totalCount, setTotalCount] = (0, import_react10.useState)(0);
11825
- const [isLoading, setIsLoading] = (0, import_react10.useState)(true);
11826
- const [refreshing, setRefreshing] = (0, import_react10.useState)(false);
11827
- const [loadingMore, setLoadingMore] = (0, import_react10.useState)(false);
11828
- const [offset, setOffset] = (0, import_react10.useState)(0);
11829
- const [downloadingUuid, setDownloadingUuid] = (0, import_react10.useState)(null);
11830
- const [eventType, setEventType] = (0, import_react10.useState)("");
11831
- const [datePreset, setDatePreset] = (0, import_react10.useState)("");
11832
- const [customFrom, setCustomFrom] = (0, import_react10.useState)(null);
11833
- const [customTo, setCustomTo] = (0, import_react10.useState)(null);
11834
- const [iosPickerField, setIosPickerField] = (0, import_react10.useState)(null);
11835
- const [IosPickerComponent, setIosPickerComponent] = (0, import_react10.useState)(null);
11991
+ const [receipts, setReceipts] = (0, import_react11.useState)([]);
11992
+ const [totalCount, setTotalCount] = (0, import_react11.useState)(0);
11993
+ const [isLoading, setIsLoading] = (0, import_react11.useState)(true);
11994
+ const [refreshing, setRefreshing] = (0, import_react11.useState)(false);
11995
+ const [loadingMore, setLoadingMore] = (0, import_react11.useState)(false);
11996
+ const [offset, setOffset] = (0, import_react11.useState)(0);
11997
+ const [downloadingUuid, setDownloadingUuid] = (0, import_react11.useState)(null);
11998
+ const [eventType, setEventType] = (0, import_react11.useState)("");
11999
+ const [datePreset, setDatePreset] = (0, import_react11.useState)("");
12000
+ const [customFrom, setCustomFrom] = (0, import_react11.useState)(null);
12001
+ const [customTo, setCustomTo] = (0, import_react11.useState)(null);
12002
+ const [iosPickerField, setIosPickerField] = (0, import_react11.useState)(null);
12003
+ const [IosPickerComponent, setIosPickerComponent] = (0, import_react11.useState)(null);
11836
12004
  const hasActiveFilters = Boolean(eventType || datePreset);
11837
- const isCustomRangeInvalid = (0, import_react10.useMemo)(
12005
+ const isCustomRangeInvalid = (0, import_react11.useMemo)(
11838
12006
  () => datePreset === "custom" && Boolean(customFrom && customTo && customFrom.getTime() > customTo.getTime()),
11839
12007
  [datePreset, customFrom, customTo]
11840
12008
  );
11841
- const eventTypeOptions = (0, import_react10.useMemo)(
12009
+ const eventTypeOptions = (0, import_react11.useMemo)(
11842
12010
  () => [
11843
12011
  { value: "", label: t("all") },
11844
12012
  { value: "GRANTED", label: t("consentGranted") },
@@ -11848,7 +12016,7 @@ function ReceiptsList() {
11848
12016
  ],
11849
12017
  [t]
11850
12018
  );
11851
- const dateOptions = (0, import_react10.useMemo)(
12019
+ const dateOptions = (0, import_react11.useMemo)(
11852
12020
  () => [
11853
12021
  { value: "", label: t("allTime") },
11854
12022
  { value: "1", label: t("today") },
@@ -11859,7 +12027,7 @@ function ReceiptsList() {
11859
12027
  ],
11860
12028
  [t]
11861
12029
  );
11862
- const fetchData = (0, import_react10.useCallback)(
12030
+ const fetchData = (0, import_react11.useCallback)(
11863
12031
  async (newOffset = 0, append = false) => {
11864
12032
  if (!organizationId || !workspaceId) return;
11865
12033
  if (isCustomRangeInvalid) return;
@@ -11914,24 +12082,24 @@ function ReceiptsList() {
11914
12082
  langParam
11915
12083
  ]
11916
12084
  );
11917
- (0, import_react10.useEffect)(() => {
12085
+ (0, import_react11.useEffect)(() => {
11918
12086
  setIsLoading(true);
11919
12087
  setOffset(0);
11920
12088
  fetchData(0).finally(() => setIsLoading(false));
11921
12089
  }, [fetchData]);
11922
- const handleRefresh = (0, import_react10.useCallback)(async () => {
12090
+ const handleRefresh = (0, import_react11.useCallback)(async () => {
11923
12091
  setRefreshing(true);
11924
12092
  await fetchData(0);
11925
12093
  setRefreshing(false);
11926
12094
  }, [fetchData]);
11927
- const handleLoadMore = (0, import_react10.useCallback)(async () => {
12095
+ const handleLoadMore = (0, import_react11.useCallback)(async () => {
11928
12096
  if (loadingMore || receipts.length >= totalCount) return;
11929
12097
  setLoadingMore(true);
11930
12098
  const nextOffset = offset + PAGE_SIZE2;
11931
12099
  await fetchData(nextOffset, true);
11932
12100
  setLoadingMore(false);
11933
12101
  }, [loadingMore, receipts.length, totalCount, offset, fetchData]);
11934
- const handleDownload = (0, import_react10.useCallback)(
12102
+ const handleDownload = (0, import_react11.useCallback)(
11935
12103
  async (receipt) => {
11936
12104
  if (!organizationId || !workspaceId || !receipt.uuid) return;
11937
12105
  setDownloadingUuid(receipt.uuid);
@@ -11954,23 +12122,23 @@ function ReceiptsList() {
11954
12122
  },
11955
12123
  [organizationId, workspaceId, authContext, consentClient, t]
11956
12124
  );
11957
- const handleEventChange = (0, import_react10.useCallback)((val) => {
12125
+ const handleEventChange = (0, import_react11.useCallback)((val) => {
11958
12126
  setEventType(val);
11959
12127
  }, []);
11960
- const handleDateChange = (0, import_react10.useCallback)((val) => {
12128
+ const handleDateChange = (0, import_react11.useCallback)((val) => {
11961
12129
  setDatePreset(val);
11962
12130
  if (val !== "custom") {
11963
12131
  setCustomFrom(null);
11964
12132
  setCustomTo(null);
11965
12133
  }
11966
12134
  }, []);
11967
- const handleClearFilters = (0, import_react10.useCallback)(() => {
12135
+ const handleClearFilters = (0, import_react11.useCallback)(() => {
11968
12136
  setEventType("");
11969
12137
  setDatePreset("");
11970
12138
  setCustomFrom(null);
11971
12139
  setCustomTo(null);
11972
12140
  }, []);
11973
- const openPicker = (0, import_react10.useCallback)(
12141
+ const openPicker = (0, import_react11.useCallback)(
11974
12142
  (field) => {
11975
12143
  const current = field === "from" ? customFrom : customTo;
11976
12144
  const onSelect = (d) => {
@@ -11987,7 +12155,7 @@ function ReceiptsList() {
11987
12155
  },
11988
12156
  [customFrom, customTo]
11989
12157
  );
11990
- const renderItem = (0, import_react10.useCallback)(
12158
+ const renderItem = (0, import_react11.useCallback)(
11991
12159
  ({ item }) => {
11992
12160
  var _a;
11993
12161
  const raw = String((_a = item.event_type) != null ? _a : "").toUpperCase();
@@ -11996,22 +12164,22 @@ function ReceiptsList() {
11996
12164
  const eventLabel = item.event_type_display || (labelKey ? t(labelKey) : item.event_type || "\u2014");
11997
12165
  const productName = item.product_name_display || item.product_name || "\u2014";
11998
12166
  const isDownloading = downloadingUuid === item.uuid;
11999
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: [styles8.card, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
12000
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: styles8.cardTopRow, children: [
12001
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: [styles8.eventBadge, { backgroundColor: eventColor.bg }], children: [
12002
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.View, { style: [styles8.eventDot, { backgroundColor: eventColor.text }] }),
12003
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.eventBadgeText, { color: eventColor.text }], numberOfLines: 1, children: eventLabel })
12167
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: [styles8.card, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
12168
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: styles8.cardTopRow, children: [
12169
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: [styles8.eventBadge, { backgroundColor: eventColor.bg }], children: [
12170
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.View, { style: [styles8.eventDot, { backgroundColor: eventColor.text }] }),
12171
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.eventBadgeText, { color: eventColor.text }], numberOfLines: 1, children: eventLabel })
12004
12172
  ] }),
12005
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: styles8.dateTimeCol, children: [
12006
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.dateText, { color: colors.text }], children: formatDate(item.created_at) }),
12007
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.timeText, { color: colors.textSecondary }], children: formatTime(item.created_at) })
12173
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: styles8.dateTimeCol, children: [
12174
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.dateText, { color: colors.text }], children: formatDate(item.created_at) }),
12175
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.timeText, { color: colors.textSecondary }], children: formatTime(item.created_at) })
12008
12176
  ] })
12009
12177
  ] }),
12010
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: styles8.productRow, children: [
12011
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.View, { style: [styles8.avatar, { backgroundColor: colors.background, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.avatarText, { color: colors.textSecondary }], children: getProductInitials(productName) }) }),
12012
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.productName, { color: colors.text }], numberOfLines: 2, children: productName })
12178
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: styles8.productRow, children: [
12179
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.View, { style: [styles8.avatar, { backgroundColor: colors.background, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.avatarText, { color: colors.textSecondary }], children: getProductInitials(productName) }) }),
12180
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.productName, { color: colors.text }], numberOfLines: 2, children: productName })
12013
12181
  ] }),
12014
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12182
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12015
12183
  import_react_native9.TouchableOpacity,
12016
12184
  {
12017
12185
  style: [styles8.downloadBtn, { borderColor: colors.primary }, (isDownloading || !item.uuid) && styles8.downloadBtnDisabled],
@@ -12019,8 +12187,8 @@ function ReceiptsList() {
12019
12187
  disabled: isDownloading || !item.uuid,
12020
12188
  activeOpacity: 0.7,
12021
12189
  accessibilityRole: "button",
12022
- children: isDownloading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
12023
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native_svg6.default, { width: 15, height: 15, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12190
+ children: isDownloading ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
12191
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native_svg6.default, { width: 15, height: 15, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12024
12192
  import_react_native_svg6.Path,
12025
12193
  {
12026
12194
  d: "M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3",
@@ -12030,7 +12198,7 @@ function ReceiptsList() {
12030
12198
  strokeLinejoin: "round"
12031
12199
  }
12032
12200
  ) }),
12033
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.downloadText, { color: colors.primary }], children: t("download") || "Download" })
12201
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.downloadText, { color: colors.primary }], children: t("download") || "Download" })
12034
12202
  ] })
12035
12203
  }
12036
12204
  )
@@ -12038,12 +12206,12 @@ function ReceiptsList() {
12038
12206
  },
12039
12207
  [colors, t, downloadingUuid, handleDownload]
12040
12208
  );
12041
- const renderHeader = (0, import_react10.useCallback)(
12042
- () => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: styles8.header, children: [
12043
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.title, { color: colors.text }], children: t("myReceipt") || "My Receipt" }),
12044
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.subtitle, { color: colors.textSecondary }], children: t("myReceiptSubtitle") || "" }),
12045
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: styles8.filtersRow, children: [
12046
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12209
+ const renderHeader = (0, import_react11.useCallback)(
12210
+ () => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: styles8.header, children: [
12211
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.title, { color: colors.text }], children: t("myReceipt") || "My Receipt" }),
12212
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.subtitle, { color: colors.textSecondary }], children: t("myReceiptSubtitle") || "" }),
12213
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: styles8.filtersRow, children: [
12214
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12047
12215
  PCSelect,
12048
12216
  {
12049
12217
  label: t("event") || "Event",
@@ -12055,7 +12223,7 @@ function ReceiptsList() {
12055
12223
  style: styles8.filterControl
12056
12224
  }
12057
12225
  ),
12058
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12226
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12059
12227
  PCSelect,
12060
12228
  {
12061
12229
  label: t("dateRange") || "Date range",
@@ -12068,33 +12236,33 @@ function ReceiptsList() {
12068
12236
  }
12069
12237
  )
12070
12238
  ] }),
12071
- datePreset === "custom" && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native9.View, { style: styles8.customRangeRow, children: [
12072
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
12239
+ datePreset === "custom" && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native9.View, { style: styles8.customRangeRow, children: [
12240
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
12073
12241
  import_react_native9.TouchableOpacity,
12074
12242
  {
12075
12243
  style: [styles8.dateField, { borderColor: colors.border, backgroundColor: colors.surface }],
12076
12244
  onPress: () => openPicker("from"),
12077
12245
  activeOpacity: 0.7,
12078
12246
  children: [
12079
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.dateFieldLabel, { color: colors.textSecondary }], children: t("from") || "From" }),
12080
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.dateFieldValue, { color: customFrom ? colors.text : colors.textSecondary }], children: customFrom ? formatDate(customFrom.toISOString()) : t("from") || "From" })
12247
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.dateFieldLabel, { color: colors.textSecondary }], children: t("from") || "From" }),
12248
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.dateFieldValue, { color: customFrom ? colors.text : colors.textSecondary }], children: customFrom ? formatDate(customFrom.toISOString()) : t("from") || "From" })
12081
12249
  ]
12082
12250
  }
12083
12251
  ),
12084
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
12252
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
12085
12253
  import_react_native9.TouchableOpacity,
12086
12254
  {
12087
12255
  style: [styles8.dateField, { borderColor: colors.border, backgroundColor: colors.surface }],
12088
12256
  onPress: () => openPicker("to"),
12089
12257
  activeOpacity: 0.7,
12090
12258
  children: [
12091
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.dateFieldLabel, { color: colors.textSecondary }], children: t("to") || "To" }),
12092
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.dateFieldValue, { color: customTo ? colors.text : colors.textSecondary }], children: customTo ? formatDate(customTo.toISOString()) : t("to") || "To" })
12259
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.dateFieldLabel, { color: colors.textSecondary }], children: t("to") || "To" }),
12260
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.dateFieldValue, { color: customTo ? colors.text : colors.textSecondary }], children: customTo ? formatDate(customTo.toISOString()) : t("to") || "To" })
12093
12261
  ]
12094
12262
  }
12095
12263
  )
12096
12264
  ] }),
12097
- iosPickerField && IosPickerComponent ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12265
+ iosPickerField && IosPickerComponent ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12098
12266
  IosPickerComponent,
12099
12267
  {
12100
12268
  value: (iosPickerField === "from" ? customFrom : customTo) || /* @__PURE__ */ new Date(),
@@ -12112,7 +12280,7 @@ function ReceiptsList() {
12112
12280
  }
12113
12281
  }
12114
12282
  ) : null,
12115
- hasActiveFilters ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.TouchableOpacity, { onPress: handleClearFilters, style: styles8.clearFilters, activeOpacity: 0.7, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.clearFiltersText, { color: colors.primary }], children: t("clearFilters") || "Clear filters" }) }) : null
12283
+ hasActiveFilters ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.TouchableOpacity, { onPress: handleClearFilters, style: styles8.clearFilters, activeOpacity: 0.7, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.clearFiltersText, { color: colors.primary }], children: t("clearFilters") || "Clear filters" }) }) : null
12116
12284
  ] }),
12117
12285
  [
12118
12286
  colors,
@@ -12132,27 +12300,27 @@ function ReceiptsList() {
12132
12300
  openPicker
12133
12301
  ]
12134
12302
  );
12135
- const renderFooter = (0, import_react10.useCallback)(() => {
12303
+ const renderFooter = (0, import_react11.useCallback)(() => {
12136
12304
  if (!loadingMore) return null;
12137
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.View, { style: styles8.footerLoader, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.ActivityIndicator, { size: "small", color: colors.primary }) });
12305
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.View, { style: styles8.footerLoader, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.ActivityIndicator, { size: "small", color: colors.primary }) });
12138
12306
  }, [loadingMore, colors]);
12139
- const renderEmpty = (0, import_react10.useCallback)(
12140
- () => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.View, { style: styles8.emptyContainer, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.Text, { style: [styles8.emptyText, { color: colors.textSecondary }], children: t("noData") || "No receipts found" }) }),
12307
+ const renderEmpty = (0, import_react11.useCallback)(
12308
+ () => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.View, { style: styles8.emptyContainer, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.Text, { style: [styles8.emptyText, { color: colors.textSecondary }], children: t("noData") || "No receipts found" }) }),
12141
12309
  [colors, t]
12142
12310
  );
12143
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.View, { style: [styles8.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12311
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.View, { style: [styles8.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12144
12312
  import_react_native9.FlatList,
12145
12313
  {
12146
12314
  data: isLoading ? [] : receipts,
12147
12315
  renderItem,
12148
12316
  keyExtractor: (item, idx) => `${item.uuid || item.created_at}-${idx}`,
12149
12317
  ListHeaderComponent: renderHeader,
12150
- ListEmptyComponent: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.View, { style: styles8.loaderContainer, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native9.ActivityIndicator, { size: "large", color: colors.primary }) }) : renderEmpty,
12318
+ ListEmptyComponent: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.View, { style: styles8.loaderContainer, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native9.ActivityIndicator, { size: "large", color: colors.primary }) }) : renderEmpty,
12151
12319
  ListFooterComponent: renderFooter,
12152
12320
  contentContainerStyle: styles8.listContent,
12153
12321
  onEndReached: handleLoadMore,
12154
12322
  onEndReachedThreshold: 0.3,
12155
- refreshControl: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
12323
+ refreshControl: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12156
12324
  import_react_native9.RefreshControl,
12157
12325
  {
12158
12326
  refreshing,
@@ -12324,13 +12492,13 @@ var styles8 = import_react_native9.StyleSheet.create({
12324
12492
  });
12325
12493
 
12326
12494
  // src/RedactoPrivacyCenter/components/FormPage.tsx
12327
- var import_react14 = require("react");
12495
+ var import_react15 = require("react");
12328
12496
  var import_react_native16 = require("react-native");
12329
12497
  var import_react_i18next9 = require("react-i18next");
12330
12498
  var import_react_native_svg8 = __toESM(require("react-native-svg"));
12331
12499
 
12332
12500
  // src/RedactoPrivacyCenter/components/Form.tsx
12333
- var import_react12 = require("react");
12501
+ var import_react13 = require("react");
12334
12502
  var import_react_native12 = require("react-native");
12335
12503
  var import_react_i18next7 = require("react-i18next");
12336
12504
  var import_react_native_svg7 = __toESM(require("react-native-svg"));
@@ -12391,7 +12559,7 @@ var uploadFileWithS2S = async ({
12391
12559
 
12392
12560
  // src/RedactoPrivacyCenter/lib/constants.ts
12393
12561
  var import_react_i18next6 = require("react-i18next");
12394
- var import_react11 = require("react");
12562
+ var import_react12 = require("react");
12395
12563
  var languageOptions = [
12396
12564
  { value: "en", label: "English" },
12397
12565
  { value: "hi", label: "\u0939\u093F\u0928\u094D\u0926\u0940 (Hindi)" },
@@ -12448,7 +12616,7 @@ var GRIEVANCE_TAB_IDS = {
12448
12616
  };
12449
12617
  function useGrievanceTabs() {
12450
12618
  const { t } = (0, import_react_i18next6.useTranslation)();
12451
- return (0, import_react11.useMemo)(() => [
12619
+ return (0, import_react12.useMemo)(() => [
12452
12620
  { id: GRIEVANCE_TAB_IDS.ALL, label: t("all") || "All" },
12453
12621
  { id: GRIEVANCE_TAB_IDS.PROCESSING, label: t("processing") || "Processing" },
12454
12622
  { id: GRIEVANCE_TAB_IDS.COMPLETED, label: t("completed") || "Completed" },
@@ -12457,7 +12625,7 @@ function useGrievanceTabs() {
12457
12625
  }
12458
12626
  function useRequestTypeLabels() {
12459
12627
  const { t } = (0, import_react_i18next6.useTranslation)();
12460
- return (0, import_react11.useMemo)(() => {
12628
+ return (0, import_react12.useMemo)(() => {
12461
12629
  const labels = {};
12462
12630
  const entries = [
12463
12631
  ["ACCESS" /* ACCESS */, t("access") || "Access"],
@@ -12512,7 +12680,7 @@ async function pickFile() {
12512
12680
 
12513
12681
  // src/RedactoPrivacyCenter/ui/PCInput.tsx
12514
12682
  var import_react_native11 = require("react-native");
12515
- var import_jsx_runtime13 = require("react/jsx-runtime");
12683
+ var import_jsx_runtime14 = require("react/jsx-runtime");
12516
12684
  var PCInput = ({
12517
12685
  label,
12518
12686
  value,
@@ -12525,9 +12693,9 @@ var PCInput = ({
12525
12693
  editable = true
12526
12694
  }) => {
12527
12695
  const { colors } = useTheme();
12528
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react_native11.View, { style: styles9.container, children: [
12529
- label ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native11.Text, { style: [styles9.label, { color: colors.text }], children: label }) : null,
12530
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
12696
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native11.View, { style: styles9.container, children: [
12697
+ label ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native11.Text, { style: [styles9.label, { color: colors.text }], children: label }) : null,
12698
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
12531
12699
  import_react_native11.TextInput,
12532
12700
  {
12533
12701
  style: [
@@ -12548,7 +12716,7 @@ var PCInput = ({
12548
12716
  textAlignVertical: multiline ? "top" : "center"
12549
12717
  }
12550
12718
  ),
12551
- error ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native11.Text, { style: [styles9.error, { color: colors.error }], children: error }) : null
12719
+ error ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native11.Text, { style: [styles9.error, { color: colors.error }], children: error }) : null
12552
12720
  ] });
12553
12721
  };
12554
12722
  var styles9 = import_react_native11.StyleSheet.create({
@@ -12578,39 +12746,39 @@ var styles9 = import_react_native11.StyleSheet.create({
12578
12746
  });
12579
12747
 
12580
12748
  // src/RedactoPrivacyCenter/components/Form.tsx
12581
- var import_jsx_runtime14 = require("react/jsx-runtime");
12749
+ var import_jsx_runtime15 = require("react/jsx-runtime");
12582
12750
  function Form({ onCreateRequest }) {
12583
12751
  const { t } = (0, import_react_i18next7.useTranslation)();
12584
12752
  const { accessToken, refreshToken, email, organizationId, workspaceId, updateTokens, onError } = useAuth();
12585
12753
  const { consentClient, baseUrl } = useBaseUrl();
12586
12754
  const { colors } = useTheme();
12587
12755
  const requestTypeLabels = useRequestTypeLabels();
12588
- const authContext = (0, import_react12.useMemo)(
12756
+ const authContext = (0, import_react13.useMemo)(
12589
12757
  () => ({ accessToken, refreshToken, onError, updateTokens }),
12590
12758
  [accessToken, refreshToken, onError, updateTokens]
12591
12759
  );
12592
12760
  const contact = email || "";
12593
- const [formDataResponse, setFormDataResponse] = (0, import_react12.useState)(null);
12594
- const [isLoading, setIsLoading] = (0, import_react12.useState)(true);
12595
- const [isSubmitting, setIsSubmitting] = (0, import_react12.useState)(false);
12596
- const [requestType, setRequestType] = (0, import_react12.useState)("");
12597
- const [additionalNote, setAdditionalNote] = (0, import_react12.useState)("");
12598
- const [confirmChecked, setConfirmChecked] = (0, import_react12.useState)(false);
12599
- const [isRequestDetailsExpanded, setIsRequestDetailsExpanded] = (0, import_react12.useState)(true);
12600
- const [isSubmitted, setIsSubmitted] = (0, import_react12.useState)(false);
12601
- const [caseId, setCaseId] = (0, import_react12.useState)(null);
12602
- const [selectedPurposes, setSelectedPurposes] = (0, import_react12.useState)(/* @__PURE__ */ new Set());
12603
- const [selectedDataElements, setSelectedDataElements] = (0, import_react12.useState)(/* @__PURE__ */ new Map());
12604
- const [selectedCorrectionFields, setSelectedCorrectionFields] = (0, import_react12.useState)(/* @__PURE__ */ new Set());
12605
- const [correctionValues, setCorrectionValues] = (0, import_react12.useState)({});
12606
- const [selectedGrievances, setSelectedGrievances] = (0, import_react12.useState)({});
12607
- const [nominationData, setNominationData] = (0, import_react12.useState)({
12761
+ const [formDataResponse, setFormDataResponse] = (0, import_react13.useState)(null);
12762
+ const [isLoading, setIsLoading] = (0, import_react13.useState)(true);
12763
+ const [isSubmitting, setIsSubmitting] = (0, import_react13.useState)(false);
12764
+ const [requestType, setRequestType] = (0, import_react13.useState)("");
12765
+ const [additionalNote, setAdditionalNote] = (0, import_react13.useState)("");
12766
+ const [confirmChecked, setConfirmChecked] = (0, import_react13.useState)(false);
12767
+ const [isRequestDetailsExpanded, setIsRequestDetailsExpanded] = (0, import_react13.useState)(true);
12768
+ const [isSubmitted, setIsSubmitted] = (0, import_react13.useState)(false);
12769
+ const [caseId, setCaseId] = (0, import_react13.useState)(null);
12770
+ const [selectedPurposes, setSelectedPurposes] = (0, import_react13.useState)(/* @__PURE__ */ new Set());
12771
+ const [selectedDataElements, setSelectedDataElements] = (0, import_react13.useState)(/* @__PURE__ */ new Map());
12772
+ const [selectedCorrectionFields, setSelectedCorrectionFields] = (0, import_react13.useState)(/* @__PURE__ */ new Set());
12773
+ const [correctionValues, setCorrectionValues] = (0, import_react13.useState)({});
12774
+ const [selectedGrievances, setSelectedGrievances] = (0, import_react13.useState)({});
12775
+ const [nominationData, setNominationData] = (0, import_react13.useState)({
12608
12776
  nominee_email: "",
12609
12777
  nominee_mobile: ""
12610
12778
  });
12611
- const [uploadedDocs, setUploadedDocs] = (0, import_react12.useState)([]);
12612
- const [isUploading, setIsUploading] = (0, import_react12.useState)(false);
12613
- (0, import_react12.useEffect)(() => {
12779
+ const [uploadedDocs, setUploadedDocs] = (0, import_react13.useState)([]);
12780
+ const [isUploading, setIsUploading] = (0, import_react13.useState)(false);
12781
+ (0, import_react13.useEffect)(() => {
12614
12782
  if (!organizationId || !workspaceId || !contact) return;
12615
12783
  setIsLoading(true);
12616
12784
  getFormData(organizationId, workspaceId, contact, false, false, authContext, consentClient).then((data) => {
@@ -12619,11 +12787,11 @@ function Form({ onCreateRequest }) {
12619
12787
  console.warn("Error fetching form data:", error);
12620
12788
  }).finally(() => setIsLoading(false));
12621
12789
  }, [organizationId, workspaceId, contact, authContext, consentClient]);
12622
- const purposes = (0, import_react12.useMemo)(() => {
12790
+ const purposes = (0, import_react13.useMemo)(() => {
12623
12791
  if (!(formDataResponse == null ? void 0 : formDataResponse.purposes)) return [];
12624
12792
  return formDataResponse.purposes.map((pw) => pw.purpose).filter(Boolean);
12625
12793
  }, [formDataResponse]);
12626
- const uniqueDataElements = (0, import_react12.useMemo)(() => {
12794
+ const uniqueDataElements = (0, import_react13.useMemo)(() => {
12627
12795
  const map = /* @__PURE__ */ new Map();
12628
12796
  purposes.forEach((p) => {
12629
12797
  (p.data_elements || []).forEach((de) => {
@@ -12632,11 +12800,11 @@ function Form({ onCreateRequest }) {
12632
12800
  });
12633
12801
  return Array.from(map.values());
12634
12802
  }, [purposes]);
12635
- const grievanceOptions = (0, import_react12.useMemo)(
12803
+ const grievanceOptions = (0, import_react13.useMemo)(
12636
12804
  () => (formDataResponse == null ? void 0 : formDataResponse.grievance_options) || [],
12637
12805
  [formDataResponse]
12638
12806
  );
12639
- const togglePurpose = (0, import_react12.useCallback)(
12807
+ const togglePurpose = (0, import_react13.useCallback)(
12640
12808
  (purpose) => {
12641
12809
  const uuid = purpose.uuid;
12642
12810
  setSelectedPurposes((prev) => {
@@ -12659,7 +12827,7 @@ function Form({ onCreateRequest }) {
12659
12827
  },
12660
12828
  []
12661
12829
  );
12662
- const toggleDataElement = (0, import_react12.useCallback)(
12830
+ const toggleDataElement = (0, import_react13.useCallback)(
12663
12831
  (purpose, deUuid) => {
12664
12832
  const purposeUuid = purpose.uuid;
12665
12833
  setSelectedDataElements((prev) => {
@@ -12690,7 +12858,7 @@ function Form({ onCreateRequest }) {
12690
12858
  },
12691
12859
  []
12692
12860
  );
12693
- const toggleCorrectionField = (0, import_react12.useCallback)((uuid) => {
12861
+ const toggleCorrectionField = (0, import_react13.useCallback)((uuid) => {
12694
12862
  setSelectedCorrectionFields((prev) => {
12695
12863
  const next = new Set(prev);
12696
12864
  if (next.has(uuid)) next.delete(uuid);
@@ -12698,10 +12866,10 @@ function Form({ onCreateRequest }) {
12698
12866
  return next;
12699
12867
  });
12700
12868
  }, []);
12701
- const toggleGrievance = (0, import_react12.useCallback)((value) => {
12869
+ const toggleGrievance = (0, import_react13.useCallback)((value) => {
12702
12870
  setSelectedGrievances((prev) => ({ ...prev, [value]: !prev[value] }));
12703
12871
  }, []);
12704
- const isFormValid = (0, import_react12.useMemo)(() => {
12872
+ const isFormValid = (0, import_react13.useMemo)(() => {
12705
12873
  if (!requestType || !confirmChecked) return false;
12706
12874
  if (requestType === "ACCESS" /* ACCESS */ || requestType === "erasure" /* ERASURE */) {
12707
12875
  return selectedPurposes.size > 0;
@@ -12717,7 +12885,7 @@ function Form({ onCreateRequest }) {
12717
12885
  }
12718
12886
  return false;
12719
12887
  }, [requestType, confirmChecked, selectedPurposes, selectedCorrectionFields, selectedGrievances, nominationData]);
12720
- const handleUpload = (0, import_react12.useCallback)(async () => {
12888
+ const handleUpload = (0, import_react13.useCallback)(async () => {
12721
12889
  if (!organizationId || !workspaceId) return;
12722
12890
  try {
12723
12891
  const file = await pickFile();
@@ -12748,10 +12916,10 @@ function Form({ onCreateRequest }) {
12748
12916
  setIsUploading(false);
12749
12917
  }
12750
12918
  }, [organizationId, workspaceId, authContext, consentClient, baseUrl, t]);
12751
- const removeUploadedDoc = (0, import_react12.useCallback)((uuid) => {
12919
+ const removeUploadedDoc = (0, import_react13.useCallback)((uuid) => {
12752
12920
  setUploadedDocs((prev) => prev.filter((d) => d.uuid !== uuid));
12753
12921
  }, []);
12754
- const handleSubmit = (0, import_react12.useCallback)(async () => {
12922
+ const handleSubmit = (0, import_react13.useCallback)(async () => {
12755
12923
  var _a, _b, _c;
12756
12924
  if (!organizationId || !workspaceId || !contact || !requestType || !formDataResponse) return;
12757
12925
  setIsSubmitting(true);
@@ -12816,8 +12984,8 @@ function Form({ onCreateRequest }) {
12816
12984
  t
12817
12985
  ]);
12818
12986
  if (isSubmitted && caseId) {
12819
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: [styles10.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.ScrollView, { contentContainerStyle: styles10.successContent, children: [
12820
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: [styles10.successIconWrap, { backgroundColor: `${colors.success}20` }], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native_svg7.default, { width: 36, height: 36, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
12987
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: [styles10.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.ScrollView, { contentContainerStyle: styles10.successContent, children: [
12988
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: [styles10.successIconWrap, { backgroundColor: `${colors.success}20` }], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native_svg7.default, { width: 36, height: 36, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12821
12989
  import_react_native_svg7.Path,
12822
12990
  {
12823
12991
  d: "M20 6L9 17l-5-5",
@@ -12827,27 +12995,27 @@ function Form({ onCreateRequest }) {
12827
12995
  strokeLinejoin: "round"
12828
12996
  }
12829
12997
  ) }) }),
12830
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.successTitle, { color: colors.text }], children: t("requestSubmittedSuccessfully") || "Request Submitted Successfully" }),
12831
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.successSubtitle, { color: colors.textSecondary }], children: t("thankYouForSubmittingYourRequest") || "Thank you for submitting your request" }),
12832
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: [styles10.caseIdBox, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
12833
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.caseIdLabel, { color: colors.textSecondary }], children: t("caseID") || "Case ID" }),
12834
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.caseIdValue, { color: colors.text }], children: caseId }),
12835
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.caseIdHint, { color: colors.textSecondary }], children: t("saveThisID") || "Please save this ID for future reference" })
12998
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.successTitle, { color: colors.text }], children: t("requestSubmittedSuccessfully") || "Request Submitted Successfully" }),
12999
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.successSubtitle, { color: colors.textSecondary }], children: t("thankYouForSubmittingYourRequest") || "Thank you for submitting your request" }),
13000
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: [styles10.caseIdBox, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
13001
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.caseIdLabel, { color: colors.textSecondary }], children: t("caseID") || "Case ID" }),
13002
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.caseIdValue, { color: colors.text }], children: caseId }),
13003
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.caseIdHint, { color: colors.textSecondary }], children: t("saveThisID") || "Please save this ID for future reference" })
12836
13004
  ] }),
12837
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.processNote, { color: colors.textSecondary }], children: t("processRequest") || "We will process your request as per laws" }),
12838
- onCreateRequest ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13005
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.processNote, { color: colors.textSecondary }], children: t("processRequest") || "We will process your request as per laws" }),
13006
+ onCreateRequest ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12839
13007
  import_react_native12.TouchableOpacity,
12840
13008
  {
12841
13009
  style: [styles10.viewRequestsBtn, { backgroundColor: colors.primary }],
12842
13010
  onPress: onCreateRequest,
12843
13011
  activeOpacity: 0.7,
12844
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.viewRequestsBtnText, { color: colors.primaryText }], children: t("viewMyRequests") || "View My Requests" })
13012
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.viewRequestsBtnText, { color: colors.primaryText }], children: t("viewMyRequests") || "View My Requests" })
12845
13013
  }
12846
13014
  ) : null
12847
13015
  ] }) });
12848
13016
  }
12849
13017
  if (isLoading) {
12850
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: [styles10.loaderContainer, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.ActivityIndicator, { size: "large", color: colors.primary }) });
13018
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: [styles10.loaderContainer, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.ActivityIndicator, { size: "large", color: colors.primary }) });
12851
13019
  }
12852
13020
  const requestTypeOptions = [
12853
13021
  "ACCESS" /* ACCESS */,
@@ -12859,11 +13027,11 @@ function Form({ onCreateRequest }) {
12859
13027
  const renderRequestDetailsBody = () => {
12860
13028
  if (requestType === "ACCESS" /* ACCESS */ || requestType === "erasure" /* ERASURE */) {
12861
13029
  if (purposes.length === 0) {
12862
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No purposes available" });
13030
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No purposes available" });
12863
13031
  }
12864
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
12865
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: requestType === "ACCESS" /* ACCESS */ ? t("whatDataToAccess") : t("whatDataToDelete") }),
12866
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13032
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
13033
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: requestType === "ACCESS" /* ACCESS */ ? t("whatDataToAccess") : t("whatDataToDelete") }),
13034
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12867
13035
  import_react_native12.Text,
12868
13036
  {
12869
13037
  style: {
@@ -12881,19 +13049,19 @@ function Form({ onCreateRequest }) {
12881
13049
  purposes.map((purpose) => {
12882
13050
  var _a;
12883
13051
  const purposeSelected = selectedPurposes.has(purpose.uuid);
12884
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13052
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
12885
13053
  import_react_native12.View,
12886
13054
  {
12887
13055
  style: [styles10.purposeItem, { borderColor: colors.border, backgroundColor: colors.background }],
12888
13056
  children: [
12889
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13057
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
12890
13058
  import_react_native12.TouchableOpacity,
12891
13059
  {
12892
13060
  style: styles10.checkboxRow,
12893
13061
  onPress: () => togglePurpose(purpose),
12894
13062
  activeOpacity: 0.7,
12895
13063
  children: [
12896
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13064
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12897
13065
  import_react_native12.View,
12898
13066
  {
12899
13067
  style: [
@@ -12901,29 +13069,29 @@ function Form({ onCreateRequest }) {
12901
13069
  { borderColor: colors.border },
12902
13070
  purposeSelected && { backgroundColor: colors.primary, borderColor: colors.primary }
12903
13071
  ],
12904
- children: purposeSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: styles10.checkmark, children: "\u2713" }) : null
13072
+ children: purposeSelected ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: styles10.checkmark, children: "\u2713" }) : null
12905
13073
  }
12906
13074
  ),
12907
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: { flex: 1 }, children: [
12908
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.purposeName, { color: colors.text }], children: purpose.name }),
12909
- purpose.description ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.purposeDesc, { color: colors.textSecondary }], numberOfLines: 3, children: purpose.description }) : null
13075
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: { flex: 1 }, children: [
13076
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.purposeName, { color: colors.text }], children: purpose.name }),
13077
+ purpose.description ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.purposeDesc, { color: colors.textSecondary }], numberOfLines: 3, children: purpose.description }) : null
12910
13078
  ] })
12911
13079
  ]
12912
13080
  }
12913
13081
  ),
12914
- purposeSelected && (((_a = purpose.data_elements) == null ? void 0 : _a.length) || 0) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: styles10.dataElementsContainer, children: [
12915
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.dataElementsLabel, { color: colors.textSecondary }], children: t("dataCollected") }),
13082
+ purposeSelected && (((_a = purpose.data_elements) == null ? void 0 : _a.length) || 0) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: styles10.dataElementsContainer, children: [
13083
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.dataElementsLabel, { color: colors.textSecondary }], children: t("dataCollected") }),
12916
13084
  purpose.data_elements.map((de) => {
12917
13085
  var _a2, _b;
12918
13086
  const deSelected = (_b = (_a2 = selectedDataElements.get(purpose.uuid)) == null ? void 0 : _a2.has(de.uuid)) != null ? _b : false;
12919
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13087
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
12920
13088
  import_react_native12.TouchableOpacity,
12921
13089
  {
12922
13090
  style: styles10.checkboxRow,
12923
13091
  onPress: () => toggleDataElement(purpose, de.uuid),
12924
13092
  activeOpacity: 0.7,
12925
13093
  children: [
12926
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13094
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12927
13095
  import_react_native12.View,
12928
13096
  {
12929
13097
  style: [
@@ -12931,10 +13099,10 @@ function Form({ onCreateRequest }) {
12931
13099
  { borderColor: colors.border },
12932
13100
  deSelected && { backgroundColor: colors.primary, borderColor: colors.primary }
12933
13101
  ],
12934
- children: deSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: styles10.checkmarkSmall, children: "\u2713" }) : null
13102
+ children: deSelected ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: styles10.checkmarkSmall, children: "\u2713" }) : null
12935
13103
  }
12936
13104
  ),
12937
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.dataElementName, { color: colors.text }], children: de.name })
13105
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.dataElementName, { color: colors.text }], children: de.name })
12938
13106
  ]
12939
13107
  },
12940
13108
  de.uuid
@@ -12950,22 +13118,22 @@ function Form({ onCreateRequest }) {
12950
13118
  }
12951
13119
  if (requestType === "CORRECTION" /* CORRECTION */) {
12952
13120
  if (uniqueDataElements.length === 0) {
12953
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No fields available" });
13121
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No fields available" });
12954
13122
  }
12955
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
12956
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: t("selectFieldsToUpdate") }),
13123
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
13124
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: t("selectFieldsToUpdate") }),
12957
13125
  uniqueDataElements.map((de) => {
12958
13126
  var _a, _b;
12959
13127
  const isSelected = selectedCorrectionFields.has(de.uuid);
12960
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { children: [
12961
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13128
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { children: [
13129
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
12962
13130
  import_react_native12.TouchableOpacity,
12963
13131
  {
12964
13132
  style: styles10.checkboxRow,
12965
13133
  onPress: () => toggleCorrectionField(de.uuid),
12966
13134
  activeOpacity: 0.7,
12967
13135
  children: [
12968
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13136
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12969
13137
  import_react_native12.View,
12970
13138
  {
12971
13139
  style: [
@@ -12973,15 +13141,15 @@ function Form({ onCreateRequest }) {
12973
13141
  { borderColor: colors.border },
12974
13142
  isSelected && { backgroundColor: colors.primary, borderColor: colors.primary }
12975
13143
  ],
12976
- children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: styles10.checkmark, children: "\u2713" }) : null
13144
+ children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: styles10.checkmark, children: "\u2713" }) : null
12977
13145
  }
12978
13146
  ),
12979
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.purposeName, { color: colors.text }], children: de.name })
13147
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.purposeName, { color: colors.text }], children: de.name })
12980
13148
  ]
12981
13149
  }
12982
13150
  ),
12983
- isSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: styles10.correctionInputs, children: [
12984
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13151
+ isSelected ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: styles10.correctionInputs, children: [
13152
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
12985
13153
  PCInput,
12986
13154
  {
12987
13155
  label: t("currentValue"),
@@ -12996,7 +13164,7 @@ function Form({ onCreateRequest }) {
12996
13164
  placeholder: t("currentValue")
12997
13165
  }
12998
13166
  ),
12999
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13167
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13000
13168
  PCInput,
13001
13169
  {
13002
13170
  label: t("newValue"),
@@ -13018,18 +13186,18 @@ function Form({ onCreateRequest }) {
13018
13186
  }
13019
13187
  if (requestType === "grievance" /* GRIEVANCE */) {
13020
13188
  if (grievanceOptions.length === 0) {
13021
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No grievance types available" });
13189
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No grievance types available" });
13022
13190
  }
13023
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
13024
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: t("selectGrievance") }),
13025
- grievanceOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13191
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
13192
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: t("selectGrievance") }),
13193
+ grievanceOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
13026
13194
  import_react_native12.TouchableOpacity,
13027
13195
  {
13028
13196
  style: styles10.checkboxRow,
13029
13197
  onPress: () => toggleGrievance(option.value),
13030
13198
  activeOpacity: 0.7,
13031
13199
  children: [
13032
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13200
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13033
13201
  import_react_native12.View,
13034
13202
  {
13035
13203
  style: [
@@ -13037,10 +13205,10 @@ function Form({ onCreateRequest }) {
13037
13205
  { borderColor: colors.border },
13038
13206
  selectedGrievances[option.value] && { backgroundColor: colors.primary, borderColor: colors.primary }
13039
13207
  ],
13040
- children: selectedGrievances[option.value] ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: styles10.checkmark, children: "\u2713" }) : null
13208
+ children: selectedGrievances[option.value] ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: styles10.checkmark, children: "\u2713" }) : null
13041
13209
  }
13042
13210
  ),
13043
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.purposeName, { color: colors.text }], children: option.label })
13211
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.purposeName, { color: colors.text }], children: option.label })
13044
13212
  ]
13045
13213
  },
13046
13214
  option.value
@@ -13048,9 +13216,9 @@ function Form({ onCreateRequest }) {
13048
13216
  ] });
13049
13217
  }
13050
13218
  if (requestType === "nomination" /* NOMINATION */) {
13051
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
13052
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: t("enterNomineeDetails") }),
13053
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13219
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: { gap: 8 }, children: [
13220
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.sectionTitle, { color: colors.text }], children: t("enterNomineeDetails") }),
13221
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13054
13222
  PCInput,
13055
13223
  {
13056
13224
  label: t("nomineeEmail"),
@@ -13060,7 +13228,7 @@ function Form({ onCreateRequest }) {
13060
13228
  keyboardType: "email-address"
13061
13229
  }
13062
13230
  ),
13063
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13231
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13064
13232
  PCInput,
13065
13233
  {
13066
13234
  label: t("nomineeMobile"),
@@ -13072,25 +13240,25 @@ function Form({ onCreateRequest }) {
13072
13240
  )
13073
13241
  ] });
13074
13242
  }
13075
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: styles10.placeholderBox, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("selectRequestType") }) });
13243
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: styles10.placeholderBox, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.placeholder, { color: colors.textSecondary }], children: t("selectRequestType") }) });
13076
13244
  };
13077
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: [styles10.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13245
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: [styles10.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
13078
13246
  import_react_native12.ScrollView,
13079
13247
  {
13080
13248
  contentContainerStyle: styles10.scrollContent,
13081
13249
  keyboardShouldPersistTaps: "handled",
13082
13250
  children: [
13083
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.descriptionText, { color: colors.textSecondary }], children: t("description") }),
13084
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: [styles10.card, { borderColor: colors.border, backgroundColor: colors.background }], children: [
13085
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: [styles10.cardHeader, { backgroundColor: colors.surface, borderBottomColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.cardHeaderText, { color: colors.text }], children: t("raiseDataRequest") }) }),
13086
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: styles10.cardBody, children: [
13087
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { children: [
13088
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: [
13251
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.descriptionText, { color: colors.textSecondary }], children: t("description") }),
13252
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: [styles10.card, { borderColor: colors.border, backgroundColor: colors.background }], children: [
13253
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: [styles10.cardHeader, { backgroundColor: colors.surface, borderBottomColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.cardHeaderText, { color: colors.text }], children: t("raiseDataRequest") }) }),
13254
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: styles10.cardBody, children: [
13255
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { children: [
13256
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: [
13089
13257
  t("contact"),
13090
13258
  " ",
13091
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: { color: colors.error }, children: "*" })
13259
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: { color: colors.error }, children: "*" })
13092
13260
  ] }),
13093
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13261
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13094
13262
  PCInput,
13095
13263
  {
13096
13264
  value: contact,
@@ -13101,13 +13269,13 @@ function Form({ onCreateRequest }) {
13101
13269
  }
13102
13270
  )
13103
13271
  ] }),
13104
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { children: [
13105
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: [
13272
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { children: [
13273
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: [
13106
13274
  t("requestType"),
13107
13275
  " ",
13108
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: { color: colors.error }, children: "*" })
13276
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: { color: colors.error }, children: "*" })
13109
13277
  ] }),
13110
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13278
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13111
13279
  PCSelect,
13112
13280
  {
13113
13281
  value: requestType,
@@ -13120,20 +13288,20 @@ function Form({ onCreateRequest }) {
13120
13288
  }
13121
13289
  )
13122
13290
  ] }),
13123
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: [styles10.detailsAccordion, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
13124
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13291
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: [styles10.detailsAccordion, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
13292
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
13125
13293
  import_react_native12.TouchableOpacity,
13126
13294
  {
13127
13295
  style: [styles10.detailsHeader, { borderBottomColor: isRequestDetailsExpanded ? colors.border : "transparent" }],
13128
13296
  onPress: () => setIsRequestDetailsExpanded((v) => !v),
13129
13297
  activeOpacity: 0.7,
13130
13298
  children: [
13131
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.Text, { style: [styles10.detailsHeaderText, { color: colors.text }], children: [
13299
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.Text, { style: [styles10.detailsHeaderText, { color: colors.text }], children: [
13132
13300
  t("requestDetails"),
13133
13301
  " ",
13134
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: { color: colors.error }, children: "*" })
13302
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: { color: colors.error }, children: "*" })
13135
13303
  ] }),
13136
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13304
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13137
13305
  import_react_native_svg7.default,
13138
13306
  {
13139
13307
  width: 18,
@@ -13141,7 +13309,7 @@ function Form({ onCreateRequest }) {
13141
13309
  viewBox: "0 0 24 24",
13142
13310
  fill: "none",
13143
13311
  style: { transform: [{ rotate: isRequestDetailsExpanded ? "0deg" : "-90deg" }] },
13144
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13312
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13145
13313
  import_react_native_svg7.Path,
13146
13314
  {
13147
13315
  d: "M6 9l6 6 6-6",
@@ -13156,17 +13324,17 @@ function Form({ onCreateRequest }) {
13156
13324
  ]
13157
13325
  }
13158
13326
  ),
13159
- isRequestDetailsExpanded ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: styles10.detailsBody, children: renderRequestDetailsBody() }) : null
13327
+ isRequestDetailsExpanded ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: styles10.detailsBody, children: renderRequestDetailsBody() }) : null
13160
13328
  ] }),
13161
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { children: [
13162
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: t("supportingDocumentation") }),
13163
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: [styles10.uploadBox, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
13164
- uploadedDocs.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: styles10.docsList, children: uploadedDocs.map((doc) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
13329
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { children: [
13330
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: t("supportingDocumentation") }),
13331
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: [styles10.uploadBox, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
13332
+ uploadedDocs.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: styles10.docsList, children: uploadedDocs.map((doc) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
13165
13333
  import_react_native12.View,
13166
13334
  {
13167
13335
  style: [styles10.docPill, { borderColor: colors.border, backgroundColor: colors.background }],
13168
13336
  children: [
13169
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native_svg7.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13337
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native_svg7.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13170
13338
  import_react_native_svg7.Path,
13171
13339
  {
13172
13340
  d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z M14 2v6h6",
@@ -13176,14 +13344,14 @@ function Form({ onCreateRequest }) {
13176
13344
  strokeLinejoin: "round"
13177
13345
  }
13178
13346
  ) }),
13179
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.docName, { color: colors.text }], numberOfLines: 1, children: doc.name }),
13180
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13347
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.docName, { color: colors.text }], numberOfLines: 1, children: doc.name }),
13348
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13181
13349
  import_react_native12.TouchableOpacity,
13182
13350
  {
13183
13351
  onPress: () => removeUploadedDoc(doc.uuid),
13184
13352
  hitSlop: 8,
13185
13353
  accessibilityLabel: t("cancel"),
13186
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native_svg7.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13354
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native_svg7.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13187
13355
  import_react_native_svg7.Path,
13188
13356
  {
13189
13357
  d: "M18 6L6 18M6 6l12 12",
@@ -13199,7 +13367,7 @@ function Form({ onCreateRequest }) {
13199
13367
  },
13200
13368
  doc.uuid
13201
13369
  )) }) : null,
13202
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13370
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13203
13371
  import_react_native12.TouchableOpacity,
13204
13372
  {
13205
13373
  style: [
@@ -13213,8 +13381,8 @@ function Form({ onCreateRequest }) {
13213
13381
  onPress: handleUpload,
13214
13382
  disabled: isUploading,
13215
13383
  activeOpacity: 0.7,
13216
- children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
13217
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native_svg7.default, { width: uploadedDocs.length > 0 ? 16 : 28, height: uploadedDocs.length > 0 ? 16 : 28, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13384
+ children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
13385
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native_svg7.default, { width: uploadedDocs.length > 0 ? 16 : 28, height: uploadedDocs.length > 0 ? 16 : 28, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13218
13386
  import_react_native_svg7.Path,
13219
13387
  {
13220
13388
  d: "M12 16V4m0 0L7 9m5-5l5 5M4 20h16",
@@ -13224,15 +13392,15 @@ function Form({ onCreateRequest }) {
13224
13392
  strokeLinejoin: "round"
13225
13393
  }
13226
13394
  ) }),
13227
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.uploadText, { color: colors.textSecondary }], children: uploadedDocs.length > 0 ? t("uploadFileButton") || "Upload another file" : t("uploadFile") })
13395
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.uploadText, { color: colors.textSecondary }], children: uploadedDocs.length > 0 ? t("uploadFileButton") || "Upload another file" : t("uploadFile") })
13228
13396
  ] })
13229
13397
  }
13230
13398
  )
13231
13399
  ] })
13232
13400
  ] }),
13233
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { children: [
13234
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: t("additionalNote") }),
13235
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13401
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { children: [
13402
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.Text, { style: [styles10.fieldLabel, { color: colors.text }], children: t("additionalNote") }),
13403
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13236
13404
  PCInput,
13237
13405
  {
13238
13406
  value: additionalNote,
@@ -13242,7 +13410,7 @@ function Form({ onCreateRequest }) {
13242
13410
  }
13243
13411
  )
13244
13412
  ] }),
13245
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: styles10.confirmRow, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13413
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native12.View, { style: styles10.confirmRow, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13246
13414
  PCCheckbox,
13247
13415
  {
13248
13416
  checked: confirmChecked,
@@ -13250,8 +13418,8 @@ function Form({ onCreateRequest }) {
13250
13418
  label: `${t("confirmCheckBox")} *`
13251
13419
  }
13252
13420
  ) }),
13253
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: styles10.actionsRow, children: [
13254
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13421
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react_native12.View, { style: styles10.actionsRow, children: [
13422
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13255
13423
  PCButton,
13256
13424
  {
13257
13425
  title: t("saveDraft"),
@@ -13262,7 +13430,7 @@ function Form({ onCreateRequest }) {
13262
13430
  style: styles10.actionButton
13263
13431
  }
13264
13432
  ),
13265
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
13433
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
13266
13434
  PCButton,
13267
13435
  {
13268
13436
  title: t("submit"),
@@ -13552,7 +13720,7 @@ var styles10 = import_react_native12.StyleSheet.create({
13552
13720
  });
13553
13721
 
13554
13722
  // src/RedactoPrivacyCenter/components/CaseHistory.tsx
13555
- var import_react13 = require("react");
13723
+ var import_react14 = require("react");
13556
13724
  var import_react_native15 = require("react-native");
13557
13725
  var import_react_i18next8 = require("react-i18next");
13558
13726
 
@@ -13595,7 +13763,7 @@ var useCaseMessages = (organizationId, workspaceId, caseUuid, authContext, polli
13595
13763
 
13596
13764
  // src/RedactoPrivacyCenter/ui/PCBadge.tsx
13597
13765
  var import_react_native13 = require("react-native");
13598
- var import_jsx_runtime15 = require("react/jsx-runtime");
13766
+ var import_jsx_runtime16 = require("react/jsx-runtime");
13599
13767
  var lightColors2 = {
13600
13768
  success: { bg: "#d1fae5", text: "#059669" },
13601
13769
  warning: { bg: "#fef3c7", text: "#92400e" },
@@ -13616,7 +13784,7 @@ var PCBadge = ({ status, label }) => {
13616
13784
  const { theme } = useTheme();
13617
13785
  const palette = theme === "dark" ? darkColors2 : lightColors2;
13618
13786
  const colors = palette[status] || palette.pending;
13619
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native13.View, { style: [styles11.badge, { backgroundColor: colors.bg }], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native13.Text, { style: [styles11.text, { color: colors.text }], children: label }) });
13787
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native13.View, { style: [styles11.badge, { backgroundColor: colors.bg }], children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native13.Text, { style: [styles11.text, { color: colors.text }], children: label }) });
13620
13788
  };
13621
13789
  var styles11 = import_react_native13.StyleSheet.create({
13622
13790
  badge: {
@@ -13633,12 +13801,12 @@ var styles11 = import_react_native13.StyleSheet.create({
13633
13801
 
13634
13802
  // src/RedactoPrivacyCenter/ui/PCEmpty.tsx
13635
13803
  var import_react_native14 = require("react-native");
13636
- var import_jsx_runtime16 = require("react/jsx-runtime");
13804
+ var import_jsx_runtime17 = require("react/jsx-runtime");
13637
13805
  var PCEmpty = ({ title, description, icon }) => {
13638
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_react_native14.View, { style: styles12.container, children: [
13639
- icon ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native14.View, { style: styles12.iconWrapper, children: icon }) : null,
13640
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native14.Text, { style: styles12.title, children: title }),
13641
- description ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_native14.Text, { style: styles12.description, children: description }) : null
13806
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_native14.View, { style: styles12.container, children: [
13807
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native14.View, { style: styles12.iconWrapper, children: icon }) : null,
13808
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native14.Text, { style: styles12.title, children: title }),
13809
+ description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native14.Text, { style: styles12.description, children: description }) : null
13642
13810
  ] });
13643
13811
  };
13644
13812
  var styles12 = import_react_native14.StyleSheet.create({
@@ -13697,7 +13865,7 @@ function formatDate2(dateStr) {
13697
13865
  }
13698
13866
 
13699
13867
  // src/RedactoPrivacyCenter/components/CaseHistory.tsx
13700
- var import_jsx_runtime17 = require("react/jsx-runtime");
13868
+ var import_jsx_runtime18 = require("react/jsx-runtime");
13701
13869
  function CaseHistory({ onCreateRequest }) {
13702
13870
  const { t } = (0, import_react_i18next8.useTranslation)();
13703
13871
  const { navigateTo, setSelectedCase } = useInternalNavigation();
@@ -13705,9 +13873,9 @@ function CaseHistory({ onCreateRequest }) {
13705
13873
  const { colors } = useTheme();
13706
13874
  const grievanceTabs = useGrievanceTabs();
13707
13875
  const requestTypeLabels = useRequestTypeLabels();
13708
- const [activeTab, setActiveTab] = (0, import_react13.useState)(GRIEVANCE_TAB_IDS.ALL);
13709
- const [searchQuery, setSearchQuery] = (0, import_react13.useState)("");
13710
- const authContext = (0, import_react13.useMemo)(() => ({
13876
+ const [activeTab, setActiveTab] = (0, import_react14.useState)(GRIEVANCE_TAB_IDS.ALL);
13877
+ const [searchQuery, setSearchQuery] = (0, import_react14.useState)("");
13878
+ const authContext = (0, import_react14.useMemo)(() => ({
13711
13879
  accessToken,
13712
13880
  refreshToken,
13713
13881
  onError,
@@ -13719,7 +13887,7 @@ function CaseHistory({ onCreateRequest }) {
13719
13887
  email != null ? email : void 0,
13720
13888
  authContext
13721
13889
  );
13722
- const filteredCases = (0, import_react13.useMemo)(() => {
13890
+ const filteredCases = (0, import_react14.useMemo)(() => {
13723
13891
  return (cases || []).filter((item) => {
13724
13892
  var _a, _b, _c;
13725
13893
  const statusLower = item.status.toLowerCase();
@@ -13746,23 +13914,23 @@ function CaseHistory({ onCreateRequest }) {
13746
13914
  return true;
13747
13915
  });
13748
13916
  }, [cases, activeTab, searchQuery]);
13749
- const handleViewDetails = (0, import_react13.useCallback)((caseRequest) => {
13917
+ const handleViewDetails = (0, import_react14.useCallback)((caseRequest) => {
13750
13918
  setSelectedCase(caseRequest);
13751
13919
  navigateTo("case-details");
13752
13920
  }, [setSelectedCase, navigateTo]);
13753
- const renderCaseCard = (0, import_react13.useCallback)(({ item }) => {
13921
+ const renderCaseCard = (0, import_react14.useCallback)(({ item }) => {
13754
13922
  var _a;
13755
13923
  const typeLabel = requestTypeLabels[(_a = item.request_type) == null ? void 0 : _a.toUpperCase()] || item.request_type_display || formatCaseStatus(item.request_type || "");
13756
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
13924
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
13757
13925
  import_react_native15.TouchableOpacity,
13758
13926
  {
13759
13927
  style: [styles13.caseCard, { backgroundColor: colors.surface, borderColor: colors.border }],
13760
13928
  onPress: () => handleViewDetails(item),
13761
13929
  activeOpacity: 0.7,
13762
13930
  children: [
13763
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_native15.View, { style: styles13.caseCardHeader, children: [
13764
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.Text, { style: [styles13.caseId, { color: colors.text }], children: item.case_id }),
13765
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13931
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native15.View, { style: styles13.caseCardHeader, children: [
13932
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.Text, { style: [styles13.caseId, { color: colors.text }], children: item.case_id }),
13933
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13766
13934
  PCBadge,
13767
13935
  {
13768
13936
  status: getCaseStatusVariant(item.status),
@@ -13770,36 +13938,36 @@ function CaseHistory({ onCreateRequest }) {
13770
13938
  }
13771
13939
  )
13772
13940
  ] }),
13773
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_native15.View, { style: styles13.caseCardMeta, children: [
13774
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.Text, { style: [styles13.caseType, { color: colors.primary }], children: typeLabel }),
13775
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.Text, { style: [styles13.caseDot, { color: colors.textSecondary }], children: "\xB7" }),
13776
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.Text, { style: [styles13.caseDate, { color: colors.textSecondary }], children: formatDate2(item.created_at) })
13941
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native15.View, { style: styles13.caseCardMeta, children: [
13942
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.Text, { style: [styles13.caseType, { color: colors.primary }], children: typeLabel }),
13943
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.Text, { style: [styles13.caseDot, { color: colors.textSecondary }], children: "\xB7" }),
13944
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.Text, { style: [styles13.caseDate, { color: colors.textSecondary }], children: formatDate2(item.created_at) })
13777
13945
  ] }),
13778
- item.description_display || item.description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.Text, { style: [styles13.caseDescription, { color: colors.textSecondary }], numberOfLines: 2, children: item.description_display || item.description }) : null
13946
+ item.description_display || item.description ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.Text, { style: [styles13.caseDescription, { color: colors.textSecondary }], numberOfLines: 2, children: item.description_display || item.description }) : null
13779
13947
  ]
13780
13948
  }
13781
13949
  );
13782
13950
  }, [colors, requestTypeLabels, handleViewDetails]);
13783
13951
  if (isLoading) {
13784
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.View, { style: styles13.centered, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.ActivityIndicator, { size: "large", color: colors.primary }) });
13952
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.View, { style: styles13.centered, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.ActivityIndicator, { size: "large", color: colors.primary }) });
13785
13953
  }
13786
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_native15.View, { style: [styles13.container, { backgroundColor: colors.background }], children: [
13787
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_native15.View, { style: styles13.topBar, children: [
13788
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.Text, { style: [styles13.title, { color: colors.text }], children: t("grievanceRequests") || "Privacy Requests" }),
13789
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13954
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native15.View, { style: [styles13.container, { backgroundColor: colors.background }], children: [
13955
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native15.View, { style: styles13.topBar, children: [
13956
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.Text, { style: [styles13.title, { color: colors.text }], children: t("grievanceRequests") || "Privacy Requests" }),
13957
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13790
13958
  import_react_native15.TouchableOpacity,
13791
13959
  {
13792
13960
  style: [styles13.newRequestBtn, { backgroundColor: colors.primary }],
13793
13961
  onPress: onCreateRequest,
13794
13962
  activeOpacity: 0.7,
13795
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_native15.Text, { style: [styles13.newRequestText, { color: colors.primaryText }], children: [
13963
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native15.Text, { style: [styles13.newRequestText, { color: colors.primaryText }], children: [
13796
13964
  "+ ",
13797
13965
  t("newRequest") || "New Request"
13798
13966
  ] })
13799
13967
  }
13800
13968
  )
13801
13969
  ] }),
13802
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.View, { style: styles13.searchContainer, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13970
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.View, { style: styles13.searchContainer, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13803
13971
  PCInput,
13804
13972
  {
13805
13973
  value: searchQuery,
@@ -13807,9 +13975,9 @@ function CaseHistory({ onCreateRequest }) {
13807
13975
  placeholder: t("searchPlaceholder") || "Search..."
13808
13976
  }
13809
13977
  ) }),
13810
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native15.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, style: styles13.tabsScroll, contentContainerStyle: styles13.tabsContent, children: grievanceTabs.map((tab) => {
13978
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native15.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, style: styles13.tabsScroll, contentContainerStyle: styles13.tabsContent, children: grievanceTabs.map((tab) => {
13811
13979
  const isActive = activeTab === tab.id;
13812
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13980
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13813
13981
  import_react_native15.TouchableOpacity,
13814
13982
  {
13815
13983
  style: [
@@ -13819,7 +13987,7 @@ function CaseHistory({ onCreateRequest }) {
13819
13987
  ],
13820
13988
  onPress: () => setActiveTab(tab.id),
13821
13989
  activeOpacity: 0.7,
13822
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
13990
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13823
13991
  import_react_native15.Text,
13824
13992
  {
13825
13993
  style: [
@@ -13834,14 +14002,14 @@ function CaseHistory({ onCreateRequest }) {
13834
14002
  tab.id
13835
14003
  );
13836
14004
  }) }),
13837
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
14005
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13838
14006
  import_react_native15.FlatList,
13839
14007
  {
13840
14008
  data: filteredCases,
13841
14009
  keyExtractor: (item) => item.uuid,
13842
14010
  renderItem: renderCaseCard,
13843
14011
  contentContainerStyle: styles13.listContent,
13844
- refreshControl: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
14012
+ refreshControl: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13845
14013
  import_react_native15.RefreshControl,
13846
14014
  {
13847
14015
  refreshing: isRefetching,
@@ -13849,7 +14017,7 @@ function CaseHistory({ onCreateRequest }) {
13849
14017
  tintColor: colors.primary
13850
14018
  }
13851
14019
  ),
13852
- ListEmptyComponent: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
14020
+ ListEmptyComponent: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
13853
14021
  PCEmpty,
13854
14022
  {
13855
14023
  title: t("noCasesYet") || "No requests found",
@@ -13960,21 +14128,21 @@ var styles13 = import_react_native15.StyleSheet.create({
13960
14128
  });
13961
14129
 
13962
14130
  // src/RedactoPrivacyCenter/components/FormPage.tsx
13963
- var import_jsx_runtime18 = require("react/jsx-runtime");
14131
+ var import_jsx_runtime19 = require("react/jsx-runtime");
13964
14132
  function FormPage() {
13965
14133
  const { t } = (0, import_react_i18next9.useTranslation)();
13966
14134
  const { colors } = useTheme();
13967
- const [showForm, setShowForm] = (0, import_react14.useState)(false);
14135
+ const [showForm, setShowForm] = (0, import_react15.useState)(false);
13968
14136
  if (showForm) {
13969
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native16.View, { style: styles14.container, children: [
13970
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native16.View, { style: styles14.backRow, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
14137
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react_native16.View, { style: styles14.container, children: [
14138
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native16.View, { style: styles14.backRow, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
13971
14139
  import_react_native16.TouchableOpacity,
13972
14140
  {
13973
14141
  style: styles14.backButton,
13974
14142
  onPress: () => setShowForm(false),
13975
14143
  activeOpacity: 0.7,
13976
14144
  children: [
13977
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native_svg8.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
14145
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg8.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
13978
14146
  import_react_native_svg8.Path,
13979
14147
  {
13980
14148
  d: "M19 12H5m0 0l7 7m-7-7l7-7",
@@ -13984,14 +14152,14 @@ function FormPage() {
13984
14152
  strokeLinejoin: "round"
13985
14153
  }
13986
14154
  ) }),
13987
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native16.Text, { style: [styles14.backText, { color: colors.primary }], children: t("backToHome") || "Back" })
14155
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native16.Text, { style: [styles14.backText, { color: colors.primary }], children: t("backToHome") || "Back" })
13988
14156
  ]
13989
14157
  }
13990
14158
  ) }),
13991
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Form, { onCreateRequest: () => setShowForm(false) })
14159
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Form, { onCreateRequest: () => setShowForm(false) })
13992
14160
  ] });
13993
14161
  }
13994
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CaseHistory, { onCreateRequest: () => setShowForm(true) });
14162
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CaseHistory, { onCreateRequest: () => setShowForm(true) });
13995
14163
  }
13996
14164
  var styles14 = import_react_native16.StyleSheet.create({
13997
14165
  container: {
@@ -14017,7 +14185,7 @@ var styles14 = import_react_native16.StyleSheet.create({
14017
14185
  var import_react_native17 = require("react-native");
14018
14186
  var import_react_i18next10 = require("react-i18next");
14019
14187
  var import_react_native_svg9 = __toESM(require("react-native-svg"));
14020
- var import_jsx_runtime19 = require("react/jsx-runtime");
14188
+ var import_jsx_runtime20 = require("react/jsx-runtime");
14021
14189
  var TAB_ITEMS = [
14022
14190
  { page: "consent-manager", labelKey: "consentManager", fallback: "Consents" },
14023
14191
  { page: "form", labelKey: "grievanceRequests", fallback: "Requests" },
@@ -14028,15 +14196,15 @@ function TabIcon({ page, color }) {
14028
14196
  const size = 22;
14029
14197
  switch (page) {
14030
14198
  case "consent-manager":
14031
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.Path, { d: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }) });
14199
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.Path, { d: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }) });
14032
14200
  case "form":
14033
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.Path, { d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }) });
14201
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.Path, { d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }) });
14034
14202
  case "activity":
14035
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.Path, { d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }) });
14203
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.Path, { d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }) });
14036
14204
  case "receipts":
14037
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: [
14038
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.Path, { d: "M9 14l2 2 4-4m4 8V5a2 2 0 00-2-2h-4.586a1 1 0 00-.707.293l-4.414 4.414A1 1 0 007 8.414V19a2 2 0 002 2z", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }),
14039
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native_svg9.Path, { d: "M14 3v4a1 1 0 001 1h4", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" })
14205
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: [
14206
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.Path, { d: "M9 14l2 2 4-4m4 8V5a2 2 0 00-2-2h-4.586a1 1 0 00-.707.293l-4.414 4.414A1 1 0 007 8.414V19a2 2 0 002 2z", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" }),
14207
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg9.Path, { d: "M14 3v4a1 1 0 001 1h4", stroke: color, strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round" })
14040
14208
  ] });
14041
14209
  default:
14042
14210
  return null;
@@ -14046,10 +14214,10 @@ function BottomTabBar() {
14046
14214
  const { t } = (0, import_react_i18next10.useTranslation)();
14047
14215
  const { currentPage, navigateTo } = useInternalNavigation();
14048
14216
  const { colors } = useTheme();
14049
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native17.View, { style: [styles15.container, { backgroundColor: colors.background, borderTopColor: colors.border }], children: TAB_ITEMS.map((item) => {
14217
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native17.View, { style: [styles15.container, { backgroundColor: colors.background, borderTopColor: colors.border }], children: TAB_ITEMS.map((item) => {
14050
14218
  const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
14051
14219
  const iconColor = isActive ? colors.primary : colors.textSecondary;
14052
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
14220
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
14053
14221
  import_react_native17.TouchableOpacity,
14054
14222
  {
14055
14223
  style: styles15.tab,
@@ -14058,9 +14226,9 @@ function BottomTabBar() {
14058
14226
  accessibilityRole: "tab",
14059
14227
  accessibilityState: { selected: isActive },
14060
14228
  children: [
14061
- isActive && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native17.View, { style: [styles15.activeIndicator, { backgroundColor: colors.primary }] }),
14062
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TabIcon, { page: item.page, color: iconColor }),
14063
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
14229
+ isActive && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native17.View, { style: [styles15.activeIndicator, { backgroundColor: colors.primary }] }),
14230
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TabIcon, { page: item.page, color: iconColor }),
14231
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
14064
14232
  import_react_native17.Text,
14065
14233
  {
14066
14234
  style: [
@@ -14110,7 +14278,7 @@ var styles15 = import_react_native17.StyleSheet.create({
14110
14278
  });
14111
14279
 
14112
14280
  // src/RedactoPrivacyCenter/components/Navbar.tsx
14113
- var import_react15 = require("react");
14281
+ var import_react16 = require("react");
14114
14282
  var import_react_native18 = require("react-native");
14115
14283
  var import_react_i18next11 = require("react-i18next");
14116
14284
  var import_react_native_svg10 = __toESM(require("react-native-svg"));
@@ -14137,35 +14305,35 @@ function navigateBack(onBack) {
14137
14305
  }
14138
14306
 
14139
14307
  // src/RedactoPrivacyCenter/components/Navbar.tsx
14140
- var import_jsx_runtime20 = require("react/jsx-runtime");
14308
+ var import_jsx_runtime21 = require("react/jsx-runtime");
14141
14309
  function Navbar({ onBack }) {
14142
14310
  const { t } = (0, import_react_i18next11.useTranslation)();
14143
14311
  const { currentPage } = useInternalNavigation();
14144
14312
  const { email } = useAuth();
14145
14313
  const { colors, theme, setTheme } = useTheme();
14146
- const [locale, setLocale] = (0, import_react15.useState)(i18n_default.language || "en");
14314
+ const [locale, setLocale] = (0, import_react16.useState)(i18n_default.language || "en");
14147
14315
  const pageChrome = PAGE_CHROME_BY_PAGE[currentPage] || PAGE_CHROME_BY_PAGE["consent-manager"];
14148
- (0, import_react15.useEffect)(() => {
14316
+ (0, import_react16.useEffect)(() => {
14149
14317
  const handleLanguageChanged = () => setLocale(i18n_default.language);
14150
14318
  i18n_default.on("languageChanged", handleLanguageChanged);
14151
14319
  return () => {
14152
14320
  i18n_default.off("languageChanged", handleLanguageChanged);
14153
14321
  };
14154
14322
  }, []);
14155
- const handleLanguageChange = (0, import_react15.useCallback)((value) => {
14323
+ const handleLanguageChange = (0, import_react16.useCallback)((value) => {
14156
14324
  i18n_default.changeLanguage(value);
14157
14325
  }, []);
14158
- const toggleTheme = (0, import_react15.useCallback)(() => {
14326
+ const toggleTheme = (0, import_react16.useCallback)(() => {
14159
14327
  setTheme(theme === "light" ? "dark" : "light");
14160
14328
  }, [theme, setTheme]);
14161
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native18.View, { style: [styles16.container, { backgroundColor: colors.background, borderBottomColor: colors.border }], children: [
14162
- onBack ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native18.TouchableOpacity, { style: styles16.backButton, onPress: () => navigateBack(onBack), activeOpacity: 0.7, children: onBack === "back" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.Path, { d: "M19 12H5m0 0l7 7m-7-7l7-7", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.Path, { d: "M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }) }) : null,
14163
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native18.View, { style: styles16.leftSection, children: [
14164
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native18.Text, { style: [styles16.title, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
14165
- email ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native18.Text, { style: [styles16.email, { color: colors.primary }], numberOfLines: 1, children: email }) : null
14329
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native18.View, { style: [styles16.container, { backgroundColor: colors.background, borderBottomColor: colors.border }], children: [
14330
+ onBack ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native18.TouchableOpacity, { style: styles16.backButton, onPress: () => navigateBack(onBack), activeOpacity: 0.7, children: onBack === "back" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.Path, { d: "M19 12H5m0 0l7 7m-7-7l7-7", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.default, { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.Path, { d: "M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }) }) : null,
14331
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native18.View, { style: styles16.leftSection, children: [
14332
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native18.Text, { style: [styles16.title, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
14333
+ email ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native18.Text, { style: [styles16.email, { color: colors.primary }], numberOfLines: 1, children: email }) : null
14166
14334
  ] }),
14167
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native18.View, { style: styles16.rightSection, children: [
14168
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
14335
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native18.View, { style: styles16.rightSection, children: [
14336
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
14169
14337
  PCSelect,
14170
14338
  {
14171
14339
  value: locale,
@@ -14175,13 +14343,13 @@ function Navbar({ onBack }) {
14175
14343
  compact: true
14176
14344
  }
14177
14345
  ),
14178
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
14346
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
14179
14347
  import_react_native18.TouchableOpacity,
14180
14348
  {
14181
14349
  style: [styles16.themeButton, { borderColor: colors.border, backgroundColor: colors.surface }],
14182
14350
  onPress: toggleTheme,
14183
14351
  activeOpacity: 0.7,
14184
- children: theme === "light" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.Path, { d: "M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native_svg10.Path, { d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) })
14352
+ children: theme === "light" ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.Path, { d: "M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native_svg10.Path, { d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z", stroke: colors.text, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }) })
14185
14353
  }
14186
14354
  )
14187
14355
  ] })
@@ -14241,14 +14409,14 @@ var styles16 = import_react_native18.StyleSheet.create({
14241
14409
  // src/RedactoPrivacyCenter/components/Footer.tsx
14242
14410
  var import_react_native19 = require("react-native");
14243
14411
  var import_react_i18next12 = require("react-i18next");
14244
- var import_jsx_runtime21 = require("react/jsx-runtime");
14412
+ var import_jsx_runtime22 = require("react/jsx-runtime");
14245
14413
  function Footer() {
14246
14414
  const { t } = (0, import_react_i18next12.useTranslation)();
14247
14415
  const { colors } = useTheme();
14248
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native19.View, { style: [styles17.container, { borderTopColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native19.Text, { style: [styles17.text, { color: colors.textSecondary }], children: [
14416
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native19.View, { style: [styles17.container, { borderTopColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native19.Text, { style: [styles17.text, { color: colors.textSecondary }], children: [
14249
14417
  t("poweredBy") || "Powered by",
14250
14418
  " ",
14251
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native19.Text, { style: [styles17.brand, { color: colors.primary }], children: "Redacto" })
14419
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native19.Text, { style: [styles17.brand, { color: colors.primary }], children: "Redacto" })
14252
14420
  ] }) });
14253
14421
  }
14254
14422
  var styles17 = import_react_native19.StyleSheet.create({
@@ -14265,31 +14433,67 @@ var styles17 = import_react_native19.StyleSheet.create({
14265
14433
  }
14266
14434
  });
14267
14435
 
14436
+ // src/RedactoPrivacyCenter/components/PrivacyCenterEmptyState.tsx
14437
+ var import_react_i18next13 = require("react-i18next");
14438
+ var import_jsx_runtime23 = require("react/jsx-runtime");
14439
+ function PrivacyCenterEmptyState() {
14440
+ const { t } = (0, import_react_i18next13.useTranslation)();
14441
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PCEmpty, { title: t("noDataTitle"), description: t("noDataDescription") });
14442
+ }
14443
+
14444
+ // src/RedactoPrivacyCenter/ui/PCLoader.tsx
14445
+ var import_react_native20 = require("react-native");
14446
+ var import_jsx_runtime24 = require("react/jsx-runtime");
14447
+ var PCLoader = ({
14448
+ size = "large",
14449
+ color = "#4f87ff",
14450
+ text
14451
+ }) => {
14452
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native20.View, { style: styles18.container, children: [
14453
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native20.ActivityIndicator, { size, color }),
14454
+ text ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native20.Text, { style: styles18.text, children: text }) : null
14455
+ ] });
14456
+ };
14457
+ var styles18 = import_react_native20.StyleSheet.create({
14458
+ container: {
14459
+ flex: 1,
14460
+ alignItems: "center",
14461
+ justifyContent: "center",
14462
+ padding: 24
14463
+ },
14464
+ text: {
14465
+ marginTop: 12,
14466
+ fontSize: 14,
14467
+ color: "#667085",
14468
+ textAlign: "center"
14469
+ }
14470
+ });
14471
+
14268
14472
  // src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
14269
- var import_react20 = require("react");
14270
- var import_react_native27 = require("react-native");
14271
- var import_react_i18next18 = require("react-i18next");
14473
+ var import_react21 = require("react");
14474
+ var import_react_native28 = require("react-native");
14475
+ var import_react_i18next19 = require("react-i18next");
14272
14476
  var import_react_native_svg18 = __toESM(require("react-native-svg"));
14273
14477
 
14274
14478
  // src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx
14275
- var import_react_native20 = require("react-native");
14276
- var import_react_i18next13 = require("react-i18next");
14479
+ var import_react_native21 = require("react-native");
14480
+ var import_react_i18next14 = require("react-i18next");
14277
14481
  var import_react_native_svg11 = __toESM(require("react-native-svg"));
14278
- var import_jsx_runtime22 = require("react/jsx-runtime");
14482
+ var import_jsx_runtime25 = require("react/jsx-runtime");
14279
14483
  function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
14280
- const { t } = (0, import_react_i18next13.useTranslation)();
14484
+ const { t } = (0, import_react_i18next14.useTranslation)();
14281
14485
  const { colors } = useTheme();
14282
14486
  const details = selectedCase.request_details;
14283
14487
  const isOverdue = selectedCase.due_date && new Date(selectedCase.due_date) < /* @__PURE__ */ new Date() && selectedCase.status !== "completed";
14284
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.ScrollView, { style: styles18.container, contentContainerStyle: styles18.content, children: [
14285
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.View, { style: [styles18.summaryCard, { backgroundColor: colors.surface, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.summaryGrid, children: [
14286
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.summaryItem, children: [
14287
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.label, { color: colors.textSecondary }], children: t("requestType") || "Request Type" }),
14288
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.value, { color: colors.text }], children: requestTypeLabel })
14488
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.ScrollView, { style: styles19.container, contentContainerStyle: styles19.content, children: [
14489
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.View, { style: [styles19.summaryCard, { backgroundColor: colors.surface, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.summaryGrid, children: [
14490
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.summaryItem, children: [
14491
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.label, { color: colors.textSecondary }], children: t("requestType") || "Request Type" }),
14492
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.value, { color: colors.text }], children: requestTypeLabel })
14289
14493
  ] }),
14290
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.summaryItem, children: [
14291
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.label, { color: colors.textSecondary }], children: t("status") || "Status" }),
14292
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
14494
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.summaryItem, children: [
14495
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.label, { color: colors.textSecondary }], children: t("status") || "Status" }),
14496
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
14293
14497
  PCBadge,
14294
14498
  {
14295
14499
  status: getCaseStatusVariant(selectedCase.status),
@@ -14297,30 +14501,30 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
14297
14501
  }
14298
14502
  )
14299
14503
  ] }),
14300
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.summaryItem, children: [
14301
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.label, { color: colors.textSecondary }], children: t("createdAt") || "Created" }),
14302
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.value, { color: colors.text }], children: formatDate2(selectedCase.created_at) })
14504
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.summaryItem, children: [
14505
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.label, { color: colors.textSecondary }], children: t("createdAt") || "Created" }),
14506
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.value, { color: colors.text }], children: formatDate2(selectedCase.created_at) })
14303
14507
  ] }),
14304
- selectedCase.completed_at ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.summaryItem, children: [
14305
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.label, { color: colors.textSecondary }], children: t("completedAt") || "Completed" }),
14306
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.value, { color: colors.text }], children: formatDate2(selectedCase.completed_at) })
14508
+ selectedCase.completed_at ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.summaryItem, children: [
14509
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.label, { color: colors.textSecondary }], children: t("completedAt") || "Completed" }),
14510
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.value, { color: colors.text }], children: formatDate2(selectedCase.completed_at) })
14307
14511
  ] }) : null,
14308
- selectedCase.due_date ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.summaryItem, children: [
14309
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.label, { color: colors.textSecondary }], children: t("dueDate") || "Due Date" }),
14310
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.Text, { style: [styles18.value, { color: isOverdue ? colors.error : colors.text }], children: [
14512
+ selectedCase.due_date ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.summaryItem, children: [
14513
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.label, { color: colors.textSecondary }], children: t("dueDate") || "Due Date" }),
14514
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.Text, { style: [styles19.value, { color: isOverdue ? colors.error : colors.text }], children: [
14311
14515
  formatDate2(selectedCase.due_date),
14312
14516
  isOverdue ? ` (${t("overdue") || "Overdue"})` : ""
14313
14517
  ] })
14314
14518
  ] }) : null
14315
14519
  ] }) }),
14316
- selectedCase.description_display || selectedCase.description ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: [styles18.section, { borderColor: colors.border }], children: [
14317
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.sectionTitle, { color: colors.text }], children: t("descriptionLabel") || "Description" }),
14318
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.descriptionText, { color: colors.textSecondary }], children: selectedCase.description_display || selectedCase.description })
14520
+ selectedCase.description_display || selectedCase.description ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: [styles19.section, { borderColor: colors.border }], children: [
14521
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.sectionTitle, { color: colors.text }], children: t("descriptionLabel") || "Description" }),
14522
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.descriptionText, { color: colors.textSecondary }], children: selectedCase.description_display || selectedCase.description })
14319
14523
  ] }) : null,
14320
- details ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: [styles18.section, { borderColor: colors.border }], children: [
14321
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.sectionTitle, { color: colors.text }], children: t("requestDetails") || "Request Details" }),
14322
- details.purposes && details.purposes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.detailGroup, children: [
14323
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.detailLabel, { color: colors.textSecondary }], children: t("purposesInvolved") || t("purposes") || "Purposes" }),
14524
+ details ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: [styles19.section, { borderColor: colors.border }], children: [
14525
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.sectionTitle, { color: colors.text }], children: t("requestDetails") || "Request Details" }),
14526
+ details.purposes && details.purposes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.detailGroup, children: [
14527
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.detailLabel, { color: colors.textSecondary }], children: t("purposesInvolved") || t("purposes") || "Purposes" }),
14324
14528
  details.purposes.map((rawP, idx) => {
14325
14529
  const p = (rawP == null ? void 0 : rawP.purpose) ? rawP.purpose : rawP;
14326
14530
  const purposeId = (p == null ? void 0 : p.uuid) || (p == null ? void 0 : p.purpose_uuid) || (rawP == null ? void 0 : rawP.purpose_uuid) || idx;
@@ -14328,10 +14532,10 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
14328
14532
  const purposeDescription = (p == null ? void 0 : p.description) || (rawP == null ? void 0 : rawP.description);
14329
14533
  const dataElements = Array.isArray(p == null ? void 0 : p.data_elements) ? p.data_elements.filter((de) => (de == null ? void 0 : de.selected) || (de == null ? void 0 : de.given_consent)) : [];
14330
14534
  const dataElementUuids = Array.isArray(rawP == null ? void 0 : rawP.data_element_uuids) ? rawP.data_element_uuids : Array.isArray(p == null ? void 0 : p.data_element_uuids) ? p.data_element_uuids : [];
14331
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: [styles18.purposeCard, { borderColor: colors.border }], children: [
14332
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.purposeName, { color: colors.text }], children: purposeName }),
14333
- purposeDescription ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.dataElements, { color: colors.textSecondary }], numberOfLines: 3, children: purposeDescription }) : null,
14334
- dataElements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.View, { style: styles18.badgeRow, children: dataElements.map((de) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PCBadge, { status: "info", label: de.name }, de.uuid)) }) : dataElementUuids.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.Text, { style: [styles18.dataElements, { color: colors.textSecondary }], children: [
14535
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: [styles19.purposeCard, { borderColor: colors.border }], children: [
14536
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.purposeName, { color: colors.text }], children: purposeName }),
14537
+ purposeDescription ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.dataElements, { color: colors.textSecondary }], numberOfLines: 3, children: purposeDescription }) : null,
14538
+ dataElements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.View, { style: styles19.badgeRow, children: dataElements.map((de) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(PCBadge, { status: "info", label: de.name }, de.uuid)) }) : dataElementUuids.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.Text, { style: [styles19.dataElements, { color: colors.textSecondary }], children: [
14335
14539
  dataElementUuids.length,
14336
14540
  " ",
14337
14541
  t("dataElements") || "data elements"
@@ -14339,16 +14543,16 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
14339
14543
  ] }, purposeId);
14340
14544
  })
14341
14545
  ] }) : null,
14342
- details.correction_data && details.correction_data.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.detailGroup, children: [
14343
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.detailLabel, { color: colors.textSecondary }], children: t("correctionData") || "Correction Data" }),
14344
- details.correction_data.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: [styles18.correctionCard, { borderColor: colors.border }], children: [
14345
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.correctionField, { color: colors.text }], children: item.name }),
14346
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.correctionValues, children: [
14347
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.correctionValue, children: [
14348
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.correctionLabel, { color: colors.textSecondary }], children: t("currentValue") || "Current" }),
14349
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.correctionText, { color: colors.text }], children: item.curr_value || "-" })
14546
+ details.correction_data && details.correction_data.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.detailGroup, children: [
14547
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.detailLabel, { color: colors.textSecondary }], children: t("correctionData") || "Correction Data" }),
14548
+ details.correction_data.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: [styles19.correctionCard, { borderColor: colors.border }], children: [
14549
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.correctionField, { color: colors.text }], children: item.name }),
14550
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.correctionValues, children: [
14551
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.correctionValue, children: [
14552
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.correctionLabel, { color: colors.textSecondary }], children: t("currentValue") || "Current" }),
14553
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.correctionText, { color: colors.text }], children: item.curr_value || "-" })
14350
14554
  ] }),
14351
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native_svg11.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
14555
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native_svg11.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
14352
14556
  import_react_native_svg11.Path,
14353
14557
  {
14354
14558
  d: "M5 12h14m0 0l-7-7m7 7l-7 7",
@@ -14358,16 +14562,16 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
14358
14562
  strokeLinejoin: "round"
14359
14563
  }
14360
14564
  ) }),
14361
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.correctionValue, children: [
14362
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.correctionLabel, { color: colors.textSecondary }], children: t("newValue") || "New" }),
14363
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.correctionText, { color: colors.primary }], children: item.new_value || "-" })
14565
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.correctionValue, children: [
14566
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.correctionLabel, { color: colors.textSecondary }], children: t("newValue") || "New" }),
14567
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.correctionText, { color: colors.primary }], children: item.new_value || "-" })
14364
14568
  ] })
14365
14569
  ] })
14366
14570
  ] }, idx))
14367
14571
  ] }) : null,
14368
- details.grievance_types && details.grievance_types.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.detailGroup, children: [
14369
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.detailLabel, { color: colors.textSecondary }], children: t("grievanceTypes") || "Grievance Types" }),
14370
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.View, { style: styles18.badgeRow, children: details.grievance_types.map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
14572
+ details.grievance_types && details.grievance_types.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.detailGroup, children: [
14573
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.detailLabel, { color: colors.textSecondary }], children: t("grievanceTypes") || "Grievance Types" }),
14574
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.View, { style: styles19.badgeRow, children: details.grievance_types.map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
14371
14575
  PCBadge,
14372
14576
  {
14373
14577
  status: "warning",
@@ -14376,23 +14580,23 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
14376
14580
  idx
14377
14581
  )) })
14378
14582
  ] }) : null,
14379
- details.nomination_data ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.detailGroup, children: [
14380
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.detailLabel, { color: colors.textSecondary }], children: t("nominationData") || "Nomination" }),
14381
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: [styles18.nominationCard, { borderColor: colors.border }], children: [
14382
- details.nomination_data.nominee_email ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.nominationRow, children: [
14383
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.nominationLabel, { color: colors.textSecondary }], children: t("email") || "Email" }),
14384
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.nominationValue, { color: colors.text }], children: details.nomination_data.nominee_email })
14583
+ details.nomination_data ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.detailGroup, children: [
14584
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.detailLabel, { color: colors.textSecondary }], children: t("nominationData") || "Nomination" }),
14585
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: [styles19.nominationCard, { borderColor: colors.border }], children: [
14586
+ details.nomination_data.nominee_email ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.nominationRow, children: [
14587
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.nominationLabel, { color: colors.textSecondary }], children: t("email") || "Email" }),
14588
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.nominationValue, { color: colors.text }], children: details.nomination_data.nominee_email })
14385
14589
  ] }) : null,
14386
- details.nomination_data.nominee_mobile ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_native20.View, { style: styles18.nominationRow, children: [
14387
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.nominationLabel, { color: colors.textSecondary }], children: t("mobile") || "Mobile" }),
14388
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native20.Text, { style: [styles18.nominationValue, { color: colors.text }], children: details.nomination_data.nominee_mobile })
14590
+ details.nomination_data.nominee_mobile ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native21.View, { style: styles19.nominationRow, children: [
14591
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.nominationLabel, { color: colors.textSecondary }], children: t("mobile") || "Mobile" }),
14592
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native21.Text, { style: [styles19.nominationValue, { color: colors.text }], children: details.nomination_data.nominee_mobile })
14389
14593
  ] }) : null
14390
14594
  ] })
14391
14595
  ] }) : null
14392
14596
  ] }) : null
14393
14597
  ] });
14394
14598
  }
14395
- var styles18 = import_react_native20.StyleSheet.create({
14599
+ var styles19 = import_react_native21.StyleSheet.create({
14396
14600
  container: {
14397
14601
  flex: 1
14398
14602
  },
@@ -14511,42 +14715,42 @@ var styles18 = import_react_native20.StyleSheet.create({
14511
14715
  });
14512
14716
 
14513
14717
  // src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
14514
- var import_react19 = require("react");
14515
- var import_react_native26 = require("react-native");
14516
- var import_react_i18next17 = require("react-i18next");
14718
+ var import_react20 = require("react");
14719
+ var import_react_native27 = require("react-native");
14720
+ var import_react_i18next18 = require("react-i18next");
14517
14721
  var import_react_native_svg17 = __toESM(require("react-native-svg"));
14518
14722
 
14519
14723
  // src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
14520
- var import_react17 = __toESM(require("react"));
14521
- var import_react_i18next15 = require("react-i18next");
14724
+ var import_react18 = __toESM(require("react"));
14725
+ var import_react_i18next16 = require("react-i18next");
14522
14726
  var import_react_native_svg15 = __toESM(require("react-native-svg"));
14523
14727
 
14524
14728
  // src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
14525
- var import_react16 = __toESM(require("react"));
14526
- var import_react_native22 = require("react-native");
14729
+ var import_react17 = __toESM(require("react"));
14730
+ var import_react_native23 = require("react-native");
14527
14731
  var import_react_native_svg13 = __toESM(require("react-native-svg"));
14528
14732
 
14529
14733
  // src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx
14530
- var import_react_native21 = require("react-native");
14734
+ var import_react_native22 = require("react-native");
14531
14735
  var import_react_native_svg12 = __toESM(require("react-native-svg"));
14532
- var import_jsx_runtime23 = require("react/jsx-runtime");
14736
+ var import_jsx_runtime26 = require("react/jsx-runtime");
14533
14737
  function AttachmentCard({ doc }) {
14534
14738
  const { colors } = useTheme();
14535
14739
  const downloadUrl = getDownloadUrl(doc.file_url);
14536
14740
  const handlePress = () => {
14537
14741
  if (downloadUrl) {
14538
- import_react_native21.Linking.openURL(downloadUrl);
14742
+ import_react_native22.Linking.openURL(downloadUrl);
14539
14743
  }
14540
14744
  };
14541
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
14542
- import_react_native21.TouchableOpacity,
14745
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
14746
+ import_react_native22.TouchableOpacity,
14543
14747
  {
14544
- style: [styles19.container, { backgroundColor: colors.surface, borderColor: colors.border }],
14748
+ style: [styles20.container, { backgroundColor: colors.surface, borderColor: colors.border }],
14545
14749
  onPress: handlePress,
14546
14750
  disabled: !downloadUrl,
14547
14751
  activeOpacity: 0.7,
14548
14752
  children: [
14549
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native_svg12.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
14753
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native_svg12.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
14550
14754
  import_react_native_svg12.Path,
14551
14755
  {
14552
14756
  d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z M14 2v6h6 M16 13H8 M16 17H8 M10 9H8",
@@ -14556,15 +14760,15 @@ function AttachmentCard({ doc }) {
14556
14760
  strokeLinejoin: "round"
14557
14761
  }
14558
14762
  ) }),
14559
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react_native21.View, { style: styles19.info, children: [
14560
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native21.Text, { style: [styles19.fileName, { color: colors.text }], numberOfLines: 1, children: doc.file_name || "Document" }),
14561
- doc.file_size ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native21.Text, { style: [styles19.fileSize, { color: colors.textSecondary }], children: formatFileSize(doc.file_size) }) : null
14763
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native22.View, { style: styles20.info, children: [
14764
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native22.Text, { style: [styles20.fileName, { color: colors.text }], numberOfLines: 1, children: doc.file_name || "Document" }),
14765
+ doc.file_size ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native22.Text, { style: [styles20.fileSize, { color: colors.textSecondary }], children: formatFileSize(doc.file_size) }) : null
14562
14766
  ] })
14563
14767
  ]
14564
14768
  }
14565
14769
  );
14566
14770
  }
14567
- var styles19 = import_react_native21.StyleSheet.create({
14771
+ var styles20 = import_react_native22.StyleSheet.create({
14568
14772
  container: {
14569
14773
  flexDirection: "row",
14570
14774
  alignItems: "center",
@@ -14589,11 +14793,11 @@ var styles19 = import_react_native21.StyleSheet.create({
14589
14793
  });
14590
14794
 
14591
14795
  // src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
14592
- var import_jsx_runtime24 = require("react/jsx-runtime");
14796
+ var import_jsx_runtime27 = require("react/jsx-runtime");
14593
14797
  var AVATAR_SIZE = 28;
14594
14798
  var AVATAR_GUTTER = 36;
14595
14799
  function TeamAvatar({ tint }) {
14596
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native22.View, { style: [styles20.avatar, { backgroundColor: `${tint}1F` }], children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native_svg13.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
14800
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native23.View, { style: [styles21.avatar, { backgroundColor: `${tint}1F` }], children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native_svg13.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
14597
14801
  import_react_native_svg13.Path,
14598
14802
  {
14599
14803
  d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",
@@ -14629,28 +14833,28 @@ function ChatBubbleImpl({
14629
14833
  borderBottomRightRadius: 18,
14630
14834
  borderBottomLeftRadius: tailRadius
14631
14835
  };
14632
- const bubble = /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native22.View, { style: [styles20.bubble, bubbleStyle], children: [
14633
- !isPrincipal && isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native22.Text, { style: [styles20.bubbleSender, { color: colors.primary }], numberOfLines: 1, children: senderLabel }) : null,
14634
- message.body ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native22.Text, { style: [styles20.body, { color: isPrincipal ? colors.primaryText : colors.text }], children: message.body }) : null,
14635
- message.documents && message.documents.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native22.View, { style: styles20.attachments, children: message.documents.map((doc) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AttachmentCard, { doc }, doc.uuid)) }) : null
14836
+ const bubble = /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native23.View, { style: [styles21.bubble, bubbleStyle], children: [
14837
+ !isPrincipal && isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native23.Text, { style: [styles21.bubbleSender, { color: colors.primary }], numberOfLines: 1, children: senderLabel }) : null,
14838
+ message.body ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native23.Text, { style: [styles21.body, { color: isPrincipal ? colors.primaryText : colors.text }], children: message.body }) : null,
14839
+ message.documents && message.documents.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native23.View, { style: styles21.attachments, children: message.documents.map((doc) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AttachmentCard, { doc }, doc.uuid)) }) : null
14636
14840
  ] });
14637
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
14638
- import_react_native22.View,
14841
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
14842
+ import_react_native23.View,
14639
14843
  {
14640
14844
  style: [
14641
- styles20.row,
14642
- isPrincipal ? styles20.rowRight : styles20.rowLeft,
14845
+ styles21.row,
14846
+ isPrincipal ? styles21.rowRight : styles21.rowLeft,
14643
14847
  { marginTop: isFirstInGroup ? 12 : 2 }
14644
14848
  ],
14645
14849
  children: [
14646
- !isPrincipal ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native22.View, { style: styles20.avatarSlot, children: isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(TeamAvatar, { tint: colors.primary }) : null }) : null,
14647
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native22.View, { style: [styles20.column, isPrincipal ? styles20.columnRight : styles20.columnLeft], children: [
14850
+ !isPrincipal ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native23.View, { style: styles21.avatarSlot, children: isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TeamAvatar, { tint: colors.primary }) : null }) : null,
14851
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native23.View, { style: [styles21.column, isPrincipal ? styles21.columnRight : styles21.columnLeft], children: [
14648
14852
  bubble,
14649
- isLastInGroup ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
14650
- import_react_native22.Text,
14853
+ isLastInGroup ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
14854
+ import_react_native23.Text,
14651
14855
  {
14652
14856
  style: [
14653
- styles20.timestamp,
14857
+ styles21.timestamp,
14654
14858
  { color: colors.textSecondary, textAlign: isPrincipal ? "right" : "left" }
14655
14859
  ],
14656
14860
  children: formatMessageTime(timestamp)
@@ -14661,8 +14865,8 @@ function ChatBubbleImpl({
14661
14865
  }
14662
14866
  );
14663
14867
  }
14664
- var ChatBubble = import_react16.default.memo(ChatBubbleImpl);
14665
- var styles20 = import_react_native22.StyleSheet.create({
14868
+ var ChatBubble = import_react17.default.memo(ChatBubbleImpl);
14869
+ var styles21 = import_react_native23.StyleSheet.create({
14666
14870
  row: {
14667
14871
  flexDirection: "row",
14668
14872
  paddingHorizontal: 12,
@@ -14721,10 +14925,10 @@ var styles20 = import_react_native22.StyleSheet.create({
14721
14925
  });
14722
14926
 
14723
14927
  // src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx
14724
- var import_react_native23 = require("react-native");
14725
- var import_react_i18next14 = require("react-i18next");
14928
+ var import_react_native24 = require("react-native");
14929
+ var import_react_i18next15 = require("react-i18next");
14726
14930
  var import_react_native_svg14 = __toESM(require("react-native-svg"));
14727
- var import_jsx_runtime25 = require("react/jsx-runtime");
14931
+ var import_jsx_runtime28 = require("react/jsx-runtime");
14728
14932
  var STATUS_BADGE_MAP = {
14729
14933
  pending: "warning",
14730
14934
  under_review: "info",
@@ -14733,17 +14937,17 @@ var STATUS_BADGE_MAP = {
14733
14937
  replacement_requested: "warning"
14734
14938
  };
14735
14939
  function DocumentRequestCard({ message, onUpload, isSubmitting }) {
14736
- const { t } = (0, import_react_i18next14.useTranslation)();
14940
+ const { t } = (0, import_react_i18next15.useTranslation)();
14737
14941
  const { colors } = useTheme();
14738
14942
  const meta = message.document_request_metadata;
14739
14943
  if (!meta) return null;
14740
14944
  const status = meta.document_request_status;
14741
14945
  const canUpload = status === "pending" || status === "replacement_requested";
14742
14946
  const requestEventUuid = meta.document_request_uuid;
14743
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native23.View, { style: [styles21.container, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
14744
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native23.View, { style: styles21.header, children: [
14745
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native23.View, { style: styles21.titleRow, children: [
14746
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native_svg14.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
14947
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native24.View, { style: [styles22.container, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
14948
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native24.View, { style: styles22.header, children: [
14949
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native24.View, { style: styles22.titleRow, children: [
14950
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_svg14.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14747
14951
  import_react_native_svg14.Path,
14748
14952
  {
14749
14953
  d: "M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z",
@@ -14753,9 +14957,9 @@ function DocumentRequestCard({ message, onUpload, isSubmitting }) {
14753
14957
  strokeLinejoin: "round"
14754
14958
  }
14755
14959
  ) }),
14756
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native23.Text, { style: [styles21.title, { color: colors.text }], children: meta.title || t("documentRequestedLabel") || "Document Requested" })
14960
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native24.Text, { style: [styles22.title, { color: colors.text }], children: meta.title || t("documentRequestedLabel") || "Document Requested" })
14757
14961
  ] }),
14758
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
14962
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14759
14963
  PCBadge,
14760
14964
  {
14761
14965
  status: STATUS_BADGE_MAP[status] || "info",
@@ -14763,31 +14967,31 @@ function DocumentRequestCard({ message, onUpload, isSubmitting }) {
14763
14967
  }
14764
14968
  )
14765
14969
  ] }),
14766
- meta.accepted_document ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native23.Text, { style: [styles21.accepted, { color: colors.textSecondary }], children: [
14970
+ meta.accepted_document ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native24.Text, { style: [styles22.accepted, { color: colors.textSecondary }], children: [
14767
14971
  t("acceptedLabel") || "Accepted",
14768
14972
  ": ",
14769
14973
  meta.accepted_document
14770
14974
  ] }) : null,
14771
- meta.rejection_reason ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native23.View, { style: [styles21.rejectionBox, { backgroundColor: `${colors.error}10`, borderColor: `${colors.error}30` }], children: [
14772
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native23.Text, { style: [styles21.rejectionLabel, { color: colors.error }], children: [
14975
+ meta.rejection_reason ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native24.View, { style: [styles22.rejectionBox, { backgroundColor: `${colors.error}10`, borderColor: `${colors.error}30` }], children: [
14976
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native24.Text, { style: [styles22.rejectionLabel, { color: colors.error }], children: [
14773
14977
  t("rejectionReasonLabel") || "Rejection reason",
14774
14978
  ":"
14775
14979
  ] }),
14776
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native23.Text, { style: [styles21.rejectionText, { color: colors.error }], children: meta.rejection_reason })
14980
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native24.Text, { style: [styles22.rejectionText, { color: colors.error }], children: meta.rejection_reason })
14777
14981
  ] }) : null,
14778
- canUpload && requestEventUuid ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
14779
- import_react_native23.TouchableOpacity,
14982
+ canUpload && requestEventUuid ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
14983
+ import_react_native24.TouchableOpacity,
14780
14984
  {
14781
- style: [styles21.uploadButton, { backgroundColor: colors.primary }],
14985
+ style: [styles22.uploadButton, { backgroundColor: colors.primary }],
14782
14986
  onPress: () => onUpload(requestEventUuid),
14783
14987
  disabled: isSubmitting,
14784
14988
  activeOpacity: 0.7,
14785
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native23.Text, { style: [styles21.uploadButtonText, { color: colors.primaryText }], children: isSubmitting ? t("loading") || "Loading..." : t("uploadAndSubmit") || "Upload & Submit" })
14989
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native24.Text, { style: [styles22.uploadButtonText, { color: colors.primaryText }], children: isSubmitting ? t("loading") || "Loading..." : t("uploadAndSubmit") || "Upload & Submit" })
14786
14990
  }
14787
14991
  ) : null
14788
14992
  ] });
14789
14993
  }
14790
- var styles21 = import_react_native23.StyleSheet.create({
14994
+ var styles22 = import_react_native24.StyleSheet.create({
14791
14995
  container: {
14792
14996
  borderWidth: 1,
14793
14997
  borderStyle: "dashed",
@@ -14842,20 +15046,20 @@ var styles21 = import_react_native23.StyleSheet.create({
14842
15046
  });
14843
15047
 
14844
15048
  // src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx
14845
- var import_react_native24 = require("react-native");
14846
- var import_jsx_runtime26 = require("react/jsx-runtime");
15049
+ var import_react_native25 = require("react-native");
15050
+ var import_jsx_runtime29 = require("react/jsx-runtime");
14847
15051
  function StatusEvent({ icon, color, bgColor, borderColor, text, subText, timestamp }) {
14848
15052
  const { colors } = useTheme();
14849
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native24.View, { style: [styles22.container, { backgroundColor: bgColor, borderColor }], children: [
14850
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native24.View, { style: [styles22.iconBubble, { backgroundColor: `${color}1F` }], children: icon }),
14851
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native24.View, { style: styles22.textContainer, children: [
14852
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native24.Text, { style: [styles22.text, { color }], children: text }),
14853
- subText ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native24.Text, { style: [styles22.subText, { color: colors.textSecondary }], numberOfLines: 2, children: subText }) : null
15053
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native25.View, { style: [styles23.container, { backgroundColor: bgColor, borderColor }], children: [
15054
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native25.View, { style: [styles23.iconBubble, { backgroundColor: `${color}1F` }], children: icon }),
15055
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native25.View, { style: styles23.textContainer, children: [
15056
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native25.Text, { style: [styles23.text, { color }], children: text }),
15057
+ subText ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native25.Text, { style: [styles23.subText, { color: colors.textSecondary }], numberOfLines: 2, children: subText }) : null
14854
15058
  ] }),
14855
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native24.Text, { style: [styles22.timestamp, { color: colors.textSecondary }], children: formatMessageTime(timestamp) })
15059
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native25.Text, { style: [styles23.timestamp, { color: colors.textSecondary }], children: formatMessageTime(timestamp) })
14856
15060
  ] });
14857
15061
  }
14858
- var styles22 = import_react_native24.StyleSheet.create({
15062
+ var styles23 = import_react_native25.StyleSheet.create({
14859
15063
  container: {
14860
15064
  flexDirection: "row",
14861
15065
  alignItems: "center",
@@ -14894,10 +15098,10 @@ var styles22 = import_react_native24.StyleSheet.create({
14894
15098
  });
14895
15099
 
14896
15100
  // src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
14897
- var import_jsx_runtime27 = require("react/jsx-runtime");
14898
- var CheckIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native_svg15.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native_svg15.Path, { d: "M20 6L9 17l-5-5", stroke: color, strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }) });
14899
- var XIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native_svg15.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native_svg15.Path, { d: "M18 6L6 18M6 6l12 12", stroke: color, strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }) });
14900
- var RefreshIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native_svg15.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15101
+ var import_jsx_runtime30 = require("react/jsx-runtime");
15102
+ var CheckIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native_svg15.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native_svg15.Path, { d: "M20 6L9 17l-5-5", stroke: color, strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }) });
15103
+ var XIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native_svg15.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native_svg15.Path, { d: "M18 6L6 18M6 6l12 12", stroke: color, strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }) });
15104
+ var RefreshIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native_svg15.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14901
15105
  import_react_native_svg15.Path,
14902
15106
  {
14903
15107
  d: "M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0114.85-3.36L23 10 M20.49 15A9 9 0 015.64 18.36L1 14",
@@ -14915,14 +15119,14 @@ function MessageItemImpl({
14915
15119
  isLastInGroup = true
14916
15120
  }) {
14917
15121
  var _a, _b;
14918
- const { t } = (0, import_react_i18next15.useTranslation)();
15122
+ const { t } = (0, import_react_i18next16.useTranslation)();
14919
15123
  const isPrincipal = message.sender_role === "data_principal";
14920
15124
  const senderLabel = isPrincipal ? t("senderYou") || "You" : t("senderPrivacyTeam") || "Privacy Team";
14921
15125
  switch (message.message_type) {
14922
15126
  case "message_sent":
14923
15127
  case "document_submitted":
14924
15128
  case "document_replaced":
14925
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15129
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14926
15130
  ChatBubble,
14927
15131
  {
14928
15132
  message,
@@ -14934,8 +15138,8 @@ function MessageItemImpl({
14934
15138
  }
14935
15139
  );
14936
15140
  case "document_requested":
14937
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
14938
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15141
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
15142
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14939
15143
  ChatBubble,
14940
15144
  {
14941
15145
  message,
@@ -14946,7 +15150,7 @@ function MessageItemImpl({
14946
15150
  isLastInGroup
14947
15151
  }
14948
15152
  ),
14949
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15153
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14950
15154
  DocumentRequestCard,
14951
15155
  {
14952
15156
  message,
@@ -14956,10 +15160,10 @@ function MessageItemImpl({
14956
15160
  )
14957
15161
  ] });
14958
15162
  case "document_approved":
14959
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15163
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14960
15164
  StatusEvent,
14961
15165
  {
14962
- icon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckIcon, { color: "#059669" }),
15166
+ icon: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(CheckIcon, { color: "#059669" }),
14963
15167
  color: "#059669",
14964
15168
  bgColor: "rgba(16, 185, 129, 0.08)",
14965
15169
  borderColor: "rgba(16, 185, 129, 0.2)",
@@ -14968,10 +15172,10 @@ function MessageItemImpl({
14968
15172
  }
14969
15173
  );
14970
15174
  case "document_rejected":
14971
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15175
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14972
15176
  StatusEvent,
14973
15177
  {
14974
- icon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(XIcon, { color: "#DC2626" }),
15178
+ icon: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(XIcon, { color: "#DC2626" }),
14975
15179
  color: "#DC2626",
14976
15180
  bgColor: "rgba(220, 38, 38, 0.08)",
14977
15181
  borderColor: "rgba(220, 38, 38, 0.2)",
@@ -14981,10 +15185,10 @@ function MessageItemImpl({
14981
15185
  }
14982
15186
  );
14983
15187
  case "document_replacement_requested":
14984
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15188
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14985
15189
  StatusEvent,
14986
15190
  {
14987
- icon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RefreshIcon, { color: "#D97706" }),
15191
+ icon: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RefreshIcon, { color: "#D97706" }),
14988
15192
  color: "#D97706",
14989
15193
  bgColor: "rgba(245, 158, 11, 0.08)",
14990
15194
  borderColor: "rgba(245, 158, 11, 0.2)",
@@ -14994,7 +15198,7 @@ function MessageItemImpl({
14994
15198
  }
14995
15199
  );
14996
15200
  default:
14997
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
15201
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
14998
15202
  ChatBubble,
14999
15203
  {
15000
15204
  message,
@@ -15007,14 +15211,14 @@ function MessageItemImpl({
15007
15211
  );
15008
15212
  }
15009
15213
  }
15010
- var MessageItem = import_react17.default.memo(MessageItemImpl);
15214
+ var MessageItem = import_react18.default.memo(MessageItemImpl);
15011
15215
 
15012
15216
  // src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx
15013
- var import_react18 = require("react");
15014
- var import_react_native25 = require("react-native");
15015
- var import_react_i18next16 = require("react-i18next");
15217
+ var import_react19 = require("react");
15218
+ var import_react_native26 = require("react-native");
15219
+ var import_react_i18next17 = require("react-i18next");
15016
15220
  var import_react_native_svg16 = __toESM(require("react-native-svg"));
15017
- var import_jsx_runtime28 = require("react/jsx-runtime");
15221
+ var import_jsx_runtime31 = require("react/jsx-runtime");
15018
15222
  function MessageComposer({
15019
15223
  messageText,
15020
15224
  onMessageTextChange,
@@ -15025,15 +15229,15 @@ function MessageComposer({
15025
15229
  isSending,
15026
15230
  isUploading
15027
15231
  }) {
15028
- const { t } = (0, import_react_i18next16.useTranslation)();
15232
+ const { t } = (0, import_react_i18next17.useTranslation)();
15029
15233
  const { colors } = useTheme();
15030
15234
  const canSend = (messageText.trim().length > 0 || pendingUpload) && !isSending && !isUploading;
15031
- const activate = (0, import_react18.useRef)(new import_react_native25.Animated.Value(canSend ? 1 : 0)).current;
15032
- (0, import_react18.useEffect)(() => {
15033
- import_react_native25.Animated.timing(activate, {
15235
+ const activate = (0, import_react19.useRef)(new import_react_native26.Animated.Value(canSend ? 1 : 0)).current;
15236
+ (0, import_react19.useEffect)(() => {
15237
+ import_react_native26.Animated.timing(activate, {
15034
15238
  toValue: canSend ? 1 : 0,
15035
15239
  duration: 180,
15036
- easing: import_react_native25.Easing.out(import_react_native25.Easing.quad),
15240
+ easing: import_react_native26.Easing.out(import_react_native26.Easing.quad),
15037
15241
  useNativeDriver: false
15038
15242
  }).start();
15039
15243
  }, [canSend, activate]);
@@ -15041,30 +15245,30 @@ function MessageComposer({
15041
15245
  inputRange: [0, 1],
15042
15246
  outputRange: [colors.border, colors.primary]
15043
15247
  });
15044
- const pressScale = (0, import_react18.useRef)(new import_react_native25.Animated.Value(1)).current;
15248
+ const pressScale = (0, import_react19.useRef)(new import_react_native26.Animated.Value(1)).current;
15045
15249
  const handlePressIn = () => {
15046
- import_react_native25.Animated.spring(pressScale, { toValue: 0.88, useNativeDriver: true, speed: 30, bounciness: 0 }).start();
15250
+ import_react_native26.Animated.spring(pressScale, { toValue: 0.88, useNativeDriver: true, speed: 30, bounciness: 0 }).start();
15047
15251
  };
15048
15252
  const handlePressOut = () => {
15049
- import_react_native25.Animated.spring(pressScale, { toValue: 1, useNativeDriver: true, speed: 20, bounciness: 6 }).start();
15253
+ import_react_native26.Animated.spring(pressScale, { toValue: 1, useNativeDriver: true, speed: 20, bounciness: 6 }).start();
15050
15254
  };
15051
- const pillIn = (0, import_react18.useRef)(new import_react_native25.Animated.Value(0)).current;
15052
- (0, import_react18.useEffect)(() => {
15053
- import_react_native25.Animated.timing(pillIn, {
15255
+ const pillIn = (0, import_react19.useRef)(new import_react_native26.Animated.Value(0)).current;
15256
+ (0, import_react19.useEffect)(() => {
15257
+ import_react_native26.Animated.timing(pillIn, {
15054
15258
  toValue: pendingUpload ? 1 : 0,
15055
15259
  duration: 220,
15056
- easing: import_react_native25.Easing.out(import_react_native25.Easing.cubic),
15260
+ easing: import_react_native26.Easing.out(import_react_native26.Easing.cubic),
15057
15261
  useNativeDriver: true
15058
15262
  }).start();
15059
15263
  }, [pendingUpload, pillIn]);
15060
15264
  const pillOpacity = pillIn;
15061
15265
  const pillTranslateY = pillIn.interpolate({ inputRange: [0, 1], outputRange: [8, 0] });
15062
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native25.View, { style: [styles23.container, { borderTopColor: colors.border, backgroundColor: colors.background }], children: [
15063
- pendingUpload && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
15064
- import_react_native25.Animated.View,
15266
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native26.View, { style: [styles24.container, { borderTopColor: colors.border, backgroundColor: colors.background }], children: [
15267
+ pendingUpload && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
15268
+ import_react_native26.Animated.View,
15065
15269
  {
15066
15270
  style: [
15067
- styles23.uploadPill,
15271
+ styles24.uploadPill,
15068
15272
  {
15069
15273
  backgroundColor: `${colors.primary}15`,
15070
15274
  borderColor: `${colors.primary}30`,
@@ -15073,7 +15277,7 @@ function MessageComposer({
15073
15277
  }
15074
15278
  ],
15075
15279
  children: [
15076
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_svg16.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15280
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native_svg16.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15077
15281
  import_react_native_svg16.Path,
15078
15282
  {
15079
15283
  d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z M14 2v6h6",
@@ -15083,13 +15287,13 @@ function MessageComposer({
15083
15287
  strokeLinejoin: "round"
15084
15288
  }
15085
15289
  ) }),
15086
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native25.Text, { style: [styles23.uploadFileName, { color: colors.primary }], numberOfLines: 1, children: [
15290
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native26.Text, { style: [styles24.uploadFileName, { color: colors.primary }], numberOfLines: 1, children: [
15087
15291
  pendingUpload.file_name,
15088
15292
  " (",
15089
15293
  formatFileSize(pendingUpload.file_size),
15090
15294
  ")"
15091
15295
  ] }),
15092
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native25.TouchableOpacity, { onPress: onRemovePendingUpload, hitSlop: { top: 8, bottom: 8, left: 8, right: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_svg16.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15296
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native26.TouchableOpacity, { onPress: onRemovePendingUpload, hitSlop: { top: 8, bottom: 8, left: 8, right: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native_svg16.default, { width: 14, height: 14, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15093
15297
  import_react_native_svg16.Path,
15094
15298
  {
15095
15299
  d: "M18 6L6 18M6 6l12 12",
@@ -15102,16 +15306,16 @@ function MessageComposer({
15102
15306
  ]
15103
15307
  }
15104
15308
  ),
15105
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native25.View, { style: [styles23.pill, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
15106
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15107
- import_react_native25.TouchableOpacity,
15309
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native26.View, { style: [styles24.pill, { backgroundColor: colors.surface, borderColor: colors.border }], children: [
15310
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15311
+ import_react_native26.TouchableOpacity,
15108
15312
  {
15109
- style: styles23.attachButton,
15313
+ style: styles24.attachButton,
15110
15314
  onPress: onAttachClick,
15111
15315
  disabled: isUploading,
15112
15316
  activeOpacity: 0.6,
15113
15317
  accessibilityLabel: t("uploadFile") || "Attach file",
15114
- children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native25.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_svg16.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15318
+ children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native26.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native_svg16.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15115
15319
  import_react_native_svg16.Path,
15116
15320
  {
15117
15321
  d: "M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48",
@@ -15123,10 +15327,10 @@ function MessageComposer({
15123
15327
  ) })
15124
15328
  }
15125
15329
  ),
15126
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15127
- import_react_native25.TextInput,
15330
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15331
+ import_react_native26.TextInput,
15128
15332
  {
15129
- style: [styles23.input, { color: colors.text }],
15333
+ style: [styles24.input, { color: colors.text }],
15130
15334
  value: messageText,
15131
15335
  onChangeText: onMessageTextChange,
15132
15336
  placeholder: t("writeMessagePlaceholder") || "Type a message...",
@@ -15136,8 +15340,8 @@ function MessageComposer({
15136
15340
  editable: !isSending
15137
15341
  }
15138
15342
  ),
15139
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native25.Animated.View, { style: { transform: [{ scale: pressScale }] }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15140
- import_react_native25.TouchableOpacity,
15343
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native26.Animated.View, { style: { transform: [{ scale: pressScale }] }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15344
+ import_react_native26.TouchableOpacity,
15141
15345
  {
15142
15346
  onPress: onSend,
15143
15347
  onPressIn: handlePressIn,
@@ -15145,7 +15349,7 @@ function MessageComposer({
15145
15349
  disabled: !canSend,
15146
15350
  activeOpacity: 0.85,
15147
15351
  accessibilityLabel: t("send") || "Send",
15148
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native25.Animated.View, { style: [styles23.sendButton, { backgroundColor: sendBgColor }], children: isSending ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native25.ActivityIndicator, { size: "small", color: colors.primaryText }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_svg16.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
15352
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native26.Animated.View, { style: [styles24.sendButton, { backgroundColor: sendBgColor }], children: isSending ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native26.ActivityIndicator, { size: "small", color: colors.primaryText }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native_svg16.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15149
15353
  import_react_native_svg16.Path,
15150
15354
  {
15151
15355
  d: "M22 2L11 13 M22 2l-7 20-4-9-9-4 20-7z",
@@ -15160,7 +15364,7 @@ function MessageComposer({
15160
15364
  ] })
15161
15365
  ] });
15162
15366
  }
15163
- var styles23 = import_react_native25.StyleSheet.create({
15367
+ var styles24 = import_react_native26.StyleSheet.create({
15164
15368
  container: {
15165
15369
  borderTopWidth: 1,
15166
15370
  paddingHorizontal: 12,
@@ -15220,7 +15424,7 @@ var styles23 = import_react_native25.StyleSheet.create({
15220
15424
  });
15221
15425
 
15222
15426
  // src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
15223
- var import_jsx_runtime29 = require("react/jsx-runtime");
15427
+ var import_jsx_runtime32 = require("react/jsx-runtime");
15224
15428
  var STREAK_GAP_MS = 5 * 60 * 1e3;
15225
15429
  function isStreakBoundary(a, b) {
15226
15430
  if (!a || !b) return true;
@@ -15249,11 +15453,11 @@ function sameDay(a, b) {
15249
15453
  return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
15250
15454
  }
15251
15455
  function MessagesTab({ caseUuid }) {
15252
- const { t } = (0, import_react_i18next17.useTranslation)();
15456
+ const { t } = (0, import_react_i18next18.useTranslation)();
15253
15457
  const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
15254
15458
  const { consentClient } = useBaseUrl();
15255
15459
  const { colors } = useTheme();
15256
- const authContext = (0, import_react19.useMemo)(() => ({
15460
+ const authContext = (0, import_react20.useMemo)(() => ({
15257
15461
  accessToken,
15258
15462
  refreshToken,
15259
15463
  onError,
@@ -15265,13 +15469,13 @@ function MessagesTab({ caseUuid }) {
15265
15469
  caseUuid,
15266
15470
  authContext
15267
15471
  );
15268
- const [messageText, setMessageText] = (0, import_react19.useState)("");
15269
- const [pendingUpload, setPendingUpload] = (0, import_react19.useState)(null);
15270
- const [isSending, setIsSending] = (0, import_react19.useState)(false);
15271
- const [isUploading, setIsUploading] = (0, import_react19.useState)(false);
15272
- const [isSubmittingForRequest, setIsSubmittingForRequest] = (0, import_react19.useState)(false);
15273
- const flatListRef = (0, import_react19.useRef)(null);
15274
- (0, import_react19.useEffect)(() => {
15472
+ const [messageText, setMessageText] = (0, import_react20.useState)("");
15473
+ const [pendingUpload, setPendingUpload] = (0, import_react20.useState)(null);
15474
+ const [isSending, setIsSending] = (0, import_react20.useState)(false);
15475
+ const [isUploading, setIsUploading] = (0, import_react20.useState)(false);
15476
+ const [isSubmittingForRequest, setIsSubmittingForRequest] = (0, import_react20.useState)(false);
15477
+ const flatListRef = (0, import_react20.useRef)(null);
15478
+ (0, import_react20.useEffect)(() => {
15275
15479
  if (messages && messages.length > 0) {
15276
15480
  setTimeout(() => {
15277
15481
  var _a;
@@ -15279,7 +15483,7 @@ function MessagesTab({ caseUuid }) {
15279
15483
  }, 100);
15280
15484
  }
15281
15485
  }, [messages == null ? void 0 : messages.length]);
15282
- const handleSend = (0, import_react19.useCallback)(async () => {
15486
+ const handleSend = (0, import_react20.useCallback)(async () => {
15283
15487
  if (!messageText.trim() && !pendingUpload) return;
15284
15488
  if (!organizationId || !workspaceId) return;
15285
15489
  setIsSending(true);
@@ -15303,7 +15507,7 @@ function MessagesTab({ caseUuid }) {
15303
15507
  setIsSending(false);
15304
15508
  }
15305
15509
  }, [messageText, pendingUpload, organizationId, workspaceId, caseUuid, authContext, consentClient, refetch]);
15306
- const handleAttach = (0, import_react19.useCallback)(async () => {
15510
+ const handleAttach = (0, import_react20.useCallback)(async () => {
15307
15511
  if (!organizationId || !workspaceId) return;
15308
15512
  try {
15309
15513
  const file = await pickFile();
@@ -15336,10 +15540,10 @@ function MessagesTab({ caseUuid }) {
15336
15540
  setIsUploading(false);
15337
15541
  }
15338
15542
  }, [organizationId, workspaceId, caseUuid, authContext, consentClient]);
15339
- const handleUploadForRequest = (0, import_react19.useCallback)((_requestEventUuid) => {
15543
+ const handleUploadForRequest = (0, import_react20.useCallback)((_requestEventUuid) => {
15340
15544
  handleAttach();
15341
15545
  }, [handleAttach]);
15342
- const messagesList = (0, import_react19.useMemo)(() => {
15546
+ const messagesList = (0, import_react20.useMemo)(() => {
15343
15547
  const list = messages ? [...messages] : [];
15344
15548
  list.sort((a, b) => {
15345
15549
  const ta = new Date(a.created_at).getTime();
@@ -15348,17 +15552,17 @@ function MessagesTab({ caseUuid }) {
15348
15552
  });
15349
15553
  return list;
15350
15554
  }, [messages]);
15351
- const keyExtractor = (0, import_react19.useCallback)((item) => item.uuid, []);
15352
- const renderMessage = (0, import_react19.useCallback)(
15555
+ const keyExtractor = (0, import_react20.useCallback)((item) => item.uuid, []);
15556
+ const renderMessage = (0, import_react20.useCallback)(
15353
15557
  ({ item, index }) => {
15354
15558
  const prev = index > 0 ? messagesList[index - 1] : void 0;
15355
15559
  const next = index < messagesList.length - 1 ? messagesList[index + 1] : void 0;
15356
15560
  const isFirstInGroup = isStreakBoundary(prev, item);
15357
15561
  const isLastInGroup = isStreakBoundary(item, next);
15358
15562
  const dateSeparator = getDateSeparator(prev == null ? void 0 : prev.created_at, item.created_at, t);
15359
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
15360
- dateSeparator ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.View, { style: styles24.daySeparator, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.View, { style: [styles24.dayPill, { backgroundColor: colors.surface, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.Text, { style: [styles24.dayPillText, { color: colors.textSecondary }], children: dateSeparator }) }) }) : null,
15361
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
15563
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
15564
+ dateSeparator ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.View, { style: styles25.daySeparator, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.View, { style: [styles25.dayPill, { backgroundColor: colors.surface, borderColor: colors.border }], children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.Text, { style: [styles25.dayPillText, { color: colors.textSecondary }], children: dateSeparator }) }) }) : null,
15565
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15362
15566
  MessageItem,
15363
15567
  {
15364
15568
  message: item,
@@ -15373,20 +15577,20 @@ function MessagesTab({ caseUuid }) {
15373
15577
  [messagesList, handleUploadForRequest, isSubmittingForRequest, colors, t]
15374
15578
  );
15375
15579
  if (isLoading) {
15376
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.View, { style: styles24.centered, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.ActivityIndicator, { size: "large", color: colors.primary }) });
15580
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.View, { style: styles25.centered, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.ActivityIndicator, { size: "large", color: colors.primary }) });
15377
15581
  }
15378
15582
  if (error) {
15379
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.View, { style: styles24.centered, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.Text, { style: [styles24.errorText, { color: colors.error }], children: t("errorLoadingMessages") || "Error loading messages" }) });
15583
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.View, { style: styles25.centered, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.Text, { style: [styles25.errorText, { color: colors.error }], children: t("errorLoadingMessages") || "Error loading messages" }) });
15380
15584
  }
15381
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
15382
- import_react_native26.KeyboardAvoidingView,
15585
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
15586
+ import_react_native27.KeyboardAvoidingView,
15383
15587
  {
15384
- style: styles24.container,
15385
- behavior: import_react_native26.Platform.OS === "ios" ? "padding" : "height",
15386
- keyboardVerticalOffset: import_react_native26.Platform.OS === "ios" ? 100 : 0,
15588
+ style: styles25.container,
15589
+ behavior: import_react_native27.Platform.OS === "ios" ? "padding" : "height",
15590
+ keyboardVerticalOffset: import_react_native27.Platform.OS === "ios" ? 100 : 0,
15387
15591
  children: [
15388
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native26.View, { style: styles24.secureRow, children: [
15389
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native_svg17.default, { width: 12, height: 12, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
15592
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native27.View, { style: styles25.secureRow, children: [
15593
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native_svg17.default, { width: 12, height: 12, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15390
15594
  import_react_native_svg17.Path,
15391
15595
  {
15392
15596
  d: "M5 11h14a1 1 0 011 1v8a1 1 0 01-1 1H5a1 1 0 01-1-1v-8a1 1 0 011-1zM8 11V7a4 4 0 118 0v4",
@@ -15396,18 +15600,18 @@ function MessagesTab({ caseUuid }) {
15396
15600
  strokeLinejoin: "round"
15397
15601
  }
15398
15602
  ) }),
15399
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.Text, { style: [styles24.secureText, { color: colors.textSecondary }], children: t("secureMessagesNotice") || "Messages are encrypted and securely transmitted" })
15603
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.Text, { style: [styles25.secureText, { color: colors.textSecondary }], children: t("secureMessagesNotice") || "Messages are encrypted and securely transmitted" })
15400
15604
  ] }),
15401
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
15402
- import_react_native26.FlatList,
15605
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15606
+ import_react_native27.FlatList,
15403
15607
  {
15404
15608
  ref: flatListRef,
15405
15609
  data: messagesList,
15406
15610
  keyExtractor,
15407
15611
  renderItem: renderMessage,
15408
- contentContainerStyle: styles24.messagesList,
15409
- ListEmptyComponent: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native26.View, { style: styles24.emptyContainer, children: [
15410
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.View, { style: [styles24.emptyIconWrap, { backgroundColor: `${colors.primary}12` }], children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native_svg17.default, { width: 28, height: 28, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
15612
+ contentContainerStyle: styles25.messagesList,
15613
+ ListEmptyComponent: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native27.View, { style: styles25.emptyContainer, children: [
15614
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.View, { style: [styles25.emptyIconWrap, { backgroundColor: `${colors.primary}12` }], children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native_svg17.default, { width: 28, height: 28, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15411
15615
  import_react_native_svg17.Path,
15412
15616
  {
15413
15617
  d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z",
@@ -15417,8 +15621,8 @@ function MessagesTab({ caseUuid }) {
15417
15621
  strokeLinejoin: "round"
15418
15622
  }
15419
15623
  ) }) }),
15420
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.Text, { style: [styles24.emptyTitle, { color: colors.text }], children: t("noMessagesYet") || "No messages yet" }),
15421
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native26.Text, { style: [styles24.emptySubtitle, { color: colors.textSecondary }], children: t("noMessagesYetSubtitle", "Start the conversation below") })
15624
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.Text, { style: [styles25.emptyTitle, { color: colors.text }], children: t("noMessagesYet") || "No messages yet" }),
15625
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native27.Text, { style: [styles25.emptySubtitle, { color: colors.textSecondary }], children: t("noMessagesYetSubtitle", "Start the conversation below") })
15422
15626
  ] }),
15423
15627
  onContentSizeChange: () => {
15424
15628
  var _a;
@@ -15430,7 +15634,7 @@ function MessagesTab({ caseUuid }) {
15430
15634
  removeClippedSubviews: true
15431
15635
  }
15432
15636
  ),
15433
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
15637
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15434
15638
  MessageComposer,
15435
15639
  {
15436
15640
  messageText,
@@ -15447,7 +15651,7 @@ function MessagesTab({ caseUuid }) {
15447
15651
  }
15448
15652
  );
15449
15653
  }
15450
- var styles24 = import_react_native26.StyleSheet.create({
15654
+ var styles25 = import_react_native27.StyleSheet.create({
15451
15655
  container: {
15452
15656
  flex: 1
15453
15657
  },
@@ -15522,16 +15726,16 @@ var styles24 = import_react_native26.StyleSheet.create({
15522
15726
  });
15523
15727
 
15524
15728
  // src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
15525
- var import_jsx_runtime30 = require("react/jsx-runtime");
15729
+ var import_jsx_runtime33 = require("react/jsx-runtime");
15526
15730
  function CaseDetailsPage() {
15527
15731
  var _a, _b;
15528
- const { t } = (0, import_react_i18next18.useTranslation)();
15732
+ const { t } = (0, import_react_i18next19.useTranslation)();
15529
15733
  const { navigateTo, selectedCase, setSelectedCase, pendingCaseUuid } = useInternalNavigation();
15530
15734
  const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
15531
15735
  const { colors } = useTheme();
15532
15736
  const requestTypeLabels = useRequestTypeLabels();
15533
- const [activeTab, setActiveTab] = (0, import_react20.useState)("request-details");
15534
- const authContext = (0, import_react20.useMemo)(() => ({
15737
+ const [activeTab, setActiveTab] = (0, import_react21.useState)("request-details");
15738
+ const authContext = (0, import_react21.useMemo)(() => ({
15535
15739
  accessToken,
15536
15740
  refreshToken,
15537
15741
  onError,
@@ -15544,7 +15748,7 @@ function CaseDetailsPage() {
15544
15748
  email != null ? email : void 0,
15545
15749
  authContext
15546
15750
  );
15547
- (0, import_react20.useEffect)(() => {
15751
+ (0, import_react21.useEffect)(() => {
15548
15752
  if (!cases) return;
15549
15753
  if (cases.length === 0) {
15550
15754
  navigateTo("form");
@@ -15558,23 +15762,23 @@ function CaseDetailsPage() {
15558
15762
  navigateTo("form");
15559
15763
  }
15560
15764
  }, [cases, targetUuid, setSelectedCase, navigateTo]);
15561
- (0, import_react20.useEffect)(() => {
15765
+ (0, import_react21.useEffect)(() => {
15562
15766
  if (!selectedCase && !targetUuid && !isLoading) {
15563
15767
  navigateTo("form");
15564
15768
  }
15565
15769
  }, [selectedCase, targetUuid, isLoading, navigateTo]);
15566
15770
  if (!selectedCase) {
15567
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.View, { style: styles25.centered, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.ActivityIndicator, { size: "large", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.Text, { style: [styles25.emptyText, { color: colors.textSecondary }], children: t("noCasesYet") || "No case selected" }) });
15771
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.View, { style: styles26.centered, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.ActivityIndicator, { size: "large", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.Text, { style: [styles26.emptyText, { color: colors.textSecondary }], children: t("noCasesYet") || "No case selected" }) });
15568
15772
  }
15569
15773
  const requestTypeLabel = requestTypeLabels[(_b = selectedCase.request_type) == null ? void 0 : _b.toUpperCase()] || selectedCase.request_type_display || formatCaseStatus(selectedCase.request_type || "");
15570
15774
  const tabs = [
15571
15775
  { id: "request-details", label: t("requestDetails") || "Request Details" },
15572
15776
  { id: "messages", label: t("messages") || "Messages" }
15573
15777
  ];
15574
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native27.View, { style: [styles25.container, { backgroundColor: colors.background }], children: [
15575
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native27.View, { style: [styles25.header, { borderBottomColor: colors.border }], children: [
15576
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native27.TouchableOpacity, { style: styles25.backButton, onPress: () => navigateTo("form"), activeOpacity: 0.7, children: [
15577
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native_svg18.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
15778
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native28.View, { style: [styles26.container, { backgroundColor: colors.background }], children: [
15779
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native28.View, { style: [styles26.header, { borderBottomColor: colors.border }], children: [
15780
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native28.TouchableOpacity, { style: styles26.backButton, onPress: () => navigateTo("form"), activeOpacity: 0.7, children: [
15781
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native_svg18.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
15578
15782
  import_react_native_svg18.Path,
15579
15783
  {
15580
15784
  d: "M19 12H5m0 0l7 7m-7-7l7-7",
@@ -15584,12 +15788,12 @@ function CaseDetailsPage() {
15584
15788
  strokeLinejoin: "round"
15585
15789
  }
15586
15790
  ) }),
15587
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.Text, { style: [styles25.backText, { color: colors.primary }], children: t("backToHome") || "Back" })
15791
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.Text, { style: [styles26.backText, { color: colors.primary }], children: t("backToHome") || "Back" })
15588
15792
  ] }),
15589
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native27.View, { style: styles25.caseInfo, children: [
15590
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native27.View, { style: styles25.caseIdRow, children: [
15591
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.Text, { style: [styles25.caseId, { color: colors.text }], children: selectedCase.case_id }),
15592
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
15793
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native28.View, { style: styles26.caseInfo, children: [
15794
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native28.View, { style: styles26.caseIdRow, children: [
15795
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.Text, { style: [styles26.caseId, { color: colors.text }], children: selectedCase.case_id }),
15796
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
15593
15797
  PCBadge,
15594
15798
  {
15595
15799
  status: getCaseStatusVariant(selectedCase.status),
@@ -15597,7 +15801,7 @@ function CaseDetailsPage() {
15597
15801
  }
15598
15802
  )
15599
15803
  ] }),
15600
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native27.Text, { style: [styles25.caseType, { color: colors.textSecondary }], children: [
15804
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native28.Text, { style: [styles26.caseType, { color: colors.textSecondary }], children: [
15601
15805
  requestTypeLabel,
15602
15806
  " ",
15603
15807
  "\xB7",
@@ -15608,39 +15812,39 @@ function CaseDetailsPage() {
15608
15812
  ] })
15609
15813
  ] })
15610
15814
  ] }),
15611
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.View, { style: [styles25.tabBar, { borderBottomColor: colors.border }], children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
15612
- import_react_native27.TouchableOpacity,
15815
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.View, { style: [styles26.tabBar, { borderBottomColor: colors.border }], children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
15816
+ import_react_native28.TouchableOpacity,
15613
15817
  {
15614
- style: [styles25.tab, activeTab === tab.id && styles25.tabActive],
15818
+ style: [styles26.tab, activeTab === tab.id && styles26.tabActive],
15615
15819
  onPress: () => setActiveTab(tab.id),
15616
15820
  activeOpacity: 0.7,
15617
15821
  children: [
15618
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
15619
- import_react_native27.Text,
15822
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
15823
+ import_react_native28.Text,
15620
15824
  {
15621
15825
  style: [
15622
- styles25.tabText,
15826
+ styles26.tabText,
15623
15827
  { color: activeTab === tab.id ? colors.primary : colors.textSecondary },
15624
- activeTab === tab.id && styles25.tabTextActive
15828
+ activeTab === tab.id && styles26.tabTextActive
15625
15829
  ],
15626
15830
  children: tab.label
15627
15831
  }
15628
15832
  ),
15629
- activeTab === tab.id && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.View, { style: [styles25.tabIndicator, { backgroundColor: colors.primary }] })
15833
+ activeTab === tab.id && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.View, { style: [styles26.tabIndicator, { backgroundColor: colors.primary }] })
15630
15834
  ]
15631
15835
  },
15632
15836
  tab.id
15633
15837
  )) }),
15634
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_native27.View, { style: styles25.tabContent, children: activeTab === "request-details" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
15838
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native28.View, { style: styles26.tabContent, children: activeTab === "request-details" ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
15635
15839
  RequestDetailsTab,
15636
15840
  {
15637
15841
  selectedCase,
15638
15842
  requestTypeLabel
15639
15843
  }
15640
- ) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(MessagesTab, { caseUuid: selectedCase.uuid }) })
15844
+ ) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MessagesTab, { caseUuid: selectedCase.uuid }) })
15641
15845
  ] });
15642
15846
  }
15643
- var styles25 = import_react_native27.StyleSheet.create({
15847
+ var styles26 = import_react_native28.StyleSheet.create({
15644
15848
  container: {
15645
15849
  flex: 1
15646
15850
  },
@@ -15714,21 +15918,23 @@ var styles25 = import_react_native27.StyleSheet.create({
15714
15918
  });
15715
15919
 
15716
15920
  // src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
15717
- var import_jsx_runtime31 = require("react/jsx-runtime");
15921
+ var import_jsx_runtime34 = require("react/jsx-runtime");
15922
+ var privacyCenterQueryClient = new import_react_query2.QueryClient();
15718
15923
  function PrivacyCenterContent({ onBack }) {
15719
15924
  const { currentPage } = useInternalNavigation();
15720
15925
  const { colors } = useTheme();
15721
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_native28.View, { style: [styles26.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native28.View, { style: styles26.mainColumn, children: [
15722
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Navbar, { onBack }),
15723
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native28.View, { style: styles26.content, children: [
15724
- currentPage === "consent-manager" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ConsentManager, {}),
15725
- currentPage === "form" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(FormPage, {}),
15726
- currentPage === "activity" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ActivitiesList, {}),
15727
- currentPage === "receipts" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ReceiptsList, {}),
15728
- currentPage === "case-details" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(CaseDetailsPage, {})
15729
- ] }),
15730
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(BottomTabBar, {}),
15731
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Footer, {})
15926
+ const { status } = useDataAvailability();
15927
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_native29.View, { style: [styles27.container, { backgroundColor: colors.background }], children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_react_native29.View, { style: styles27.mainColumn, children: [
15928
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Navbar, { onBack }),
15929
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_native29.View, { style: styles27.content, children: status === "checking" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PCLoader, {}) : status === "empty" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PrivacyCenterEmptyState, {}) : /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
15930
+ currentPage === "consent-manager" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ConsentManager, {}),
15931
+ currentPage === "form" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(FormPage, {}),
15932
+ currentPage === "activity" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ActivitiesList, {}),
15933
+ currentPage === "receipts" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ReceiptsList, {}),
15934
+ currentPage === "case-details" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CaseDetailsPage, {})
15935
+ ] }) }),
15936
+ status === "has-data" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(BottomTabBar, {}),
15937
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Footer, {})
15732
15938
  ] }) });
15733
15939
  }
15734
15940
  function RedactoPrivacyCenter({
@@ -15741,17 +15947,17 @@ function RedactoPrivacyCenter({
15741
15947
  initialPage = "consent-manager",
15742
15948
  onBack
15743
15949
  }) {
15744
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_i18next19.I18nextProvider, { i18n: i18n_default, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ThemeProvider, { defaultTheme: theme, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(BaseUrlProvider, { baseUrl, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
15950
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_query2.QueryClientProvider, { client: privacyCenterQueryClient, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_i18next20.I18nextProvider, { i18n: i18n_default, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ThemeProvider, { defaultTheme: theme, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(BaseUrlProvider, { baseUrl, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
15745
15951
  AuthProvider,
15746
15952
  {
15747
15953
  accessToken,
15748
15954
  refreshToken,
15749
15955
  onError,
15750
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(NavigationProvider, { initialPage, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PrivacyCenterContent, { onBack }) })
15956
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(NavigationProvider, { initialPage, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(DataAvailabilityProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PrivacyCenterContent, { onBack }) }) })
15751
15957
  }
15752
- ) }) }) });
15958
+ ) }) }) }) });
15753
15959
  }
15754
- var styles26 = import_react_native28.StyleSheet.create({
15960
+ var styles27 = import_react_native29.StyleSheet.create({
15755
15961
  container: {
15756
15962
  flex: 1
15757
15963
  },
@@ -15765,11 +15971,11 @@ var styles26 = import_react_native28.StyleSheet.create({
15765
15971
  });
15766
15972
 
15767
15973
  // src/RedactoPrivacyCenter/components/SideMenu.tsx
15768
- var import_react_native29 = require("react-native");
15769
- var import_react_i18next20 = require("react-i18next");
15974
+ var import_react_native30 = require("react-native");
15975
+ var import_react_i18next21 = require("react-i18next");
15770
15976
  var import_react_native_svg19 = __toESM(require("react-native-svg"));
15771
- var import_jsx_runtime32 = require("react/jsx-runtime");
15772
- var ConsentIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native_svg19.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15977
+ var import_jsx_runtime35 = require("react/jsx-runtime");
15978
+ var ConsentIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native_svg19.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15773
15979
  import_react_native_svg19.Path,
15774
15980
  {
15775
15981
  d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z",
@@ -15779,7 +15985,7 @@ var ConsentIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runti
15779
15985
  strokeLinejoin: "round"
15780
15986
  }
15781
15987
  ) });
15782
- var FormIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native_svg19.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15988
+ var FormIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native_svg19.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15783
15989
  import_react_native_svg19.Path,
15784
15990
  {
15785
15991
  d: "M9 4h6a2 2 0 012 2v14a2 2 0 01-2 2H9a2 2 0 01-2-2V6a2 2 0 012-2z M9 4V2h6v2 M9 12h6 M9 16h6",
@@ -15789,7 +15995,7 @@ var FormIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime3
15789
15995
  strokeLinejoin: "round"
15790
15996
  }
15791
15997
  ) });
15792
- var ActivityIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native_svg19.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15998
+ var ActivityIcon = ({ color, size = 18 }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native_svg19.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15793
15999
  import_react_native_svg19.Path,
15794
16000
  {
15795
16001
  d: "M12 2a10 10 0 100 20 10 10 0 000-20z M12 6v6l4 2",
@@ -15805,64 +16011,64 @@ var MENU_ITEMS = [
15805
16011
  { page: "activity", labelKey: "activities", fallback: "Activities", icon: ActivityIcon }
15806
16012
  ];
15807
16013
  function SideMenu({ onBack } = {}) {
15808
- const { t } = (0, import_react_i18next20.useTranslation)();
16014
+ const { t } = (0, import_react_i18next21.useTranslation)();
15809
16015
  const { currentPage, navigateTo } = useInternalNavigation();
15810
16016
  const { organizationName, email } = useAuth();
15811
16017
  const { colors } = useTheme();
15812
16018
  const orgInitial = organizationName ? organizationName.charAt(0).toUpperCase() : "R";
15813
16019
  const displayName = organizationName || "Organization";
15814
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native29.View, { style: [styles27.container, { backgroundColor: colors.surface }], children: [
15815
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native29.View, { style: styles27.orgSection, children: [
15816
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: [styles27.avatar, { backgroundColor: colors.primary }], children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.Text, { style: [styles27.avatarText, { color: colors.primaryText }], children: orgInitial }) }),
15817
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_react_native29.View, { style: styles27.orgInfo, children: [
15818
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.Text, { style: [styles27.orgName, { color: colors.text }], numberOfLines: 1, children: displayName }),
15819
- email ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.Text, { style: [styles27.orgEmail, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
16020
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_react_native30.View, { style: [styles28.container, { backgroundColor: colors.surface }], children: [
16021
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_react_native30.View, { style: styles28.orgSection, children: [
16022
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: [styles28.avatar, { backgroundColor: colors.primary }], children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.Text, { style: [styles28.avatarText, { color: colors.primaryText }], children: orgInitial }) }),
16023
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_react_native30.View, { style: styles28.orgInfo, children: [
16024
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.Text, { style: [styles28.orgName, { color: colors.text }], numberOfLines: 1, children: displayName }),
16025
+ email ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.Text, { style: [styles28.orgEmail, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
15820
16026
  ] })
15821
16027
  ] }),
15822
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: [styles27.divider, { backgroundColor: colors.border }] }),
15823
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: styles27.menuSection, children: MENU_ITEMS.map((item) => {
16028
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: [styles28.divider, { backgroundColor: colors.border }] }),
16029
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: styles28.menuSection, children: MENU_ITEMS.map((item) => {
15824
16030
  const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
15825
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
15826
- import_react_native29.TouchableOpacity,
16031
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
16032
+ import_react_native30.TouchableOpacity,
15827
16033
  {
15828
16034
  style: [
15829
- styles27.menuItem,
15830
- isActive && [styles27.menuItemActive, { backgroundColor: `${colors.primary}14` }]
16035
+ styles28.menuItem,
16036
+ isActive && [styles28.menuItemActive, { backgroundColor: `${colors.primary}14` }]
15831
16037
  ],
15832
16038
  onPress: () => navigateTo(item.page),
15833
16039
  activeOpacity: 0.7,
15834
16040
  accessibilityRole: "button",
15835
16041
  accessibilityState: { selected: isActive },
15836
16042
  children: [
15837
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: styles27.menuIconWrap, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(item.icon, { color: isActive ? colors.primary : colors.textSecondary }) }),
15838
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
15839
- import_react_native29.Text,
16043
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: styles28.menuIconWrap, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(item.icon, { color: isActive ? colors.primary : colors.textSecondary }) }),
16044
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
16045
+ import_react_native30.Text,
15840
16046
  {
15841
16047
  style: [
15842
- styles27.menuLabel,
16048
+ styles28.menuLabel,
15843
16049
  { color: isActive ? colors.primary : colors.text },
15844
- isActive && styles27.menuLabelActive
16050
+ isActive && styles28.menuLabelActive
15845
16051
  ],
15846
16052
  children: t(item.labelKey) || item.fallback
15847
16053
  }
15848
16054
  ),
15849
- isActive ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: [styles27.activeIndicator, { backgroundColor: colors.primary }] }) : null
16055
+ isActive ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: [styles28.activeIndicator, { backgroundColor: colors.primary }] }) : null
15850
16056
  ]
15851
16057
  },
15852
16058
  item.page
15853
16059
  );
15854
16060
  }) }),
15855
- onBack ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
15856
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: { flex: 1 } }),
15857
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.View, { style: [styles27.divider, { backgroundColor: colors.border }] }),
15858
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
15859
- import_react_native29.TouchableOpacity,
16061
+ onBack ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
16062
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: { flex: 1 } }),
16063
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.View, { style: [styles28.divider, { backgroundColor: colors.border }] }),
16064
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
16065
+ import_react_native30.TouchableOpacity,
15860
16066
  {
15861
- style: styles27.backBtn,
16067
+ style: styles28.backBtn,
15862
16068
  onPress: () => navigateBack(onBack),
15863
16069
  activeOpacity: 0.7,
15864
16070
  children: [
15865
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native_svg19.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: onBack === "back" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
16071
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native_svg19.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: onBack === "back" ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15866
16072
  import_react_native_svg19.Path,
15867
16073
  {
15868
16074
  d: "M19 12H5m0 0l7 7m-7-7l7-7",
@@ -15871,7 +16077,7 @@ function SideMenu({ onBack } = {}) {
15871
16077
  strokeLinecap: "round",
15872
16078
  strokeLinejoin: "round"
15873
16079
  }
15874
- ) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
16080
+ ) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
15875
16081
  import_react_native_svg19.Path,
15876
16082
  {
15877
16083
  d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
@@ -15881,14 +16087,14 @@ function SideMenu({ onBack } = {}) {
15881
16087
  strokeLinejoin: "round"
15882
16088
  }
15883
16089
  ) }),
15884
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_native29.Text, { style: [styles27.backBtnLabel, { color: colors.textSecondary }], children: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out" })
16090
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_native30.Text, { style: [styles28.backBtnLabel, { color: colors.textSecondary }], children: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out" })
15885
16091
  ]
15886
16092
  }
15887
16093
  )
15888
16094
  ] }) : null
15889
16095
  ] });
15890
16096
  }
15891
- var styles27 = import_react_native29.StyleSheet.create({
16097
+ var styles28 = import_react_native30.StyleSheet.create({
15892
16098
  container: {
15893
16099
  flex: 1,
15894
16100
  paddingTop: 12
@@ -15972,34 +16178,6 @@ var styles27 = import_react_native29.StyleSheet.create({
15972
16178
  fontWeight: "500"
15973
16179
  }
15974
16180
  });
15975
-
15976
- // src/RedactoPrivacyCenter/ui/PCLoader.tsx
15977
- var import_react_native30 = require("react-native");
15978
- var import_jsx_runtime33 = require("react/jsx-runtime");
15979
- var PCLoader = ({
15980
- size = "large",
15981
- color = "#4f87ff",
15982
- text
15983
- }) => {
15984
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native30.View, { style: styles28.container, children: [
15985
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native30.ActivityIndicator, { size, color }),
15986
- text ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native30.Text, { style: styles28.text, children: text }) : null
15987
- ] });
15988
- };
15989
- var styles28 = import_react_native30.StyleSheet.create({
15990
- container: {
15991
- flex: 1,
15992
- alignItems: "center",
15993
- justifyContent: "center",
15994
- padding: 24
15995
- },
15996
- text: {
15997
- marginTop: 12,
15998
- fontSize: 14,
15999
- color: "#667085",
16000
- textAlign: "center"
16001
- }
16002
- });
16003
16181
  // Annotate the CommonJS export names for ESM import in node:
16004
16182
  0 && (module.exports = {
16005
16183
  ActivitiesList,