@burdenoff/microfe-export 2026.830.1 → 2026.830.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/export/ExportRoot.d.ts.map +1 -1
  2. package/dist/export/ExportRoot.js +41 -36
  3. package/dist/export/ExportRoot.js.map +1 -1
  4. package/dist/export/ExportRoutes.d.ts.map +1 -1
  5. package/dist/export/ExportRoutes.js +75 -66
  6. package/dist/export/ExportRoutes.js.map +1 -1
  7. package/dist/export/components/ExportProgressBar.d.ts.map +1 -1
  8. package/dist/export/components/ExportProgressBar.js +19 -18
  9. package/dist/export/components/ExportProgressBar.js.map +1 -1
  10. package/dist/export/components/ExportStatusBadge.d.ts.map +1 -1
  11. package/dist/export/components/ExportStatusBadge.js +19 -20
  12. package/dist/export/components/ExportStatusBadge.js.map +1 -1
  13. package/dist/export/hooks/useTr.d.ts +19 -0
  14. package/dist/export/hooks/useTr.d.ts.map +1 -0
  15. package/dist/export/hooks/useTr.js +15 -0
  16. package/dist/export/hooks/useTr.js.map +1 -0
  17. package/dist/export/index.d.ts +1 -0
  18. package/dist/export/index.d.ts.map +1 -1
  19. package/dist/export/index.js +1 -0
  20. package/dist/export/pages/CreateExportPage.d.ts +4 -0
  21. package/dist/export/pages/CreateExportPage.d.ts.map +1 -1
  22. package/dist/export/pages/CreateExportPage.js +271 -283
  23. package/dist/export/pages/CreateExportPage.js.map +1 -1
  24. package/dist/export/pages/ExportDashboardPage.d.ts.map +1 -1
  25. package/dist/export/pages/ExportDashboardPage.js +71 -72
  26. package/dist/export/pages/ExportDashboardPage.js.map +1 -1
  27. package/dist/export/pages/ExportDetailPage.d.ts.map +1 -1
  28. package/dist/export/pages/ExportDetailPage.js +171 -173
  29. package/dist/export/pages/ExportDetailPage.js.map +1 -1
  30. package/dist/export/pages/ExportHistoryPage.d.ts.map +1 -1
  31. package/dist/export/pages/ExportHistoryPage.js +110 -111
  32. package/dist/export/pages/ExportHistoryPage.js.map +1 -1
  33. package/dist/export/pages/ExportLandingPage.d.ts.map +1 -1
  34. package/dist/export/pages/ExportLandingPage.js +28 -27
  35. package/dist/export/pages/ExportLandingPage.js.map +1 -1
  36. package/dist/export/pages/ExportTemplatesPage.d.ts.map +1 -1
  37. package/dist/export/pages/ExportTemplatesPage.js +115 -116
  38. package/dist/export/pages/ExportTemplatesPage.js.map +1 -1
  39. package/dist/export/pages/TemplateDetailPage.d.ts.map +1 -1
  40. package/dist/export/pages/TemplateDetailPage.js +122 -118
  41. package/dist/export/pages/TemplateDetailPage.js.map +1 -1
  42. package/dist/export/utils/i18n.d.ts +18 -2
  43. package/dist/export/utils/i18n.d.ts.map +1 -1
  44. package/dist/export/utils/i18n.js +2 -9
  45. package/dist/export/utils/i18n.js.map +1 -1
  46. package/dist/index.js +2 -1
  47. package/dist/translations/en.d.ts +454 -0
  48. package/dist/translations/en.d.ts.map +1 -0
  49. package/dist/translations/en.js +417 -0
  50. package/dist/translations/en.js.map +1 -0
  51. package/package.json +1 -1
@@ -1,263 +1,247 @@
1
1
  import { useExport as e } from "../providers/ExportProvider.js";
2
- import { useAvailableEntities as t, useCreateExportJob as n, useExportTemplates as r } from "../hooks/useExportQueries.js";
2
+ import { useTr as t } from "../hooks/useTr.js";
3
+ import { useAvailableEntities as n, useCreateExportJob as r, useExportTemplates as ee } from "../hooks/useExportQueries.js";
3
4
  import { cn as i } from "../utils/cn.js";
4
5
  import { getFormatDisplayName as a } from "../constants/enums.js";
5
- import { tWithFallback as ee } from "../utils/i18n.js";
6
- import { PageLayout as o } from "../components/PageLayout.js";
7
- import { isExportEntityDisabled as s } from "../utils/disabledModules.js";
8
- import { useEffect as te, useRef as ne, useState as c } from "react";
9
- import { ArrowLeft as re, ArrowRight as l, Building2 as u, CalendarRange as ie, CheckCircle2 as d, Download as f, FileJson as p, FileSpreadsheet as m, Loader2 as ae, Lock as h, Package as g, User as _, Users as v } from "lucide-react";
6
+ import { PageLayout as te } from "../components/PageLayout.js";
7
+ import { isExportEntityDisabled as o } from "../utils/disabledModules.js";
8
+ import { useEffect as s, useRef as c, useState as l } from "react";
9
+ import { ArrowLeft as ne, ArrowRight as u, Building2 as d, CalendarRange as f, CheckCircle2 as p, Download as m, FileJson as h, FileSpreadsheet as g, Loader2 as re, Lock as ie, Package as ae, User as _, Users as v } from "lucide-react";
10
10
  import { usePermission as y } from "@burdenoff/fe-libs/shared/providers/shell";
11
- import { useSearchParams as oe } from "react-router";
12
- import { isQuotaExhaustedError as se } from "@burdenoff/fe-libs/shared/utils";
13
- import { jsx as b, jsxs as x } from "react/jsx-runtime";
14
- import { useI18n as ce } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
15
- import { AlertDialog as le, AlertDialogAction as ue, AlertDialogCancel as de, AlertDialogContent as fe, AlertDialogDescription as pe, AlertDialogFooter as me, AlertDialogHeader as he, AlertDialogTitle as ge, EmphasisPanel as _e, IllustratedEmptyState as ve, PagePurpose as ye, ShowMore as be } from "@burdenoff/fe-libs/ui";
11
+ import { useSearchParams as b } from "react-router";
12
+ import { isQuotaExhaustedError as x } from "@burdenoff/fe-libs/shared/utils";
13
+ import { jsx as S, jsxs as C } from "react/jsx-runtime";
14
+ import { AlertDialog as oe, AlertDialogAction as se, AlertDialogCancel as ce, AlertDialogContent as le, AlertDialogDescription as ue, AlertDialogFooter as de, AlertDialogHeader as fe, AlertDialogTitle as pe, EmphasisPanel as me, IllustratedEmptyState as he, PagePurpose as ge, ShowMore as _e } from "@burdenoff/fe-libs/ui";
16
15
  //#region src/export/pages/CreateExportPage.tsx
17
- var S = ["CSV", "JSON"], xe = {
18
- CSV: m,
19
- JSON: p
20
- }, Se = [
21
- {
22
- value: "INDIVIDUAL",
23
- label: "My Data Only",
24
- description: "Export data you personally created across selected modules.",
25
- Icon: _
26
- },
27
- {
28
- value: "WORKSPACE_ADMIN",
29
- label: "All Workspace Data",
30
- description: "Export all data in this workspace regardless of who created it. Requires workspace admin access.",
31
- Icon: v
32
- },
33
- {
34
- value: "ORG_ADMIN",
35
- label: "All Organization Data",
36
- description: "Export data from every workspace in your organization. Requires org-admin access.",
37
- Icon: u
38
- }
39
- ];
40
- function C() {
41
- let { basePath: u = "/", navigate: p, organizationId: m } = e(), { t: _ } = ce(), v = (e, t, n) => ee(_, e, t, n), { createJob: C, isPending: w } = n(), { data: T } = t(), { data: E } = r(), [D] = oe(), O = y("export:workspace:admin"), k = y("export:org:admin"), [A, j] = c("entities"), [M, N] = c([]), [P, F] = c(""), [I, L] = c("CSV"), [R, Ce] = c("INDIVIDUAL"), [z, B] = c(D.get("templateId") ?? void 0), [V, we] = c(""), [H, Te] = c(""), [U, W] = c(null), [Ee, G] = c(!1), K = ne(null);
42
- te(() => {
43
- let e = D.get("templateId");
44
- if (!e || !E?.length || K.current === e) return;
45
- let t = E.find((t) => t.id === e);
16
+ var w = ["CSV", "JSON"], ve = {
17
+ CSV: g,
18
+ JSON: h
19
+ }, T = {
20
+ INDIVIDUAL: _,
21
+ WORKSPACE_ADMIN: v,
22
+ ORG_ADMIN: d
23
+ };
24
+ function E() {
25
+ let { basePath: d = "/", navigate: h, organizationId: g } = e(), _ = t(), { createJob: v, isPending: E } = r(), { data: ye } = n(), { data: D } = ee(), [O] = b(), k = y("export:workspace:admin"), A = y("export:org:admin"), [j, M] = l("entities"), [N, P] = l([]), [F, I] = l(""), [L, R] = l("CSV"), [z, be] = l("INDIVIDUAL"), [B, V] = l(O.get("templateId") ?? void 0), [H, xe] = l(""), [U, Se] = l(""), [W, G] = l(null), [Ce, K] = l(!1), q = c(null);
26
+ s(() => {
27
+ let e = O.get("templateId");
28
+ if (!e || !D?.length || q.current === e) return;
29
+ let t = D.find((t) => t.id === e);
46
30
  if (!t) return;
47
- K.current = e, B(t.id), N((t.entityTypes ?? []).filter((e) => !s(e)));
31
+ q.current = e, V(t.id), P((t.entityTypes ?? []).filter((e) => !o(e)));
48
32
  let n = t.format?.toUpperCase();
49
- n && S.includes(n) && L(n), t.name && F(t.name);
50
- }, [D, E]);
51
- let De = () => {
52
- A === "options" ? j("entities") : A === "review" ? j("options") : p?.(u);
53
- }, Oe = () => {
54
- if (A === "entities") {
55
- if (M.length === 0) {
56
- W(v("export.create.errors.selectEntity", "Please select at least one entity type to export"));
33
+ n && w.includes(n) && R(n), t.name && I(t.name);
34
+ }, [O, D]);
35
+ let we = () => {
36
+ j === "options" ? M("entities") : j === "review" ? M("options") : h?.(d);
37
+ }, Te = () => {
38
+ if (j === "entities") {
39
+ if (N.length === 0) {
40
+ G(_("export.create.errors.selectEntity", "Please select at least one entity type to export"));
57
41
  return;
58
42
  }
59
- W(null), j("options");
60
- } else if (A === "options") {
61
- if (!P.trim()) {
62
- W(v("export.create.errors.exportNameRequired", "Please provide a name for this export"));
43
+ G(null), M("options");
44
+ } else if (j === "options") {
45
+ if (!F.trim()) {
46
+ G(_("export.create.errors.exportNameRequired", "Please provide a name for this export"));
63
47
  return;
64
48
  }
65
- W(null), j("review");
49
+ G(null), M("review");
66
50
  }
67
- }, ke = async () => {
51
+ }, Ee = async () => {
68
52
  try {
69
- W(null), await C({
70
- name: P,
71
- entityTypes: M,
72
- format: I,
73
- exportScope: R,
74
- organizationId: R === "ORG_ADMIN" ? m : void 0,
75
- templateId: z,
76
- dateRangeStart: V ? new Date(V).toISOString() : null,
77
- dateRangeEnd: H ? new Date(H).toISOString() : null
78
- }), p?.(u);
53
+ G(null), await v({
54
+ name: F,
55
+ entityTypes: N,
56
+ format: L,
57
+ exportScope: z,
58
+ organizationId: z === "ORG_ADMIN" ? g : void 0,
59
+ templateId: B,
60
+ dateRangeStart: H ? new Date(H).toISOString() : null,
61
+ dateRangeEnd: U ? new Date(U).toISOString() : null
62
+ }), h?.(d);
79
63
  } catch (e) {
80
- if (se(e)) {
81
- G(!0), W(v("export.create.errors.quotaReached", "You have reached your export limit for this month."));
64
+ if (x(e)) {
65
+ K(!0), G(_("export.create.errors.quotaReached", "You have reached your export limit for this month."));
82
66
  return;
83
67
  }
84
- W(e instanceof Error ? e.message : v("export.create.errors.createFailed", "Failed to create export"));
68
+ G(e instanceof Error ? e.message : _("export.create.errors.createFailed", "Failed to create export"));
85
69
  }
86
- }, q = (e) => {
87
- s(e) || N((t) => t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
70
+ }, De = (e) => {
71
+ o(e) || P((t) => t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
88
72
  }, J = (e) => {
89
73
  switch (e) {
90
- case "INDIVIDUAL": return v("export.create.scope.individual.label", "My Data Only");
91
- case "WORKSPACE_ADMIN": return v("export.create.scope.workspaceAdmin.label", "All Workspace Data");
92
- case "ORG_ADMIN": return v("export.create.scope.orgAdmin.label", "All Organization Data");
74
+ case "INDIVIDUAL": return _("export.create.scope.individual.label", "My Data Only");
75
+ case "WORKSPACE_ADMIN": return _("export.create.scope.workspaceAdmin.label", "All Workspace Data");
76
+ case "ORG_ADMIN": return _("export.create.scope.orgAdmin.label", "All Organization Data");
93
77
  default: return e;
94
78
  }
95
- }, Ae = (e) => {
79
+ }, Oe = (e) => {
96
80
  switch (e) {
97
- case "INDIVIDUAL": return v("export.create.scope.individual.description", "Export data you personally created across selected modules.");
98
- case "WORKSPACE_ADMIN": return v("export.create.scope.workspaceAdmin.description", "Export all data in this workspace regardless of who created it. Requires workspace admin access.");
99
- case "ORG_ADMIN": return v("export.create.scope.orgAdmin.description", "Export data from every workspace in your organization. Requires org-admin access.");
81
+ case "INDIVIDUAL": return _("export.create.scope.individual.description", "Export data you personally created across selected modules.");
82
+ case "WORKSPACE_ADMIN": return _("export.create.scope.workspaceAdmin.description", "Export all data in this workspace regardless of who created it. Requires workspace admin access.");
83
+ case "ORG_ADMIN": return _("export.create.scope.orgAdmin.description", "Export data from every workspace in your organization. Requires org-admin access.");
100
84
  default: return "";
101
85
  }
102
86
  }, Y = {
103
87
  users: {
104
- label: v("export.create.entities.users.label", "Users"),
105
- description: v("export.create.entities.users.description", "Workspace members and profiles")
88
+ label: _("export.create.entities.users.label", "Users"),
89
+ description: _("export.create.entities.users.description", "Workspace members and profiles")
106
90
  },
107
91
  projects: {
108
- label: v("export.create.entities.projects.label", "Projects"),
109
- description: v("export.create.entities.projects.description", "Projects and their metadata")
92
+ label: _("export.create.entities.projects.label", "Projects"),
93
+ description: _("export.create.entities.projects.description", "Projects and their metadata")
110
94
  },
111
95
  tasks: {
112
- label: v("export.create.entities.tasks.label", "Tasks"),
113
- description: v("export.create.entities.tasks.description", "Task items and assignments")
96
+ label: _("export.create.entities.tasks.label", "Tasks"),
97
+ description: _("export.create.entities.tasks.description", "Task items and assignments")
114
98
  },
115
99
  files: {
116
- label: v("export.create.entities.files.label", "Files"),
117
- description: v("export.create.entities.files.description", "File metadata and references")
100
+ label: _("export.create.entities.files.label", "Files"),
101
+ description: _("export.create.entities.files.description", "File metadata and references")
118
102
  },
119
103
  conversations: {
120
- label: v("export.create.entities.conversations.label", "Conversations"),
121
- description: v("export.create.entities.conversations.description", "Chat messages and threads")
104
+ label: _("export.create.entities.conversations.label", "Conversations"),
105
+ description: _("export.create.entities.conversations.description", "Chat messages and threads")
122
106
  },
123
107
  tags: {
124
- label: v("export.create.entities.tags.label", "Tags"),
125
- description: v("export.create.entities.tags.description", "Tags and vocabularies")
108
+ label: _("export.create.entities.tags.label", "Tags"),
109
+ description: _("export.create.entities.tags.description", "Tags and vocabularies")
126
110
  },
127
111
  activity: {
128
- label: v("export.create.entities.activity.label", "Activity Logs"),
129
- description: v("export.create.entities.activity.description", "Audit trail and activity history")
112
+ label: _("export.create.entities.activity.label", "Activity Logs"),
113
+ description: _("export.create.entities.activity.description", "Audit trail and activity history")
130
114
  },
131
115
  calendar: {
132
- label: v("export.create.entities.calendar.label", "Calendar Events"),
133
- description: v("export.create.entities.calendar.description", "Events and bookings")
116
+ label: _("export.create.entities.calendar.label", "Calendar Events"),
117
+ description: _("export.create.entities.calendar.description", "Events and bookings")
134
118
  }
135
- }, X = T.filter((e) => e.enabled !== !1), Z = X.filter((e) => !s(e.entityType)), Q = X.filter((e) => s(e.entityType)), $ = (e, t) => {
136
- let n = !t && M.includes(e.entityType);
137
- return /* @__PURE__ */ x("button", {
119
+ }, X = ye.filter((e) => e.enabled !== !1), Z = X.filter((e) => !o(e.entityType)), Q = X.filter((e) => o(e.entityType)), $ = (e, t) => {
120
+ let n = !t && N.includes(e.entityType);
121
+ return /* @__PURE__ */ C("button", {
138
122
  type: "button",
139
- onClick: () => q(e.entityType),
123
+ onClick: () => De(e.entityType),
140
124
  disabled: t,
141
125
  "aria-disabled": t,
142
- title: t ? v("export.create.select.unavailableHint", "Export for this product isn't available yet") : void 0,
126
+ title: t ? _("export.create.select.unavailableHint", "Export for this product isn't available yet") : void 0,
143
127
  className: i("text-left border-2 rounded-xl p-4 transition-all duration-200", t ? "border-border-subtle/30 opacity-50 cursor-not-allowed" : n ? "border-primary bg-action-primary-bg/5 shadow-md" : "border-border-subtle/50 hover:border-primary/30 hover:shadow-sm"),
144
128
  children: [
145
- /* @__PURE__ */ x("div", {
129
+ /* @__PURE__ */ C("div", {
146
130
  className: "flex items-center justify-between mb-2 gap-2",
147
- children: [/* @__PURE__ */ b("h3", {
131
+ children: [/* @__PURE__ */ S("h3", {
148
132
  className: "font-semibold",
149
133
  children: Y[e.entityType]?.label ?? e.displayName
150
- }), t ? /* @__PURE__ */ b("span", {
134
+ }), t ? /* @__PURE__ */ S("span", {
151
135
  className: "shrink-0 text-xs font-medium px-2 py-0.5 rounded-full bg-bg-sunken text-text-secondary",
152
- children: v("export.create.select.unavailable", "Unavailable")
153
- }) : n && /* @__PURE__ */ b(d, {
136
+ children: _("export.create.select.unavailable", "Unavailable")
137
+ }) : n && /* @__PURE__ */ S(p, {
154
138
  size: 18,
155
139
  className: "text-primary"
156
140
  })]
157
141
  }),
158
- /* @__PURE__ */ b("p", {
142
+ /* @__PURE__ */ S("p", {
159
143
  className: "text-sm text-text-secondary",
160
144
  children: Y[e.entityType]?.description ?? e.description
161
145
  }),
162
- e.estimatedSize && /* @__PURE__ */ x("p", {
146
+ e.estimatedSize && /* @__PURE__ */ C("p", {
163
147
  className: "text-xs text-text-secondary mt-2",
164
148
  children: ["~", e.estimatedSize]
165
149
  })
166
150
  ]
167
151
  }, e.entityType);
168
152
  };
169
- return /* @__PURE__ */ x(o, {
153
+ return /* @__PURE__ */ C(te, {
170
154
  showHeader: !1,
171
155
  children: [
172
- /* @__PURE__ */ b("div", {
156
+ /* @__PURE__ */ S("div", {
173
157
  className: "relative overflow-hidden rounded-xl bg-accent-wash border border-border-seam p-6 shadow-[var(--shadow-pop)]",
174
- children: /* @__PURE__ */ x("div", {
158
+ children: /* @__PURE__ */ C("div", {
175
159
  className: "relative z-10 flex items-center gap-4",
176
- children: [/* @__PURE__ */ b("button", {
160
+ children: [/* @__PURE__ */ S("button", {
177
161
  type: "button",
178
- onClick: () => p?.(u),
162
+ onClick: () => h?.(d),
179
163
  className: "p-2.5 hover:bg-accent rounded-lg transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
180
- "aria-label": v("export.create.actions.backToDashboard", "Back to export dashboard"),
181
- children: /* @__PURE__ */ b(re, { size: 20 })
182
- }), /* @__PURE__ */ x("div", {
164
+ "aria-label": _("export.create.actions.backToDashboard", "Back to export dashboard"),
165
+ children: /* @__PURE__ */ S(ne, { size: 20 })
166
+ }), /* @__PURE__ */ C("div", {
183
167
  className: "flex items-center gap-3",
184
- children: [/* @__PURE__ */ b("div", {
168
+ children: [/* @__PURE__ */ S("div", {
185
169
  className: "p-2.5 rounded-lg bg-action-primary-bg/10 backdrop-blur-sm",
186
- children: /* @__PURE__ */ b(f, {
170
+ children: /* @__PURE__ */ S(m, {
187
171
  size: 24,
188
172
  className: "text-primary"
189
173
  })
190
- }), /* @__PURE__ */ b("h1", {
174
+ }), /* @__PURE__ */ S("h1", {
191
175
  className: "text-2xl sm:text-3xl font-bold",
192
- children: v("export.create.title", "New Export")
176
+ children: _("export.create.title", "New Export")
193
177
  })]
194
178
  })]
195
179
  })
196
180
  }),
197
- /* @__PURE__ */ b(ye, {
198
- icon: /* @__PURE__ */ b(f, { size: 16 }),
199
- children: v("export.create.purpose", "Build a one-off export in three steps: pick which data to include, choose a format and scope, then review and start it. The export runs in the background and produces a downloadable ZIP you can grab from History when it finishes.")
181
+ /* @__PURE__ */ S(ge, {
182
+ icon: /* @__PURE__ */ S(m, { size: 16 }),
183
+ children: _("export.create.purpose", "Build a one-off export in three steps: pick which data to include, choose a format and scope, then review and start it. The export runs in the background and produces a downloadable ZIP you can grab from History when it finishes.")
200
184
  }),
201
- /* @__PURE__ */ b("div", {
185
+ /* @__PURE__ */ S("div", {
202
186
  className: "flex items-center gap-2 justify-center flex-wrap",
203
187
  children: [
204
188
  "entities",
205
189
  "options",
206
190
  "review"
207
- ].map((e, t) => /* @__PURE__ */ x("div", {
191
+ ].map((e, t) => /* @__PURE__ */ C("div", {
208
192
  className: "flex items-center gap-2",
209
- children: [t > 0 && /* @__PURE__ */ b(l, {
193
+ children: [t > 0 && /* @__PURE__ */ S(u, {
210
194
  size: 18,
211
195
  className: "text-text-secondary"
212
- }), /* @__PURE__ */ x("div", {
213
- className: i("flex items-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium border-2 transition-all duration-200", A === e ? "bg-action-primary-bg text-action-primary-text border-primary shadow-[var(--shadow-pop)]" : "bg-bg-sunken/50 text-text-secondary border-border-seam"),
214
- children: [/* @__PURE__ */ b("div", {
196
+ }), /* @__PURE__ */ C("div", {
197
+ className: i("flex items-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium border-2 transition-all duration-200", j === e ? "bg-action-primary-bg text-action-primary-text border-primary shadow-[var(--shadow-pop)]" : "bg-bg-sunken/50 text-text-secondary border-border-seam"),
198
+ children: [/* @__PURE__ */ S("div", {
215
199
  className: "flex items-center justify-center size-6 rounded-full bg-bg-surface/20 font-bold",
216
200
  children: t + 1
217
- }), /* @__PURE__ */ b("span", {
201
+ }), /* @__PURE__ */ S("span", {
218
202
  className: "hidden sm:inline capitalize",
219
- children: e === "entities" ? v("export.create.steps.entities", "Select Data") : e === "options" ? v("export.create.steps.options", "Options") : v("export.create.steps.review", "Review")
203
+ children: e === "entities" ? _("export.create.steps.entities", "Select Data") : e === "options" ? _("export.create.steps.options", "Options") : _("export.create.steps.review", "Review")
220
204
  })]
221
205
  })]
222
206
  }, e))
223
207
  }),
224
- U && /* @__PURE__ */ b("div", {
208
+ W && /* @__PURE__ */ S("div", {
225
209
  className: "border-2 border-border-default rounded-xl bg-status-error-bg-subtle p-4 text-status-error-text text-sm",
226
- children: U
210
+ children: W
227
211
  }),
228
- A === "entities" && /* @__PURE__ */ x("div", {
212
+ j === "entities" && /* @__PURE__ */ C("div", {
229
213
  className: "space-y-4",
230
214
  children: [
231
- /* @__PURE__ */ b("h2", {
215
+ /* @__PURE__ */ S("h2", {
232
216
  className: "text-lg font-bold",
233
- children: v("export.create.select.title", "Select data to export")
217
+ children: _("export.create.select.title", "Select data to export")
234
218
  }),
235
- /* @__PURE__ */ b("p", {
219
+ /* @__PURE__ */ S("p", {
236
220
  className: "text-sm text-text-secondary",
237
- children: v("export.create.select.description", "Choose which entity types to include in your export.")
221
+ children: _("export.create.select.description", "Choose which entity types to include in your export.")
238
222
  }),
239
- X.length === 0 ? /* @__PURE__ */ b(ve, {
223
+ X.length === 0 ? /* @__PURE__ */ S(he, {
240
224
  illustration: "empty-data",
241
- title: v("export.create.select.emptyTitle", "Nothing to export yet"),
242
- description: v("export.create.select.empty", "No exportable entity types are configured for this workspace yet. Once your workspace has data in supported modules, they'll show up here to select.")
243
- }) : /* @__PURE__ */ x("div", {
225
+ title: _("export.create.select.emptyTitle", "Nothing to export yet"),
226
+ description: _("export.create.select.empty", "No exportable entity types are configured for this workspace yet. Once your workspace has data in supported modules, they'll show up here to select.")
227
+ }) : /* @__PURE__ */ C("div", {
244
228
  className: "space-y-6",
245
- children: [Z.length > 0 && /* @__PURE__ */ b("div", {
229
+ children: [Z.length > 0 && /* @__PURE__ */ S("div", {
246
230
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",
247
231
  children: Z.map((e) => $(e, !1))
248
- }), Q.length > 0 && /* @__PURE__ */ x("div", {
232
+ }), Q.length > 0 && /* @__PURE__ */ C("div", {
249
233
  className: "space-y-3",
250
- children: [/* @__PURE__ */ x("div", {
234
+ children: [/* @__PURE__ */ C("div", {
251
235
  className: "flex items-center gap-3",
252
236
  children: [
253
- /* @__PURE__ */ b("div", { className: "h-px flex-1 bg-border/60" }),
254
- /* @__PURE__ */ b("span", {
237
+ /* @__PURE__ */ S("div", { className: "h-px flex-1 bg-border/60" }),
238
+ /* @__PURE__ */ S("span", {
255
239
  className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
256
- children: v("export.create.select.unavailableSection", "Not available yet")
240
+ children: _("export.create.select.unavailableSection", "Not available yet")
257
241
  }),
258
- /* @__PURE__ */ b("div", { className: "h-px flex-1 bg-border/60" })
242
+ /* @__PURE__ */ S("div", { className: "h-px flex-1 bg-border/60" })
259
243
  ]
260
- }), /* @__PURE__ */ b("div", {
244
+ }), /* @__PURE__ */ S("div", {
261
245
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",
262
246
  children: Q.map((e) => $(e, !0))
263
247
  })]
@@ -265,208 +249,212 @@ function C() {
265
249
  })
266
250
  ]
267
251
  }),
268
- A === "options" && /* @__PURE__ */ b("div", {
252
+ j === "options" && /* @__PURE__ */ S("div", {
269
253
  className: "space-y-6",
270
- children: /* @__PURE__ */ x("div", {
254
+ children: /* @__PURE__ */ C("div", {
271
255
  className: "border border-border-seam rounded-xl p-6 space-y-5 bg-bg-surface",
272
256
  children: [
273
- /* @__PURE__ */ b("h2", {
257
+ /* @__PURE__ */ S("h2", {
274
258
  className: "text-lg font-bold",
275
- children: v("export.create.options.title", "Export Options")
259
+ children: _("export.create.options.title", "Export Options")
276
260
  }),
277
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
261
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
278
262
  className: "block text-sm font-semibold mb-2",
279
- children: v("export.create.options.scope", "Export Scope")
280
- }), /* @__PURE__ */ b("div", {
263
+ children: _("export.create.options.scope", "Export Scope")
264
+ }), /* @__PURE__ */ S("div", {
281
265
  className: "grid grid-cols-1 sm:grid-cols-3 gap-3",
282
- children: Se.map(({ value: e, Icon: t }) => {
283
- let n = e === "WORKSPACE_ADMIN" && !O || e === "ORG_ADMIN" && !k;
284
- return /* @__PURE__ */ x("button", {
266
+ children: [
267
+ "INDIVIDUAL",
268
+ "WORKSPACE_ADMIN",
269
+ "ORG_ADMIN"
270
+ ].map((e) => {
271
+ let t = e === "WORKSPACE_ADMIN" && !k || e === "ORG_ADMIN" && !A, n = T[e], r = e === "WORKSPACE_ADMIN" ? _("export.create.scope.workspaceAdmin.required", "Workspace admin access required") : _("export.create.scope.orgAdmin.required", "Organization admin access required");
272
+ return /* @__PURE__ */ C("button", {
285
273
  type: "button",
286
- onClick: () => !n && Ce(e),
287
- disabled: n,
288
- className: i("text-left border-2 rounded-xl p-4 transition-all duration-200", R === e ? "border-primary bg-action-primary-bg/5 shadow-md" : n ? "border-border-subtle/30 opacity-50 cursor-not-allowed" : "border-border-subtle/50 hover:border-primary/30 hover:shadow-sm"),
289
- title: n ? e === "WORKSPACE_ADMIN" ? "Workspace admin access required" : "Organization admin access required" : void 0,
274
+ onClick: () => !t && be(e),
275
+ disabled: t,
276
+ className: i("text-left border-2 rounded-xl p-4 transition-all duration-200", z === e ? "border-primary bg-action-primary-bg/5 shadow-md" : t ? "border-border-subtle/30 opacity-50 cursor-not-allowed" : "border-border-subtle/50 hover:border-primary/30 hover:shadow-sm"),
277
+ title: t ? r : void 0,
290
278
  children: [
291
- /* @__PURE__ */ x("div", {
279
+ /* @__PURE__ */ C("div", {
292
280
  className: "flex items-center justify-between mb-2",
293
281
  children: [
294
- /* @__PURE__ */ b(t, {
282
+ /* @__PURE__ */ S(n, {
295
283
  size: 18,
296
- className: R === e ? "text-primary" : n ? "text-text-secondary/50" : "text-text-secondary"
284
+ className: z === e ? "text-primary" : t ? "text-text-secondary/50" : "text-text-secondary"
297
285
  }),
298
- R === e && /* @__PURE__ */ b(d, {
286
+ z === e && /* @__PURE__ */ S(p, {
299
287
  size: 16,
300
288
  className: "text-primary"
301
289
  }),
302
- n && /* @__PURE__ */ b(h, {
290
+ t && /* @__PURE__ */ S(ie, {
303
291
  size: 14,
304
292
  className: "text-text-secondary/50"
305
293
  })
306
294
  ]
307
295
  }),
308
- /* @__PURE__ */ b("p", {
296
+ /* @__PURE__ */ S("p", {
309
297
  className: "font-semibold text-sm",
310
298
  children: J(e)
311
299
  }),
312
- /* @__PURE__ */ b("p", {
300
+ /* @__PURE__ */ S("p", {
313
301
  className: "text-xs text-text-secondary mt-1",
314
- children: Ae(e)
302
+ children: Oe(e)
315
303
  })
316
304
  ]
317
305
  }, e);
318
306
  })
319
307
  })] }),
320
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("label", {
308
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
321
309
  htmlFor: "exportName",
322
310
  className: "block text-sm font-semibold mb-2",
323
311
  children: [
324
- v("export.create.options.name", "Export Name"),
312
+ _("export.create.options.name", "Export Name"),
325
313
  " ",
326
- /* @__PURE__ */ b("span", {
314
+ /* @__PURE__ */ S("span", {
327
315
  className: "text-status-error-text",
328
316
  children: "*"
329
317
  })
330
318
  ]
331
- }), /* @__PURE__ */ b("input", {
319
+ }), /* @__PURE__ */ S("input", {
332
320
  type: "text",
333
321
  id: "exportName",
334
- "aria-label": v("export.create.options.name", "Export Name"),
335
- value: P,
336
- onChange: (e) => F(e.target.value),
322
+ "aria-label": _("export.create.options.name", "Export Name"),
323
+ value: F,
324
+ onChange: (e) => I(e.target.value),
337
325
  className: "w-full px-4 py-2.5 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary transition-all duration-200",
338
- placeholder: v("export.create.options.namePlaceholder", "e.g., Monthly User Export")
326
+ placeholder: _("export.create.options.namePlaceholder", "e.g., Monthly User Export")
339
327
  })] }),
340
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
328
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
341
329
  className: "block text-sm font-semibold mb-2",
342
- children: v("export.create.options.outputFormat", "Output Format")
343
- }), /* @__PURE__ */ b("div", {
330
+ children: _("export.create.options.outputFormat", "Output Format")
331
+ }), /* @__PURE__ */ S("div", {
344
332
  className: "grid grid-cols-2 gap-3",
345
- children: S.map((e) => {
346
- let t = xe[e];
347
- return /* @__PURE__ */ x("button", {
333
+ children: w.map((e) => {
334
+ let t = ve[e];
335
+ return /* @__PURE__ */ C("button", {
348
336
  type: "button",
349
- onClick: () => L(e),
350
- className: i("flex items-center gap-3 border-2 rounded-lg p-3 transition-all duration-200", I === e ? "border-primary bg-action-primary-bg/5" : "border-border-subtle/50 hover:border-primary/30"),
351
- children: [/* @__PURE__ */ b(t, {
337
+ onClick: () => R(e),
338
+ className: i("flex items-center gap-3 border-2 rounded-lg p-3 transition-all duration-200", L === e ? "border-primary bg-action-primary-bg/5" : "border-border-subtle/50 hover:border-primary/30"),
339
+ children: [/* @__PURE__ */ S(t, {
352
340
  size: 18,
353
- className: I === e ? "text-primary" : "text-text-secondary"
354
- }), /* @__PURE__ */ b("span", {
341
+ className: L === e ? "text-primary" : "text-text-secondary"
342
+ }), /* @__PURE__ */ S("span", {
355
343
  className: "font-medium text-sm",
356
344
  children: a(e)
357
345
  })]
358
346
  }, e);
359
347
  })
360
348
  })] }),
361
- /* @__PURE__ */ x("div", { children: [
362
- /* @__PURE__ */ b("label", {
349
+ /* @__PURE__ */ C("div", { children: [
350
+ /* @__PURE__ */ S("label", {
363
351
  className: "block text-sm font-semibold mb-2",
364
- children: v("export.create.options.archiveFormat", "Archive Format")
352
+ children: _("export.create.options.archiveFormat", "Archive Format")
365
353
  }),
366
- /* @__PURE__ */ b("div", {
354
+ /* @__PURE__ */ S("div", {
367
355
  className: "flex gap-3",
368
- children: /* @__PURE__ */ x("div", {
356
+ children: /* @__PURE__ */ C("div", {
369
357
  className: i("flex items-center gap-2 border-2 rounded-lg px-4 py-2 border-primary bg-action-primary-bg/5"),
370
- children: [/* @__PURE__ */ b(g, {
358
+ children: [/* @__PURE__ */ S(ae, {
371
359
  size: 16,
372
360
  className: "text-primary"
373
- }), /* @__PURE__ */ b("span", {
361
+ }), /* @__PURE__ */ S("span", {
374
362
  className: "font-medium text-sm",
375
- children: "ZIP"
363
+ children: _("export.archive.zip", "ZIP")
376
364
  })]
377
365
  })
378
366
  }),
379
- /* @__PURE__ */ b("p", {
367
+ /* @__PURE__ */ S("p", {
380
368
  className: "text-xs text-text-secondary mt-1.5",
381
- children: v("export.create.options.archiveDescription", "Exports are packaged as ZIP archives.")
369
+ children: _("export.create.options.archiveDescription", "Exports are packaged as ZIP archives.")
382
370
  })
383
371
  ] }),
384
- /* @__PURE__ */ b(be, {
372
+ /* @__PURE__ */ S(_e, {
385
373
  collapsedHeight: 0,
386
- label: v("export.create.options.advancedToggle", "Date range & template"),
387
- children: /* @__PURE__ */ x("div", {
374
+ label: _("export.create.options.advancedToggle", "Date range & template"),
375
+ children: /* @__PURE__ */ C("div", {
388
376
  className: "space-y-5 pt-1",
389
- children: [/* @__PURE__ */ x("div", { children: [
390
- /* @__PURE__ */ b("label", {
377
+ children: [/* @__PURE__ */ C("div", { children: [
378
+ /* @__PURE__ */ S("label", {
391
379
  className: "block text-sm font-semibold mb-2",
392
- children: /* @__PURE__ */ x("span", {
380
+ children: /* @__PURE__ */ C("span", {
393
381
  className: "inline-flex items-center gap-1.5",
394
382
  children: [
395
- /* @__PURE__ */ b(ie, { size: 15 }),
396
- v("export.create.options.dateRange", "Date Range"),
383
+ /* @__PURE__ */ S(f, { size: 15 }),
384
+ _("export.create.options.dateRange", "Date Range"),
397
385
  " ",
398
- /* @__PURE__ */ b("span", {
386
+ /* @__PURE__ */ S("span", {
399
387
  className: "font-normal text-text-secondary",
400
- children: v("export.create.shared.optional", "(optional)")
388
+ children: _("export.create.shared.optional", "(optional)")
401
389
  })
402
390
  ]
403
391
  })
404
392
  }),
405
- /* @__PURE__ */ x("div", {
393
+ /* @__PURE__ */ C("div", {
406
394
  className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
407
- children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
395
+ children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
408
396
  htmlFor: "dateFrom",
409
397
  className: "block text-xs text-text-secondary mb-1",
410
- children: v("export.create.options.dateFrom", "From")
411
- }), /* @__PURE__ */ b("input", {
398
+ children: _("export.create.options.dateFrom", "From")
399
+ }), /* @__PURE__ */ S("input", {
412
400
  type: "date",
413
401
  id: "dateFrom",
414
- "aria-label": v("export.create.options.dateFrom", "From"),
415
- value: V,
416
- onChange: (e) => we(e.target.value),
402
+ "aria-label": _("export.create.options.dateFrom", "From"),
403
+ value: H,
404
+ onChange: (e) => xe(e.target.value),
417
405
  className: "w-full px-3 py-2 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary text-sm"
418
- })] }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("label", {
406
+ })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
419
407
  htmlFor: "dateTo",
420
408
  className: "block text-xs text-text-secondary mb-1",
421
- children: v("export.create.options.dateTo", "To")
422
- }), /* @__PURE__ */ b("input", {
409
+ children: _("export.create.options.dateTo", "To")
410
+ }), /* @__PURE__ */ S("input", {
423
411
  type: "date",
424
412
  id: "dateTo",
425
- "aria-label": v("export.create.options.dateTo", "To"),
426
- value: H,
427
- min: V,
428
- onChange: (e) => Te(e.target.value),
413
+ "aria-label": _("export.create.options.dateTo", "To"),
414
+ value: U,
415
+ min: H,
416
+ onChange: (e) => Se(e.target.value),
429
417
  className: "w-full px-3 py-2 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary text-sm"
430
418
  })] })]
431
419
  }),
432
- /* @__PURE__ */ b("p", {
420
+ /* @__PURE__ */ S("p", {
433
421
  className: "text-xs text-text-secondary mt-1.5",
434
- children: v("export.create.options.dateRangeDescription", "Leave blank to export all data regardless of date.")
422
+ children: _("export.create.options.dateRangeDescription", "Leave blank to export all data regardless of date.")
435
423
  })
436
- ] }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("label", {
424
+ ] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("label", {
437
425
  className: "block text-sm font-semibold mb-2",
438
426
  children: [
439
- v("export.create.options.basedOnTemplate", "Based on Template"),
427
+ _("export.create.options.basedOnTemplate", "Based on Template"),
440
428
  " ",
441
- /* @__PURE__ */ b("span", {
429
+ /* @__PURE__ */ S("span", {
442
430
  className: "font-normal text-text-secondary",
443
- children: v("export.create.shared.optional", "(optional)")
431
+ children: _("export.create.shared.optional", "(optional)")
444
432
  })
445
433
  ]
446
- }), E.length > 0 ? /* @__PURE__ */ x("select", {
447
- value: z ?? "",
448
- onChange: (e) => B(e.target.value || void 0),
434
+ }), D.length > 0 ? /* @__PURE__ */ C("select", {
435
+ value: B ?? "",
436
+ onChange: (e) => V(e.target.value || void 0),
449
437
  className: "w-full px-3 py-2 border-2 border-border-subtle rounded-lg bg-bg-surface focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary",
450
- children: [/* @__PURE__ */ b("option", {
438
+ children: [/* @__PURE__ */ S("option", {
451
439
  value: "",
452
- children: v("export.create.options.noTemplate", "No template")
453
- }), E.map((e) => /* @__PURE__ */ b("option", {
440
+ children: _("export.create.options.noTemplate", "No template")
441
+ }), D.map((e) => /* @__PURE__ */ S("option", {
454
442
  value: e.id,
455
443
  children: e.name
456
444
  }, e.id))]
457
- }) : /* @__PURE__ */ x("p", {
445
+ }) : /* @__PURE__ */ C("p", {
458
446
  className: "text-sm text-text-secondary",
459
447
  children: [
460
- v("export.create.options.noTemplates", "No templates yet."),
448
+ _("export.create.options.noTemplates", "No templates yet."),
461
449
  " ",
462
- /* @__PURE__ */ b("button", {
450
+ /* @__PURE__ */ S("button", {
463
451
  type: "button",
464
- onClick: () => p?.(u + "/templates"),
452
+ onClick: () => h?.(d + "/templates"),
465
453
  className: "text-primary underline-offset-2 hover:underline",
466
- children: v("export.create.options.createTemplateLink", "Create one")
454
+ children: _("export.create.options.createTemplateLink", "Create one")
467
455
  }),
468
456
  " ",
469
- v("export.create.options.reuseTemplateHint", "to reuse export configurations.")
457
+ _("export.create.options.reuseTemplateHint", "to reuse export configurations.")
470
458
  ]
471
459
  })] })]
472
460
  })
@@ -474,53 +462,53 @@ function C() {
474
462
  ]
475
463
  })
476
464
  }),
477
- A === "review" && /* @__PURE__ */ b("div", {
465
+ j === "review" && /* @__PURE__ */ S("div", {
478
466
  className: "space-y-6",
479
- children: /* @__PURE__ */ x(_e, {
467
+ children: /* @__PURE__ */ C(me, {
480
468
  className: "p-6 space-y-4",
481
- children: [/* @__PURE__ */ x("h2", {
469
+ children: [/* @__PURE__ */ C("h2", {
482
470
  className: "text-lg font-bold flex items-center gap-2",
483
- children: [/* @__PURE__ */ b(d, {
471
+ children: [/* @__PURE__ */ S(p, {
484
472
  size: 20,
485
473
  className: "text-primary"
486
- }), v("export.create.review.title", "Review Export")]
487
- }), /* @__PURE__ */ b("dl", {
474
+ }), _("export.create.review.title", "Review Export")]
475
+ }), /* @__PURE__ */ S("dl", {
488
476
  className: "space-y-3 text-sm",
489
477
  children: [
490
478
  {
491
- label: v("export.create.review.fields.name", "Name"),
492
- value: P
479
+ label: _("export.create.review.fields.name", "Name"),
480
+ value: F
493
481
  },
494
482
  {
495
- label: v("export.create.review.fields.scope", "Scope"),
496
- value: J(R)
483
+ label: _("export.create.review.fields.scope", "Scope"),
484
+ value: J(z)
497
485
  },
498
486
  {
499
- label: v("export.create.review.fields.entityTypes", "Entity Types"),
500
- value: M.join(", ")
487
+ label: _("export.create.review.fields.entityTypes", "Entity Types"),
488
+ value: N.join(", ")
501
489
  },
502
490
  {
503
- label: v("export.create.review.fields.format", "Format"),
504
- value: a(I)
491
+ label: _("export.create.review.fields.format", "Format"),
492
+ value: a(L)
505
493
  },
506
494
  {
507
- label: v("export.create.review.fields.archive", "Archive"),
508
- value: "ZIP"
495
+ label: _("export.create.review.fields.archive", "Archive"),
496
+ value: _("export.archive.zip", "ZIP")
509
497
  },
510
- ...V || H ? [{
511
- label: v("export.create.review.fields.dateRange", "Date Range"),
512
- value: [V || "—", H || "—"].join(" → ")
498
+ ...H || U ? [{
499
+ label: _("export.create.review.fields.dateRange", "Date Range"),
500
+ value: [H || "—", U || "—"].join(" → ")
513
501
  }] : [],
514
- ...z ? [{
515
- label: v("export.create.review.fields.template", "Template"),
516
- value: E.find((e) => e.id === z)?.name ?? z
502
+ ...B ? [{
503
+ label: _("export.create.review.fields.template", "Template"),
504
+ value: D.find((e) => e.id === B)?.name ?? B
517
505
  }] : []
518
- ].map(({ label: e, value: t }) => /* @__PURE__ */ x("div", {
506
+ ].map(({ label: e, value: t }) => /* @__PURE__ */ C("div", {
519
507
  className: "flex flex-col sm:flex-row sm:justify-between gap-1",
520
- children: [/* @__PURE__ */ b("dt", {
508
+ children: [/* @__PURE__ */ S("dt", {
521
509
  className: "text-text-secondary",
522
510
  children: e
523
- }), /* @__PURE__ */ b("dd", {
511
+ }), /* @__PURE__ */ S("dd", {
524
512
  className: "font-semibold sm:text-right break-words",
525
513
  children: t
526
514
  })]
@@ -528,41 +516,41 @@ function C() {
528
516
  })]
529
517
  })
530
518
  }),
531
- /* @__PURE__ */ x("div", {
519
+ /* @__PURE__ */ C("div", {
532
520
  className: "flex flex-col sm:flex-row gap-3 pt-2",
533
- children: [/* @__PURE__ */ b("button", {
521
+ children: [/* @__PURE__ */ S("button", {
534
522
  type: "button",
535
- onClick: De,
523
+ onClick: we,
536
524
  className: "px-6 py-3 border-2 border-border-subtle/50 rounded-lg hover:bg-accent hover:border-primary/30 transition-all duration-200 font-medium",
537
- children: A === "entities" ? v("export.create.actions.cancel", "Cancel") : v("export.create.actions.back", "Back")
538
- }), A === "review" ? /* @__PURE__ */ x("button", {
525
+ children: j === "entities" ? _("export.create.actions.cancel", "Cancel") : _("export.create.actions.back", "Back")
526
+ }), j === "review" ? /* @__PURE__ */ C("button", {
539
527
  type: "button",
540
- onClick: ke,
541
- disabled: w,
528
+ onClick: Ee,
529
+ disabled: E,
542
530
  className: "flex-1 inline-flex items-center justify-center gap-2 px-6 py-3 bg-action-primary-bg text-action-primary-text rounded-lg hover:bg-action-primary-bg/90 transition-all duration-200 font-bold shadow-lg disabled:opacity-50 disabled:cursor-not-allowed",
543
- children: [w ? /* @__PURE__ */ b(ae, {
531
+ children: [E ? /* @__PURE__ */ S(re, {
544
532
  size: 18,
545
533
  className: "animate-spin"
546
- }) : /* @__PURE__ */ b(f, { size: 18 }), v("export.create.actions.startExport", "Start Export")]
547
- }) : /* @__PURE__ */ x("button", {
534
+ }) : /* @__PURE__ */ S(m, { size: 18 }), _("export.create.actions.startExport", "Start Export")]
535
+ }) : /* @__PURE__ */ C("button", {
548
536
  type: "button",
549
- onClick: Oe,
537
+ onClick: Te,
550
538
  className: "flex-1 inline-flex items-center justify-center gap-2 px-6 py-3 bg-action-primary-bg text-action-primary-text rounded-lg hover:bg-action-primary-bg/90 transition-all duration-200 font-bold shadow-lg",
551
- children: [v("export.create.actions.next", "Next"), /* @__PURE__ */ b(l, { size: 18 })]
539
+ children: [_("export.create.actions.next", "Next"), /* @__PURE__ */ S(u, { size: 18 })]
552
540
  })]
553
541
  }),
554
- /* @__PURE__ */ b(le, {
555
- open: Ee,
556
- onOpenChange: G,
557
- children: /* @__PURE__ */ x(fe, { children: [/* @__PURE__ */ x(he, { children: [/* @__PURE__ */ b(ge, { children: v("export.create.quotaDialog.title", "Export Limit Reached") }), /* @__PURE__ */ b(pe, { children: v("export.create.quotaDialog.description", "You have reached your export limit for this month.") })] }), /* @__PURE__ */ x(me, { children: [/* @__PURE__ */ b(de, { children: v("export.create.quotaDialog.dismiss", "Dismiss") }), /* @__PURE__ */ b(ue, {
542
+ /* @__PURE__ */ S(oe, {
543
+ open: Ce,
544
+ onOpenChange: K,
545
+ children: /* @__PURE__ */ C(le, { children: [/* @__PURE__ */ C(fe, { children: [/* @__PURE__ */ S(pe, { children: _("export.create.quotaDialog.title", "Export Limit Reached") }), /* @__PURE__ */ S(ue, { children: _("export.create.quotaDialog.description", "You have reached your export limit for this month.") })] }), /* @__PURE__ */ C(de, { children: [/* @__PURE__ */ S(ce, { children: _("export.create.quotaDialog.dismiss", "Dismiss") }), /* @__PURE__ */ S(se, {
558
546
  onClick: () => window.location.assign("/billing"),
559
- children: v("export.create.quotaDialog.viewBilling", "View Billing")
547
+ children: _("export.create.quotaDialog.viewBilling", "View Billing")
560
548
  })] })] })
561
549
  })
562
550
  ]
563
551
  });
564
552
  }
565
553
  //#endregion
566
- export { C as CreateExportPage };
554
+ export { E as CreateExportPage };
567
555
 
568
556
  //# sourceMappingURL=CreateExportPage.js.map