@doneisbetter/gds-core 2.6.1

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.
package/dist/index.js ADDED
@@ -0,0 +1,3483 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ AccentPanel: () => AccentPanel,
24
+ AccessRecoveryPanel: () => AccessRecoveryPanel,
25
+ AccessSummary: () => AccessSummary,
26
+ ArticleShell: () => ArticleShell,
27
+ AuthShell: () => AuthShell,
28
+ BrowseSurface: () => BrowseSurface,
29
+ ConfirmDialog: () => ConfirmDialog,
30
+ ConsumerDashboardGrid: () => ConsumerDashboardGrid,
31
+ ConsumerSection: () => ConsumerSection,
32
+ CtaButtonGroup: () => CtaButtonGroup,
33
+ DataToolbar: () => DataToolbar,
34
+ DocsCodeBlock: () => DocsCodeBlock,
35
+ DocsPageShell: () => DocsPageShell,
36
+ EditorialCard: () => EditorialCard,
37
+ EditorialHero: () => EditorialHero,
38
+ EmptyState: () => EmptyState,
39
+ FeatureBand: () => FeatureBand,
40
+ FilterDrawer: () => FilterDrawer,
41
+ FormField: () => FormField,
42
+ GameBoardTile: () => GameBoardTile,
43
+ GdsIcons: () => GdsIcons,
44
+ GdsVocabulary: () => GdsVocabulary,
45
+ MediaCard: () => MediaCard,
46
+ MediaField: () => MediaField,
47
+ MetricCard: () => MetricCard,
48
+ PageHeader: () => PageHeader,
49
+ PlaceholderPanel: () => PlaceholderPanel,
50
+ ProductCard: () => ProductCard,
51
+ ProgressCard: () => ProgressCard,
52
+ PublicBrandFooter: () => PublicBrandFooter,
53
+ PublicNav: () => PublicNav,
54
+ PublicProductCard: () => PublicProductCard,
55
+ PublicShell: () => PublicShell,
56
+ PublicSiteFooter: () => PublicSiteFooter,
57
+ SectionPanel: () => SectionPanel,
58
+ SemanticButton: () => SemanticButton,
59
+ SimpleDataTable: () => SimpleDataTable,
60
+ StateBlock: () => StateBlock,
61
+ StatsSection: () => StatsSection,
62
+ StatusBadge: () => StatusBadge,
63
+ ThemeToggle: () => ThemeToggle,
64
+ UploadDropzone: () => UploadDropzone,
65
+ ar: () => ar,
66
+ de: () => de,
67
+ en: () => en,
68
+ es: () => es,
69
+ fr: () => fr,
70
+ gdsLocales: () => gdsLocales,
71
+ getGdsMessages: () => getGdsMessages,
72
+ he: () => he,
73
+ hu: () => hu,
74
+ it: () => it,
75
+ resolveAccentPanelStyles: () => resolveAccentPanelStyles,
76
+ ru: () => ru
77
+ });
78
+ module.exports = __toCommonJS(index_exports);
79
+
80
+ // src/StatusBadge.tsx
81
+ var import_core = require("@mantine/core");
82
+ var import_jsx_runtime = require("react/jsx-runtime");
83
+ var statusColorMap = {
84
+ success: "green",
85
+ warning: "yellow",
86
+ danger: "red",
87
+ info: "blue",
88
+ neutral: "gray"
89
+ };
90
+ function StatusBadge({ status, children, ...props }) {
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Badge, { color: statusColorMap[status], variant: "light", ...props, children });
92
+ }
93
+
94
+ // src/EmptyState.tsx
95
+ var import_core2 = require("@mantine/core");
96
+ var import_jsx_runtime2 = require("react/jsx-runtime");
97
+ function EmptyState({ icon, title, description, action }) {
98
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_core2.Stack, { align: "center", justify: "center", gap: "md", py: "xl", ta: "center", children: [
99
+ icon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Box, { c: "dimmed", children: icon }),
100
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Title, { order: 3, children: title }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Text, { c: "dimmed", maw: 400, children: description }),
102
+ action && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_core2.Box, { mt: "md", children: action })
103
+ ] });
104
+ }
105
+
106
+ // src/ConfirmDialog.tsx
107
+ var import_core4 = require("@mantine/core");
108
+
109
+ // src/SemanticButton.tsx
110
+ var import_react = require("react");
111
+ var import_core3 = require("@mantine/core");
112
+ var import_gds_theme = require("@doneisbetter/gds-theme");
113
+ var import_icons_react2 = require("@tabler/icons-react");
114
+
115
+ // src/icons.ts
116
+ var import_icons_react = require("@tabler/icons-react");
117
+ var GdsIcons = {
118
+ // Navigation
119
+ Dashboard: import_icons_react.IconDashboard,
120
+ Settings: import_icons_react.IconSettings,
121
+ Users: import_icons_react.IconUsers,
122
+ Analytics: import_icons_react.IconChartBar,
123
+ Home: import_icons_react.IconHome,
124
+ Inbox: import_icons_react.IconInbox,
125
+ Calendar: import_icons_react.IconCalendar,
126
+ Gallery: import_icons_react.IconPhoto,
127
+ History: import_icons_react.IconHistory,
128
+ Profile: import_icons_react.IconUser,
129
+ // Actions
130
+ Add: import_icons_react.IconPlus,
131
+ Edit: import_icons_react.IconEdit,
132
+ Delete: import_icons_react.IconTrash,
133
+ Search: import_icons_react.IconSearch,
134
+ Save: import_icons_react.IconDeviceFloppy,
135
+ Play: import_icons_react.IconPlayerPlay,
136
+ Start: import_icons_react.IconRocket,
137
+ Send: import_icons_react.IconSend,
138
+ Reply: import_icons_react.IconArrowBackUp,
139
+ Forward: import_icons_react.IconArrowForwardUp,
140
+ Attach: import_icons_react.IconPaperclip,
141
+ Upload: import_icons_react.IconUpload,
142
+ Download: import_icons_react.IconDownload,
143
+ Print: import_icons_react.IconPrinter,
144
+ Copy: import_icons_react.IconCopy,
145
+ Duplicate: import_icons_react.IconCopyPlus,
146
+ Check: import_icons_react.IconSquareCheck,
147
+ Uncheck: import_icons_react.IconSquareX,
148
+ Complete: import_icons_react.IconChecks,
149
+ Clear: import_icons_react.IconClearAll,
150
+ Cancel: import_icons_react.IconBan,
151
+ Confirm: import_icons_react.IconThumbUp,
152
+ Close: import_icons_react.IconX,
153
+ // Preferences & System
154
+ Language: import_icons_react.IconLanguage,
155
+ Theme: import_icons_react.IconPalette,
156
+ // Media
157
+ Capture: import_icons_react.IconCamera,
158
+ Record: import_icons_react.IconVideo,
159
+ Flip: import_icons_react.IconCameraRotate,
160
+ Flash: import_icons_react.IconBolt,
161
+ // Domain specific
162
+ Course: import_icons_react.IconBook,
163
+ Lesson: import_icons_react.IconNotebook,
164
+ Certificate: import_icons_react.IconCertificate,
165
+ Student: import_icons_react.IconSchool,
166
+ Class: import_icons_react.IconBooks,
167
+ Grade: import_icons_react.IconAward,
168
+ Child: import_icons_react.IconMoodKid,
169
+ Family: import_icons_react.IconUsersGroup,
170
+ Habit: import_icons_react.IconTarget,
171
+ Goal: import_icons_react.IconFlag,
172
+ Streak: import_icons_react.IconFlame,
173
+ Reward: import_icons_react.IconGift,
174
+ // Feedback
175
+ Success: import_icons_react.IconCheck,
176
+ Warning: import_icons_react.IconAlertTriangle,
177
+ Danger: import_icons_react.IconAlertCircle,
178
+ Info: import_icons_react.IconInfoCircle,
179
+ // Analysis additions
180
+ Trophy: import_icons_react.IconTrophy,
181
+ Crown: import_icons_react.IconCrown,
182
+ Pause: import_icons_react.IconPlayerPause,
183
+ Message: import_icons_react.IconMessage,
184
+ Mail: import_icons_react.IconMail,
185
+ Refresh: import_icons_react.IconRefresh,
186
+ TrendingUp: import_icons_react.IconTrendingUp,
187
+ TrendingDown: import_icons_react.IconTrendingDown,
188
+ Currency: import_icons_react.IconCurrencyDollar,
189
+ Grid: import_icons_react.IconLayoutGrid,
190
+ List: import_icons_react.IconList,
191
+ Logout: import_icons_react.IconDoorExit,
192
+ Notifications: import_icons_react.IconBell,
193
+ Back: import_icons_react.IconArrowLeft,
194
+ Eye: import_icons_react.IconEye,
195
+ EyeOff: import_icons_react.IconEyeOff,
196
+ Help: import_icons_react.IconHelpCircle,
197
+ Filter: import_icons_react.IconFilter,
198
+ Sort: import_icons_react.IconArrowsSort,
199
+ // New Audit-driven additions
200
+ Export: import_icons_react.IconFileExport,
201
+ Import: import_icons_react.IconFileImport,
202
+ Preview: import_icons_react.IconEye,
203
+ Clone: import_icons_react.IconCopy,
204
+ Restore: import_icons_react.IconTrashOff,
205
+ Toggle: import_icons_react.IconToggleLeft,
206
+ Submit: import_icons_react.IconCheck,
207
+ Reset: import_icons_react.IconRefresh,
208
+ Login: import_icons_react.IconLogin,
209
+ Register: import_icons_react.IconUserPlus,
210
+ Verify: import_icons_react.IconShieldCheck,
211
+ Launch: import_icons_react.IconRocket,
212
+ Draft: import_icons_react.IconFileText,
213
+ Refer: import_icons_react.IconShare,
214
+ Evidence: import_icons_react.IconPaperclip,
215
+ // System
216
+ ChevronDown: import_icons_react.IconChevronDown,
217
+ ChevronUp: import_icons_react.IconChevronUp,
218
+ Menu: import_icons_react.IconMenu2,
219
+ Moon: import_icons_react.IconMoon,
220
+ Sun: import_icons_react.IconSun
221
+ };
222
+
223
+ // src/vocabulary.ts
224
+ var GdsVocabulary = {
225
+ // Base
226
+ settings: { id: "gds.action.settings", defaultMessage: "Settings", icon: GdsIcons.Settings, feedback: { icon: GdsIcons.Settings, color: "teal", messageId: "gds.feedback.saved" } },
227
+ analytics: { id: "gds.action.analytics", defaultMessage: "Analytics", icon: GdsIcons.Analytics, feedback: { icon: GdsIcons.Analytics, color: "teal", messageId: "gds.feedback.loaded" } },
228
+ dashboard: { id: "gds.action.dashboard", defaultMessage: "Dashboard", icon: GdsIcons.Dashboard, feedback: { icon: GdsIcons.Dashboard, color: "teal", messageId: "gds.feedback.loaded" } },
229
+ play: { id: "gds.action.play", defaultMessage: "Play", icon: GdsIcons.Play, feedback: { icon: GdsIcons.Play, color: "teal", messageId: "gds.feedback.started" } },
230
+ start: { id: "gds.action.start", defaultMessage: "Start", icon: GdsIcons.Start, feedback: { icon: GdsIcons.Start, color: "teal", messageId: "gds.feedback.started" } },
231
+ users: { id: "gds.action.users", defaultMessage: "Users", icon: GdsIcons.Users, feedback: { icon: GdsIcons.Users, color: "teal", messageId: "gds.feedback.loaded" } },
232
+ add: { id: "gds.action.add", defaultMessage: "Add", icon: GdsIcons.Add, feedback: { icon: GdsIcons.Add, color: "teal", messageId: "gds.feedback.added" } },
233
+ edit: { id: "gds.action.edit", defaultMessage: "Edit", icon: GdsIcons.Edit, feedback: { icon: GdsIcons.Edit, color: "teal", messageId: "gds.feedback.edited" } },
234
+ delete: { id: "gds.action.delete", defaultMessage: "Delete", icon: GdsIcons.Delete, feedback: { icon: GdsIcons.Delete, color: "red", messageId: "gds.feedback.deleted" } },
235
+ save: { id: "gds.action.save", defaultMessage: "Save", icon: GdsIcons.Save, feedback: { icon: GdsIcons.Save, color: "teal", messageId: "gds.feedback.saved" } },
236
+ cancel: { id: "gds.action.cancel", defaultMessage: "Cancel", icon: GdsIcons.Cancel, feedback: { icon: GdsIcons.Cancel, color: "red", messageId: "gds.feedback.canceled" } },
237
+ confirm: { id: "gds.action.confirm", defaultMessage: "Confirm", icon: GdsIcons.Confirm, feedback: { icon: GdsIcons.Confirm, color: "teal", messageId: "gds.feedback.confirmed" } },
238
+ close: { id: "gds.action.close", defaultMessage: "Close", icon: GdsIcons.Close, feedback: { icon: GdsIcons.Close, color: "gray", messageId: "gds.feedback.closed" } },
239
+ language: { id: "gds.action.language", defaultMessage: "Language", icon: GdsIcons.Language, feedback: { icon: GdsIcons.Language, color: "teal", messageId: "gds.feedback.changed" } },
240
+ theme: { id: "gds.action.theme", defaultMessage: "Theme", icon: GdsIcons.Theme, feedback: { icon: GdsIcons.Theme, color: "teal", messageId: "gds.feedback.changed" } },
241
+ // Navigation
242
+ home: { id: "gds.action.home", defaultMessage: "Home", icon: GdsIcons.Home, feedback: { icon: GdsIcons.Home, color: "teal", messageId: "gds.feedback.opened" } },
243
+ inbox: { id: "gds.action.inbox", defaultMessage: "Inbox", icon: GdsIcons.Inbox, feedback: { icon: GdsIcons.Inbox, color: "teal", messageId: "gds.feedback.opened" } },
244
+ calendar: { id: "gds.action.calendar", defaultMessage: "Calendar", icon: GdsIcons.Calendar, feedback: { icon: GdsIcons.Calendar, color: "teal", messageId: "gds.feedback.opened" } },
245
+ gallery: { id: "gds.action.gallery", defaultMessage: "Gallery", icon: GdsIcons.Gallery, feedback: { icon: GdsIcons.Gallery, color: "teal", messageId: "gds.feedback.opened" } },
246
+ history: { id: "gds.action.history", defaultMessage: "History", icon: GdsIcons.History, feedback: { icon: GdsIcons.History, color: "teal", messageId: "gds.feedback.opened" } },
247
+ profile: { id: "gds.action.profile", defaultMessage: "Profile", icon: GdsIcons.Profile, feedback: { icon: GdsIcons.Profile, color: "teal", messageId: "gds.feedback.opened" } },
248
+ // Actions
249
+ send: { id: "gds.action.send", defaultMessage: "Send", icon: GdsIcons.Send, feedback: { icon: GdsIcons.Send, color: "blue", messageId: "gds.feedback.sent" } },
250
+ reply: { id: "gds.action.reply", defaultMessage: "Reply", icon: GdsIcons.Reply, feedback: { icon: GdsIcons.Reply, color: "blue", messageId: "gds.feedback.replied" } },
251
+ forward: { id: "gds.action.forward", defaultMessage: "Forward", icon: GdsIcons.Forward, feedback: { icon: GdsIcons.Forward, color: "blue", messageId: "gds.feedback.forwarded" } },
252
+ attach: { id: "gds.action.attach", defaultMessage: "Attach", icon: GdsIcons.Attach, feedback: { icon: GdsIcons.Attach, color: "teal", messageId: "gds.feedback.attached" } },
253
+ upload: { id: "gds.action.upload", defaultMessage: "Upload", icon: GdsIcons.Upload, feedback: { icon: GdsIcons.Upload, color: "teal", messageId: "gds.feedback.uploaded" } },
254
+ download: { id: "gds.action.download", defaultMessage: "Download", icon: GdsIcons.Download, feedback: { icon: GdsIcons.Download, color: "teal", messageId: "gds.feedback.downloaded" } },
255
+ print: { id: "gds.action.print", defaultMessage: "Print", icon: GdsIcons.Print, feedback: { icon: GdsIcons.Print, color: "teal", messageId: "gds.feedback.printed" } },
256
+ copy: { id: "gds.action.copy", defaultMessage: "Copy", icon: GdsIcons.Copy, feedback: { icon: GdsIcons.Copy, color: "teal", messageId: "gds.feedback.copied" } },
257
+ duplicate: { id: "gds.action.duplicate", defaultMessage: "Duplicate", icon: GdsIcons.Duplicate, feedback: { icon: GdsIcons.Duplicate, color: "teal", messageId: "gds.feedback.duplicated" } },
258
+ check: { id: "gds.action.check", defaultMessage: "Check", icon: GdsIcons.Check, feedback: { icon: GdsIcons.Check, color: "teal", messageId: "gds.feedback.checked" } },
259
+ uncheck: { id: "gds.action.uncheck", defaultMessage: "Uncheck", icon: GdsIcons.Uncheck, feedback: { icon: GdsIcons.Uncheck, color: "red", messageId: "gds.feedback.unchecked" } },
260
+ complete: { id: "gds.action.complete", defaultMessage: "Complete", icon: GdsIcons.Complete, feedback: { icon: GdsIcons.Complete, color: "teal", messageId: "gds.feedback.completed" } },
261
+ clear: { id: "gds.action.clear", defaultMessage: "Clear", icon: GdsIcons.Clear, feedback: { icon: GdsIcons.Clear, color: "red", messageId: "gds.feedback.cleared" } },
262
+ // Media (camera project)
263
+ capture: { id: "gds.action.capture", defaultMessage: "Capture", icon: GdsIcons.Capture, feedback: { icon: GdsIcons.Capture, color: "teal", messageId: "gds.feedback.captured" } },
264
+ record: { id: "gds.action.record", defaultMessage: "Record", icon: GdsIcons.Record, feedback: { icon: GdsIcons.Record, color: "teal", messageId: "gds.feedback.recorded" } },
265
+ flip: { id: "gds.action.flip", defaultMessage: "Flip", icon: GdsIcons.Flip, feedback: { icon: GdsIcons.Flip, color: "teal", messageId: "gds.feedback.flipped" } },
266
+ flash: { id: "gds.action.flash", defaultMessage: "Flash", icon: GdsIcons.Flash, feedback: { icon: GdsIcons.Flash, color: "teal", messageId: "gds.feedback.flashed" } },
267
+ // Domain specific (amanoba, classscout, kidex, habigoal)
268
+ course: { id: "gds.action.course", defaultMessage: "Course", icon: GdsIcons.Course, feedback: { icon: GdsIcons.Course, color: "teal", messageId: "gds.feedback.done" } },
269
+ lesson: { id: "gds.action.lesson", defaultMessage: "Lesson", icon: GdsIcons.Lesson, feedback: { icon: GdsIcons.Lesson, color: "teal", messageId: "gds.feedback.done" } },
270
+ certificate: { id: "gds.action.certificate", defaultMessage: "Certificate", icon: GdsIcons.Certificate, feedback: { icon: GdsIcons.Certificate, color: "teal", messageId: "gds.feedback.done" } },
271
+ student: { id: "gds.action.student", defaultMessage: "Student", icon: GdsIcons.Student, feedback: { icon: GdsIcons.Student, color: "teal", messageId: "gds.feedback.done" } },
272
+ class: { id: "gds.action.class", defaultMessage: "Class", icon: GdsIcons.Class, feedback: { icon: GdsIcons.Class, color: "teal", messageId: "gds.feedback.done" } },
273
+ grade: { id: "gds.action.grade", defaultMessage: "Grade", icon: GdsIcons.Grade, feedback: { icon: GdsIcons.Grade, color: "teal", messageId: "gds.feedback.done" } },
274
+ child: { id: "gds.action.child", defaultMessage: "Child", icon: GdsIcons.Child, feedback: { icon: GdsIcons.Child, color: "teal", messageId: "gds.feedback.done" } },
275
+ family: { id: "gds.action.family", defaultMessage: "Family", icon: GdsIcons.Family, feedback: { icon: GdsIcons.Family, color: "teal", messageId: "gds.feedback.done" } },
276
+ habit: { id: "gds.action.habit", defaultMessage: "Habit", icon: GdsIcons.Habit, feedback: { icon: GdsIcons.Habit, color: "teal", messageId: "gds.feedback.done" } },
277
+ goal: { id: "gds.action.goal", defaultMessage: "Goal", icon: GdsIcons.Goal, feedback: { icon: GdsIcons.Goal, color: "teal", messageId: "gds.feedback.done" } },
278
+ streak: { id: "gds.action.streak", defaultMessage: "Streak", icon: GdsIcons.Streak, feedback: { icon: GdsIcons.Streak, color: "teal", messageId: "gds.feedback.done" } },
279
+ reward: { id: "gds.action.reward", defaultMessage: "Reward", icon: GdsIcons.Reward, feedback: { icon: GdsIcons.Reward, color: "yellow", messageId: "gds.feedback.rewarded" } },
280
+ // Codebase analysis additions
281
+ trophy: { id: "gds.action.trophy", defaultMessage: "Trophy", icon: GdsIcons.Trophy, feedback: { icon: GdsIcons.Trophy, color: "yellow", messageId: "gds.feedback.rewarded" } },
282
+ crown: { id: "gds.action.crown", defaultMessage: "Crown", icon: GdsIcons.Crown, feedback: { icon: GdsIcons.Crown, color: "yellow", messageId: "gds.feedback.rewarded" } },
283
+ pause: { id: "gds.action.pause", defaultMessage: "Pause", icon: GdsIcons.Pause, feedback: { icon: GdsIcons.Pause, color: "teal", messageId: "gds.feedback.paused" } },
284
+ message: { id: "gds.action.message", defaultMessage: "Message", icon: GdsIcons.Message, feedback: { icon: GdsIcons.Message, color: "blue", messageId: "gds.feedback.sent" } },
285
+ mail: { id: "gds.action.mail", defaultMessage: "Mail", icon: GdsIcons.Mail, feedback: { icon: GdsIcons.Mail, color: "blue", messageId: "gds.feedback.mailed" } },
286
+ refresh: { id: "gds.action.refresh", defaultMessage: "Refresh", icon: GdsIcons.Refresh, feedback: { icon: GdsIcons.Refresh, color: "teal", messageId: "gds.feedback.refreshed" } },
287
+ trendingUp: { id: "gds.action.trendingUp", defaultMessage: "Trending Up", icon: GdsIcons.TrendingUp, feedback: { icon: GdsIcons.TrendingUp, color: "teal", messageId: "gds.feedback.done" } },
288
+ trendingDown: { id: "gds.action.trendingDown", defaultMessage: "Trending Down", icon: GdsIcons.TrendingDown, feedback: { icon: GdsIcons.TrendingDown, color: "teal", messageId: "gds.feedback.done" } },
289
+ currency: { id: "gds.action.currency", defaultMessage: "Currency", icon: GdsIcons.Currency, feedback: { icon: GdsIcons.Currency, color: "teal", messageId: "gds.feedback.done" } },
290
+ grid: { id: "gds.action.grid", defaultMessage: "Grid", icon: GdsIcons.Grid, feedback: { icon: GdsIcons.Grid, color: "teal", messageId: "gds.feedback.done" } },
291
+ list: { id: "gds.action.list", defaultMessage: "List", icon: GdsIcons.List, feedback: { icon: GdsIcons.List, color: "teal", messageId: "gds.feedback.done" } },
292
+ logout: { id: "gds.action.logout", defaultMessage: "Logout", icon: GdsIcons.Logout, feedback: { icon: GdsIcons.Logout, color: "teal", messageId: "gds.feedback.loggedOut" } },
293
+ notifications: { id: "gds.action.notifications", defaultMessage: "Notifications", icon: GdsIcons.Notifications, feedback: { icon: GdsIcons.Notifications, color: "teal", messageId: "gds.feedback.done" } },
294
+ back: { id: "gds.action.back", defaultMessage: "Back", icon: GdsIcons.Back, feedback: { icon: GdsIcons.Back, color: "teal", messageId: "gds.feedback.done" } },
295
+ eye: { id: "gds.action.eye", defaultMessage: "View", icon: GdsIcons.Eye, feedback: { icon: GdsIcons.Eye, color: "teal", messageId: "gds.feedback.done" } },
296
+ eyeOff: { id: "gds.action.eyeOff", defaultMessage: "Hide", icon: GdsIcons.EyeOff, feedback: { icon: GdsIcons.EyeOff, color: "teal", messageId: "gds.feedback.done" } },
297
+ help: { id: "gds.action.help", defaultMessage: "Help", icon: GdsIcons.Help, feedback: { icon: GdsIcons.Help, color: "teal", messageId: "gds.feedback.done" } },
298
+ filter: { id: "gds.action.filter", defaultMessage: "Filter", icon: GdsIcons.Filter, feedback: { icon: GdsIcons.Filter, color: "teal", messageId: "gds.feedback.filtered" } },
299
+ sort: { id: "gds.action.sort", defaultMessage: "Sort", icon: GdsIcons.Sort, feedback: { icon: GdsIcons.Sort, color: "teal", messageId: "gds.feedback.sorted" } },
300
+ // Audit-driven additions
301
+ export: { id: "gds.action.export", defaultMessage: "Export", icon: GdsIcons.Export, feedback: { icon: GdsIcons.Export, color: "teal", messageId: "gds.feedback.exported" } },
302
+ import: { id: "gds.action.import", defaultMessage: "Import", icon: GdsIcons.Import, feedback: { icon: GdsIcons.Import, color: "teal", messageId: "gds.feedback.imported" } },
303
+ preview: { id: "gds.action.preview", defaultMessage: "Preview", icon: GdsIcons.Preview, feedback: { icon: GdsIcons.Preview, color: "teal", messageId: "gds.feedback.previewed" } },
304
+ clone: { id: "gds.action.clone", defaultMessage: "Clone", icon: GdsIcons.Clone, feedback: { icon: GdsIcons.Clone, color: "teal", messageId: "gds.feedback.cloned" } },
305
+ restore: { id: "gds.action.restore", defaultMessage: "Restore", icon: GdsIcons.Restore, feedback: { icon: GdsIcons.Restore, color: "teal", messageId: "gds.feedback.restored" } },
306
+ toggle: { id: "gds.action.toggle", defaultMessage: "Toggle", icon: GdsIcons.Toggle, feedback: { icon: GdsIcons.Toggle, color: "teal", messageId: "gds.feedback.toggled" } },
307
+ search: { id: "gds.action.search", defaultMessage: "Search", icon: GdsIcons.Search, feedback: { icon: GdsIcons.Search, color: "teal", messageId: "gds.feedback.searched" } },
308
+ submit: { id: "gds.action.submit", defaultMessage: "Submit", icon: GdsIcons.Submit, feedback: { icon: GdsIcons.Submit, color: "teal", messageId: "gds.feedback.submitted" } },
309
+ reset: { id: "gds.action.reset", defaultMessage: "Reset", icon: GdsIcons.Reset, feedback: { icon: GdsIcons.Reset, color: "red", messageId: "gds.feedback.reset" } },
310
+ login: { id: "gds.action.login", defaultMessage: "Login", icon: GdsIcons.Login, feedback: { icon: GdsIcons.Login, color: "teal", messageId: "gds.feedback.loggedIn" } },
311
+ register: { id: "gds.action.register", defaultMessage: "Register", icon: GdsIcons.Register, feedback: { icon: GdsIcons.Register, color: "teal", messageId: "gds.feedback.registered" } },
312
+ verify: { id: "gds.action.verify", defaultMessage: "Verify", icon: GdsIcons.Verify, feedback: { icon: GdsIcons.Verify, color: "teal", messageId: "gds.feedback.verified" } },
313
+ launch: { id: "gds.action.launch", defaultMessage: "Launch", icon: GdsIcons.Launch, feedback: { icon: GdsIcons.Launch, color: "purple", messageId: "gds.feedback.launched" } },
314
+ draft: { id: "gds.action.draft", defaultMessage: "Draft", icon: GdsIcons.Draft, feedback: { icon: GdsIcons.Draft, color: "teal", messageId: "gds.feedback.drafted" } },
315
+ refer: { id: "gds.action.refer", defaultMessage: "Refer", icon: GdsIcons.Refer, feedback: { icon: GdsIcons.Refer, color: "teal", messageId: "gds.feedback.referred" } },
316
+ evidence: { id: "gds.action.evidence", defaultMessage: "Evidence", icon: GdsIcons.Evidence, feedback: { icon: GdsIcons.Evidence, color: "teal", messageId: "gds.feedback.added" } }
317
+ };
318
+
319
+ // src/SemanticButton.tsx
320
+ var import_jsx_runtime3 = require("react/jsx-runtime");
321
+ function SemanticButton({ action, loading, feedbackState, feedbackText, ...props }) {
322
+ const { t } = (0, import_gds_theme.useGdsTranslation)();
323
+ const config = GdsVocabulary[action];
324
+ const [internalFeedback, setInternalFeedback] = (0, import_react.useState)(null);
325
+ (0, import_react.useEffect)(() => {
326
+ if (feedbackState) {
327
+ setInternalFeedback(feedbackState);
328
+ const timer = setTimeout(() => setInternalFeedback(null), 2e3);
329
+ return () => clearTimeout(timer);
330
+ }
331
+ }, [feedbackState]);
332
+ let Icon = config.icon;
333
+ let label = t(config.id, config.defaultMessage);
334
+ let color = props.color;
335
+ if (internalFeedback === "success") {
336
+ const defaultFeedback = "feedback" in config && config.feedback ? config.feedback : { icon: import_icons_react2.IconCheck, color: "teal", messageId: "gds.feedback.saved" };
337
+ Icon = defaultFeedback.icon;
338
+ label = feedbackText || t(defaultFeedback.messageId, "Success");
339
+ color = defaultFeedback.color;
340
+ } else if (internalFeedback === "error") {
341
+ Icon = import_icons_react2.IconX;
342
+ label = feedbackText || t("gds.feedback.error", "Something went wrong");
343
+ color = "red";
344
+ }
345
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
346
+ import_core3.Button,
347
+ {
348
+ leftSection: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Icon, { size: "1rem" }),
349
+ loading,
350
+ color,
351
+ ...props,
352
+ children: label
353
+ }
354
+ );
355
+ }
356
+
357
+ // src/ConfirmDialog.tsx
358
+ var import_jsx_runtime4 = require("react/jsx-runtime");
359
+ function ConfirmDialog({
360
+ opened,
361
+ onClose,
362
+ onConfirm,
363
+ title,
364
+ children,
365
+ confirmAction = "confirm",
366
+ cancelAction = "cancel",
367
+ isDanger = true,
368
+ loading = false
369
+ }) {
370
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_core4.Modal, { opened, onClose, title, centered: true, trapFocus: true, children: [
371
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_core4.Text, { size: "sm", mb: "xl", children }),
372
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_core4.Group, { justify: "flex-end", children: [
373
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SemanticButton, { action: cancelAction, variant: "default", onClick: onClose, disabled: loading }),
374
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SemanticButton, { action: confirmAction, color: isDanger ? "red" : "violet", onClick: onConfirm, loading })
375
+ ] })
376
+ ] });
377
+ }
378
+
379
+ // src/ThemeToggle.tsx
380
+ var import_core5 = require("@mantine/core");
381
+ var import_gds_theme2 = require("@doneisbetter/gds-theme");
382
+ var import_jsx_runtime5 = require("react/jsx-runtime");
383
+ function ThemeToggle({ size = "md" }) {
384
+ const { setColorScheme } = (0, import_core5.useMantineColorScheme)();
385
+ const computedColorScheme = (0, import_core5.useComputedColorScheme)("light", { getInitialValueInEffect: true });
386
+ const { t } = (0, import_gds_theme2.useGdsTranslation)();
387
+ const toggleColorScheme = () => {
388
+ setColorScheme(computedColorScheme === "dark" ? "light" : "dark");
389
+ };
390
+ const isDark = computedColorScheme === "dark";
391
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
392
+ import_core5.ActionIcon,
393
+ {
394
+ onClick: toggleColorScheme,
395
+ variant: "default",
396
+ size,
397
+ "aria-label": t("gds.aria.themeToggle", "Toggle color scheme"),
398
+ children: isDark ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(GdsIcons.Sun, { size: "1.2rem" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(GdsIcons.Moon, { size: "1.2rem" })
399
+ }
400
+ );
401
+ }
402
+
403
+ // src/MetricCard.tsx
404
+ var import_core6 = require("@mantine/core");
405
+ var import_jsx_runtime6 = require("react/jsx-runtime");
406
+ var trendColors = {
407
+ positive: "teal",
408
+ negative: "red",
409
+ neutral: "gray"
410
+ };
411
+ function MetricCard({ label, value, description, trend, icon, footer }) {
412
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Stack, { gap: "md", children: [
413
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
414
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Stack, { gap: 4, children: [
415
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Text, { size: "sm", c: "dimmed", fw: 600, children: label }),
416
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Title, { order: 3, children: value })
417
+ ] }),
418
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.ThemeIcon, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null
419
+ ] }),
420
+ description || trend ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core6.Group, { justify: "space-between", align: "center", gap: "sm", children: [
421
+ description ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Text, { size: "sm", c: "dimmed", flex: 1, children: description }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", {}),
422
+ trend ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core6.Badge, { color: trendColors[trend.tone ?? "neutral"], variant: "light", children: trend.label }) : null
423
+ ] }) : null,
424
+ footer
425
+ ] }) });
426
+ }
427
+
428
+ // src/ProgressCard.tsx
429
+ var import_core7 = require("@mantine/core");
430
+ var import_jsx_runtime7 = require("react/jsx-runtime");
431
+ function ProgressCard({
432
+ label,
433
+ value,
434
+ progress,
435
+ progressLabel,
436
+ description,
437
+ action
438
+ }) {
439
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_core7.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_core7.Stack, { gap: "md", children: [
440
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_core7.Group, { justify: "space-between", align: "flex-start", children: [
441
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_core7.Stack, { gap: 4, children: [
442
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_core7.Text, { size: "sm", c: "dimmed", fw: 600, children: label }),
443
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_core7.Title, { order: 3, children: value })
444
+ ] }),
445
+ action
446
+ ] }),
447
+ description ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_core7.Text, { size: "sm", c: "dimmed", children: description }) : null,
448
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_core7.Stack, { gap: 6, children: [
449
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_core7.Group, { justify: "space-between", gap: "sm", children: [
450
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_core7.Text, { size: "sm", fw: 500, children: progressLabel ?? "Progress" }),
451
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_core7.Text, { size: "sm", c: "dimmed", children: [
452
+ Math.round(progress),
453
+ "%"
454
+ ] })
455
+ ] }),
456
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_core7.Progress, { value: progress, radius: "xl", size: "md" })
457
+ ] })
458
+ ] }) });
459
+ }
460
+
461
+ // src/SectionPanel.tsx
462
+ var import_core8 = require("@mantine/core");
463
+ var import_jsx_runtime8 = require("react/jsx-runtime");
464
+ var toneBackgrounds = {
465
+ default: "var(--mantine-color-body)",
466
+ supporting: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
467
+ warning: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-9) 18%, var(--mantine-color-body)))",
468
+ critical: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 18%, var(--mantine-color-body)))"
469
+ };
470
+ function SectionPanel({
471
+ title,
472
+ description,
473
+ action,
474
+ children,
475
+ tone = "default",
476
+ id,
477
+ divided = true
478
+ }) {
479
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core8.Paper, { id, withBorder: true, radius: "xl", p: "lg", style: { background: toneBackgrounds[tone] }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_core8.Stack, { gap: "md", children: [
480
+ title || description || action ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
481
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_core8.Group, { justify: "space-between", align: "flex-start", gap: "md", wrap: "wrap", children: [
482
+ title || description ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_core8.Stack, { gap: 4, children: [
483
+ title ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core8.Title, { order: 3, children: title }) : null,
484
+ description ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core8.Text, { size: "sm", c: "dimmed", children: description }) : null
485
+ ] }) : null,
486
+ action
487
+ ] }),
488
+ divided ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_core8.Divider, {}) : null
489
+ ] }) : null,
490
+ children
491
+ ] }) });
492
+ }
493
+
494
+ // src/ConsumerSection.tsx
495
+ var import_jsx_runtime9 = require("react/jsx-runtime");
496
+ function ConsumerSection({
497
+ title,
498
+ description,
499
+ action,
500
+ children,
501
+ tone = "default"
502
+ }) {
503
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SectionPanel, { title, description, action, tone, children });
504
+ }
505
+
506
+ // src/ConsumerDashboardGrid.tsx
507
+ var import_core9 = require("@mantine/core");
508
+ var import_jsx_runtime10 = require("react/jsx-runtime");
509
+ function ConsumerDashboardGrid({
510
+ children,
511
+ columns = 3
512
+ }) {
513
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core9.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children });
514
+ }
515
+
516
+ // src/GameBoardTile.tsx
517
+ var import_core10 = require("@mantine/core");
518
+ var import_hooks = require("@mantine/hooks");
519
+ var import_jsx_runtime11 = require("react/jsx-runtime");
520
+ function GameBoardTile({
521
+ face,
522
+ revealed,
523
+ matched,
524
+ disabled,
525
+ onPress,
526
+ highlightColor
527
+ }) {
528
+ const theme = (0, import_core10.useMantineTheme)();
529
+ const reduceMotion = (0, import_hooks.useMediaQuery)("(prefers-reduced-motion: reduce)");
530
+ const highlighted = revealed && !matched;
531
+ const revealBg = highlightColor ?? (typeof theme.primaryColor === "string" ? `${theme.primaryColor}.5` : "violet.5");
532
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.UnstyledButton, { w: "100%", disabled, onClick: onPress, "aria-pressed": revealed, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
533
+ import_core10.Paper,
534
+ {
535
+ withBorder: true,
536
+ radius: "md",
537
+ p: "md",
538
+ bg: revealed ? revealBg : "dark.6",
539
+ styles: {
540
+ root: {
541
+ aspectRatio: "1",
542
+ opacity: matched ? 0.55 : 1,
543
+ cursor: disabled ? "not-allowed" : "pointer",
544
+ transition: reduceMotion ? "opacity 0.2s ease" : "transform 0.25s ease, background-color 0.25s ease, opacity 0.25s ease",
545
+ transform: reduceMotion || !highlighted ? "scale(1)" : "scale(1.02)"
546
+ }
547
+ },
548
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Center, { h: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core10.Text, { size: "xl", fw: 700, children: face }) })
549
+ }
550
+ ) });
551
+ }
552
+
553
+ // src/EditorialCard.tsx
554
+ var import_core11 = require("@mantine/core");
555
+ var import_jsx_runtime12 = require("react/jsx-runtime");
556
+ var tonePalette = {
557
+ default: {
558
+ accent: "violet",
559
+ background: "var(--mantine-color-body)"
560
+ },
561
+ warm: {
562
+ accent: "orange",
563
+ background: "light-dark(var(--mantine-color-orange-0), color-mix(in srgb, var(--mantine-color-orange-9) 16%, var(--mantine-color-body)))"
564
+ },
565
+ cool: {
566
+ accent: "blue",
567
+ background: "light-dark(var(--mantine-color-blue-0), color-mix(in srgb, var(--mantine-color-blue-9) 16%, var(--mantine-color-body)))"
568
+ },
569
+ muted: {
570
+ accent: "gray",
571
+ background: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))"
572
+ }
573
+ };
574
+ function EditorialMediaFallback({ compact }) {
575
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.AspectRatio, { ratio: compact ? 16 / 10 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
576
+ import_core11.Box,
577
+ {
578
+ style: {
579
+ display: "grid",
580
+ placeItems: "center",
581
+ width: "100%",
582
+ height: "100%",
583
+ background: "var(--mantine-color-gray-0)",
584
+ borderRadius: "var(--mantine-radius-md)"
585
+ },
586
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
587
+ }
588
+ ) });
589
+ }
590
+ function EditorialCard({
591
+ media,
592
+ mediaAlt,
593
+ eyebrow,
594
+ badge,
595
+ title,
596
+ description,
597
+ meta,
598
+ ctaLabel = "Explore",
599
+ href,
600
+ onClick,
601
+ tone = "default",
602
+ variant = "standard",
603
+ classNames
604
+ }) {
605
+ const compact = variant === "compact";
606
+ const featured = variant === "featured";
607
+ const palette = tonePalette[tone];
608
+ const interactiveProps = href ? { component: "a", href } : onClick ? { component: "button", onClick, type: "button" } : {};
609
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
610
+ import_core11.Card,
611
+ {
612
+ className: classNames?.root,
613
+ withBorder: true,
614
+ radius: "xl",
615
+ padding: 0,
616
+ ...interactiveProps,
617
+ style: {
618
+ overflow: "hidden",
619
+ textAlign: "left",
620
+ background: featured ? palette.background : "var(--mantine-color-body)",
621
+ cursor: href || onClick ? "pointer" : "default"
622
+ },
623
+ children: [
624
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Card.Section, { className: classNames?.media, children: media ?? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(EditorialMediaFallback, { compact }) }),
625
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: "md", p: compact ? "md" : "lg", className: classNames?.body, children: [
626
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
627
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Stack, { gap: 4, flex: 1, children: [
628
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "xs", fw: 700, c: "dimmed", children: eyebrow }) : null,
629
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Title, { order: compact ? 4 : 3, className: classNames?.title, children: title })
630
+ ] }),
631
+ badge ? typeof badge === "string" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Badge, { color: palette.accent, variant: "light", children: badge }) : badge : null
632
+ ] }),
633
+ description ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", children: description }) : null,
634
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { size: "sm", c: "dimmed", className: classNames?.meta, children: meta }) : null,
635
+ href || onClick || ctaLabel ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_core11.Group, { gap: 6, c: `${palette.accent}.7`, className: classNames?.action, children: [
636
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_core11.Text, { fw: 600, size: "sm", children: ctaLabel }),
637
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
638
+ import_core11.Anchor,
639
+ {
640
+ component: "span",
641
+ underline: "never",
642
+ c: "inherit",
643
+ "aria-label": typeof mediaAlt === "string" ? mediaAlt : void 0,
644
+ children: "\u2192"
645
+ }
646
+ )
647
+ ] }) : null
648
+ ] })
649
+ ]
650
+ }
651
+ );
652
+ }
653
+
654
+ // src/ProductCard.tsx
655
+ var import_core12 = require("@mantine/core");
656
+ var import_jsx_runtime13 = require("react/jsx-runtime");
657
+ function ProductCard({
658
+ title,
659
+ description,
660
+ media,
661
+ icon,
662
+ status,
663
+ metadata = [],
664
+ primaryAction,
665
+ secondaryActions = [],
666
+ footer
667
+ }) {
668
+ const MoreIcon = GdsIcons.Menu;
669
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Stack, { gap: "md", children: [
670
+ media,
671
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", children: [
672
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Group, { align: "flex-start", gap: "sm", wrap: "nowrap", children: [
673
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.ThemeIcon, { variant: "light", size: "xl", radius: "xl", "aria-hidden": true, children: icon }) : null,
674
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Stack, { gap: 4, children: [
675
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Title, { order: 4, children: title }),
676
+ description ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", c: "dimmed", lineClamp: 3, children: description }) : null
677
+ ] })
678
+ ] }),
679
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Group, { gap: "xs", align: "center", wrap: "nowrap", children: [
680
+ typeof status === "string" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Badge, { variant: "light", children: status }) : status,
681
+ secondaryActions.length ? /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Menu, { position: "bottom-end", withinPortal: true, children: [
682
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Menu.Target, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.ActionIcon, { variant: "subtle", "aria-label": "More actions", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(MoreIcon, { size: "1rem" }) }) }),
683
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Menu.Dropdown, { children: secondaryActions.map(
684
+ (action) => action.href ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Menu.Item, { component: "a", href: action.href, color: action.color, children: action.label }, action.label) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Menu.Item, { onClick: action.onClick, color: action.color, children: action.label }, action.label)
685
+ ) })
686
+ ] }) : null
687
+ ] })
688
+ ] }),
689
+ metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Stack, { gap: 6, children: metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core12.Group, { justify: "space-between", gap: "sm", children: [
690
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", c: "dimmed", children: item.label }),
691
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Text, { size: "sm", fw: 500, ta: "right", children: item.value })
692
+ ] }, item.label)) }) : null,
693
+ primaryAction ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Group, { justify: "space-between", children: primaryAction }) : null,
694
+ footer
695
+ ] }) });
696
+ }
697
+
698
+ // src/PublicProductCard.tsx
699
+ var import_react2 = require("react");
700
+ var import_core13 = require("@mantine/core");
701
+ var import_jsx_runtime14 = require("react/jsx-runtime");
702
+ var stateConfig = {
703
+ available: { label: "Available", color: "teal" },
704
+ limited: { label: "Limited", color: "yellow" },
705
+ "sold-out": { label: "Sold out", color: "red" },
706
+ preorder: { label: "Preorder", color: "violet" }
707
+ };
708
+ function enhanceAction(action, disabled) {
709
+ if (!(0, import_react2.isValidElement)(action)) {
710
+ return action;
711
+ }
712
+ return (0, import_react2.cloneElement)(action, {
713
+ disabled: disabled || Boolean(action.props.disabled),
714
+ "aria-disabled": disabled || void 0
715
+ });
716
+ }
717
+ function ImageFallback({ compact }) {
718
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.AspectRatio, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
719
+ import_core13.ThemeIcon,
720
+ {
721
+ size: "100%",
722
+ radius: "md",
723
+ variant: "light",
724
+ color: "gray",
725
+ "aria-label": "No product image available",
726
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(GdsIcons.Gallery, { size: compact ? "1.5rem" : "2rem" })
727
+ }
728
+ ) });
729
+ }
730
+ function LoadingCard({ compact }) {
731
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: "md", children: [
732
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.AspectRatio, { ratio: compact ? 16 / 9 : 4 / 3, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Skeleton, { radius: "md" }) }),
733
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: "xs", children: [
734
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Skeleton, { height: 20, radius: "sm", width: "70%" }),
735
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Skeleton, { height: 14, radius: "sm", width: "100%" }),
736
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Skeleton, { height: 14, radius: "sm", width: "85%" })
737
+ ] }),
738
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", align: "center", children: [
739
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Skeleton, { height: 18, radius: "sm", width: 72 }),
740
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Skeleton, { height: 36, radius: "md", width: 120 })
741
+ ] })
742
+ ] }) });
743
+ }
744
+ function PublicProductCard({
745
+ title,
746
+ description,
747
+ image,
748
+ price,
749
+ helperText,
750
+ helperKind = "supporting",
751
+ pickupNote,
752
+ inventoryNote,
753
+ state = "available",
754
+ stateLabels: stateLabels2,
755
+ primaryAction,
756
+ secondaryAction,
757
+ metadata = [],
758
+ compact = false,
759
+ loading = false,
760
+ disabled = false
761
+ }) {
762
+ if (loading) {
763
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(LoadingCard, { compact });
764
+ }
765
+ const isActionDisabled = disabled || state === "sold-out";
766
+ const resolvedPrimaryAction = enhanceAction(primaryAction, isActionDisabled);
767
+ const resolvedSecondaryAction = enhanceAction(secondaryAction, disabled);
768
+ const stateBadge = {
769
+ ...stateConfig[state],
770
+ label: stateLabels2?.[state] ?? stateConfig[state].label
771
+ };
772
+ const supportingHelper = helperKind === "supporting" ? helperText : null;
773
+ const pickupHelper = helperKind === "pickup" ? helperText : pickupNote;
774
+ const inventoryHelper = helperKind === "inventory" ? helperText : inventoryNote;
775
+ const hasSupportingRegion = Boolean(price || supportingHelper || pickupHelper || inventoryHelper);
776
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Card, { withBorder: true, radius: "lg", padding: compact ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: compact ? "sm" : "md", children: [
777
+ image ?? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ImageFallback, { compact }),
778
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", align: "flex-start", wrap: "nowrap", gap: "sm", children: [
779
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: 4, style: { minWidth: 0, flex: 1 }, children: [
780
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Title, { order: compact ? 5 : 4, lineClamp: 2, children: title }),
781
+ description ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", c: "dimmed", lineClamp: compact ? 2 : 3, children: description }) : null
782
+ ] }),
783
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label })
784
+ ] }),
785
+ hasSupportingRegion ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", align: "flex-end", gap: "sm", wrap: "nowrap", children: [
786
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: 2, style: { minWidth: 0, flex: 1 }, children: [
787
+ price ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { fw: 700, size: compact ? "md" : "lg", children: price }) : null,
788
+ supportingHelper ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "xs", c: "dimmed", children: supportingHelper }) : null
789
+ ] }),
790
+ resolvedPrimaryAction
791
+ ] }) : resolvedPrimaryAction ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Group, { justify: "flex-end", children: resolvedPrimaryAction }) : null,
792
+ pickupHelper || inventoryHelper || metadata.length ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Stack, { gap: 6, children: [
793
+ pickupHelper ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", children: [
794
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", c: "dimmed", children: "Pickup" }),
795
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: pickupHelper })
796
+ ] }) : null,
797
+ inventoryHelper ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", children: [
798
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", c: "dimmed", children: "Availability" }),
799
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: inventoryHelper })
800
+ ] }) : null,
801
+ metadata.map((item) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core13.Group, { justify: "space-between", gap: "sm", children: [
802
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", c: "dimmed", children: item.label }),
803
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Text, { size: "sm", fw: 500, ta: "right", children: item.value })
804
+ ] }, item.label))
805
+ ] }) : null,
806
+ resolvedSecondaryAction ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core13.Group, { justify: "flex-end", children: resolvedSecondaryAction }) : null
807
+ ] }) });
808
+ }
809
+
810
+ // src/BrowseSurface.tsx
811
+ var import_core16 = require("@mantine/core");
812
+
813
+ // src/DataToolbar.tsx
814
+ var import_core14 = require("@mantine/core");
815
+ var import_jsx_runtime15 = require("react/jsx-runtime");
816
+ function DataToolbar({
817
+ searchSlot,
818
+ filterSlot,
819
+ sortSlot,
820
+ resetAction,
821
+ createAction,
822
+ activeFilters = []
823
+ }) {
824
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core14.Stack, { gap: "sm", children: [
825
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core14.Group, { justify: "space-between", align: "flex-start", gap: "sm", children: [
826
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core14.Group, { flex: 1, align: "flex-start", gap: "sm", children: [
827
+ searchSlot,
828
+ filterSlot,
829
+ sortSlot
830
+ ] }),
831
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core14.Group, { gap: "sm", children: [
832
+ resetAction,
833
+ createAction
834
+ ] })
835
+ ] }),
836
+ activeFilters.length ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_core14.Group, { gap: "xs", children: activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
837
+ import_core14.Badge,
838
+ {
839
+ variant: "light",
840
+ rightSection: filter.onRemove ? "\xD7" : void 0,
841
+ style: filter.onRemove ? { cursor: "pointer" } : void 0,
842
+ onClick: filter.onRemove,
843
+ children: filter.label
844
+ },
845
+ filter.label
846
+ )) }) : null
847
+ ] });
848
+ }
849
+
850
+ // src/StateBlock.tsx
851
+ var import_core15 = require("@mantine/core");
852
+ var import_jsx_runtime16 = require("react/jsx-runtime");
853
+ var variantConfig = {
854
+ loading: { color: "violet", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core15.Loader, { size: "sm" }) },
855
+ empty: { color: "gray", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Inbox, { size: "1.1rem" }) },
856
+ error: { color: "red", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Danger, { size: "1.1rem" }) },
857
+ permission: { color: "orange", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Verify, { size: "1.1rem" }) },
858
+ disabled: { color: "gray", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Toggle, { size: "1.1rem" }) },
859
+ success: { color: "teal", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Success, { size: "1.1rem" }) },
860
+ info: { color: "blue", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Info, { size: "1.1rem" }) },
861
+ "not-enough-data": { color: "yellow", icon: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GdsIcons.Analytics, { size: "1.1rem" }) }
862
+ };
863
+ function StateBlock({
864
+ variant,
865
+ title,
866
+ description,
867
+ action,
868
+ icon,
869
+ compact = false
870
+ }) {
871
+ const config = variantConfig[variant];
872
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
873
+ import_core15.Stack,
874
+ {
875
+ align: compact ? "flex-start" : "center",
876
+ justify: "center",
877
+ gap: "md",
878
+ py: compact ? "md" : "xl",
879
+ ta: compact ? "left" : "center",
880
+ children: [
881
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core15.ThemeIcon, { variant: "light", color: config.color, size: compact ? "lg" : "xl", radius: "xl", children: icon ?? config.icon }),
882
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_core15.Stack, { gap: 6, align: compact ? "flex-start" : "center", children: [
883
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core15.Title, { order: compact ? 4 : 3, children: title }),
884
+ description ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_core15.Text, { c: "dimmed", maw: compact ? void 0 : 480, children: description }) : null
885
+ ] }),
886
+ action
887
+ ]
888
+ }
889
+ );
890
+ }
891
+
892
+ // src/BrowseSurface.tsx
893
+ var import_jsx_runtime17 = require("react/jsx-runtime");
894
+ function BrowseSurface({
895
+ eyebrow,
896
+ title,
897
+ description,
898
+ resultCount,
899
+ resultLabel = "results",
900
+ activeFilters = [],
901
+ scopeOptions = [],
902
+ scopeLabel = "Scope",
903
+ locationControls,
904
+ primaryControls,
905
+ toolbar,
906
+ sortControl,
907
+ mobileFilters,
908
+ filterDrawer,
909
+ content,
910
+ loading = false,
911
+ loadingTitle = "Loading results",
912
+ loadingDescription = "The browse surface is still synchronizing.",
913
+ error,
914
+ errorTitle = "Unable to load results",
915
+ errorAction,
916
+ empty = false,
917
+ emptyTitle = "No matching results",
918
+ emptyDescription = "Try adjusting your filters or broadening the current scope.",
919
+ emptyAction
920
+ }) {
921
+ const toolbarFilters = activeFilters.map((filter) => ({
922
+ label: typeof filter.label === "string" ? filter.label : `Filter ${filter.id}`,
923
+ onRemove: filter.onRemove
924
+ }));
925
+ let body = content;
926
+ if (loading) {
927
+ body = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StateBlock, { variant: "loading", title: loadingTitle, description: loadingDescription, compact: true });
928
+ } else if (error) {
929
+ body = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StateBlock, { variant: "error", title: errorTitle, description: error, action: errorAction ?? emptyAction, compact: true });
930
+ } else if (empty) {
931
+ body = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, action: emptyAction, compact: true });
932
+ }
933
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "lg", children: [
934
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Paper, { withBorder: true, radius: "xl", p: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "lg", children: [
935
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Group, { justify: "space-between", align: "flex-start", gap: "md", children: [
936
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", maw: 760, children: [
937
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "xs", fw: 700, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.18em" }, children: eyebrow }) : null,
938
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Title, { order: 1, children: title }),
939
+ description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "lg", c: "dimmed", children: description }) : null
940
+ ] }),
941
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { align: "flex-end", gap: "xs", children: [
942
+ typeof resultCount === "number" ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Badge, { size: "lg", radius: "xl", variant: "light", color: "violet", children: [
943
+ resultCount,
944
+ " ",
945
+ resultLabel
946
+ ] }) : null,
947
+ primaryControls
948
+ ] })
949
+ ] }),
950
+ scopeOptions.length ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", children: [
951
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: scopeLabel }),
952
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Group, { gap: "xs", wrap: "wrap", children: scopeOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
953
+ import_core16.Button,
954
+ {
955
+ variant: option.active ? "filled" : "default",
956
+ color: option.active ? "violet" : "gray",
957
+ radius: "xl",
958
+ size: "sm",
959
+ onClick: option.onSelect,
960
+ children: option.label
961
+ },
962
+ option.id
963
+ )) })
964
+ ] }) : null,
965
+ locationControls ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", children: [
966
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: "Location" }),
967
+ locationControls
968
+ ] }) : null,
969
+ toolbar || sortControl ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.SimpleGrid, { cols: { base: 1, lg: sortControl ? 2 : 1 }, spacing: "md", children: [
970
+ toolbar ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
971
+ DataToolbar,
972
+ {
973
+ ...toolbar,
974
+ activeFilters: toolbarFilters.length ? toolbarFilters : toolbar.fallbackActiveFilters
975
+ }
976
+ ) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Box, {}),
977
+ sortControl ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { gap: "xs", align: "stretch", children: [
978
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: "Sort" }),
979
+ sortControl
980
+ ] }) : null
981
+ ] }) : null,
982
+ mobileFilters ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_core16.Stack, { hiddenFrom: "lg", gap: "xs", children: [
983
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Text, { size: "sm", fw: 600, c: "dimmed", children: "Filters" }),
984
+ mobileFilters
985
+ ] }) : null,
986
+ filterDrawer ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Box, { hiddenFrom: "lg", children: filterDrawer }) : null,
987
+ activeFilters.length ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Group, { gap: "xs", wrap: "wrap", children: activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
988
+ import_core16.Badge,
989
+ {
990
+ variant: "light",
991
+ color: "violet",
992
+ rightSection: filter.onRemove ? "\xD7" : void 0,
993
+ style: filter.onRemove ? { cursor: "pointer" } : void 0,
994
+ onClick: filter.onRemove,
995
+ children: filter.label
996
+ },
997
+ filter.id
998
+ )) }) : null
999
+ ] }) }),
1000
+ body
1001
+ ] });
1002
+ }
1003
+
1004
+ // src/AccentPanel.tsx
1005
+ var import_core17 = require("@mantine/core");
1006
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1007
+ var toneStyles = {
1008
+ gray: {
1009
+ bg: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-gray-7) 88%, black))",
1010
+ border: "light-dark(var(--mantine-color-gray-2), color-mix(in srgb, var(--mantine-color-gray-4) 70%, transparent))",
1011
+ color: "light-dark(var(--mantine-color-gray-9), var(--mantine-color-gray-0))"
1012
+ },
1013
+ violet: {
1014
+ bg: "light-dark(var(--mantine-color-violet-0), color-mix(in srgb, var(--mantine-color-violet-9) 70%, black))",
1015
+ border: "light-dark(var(--mantine-color-violet-2), color-mix(in srgb, var(--mantine-color-violet-4) 75%, transparent))",
1016
+ color: "light-dark(var(--mantine-color-violet-9), var(--mantine-color-violet-0))"
1017
+ },
1018
+ green: {
1019
+ bg: "light-dark(var(--mantine-color-green-0), color-mix(in srgb, var(--mantine-color-green-9) 72%, black))",
1020
+ border: "light-dark(var(--mantine-color-green-2), color-mix(in srgb, var(--mantine-color-green-4) 78%, transparent))",
1021
+ color: "light-dark(var(--mantine-color-green-9), var(--mantine-color-green-0))"
1022
+ },
1023
+ red: {
1024
+ bg: "light-dark(var(--mantine-color-red-0), color-mix(in srgb, var(--mantine-color-red-9) 72%, black))",
1025
+ border: "light-dark(var(--mantine-color-red-2), color-mix(in srgb, var(--mantine-color-red-4) 78%, transparent))",
1026
+ color: "light-dark(var(--mantine-color-red-9), var(--mantine-color-red-0))"
1027
+ },
1028
+ amber: {
1029
+ bg: "light-dark(var(--mantine-color-yellow-0), color-mix(in srgb, var(--mantine-color-yellow-8) 78%, black))",
1030
+ border: "light-dark(var(--mantine-color-yellow-3), color-mix(in srgb, var(--mantine-color-yellow-5) 70%, transparent))",
1031
+ color: "light-dark(var(--mantine-color-yellow-9), var(--mantine-color-yellow-0))"
1032
+ },
1033
+ blue: {
1034
+ bg: "light-dark(var(--mantine-color-blue-0), color-mix(in srgb, var(--mantine-color-blue-9) 74%, black))",
1035
+ border: "light-dark(var(--mantine-color-blue-2), color-mix(in srgb, var(--mantine-color-blue-4) 75%, transparent))",
1036
+ color: "light-dark(var(--mantine-color-blue-9), var(--mantine-color-blue-0))"
1037
+ }
1038
+ };
1039
+ function resolveAccentPanelStyles(tone = "violet", variant = "subtle") {
1040
+ const token = toneStyles[tone];
1041
+ if (variant === "soft-outline") {
1042
+ return {
1043
+ backgroundColor: "light-dark(var(--mantine-color-body), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))",
1044
+ border: `1px solid ${token.border}`,
1045
+ color: token.color
1046
+ };
1047
+ }
1048
+ return {
1049
+ backgroundColor: token.bg,
1050
+ border: `1px solid ${token.border}`,
1051
+ color: token.color
1052
+ };
1053
+ }
1054
+ function AccentPanel({
1055
+ tone = "violet",
1056
+ variant = "subtle",
1057
+ title,
1058
+ badge,
1059
+ children
1060
+ }) {
1061
+ const styles = resolveAccentPanelStyles(tone, variant);
1062
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Paper, { withBorder: true, radius: "lg", p: "lg", style: styles, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Stack, { gap: "sm", children: [
1063
+ title || badge ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_core17.Group, { justify: "space-between", align: "flex-start", gap: "sm", wrap: "wrap", children: [
1064
+ title ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Title, { order: 4, c: "inherit", children: title }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, {}),
1065
+ badge ? typeof badge === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Badge, { color: tone === "amber" ? "yellow" : tone, variant: "filled", children: badge }) : badge : null
1066
+ ] }) : null,
1067
+ typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Text, { c: "inherit", children }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Box, { c: "inherit", children })
1068
+ ] }) });
1069
+ }
1070
+
1071
+ // src/PublicShell.tsx
1072
+ var import_core19 = require("@mantine/core");
1073
+
1074
+ // src/PublicNav.tsx
1075
+ var import_core18 = require("@mantine/core");
1076
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1077
+ function PublicNav({ items, activeId, renderLink }) {
1078
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_core18.Group, { component: "nav", "aria-label": "Primary", gap: "lg", wrap: "nowrap", children: items.map((item) => {
1079
+ const active = item.id === activeId;
1080
+ if (renderLink) {
1081
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: renderLink(item, active) }, item.id);
1082
+ }
1083
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1084
+ import_core18.Anchor,
1085
+ {
1086
+ href: item.href,
1087
+ "aria-current": active ? "page" : void 0,
1088
+ c: active ? "var(--mantine-color-text)" : "dimmed",
1089
+ fw: active ? 700 : 500,
1090
+ underline: "never",
1091
+ target: item.external ? "_blank" : void 0,
1092
+ rel: item.external ? "noreferrer" : void 0,
1093
+ children: item.label
1094
+ },
1095
+ item.id
1096
+ );
1097
+ }) });
1098
+ }
1099
+
1100
+ // src/PublicShell.tsx
1101
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1102
+ function InlineMobileNavigation({
1103
+ mobileNavigation,
1104
+ className,
1105
+ mode
1106
+ }) {
1107
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Box, { component: "details", hiddenFrom: "sm", className, children: [
1108
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1109
+ import_core19.Box,
1110
+ {
1111
+ component: "summary",
1112
+ "aria-label": mode === "drawer" ? "Open site navigation drawer" : "Open site navigation",
1113
+ style: {
1114
+ listStyle: "none",
1115
+ cursor: "pointer",
1116
+ display: "flex",
1117
+ alignItems: "center",
1118
+ gap: "0.5rem"
1119
+ },
1120
+ children: [
1121
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Burger, { opened: false, "aria-hidden": true }),
1122
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Text, { size: "sm", fw: 600, children: "Menu" })
1123
+ ]
1124
+ }
1125
+ ),
1126
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1127
+ import_core19.Box,
1128
+ {
1129
+ mt: "sm",
1130
+ p: "sm",
1131
+ style: {
1132
+ borderRadius: "var(--mantine-radius-lg)",
1133
+ border: "1px solid var(--mantine-color-default-border)",
1134
+ background: mode === "drawer" ? "light-dark(var(--mantine-color-white), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))" : "var(--mantine-color-body)"
1135
+ },
1136
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Stack, { gap: "sm", children: mobileNavigation })
1137
+ }
1138
+ )
1139
+ ] });
1140
+ }
1141
+ function PublicShell({
1142
+ brand,
1143
+ navItems,
1144
+ activeNavId,
1145
+ navigation,
1146
+ actions,
1147
+ footer,
1148
+ mobileNavigation,
1149
+ children,
1150
+ headerBordered = true,
1151
+ compact = false,
1152
+ maxContentWidth,
1153
+ headerVariant = "default",
1154
+ mobileNavigationMode = "sheet",
1155
+ classNames
1156
+ }) {
1157
+ const resolvedNavigation = navigation ?? (navItems ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PublicNav, { items: navItems, activeId: activeNavId }) : null);
1158
+ const containerSize = maxContentWidth ?? (compact ? "md" : "lg");
1159
+ const headerHeight = headerVariant === "compact" ? 64 : headerVariant === "branded-quiet" ? 88 : 72;
1160
+ const mainPadding = headerVariant === "compact" ? "lg" : "xl";
1161
+ const usesInlineMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode !== "sheet";
1162
+ const usesSheetMobileNavigation = Boolean(mobileNavigation) && mobileNavigationMode === "sheet";
1163
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1164
+ import_core19.AppShell,
1165
+ {
1166
+ className: classNames?.root,
1167
+ header: { height: headerHeight },
1168
+ footer: usesSheetMobileNavigation ? { height: 68 } : void 0,
1169
+ padding: 0,
1170
+ children: [
1171
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.AppShell.Header, { withBorder: headerBordered, className: classNames?.header, "data-header-variant": headerVariant, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Container, { size: containerSize, h: "100%", py: headerVariant === "branded-quiet" ? "sm" : 0, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1172
+ import_core19.Group,
1173
+ {
1174
+ h: "100%",
1175
+ justify: "space-between",
1176
+ wrap: "nowrap",
1177
+ gap: headerVariant === "compact" ? "sm" : "lg",
1178
+ children: [
1179
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.Group, { wrap: "nowrap", gap: headerVariant === "compact" ? "xs" : "sm", className: classNames?.brand, children: [
1180
+ usesInlineMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1181
+ InlineMobileNavigation,
1182
+ {
1183
+ mobileNavigation,
1184
+ className: classNames?.mobileNavigation,
1185
+ mode: mobileNavigationMode
1186
+ }
1187
+ ) : null,
1188
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Box, { children: brand })
1189
+ ] }),
1190
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Group, { visibleFrom: "sm", gap: headerVariant === "compact" ? "md" : "lg", className: classNames?.navigation, children: resolvedNavigation }),
1191
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Group, { gap: "sm", className: classNames?.actions, children: actions })
1192
+ ]
1193
+ }
1194
+ ) }) }),
1195
+ usesSheetMobileNavigation ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.AppShell.Footer, { withBorder: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Container, { size: containerSize, h: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Group, { h: "100%", justify: "space-around", wrap: "nowrap", children: mobileNavigation }) }) }) : null,
1196
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_core19.AppShell.Main, { children: [
1197
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Container, { size: containerSize, py: mainPadding, className: classNames?.content, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Stack, { gap: "xl", children }) }),
1198
+ footer ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Box, { component: typeof footer === "string" ? "footer" : "div", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Container, { size: containerSize, children: typeof footer === "string" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_core19.Text, { size: "sm", c: "dimmed", children: footer }) : footer }) }) : null
1199
+ ] })
1200
+ ]
1201
+ }
1202
+ );
1203
+ }
1204
+
1205
+ // src/PublicSiteFooter.tsx
1206
+ var import_core20 = require("@mantine/core");
1207
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1208
+ function PublicSiteFooter({ children, meta }) {
1209
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_core20.Stack, { component: "footer", gap: "xs", children: [
1210
+ children ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Text, { size: "sm", children }) : null,
1211
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Group, { gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_core20.Text, { size: "xs", c: "dimmed", children: meta }) }) : null
1212
+ ] });
1213
+ }
1214
+
1215
+ // src/PublicBrandFooter.tsx
1216
+ var import_core21 = require("@mantine/core");
1217
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1218
+ function PublicBrandFooter({
1219
+ media,
1220
+ brandTitle,
1221
+ description,
1222
+ actions,
1223
+ secondary,
1224
+ legal,
1225
+ compact = false,
1226
+ layoutVariant = "default",
1227
+ classNames
1228
+ }) {
1229
+ const mediaSpan = layoutVariant === "immersive-media" ? 5 : 4;
1230
+ const primarySpan = media ? layoutVariant === "balanced-quote" ? 4 : 4 : secondary ? 6 : 12;
1231
+ const secondarySpan = media ? Math.max(3, 12 - mediaSpan - primarySpan) : Math.max(4, 12 - primarySpan);
1232
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1233
+ import_core21.Paper,
1234
+ {
1235
+ component: "footer",
1236
+ withBorder: true,
1237
+ radius: "xl",
1238
+ p: compact ? "lg" : "xl",
1239
+ className: classNames?.root,
1240
+ "data-layout-variant": layoutVariant,
1241
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: "lg", children: [
1242
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Grid, { gutter: compact ? "lg" : "xl", align: "flex-start", children: [
1243
+ media ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Grid.Col, { span: { base: 12, md: mediaSpan }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Box, { className: classNames?.media, children: media }) }) : null,
1244
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Grid.Col, { span: { base: 12, md: primarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_core21.Stack, { gap: compact ? "xs" : "sm", className: classNames?.primary, children: [
1245
+ brandTitle ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Title, { order: 4, children: brandTitle }) : null,
1246
+ description ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Text, { c: "dimmed", children: description }) : null,
1247
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Box, { children: actions }) : null
1248
+ ] }) }),
1249
+ secondary ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Grid.Col, { span: { base: 12, md: secondarySpan }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Stack, { gap: compact ? "xs" : "sm", className: classNames?.secondary, children: secondary }) }) : null
1250
+ ] }),
1251
+ legal ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1252
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Divider, {}),
1253
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Group, { justify: "space-between", gap: "sm", wrap: "wrap", className: classNames?.legal, children: typeof legal === "string" ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_core21.Text, { size: "sm", c: "dimmed", children: legal }) : legal })
1254
+ ] }) : null
1255
+ ] })
1256
+ }
1257
+ );
1258
+ }
1259
+
1260
+ // src/AuthShell.tsx
1261
+ var import_core22 = require("@mantine/core");
1262
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1263
+ function AuthShell({ title, description, brand, footer, helper, children }) {
1264
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Box, { py: { base: "xl", md: "4rem" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Container, { size: "xs", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Stack, { gap: "xl", children: [
1265
+ brand ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Group, { justify: "center", children: brand }) : null,
1266
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Card, { withBorder: true, radius: "lg", padding: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Stack, { gap: "lg", children: [
1267
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_core22.Stack, { gap: "xs", ta: "center", children: [
1268
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Title, { order: 2, children: title }),
1269
+ description ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Text, { c: "dimmed", size: "sm", children: description }) : null
1270
+ ] }),
1271
+ children,
1272
+ helper ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Text, { size: "sm", c: "dimmed", ta: "center", children: helper }) : null
1273
+ ] }) }),
1274
+ footer ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_core22.Text, { size: "sm", c: "dimmed", ta: "center", children: footer }) : null
1275
+ ] }) }) });
1276
+ }
1277
+
1278
+ // src/ArticleShell.tsx
1279
+ var import_core23 = require("@mantine/core");
1280
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1281
+ function ArticleShell({ eyebrow, title, lead, meta, sideRail, children }) {
1282
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
1283
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "lg", maw: 760, flex: 1, children: [
1284
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_core23.Stack, { gap: "sm", children: [
1285
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Text, { size: "sm", fw: 700, c: "dimmed", tt: "uppercase", children: eyebrow }) : null,
1286
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Title, { order: 1, children: title }),
1287
+ lead ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Text, { size: "lg", c: "dimmed", children: lead }) : null,
1288
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Group, { gap: "md", children: meta }) : null
1289
+ ] }),
1290
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Stack, { gap: "md", children })
1291
+ ] }),
1292
+ sideRail ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_core23.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
1293
+ ] }) });
1294
+ }
1295
+
1296
+ // src/DocsCodeBlock.tsx
1297
+ var import_react3 = require("react");
1298
+ var import_core24 = require("@mantine/core");
1299
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1300
+ function DocsCodeBlock({ code, language, title, withCopy = true }) {
1301
+ const [copied, setCopied] = (0, import_react3.useState)(false);
1302
+ const handleCopy = async () => {
1303
+ if (!navigator?.clipboard) {
1304
+ return;
1305
+ }
1306
+ await navigator.clipboard.writeText(code);
1307
+ setCopied(true);
1308
+ window.setTimeout(() => setCopied(false), 1200);
1309
+ };
1310
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Paper, { withBorder: true, radius: "lg", p: "md", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Stack, { gap: "sm", children: [
1311
+ title || withCopy ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Group, { justify: "space-between", align: "center", children: [
1312
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_core24.Stack, { gap: 0, children: [
1313
+ title ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Text, { fw: 600, children: title }) : null,
1314
+ language ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Text, { size: "xs", c: "dimmed", children: language }) : null
1315
+ ] }),
1316
+ withCopy ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1317
+ import_core24.ActionIcon,
1318
+ {
1319
+ variant: "subtle",
1320
+ "aria-label": copied ? "Copied code block" : "Copy code block",
1321
+ onClick: () => {
1322
+ void handleCopy();
1323
+ },
1324
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GdsIcons.Copy, { size: "1rem" })
1325
+ }
1326
+ ) : null
1327
+ ] }) : null,
1328
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_core24.Code, { block: true, children: code })
1329
+ ] }) });
1330
+ }
1331
+
1332
+ // src/CtaButtonGroup.tsx
1333
+ var import_core25 = require("@mantine/core");
1334
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1335
+ function CtaButtonGroup({ primary, secondary, tertiary }) {
1336
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Stack, { gap: "sm", children: [
1337
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_core25.Group, { gap: "sm", align: "stretch", children: [
1338
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: primary }),
1339
+ secondary ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: secondary }) : null
1340
+ ] }),
1341
+ tertiary ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { children: tertiary }) : null
1342
+ ] });
1343
+ }
1344
+
1345
+ // src/DocsPageShell.tsx
1346
+ var import_core26 = require("@mantine/core");
1347
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1348
+ function DocsPageShell({
1349
+ breadcrumbs = [],
1350
+ title,
1351
+ lead,
1352
+ eyebrow,
1353
+ meta,
1354
+ sideRail,
1355
+ footerNext,
1356
+ children
1357
+ }) {
1358
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Container, { size: "lg", py: "xl", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core26.Group, { align: "flex-start", gap: "xl", wrap: "nowrap", children: [
1359
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core26.Stack, { component: "article", gap: "lg", maw: 760, flex: 1, children: [
1360
+ breadcrumbs.length ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Breadcrumbs, { children: breadcrumbs.map(
1361
+ (crumb) => crumb.href ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Anchor, { href: crumb.href, children: crumb.label }, `${crumb.label}-${crumb.href}`) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Text, { children: crumb.label }, crumb.label)
1362
+ ) }) : null,
1363
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_core26.Stack, { gap: "sm", children: [
1364
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Text, { size: "sm", fw: 700, c: "dimmed", children: eyebrow }) : null,
1365
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Title, { order: 1, children: title }),
1366
+ lead ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Text, { size: "lg", c: "dimmed", children: lead }) : null,
1367
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Group, { gap: "md", children: meta }) : null
1368
+ ] }),
1369
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Stack, { gap: "md", children }),
1370
+ footerNext ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Anchor, { href: footerNext.href, fw: 600, children: footerNext.label }) : null
1371
+ ] }),
1372
+ sideRail ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_core26.Stack, { visibleFrom: "lg", gap: "md", w: 240, children: sideRail }) : null
1373
+ ] }) });
1374
+ }
1375
+
1376
+ // src/EditorialHero.tsx
1377
+ var import_core27 = require("@mantine/core");
1378
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1379
+ function resolveActionVariant(action, index, seenPrimary) {
1380
+ const requested = action.variant ?? (index === 0 ? "primary" : "secondary");
1381
+ if (requested === "primary" && !seenPrimary) {
1382
+ return { variant: "filled", seenPrimary: true };
1383
+ }
1384
+ if (requested === "subtle") {
1385
+ return { variant: "subtle", seenPrimary };
1386
+ }
1387
+ return { variant: "default", seenPrimary };
1388
+ }
1389
+ function HeroAction({ action, variant }) {
1390
+ const content = /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1391
+ import_core27.Anchor,
1392
+ {
1393
+ href: action.href,
1394
+ onClick: action.onClick,
1395
+ "aria-disabled": action.disabled || action.loading || void 0,
1396
+ underline: "never",
1397
+ c: variant === "filled" ? "white" : void 0,
1398
+ style: {
1399
+ display: "inline-flex",
1400
+ alignItems: "center",
1401
+ justifyContent: "center",
1402
+ padding: "0.625rem 1rem",
1403
+ borderRadius: "var(--mantine-radius-md)",
1404
+ fontWeight: 600,
1405
+ minHeight: "2.5rem",
1406
+ border: variant === "default" ? "1px solid var(--mantine-color-default-border)" : "1px solid transparent",
1407
+ background: variant === "filled" ? "var(--mantine-color-violet-filled)" : variant === "subtle" ? "transparent" : "var(--mantine-color-default)",
1408
+ opacity: action.disabled ? 0.6 : 1,
1409
+ pointerEvents: action.disabled ? "none" : void 0
1410
+ },
1411
+ children: action.loading ? "Loading\u2026" : action.label
1412
+ }
1413
+ );
1414
+ if (!action.href) {
1415
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1416
+ import_core27.Box,
1417
+ {
1418
+ component: "button",
1419
+ type: "button",
1420
+ onClick: action.onClick,
1421
+ disabled: action.disabled || action.loading,
1422
+ style: {
1423
+ display: "inline-flex",
1424
+ alignItems: "center",
1425
+ justifyContent: "center",
1426
+ padding: "0.625rem 1rem",
1427
+ borderRadius: "var(--mantine-radius-md)",
1428
+ fontWeight: 600,
1429
+ minHeight: "2.5rem",
1430
+ border: variant === "default" ? "1px solid var(--mantine-color-default-border)" : "1px solid transparent",
1431
+ background: variant === "filled" ? "var(--mantine-color-violet-filled)" : variant === "subtle" ? "transparent" : "var(--mantine-color-default)",
1432
+ color: variant === "filled" ? "white" : "inherit",
1433
+ cursor: action.disabled ? "not-allowed" : "pointer",
1434
+ opacity: action.disabled ? 0.6 : 1
1435
+ },
1436
+ children: action.loading ? "Loading\u2026" : action.label
1437
+ }
1438
+ );
1439
+ }
1440
+ return content;
1441
+ }
1442
+ function LoadingHero({ compact }) {
1443
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Paper, { withBorder: true, radius: "xl", p: compact ? "lg" : "xl", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
1444
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Stack, { gap: "md", children: [
1445
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { height: 16, width: 96, radius: "xl" }),
1446
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { height: 48, width: "90%", radius: "md" }),
1447
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { height: 18, width: "100%", radius: "md" }),
1448
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { height: 18, width: "82%", radius: "md" }),
1449
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Group, { children: [
1450
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { height: 40, width: 140, radius: "md" }),
1451
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { height: 40, width: 140, radius: "md" })
1452
+ ] })
1453
+ ] }) }),
1454
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Grid.Col, { span: { base: 12, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Skeleton, { radius: "lg" }) }) })
1455
+ ] }) });
1456
+ }
1457
+ function MediaFallback() {
1458
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.AspectRatio, { ratio: 16 / 11, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1459
+ import_core27.ThemeIcon,
1460
+ {
1461
+ size: "100%",
1462
+ radius: "lg",
1463
+ color: "gray",
1464
+ variant: "light",
1465
+ "aria-label": "Hero media is unavailable",
1466
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(GdsIcons.Gallery, { size: "2.5rem" })
1467
+ }
1468
+ ) });
1469
+ }
1470
+ function MediaFrame({
1471
+ media,
1472
+ mediaAlt,
1473
+ mediaFade,
1474
+ className
1475
+ }) {
1476
+ let overlayBackground = null;
1477
+ if (mediaFade === "background-blend") {
1478
+ overlayBackground = "linear-gradient(135deg, light-dark(rgba(255,255,255,0), rgba(17,24,39,0.08)) 0%, light-dark(rgba(255,255,255,0.42), rgba(17,24,39,0.54)) 100%)";
1479
+ } else if (mediaFade === "background-match") {
1480
+ overlayBackground = "linear-gradient(180deg, rgba(255,255,255,0) 0%, light-dark(rgba(248,250,252,0.75), rgba(17,24,39,0.56)) 100%)";
1481
+ } else if (mediaFade === "mask-soft-edge") {
1482
+ overlayBackground = "linear-gradient(90deg, light-dark(rgba(255,255,255,0.78), rgba(17,24,39,0.68)) 0%, rgba(255,255,255,0.18) 18%, rgba(255,255,255,0) 42%)";
1483
+ } else if (mediaFade === "soft-start") {
1484
+ overlayBackground = "linear-gradient(90deg, light-dark(rgba(255,255,255,0.9), rgba(17,24,39,0.72)) 0%, rgba(255,255,255,0) 28%)";
1485
+ }
1486
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
1487
+ import_core27.Box,
1488
+ {
1489
+ component: "figure",
1490
+ m: 0,
1491
+ className,
1492
+ style: {
1493
+ position: "relative",
1494
+ overflow: "hidden",
1495
+ borderRadius: "var(--mantine-radius-xl)",
1496
+ minHeight: "100%"
1497
+ },
1498
+ "aria-label": mediaAlt,
1499
+ children: [
1500
+ media ?? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MediaFallback, {}),
1501
+ media && overlayBackground ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1502
+ import_core27.Box,
1503
+ {
1504
+ "aria-hidden": true,
1505
+ style: {
1506
+ position: "absolute",
1507
+ inset: 0,
1508
+ pointerEvents: "none",
1509
+ background: overlayBackground
1510
+ }
1511
+ }
1512
+ ) : null
1513
+ ]
1514
+ }
1515
+ );
1516
+ }
1517
+ function EditorialHero({
1518
+ eyebrow,
1519
+ title,
1520
+ description,
1521
+ actions = [],
1522
+ meta = [],
1523
+ media,
1524
+ mediaAlt,
1525
+ mediaPosition = "right",
1526
+ mediaFade = "soft-start",
1527
+ align = "start",
1528
+ compact = false,
1529
+ loading = false,
1530
+ error,
1531
+ surfaceVariant = "default",
1532
+ classNames
1533
+ }) {
1534
+ if (loading) {
1535
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(LoadingHero, { compact });
1536
+ }
1537
+ const stackAlign = align === "center" ? "center" : "flex-start";
1538
+ const textAlign = align === "center" ? "center" : "left";
1539
+ let seenPrimary = false;
1540
+ const renderedActions = actions.slice(0, 3).map((action, index) => {
1541
+ const resolved = resolveActionVariant(action, index, seenPrimary);
1542
+ seenPrimary = resolved.seenPrimary;
1543
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(HeroAction, { action, variant: resolved.variant }, `${action.label}-${index}`);
1544
+ });
1545
+ const textSlot = /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Stack, { gap: compact ? "md" : "lg", justify: "center", h: "100%", className: classNames?.content, children: [
1546
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Stack, { gap: "sm", align: stackAlign, children: [
1547
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Text, { size: "sm", fw: 700, c: "dimmed", ta: textAlign, children: eyebrow }) : null,
1548
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Title, { order: 1, maw: 760, ta: textAlign, children: title }),
1549
+ description ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Text, { size: compact ? "md" : "lg", c: "dimmed", maw: 720, ta: textAlign, children: description }) : null
1550
+ ] }),
1551
+ renderedActions.length ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Box, { className: classNames?.actions, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1552
+ CtaButtonGroup,
1553
+ {
1554
+ primary: renderedActions[0],
1555
+ secondary: renderedActions[1],
1556
+ tertiary: renderedActions[2]
1557
+ }
1558
+ ) }) : null,
1559
+ meta.length ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Group, { gap: "sm", wrap: "wrap", "aria-label": "Supporting details", className: classNames?.meta, children: meta.map((item) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
1560
+ import_core27.Group,
1561
+ {
1562
+ gap: 6,
1563
+ px: "sm",
1564
+ py: 6,
1565
+ style: {
1566
+ borderRadius: "var(--mantine-radius-xl)",
1567
+ background: "light-dark(var(--mantine-color-gray-0), color-mix(in srgb, var(--mantine-color-dark-7) 92%, black))"
1568
+ },
1569
+ children: [
1570
+ item.icon,
1571
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Text, { size: "sm", c: "dimmed", children: item.label })
1572
+ ]
1573
+ },
1574
+ item.id
1575
+ )) }) : null
1576
+ ] });
1577
+ const mediaSlot = error ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(AccentPanel, { tone: "red", variant: "soft-outline", title: "Media unavailable", children: error }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MediaFrame, { media, mediaAlt, mediaFade, className: classNames?.media });
1578
+ const textCol = /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 1, md: mediaPosition === "left" ? 2 : 1 }, children: textSlot });
1579
+ const mediaCol = /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_core27.Grid.Col, { span: { base: 12, md: 6 }, order: { base: 2, md: mediaPosition === "left" ? 1 : 2 }, children: mediaSlot });
1580
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1581
+ import_core27.Paper,
1582
+ {
1583
+ component: "section",
1584
+ withBorder: true,
1585
+ radius: "xl",
1586
+ p: compact ? "lg" : "xl",
1587
+ className: classNames?.root,
1588
+ style: surfaceVariant === "flat-public" ? { boxShadow: "none" } : void 0,
1589
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_core27.Grid, { gutter: compact ? "lg" : "xl", align: "center", children: [
1590
+ textCol,
1591
+ mediaCol
1592
+ ] })
1593
+ }
1594
+ );
1595
+ }
1596
+
1597
+ // src/FeatureBand.tsx
1598
+ var import_core28 = require("@mantine/core");
1599
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1600
+ function FeatureBandSkeleton({
1601
+ columns = 3,
1602
+ bordered = true,
1603
+ variant = "default"
1604
+ }) {
1605
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "md", children: [
1606
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: variant === "process" ? 28 : 42, width: variant === "process" ? 72 : 42, radius: "xl" }),
1607
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "xs", children: [
1608
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 20, width: "75%", radius: "md" }),
1609
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 14, width: "100%", radius: "md" }),
1610
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Skeleton, { height: 14, width: "82%", radius: "md" })
1611
+ ] })
1612
+ ] }) }, index)) });
1613
+ }
1614
+ function FeatureBand({
1615
+ items,
1616
+ columns = 3,
1617
+ bordered = true,
1618
+ loading = false,
1619
+ emptyState,
1620
+ variant = "default"
1621
+ }) {
1622
+ if (loading) {
1623
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FeatureBandSkeleton, { columns, bordered, variant });
1624
+ }
1625
+ if (!items.length) {
1626
+ return emptyState ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: emptyState }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1627
+ EmptyState,
1628
+ {
1629
+ title: "No supporting details available",
1630
+ description: "Add shared feature-band items when this public surface needs trust, service, or location context."
1631
+ }
1632
+ );
1633
+ }
1634
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Box, { component: "section", "aria-label": "Supporting features", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.SimpleGrid, { cols: { base: 1, sm: Math.min(columns, 2), lg: columns }, spacing: "lg", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Paper, { withBorder: bordered, radius: "lg", p: variant === "compact" ? "md" : "lg", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "md", children: [
1635
+ variant === "process" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1636
+ import_core28.Text,
1637
+ {
1638
+ fw: 800,
1639
+ size: "sm",
1640
+ px: "sm",
1641
+ py: 6,
1642
+ style: {
1643
+ borderRadius: "999px",
1644
+ background: "var(--mantine-color-violet-light)"
1645
+ },
1646
+ children: item.stepLabel ?? `Step ${index + 1}`
1647
+ }
1648
+ ) }) : item.media ? item.media : item.icon ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "violet", children: item.icon }) }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.ThemeIcon, { size: "xl", radius: "xl", variant: "light", color: "gray", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(GdsIcons.Info, { size: "1.25rem" }) }) }),
1649
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_core28.Stack, { gap: "xs", children: [
1650
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Title, { order: 4, children: item.title }),
1651
+ item.description ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Text, { c: "dimmed", children: item.description }) : null,
1652
+ item.meta ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_core28.Text, { size: "sm", c: "dimmed", children: item.meta }) : null
1653
+ ] })
1654
+ ] }) }, item.id)) }) });
1655
+ }
1656
+
1657
+ // src/UploadDropzone.tsx
1658
+ var import_react4 = require("react");
1659
+ var import_core29 = require("@mantine/core");
1660
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1661
+ function UploadDropzone({
1662
+ title,
1663
+ description,
1664
+ onFilesSelected,
1665
+ accept,
1666
+ multiple = true,
1667
+ actionLabel = "Choose files",
1668
+ mode = "panel"
1669
+ }) {
1670
+ const inputRef = (0, import_react4.useRef)(null);
1671
+ const [dragging, setDragging] = (0, import_react4.useState)(false);
1672
+ const UploadIcon = GdsIcons.Upload;
1673
+ const forwardFiles = (files) => {
1674
+ if (!files?.length || !onFilesSelected) {
1675
+ return;
1676
+ }
1677
+ onFilesSelected(Array.from(files));
1678
+ };
1679
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
1680
+ import_core29.Box,
1681
+ {
1682
+ onDragOver: (event) => {
1683
+ event.preventDefault();
1684
+ setDragging(true);
1685
+ },
1686
+ onDragLeave: () => setDragging(false),
1687
+ onDrop: (event) => {
1688
+ event.preventDefault();
1689
+ setDragging(false);
1690
+ forwardFiles(event.dataTransfer.files);
1691
+ },
1692
+ p: mode === "inline" ? "md" : "xl",
1693
+ style: {
1694
+ border: `1px dashed var(${dragging ? "--mantine-color-violet-6" : "--mantine-color-default-border"})`,
1695
+ borderRadius: "var(--mantine-radius-lg)",
1696
+ background: dragging ? "var(--mantine-color-violet-light)" : "transparent"
1697
+ },
1698
+ children: [
1699
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1700
+ "input",
1701
+ {
1702
+ ref: inputRef,
1703
+ type: "file",
1704
+ hidden: true,
1705
+ accept,
1706
+ multiple,
1707
+ onChange: (event) => forwardFiles(event.currentTarget.files)
1708
+ }
1709
+ ),
1710
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_core29.Stack, { align: mode === "inline" ? "flex-start" : "center", ta: mode === "inline" ? "left" : "center", gap: "sm", children: [
1711
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(UploadIcon, { size: "1.5rem" }),
1712
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Text, { fw: 600, children: title }),
1713
+ description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Text, { size: "sm", c: "dimmed", children: description }) : null,
1714
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Group, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_core29.Button, { variant: "light", onClick: () => inputRef.current?.click(), children: actionLabel }) })
1715
+ ] })
1716
+ ]
1717
+ }
1718
+ );
1719
+ }
1720
+
1721
+ // src/MediaField.tsx
1722
+ var import_core31 = require("@mantine/core");
1723
+
1724
+ // src/FormField.tsx
1725
+ var import_core30 = require("@mantine/core");
1726
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1727
+ function FormField({ label, description, error, children }) {
1728
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core30.Box, { component: "label", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_core30.Stack, { gap: 4, children: [
1729
+ typeof label === "string" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core30.Text, { size: "xs", fw: 600, c: "dimmed", children: label }) : label,
1730
+ description ? typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core30.Text, { size: "xs", c: "dimmed", children: description }) : description : null,
1731
+ children,
1732
+ error ? typeof error === "string" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core30.Text, { size: "xs", c: "red.7", children: error }) : error : null
1733
+ ] }) });
1734
+ }
1735
+
1736
+ // src/MediaField.tsx
1737
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1738
+ var stateLabels = {
1739
+ empty: { label: "Empty", color: "gray" },
1740
+ selected: { label: "Selected", color: "blue" },
1741
+ saved: { label: "Saved", color: "teal" },
1742
+ invalid: { label: "Needs attention", color: "red" },
1743
+ uploading: { label: "Uploading", color: "violet" }
1744
+ };
1745
+ function MediaField({
1746
+ label,
1747
+ description,
1748
+ value,
1749
+ preview,
1750
+ uploadControl,
1751
+ urlInput,
1752
+ helpText,
1753
+ policyText,
1754
+ error,
1755
+ retryAction,
1756
+ onRemove,
1757
+ onReset,
1758
+ removeAction,
1759
+ resetAction,
1760
+ statusAction,
1761
+ state = "empty",
1762
+ mode = "stacked"
1763
+ }) {
1764
+ const stateBadge = stateLabels[state];
1765
+ const resolvedRemoveAction = removeAction ?? (onRemove ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Button, { type: "button", variant: "light", color: "red", onClick: onRemove, children: "Remove" }) : null);
1766
+ const resolvedResetAction = resetAction ?? (onReset ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Button, { type: "button", variant: "default", onClick: onReset, children: "Reset" }) : null);
1767
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1768
+ FormField,
1769
+ {
1770
+ label,
1771
+ description,
1772
+ error,
1773
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Paper, { withBorder: true, radius: "xl", p: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Stack, { gap: "md", children: [
1774
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Group, { justify: "flex-end", align: "center", gap: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Group, { gap: "xs", justify: "flex-end", children: [
1775
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Badge, { variant: "light", color: stateBadge.color, children: stateBadge.label }),
1776
+ statusAction
1777
+ ] }) }),
1778
+ preview ? preview : null,
1779
+ uploadControl || urlInput ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
1780
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Divider, {}),
1781
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Stack, { gap: "sm", style: mode === "split" ? { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))" } : void 0, children: [
1782
+ uploadControl,
1783
+ urlInput
1784
+ ] })
1785
+ ] }) : null,
1786
+ value ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Text, { size: "sm", c: "dimmed", style: { wordBreak: "break-all" }, children: value }) : null,
1787
+ helpText ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Text, { size: "sm", c: "dimmed", children: helpText }) : null,
1788
+ policyText ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core31.Text, { size: "sm", c: error ? "red.7" : "dimmed", children: policyText }) : null,
1789
+ typeof error !== "string" && error ? error : null,
1790
+ resolvedRemoveAction || resolvedResetAction ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core31.Group, { gap: "sm", children: [
1791
+ resolvedResetAction,
1792
+ retryAction,
1793
+ resolvedRemoveAction
1794
+ ] }) : null
1795
+ ] }) })
1796
+ }
1797
+ );
1798
+ }
1799
+
1800
+ // src/MediaCard.tsx
1801
+ var import_core32 = require("@mantine/core");
1802
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1803
+ function MediaCard({ title, image, description, status, overlay, actions = [] }) {
1804
+ const EyeIcon = GdsIcons.Eye;
1805
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Card, { withBorder: true, radius: "lg", padding: "md", children: [
1806
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Card.Section, { pos: "relative", children: [
1807
+ image,
1808
+ overlay ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { style: { position: "absolute", inset: 12, display: "flex", justifyContent: "flex-end", alignItems: "flex-start" }, children: overlay }) : null
1809
+ ] }),
1810
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { gap: "sm", mt: "md", children: [
1811
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Group, { justify: "space-between", align: "flex-start", children: [
1812
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_core32.Stack, { gap: 4, children: [
1813
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Title, { order: 4, children: title }),
1814
+ description ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Text, { size: "sm", c: "dimmed", lineClamp: 2, children: description }) : null
1815
+ ] }),
1816
+ status ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Badge, { variant: "light", children: status }) : null
1817
+ ] }),
1818
+ actions.length ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.Group, { justify: "flex-end", gap: "xs", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_core32.ActionIcon, { variant: "light", "aria-label": action.label, onClick: action.onClick, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(EyeIcon, { size: "1rem" }) }, action.label)) }) : null
1819
+ ] })
1820
+ ] });
1821
+ }
1822
+
1823
+ // src/AccessSummary.tsx
1824
+ var import_core33 = require("@mantine/core");
1825
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1826
+ function AccessSummary({ title, roles, scope, blocked = false, description }) {
1827
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Card, { withBorder: true, radius: "lg", padding: "lg", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.Stack, { gap: "sm", children: [
1828
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.Group, { justify: "space-between", align: "center", children: [
1829
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Title, { order: 4, children: title }),
1830
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Badge, { color: blocked ? "red" : "teal", variant: "light", children: blocked ? "Blocked" : "Allowed" })
1831
+ ] }),
1832
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Group, { gap: "xs", children: roles.map((role) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Badge, { variant: "outline", children: role }, role)) }),
1833
+ scope ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_core33.Text, { size: "sm", c: "dimmed", children: [
1834
+ "Scope: ",
1835
+ scope
1836
+ ] }) : null,
1837
+ description ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_core33.Text, { size: "sm", children: description }) : null
1838
+ ] }) });
1839
+ }
1840
+
1841
+ // src/AccessRecoveryPanel.tsx
1842
+ var import_core34 = require("@mantine/core");
1843
+ var import_gds_theme3 = require("@doneisbetter/gds-theme");
1844
+ var import_jsx_runtime35 = require("react/jsx-runtime");
1845
+ var stateBlockVariantByState = {
1846
+ unauthenticated: "permission",
1847
+ "expired-session": "info",
1848
+ forbidden: "permission",
1849
+ missing: "error",
1850
+ unavailable: "error"
1851
+ };
1852
+ var defaultCopyByState = {
1853
+ unauthenticated: {
1854
+ title: "Sign in required",
1855
+ description: "Please sign in to continue to this content."
1856
+ },
1857
+ "expired-session": {
1858
+ title: "Session expired",
1859
+ description: "Sign in again or retry to continue where you left off."
1860
+ },
1861
+ forbidden: {
1862
+ title: "You do not have access",
1863
+ description: "This content is outside your current permissions or scope."
1864
+ },
1865
+ missing: {
1866
+ title: "Content not found",
1867
+ description: "The resource may have moved, been deleted, or never existed in this scope."
1868
+ },
1869
+ unavailable: {
1870
+ title: "Content is temporarily unavailable",
1871
+ description: "Try again in a moment or return to a safe destination."
1872
+ }
1873
+ };
1874
+ function defaultActionsForState(state, {
1875
+ onRetry,
1876
+ onSignIn,
1877
+ onBack,
1878
+ supportAction
1879
+ }) {
1880
+ const signInAction = onSignIn ? { action: "login", onClick: onSignIn } : null;
1881
+ const retryAction = onRetry ? { action: "refresh", onClick: onRetry, variant: "light" } : null;
1882
+ const backAction = onBack ? { action: "back", onClick: onBack, variant: "default" } : null;
1883
+ switch (state) {
1884
+ case "unauthenticated":
1885
+ return { primary: signInAction, secondary: backAction, tertiary: supportAction ?? null };
1886
+ case "expired-session":
1887
+ return {
1888
+ primary: signInAction ?? retryAction,
1889
+ secondary: retryAction && signInAction ? retryAction : backAction,
1890
+ tertiary: supportAction ?? null
1891
+ };
1892
+ case "forbidden":
1893
+ return { primary: backAction, secondary: supportAction ?? null, tertiary: null };
1894
+ case "missing":
1895
+ return { primary: backAction, secondary: supportAction ?? null, tertiary: null };
1896
+ case "unavailable":
1897
+ return {
1898
+ primary: retryAction ?? backAction,
1899
+ secondary: retryAction && backAction ? backAction : supportAction ?? null,
1900
+ tertiary: retryAction && backAction ? supportAction ?? null : null
1901
+ };
1902
+ }
1903
+ }
1904
+ function ActionGroup({
1905
+ primaryAction,
1906
+ secondaryAction,
1907
+ tertiaryAction
1908
+ }) {
1909
+ const actions = [primaryAction, secondaryAction, tertiaryAction].filter(Boolean);
1910
+ if (actions.length === 0) {
1911
+ return null;
1912
+ }
1913
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_core34.Group, { gap: "sm", justify: "center", wrap: "wrap", children: actions.map((actionConfig, index) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1914
+ SemanticButton,
1915
+ {
1916
+ action: actionConfig.action,
1917
+ onClick: actionConfig.onClick,
1918
+ loading: actionConfig.loading,
1919
+ disabled: actionConfig.disabled,
1920
+ color: actionConfig.color,
1921
+ variant: actionConfig.variant ?? (index === 0 ? "filled" : "default")
1922
+ },
1923
+ `${actionConfig.action}-${index}`
1924
+ )) });
1925
+ }
1926
+ function AccessRecoveryPanel({
1927
+ state,
1928
+ title,
1929
+ description,
1930
+ primaryAction,
1931
+ secondaryAction,
1932
+ tertiaryAction,
1933
+ onRetry,
1934
+ onSignIn,
1935
+ onBack,
1936
+ supportAction,
1937
+ compact = false
1938
+ }) {
1939
+ const { t } = (0, import_gds_theme3.useGdsTranslation)();
1940
+ const defaultCopy = defaultCopyByState[state];
1941
+ const defaults = defaultActionsForState(state, {
1942
+ onRetry,
1943
+ onSignIn,
1944
+ onBack,
1945
+ supportAction
1946
+ });
1947
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1948
+ StateBlock,
1949
+ {
1950
+ variant: stateBlockVariantByState[state],
1951
+ compact,
1952
+ title: title ?? t(`gds.accessRecovery.${state}.title`, defaultCopy.title),
1953
+ description: description ?? t(`gds.accessRecovery.${state}.description`, defaultCopy.description),
1954
+ action: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1955
+ ActionGroup,
1956
+ {
1957
+ primaryAction: primaryAction ?? defaults.primary,
1958
+ secondaryAction: secondaryAction ?? defaults.secondary,
1959
+ tertiaryAction: tertiaryAction ?? defaults.tertiary
1960
+ }
1961
+ )
1962
+ }
1963
+ );
1964
+ }
1965
+
1966
+ // src/PageHeader.tsx
1967
+ var import_core35 = require("@mantine/core");
1968
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1969
+ function PageHeader({
1970
+ title,
1971
+ description,
1972
+ eyebrow,
1973
+ actions,
1974
+ eyebrowVariant = "neutral"
1975
+ }) {
1976
+ const eyebrowProps = eyebrowVariant === "ornamental" ? { tt: "uppercase", style: { letterSpacing: "0.12em" } } : {};
1977
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core35.Group, { justify: "space-between", align: "flex-start", gap: "lg", wrap: "wrap", children: [
1978
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_core35.Stack, { gap: "xs", children: [
1979
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Text, { size: "xs", fw: 700, c: "dimmed", ...eyebrowProps, children: eyebrow }),
1980
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Title, { order: 1, children: title }),
1981
+ description && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Text, { c: "dimmed", maw: 720, children: description })
1982
+ ] }),
1983
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core35.Box, { children: actions }) : null
1984
+ ] });
1985
+ }
1986
+
1987
+ // src/FilterDrawer.tsx
1988
+ var import_core36 = require("@mantine/core");
1989
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1990
+ function FilterDrawer({
1991
+ opened,
1992
+ onClose,
1993
+ title,
1994
+ description,
1995
+ children,
1996
+ mode = "side",
1997
+ applyAction,
1998
+ resetAction,
1999
+ closeAction,
2000
+ primaryAction,
2001
+ secondaryAction
2002
+ }) {
2003
+ const resolvedPrimaryAction = applyAction ?? primaryAction;
2004
+ const resolvedSecondaryAction = resetAction ?? secondaryAction;
2005
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2006
+ import_core36.Drawer,
2007
+ {
2008
+ opened,
2009
+ onClose,
2010
+ title,
2011
+ position: mode === "bottom-sheet" ? "bottom" : "right",
2012
+ size: mode === "bottom-sheet" ? "auto" : "md",
2013
+ radius: mode === "bottom-sheet" ? "xl" : void 0,
2014
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core36.Stack, { gap: "md", children: [
2015
+ description ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_core36.Text, { size: "sm", c: "dimmed", children: description }) : null,
2016
+ children,
2017
+ resolvedPrimaryAction || resolvedSecondaryAction || closeAction ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core36.Group, { justify: "space-between", mt: "md", children: [
2018
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_core36.Group, { gap: "sm", children: [
2019
+ closeAction,
2020
+ resolvedSecondaryAction
2021
+ ] }),
2022
+ resolvedPrimaryAction
2023
+ ] }) : null
2024
+ ] })
2025
+ }
2026
+ );
2027
+ }
2028
+
2029
+ // src/PlaceholderPanel.tsx
2030
+ var import_core37 = require("@mantine/core");
2031
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2032
+ function PlaceholderPanel({
2033
+ title,
2034
+ description,
2035
+ badge,
2036
+ footer,
2037
+ children,
2038
+ mode
2039
+ }) {
2040
+ if (mode === "live" && children) {
2041
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
2042
+ }
2043
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core37.Stack, { gap: "md", children: [
2044
+ badge ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Badge, { variant: "light", color: "blue", w: "fit-content", children: badge }) : null,
2045
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_core37.Stack, { gap: "xs", children: [
2046
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Title, { order: 4, children: title }),
2047
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Text, { c: "dimmed", children: description })
2048
+ ] }),
2049
+ footer ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core37.Text, { size: "sm", children: footer }) : null,
2050
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2051
+ StateBlock,
2052
+ {
2053
+ variant: "not-enough-data",
2054
+ title: "Content is not live yet",
2055
+ description: "This surface is intentionally showing a governed placeholder until live data is available.",
2056
+ compact: true
2057
+ }
2058
+ )
2059
+ ] }) });
2060
+ }
2061
+
2062
+ // src/SimpleDataTable.tsx
2063
+ var import_core38 = require("@mantine/core");
2064
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2065
+ function SimpleDataTable({
2066
+ columns,
2067
+ rows,
2068
+ loading = false,
2069
+ error = null,
2070
+ emptyTitle = "No data available",
2071
+ emptyDescription = "There is no live data to show yet.",
2072
+ getRowKey
2073
+ }) {
2074
+ if (error) {
2075
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(StateBlock, { variant: "error", title: "Unable to load data", description: error, compact: true });
2076
+ }
2077
+ if (loading) {
2078
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(StateBlock, { variant: "loading", title: "Loading data", description: "Please wait while the shared dataset is prepared.", compact: true });
2079
+ }
2080
+ if (!rows.length) {
2081
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(StateBlock, { variant: "empty", title: emptyTitle, description: emptyDescription, compact: true });
2082
+ }
2083
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.ScrollArea, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_core38.Table, { striped: true, highlightOnHover: true, withTableBorder: true, withColumnBorders: true, children: [
2084
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Table.Thead, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Table.Th, { children: column.header }, String(column.key))) }) }),
2085
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Table.Tbody, { children: rows.map((row, index) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Table.Tr, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_core38.Table.Td, { children: column.render ? column.render(row) : String(row[column.key] ?? "") }, String(column.key))) }, getRowKey ? getRowKey(row, index) : index)) })
2086
+ ] }) });
2087
+ }
2088
+
2089
+ // src/StatsSection.tsx
2090
+ var import_core39 = require("@mantine/core");
2091
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2092
+ function StatsSection({
2093
+ title,
2094
+ loading = false,
2095
+ error = null,
2096
+ belowThreshold = false,
2097
+ thresholdMessage,
2098
+ children,
2099
+ placeholder
2100
+ }) {
2101
+ let content = children;
2102
+ if (error) {
2103
+ content = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(StateBlock, { variant: "error", title: "Unable to load statistics", description: error, compact: true });
2104
+ } else if (loading) {
2105
+ content = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(StateBlock, { variant: "loading", title: "Loading statistics", description: "This shared data surface is still synchronizing.", compact: true });
2106
+ } else if (belowThreshold) {
2107
+ content = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2108
+ StateBlock,
2109
+ {
2110
+ variant: "not-enough-data",
2111
+ title: "Not enough data yet",
2112
+ description: thresholdMessage ?? "This view is hidden until the reporting threshold is met.",
2113
+ compact: true
2114
+ }
2115
+ );
2116
+ } else if (placeholder) {
2117
+ content = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(PlaceholderPanel, { ...placeholder, mode: "placeholder" });
2118
+ }
2119
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_core39.Stack, { gap: "md", children: [
2120
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_core39.Title, { order: 3, children: title }),
2121
+ content
2122
+ ] });
2123
+ }
2124
+
2125
+ // src/locales/ar.ts
2126
+ var ar = {
2127
+ "gds.action.settings": "\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",
2128
+ "gds.action.analytics": "\u062A\u062D\u0644\u064A\u0644\u0627\u062A",
2129
+ "gds.action.dashboard": "\u0644\u0648\u062D\u0629 \u0627\u0644\u0642\u064A\u0627\u062F\u0629",
2130
+ "gds.action.play": "\u062A\u0634\u063A\u064A\u0644",
2131
+ "gds.action.start": "\u0628\u062F\u0621",
2132
+ "gds.action.users": "\u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u064A\u0646",
2133
+ "gds.action.add": "\u0625\u0636\u0627\u0641\u0629",
2134
+ "gds.action.edit": "\u062A\u0639\u062F\u064A\u0644",
2135
+ "gds.action.delete": "\u062D\u0630\u0641",
2136
+ "gds.action.save": "\u062D\u0641\u0638",
2137
+ "gds.action.cancel": "\u0625\u0644\u063A\u0627\u0621",
2138
+ "gds.action.confirm": "\u062A\u0623\u0643\u064A\u062F",
2139
+ "gds.action.close": "\u0625\u063A\u0644\u0627\u0642",
2140
+ "gds.action.language": "\u0627\u0644\u0644\u063A\u0629",
2141
+ "gds.action.theme": "\u0627\u0644\u0633\u0645\u0629",
2142
+ "gds.action.home": "\u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629",
2143
+ "gds.action.inbox": "\u0635\u0646\u062F\u0648\u0642 \u0627\u0644\u0648\u0627\u0631\u062F",
2144
+ "gds.action.calendar": "\u0627\u0644\u062A\u0642\u0648\u064A\u0645",
2145
+ "gds.action.gallery": "\u0627\u0644\u0645\u0639\u0631\u0636",
2146
+ "gds.action.history": "\u0627\u0644\u0633\u062C\u0644",
2147
+ "gds.action.profile": "\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062E\u0635\u064A",
2148
+ "gds.action.send": "\u0625\u0631\u0633\u0627\u0644",
2149
+ "gds.action.reply": "\u0631\u062F",
2150
+ "gds.action.forward": "\u0625\u0639\u0627\u062F\u0629 \u062A\u0648\u062C\u064A\u0647",
2151
+ "gds.action.attach": "\u0625\u0631\u0641\u0627\u0642",
2152
+ "gds.action.upload": "\u0631\u0641\u0639",
2153
+ "gds.action.download": "\u062A\u0646\u0632\u064A\u0644",
2154
+ "gds.action.print": "\u0637\u0628\u0627\u0639\u0629",
2155
+ "gds.action.copy": "\u0646\u0633\u062E",
2156
+ "gds.action.duplicate": "\u062A\u0643\u0631\u0627\u0631",
2157
+ "gds.action.check": "\u062A\u062D\u062F\u064A\u062F",
2158
+ "gds.action.uncheck": "\u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u062D\u062F\u064A\u062F",
2159
+ "gds.action.complete": "\u0627\u0643\u062A\u0645\u0627\u0644",
2160
+ "gds.action.clear": "\u0645\u0633\u062D",
2161
+ "gds.action.capture": "\u0627\u0644\u062A\u0642\u0627\u0637",
2162
+ "gds.action.record": "\u062A\u0633\u062C\u064A\u0644",
2163
+ "gds.action.flip": "\u0642\u0644\u0628",
2164
+ "gds.action.flash": "\u0641\u0644\u0627\u0634",
2165
+ "gds.action.course": "\u062F\u0648\u0631\u0629",
2166
+ "gds.action.lesson": "\u062F\u0631\u0633",
2167
+ "gds.action.certificate": "\u0634\u0647\u0627\u062F\u0629",
2168
+ "gds.action.student": "\u0637\u0627\u0644\u0628",
2169
+ "gds.action.class": "\u0641\u0635\u0644",
2170
+ "gds.action.grade": "\u062F\u0631\u062C\u0629",
2171
+ "gds.action.child": "\u0637\u0641\u0644",
2172
+ "gds.action.family": "\u0639\u0627\u0626\u0644\u0629",
2173
+ "gds.action.habit": "\u0639\u0627\u062F\u0629",
2174
+ "gds.action.goal": "\u0647\u062F\u0641",
2175
+ "gds.action.streak": "\u0633\u0644\u0633\u0644\u0629",
2176
+ "gds.action.reward": "\u0645\u0643\u0627\u0641\u0623\u0629",
2177
+ "gds.action.trophy": "\u0643\u0623\u0633",
2178
+ "gds.action.crown": "\u062A\u0627\u062C",
2179
+ "gds.action.pause": "\u0625\u064A\u0642\u0627\u0641 \u0645\u0624\u0642\u062A",
2180
+ "gds.action.message": "\u0631\u0633\u0627\u0644\u0629",
2181
+ "gds.action.mail": "\u0628\u0631\u064A\u062F",
2182
+ "gds.action.refresh": "\u062A\u062D\u062F\u064A\u062B",
2183
+ "gds.action.trendingUp": "\u0627\u062A\u062C\u0627\u0647 \u0635\u0627\u0639\u062F",
2184
+ "gds.action.trendingDown": "\u0627\u062A\u062C\u0627\u0647 \u0647\u0627\u0628\u0637",
2185
+ "gds.action.currency": "\u0639\u0645\u0644\u0629",
2186
+ "gds.action.grid": "\u0634\u0628\u0643\u0629",
2187
+ "gds.action.list": "\u0642\u0627\u0626\u0645\u0629",
2188
+ "gds.action.logout": "\u062A\u0633\u062C\u064A\u0644 \u062E\u0631\u0648\u062C",
2189
+ "gds.action.notifications": "\u0625\u0634\u0639\u0627\u0631\u0627\u062A",
2190
+ "gds.action.back": "\u0631\u062C\u0648\u0639",
2191
+ "gds.action.eye": "\u0639\u0631\u0636",
2192
+ "gds.action.eyeOff": "\u0625\u062E\u0641\u0627\u0621",
2193
+ "gds.action.help": "\u0645\u0633\u0627\u0639\u062F\u0629",
2194
+ "gds.action.filter": "\u062A\u0635\u0641\u064A\u0629",
2195
+ "gds.action.sort": "\u0641\u0631\u0632",
2196
+ "gds.action.export": "\u062A\u0635\u062F\u064A\u0631",
2197
+ "gds.action.import": "\u0627\u0633\u062A\u064A\u0631\u0627\u062F",
2198
+ "gds.action.preview": "\u0645\u0639\u0627\u064A\u0646\u0629",
2199
+ "gds.action.clone": "\u0627\u0633\u062A\u0646\u0633\u0627\u062E",
2200
+ "gds.action.restore": "\u0627\u0633\u062A\u0639\u0627\u062F\u0629",
2201
+ "gds.action.toggle": "\u062A\u0628\u062F\u064A\u0644",
2202
+ "gds.action.search": "\u0628\u062D\u062B",
2203
+ "gds.action.submit": "\u0625\u0631\u0633\u0627\u0644",
2204
+ "gds.action.reset": "\u0625\u0639\u0627\u062F\u0629 \u0636\u0628\u0637",
2205
+ "gds.action.login": "\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
2206
+ "gds.action.register": "\u062A\u0633\u062C\u064A\u0644",
2207
+ "gds.action.verify": "\u062A\u062D\u0642\u0642",
2208
+ "gds.action.launch": "\u0625\u0637\u0644\u0627\u0642",
2209
+ "gds.action.draft": "\u0645\u0633\u0648\u062F\u0629",
2210
+ "gds.action.refer": "\u0625\u062D\u0627\u0644\u0629",
2211
+ "gds.action.evidence": "\u062F\u0644\u064A\u0644",
2212
+ "gds.feedback.saved": "\u062A\u0645 \u0627\u0644\u062D\u0641\u0638",
2213
+ "gds.feedback.error": "\u062D\u062F\u062B \u062E\u0637\u0623 \u0645\u0627",
2214
+ "gds.feedback.added": "\u062A\u0645\u062A \u0627\u0644\u0625\u0636\u0627\u0641\u0629",
2215
+ "gds.feedback.edited": "\u062A\u0645 \u0627\u0644\u062A\u0639\u062F\u064A\u0644",
2216
+ "gds.feedback.deleted": "\u062A\u0645 \u0627\u0644\u062D\u0630\u0641",
2217
+ "gds.feedback.canceled": "\u062A\u0645 \u0627\u0644\u0625\u0644\u063A\u0627\u0621",
2218
+ "gds.feedback.confirmed": "\u062A\u0645 \u0627\u0644\u062A\u0623\u0643\u064A\u062F",
2219
+ "gds.feedback.closed": "\u062A\u0645 \u0627\u0644\u0625\u063A\u0644\u0627\u0642",
2220
+ "gds.feedback.changed": "\u062A\u0645 \u0627\u0644\u062A\u063A\u064A\u064A\u0631",
2221
+ "gds.feedback.loaded": "\u062A\u0645 \u0627\u0644\u062A\u062D\u0645\u064A\u0644",
2222
+ "gds.feedback.started": "\u062A\u0645 \u0627\u0644\u0628\u062F\u0621",
2223
+ "gds.feedback.opened": "\u062A\u0645 \u0627\u0644\u0641\u062A\u062D",
2224
+ "gds.feedback.sent": "\u062A\u0645 \u0627\u0644\u0625\u0631\u0633\u0627\u0644",
2225
+ "gds.feedback.replied": "\u062A\u0645 \u0627\u0644\u0631\u062F",
2226
+ "gds.feedback.forwarded": "\u062A\u0645\u062A \u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u062A\u0648\u062C\u064A\u0647",
2227
+ "gds.feedback.attached": "\u062A\u0645 \u0627\u0644\u0625\u0631\u0641\u0627\u0642",
2228
+ "gds.feedback.uploaded": "\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",
2229
+ "gds.feedback.downloaded": "\u062A\u0645 \u0627\u0644\u062A\u0646\u0632\u064A\u0644",
2230
+ "gds.feedback.printed": "\u062A\u0645\u062A \u0627\u0644\u0637\u0628\u0627\u0639\u0629",
2231
+ "gds.feedback.copied": "\u062A\u0645 \u0627\u0644\u0646\u0633\u062E",
2232
+ "gds.feedback.duplicated": "\u062A\u0645 \u0627\u0644\u062A\u0643\u0631\u0627\u0631",
2233
+ "gds.feedback.checked": "\u062A\u0645 \u0627\u0644\u062A\u062D\u062F\u064A\u062F",
2234
+ "gds.feedback.unchecked": "\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u062D\u062F\u064A\u062F",
2235
+ "gds.feedback.completed": "\u062A\u0645 \u0627\u0644\u0627\u0643\u062A\u0645\u0627\u0644",
2236
+ "gds.feedback.cleared": "\u062A\u0645 \u0627\u0644\u0645\u0633\u062D",
2237
+ "gds.feedback.captured": "\u062A\u0645 \u0627\u0644\u0627\u0644\u062A\u0642\u0627\u0637",
2238
+ "gds.feedback.recorded": "\u062A\u0645 \u0627\u0644\u062A\u0633\u062C\u064A\u0644",
2239
+ "gds.feedback.flipped": "\u062A\u0645 \u0627\u0644\u0642\u0644\u0628",
2240
+ "gds.feedback.flashed": "\u062A\u0645 \u062A\u0634\u063A\u064A\u0644 \u0627\u0644\u0641\u0644\u0627\u0634",
2241
+ "gds.feedback.done": "\u062A\u0645",
2242
+ "gds.feedback.rewarded": "\u062A\u0645\u062A \u0627\u0644\u0645\u0643\u0627\u0641\u0623\u0629",
2243
+ "gds.feedback.paused": "\u062A\u0645 \u0627\u0644\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0645\u0624\u0642\u062A",
2244
+ "gds.feedback.mailed": "\u062A\u0645 \u0627\u0644\u0625\u0631\u0633\u0627\u0644 \u0628\u0627\u0644\u0628\u0631\u064A\u062F",
2245
+ "gds.feedback.refreshed": "\u062A\u0645 \u0627\u0644\u062A\u062D\u062F\u064A\u062B",
2246
+ "gds.feedback.loggedOut": "\u062A\u0645 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062E\u0631\u0648\u062C",
2247
+ "gds.feedback.filtered": "\u062A\u0645\u062A \u0627\u0644\u062A\u0635\u0641\u064A\u0629",
2248
+ "gds.feedback.sorted": "\u062A\u0645 \u0627\u0644\u0641\u0631\u0632",
2249
+ "gds.feedback.exported": "\u062A\u0645 \u0627\u0644\u062A\u0635\u062F\u064A\u0631",
2250
+ "gds.feedback.imported": "\u062A\u0645 \u0627\u0644\u0627\u0633\u062A\u064A\u0631\u0627\u062F",
2251
+ "gds.feedback.previewed": "\u062A\u0645\u062A \u0627\u0644\u0645\u0639\u0627\u064A\u0646\u0629",
2252
+ "gds.feedback.cloned": "\u062A\u0645 \u0627\u0644\u0627\u0633\u062A\u0646\u0633\u0627\u062E",
2253
+ "gds.feedback.restored": "\u062A\u0645\u062A \u0627\u0644\u0627\u0633\u062A\u0639\u0627\u062F\u0629",
2254
+ "gds.feedback.toggled": "\u062A\u0645 \u0627\u0644\u062A\u0628\u062F\u064A\u0644",
2255
+ "gds.feedback.searched": "\u062A\u0645 \u0627\u0644\u0628\u062D\u062B",
2256
+ "gds.feedback.submitted": "\u062A\u0645 \u0627\u0644\u0625\u0631\u0633\u0627\u0644",
2257
+ "gds.feedback.reset": "\u062A\u0645\u062A \u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0636\u0628\u0637",
2258
+ "gds.feedback.loggedIn": "\u062A\u0645 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
2259
+ "gds.feedback.registered": "\u062A\u0645 \u0627\u0644\u062A\u0633\u062C\u064A\u0644",
2260
+ "gds.feedback.verified": "\u062A\u0645 \u0627\u0644\u062A\u062D\u0642\u0642",
2261
+ "gds.feedback.launched": "\u062A\u0645 \u0627\u0644\u0625\u0637\u0644\u0627\u0642",
2262
+ "gds.feedback.drafted": "\u062A\u0645 \u062D\u0641\u0638 \u0627\u0644\u0645\u0633\u0648\u062F\u0629",
2263
+ "gds.feedback.referred": "\u062A\u0645\u062A \u0627\u0644\u0625\u062D\u0627\u0644\u0629",
2264
+ "gds.aria.themeToggle": "\u062A\u0628\u062F\u064A\u0644 \u0646\u0638\u0627\u0645 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",
2265
+ "gds.state.emptyData": "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0645\u062A\u0627\u062D\u0629."
2266
+ };
2267
+
2268
+ // src/locales/de.ts
2269
+ var de = {
2270
+ "gds.action.settings": "Einstellungen",
2271
+ "gds.action.analytics": "Analyse",
2272
+ "gds.action.dashboard": "Dashboard",
2273
+ "gds.action.play": "Abspielen",
2274
+ "gds.action.start": "Start",
2275
+ "gds.action.users": "Benutzer",
2276
+ "gds.action.add": "Hinzuf\xFCgen",
2277
+ "gds.action.edit": "Bearbeiten",
2278
+ "gds.action.delete": "L\xF6schen",
2279
+ "gds.action.save": "Speichern",
2280
+ "gds.action.cancel": "Abbrechen",
2281
+ "gds.action.confirm": "Best\xE4tigen",
2282
+ "gds.action.close": "Schlie\xDFen",
2283
+ "gds.action.language": "Sprache",
2284
+ "gds.action.theme": "Thema",
2285
+ "gds.action.home": "Startseite",
2286
+ "gds.action.inbox": "Posteingang",
2287
+ "gds.action.calendar": "Kalender",
2288
+ "gds.action.gallery": "Galerie",
2289
+ "gds.action.history": "Verlauf",
2290
+ "gds.action.profile": "Profil",
2291
+ "gds.action.send": "Senden",
2292
+ "gds.action.reply": "Antworten",
2293
+ "gds.action.forward": "Weiterleiten",
2294
+ "gds.action.attach": "Anh\xE4ngen",
2295
+ "gds.action.upload": "Hochladen",
2296
+ "gds.action.download": "Herunterladen",
2297
+ "gds.action.print": "Drucken",
2298
+ "gds.action.copy": "Kopieren",
2299
+ "gds.action.duplicate": "Duplizieren",
2300
+ "gds.action.check": "\xDCberpr\xFCfen",
2301
+ "gds.action.uncheck": "H\xE4kchen entfernen",
2302
+ "gds.action.complete": "Abschlie\xDFen",
2303
+ "gds.action.clear": "Leeren",
2304
+ "gds.action.capture": "Aufnehmen",
2305
+ "gds.action.record": "Aufzeichnen",
2306
+ "gds.action.flip": "Umdrehen",
2307
+ "gds.action.flash": "Blitz",
2308
+ "gds.action.course": "Kurs",
2309
+ "gds.action.lesson": "Lektion",
2310
+ "gds.action.certificate": "Zertifikat",
2311
+ "gds.action.student": "Student",
2312
+ "gds.action.class": "Klasse",
2313
+ "gds.action.grade": "Note",
2314
+ "gds.action.child": "Kind",
2315
+ "gds.action.family": "Familie",
2316
+ "gds.action.habit": "Gewohnheit",
2317
+ "gds.action.goal": "Ziel",
2318
+ "gds.action.streak": "Serie",
2319
+ "gds.action.reward": "Belohnung",
2320
+ "gds.action.trophy": "Troph\xE4e",
2321
+ "gds.action.crown": "Krone",
2322
+ "gds.action.pause": "Pause",
2323
+ "gds.action.message": "Nachricht",
2324
+ "gds.action.mail": "E-Mail",
2325
+ "gds.action.refresh": "Aktualisieren",
2326
+ "gds.action.trendingUp": "Aufw\xE4rtstrend",
2327
+ "gds.action.trendingDown": "Abw\xE4rtstrend",
2328
+ "gds.action.currency": "W\xE4hrung",
2329
+ "gds.action.grid": "Raster",
2330
+ "gds.action.list": "Liste",
2331
+ "gds.action.logout": "Abmelden",
2332
+ "gds.action.notifications": "Benachrichtigungen",
2333
+ "gds.action.back": "Zur\xFCck",
2334
+ "gds.action.eye": "Anzeigen",
2335
+ "gds.action.eyeOff": "Ausblenden",
2336
+ "gds.action.help": "Hilfe",
2337
+ "gds.action.filter": "Filter",
2338
+ "gds.action.sort": "Sortieren",
2339
+ "gds.action.export": "Exportieren",
2340
+ "gds.action.import": "Importieren",
2341
+ "gds.action.preview": "Vorschau",
2342
+ "gds.action.clone": "Klonen",
2343
+ "gds.action.restore": "Wiederherstellen",
2344
+ "gds.action.toggle": "Umschalten",
2345
+ "gds.action.search": "Suchen",
2346
+ "gds.action.submit": "Absenden",
2347
+ "gds.action.reset": "Zur\xFCcksetzen",
2348
+ "gds.action.login": "Einloggen",
2349
+ "gds.action.register": "Registrieren",
2350
+ "gds.action.verify": "Verifizieren",
2351
+ "gds.action.launch": "Starten",
2352
+ "gds.action.draft": "Entwurf",
2353
+ "gds.action.refer": "Empfehlen",
2354
+ "gds.action.evidence": "Beweismittel",
2355
+ "gds.feedback.saved": "Gespeichert",
2356
+ "gds.feedback.error": "Etwas ist schiefgelaufen",
2357
+ "gds.feedback.added": "Hinzugef\xFCgt",
2358
+ "gds.feedback.edited": "Bearbeitet",
2359
+ "gds.feedback.deleted": "Gel\xF6scht",
2360
+ "gds.feedback.canceled": "Abgebrochen",
2361
+ "gds.feedback.confirmed": "Best\xE4tigt",
2362
+ "gds.feedback.closed": "Geschlossen",
2363
+ "gds.feedback.changed": "Ge\xE4ndert",
2364
+ "gds.feedback.loaded": "Geladen",
2365
+ "gds.feedback.started": "Gestartet",
2366
+ "gds.feedback.opened": "Ge\xF6ffnet",
2367
+ "gds.feedback.sent": "Gesendet",
2368
+ "gds.feedback.replied": "Geantwortet",
2369
+ "gds.feedback.forwarded": "Weitergeleitet",
2370
+ "gds.feedback.attached": "Angeh\xE4ngt",
2371
+ "gds.feedback.uploaded": "Hochgeladen",
2372
+ "gds.feedback.downloaded": "Heruntergeladen",
2373
+ "gds.feedback.printed": "Gedruckt",
2374
+ "gds.feedback.copied": "Kopiert",
2375
+ "gds.feedback.duplicated": "Dupliziert",
2376
+ "gds.feedback.checked": "Ausgew\xE4hlt",
2377
+ "gds.feedback.unchecked": "H\xE4kchen entfernt",
2378
+ "gds.feedback.completed": "Abgeschlossen",
2379
+ "gds.feedback.cleared": "Geleert",
2380
+ "gds.feedback.captured": "Erfasst",
2381
+ "gds.feedback.recorded": "Aufgezeichnet",
2382
+ "gds.feedback.flipped": "Umdreht",
2383
+ "gds.feedback.flashed": "Geblitzt",
2384
+ "gds.feedback.done": "Erledigt",
2385
+ "gds.feedback.rewarded": "Belohnt",
2386
+ "gds.feedback.paused": "Pausiert",
2387
+ "gds.feedback.mailed": "Gemailt",
2388
+ "gds.feedback.refreshed": "Aktualisiert",
2389
+ "gds.feedback.loggedOut": "Abgemeldet",
2390
+ "gds.feedback.filtered": "Gefiltert",
2391
+ "gds.feedback.sorted": "Sortiert",
2392
+ "gds.feedback.exported": "Exportiert",
2393
+ "gds.feedback.imported": "Importiert",
2394
+ "gds.feedback.previewed": "Angezeigt",
2395
+ "gds.feedback.cloned": "Kloniert",
2396
+ "gds.feedback.restored": "Wiederhergestellt",
2397
+ "gds.feedback.toggled": "Umgeschaltet",
2398
+ "gds.feedback.searched": "Gesucht",
2399
+ "gds.feedback.submitted": "Abgesendet",
2400
+ "gds.feedback.reset": "Zur\xFCckgesetzt",
2401
+ "gds.feedback.loggedIn": "Eingeloggt",
2402
+ "gds.feedback.registered": "Registriert",
2403
+ "gds.feedback.verified": "Verifiziert",
2404
+ "gds.feedback.launched": "Gestartet",
2405
+ "gds.feedback.drafted": "Entworfen",
2406
+ "gds.feedback.referred": "Empfohlen",
2407
+ "gds.aria.themeToggle": "Farbschema umschalten",
2408
+ "gds.state.emptyData": "Keine Daten verf\xFCgbar."
2409
+ };
2410
+
2411
+ // src/locales/en.ts
2412
+ var en = {
2413
+ "gds.action.settings": "Settings",
2414
+ "gds.action.analytics": "Analytics",
2415
+ "gds.action.dashboard": "Dashboard",
2416
+ "gds.action.play": "Play",
2417
+ "gds.action.start": "Start",
2418
+ "gds.action.users": "Users",
2419
+ "gds.action.add": "Add",
2420
+ "gds.action.edit": "Edit",
2421
+ "gds.action.delete": "Delete",
2422
+ "gds.action.save": "Save",
2423
+ "gds.action.cancel": "Cancel",
2424
+ "gds.action.confirm": "Confirm",
2425
+ "gds.action.close": "Close",
2426
+ "gds.action.language": "Language",
2427
+ "gds.action.theme": "Theme",
2428
+ "gds.action.home": "Home",
2429
+ "gds.action.inbox": "Inbox",
2430
+ "gds.action.calendar": "Calendar",
2431
+ "gds.action.gallery": "Gallery",
2432
+ "gds.action.history": "History",
2433
+ "gds.action.profile": "Profile",
2434
+ "gds.action.send": "Send",
2435
+ "gds.action.reply": "Reply",
2436
+ "gds.action.forward": "Forward",
2437
+ "gds.action.attach": "Attach",
2438
+ "gds.action.upload": "Upload",
2439
+ "gds.action.download": "Download",
2440
+ "gds.action.print": "Print",
2441
+ "gds.action.copy": "Copy",
2442
+ "gds.action.duplicate": "Duplicate",
2443
+ "gds.action.check": "Check",
2444
+ "gds.action.uncheck": "Uncheck",
2445
+ "gds.action.complete": "Complete",
2446
+ "gds.action.clear": "Clear",
2447
+ "gds.action.capture": "Capture",
2448
+ "gds.action.record": "Record",
2449
+ "gds.action.flip": "Flip",
2450
+ "gds.action.flash": "Flash",
2451
+ "gds.action.course": "Course",
2452
+ "gds.action.lesson": "Lesson",
2453
+ "gds.action.certificate": "Certificate",
2454
+ "gds.action.student": "Student",
2455
+ "gds.action.class": "Class",
2456
+ "gds.action.grade": "Grade",
2457
+ "gds.action.child": "Child",
2458
+ "gds.action.family": "Family",
2459
+ "gds.action.habit": "Habit",
2460
+ "gds.action.goal": "Goal",
2461
+ "gds.action.streak": "Streak",
2462
+ "gds.action.reward": "Reward",
2463
+ "gds.action.trophy": "Trophy",
2464
+ "gds.action.crown": "Crown",
2465
+ "gds.action.pause": "Pause",
2466
+ "gds.action.message": "Message",
2467
+ "gds.action.mail": "Mail",
2468
+ "gds.action.refresh": "Refresh",
2469
+ "gds.action.trendingUp": "Trending Up",
2470
+ "gds.action.trendingDown": "Trending Down",
2471
+ "gds.action.currency": "Currency",
2472
+ "gds.action.grid": "Grid",
2473
+ "gds.action.list": "List",
2474
+ "gds.action.logout": "Logout",
2475
+ "gds.action.notifications": "Notifications",
2476
+ "gds.action.back": "Back",
2477
+ "gds.action.eye": "View",
2478
+ "gds.action.eyeOff": "Hide",
2479
+ "gds.action.help": "Help",
2480
+ "gds.action.filter": "Filter",
2481
+ "gds.action.sort": "Sort",
2482
+ "gds.action.export": "Export",
2483
+ "gds.action.import": "Import",
2484
+ "gds.action.preview": "Preview",
2485
+ "gds.action.clone": "Clone",
2486
+ "gds.action.restore": "Restore",
2487
+ "gds.action.toggle": "Toggle",
2488
+ "gds.action.search": "Search",
2489
+ "gds.action.submit": "Submit",
2490
+ "gds.action.reset": "Reset",
2491
+ "gds.action.login": "Login",
2492
+ "gds.action.register": "Register",
2493
+ "gds.action.verify": "Verify",
2494
+ "gds.action.launch": "Launch",
2495
+ "gds.action.draft": "Draft",
2496
+ "gds.action.refer": "Refer",
2497
+ "gds.action.evidence": "Evidence",
2498
+ "gds.feedback.saved": "Saved",
2499
+ "gds.feedback.error": "Something went wrong",
2500
+ "gds.feedback.added": "Added",
2501
+ "gds.feedback.edited": "Edited",
2502
+ "gds.feedback.deleted": "Deleted",
2503
+ "gds.feedback.canceled": "Canceled",
2504
+ "gds.feedback.confirmed": "Confirmed",
2505
+ "gds.feedback.closed": "Closed",
2506
+ "gds.feedback.changed": "Changed",
2507
+ "gds.feedback.loaded": "Loaded",
2508
+ "gds.feedback.started": "Started",
2509
+ "gds.feedback.opened": "Opened",
2510
+ "gds.feedback.sent": "Sent",
2511
+ "gds.feedback.replied": "Replied",
2512
+ "gds.feedback.forwarded": "Forwarded",
2513
+ "gds.feedback.attached": "Attached",
2514
+ "gds.feedback.uploaded": "Uploaded",
2515
+ "gds.feedback.downloaded": "Downloaded",
2516
+ "gds.feedback.printed": "Printed",
2517
+ "gds.feedback.copied": "Copied",
2518
+ "gds.feedback.duplicated": "Duplicated",
2519
+ "gds.feedback.checked": "Checked",
2520
+ "gds.feedback.unchecked": "Unchecked",
2521
+ "gds.feedback.completed": "Completed",
2522
+ "gds.feedback.cleared": "Cleared",
2523
+ "gds.feedback.captured": "Captured",
2524
+ "gds.feedback.recorded": "Recorded",
2525
+ "gds.feedback.flipped": "Flipped",
2526
+ "gds.feedback.flashed": "Flashed",
2527
+ "gds.feedback.done": "Done",
2528
+ "gds.feedback.rewarded": "Rewarded",
2529
+ "gds.feedback.paused": "Paused",
2530
+ "gds.feedback.mailed": "Mailed",
2531
+ "gds.feedback.refreshed": "Refreshed",
2532
+ "gds.feedback.loggedOut": "Logged Out",
2533
+ "gds.feedback.filtered": "Filtered",
2534
+ "gds.feedback.sorted": "Sorted",
2535
+ "gds.feedback.exported": "Exported",
2536
+ "gds.feedback.imported": "Imported",
2537
+ "gds.feedback.previewed": "Previewed",
2538
+ "gds.feedback.cloned": "Cloned",
2539
+ "gds.feedback.restored": "Restored",
2540
+ "gds.feedback.toggled": "Toggled",
2541
+ "gds.feedback.searched": "Searched",
2542
+ "gds.feedback.submitted": "Submitted",
2543
+ "gds.feedback.reset": "Reset",
2544
+ "gds.feedback.loggedIn": "Logged In",
2545
+ "gds.feedback.registered": "Registered",
2546
+ "gds.feedback.verified": "Verified",
2547
+ "gds.feedback.launched": "Launched",
2548
+ "gds.feedback.drafted": "Drafted",
2549
+ "gds.feedback.referred": "Referred",
2550
+ "gds.aria.themeToggle": "Toggle color scheme",
2551
+ "gds.state.emptyData": "No data available."
2552
+ };
2553
+
2554
+ // src/locales/es.ts
2555
+ var es = {
2556
+ "gds.action.settings": "Configuraci\xF3n",
2557
+ "gds.action.analytics": "Anal\xEDtica",
2558
+ "gds.action.dashboard": "Panel",
2559
+ "gds.action.play": "Reproducir",
2560
+ "gds.action.start": "Iniciar",
2561
+ "gds.action.users": "Usuarios",
2562
+ "gds.action.add": "A\xF1adir",
2563
+ "gds.action.edit": "Editar",
2564
+ "gds.action.delete": "Eliminar",
2565
+ "gds.action.save": "Guardar",
2566
+ "gds.action.cancel": "Cancelar",
2567
+ "gds.action.confirm": "Confirmar",
2568
+ "gds.action.close": "Cerrar",
2569
+ "gds.action.language": "Idioma",
2570
+ "gds.action.theme": "Tema",
2571
+ "gds.action.home": "Inicio",
2572
+ "gds.action.inbox": "Bandeja de entrada",
2573
+ "gds.action.calendar": "Calendario",
2574
+ "gds.action.gallery": "Galer\xEDa",
2575
+ "gds.action.history": "Historial",
2576
+ "gds.action.profile": "Perfil",
2577
+ "gds.action.send": "Enviar",
2578
+ "gds.action.reply": "Responder",
2579
+ "gds.action.forward": "Reenviar",
2580
+ "gds.action.attach": "Adjuntar",
2581
+ "gds.action.upload": "Subir",
2582
+ "gds.action.download": "Descargar",
2583
+ "gds.action.print": "Imprimir",
2584
+ "gds.action.copy": "Copiar",
2585
+ "gds.action.duplicate": "Duplicar",
2586
+ "gds.action.check": "Marcar",
2587
+ "gds.action.uncheck": "Desmarcar",
2588
+ "gds.action.complete": "Completar",
2589
+ "gds.action.clear": "Limpiar",
2590
+ "gds.action.capture": "Capturar",
2591
+ "gds.action.record": "Grabar",
2592
+ "gds.action.flip": "Girar",
2593
+ "gds.action.flash": "Flash",
2594
+ "gds.action.course": "Curso",
2595
+ "gds.action.lesson": "Lecci\xF3n",
2596
+ "gds.action.certificate": "Certificado",
2597
+ "gds.action.student": "Estudiante",
2598
+ "gds.action.class": "Clase",
2599
+ "gds.action.grade": "Calificaci\xF3n",
2600
+ "gds.action.child": "Ni\xF1o",
2601
+ "gds.action.family": "Familia",
2602
+ "gds.action.habit": "H\xE1bito",
2603
+ "gds.action.goal": "Objetivo",
2604
+ "gds.action.streak": "Racha",
2605
+ "gds.action.reward": "Recompensa",
2606
+ "gds.action.trophy": "Trofeo",
2607
+ "gds.action.crown": "Corona",
2608
+ "gds.action.pause": "Pausa",
2609
+ "gds.action.message": "Mensaje",
2610
+ "gds.action.mail": "Correo",
2611
+ "gds.action.refresh": "Actualizar",
2612
+ "gds.action.trendingUp": "Tendencia al alza",
2613
+ "gds.action.trendingDown": "Tendencia a la baja",
2614
+ "gds.action.currency": "Moneda",
2615
+ "gds.action.grid": "Cuadr\xEDcula",
2616
+ "gds.action.list": "Lista",
2617
+ "gds.action.logout": "Cerrar sesi\xF3n",
2618
+ "gds.action.notifications": "Notificaciones",
2619
+ "gds.action.back": "Volver",
2620
+ "gds.action.eye": "Ver",
2621
+ "gds.action.eyeOff": "Ocultar",
2622
+ "gds.action.help": "Ayuda",
2623
+ "gds.action.filter": "Filtrar",
2624
+ "gds.action.sort": "Ordenar",
2625
+ "gds.action.export": "Exportar",
2626
+ "gds.action.import": "Importar",
2627
+ "gds.action.preview": "Vista previa",
2628
+ "gds.action.clone": "Clonar",
2629
+ "gds.action.restore": "Restaurar",
2630
+ "gds.action.toggle": "Alternar",
2631
+ "gds.action.search": "Buscar",
2632
+ "gds.action.submit": "Enviar",
2633
+ "gds.action.reset": "Restablecer",
2634
+ "gds.action.login": "Iniciar sesi\xF3n",
2635
+ "gds.action.register": "Registrarse",
2636
+ "gds.action.verify": "Verificar",
2637
+ "gds.action.launch": "Lanzar",
2638
+ "gds.action.draft": "Borrador",
2639
+ "gds.action.refer": "Referir",
2640
+ "gds.action.evidence": "Evidencia",
2641
+ "gds.feedback.saved": "Guardado",
2642
+ "gds.feedback.error": "Algo sali\xF3 mal",
2643
+ "gds.feedback.added": "A\xF1adido",
2644
+ "gds.feedback.edited": "Editado",
2645
+ "gds.feedback.deleted": "Eliminado",
2646
+ "gds.feedback.canceled": "Cancelado",
2647
+ "gds.feedback.confirmed": "Confirmado",
2648
+ "gds.feedback.closed": "Cerrado",
2649
+ "gds.feedback.changed": "Cambiado",
2650
+ "gds.feedback.loaded": "Cargado",
2651
+ "gds.feedback.started": "Iniciado",
2652
+ "gds.feedback.opened": "Abierto",
2653
+ "gds.feedback.sent": "Enviado",
2654
+ "gds.feedback.replied": "Respondido",
2655
+ "gds.feedback.forwarded": "Reenviado",
2656
+ "gds.feedback.attached": "Adjuntado",
2657
+ "gds.feedback.uploaded": "Subido",
2658
+ "gds.feedback.downloaded": "Descargado",
2659
+ "gds.feedback.printed": "Impreso",
2660
+ "gds.feedback.copied": "Copiado",
2661
+ "gds.feedback.duplicated": "Duplicado",
2662
+ "gds.feedback.checked": "Marcado",
2663
+ "gds.feedback.unchecked": "Desmarcado",
2664
+ "gds.feedback.completed": "Completado",
2665
+ "gds.feedback.cleared": "Limpiado",
2666
+ "gds.feedback.captured": "Capturado",
2667
+ "gds.feedback.recorded": "Grabado",
2668
+ "gds.feedback.flipped": "Girado",
2669
+ "gds.feedback.flashed": "Flash activado",
2670
+ "gds.feedback.done": "Hecho",
2671
+ "gds.feedback.rewarded": "Recompensado",
2672
+ "gds.feedback.paused": "Pausado",
2673
+ "gds.feedback.mailed": "Enviado por correo",
2674
+ "gds.feedback.refreshed": "Actualizado",
2675
+ "gds.feedback.loggedOut": "Sesi\xF3n cerrada",
2676
+ "gds.feedback.filtered": "Filtrado",
2677
+ "gds.feedback.sorted": "Ordenado",
2678
+ "gds.feedback.exported": "Exportado",
2679
+ "gds.feedback.imported": "Importado",
2680
+ "gds.feedback.previewed": "Previsualizado",
2681
+ "gds.feedback.cloned": "Clonado",
2682
+ "gds.feedback.restored": "Restaurado",
2683
+ "gds.feedback.toggled": "Alternado",
2684
+ "gds.feedback.searched": "Buscado",
2685
+ "gds.feedback.submitted": "Enviado",
2686
+ "gds.feedback.reset": "Restablecido",
2687
+ "gds.feedback.loggedIn": "Sesi\xF3n iniciada",
2688
+ "gds.feedback.registered": "Registrado",
2689
+ "gds.feedback.verified": "Verificado",
2690
+ "gds.feedback.launched": "Lanzado",
2691
+ "gds.feedback.drafted": "Guardado como borrador",
2692
+ "gds.feedback.referred": "Referido",
2693
+ "gds.aria.themeToggle": "Alternar esquema de color",
2694
+ "gds.state.emptyData": "No hay datos disponibles."
2695
+ };
2696
+
2697
+ // src/locales/fr.ts
2698
+ var fr = {
2699
+ "gds.action.settings": "Param\xE8tres",
2700
+ "gds.action.analytics": "Analytique",
2701
+ "gds.action.dashboard": "Tableau de bord",
2702
+ "gds.action.play": "Jouer",
2703
+ "gds.action.start": "D\xE9marrer",
2704
+ "gds.action.users": "Utilisateurs",
2705
+ "gds.action.add": "Ajouter",
2706
+ "gds.action.edit": "Modifier",
2707
+ "gds.action.delete": "Supprimer",
2708
+ "gds.action.save": "Enregistrer",
2709
+ "gds.action.cancel": "Annuler",
2710
+ "gds.action.confirm": "Confirmer",
2711
+ "gds.action.close": "Fermer",
2712
+ "gds.action.language": "Langue",
2713
+ "gds.action.theme": "Th\xE8me",
2714
+ "gds.action.home": "Accueil",
2715
+ "gds.action.inbox": "Bo\xEEte de r\xE9ception",
2716
+ "gds.action.calendar": "Calendrier",
2717
+ "gds.action.gallery": "Galerie",
2718
+ "gds.action.history": "Historique",
2719
+ "gds.action.profile": "Profil",
2720
+ "gds.action.send": "Envoyer",
2721
+ "gds.action.reply": "R\xE9pondre",
2722
+ "gds.action.forward": "Transf\xE9rer",
2723
+ "gds.action.attach": "Joindre",
2724
+ "gds.action.upload": "T\xE9l\xE9verser",
2725
+ "gds.action.download": "T\xE9l\xE9charger",
2726
+ "gds.action.print": "Imprimer",
2727
+ "gds.action.copy": "Copier",
2728
+ "gds.action.duplicate": "Dupliquer",
2729
+ "gds.action.check": "Cocher",
2730
+ "gds.action.uncheck": "D\xE9cocher",
2731
+ "gds.action.complete": "Terminer",
2732
+ "gds.action.clear": "Effacer",
2733
+ "gds.action.capture": "Capturer",
2734
+ "gds.action.record": "Enregistrer",
2735
+ "gds.action.flip": "Retourner",
2736
+ "gds.action.flash": "Flash",
2737
+ "gds.action.course": "Cours",
2738
+ "gds.action.lesson": "Le\xE7on",
2739
+ "gds.action.certificate": "Certificat",
2740
+ "gds.action.student": "\xC9tudiant",
2741
+ "gds.action.class": "Classe",
2742
+ "gds.action.grade": "Note",
2743
+ "gds.action.child": "Enfant",
2744
+ "gds.action.family": "Famille",
2745
+ "gds.action.habit": "Habitude",
2746
+ "gds.action.goal": "Objectif",
2747
+ "gds.action.streak": "S\xE9rie",
2748
+ "gds.action.reward": "R\xE9compense",
2749
+ "gds.action.trophy": "Troph\xE9e",
2750
+ "gds.action.crown": "Couronne",
2751
+ "gds.action.pause": "Pause",
2752
+ "gds.action.message": "Message",
2753
+ "gds.action.mail": "Courrier",
2754
+ "gds.action.refresh": "Actualiser",
2755
+ "gds.action.trendingUp": "Tendance \xE0 la hausse",
2756
+ "gds.action.trendingDown": "Tendance \xE0 la baisse",
2757
+ "gds.action.currency": "Devise",
2758
+ "gds.action.grid": "Grille",
2759
+ "gds.action.list": "Liste",
2760
+ "gds.action.logout": "D\xE9connexion",
2761
+ "gds.action.notifications": "Notifications",
2762
+ "gds.action.back": "Retour",
2763
+ "gds.action.eye": "Afficher",
2764
+ "gds.action.eyeOff": "Masquer",
2765
+ "gds.action.help": "Aide",
2766
+ "gds.action.filter": "Filtrer",
2767
+ "gds.action.sort": "Trier",
2768
+ "gds.action.export": "Exporter",
2769
+ "gds.action.import": "Importer",
2770
+ "gds.action.preview": "Aper\xE7u",
2771
+ "gds.action.clone": "Cloner",
2772
+ "gds.action.restore": "Restaurer",
2773
+ "gds.action.toggle": "Basculer",
2774
+ "gds.action.search": "Rechercher",
2775
+ "gds.action.submit": "Soumettre",
2776
+ "gds.action.reset": "R\xE9initialiser",
2777
+ "gds.action.login": "Connexion",
2778
+ "gds.action.register": "S'inscrire",
2779
+ "gds.action.verify": "V\xE9rifier",
2780
+ "gds.action.launch": "Lancer",
2781
+ "gds.action.draft": "Brouillon",
2782
+ "gds.action.refer": "R\xE9f\xE9rer",
2783
+ "gds.action.evidence": "Preuve",
2784
+ "gds.feedback.saved": "Enregistr\xE9",
2785
+ "gds.feedback.error": "Une erreur est survenue",
2786
+ "gds.feedback.added": "Ajout\xE9",
2787
+ "gds.feedback.edited": "Modifi\xE9",
2788
+ "gds.feedback.deleted": "Supprim\xE9",
2789
+ "gds.feedback.canceled": "Annul\xE9",
2790
+ "gds.feedback.confirmed": "Confirm\xE9",
2791
+ "gds.feedback.closed": "Ferm\xE9",
2792
+ "gds.feedback.changed": "Modifi\xE9",
2793
+ "gds.feedback.loaded": "Charg\xE9",
2794
+ "gds.feedback.started": "D\xE9marr\xE9",
2795
+ "gds.feedback.opened": "Ouvert",
2796
+ "gds.feedback.sent": "Envoy\xE9",
2797
+ "gds.feedback.replied": "R\xE9pondu",
2798
+ "gds.feedback.forwarded": "Transf\xE9r\xE9",
2799
+ "gds.feedback.attached": "Joint",
2800
+ "gds.feedback.uploaded": "T\xE9l\xE9vers\xE9",
2801
+ "gds.feedback.downloaded": "T\xE9l\xE9charg\xE9",
2802
+ "gds.feedback.printed": "Imprim\xE9",
2803
+ "gds.feedback.copied": "Copi\xE9",
2804
+ "gds.feedback.duplicated": "Dupliqu\xE9",
2805
+ "gds.feedback.checked": "Coch\xE9",
2806
+ "gds.feedback.unchecked": "D\xE9coch\xE9",
2807
+ "gds.feedback.completed": "Termin\xE9",
2808
+ "gds.feedback.cleared": "Effac\xE9",
2809
+ "gds.feedback.captured": "Captur\xE9",
2810
+ "gds.feedback.recorded": "Enregistr\xE9",
2811
+ "gds.feedback.flipped": "Retourn\xE9",
2812
+ "gds.feedback.flashed": "Flash\xE9",
2813
+ "gds.feedback.done": "Fait",
2814
+ "gds.feedback.rewarded": "R\xE9compens\xE9",
2815
+ "gds.feedback.paused": "En pause",
2816
+ "gds.feedback.mailed": "Envoy\xE9",
2817
+ "gds.feedback.refreshed": "Actualis\xE9",
2818
+ "gds.feedback.loggedOut": "D\xE9connect\xE9",
2819
+ "gds.feedback.filtered": "Filtr\xE9",
2820
+ "gds.feedback.sorted": "Tri\xE9",
2821
+ "gds.feedback.exported": "Export\xE9",
2822
+ "gds.feedback.imported": "Import\xE9",
2823
+ "gds.feedback.previewed": "Visualis\xE9",
2824
+ "gds.feedback.cloned": "Clon\xE9",
2825
+ "gds.feedback.restored": "Restaur\xE9",
2826
+ "gds.feedback.toggled": "Bascul\xE9",
2827
+ "gds.feedback.searched": "Recherch\xE9",
2828
+ "gds.feedback.submitted": "Soumis",
2829
+ "gds.feedback.reset": "R\xE9initialis\xE9",
2830
+ "gds.feedback.loggedIn": "Connect\xE9",
2831
+ "gds.feedback.registered": "Inscrit",
2832
+ "gds.feedback.verified": "V\xE9rifi\xE9",
2833
+ "gds.feedback.launched": "Lanc\xE9",
2834
+ "gds.feedback.drafted": "R\xE9dig\xE9",
2835
+ "gds.feedback.referred": "R\xE9f\xE9r\xE9",
2836
+ "gds.aria.themeToggle": "Basculer le th\xE8me",
2837
+ "gds.state.emptyData": "Aucune donn\xE9e disponible."
2838
+ };
2839
+
2840
+ // src/locales/he.ts
2841
+ var he = {
2842
+ "gds.action.settings": "\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA",
2843
+ "gds.action.analytics": "\u05E0\u05D9\u05EA\u05D5\u05D7 \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD",
2844
+ "gds.action.dashboard": "\u05DC\u05D5\u05D7 \u05D1\u05E7\u05E8\u05D4",
2845
+ "gds.action.play": "\u05D4\u05E4\u05E2\u05DC",
2846
+ "gds.action.start": "\u05D4\u05EA\u05D7\u05DC",
2847
+ "gds.action.users": "\u05DE\u05E9\u05EA\u05DE\u05E9\u05D9\u05DD",
2848
+ "gds.action.add": "\u05D4\u05D5\u05E1\u05E3",
2849
+ "gds.action.edit": "\u05E2\u05E8\u05D5\u05DA",
2850
+ "gds.action.delete": "\u05DE\u05D7\u05E7",
2851
+ "gds.action.save": "\u05E9\u05DE\u05D5\u05E8",
2852
+ "gds.action.cancel": "\u05D1\u05D9\u05D8\u0648\u0644",
2853
+ "gds.action.confirm": "\u05D0\u05D9\u05E9\u05D5\u05E8",
2854
+ "gds.action.close": "\u05E1\u05D2\u05D5\u05E8",
2855
+ "gds.action.language": "\u05E9\u05E4\u05D4",
2856
+ "gds.action.theme": "\u05E2\u05E8\u05DB\u05EA \u05E0\u05D5\u05E9\u05D0",
2857
+ "gds.action.home": "\u05D3\u05E3 \u05D4\u05D1\u05D9\u05EA",
2858
+ "gds.action.inbox": "\u05D3\u05D5\u05D0\u05E8 \u05E0\u05DB\u05E0\u05E1",
2859
+ "gds.action.calendar": "\u05DC\u05D5\u05D7 \u05E9\u05E0\u05D4",
2860
+ "gds.action.gallery": "\u05D2\u05DC\u05E8\u05D9\u05D4",
2861
+ "gds.action.history": "\u05D4\u05D9\u05E1\u05D8\u05D5\u05E8\u05D9\u05D4",
2862
+ "gds.action.profile": "\u05E4\u05E8\u05D5\u05E4\u05D9\u05DC",
2863
+ "gds.action.send": "\u05E9\u05DC\u05D7",
2864
+ "gds.action.reply": "\u05D4\u05E9\u05D1",
2865
+ "gds.action.forward": "\u05D4\u05E2\u05D1\u05E8",
2866
+ "gds.action.attach": "\u05E6\u05E8\u05E3",
2867
+ "gds.action.upload": "\u05D4\u05E2\u05DC\u05D4",
2868
+ "gds.action.download": "\u05D4\u05D5\u05E8\u05D3",
2869
+ "gds.action.print": "\u05D4\u05D3\u05E4\u05E1",
2870
+ "gds.action.copy": "\u05D4\u05E2\u05EA\u05E7",
2871
+ "gds.action.duplicate": "\u05E9\u05DB\u05E4\u05DC",
2872
+ "gds.action.check": "\u05E1\u05DE\u05DF",
2873
+ "gds.action.uncheck": "\u05D1\u05D8\u05DC \u05E1\u05D9\u05DE\u05D5\u05DF",
2874
+ "gds.action.complete": "\u05D4\u05E9\u05DC\u05DD",
2875
+ "gds.action.clear": "\u05E0\u05E7\u05D4",
2876
+ "gds.action.capture": "\u05E6\u05DC\u05DD",
2877
+ "gds.action.record": "\u05D4\u05E7\u05DC\u05D8",
2878
+ "gds.action.flip": "\u05D4\u05E4\u05D5\u05DA",
2879
+ "gds.action.flash": "\u05DE\u05D1\u05D6\u05E7",
2880
+ "gds.action.course": "\u05E7\u05D5\u05E8\u05E1",
2881
+ "gds.action.lesson": "\u05E9\u05D9\u05E2\u05D5\u05E8",
2882
+ "gds.action.certificate": "\u05EA\u05E2\u05D5\u05D3\u05D4",
2883
+ "gds.action.student": "\u05EA\u05DC\u05DE\u05D9\u05D3",
2884
+ "gds.action.class": "\u05DB\u05D9\u05EA\u05D4",
2885
+ "gds.action.grade": "\u05E6\u05D9\u05D5\u05DF",
2886
+ "gds.action.child": "\u05D9\u05DC\u05D3",
2887
+ "gds.action.family": "\u05DE\u05E9\u05E4\u05D7\u05D4",
2888
+ "gds.action.habit": "\u05D4\u05E8\u05D2\u05DC",
2889
+ "gds.action.goal": "\u05DE\u05D8\u05E8\u05D4",
2890
+ "gds.action.streak": "\u05E8\u05E6\u05E3",
2891
+ "gds.action.reward": "\u05E4\u05E8\u05E1",
2892
+ "gds.action.trophy": "\u05D2\u05D1\u05D9\u05E2",
2893
+ "gds.action.crown": "\u05DB\u05EA\u05E8",
2894
+ "gds.action.pause": "\u05D4\u05E9\u05D4\u05D4",
2895
+ "gds.action.message": "\u05D4\u05D5\u05D3\u05E2\u05D4",
2896
+ "gds.action.mail": "\u05D3\u05D5\u05D0\u05E8",
2897
+ "gds.action.refresh": "\u05E8\u05E2\u05E0\u05DF",
2898
+ "gds.action.trendingUp": "\u05DE\u05D2\u05DE\u05D4 \u05D7\u05D9\u05D5\u05D1\u05D9\u05EA",
2899
+ "gds.action.trendingDown": "\u05DE\u05D2\u05DE\u05D4 \u05E9\u05DC\u05D9\u05DC\u05D9\u05EA",
2900
+ "gds.action.currency": "\u05DE\u05D8\u05D1\u05E2",
2901
+ "gds.action.grid": "\u05E8\u05E9\u05EA",
2902
+ "gds.action.list": "\u05E8\u05E9\u05D9\u05DE\u05D4",
2903
+ "gds.action.logout": "\u05D4\u05EA\u05E0\u05EA\u05E7",
2904
+ "gds.action.notifications": "\u05D4\u05EA\u05E8\u05D0\u05D5\u05EA",
2905
+ "gds.action.back": "\u05D7\u05D6\u05D5\u05E8",
2906
+ "gds.action.eye": "\u05D4\u05E6\u05D2",
2907
+ "gds.action.eyeOff": "\u05D4\u05E1\u05EA\u05E8",
2908
+ "gds.action.help": "\u05E2\u05D6\u05E8\u05D4",
2909
+ "gds.action.filter": "\u05E1\u05E0\u05DF",
2910
+ "gds.action.sort": "\u05DE\u05D9\u05D9\u05DF",
2911
+ "gds.action.export": "\u05D9\u05D9\u05E6\u05D5\u05D0",
2912
+ "gds.action.import": "\u05D9\u05D9\u05D1\u05D5\u05D0",
2913
+ "gds.action.preview": "\u05EA\u05E6\u05D5\u05D2\u05D4 \u05DE\u05E7\u05D3\u05D9\u05DE\u05D4",
2914
+ "gds.action.clone": "\u05E9\u05DB\u05E4\u05D5\u05DC",
2915
+ "gds.action.restore": "\u05E9\u05D7\u05D6\u05D5\u05E8",
2916
+ "gds.action.toggle": "\u05D4\u05D7\u05DC\u05E4\u05D4",
2917
+ "gds.action.search": "\u05D7\u05D9\u05E4\u05D5\u05E9",
2918
+ "gds.action.submit": "\u05E9\u05DC\u05D9\u05D7\u05D4",
2919
+ "gds.action.reset": "\u05D0\u05D9\u05E4\u05D5\u05E1",
2920
+ "gds.action.login": "\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA",
2921
+ "gds.action.register": "\u05D4\u05E8\u05E9\u05DE\u05D4",
2922
+ "gds.action.verify": "\u05D0\u05D9\u05DE\u05D5\u05EA",
2923
+ "gds.action.launch": "\u05D4\u05E9\u05E7\u05D4",
2924
+ "gds.action.draft": "\u05D8\u05D9\u05D5\u05D8\u05D4",
2925
+ "gds.action.refer": "\u05D4\u05E4\u05E0\u05D9\u05D4",
2926
+ "gds.action.evidence": "\u05E8\u05D0\u05D9\u05D4",
2927
+ "gds.feedback.saved": "\u05E0\u05E9\u05DE\u05E8",
2928
+ "gds.feedback.error": "\u05DE\u05E9\u05D4\u05D5 \u05D4\u05E9\u05EA\u05D1\u05E9",
2929
+ "gds.feedback.added": "\u05E0\u05D5\u05E1\u05E3",
2930
+ "gds.feedback.edited": "\u05E0\u05E2\u05E8\u05DA",
2931
+ "gds.feedback.deleted": "\u05E0\u05DE\u05D7\u05E7",
2932
+ "gds.feedback.canceled": "\u05D1\u05D5\u05D8\u05DC",
2933
+ "gds.feedback.confirmed": "\u05D0\u05D5\u05E9\u05E8",
2934
+ "gds.feedback.closed": "\u05E0\u05E1\u05D2\u05E8",
2935
+ "gds.feedback.changed": "\u05E9\u05D5\u05E0\u05D4",
2936
+ "gds.feedback.loaded": "\u05E0\u05D8\u05E2\u05DF",
2937
+ "gds.feedback.started": "\u05D4\u05D5\u05EA\u05D7\u05DC",
2938
+ "gds.feedback.opened": "\u05E0\u05E4\u05EA\u05D7",
2939
+ "gds.feedback.sent": "\u05E0\u05E9\u05DC\u05D7",
2940
+ "gds.feedback.replied": "\u05E0\u05E2\u05E0\u05D4",
2941
+ "gds.feedback.forwarded": "\u05D4\u05D5\u05E2\u05D1\u05E8",
2942
+ "gds.feedback.attached": "\u05E6\u05D5\u05E8\u05E3",
2943
+ "gds.feedback.uploaded": "\u05D4\u05D5\u05E2\u05DC\u05D4",
2944
+ "gds.feedback.downloaded": "\u05D4\u05D5\u05E8\u05D3",
2945
+ "gds.feedback.printed": "\u05D4\u05D5\u05D3\u05E4\u05E1",
2946
+ "gds.feedback.copied": "\u05D4\u05D5\u05E2\u05EA\u05E7",
2947
+ "gds.feedback.duplicated": "\u05E9\u05D5\u05DB\u05E4\u05DC",
2948
+ "gds.feedback.checked": "\u05E1\u05D5\u05DE\u05DF",
2949
+ "gds.feedback.unchecked": "\u05D4\u05E1\u05D9\u05DE\u05D5\u05DF \u05D1\u05D5\u05D8\u05DC",
2950
+ "gds.feedback.completed": "\u05D4\u05D5\u05E9\u05DC\u05DD",
2951
+ "gds.feedback.cleared": "\u05E0\u05D5\u05E7\u05D4",
2952
+ "gds.feedback.captured": "\u05E6\u05D5\u05DC\u05DD",
2953
+ "gds.feedback.recorded": "\u05D4\u05D5\u05E7\u05DC\u05D8",
2954
+ "gds.feedback.flipped": "\u05E0\u05D4\u05E4\u05DA",
2955
+ "gds.feedback.flashed": "\u05D4\u05D5\u05D1\u05D6\u05E7",
2956
+ "gds.feedback.done": "\u05D1\u05D5\u05E6\u05E2",
2957
+ "gds.feedback.rewarded": "\u05EA\u05D5\u05D2\u05DE\u05DC",
2958
+ "gds.feedback.paused": "\u05D4\u05D5\u05E9\u05D4\u05D4",
2959
+ "gds.feedback.mailed": "\u05E0\u05E9\u05DC\u05D7",
2960
+ "gds.feedback.refreshed": "\u05E8\u05D5\u05E2\u05E0\u05DF",
2961
+ "gds.feedback.loggedOut": "\u05D4\u05EA\u05E0\u05EA\u05E7",
2962
+ "gds.feedback.filtered": "\u05E1\u05D5\u05E0\u05DF",
2963
+ "gds.feedback.sorted": "\u05DE\u05D5\u05D9\u05DF",
2964
+ "gds.feedback.exported": "\u05D9\u05D5\u05E6\u05D0",
2965
+ "gds.feedback.imported": "\u05D9\u05D5\u05D1\u05D0",
2966
+ "gds.feedback.previewed": "\u05D4\u05D5\u05E6\u05D2",
2967
+ "gds.feedback.cloned": "\u05E9\u05D5\u05DB\u05E4\u05DC",
2968
+ "gds.feedback.restored": "\u05E9\u05D5\u05D7\u05D6\u05E8",
2969
+ "gds.feedback.toggled": "\u05D4\u05D5\u05D7\u05DC\u05E3",
2970
+ "gds.feedback.searched": "\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D4\u05D5\u05E9\u05DC\u05DD",
2971
+ "gds.feedback.submitted": "\u05E0\u05E9\u05DC\u05D7",
2972
+ "gds.feedback.reset": "\u05D0\u05D5\u05E4\u05E1",
2973
+ "gds.feedback.loggedIn": "\u05D4\u05EA\u05D7\u05D1\u05E8",
2974
+ "gds.feedback.registered": "\u05E0\u05E8\u05E9\u05DD",
2975
+ "gds.feedback.verified": "\u05D0\u05D5\u05DE\u05EA",
2976
+ "gds.feedback.launched": "\u05D4\u05D5\u05E9\u05E7",
2977
+ "gds.feedback.drafted": "\u05E0\u05E9\u05DE\u05E8 \u05DB\u05D8\u05D9\u05D5\u05D8\u05D4",
2978
+ "gds.feedback.referred": "\u05D4\u05D5\u05E4\u05E0\u05D4",
2979
+ "gds.aria.themeToggle": "\u05D4\u05D7\u05DC\u05E3 \u05E2\u05E8\u05DB\u05EA \u05E6\u05D1\u05E2\u05D9\u05DD",
2980
+ "gds.state.emptyData": "\u05D0\u05D9\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9\u05DD \u05D6\u05DE\u05D9\u05E0\u05D9\u05DD."
2981
+ };
2982
+
2983
+ // src/locales/hu.ts
2984
+ var hu = {
2985
+ "gds.action.settings": "Be\xE1ll\xEDt\xE1sok",
2986
+ "gds.action.analytics": "Analitika",
2987
+ "gds.action.dashboard": "Ir\xE1ny\xEDt\xF3pult",
2988
+ "gds.action.play": "Lej\xE1tsz\xE1s",
2989
+ "gds.action.start": "Ind\xEDt\xE1s",
2990
+ "gds.action.users": "Felhaszn\xE1l\xF3k",
2991
+ "gds.action.add": "Hozz\xE1ad\xE1s",
2992
+ "gds.action.edit": "Szerkeszt\xE9s",
2993
+ "gds.action.delete": "T\xF6rl\xE9s",
2994
+ "gds.action.save": "Ment\xE9s",
2995
+ "gds.action.cancel": "M\xE9gse",
2996
+ "gds.action.confirm": "Meger\u0151s\xEDt\xE9s",
2997
+ "gds.action.close": "Bez\xE1r\xE1s",
2998
+ "gds.action.language": "Nyelv",
2999
+ "gds.action.theme": "T\xE9ma",
3000
+ "gds.action.home": "F\u0151oldal",
3001
+ "gds.action.inbox": "Be\xE9rkez\u0151",
3002
+ "gds.action.calendar": "Napt\xE1r",
3003
+ "gds.action.gallery": "Gal\xE9ria",
3004
+ "gds.action.history": "El\u0151zm\xE9nyek",
3005
+ "gds.action.profile": "Profil",
3006
+ "gds.action.send": "K\xFCld\xE9s",
3007
+ "gds.action.reply": "V\xE1lasz",
3008
+ "gds.action.forward": "Tov\xE1bb\xEDt\xE1s",
3009
+ "gds.action.attach": "Csatol\xE1s",
3010
+ "gds.action.upload": "Felt\xF6lt\xE9s",
3011
+ "gds.action.download": "Let\xF6lt\xE9s",
3012
+ "gds.action.print": "Nyomtat\xE1s",
3013
+ "gds.action.copy": "M\xE1sol\xE1s",
3014
+ "gds.action.duplicate": "Duplik\xE1l\xE1s",
3015
+ "gds.action.check": "Jel\xF6l\xE9s",
3016
+ "gds.action.uncheck": "Jel\xF6l\xE9s t\xF6rl\xE9se",
3017
+ "gds.action.complete": "K\xE9sz",
3018
+ "gds.action.clear": "Ki\xFCr\xEDt\xE9s",
3019
+ "gds.action.capture": "Felv\xE9tel",
3020
+ "gds.action.record": "R\xF6gz\xEDt\xE9s",
3021
+ "gds.action.flip": "Ford\xEDt\xE1s",
3022
+ "gds.action.flash": "Vaku",
3023
+ "gds.action.course": "Tanfolyam",
3024
+ "gds.action.lesson": "Lecke",
3025
+ "gds.action.certificate": "Tan\xFAs\xEDtv\xE1ny",
3026
+ "gds.action.student": "Tanul\xF3",
3027
+ "gds.action.class": "Oszt\xE1ly",
3028
+ "gds.action.grade": "Oszt\xE1lyzat",
3029
+ "gds.action.child": "Gyermek",
3030
+ "gds.action.family": "Csal\xE1d",
3031
+ "gds.action.habit": "Szok\xE1s",
3032
+ "gds.action.goal": "C\xE9l",
3033
+ "gds.action.streak": "Sorozat",
3034
+ "gds.action.reward": "Jutalom",
3035
+ "gds.action.trophy": "Tr\xF3fea",
3036
+ "gds.action.crown": "Korona",
3037
+ "gds.action.pause": "Sz\xFCnet",
3038
+ "gds.action.message": "\xDCzenet",
3039
+ "gds.action.mail": "Lev\xE9l",
3040
+ "gds.action.refresh": "Friss\xEDt\xE9s",
3041
+ "gds.action.trendingUp": "N\xF6vekv\u0151 trend",
3042
+ "gds.action.trendingDown": "Cs\xF6kken\u0151 trend",
3043
+ "gds.action.currency": "P\xE9nznem",
3044
+ "gds.action.grid": "R\xE1cs",
3045
+ "gds.action.list": "Lista",
3046
+ "gds.action.logout": "Kijelentkez\xE9s",
3047
+ "gds.action.notifications": "\xC9rtes\xEDt\xE9sek",
3048
+ "gds.action.back": "Vissza",
3049
+ "gds.action.eye": "Megtekint\xE9s",
3050
+ "gds.action.eyeOff": "Elrejt\xE9s",
3051
+ "gds.action.help": "S\xFAg\xF3",
3052
+ "gds.action.filter": "Sz\u0171r\u0151",
3053
+ "gds.action.sort": "Rendez\xE9s",
3054
+ "gds.action.export": "Export\xE1l\xE1s",
3055
+ "gds.action.import": "Import\xE1l\xE1s",
3056
+ "gds.action.preview": "El\u0151n\xE9zet",
3057
+ "gds.action.clone": "Kl\xF3noz\xE1s",
3058
+ "gds.action.restore": "Vissza\xE1ll\xEDt\xE1s",
3059
+ "gds.action.toggle": "V\xE1lt\xE1s",
3060
+ "gds.action.search": "Keres\xE9s",
3061
+ "gds.action.submit": "K\xFCld\xE9s",
3062
+ "gds.action.reset": "Alaphelyzet",
3063
+ "gds.action.login": "Bejelentkez\xE9s",
3064
+ "gds.action.register": "Regisztr\xE1ci\xF3",
3065
+ "gds.action.verify": "Ellen\u0151rz\xE9s",
3066
+ "gds.action.launch": "Ind\xEDt\xE1s",
3067
+ "gds.action.draft": "Piszkozat",
3068
+ "gds.action.refer": "Aj\xE1nl\xE1s",
3069
+ "gds.action.evidence": "Bizony\xEDt\xE9k",
3070
+ "gds.feedback.saved": "Mentve",
3071
+ "gds.feedback.error": "Hiba t\xF6rt\xE9nt",
3072
+ "gds.feedback.added": "Hozz\xE1adva",
3073
+ "gds.feedback.edited": "Szerkesztve",
3074
+ "gds.feedback.deleted": "T\xF6r\xF6lve",
3075
+ "gds.feedback.canceled": "Megszak\xEDtva",
3076
+ "gds.feedback.confirmed": "Meger\u0151s\xEDtve",
3077
+ "gds.feedback.closed": "Bez\xE1rva",
3078
+ "gds.feedback.changed": "Megv\xE1ltoztatva",
3079
+ "gds.feedback.loaded": "Bet\xF6ltve",
3080
+ "gds.feedback.started": "Elind\xEDtva",
3081
+ "gds.feedback.opened": "Megnyitva",
3082
+ "gds.feedback.sent": "Elk\xFCldve",
3083
+ "gds.feedback.replied": "Megv\xE1laszolva",
3084
+ "gds.feedback.forwarded": "Tov\xE1bb\xEDtva",
3085
+ "gds.feedback.attached": "Csatolva",
3086
+ "gds.feedback.uploaded": "Felt\xF6ltve",
3087
+ "gds.feedback.downloaded": "Let\xF6ltve",
3088
+ "gds.feedback.printed": "Kinyomtatva",
3089
+ "gds.feedback.copied": "M\xE1solva",
3090
+ "gds.feedback.duplicated": "Duplik\xE1lva",
3091
+ "gds.feedback.checked": "Kijel\xF6lve",
3092
+ "gds.feedback.unchecked": "Kijel\xF6l\xE9s t\xF6r\xF6lve",
3093
+ "gds.feedback.completed": "Befejezve",
3094
+ "gds.feedback.cleared": "Ki\xFCr\xEDtve",
3095
+ "gds.feedback.captured": "R\xF6gz\xEDtve",
3096
+ "gds.feedback.recorded": "Felv\xE9ve",
3097
+ "gds.feedback.flipped": "Megford\xEDtva",
3098
+ "gds.feedback.flashed": "Villantva",
3099
+ "gds.feedback.done": "K\xE9sz",
3100
+ "gds.feedback.rewarded": "Jutalmazva",
3101
+ "gds.feedback.paused": "Sz\xFCneteltetve",
3102
+ "gds.feedback.mailed": "Elk\xFCldve",
3103
+ "gds.feedback.refreshed": "Friss\xEDtve",
3104
+ "gds.feedback.loggedOut": "Kijelentkezve",
3105
+ "gds.feedback.filtered": "Sz\u0171rve",
3106
+ "gds.feedback.sorted": "Rendezve",
3107
+ "gds.feedback.exported": "Export\xE1lva",
3108
+ "gds.feedback.imported": "Import\xE1lva",
3109
+ "gds.feedback.previewed": "El\u0151n\xE9zet bet\xF6ltve",
3110
+ "gds.feedback.cloned": "Kl\xF3nozva",
3111
+ "gds.feedback.restored": "Vissza\xE1ll\xEDtva",
3112
+ "gds.feedback.toggled": "\xC1tv\xE1ltva",
3113
+ "gds.feedback.searched": "Keresve",
3114
+ "gds.feedback.submitted": "Elk\xFCldve",
3115
+ "gds.feedback.reset": "Alaphelyzetbe \xE1ll\xEDtva",
3116
+ "gds.feedback.loggedIn": "Bejelentkezve",
3117
+ "gds.feedback.registered": "Regisztr\xE1lva",
3118
+ "gds.feedback.verified": "Ellen\u0151rizve",
3119
+ "gds.feedback.launched": "Elind\xEDtva",
3120
+ "gds.feedback.drafted": "L\xE9trehozva",
3121
+ "gds.feedback.referred": "Aj\xE1nlva",
3122
+ "gds.aria.themeToggle": "Sz\xEDns\xE9ma v\xE1lt\xE1sa",
3123
+ "gds.state.emptyData": "Nincs el\xE9rhet\u0151 adat."
3124
+ };
3125
+
3126
+ // src/locales/it.ts
3127
+ var it = {
3128
+ "gds.action.settings": "Impostazioni",
3129
+ "gds.action.analytics": "Analitica",
3130
+ "gds.action.dashboard": "Dashboard",
3131
+ "gds.action.play": "Riproduci",
3132
+ "gds.action.start": "Inizia",
3133
+ "gds.action.users": "Utenti",
3134
+ "gds.action.add": "Aggiungi",
3135
+ "gds.action.edit": "Modifica",
3136
+ "gds.action.delete": "Elimina",
3137
+ "gds.action.save": "Salva",
3138
+ "gds.action.cancel": "Annulla",
3139
+ "gds.action.confirm": "Conferma",
3140
+ "gds.action.close": "Chiudi",
3141
+ "gds.action.language": "Lingua",
3142
+ "gds.action.theme": "Tema",
3143
+ "gds.action.home": "Home",
3144
+ "gds.action.inbox": "Posta in arrivo",
3145
+ "gds.action.calendar": "Calendario",
3146
+ "gds.action.gallery": "Galleria",
3147
+ "gds.action.history": "Cronologia",
3148
+ "gds.action.profile": "Profilo",
3149
+ "gds.action.send": "Invia",
3150
+ "gds.action.reply": "Rispondi",
3151
+ "gds.action.forward": "Inoltra",
3152
+ "gds.action.attach": "Allega",
3153
+ "gds.action.upload": "Carica",
3154
+ "gds.action.download": "Scarica",
3155
+ "gds.action.print": "Stampa",
3156
+ "gds.action.copy": "Copia",
3157
+ "gds.action.duplicate": "Duplica",
3158
+ "gds.action.check": "Seleziona",
3159
+ "gds.action.uncheck": "Deseleziona",
3160
+ "gds.action.complete": "Completa",
3161
+ "gds.action.clear": "Pulisci",
3162
+ "gds.action.capture": "Cattura",
3163
+ "gds.action.record": "Registra",
3164
+ "gds.action.flip": "Capovolgi",
3165
+ "gds.action.flash": "Flash",
3166
+ "gds.action.course": "Corso",
3167
+ "gds.action.lesson": "Lezione",
3168
+ "gds.action.certificate": "Certificato",
3169
+ "gds.action.student": "Studente",
3170
+ "gds.action.class": "Classe",
3171
+ "gds.action.grade": "Voto",
3172
+ "gds.action.child": "Bambino",
3173
+ "gds.action.family": "Famiglia",
3174
+ "gds.action.habit": "Abitudine",
3175
+ "gds.action.goal": "Obiettivo",
3176
+ "gds.action.streak": "Serie",
3177
+ "gds.action.reward": "Ricompensa",
3178
+ "gds.action.trophy": "Trofeo",
3179
+ "gds.action.crown": "Corona",
3180
+ "gds.action.pause": "Pausa",
3181
+ "gds.action.message": "Messaggio",
3182
+ "gds.action.mail": "Posta",
3183
+ "gds.action.refresh": "Aggiorna",
3184
+ "gds.action.trendingUp": "In crescita",
3185
+ "gds.action.trendingDown": "In calo",
3186
+ "gds.action.currency": "Valuta",
3187
+ "gds.action.grid": "Griglia",
3188
+ "gds.action.list": "Elenco",
3189
+ "gds.action.logout": "Esci",
3190
+ "gds.action.notifications": "Notifiche",
3191
+ "gds.action.back": "Indietro",
3192
+ "gds.action.eye": "Mostra",
3193
+ "gds.action.eyeOff": "Nascondi",
3194
+ "gds.action.help": "Aiuto",
3195
+ "gds.action.filter": "Filtra",
3196
+ "gds.action.sort": "Ordina",
3197
+ "gds.action.export": "Esporta",
3198
+ "gds.action.import": "Importa",
3199
+ "gds.action.preview": "Anteprima",
3200
+ "gds.action.clone": "Clona",
3201
+ "gds.action.restore": "Ripristina",
3202
+ "gds.action.toggle": "Attiva/Disattiva",
3203
+ "gds.action.search": "Cerca",
3204
+ "gds.action.submit": "Invia",
3205
+ "gds.action.reset": "Reimposta",
3206
+ "gds.action.login": "Accedi",
3207
+ "gds.action.register": "Registrati",
3208
+ "gds.action.verify": "Verifica",
3209
+ "gds.action.launch": "Avvia",
3210
+ "gds.action.draft": "Bozza",
3211
+ "gds.action.refer": "Segnala",
3212
+ "gds.action.evidence": "Prova",
3213
+ "gds.feedback.saved": "Salvato",
3214
+ "gds.feedback.error": "Si \xE8 verificato un errore",
3215
+ "gds.feedback.added": "Aggiunto",
3216
+ "gds.feedback.edited": "Modificato",
3217
+ "gds.feedback.deleted": "Eliminato",
3218
+ "gds.feedback.canceled": "Annullato",
3219
+ "gds.feedback.confirmed": "Confermato",
3220
+ "gds.feedback.closed": "Chiuso",
3221
+ "gds.feedback.changed": "Cambiato",
3222
+ "gds.feedback.loaded": "Caricato",
3223
+ "gds.feedback.started": "Iniziato",
3224
+ "gds.feedback.opened": "Aperto",
3225
+ "gds.feedback.sent": "Inviato",
3226
+ "gds.feedback.replied": "Risposto",
3227
+ "gds.feedback.forwarded": "Inoltrato",
3228
+ "gds.feedback.attached": "Allegato",
3229
+ "gds.feedback.uploaded": "Caricato",
3230
+ "gds.feedback.downloaded": "Scaricato",
3231
+ "gds.feedback.printed": "Stampato",
3232
+ "gds.feedback.copied": "Copiato",
3233
+ "gds.feedback.duplicated": "Duplicato",
3234
+ "gds.feedback.checked": "Selezionato",
3235
+ "gds.feedback.unchecked": "Deselezionato",
3236
+ "gds.feedback.completed": "Completato",
3237
+ "gds.feedback.cleared": "Svuotato",
3238
+ "gds.feedback.captured": "Catturato",
3239
+ "gds.feedback.recorded": "Registrato",
3240
+ "gds.feedback.flipped": "Capovolto",
3241
+ "gds.feedback.flashed": "Lampeggiato",
3242
+ "gds.feedback.done": "Fatto",
3243
+ "gds.feedback.rewarded": "Premiato",
3244
+ "gds.feedback.paused": "In pausa",
3245
+ "gds.feedback.mailed": "Inviato",
3246
+ "gds.feedback.refreshed": "Aggiornato",
3247
+ "gds.feedback.loggedOut": "Disconnesso",
3248
+ "gds.feedback.filtered": "Filtrato",
3249
+ "gds.feedback.sorted": "Ordinato",
3250
+ "gds.feedback.exported": "Esportato",
3251
+ "gds.feedback.imported": "Importato",
3252
+ "gds.feedback.previewed": "Visualizzato",
3253
+ "gds.feedback.cloned": "Clonato",
3254
+ "gds.feedback.restored": "Ripristinato",
3255
+ "gds.feedback.toggled": "Attivato",
3256
+ "gds.feedback.searched": "Cercato",
3257
+ "gds.feedback.submitted": "Inviato",
3258
+ "gds.feedback.reset": "Reimpostato",
3259
+ "gds.feedback.loggedIn": "Accesso effettuato",
3260
+ "gds.feedback.registered": "Registrato",
3261
+ "gds.feedback.verified": "Verificato",
3262
+ "gds.feedback.launched": "Avviato",
3263
+ "gds.feedback.drafted": "Bozza salvata",
3264
+ "gds.feedback.referred": "Segnalato",
3265
+ "gds.aria.themeToggle": "Cambia schema colori",
3266
+ "gds.state.emptyData": "Nessun dato disponibile."
3267
+ };
3268
+
3269
+ // src/locales/ru.ts
3270
+ var ru = {
3271
+ "gds.action.settings": "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",
3272
+ "gds.action.analytics": "\u0410\u043D\u0430\u043B\u0438\u0442\u0438\u043A\u0430",
3273
+ "gds.action.dashboard": "\u041F\u0430\u043D\u0435\u043B\u044C",
3274
+ "gds.action.play": "\u0412\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0441\u0442\u0438",
3275
+ "gds.action.start": "\u0421\u0442\u0430\u0440\u0442",
3276
+ "gds.action.users": "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438",
3277
+ "gds.action.add": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C",
3278
+ "gds.action.edit": "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C",
3279
+ "gds.action.delete": "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
3280
+ "gds.action.save": "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",
3281
+ "gds.action.cancel": "\u041E\u0442\u043C\u0435\u043D\u0430",
3282
+ "gds.action.confirm": "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C",
3283
+ "gds.action.close": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
3284
+ "gds.action.language": "\u042F\u0437\u044B\u043A",
3285
+ "gds.action.theme": "\u0422\u0435\u043C\u0430",
3286
+ "gds.action.home": "\u0413\u043B\u0430\u0432\u043D\u0430\u044F",
3287
+ "gds.action.inbox": "\u0412\u0445\u043E\u0434\u044F\u0449\u0438\u0435",
3288
+ "gds.action.calendar": "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C",
3289
+ "gds.action.gallery": "\u0413\u0430\u043B\u0435\u0440\u0435\u044F",
3290
+ "gds.action.history": "\u0418\u0441\u0442\u043E\u0440\u0438\u044F",
3291
+ "gds.action.profile": "\u041F\u0440\u043E\u0444\u0438\u043B\u044C",
3292
+ "gds.action.send": "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
3293
+ "gds.action.reply": "\u041E\u0442\u0432\u0435\u0442\u0438\u0442\u044C",
3294
+ "gds.action.forward": "\u041F\u0435\u0440\u0435\u0441\u043B\u0430\u0442\u044C",
3295
+ "gds.action.attach": "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C",
3296
+ "gds.action.upload": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",
3297
+ "gds.action.download": "\u0421\u043A\u0430\u0447\u0430\u0442\u044C",
3298
+ "gds.action.print": "\u041F\u0435\u0447\u0430\u0442\u044C",
3299
+ "gds.action.copy": "\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3300
+ "gds.action.duplicate": "\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3301
+ "gds.action.check": "\u041E\u0442\u043C\u0435\u0442\u0438\u0442\u044C",
3302
+ "gds.action.uncheck": "\u0421\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443",
3303
+ "gds.action.complete": "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C",
3304
+ "gds.action.clear": "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",
3305
+ "gds.action.capture": "\u0421\u043D\u044F\u0442\u044C",
3306
+ "gds.action.record": "\u0417\u0430\u043F\u0438\u0441\u044C",
3307
+ "gds.action.flip": "\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u044C",
3308
+ "gds.action.flash": "\u0412\u0441\u043F\u044B\u0448\u043A\u0430",
3309
+ "gds.action.course": "\u041A\u0443\u0440\u0441",
3310
+ "gds.action.lesson": "\u0423\u0440\u043E\u043A",
3311
+ "gds.action.certificate": "\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442",
3312
+ "gds.action.student": "\u0421\u0442\u0443\u0434\u0435\u043D\u0442",
3313
+ "gds.action.class": "\u041A\u043B\u0430\u0441\u0441",
3314
+ "gds.action.grade": "\u041E\u0446\u0435\u043D\u043A\u0430",
3315
+ "gds.action.child": "\u0420\u0435\u0431\u0435\u043D\u043E\u043A",
3316
+ "gds.action.family": "\u0421\u0435\u043C\u044C\u044F",
3317
+ "gds.action.habit": "\u041F\u0440\u0438\u0432\u044B\u0447\u043A\u0430",
3318
+ "gds.action.goal": "\u0426\u0435\u043B\u044C",
3319
+ "gds.action.streak": "\u0421\u0435\u0440\u0438\u044F",
3320
+ "gds.action.reward": "\u041D\u0430\u0433\u0440\u0430\u0434\u0430",
3321
+ "gds.action.trophy": "\u0422\u0440\u043E\u0444\u0435\u0439",
3322
+ "gds.action.crown": "\u041A\u043E\u0440\u043E\u043D\u0430",
3323
+ "gds.action.pause": "\u041F\u0430\u0443\u0437\u0430",
3324
+ "gds.action.message": "\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435",
3325
+ "gds.action.mail": "\u041F\u043E\u0447\u0442\u0430",
3326
+ "gds.action.refresh": "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",
3327
+ "gds.action.trendingUp": "\u0422\u0435\u043D\u0434\u0435\u043D\u0446\u0438\u044F \u0432\u0432\u0435\u0440\u0445",
3328
+ "gds.action.trendingDown": "\u0422\u0435\u043D\u0434\u0435\u043D\u0446\u0438\u044F \u0432\u043D\u0438\u0437",
3329
+ "gds.action.currency": "\u0412\u0430\u043B\u044E\u0442\u0430",
3330
+ "gds.action.grid": "\u0421\u0435\u0442\u043A\u0430",
3331
+ "gds.action.list": "\u0421\u043F\u0438\u0441\u043E\u043A",
3332
+ "gds.action.logout": "\u0412\u044B\u0439\u0442\u0438",
3333
+ "gds.action.notifications": "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",
3334
+ "gds.action.back": "\u041D\u0430\u0437\u0430\u0434",
3335
+ "gds.action.eye": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C",
3336
+ "gds.action.eyeOff": "\u0421\u043A\u0440\u044B\u0442\u044C",
3337
+ "gds.action.help": "\u041F\u043E\u043C\u043E\u0449\u044C",
3338
+ "gds.action.filter": "\u0424\u0438\u043B\u044C\u0442\u0440",
3339
+ "gds.action.sort": "\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430",
3340
+ "gds.action.export": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442",
3341
+ "gds.action.import": "\u0418\u043C\u043F\u043E\u0440\u0442",
3342
+ "gds.action.preview": "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440",
3343
+ "gds.action.clone": "\u041A\u043B\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
3344
+ "gds.action.restore": "\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C",
3345
+ "gds.action.toggle": "\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C",
3346
+ "gds.action.search": "\u041F\u043E\u0438\u0441\u043A",
3347
+ "gds.action.submit": "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
3348
+ "gds.action.reset": "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C",
3349
+ "gds.action.login": "\u0412\u043E\u0439\u0442\u0438",
3350
+ "gds.action.register": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F",
3351
+ "gds.action.verify": "\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C",
3352
+ "gds.action.launch": "\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C",
3353
+ "gds.action.draft": "\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A",
3354
+ "gds.action.refer": "\u041D\u0430\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
3355
+ "gds.action.evidence": "\u0414\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u043E",
3356
+ "gds.feedback.saved": "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043E",
3357
+ "gds.feedback.error": "\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A",
3358
+ "gds.feedback.added": "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E",
3359
+ "gds.feedback.edited": "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E",
3360
+ "gds.feedback.deleted": "\u0423\u0434\u0430\u043B\u0435\u043D\u043E",
3361
+ "gds.feedback.canceled": "\u041E\u0442\u043C\u0435\u043D\u0435\u043D\u043E",
3362
+ "gds.feedback.confirmed": "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E",
3363
+ "gds.feedback.closed": "\u0417\u0430\u043A\u0440\u044B\u0442\u043E",
3364
+ "gds.feedback.changed": "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E",
3365
+ "gds.feedback.loaded": "\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E",
3366
+ "gds.feedback.started": "\u041D\u0430\u0447\u0430\u0442\u043E",
3367
+ "gds.feedback.opened": "\u041E\u0442\u043A\u0440\u044B\u0442\u043E",
3368
+ "gds.feedback.sent": "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",
3369
+ "gds.feedback.replied": "\u041E\u0442\u0432\u0435\u0447\u0435\u043D\u043E",
3370
+ "gds.feedback.forwarded": "\u041F\u0435\u0440\u0435\u0441\u043B\u0430\u043D\u043E",
3371
+ "gds.feedback.attached": "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u043E",
3372
+ "gds.feedback.uploaded": "\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E",
3373
+ "gds.feedback.downloaded": "\u0421\u043A\u0430\u0447\u0430\u043D\u043E",
3374
+ "gds.feedback.printed": "\u0420\u0430\u0441\u043F\u0435\u0447\u0430\u0442\u0430\u043D\u043E",
3375
+ "gds.feedback.copied": "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3376
+ "gds.feedback.duplicated": "\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3377
+ "gds.feedback.checked": "\u041E\u0442\u043C\u0435\u0447\u0435\u043D\u043E",
3378
+ "gds.feedback.unchecked": "\u041E\u0442\u043C\u0435\u0442\u043A\u0430 \u0441\u043D\u044F\u0442\u0430",
3379
+ "gds.feedback.completed": "\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",
3380
+ "gds.feedback.cleared": "\u041E\u0447\u0438\u0449\u0435\u043D\u043E",
3381
+ "gds.feedback.captured": "\u0421\u043D\u044F\u0442\u043E",
3382
+ "gds.feedback.recorded": "\u0417\u0430\u043F\u0438\u0441\u0430\u043D\u043E",
3383
+ "gds.feedback.flipped": "\u041F\u0435\u0440\u0435\u0432\u0435\u0440\u043D\u0443\u0442\u043E",
3384
+ "gds.feedback.flashed": "\u0412\u0441\u043F\u044B\u0448\u043A\u0430",
3385
+ "gds.feedback.done": "\u0413\u043E\u0442\u043E\u0432\u043E",
3386
+ "gds.feedback.rewarded": "\u041D\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043D\u043E",
3387
+ "gds.feedback.paused": "\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",
3388
+ "gds.feedback.mailed": "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",
3389
+ "gds.feedback.refreshed": "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E",
3390
+ "gds.feedback.loggedOut": "\u0412\u044B\u0448\u0435\u043B",
3391
+ "gds.feedback.filtered": "\u041E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043E",
3392
+ "gds.feedback.sorted": "\u041E\u0442\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3393
+ "gds.feedback.exported": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3394
+ "gds.feedback.imported": "\u0418\u043C\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3395
+ "gds.feedback.previewed": "\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043E",
3396
+ "gds.feedback.cloned": "\u041A\u043B\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3397
+ "gds.feedback.restored": "\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E",
3398
+ "gds.feedback.toggled": "\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u043E",
3399
+ "gds.feedback.searched": "\u041D\u0430\u0439\u0434\u0435\u043D\u043E",
3400
+ "gds.feedback.submitted": "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",
3401
+ "gds.feedback.reset": "\u0421\u0431\u0440\u043E\u0448\u0435\u043D\u043E",
3402
+ "gds.feedback.loggedIn": "\u0412\u0445\u043E\u0434 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D",
3403
+ "gds.feedback.registered": "\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E",
3404
+ "gds.feedback.verified": "\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E",
3405
+ "gds.feedback.launched": "\u0417\u0430\u043F\u0443\u0449\u0435\u043D\u043E",
3406
+ "gds.feedback.drafted": "\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A \u0441\u043E\u0437\u0434\u0430\u043D",
3407
+ "gds.feedback.referred": "\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E",
3408
+ "gds.aria.themeToggle": "\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0446\u0432\u0435\u0442\u043E\u0432\u0443\u044E \u0441\u0445\u0435\u043C\u0443",
3409
+ "gds.state.emptyData": "\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445."
3410
+ };
3411
+
3412
+ // src/locales/index.ts
3413
+ var gdsLocales = {
3414
+ en,
3415
+ es,
3416
+ hu,
3417
+ de,
3418
+ fr,
3419
+ it,
3420
+ ru,
3421
+ he,
3422
+ ar
3423
+ };
3424
+ function getGdsMessages(locale) {
3425
+ return gdsLocales[locale] ?? en;
3426
+ }
3427
+ // Annotate the CommonJS export names for ESM import in node:
3428
+ 0 && (module.exports = {
3429
+ AccentPanel,
3430
+ AccessRecoveryPanel,
3431
+ AccessSummary,
3432
+ ArticleShell,
3433
+ AuthShell,
3434
+ BrowseSurface,
3435
+ ConfirmDialog,
3436
+ ConsumerDashboardGrid,
3437
+ ConsumerSection,
3438
+ CtaButtonGroup,
3439
+ DataToolbar,
3440
+ DocsCodeBlock,
3441
+ DocsPageShell,
3442
+ EditorialCard,
3443
+ EditorialHero,
3444
+ EmptyState,
3445
+ FeatureBand,
3446
+ FilterDrawer,
3447
+ FormField,
3448
+ GameBoardTile,
3449
+ GdsIcons,
3450
+ GdsVocabulary,
3451
+ MediaCard,
3452
+ MediaField,
3453
+ MetricCard,
3454
+ PageHeader,
3455
+ PlaceholderPanel,
3456
+ ProductCard,
3457
+ ProgressCard,
3458
+ PublicBrandFooter,
3459
+ PublicNav,
3460
+ PublicProductCard,
3461
+ PublicShell,
3462
+ PublicSiteFooter,
3463
+ SectionPanel,
3464
+ SemanticButton,
3465
+ SimpleDataTable,
3466
+ StateBlock,
3467
+ StatsSection,
3468
+ StatusBadge,
3469
+ ThemeToggle,
3470
+ UploadDropzone,
3471
+ ar,
3472
+ de,
3473
+ en,
3474
+ es,
3475
+ fr,
3476
+ gdsLocales,
3477
+ getGdsMessages,
3478
+ he,
3479
+ hu,
3480
+ it,
3481
+ resolveAccentPanelStyles,
3482
+ ru
3483
+ });