@urbicon-ui/blocks 6.34.0 → 6.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/dist/components/Calendar/CalendarHeader.svelte +32 -26
- package/dist/components/Calendar/CalendarMiniMonth.svelte +10 -10
- package/dist/components/Calendar/calendar.variants.js +19 -5
- package/dist/components/FileUpload/FileUpload.svelte +17 -2
- package/dist/components/Planner/PlannerHeader.svelte +16 -13
- package/dist/components/Planner/planner.variants.js +14 -3
- package/dist/i18n/index.d.ts +268 -382
- package/dist/i18n/index.js +83 -9
- package/dist/internal/core/CoreIconButton.svelte +66 -0
- package/dist/internal/core/CoreIconButton.svelte.d.ts +13 -0
- package/dist/internal/core/CoreSpinner.svelte +49 -0
- package/dist/internal/core/CoreSpinner.svelte.d.ts +8 -0
- package/dist/internal/core/spinner-geometry.d.ts +6 -0
- package/dist/internal/core/spinner-geometry.js +6 -0
- package/dist/mint/registry.d.ts +20 -2
- package/dist/mint/registry.js +20 -2
- package/dist/primitives/Badge/Badge.svelte +5 -5
- package/dist/primitives/Badge/badge.variants.js +17 -1
- package/dist/primitives/Button/Button.svelte +4 -2
- package/dist/primitives/Dialog/Dialog.svelte +7 -5
- package/dist/primitives/Dialog/dialog.variants.d.ts +7 -0
- package/dist/primitives/Dialog/dialog.variants.js +17 -0
- package/dist/primitives/Drawer/Drawer.svelte +7 -5
- package/dist/primitives/Drawer/drawer.variants.d.ts +8 -0
- package/dist/primitives/Drawer/drawer.variants.js +17 -0
- package/dist/primitives/Spinner/Spinner.svelte +3 -1
- package/dist/primitives/Toast/Toaster.svelte +17 -2
- package/dist/utils/variants.js +44 -10
- package/package.json +4 -6
package/dist/i18n/index.d.ts
CHANGED
|
@@ -1,384 +1,57 @@
|
|
|
1
|
+
import type { Locale, Translations } from '@urbicon-ui/i18n';
|
|
1
2
|
import enTranslations from '../translations/en.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
readonly first: "First";
|
|
55
|
-
readonly last: "Last";
|
|
56
|
-
readonly page: "Page";
|
|
57
|
-
readonly previous: "Previous";
|
|
58
|
-
readonly pageInfo: "{{label}} {{current}} of {{total}}";
|
|
59
|
-
readonly rangeInfo: "{{start}}–{{end}} of {{total}}";
|
|
60
|
-
};
|
|
61
|
-
readonly calendar: {
|
|
62
|
-
readonly recurring: "Recurring event";
|
|
63
|
-
readonly previousMonth: "Previous month";
|
|
64
|
-
readonly nextMonth: "Next month";
|
|
65
|
-
readonly previousWeek: "Previous week";
|
|
66
|
-
readonly nextWeek: "Next week";
|
|
67
|
-
readonly previousDay: "Previous day";
|
|
68
|
-
readonly nextDay: "Next day";
|
|
69
|
-
readonly previousYear: "Previous year";
|
|
70
|
-
readonly nextYear: "Next year";
|
|
71
|
-
readonly today: "Today";
|
|
72
|
-
readonly calendarGrid: "Calendar";
|
|
73
|
-
readonly weekdays: "Weekdays";
|
|
74
|
-
readonly weekNumber: "Week number";
|
|
75
|
-
readonly events: "Events";
|
|
76
|
-
readonly noEvents: "No events";
|
|
77
|
-
readonly showMore: "{{count}} more";
|
|
78
|
-
readonly legend: "Legend";
|
|
79
|
-
readonly yearView: "Year overview";
|
|
80
|
-
readonly weekView: "Week view";
|
|
81
|
-
readonly viewMonth: "Month";
|
|
82
|
-
readonly viewYear: "Year";
|
|
83
|
-
readonly viewWeek: "Week";
|
|
84
|
-
readonly viewDay: "Day";
|
|
85
|
-
readonly multiDayLabel: "Day {{current}} of {{total}}";
|
|
86
|
-
readonly agendaView: "Agenda view";
|
|
87
|
-
readonly viewAgenda: "Agenda";
|
|
88
|
-
readonly viewSwitcher: "View mode";
|
|
89
|
-
};
|
|
90
|
-
readonly planner: {
|
|
91
|
-
readonly previousWeek: "Previous week";
|
|
92
|
-
readonly nextWeek: "Next week";
|
|
93
|
-
readonly previousMonth: "Previous month";
|
|
94
|
-
readonly nextMonth: "Next month";
|
|
95
|
-
readonly previousRange: "Previous range";
|
|
96
|
-
readonly nextRange: "Next range";
|
|
97
|
-
readonly today: "Today";
|
|
98
|
-
readonly grid: "Planner";
|
|
99
|
-
readonly itemCount: "{{count}} items";
|
|
100
|
-
};
|
|
101
|
-
readonly commandPalette: {
|
|
102
|
-
readonly noResults: "No results found.";
|
|
103
|
-
readonly search: "Search...";
|
|
104
|
-
readonly hints: {
|
|
105
|
-
readonly navigate: "Navigate";
|
|
106
|
-
readonly select: "Select";
|
|
107
|
-
readonly close: "Close";
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
readonly compositionBar: {
|
|
111
|
-
readonly total: "Total";
|
|
112
|
-
readonly summary: "Composition: {{total}} ({{count}} shares) — {{parts}}";
|
|
113
|
-
readonly share: "Share";
|
|
114
|
-
readonly value: "Value";
|
|
115
|
-
readonly percent: "Percent";
|
|
116
|
-
readonly remaining: "remaining";
|
|
117
|
-
};
|
|
118
|
-
readonly guide: {
|
|
119
|
-
readonly next: "Next";
|
|
120
|
-
readonly previous: "Back";
|
|
121
|
-
readonly skip: "Skip tour";
|
|
122
|
-
readonly done: "Done";
|
|
123
|
-
readonly step: "Step {{current}} of {{total}}";
|
|
124
|
-
readonly tour: "Guided tour";
|
|
125
|
-
readonly close: "Close";
|
|
126
|
-
readonly openHelp: "Help";
|
|
127
|
-
readonly backToList: "All topics";
|
|
128
|
-
readonly info: "More information";
|
|
129
|
-
readonly infoAbout: "More information about {{label}}";
|
|
130
|
-
readonly dismiss: "Dismiss hint";
|
|
131
|
-
readonly startTour: "Start the guided tour";
|
|
132
|
-
readonly actionRequired: "Complete the highlighted action to continue";
|
|
133
|
-
readonly filterPlaceholder: "Filter topics…";
|
|
134
|
-
readonly noResults: "No matching topics";
|
|
135
|
-
};
|
|
136
|
-
readonly journeyTimeline: {
|
|
137
|
-
readonly label: "Journey";
|
|
138
|
-
readonly status: {
|
|
139
|
-
readonly complete: "Completed";
|
|
140
|
-
readonly active: "In progress";
|
|
141
|
-
readonly pending: "Pending";
|
|
142
|
-
readonly attention: "Needs attention";
|
|
143
|
-
readonly blocked: "Blocked";
|
|
144
|
-
readonly skipped: "Skipped";
|
|
145
|
-
};
|
|
146
|
-
};
|
|
147
|
-
readonly datepicker: {
|
|
148
|
-
readonly placeholder: "Select a date...";
|
|
149
|
-
readonly rangePlaceholder: "Select a date range...";
|
|
150
|
-
readonly openCalendar: "Open calendar";
|
|
151
|
-
readonly invalidDate: "Invalid date";
|
|
152
|
-
readonly outOfRange: "Date is outside the allowed range";
|
|
153
|
-
readonly invalidRange: "Invalid date range";
|
|
154
|
-
};
|
|
155
|
-
readonly fileUpload: {
|
|
156
|
-
readonly exists: "File already added";
|
|
157
|
-
readonly invalidType: "File type {{type}} is not allowed";
|
|
158
|
-
readonly tooLarge: "File exceeds {{size}} limit";
|
|
159
|
-
readonly tooMany: "Maximum {{count}} files allowed";
|
|
160
|
-
readonly tooSmall: "File must be at least {{size}}";
|
|
161
|
-
};
|
|
162
|
-
readonly sankey: {
|
|
163
|
-
readonly summary: "Sankey diagram: {{nodes}} nodes, {{links}} links — {{flows}}";
|
|
164
|
-
readonly source: "Source";
|
|
165
|
-
readonly target: "Target";
|
|
166
|
-
readonly value: "Value";
|
|
167
|
-
};
|
|
168
|
-
readonly slider: {
|
|
169
|
-
readonly rangeStatus: {
|
|
170
|
-
readonly insideRecommended: "In recommended range";
|
|
171
|
-
readonly insideValid: "In valid range";
|
|
172
|
-
readonly insideValidOnly: "Outside recommended range, but valid";
|
|
173
|
-
readonly outsideValid: "Outside valid range";
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
readonly themeSwitcher: {
|
|
177
|
-
readonly lightMode: "Light mode";
|
|
178
|
-
readonly darkMode: "Dark mode";
|
|
179
|
-
readonly systemTheme: "System theme";
|
|
180
|
-
};
|
|
181
|
-
readonly chart: {
|
|
182
|
-
readonly category: "Category";
|
|
183
|
-
readonly series: "Series {{index}}";
|
|
184
|
-
readonly segment: "Segment";
|
|
185
|
-
readonly value: "Value";
|
|
186
|
-
readonly share: "Share";
|
|
187
|
-
};
|
|
188
|
-
readonly stepper: {
|
|
189
|
-
readonly optional: "Optional";
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
de: {
|
|
193
|
-
readonly accessibility: {
|
|
194
|
-
readonly avatar: "Avatar";
|
|
195
|
-
readonly breadcrumb: "Pfadnavigation";
|
|
196
|
-
readonly breadcrumbExpand: "Alle Pfadebenen anzeigen";
|
|
197
|
-
readonly clearInput: "Eingabe löschen";
|
|
198
|
-
readonly clearSearch: "Suche löschen";
|
|
199
|
-
readonly clearSelection: "Auswahl löschen";
|
|
200
|
-
readonly closeDialog: "Dialog schließen";
|
|
201
|
-
readonly closeDrawer: "Seitenleiste schließen";
|
|
202
|
-
readonly dismiss: "Schließen";
|
|
203
|
-
readonly fileUpload: "Datei-Upload";
|
|
204
|
-
readonly loading: "Wird geladen";
|
|
205
|
-
readonly maximum: "Maximum";
|
|
206
|
-
readonly minimum: "Minimum";
|
|
207
|
-
readonly pagination: "Seitennavigation";
|
|
208
|
-
readonly progress: "Fortschritt";
|
|
209
|
-
readonly slider: "Schieberegler";
|
|
210
|
-
readonly toggle: "Umschalter";
|
|
211
|
-
readonly toggleOptions: "Optionen umschalten";
|
|
212
|
-
readonly removableBadge: "Entfernbarer Badge";
|
|
213
|
-
readonly removeBadge: "Badge entfernen";
|
|
214
|
-
readonly removeFile: "{{name}} entfernen";
|
|
215
|
-
readonly removeTag: "{{label}} entfernen";
|
|
216
|
-
};
|
|
217
|
-
readonly button: {
|
|
218
|
-
readonly close: "Schließen";
|
|
219
|
-
readonly apply: "Anwenden";
|
|
220
|
-
readonly cancel: "Abbrechen";
|
|
221
|
-
readonly confirm: "Bestätigen";
|
|
222
|
-
};
|
|
223
|
-
readonly menu: {
|
|
224
|
-
readonly placeholder: "Option auswählen...";
|
|
225
|
-
};
|
|
226
|
-
readonly common: {
|
|
227
|
-
readonly loading: "Wird geladen...";
|
|
228
|
-
};
|
|
229
|
-
readonly languages: {
|
|
230
|
-
readonly de: "Deutsch";
|
|
231
|
-
readonly en: "English";
|
|
232
|
-
readonly es: "Español";
|
|
233
|
-
readonly fr: "Français";
|
|
234
|
-
readonly it: "Italiano";
|
|
235
|
-
readonly nl: "Nederlands";
|
|
236
|
-
};
|
|
237
|
-
readonly localeSwitcher: {
|
|
238
|
-
readonly ariaLabel: "Sprachauswahl";
|
|
239
|
-
readonly placeholder: "Sprache wählen...";
|
|
240
|
-
};
|
|
241
|
-
readonly pagination: {
|
|
242
|
-
readonly next: "Nächste";
|
|
243
|
-
readonly first: "Erste";
|
|
244
|
-
readonly last: "Letzte";
|
|
245
|
-
readonly page: "Seite";
|
|
246
|
-
readonly previous: "Vorherige";
|
|
247
|
-
readonly pageInfo: "{{label}} {{current}} von {{total}}";
|
|
248
|
-
readonly rangeInfo: "{{start}}–{{end}} von {{total}}";
|
|
249
|
-
};
|
|
250
|
-
readonly calendar: {
|
|
251
|
-
readonly recurring: "Wiederkehrender Termin";
|
|
252
|
-
readonly previousMonth: "Vorheriger Monat";
|
|
253
|
-
readonly nextMonth: "Nächster Monat";
|
|
254
|
-
readonly previousWeek: "Vorherige Woche";
|
|
255
|
-
readonly nextWeek: "Nächste Woche";
|
|
256
|
-
readonly previousDay: "Vorheriger Tag";
|
|
257
|
-
readonly nextDay: "Nächster Tag";
|
|
258
|
-
readonly previousYear: "Vorheriges Jahr";
|
|
259
|
-
readonly nextYear: "Nächstes Jahr";
|
|
260
|
-
readonly today: "Heute";
|
|
261
|
-
readonly calendarGrid: "Kalender";
|
|
262
|
-
readonly weekdays: "Wochentage";
|
|
263
|
-
readonly weekNumber: "KW";
|
|
264
|
-
readonly events: "Termine";
|
|
265
|
-
readonly noEvents: "Keine Termine";
|
|
266
|
-
readonly showMore: "{{count}} weitere anzeigen";
|
|
267
|
-
readonly legend: "Legende";
|
|
268
|
-
readonly yearView: "Jahresübersicht";
|
|
269
|
-
readonly weekView: "Wochenansicht";
|
|
270
|
-
readonly viewMonth: "Monat";
|
|
271
|
-
readonly viewYear: "Jahr";
|
|
272
|
-
readonly viewWeek: "Woche";
|
|
273
|
-
readonly viewDay: "Tag";
|
|
274
|
-
readonly multiDayLabel: "Tag {{current}} von {{total}}";
|
|
275
|
-
readonly agendaView: "Listenansicht";
|
|
276
|
-
readonly viewAgenda: "Liste";
|
|
277
|
-
readonly viewSwitcher: "Ansichtsmodus";
|
|
278
|
-
};
|
|
279
|
-
readonly planner: {
|
|
280
|
-
readonly previousWeek: "Vorherige Woche";
|
|
281
|
-
readonly nextWeek: "Nächste Woche";
|
|
282
|
-
readonly previousMonth: "Vorheriger Monat";
|
|
283
|
-
readonly nextMonth: "Nächster Monat";
|
|
284
|
-
readonly previousRange: "Vorheriger Zeitraum";
|
|
285
|
-
readonly nextRange: "Nächster Zeitraum";
|
|
286
|
-
readonly today: "Heute";
|
|
287
|
-
readonly grid: "Planer";
|
|
288
|
-
readonly itemCount: "{{count}} Einträge";
|
|
289
|
-
};
|
|
290
|
-
readonly commandPalette: {
|
|
291
|
-
readonly noResults: "Keine Ergebnisse gefunden.";
|
|
292
|
-
readonly search: "Suchen...";
|
|
293
|
-
readonly hints: {
|
|
294
|
-
readonly navigate: "Navigieren";
|
|
295
|
-
readonly select: "Auswählen";
|
|
296
|
-
readonly close: "Schließen";
|
|
297
|
-
};
|
|
298
|
-
};
|
|
299
|
-
readonly compositionBar: {
|
|
300
|
-
readonly total: "Gesamt";
|
|
301
|
-
readonly summary: "Komposition: {{total}} ({{count}} Anteile) — {{parts}}";
|
|
302
|
-
readonly share: "Anteil";
|
|
303
|
-
readonly value: "Wert";
|
|
304
|
-
readonly percent: "Prozent";
|
|
305
|
-
readonly remaining: "verbleibend";
|
|
306
|
-
};
|
|
307
|
-
readonly guide: {
|
|
308
|
-
readonly next: "Weiter";
|
|
309
|
-
readonly previous: "Zurück";
|
|
310
|
-
readonly skip: "Tour überspringen";
|
|
311
|
-
readonly done: "Fertig";
|
|
312
|
-
readonly step: "Schritt {{current}} von {{total}}";
|
|
313
|
-
readonly tour: "Geführte Tour";
|
|
314
|
-
readonly close: "Schließen";
|
|
315
|
-
readonly openHelp: "Hilfe";
|
|
316
|
-
readonly backToList: "Alle Themen";
|
|
317
|
-
readonly info: "Mehr Informationen";
|
|
318
|
-
readonly infoAbout: "Mehr Informationen zu {{label}}";
|
|
319
|
-
readonly dismiss: "Hinweis ausblenden";
|
|
320
|
-
readonly startTour: "Geführte Tour starten";
|
|
321
|
-
readonly actionRequired: "Führe die markierte Aktion aus, um fortzufahren";
|
|
322
|
-
readonly filterPlaceholder: "Themen filtern…";
|
|
323
|
-
readonly noResults: "Keine passenden Themen";
|
|
324
|
-
};
|
|
325
|
-
readonly journeyTimeline: {
|
|
326
|
-
readonly label: "Verlauf";
|
|
327
|
-
readonly status: {
|
|
328
|
-
readonly complete: "Abgeschlossen";
|
|
329
|
-
readonly active: "In Bearbeitung";
|
|
330
|
-
readonly pending: "Ausstehend";
|
|
331
|
-
readonly attention: "Aufmerksamkeit erforderlich";
|
|
332
|
-
readonly blocked: "Blockiert";
|
|
333
|
-
readonly skipped: "Übersprungen";
|
|
334
|
-
};
|
|
335
|
-
};
|
|
336
|
-
readonly datepicker: {
|
|
337
|
-
readonly placeholder: "Datum wählen...";
|
|
338
|
-
readonly rangePlaceholder: "Zeitraum wählen...";
|
|
339
|
-
readonly openCalendar: "Kalender öffnen";
|
|
340
|
-
readonly invalidDate: "Ungültiges Datum";
|
|
341
|
-
readonly outOfRange: "Datum liegt außerhalb des zulässigen Bereichs";
|
|
342
|
-
readonly invalidRange: "Ungültiger Zeitraum";
|
|
343
|
-
};
|
|
344
|
-
readonly fileUpload: {
|
|
345
|
-
readonly exists: "Datei bereits hinzugefügt";
|
|
346
|
-
readonly invalidType: "Dateityp {{type}} ist nicht erlaubt";
|
|
347
|
-
readonly tooLarge: "Datei überschreitet das Limit von {{size}}";
|
|
348
|
-
readonly tooMany: "Maximal {{count}} Dateien erlaubt";
|
|
349
|
-
readonly tooSmall: "Datei muss mindestens {{size}} groß sein";
|
|
350
|
-
};
|
|
351
|
-
readonly sankey: {
|
|
352
|
-
readonly summary: "Sankey-Diagramm: {{nodes}} Knoten, {{links}} Verbindungen — {{flows}}";
|
|
353
|
-
readonly source: "Quelle";
|
|
354
|
-
readonly target: "Ziel";
|
|
355
|
-
readonly value: "Wert";
|
|
356
|
-
};
|
|
357
|
-
readonly slider: {
|
|
358
|
-
readonly rangeStatus: {
|
|
359
|
-
readonly insideRecommended: "Im empfohlenen Bereich";
|
|
360
|
-
readonly insideValid: "Im erlaubten Bereich";
|
|
361
|
-
readonly insideValidOnly: "Außerhalb der Empfehlung, aber zulässig";
|
|
362
|
-
readonly outsideValid: "Außerhalb des erlaubten Bereichs";
|
|
363
|
-
};
|
|
364
|
-
};
|
|
365
|
-
readonly themeSwitcher: {
|
|
366
|
-
readonly lightMode: "Heller Modus";
|
|
367
|
-
readonly darkMode: "Dunkler Modus";
|
|
368
|
-
readonly systemTheme: "Systemdesign";
|
|
369
|
-
};
|
|
370
|
-
readonly chart: {
|
|
371
|
-
readonly category: "Kategorie";
|
|
372
|
-
readonly series: "Datenreihe {{index}}";
|
|
373
|
-
readonly segment: "Segment";
|
|
374
|
-
readonly value: "Wert";
|
|
375
|
-
readonly share: "Anteil";
|
|
376
|
-
};
|
|
377
|
-
readonly stepper: {
|
|
378
|
-
readonly optional: "Optional";
|
|
379
|
-
};
|
|
380
|
-
};
|
|
381
|
-
};
|
|
3
|
+
/**
|
|
4
|
+
* blocks package i18n.
|
|
5
|
+
*
|
|
6
|
+
* **Only the English base bundle is eager.** German (`de`) is registered as a
|
|
7
|
+
* lazy dynamic-import loader, so an English-only app never statically bundles the
|
|
8
|
+
* `de` catalog (~4 KB min) — Vite/Rollup splits it into its own chunk that loads
|
|
9
|
+
* only when the `de` locale is activated. `en` is the base/fallback locale.
|
|
10
|
+
*
|
|
11
|
+
* The eager base is `{ en }` (not `blocksTranslations`, which is retained below as
|
|
12
|
+
* an `{ en }` back-compat export). Registration is lazy on first
|
|
13
|
+
* `useBlocksI18n()`/`t()` — see `createPackageI18n`.
|
|
14
|
+
*
|
|
15
|
+
* ## Before the `de` chunk loads: resolution falls back to `en`
|
|
16
|
+
*
|
|
17
|
+
* A package-scoped lookup for a `de` key that isn't loaded yet resolves through
|
|
18
|
+
* the package fallback locale, i.e. it returns the **English** string (verified:
|
|
19
|
+
* `@urbicon-ui/i18n` `registry.translate` package path + `lazy-load.test.ts`). It
|
|
20
|
+
* never renders the raw key. The provider (`<I18nProvider>`) triggers the `de`
|
|
21
|
+
* load in a **client-only** `$effect` on mount, so a `de` app renders English on
|
|
22
|
+
* the server and the first client paint, then re-resolves to German once the
|
|
23
|
+
* chunk lands — a brief text flash and a possible hydration text mismatch.
|
|
24
|
+
* Two consequences of that window worth knowing:
|
|
25
|
+
*
|
|
26
|
+
* - The "falls back to English" guarantee assumes the provider's `fallbackLocale`
|
|
27
|
+
* stays at its default (`en`). Pointing `fallbackLocale` at a lazy locale that
|
|
28
|
+
* has not loaded yet leaves both lookup paths empty — such a key then renders
|
|
29
|
+
* raw and fires `onMissingKey`. Eager-register any locale you use as fallback.
|
|
30
|
+
* - `LocaleSwitcher` disables its trigger while a locale chunk load is in flight
|
|
31
|
+
* (`registry.isLoading`), so without the eager register a `de` app briefly
|
|
32
|
+
* shows the switcher disabled on first mount.
|
|
33
|
+
*
|
|
34
|
+
* The SSR recipe below removes both, along with the flash itself.
|
|
35
|
+
*
|
|
36
|
+
* ## SSR recipe for German (and other non-base) apps
|
|
37
|
+
*
|
|
38
|
+
* German SvelteKit SSR apps should register the `de` bundle eagerly **once at
|
|
39
|
+
* app start** so the very first server render is already German (no flash, no
|
|
40
|
+
* hydration mismatch). The registry is module-global and holds only static,
|
|
41
|
+
* request-identical translation data, so a single startup registration is
|
|
42
|
+
* SSR-safe — it carries no per-request state:
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* // src/hooks.server.ts (or any module evaluated once at server start)
|
|
46
|
+
* import { registerBlocksLocale } from '@urbicon-ui/blocks';
|
|
47
|
+
* import de from '@urbicon-ui/blocks/i18n/de';
|
|
48
|
+
*
|
|
49
|
+
* registerBlocksLocale('de', de);
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* This keeps the `de` catalog out of English-only client bundles (the whole point
|
|
53
|
+
* of the split) while making it eagerly present wherever it is actually rendered.
|
|
54
|
+
*/
|
|
382
55
|
export declare const blocksI18n: import("@urbicon-ui/i18n").PackageI18n<{
|
|
383
56
|
readonly accessibility: {
|
|
384
57
|
readonly avatar: "Avatar";
|
|
@@ -578,7 +251,9 @@ export declare const blocksI18n: import("@urbicon-ui/i18n").PackageI18n<{
|
|
|
578
251
|
* ```
|
|
579
252
|
*
|
|
580
253
|
* Resolves against the nearest `<I18nProvider>`'s locale (or the base locale
|
|
581
|
-
* when none is mounted) and re-renders reactively on locale change.
|
|
254
|
+
* when none is mounted) and re-renders reactively on locale change. For a lazy
|
|
255
|
+
* locale (`de`) that isn't loaded yet, resolution falls back to the base locale
|
|
256
|
+
* (`en`); see the module docblock and `registerBlocksLocale` for the SSR path.
|
|
582
257
|
*/
|
|
583
258
|
export declare const useBlocksI18n: () => import("@urbicon-ui/i18n").TypedTranslationFunction<{
|
|
584
259
|
readonly accessibility: {
|
|
@@ -769,6 +444,217 @@ export declare const useBlocksI18n: () => import("@urbicon-ui/i18n").TypedTransl
|
|
|
769
444
|
readonly optional: "Optional";
|
|
770
445
|
};
|
|
771
446
|
}>;
|
|
772
|
-
|
|
447
|
+
/**
|
|
448
|
+
* Eagerly register the blocks bundle for a lazy locale (currently `de`) so it is
|
|
449
|
+
* present for SSR / the first render, instead of loading client-side on mount.
|
|
450
|
+
* Call once at app/server start, paired with the public locale subpath import:
|
|
451
|
+
*
|
|
452
|
+
* ```ts
|
|
453
|
+
* import { registerBlocksLocale } from '@urbicon-ui/blocks';
|
|
454
|
+
* import de from '@urbicon-ui/blocks/i18n/de';
|
|
455
|
+
* registerBlocksLocale('de', de);
|
|
456
|
+
* ```
|
|
457
|
+
*
|
|
458
|
+
* Additive (does not drop the eager `en` base) and strict (throws on an
|
|
459
|
+
* unsupported locale or a non-object bundle).
|
|
460
|
+
*/
|
|
461
|
+
export declare const registerBlocksLocale: (locale: Locale, bundle: Translations) => void;
|
|
462
|
+
export declare const hasBlocksTranslation: (key: string) => boolean, getBlocksLocales: () => Locale[];
|
|
773
463
|
export type BlocksTranslationKey = keyof typeof enTranslations;
|
|
464
|
+
/**
|
|
465
|
+
* The eager base bundle only (`{ en }`). `de` is lazy and no longer part of this
|
|
466
|
+
* object; import it explicitly via `@urbicon-ui/blocks/i18n/de` (e.g. for a parity
|
|
467
|
+
* test or the SSR eager-register recipe above).
|
|
468
|
+
*/
|
|
469
|
+
declare const blocksTranslations: {
|
|
470
|
+
en: {
|
|
471
|
+
readonly accessibility: {
|
|
472
|
+
readonly avatar: "Avatar";
|
|
473
|
+
readonly breadcrumb: "Breadcrumb";
|
|
474
|
+
readonly breadcrumbExpand: "Show all breadcrumb items";
|
|
475
|
+
readonly clearInput: "Clear input";
|
|
476
|
+
readonly clearSearch: "Clear search";
|
|
477
|
+
readonly clearSelection: "Clear selection";
|
|
478
|
+
readonly closeDialog: "Close dialog";
|
|
479
|
+
readonly closeDrawer: "Close drawer";
|
|
480
|
+
readonly dismiss: "Dismiss";
|
|
481
|
+
readonly fileUpload: "File upload";
|
|
482
|
+
readonly loading: "Loading";
|
|
483
|
+
readonly maximum: "Maximum";
|
|
484
|
+
readonly minimum: "Minimum";
|
|
485
|
+
readonly pagination: "Page navigation";
|
|
486
|
+
readonly progress: "Progress";
|
|
487
|
+
readonly slider: "Slider";
|
|
488
|
+
readonly toggle: "Toggle";
|
|
489
|
+
readonly toggleOptions: "Toggle options";
|
|
490
|
+
readonly removableBadge: "Removable badge";
|
|
491
|
+
readonly removeBadge: "Remove badge";
|
|
492
|
+
readonly removeFile: "Remove {{name}}";
|
|
493
|
+
readonly removeTag: "Remove {{label}}";
|
|
494
|
+
};
|
|
495
|
+
readonly button: {
|
|
496
|
+
readonly close: "Close";
|
|
497
|
+
readonly apply: "Apply";
|
|
498
|
+
readonly cancel: "Cancel";
|
|
499
|
+
readonly confirm: "Confirm";
|
|
500
|
+
};
|
|
501
|
+
readonly menu: {
|
|
502
|
+
readonly placeholder: "Select an option...";
|
|
503
|
+
};
|
|
504
|
+
readonly common: {
|
|
505
|
+
readonly loading: "Loading...";
|
|
506
|
+
};
|
|
507
|
+
readonly languages: {
|
|
508
|
+
readonly de: "Deutsch";
|
|
509
|
+
readonly en: "English";
|
|
510
|
+
readonly es: "Español";
|
|
511
|
+
readonly fr: "Français";
|
|
512
|
+
readonly it: "Italiano";
|
|
513
|
+
readonly nl: "Nederlands";
|
|
514
|
+
};
|
|
515
|
+
readonly localeSwitcher: {
|
|
516
|
+
readonly ariaLabel: "Language selection";
|
|
517
|
+
readonly placeholder: "Select language...";
|
|
518
|
+
};
|
|
519
|
+
readonly pagination: {
|
|
520
|
+
readonly next: "Next";
|
|
521
|
+
readonly first: "First";
|
|
522
|
+
readonly last: "Last";
|
|
523
|
+
readonly page: "Page";
|
|
524
|
+
readonly previous: "Previous";
|
|
525
|
+
readonly pageInfo: "{{label}} {{current}} of {{total}}";
|
|
526
|
+
readonly rangeInfo: "{{start}}–{{end}} of {{total}}";
|
|
527
|
+
};
|
|
528
|
+
readonly calendar: {
|
|
529
|
+
readonly recurring: "Recurring event";
|
|
530
|
+
readonly previousMonth: "Previous month";
|
|
531
|
+
readonly nextMonth: "Next month";
|
|
532
|
+
readonly previousWeek: "Previous week";
|
|
533
|
+
readonly nextWeek: "Next week";
|
|
534
|
+
readonly previousDay: "Previous day";
|
|
535
|
+
readonly nextDay: "Next day";
|
|
536
|
+
readonly previousYear: "Previous year";
|
|
537
|
+
readonly nextYear: "Next year";
|
|
538
|
+
readonly today: "Today";
|
|
539
|
+
readonly calendarGrid: "Calendar";
|
|
540
|
+
readonly weekdays: "Weekdays";
|
|
541
|
+
readonly weekNumber: "Week number";
|
|
542
|
+
readonly events: "Events";
|
|
543
|
+
readonly noEvents: "No events";
|
|
544
|
+
readonly showMore: "{{count}} more";
|
|
545
|
+
readonly legend: "Legend";
|
|
546
|
+
readonly yearView: "Year overview";
|
|
547
|
+
readonly weekView: "Week view";
|
|
548
|
+
readonly viewMonth: "Month";
|
|
549
|
+
readonly viewYear: "Year";
|
|
550
|
+
readonly viewWeek: "Week";
|
|
551
|
+
readonly viewDay: "Day";
|
|
552
|
+
readonly multiDayLabel: "Day {{current}} of {{total}}";
|
|
553
|
+
readonly agendaView: "Agenda view";
|
|
554
|
+
readonly viewAgenda: "Agenda";
|
|
555
|
+
readonly viewSwitcher: "View mode";
|
|
556
|
+
};
|
|
557
|
+
readonly planner: {
|
|
558
|
+
readonly previousWeek: "Previous week";
|
|
559
|
+
readonly nextWeek: "Next week";
|
|
560
|
+
readonly previousMonth: "Previous month";
|
|
561
|
+
readonly nextMonth: "Next month";
|
|
562
|
+
readonly previousRange: "Previous range";
|
|
563
|
+
readonly nextRange: "Next range";
|
|
564
|
+
readonly today: "Today";
|
|
565
|
+
readonly grid: "Planner";
|
|
566
|
+
readonly itemCount: "{{count}} items";
|
|
567
|
+
};
|
|
568
|
+
readonly commandPalette: {
|
|
569
|
+
readonly noResults: "No results found.";
|
|
570
|
+
readonly search: "Search...";
|
|
571
|
+
readonly hints: {
|
|
572
|
+
readonly navigate: "Navigate";
|
|
573
|
+
readonly select: "Select";
|
|
574
|
+
readonly close: "Close";
|
|
575
|
+
};
|
|
576
|
+
};
|
|
577
|
+
readonly compositionBar: {
|
|
578
|
+
readonly total: "Total";
|
|
579
|
+
readonly summary: "Composition: {{total}} ({{count}} shares) — {{parts}}";
|
|
580
|
+
readonly share: "Share";
|
|
581
|
+
readonly value: "Value";
|
|
582
|
+
readonly percent: "Percent";
|
|
583
|
+
readonly remaining: "remaining";
|
|
584
|
+
};
|
|
585
|
+
readonly guide: {
|
|
586
|
+
readonly next: "Next";
|
|
587
|
+
readonly previous: "Back";
|
|
588
|
+
readonly skip: "Skip tour";
|
|
589
|
+
readonly done: "Done";
|
|
590
|
+
readonly step: "Step {{current}} of {{total}}";
|
|
591
|
+
readonly tour: "Guided tour";
|
|
592
|
+
readonly close: "Close";
|
|
593
|
+
readonly openHelp: "Help";
|
|
594
|
+
readonly backToList: "All topics";
|
|
595
|
+
readonly info: "More information";
|
|
596
|
+
readonly infoAbout: "More information about {{label}}";
|
|
597
|
+
readonly dismiss: "Dismiss hint";
|
|
598
|
+
readonly startTour: "Start the guided tour";
|
|
599
|
+
readonly actionRequired: "Complete the highlighted action to continue";
|
|
600
|
+
readonly filterPlaceholder: "Filter topics…";
|
|
601
|
+
readonly noResults: "No matching topics";
|
|
602
|
+
};
|
|
603
|
+
readonly journeyTimeline: {
|
|
604
|
+
readonly label: "Journey";
|
|
605
|
+
readonly status: {
|
|
606
|
+
readonly complete: "Completed";
|
|
607
|
+
readonly active: "In progress";
|
|
608
|
+
readonly pending: "Pending";
|
|
609
|
+
readonly attention: "Needs attention";
|
|
610
|
+
readonly blocked: "Blocked";
|
|
611
|
+
readonly skipped: "Skipped";
|
|
612
|
+
};
|
|
613
|
+
};
|
|
614
|
+
readonly datepicker: {
|
|
615
|
+
readonly placeholder: "Select a date...";
|
|
616
|
+
readonly rangePlaceholder: "Select a date range...";
|
|
617
|
+
readonly openCalendar: "Open calendar";
|
|
618
|
+
readonly invalidDate: "Invalid date";
|
|
619
|
+
readonly outOfRange: "Date is outside the allowed range";
|
|
620
|
+
readonly invalidRange: "Invalid date range";
|
|
621
|
+
};
|
|
622
|
+
readonly fileUpload: {
|
|
623
|
+
readonly exists: "File already added";
|
|
624
|
+
readonly invalidType: "File type {{type}} is not allowed";
|
|
625
|
+
readonly tooLarge: "File exceeds {{size}} limit";
|
|
626
|
+
readonly tooMany: "Maximum {{count}} files allowed";
|
|
627
|
+
readonly tooSmall: "File must be at least {{size}}";
|
|
628
|
+
};
|
|
629
|
+
readonly sankey: {
|
|
630
|
+
readonly summary: "Sankey diagram: {{nodes}} nodes, {{links}} links — {{flows}}";
|
|
631
|
+
readonly source: "Source";
|
|
632
|
+
readonly target: "Target";
|
|
633
|
+
readonly value: "Value";
|
|
634
|
+
};
|
|
635
|
+
readonly slider: {
|
|
636
|
+
readonly rangeStatus: {
|
|
637
|
+
readonly insideRecommended: "In recommended range";
|
|
638
|
+
readonly insideValid: "In valid range";
|
|
639
|
+
readonly insideValidOnly: "Outside recommended range, but valid";
|
|
640
|
+
readonly outsideValid: "Outside valid range";
|
|
641
|
+
};
|
|
642
|
+
};
|
|
643
|
+
readonly themeSwitcher: {
|
|
644
|
+
readonly lightMode: "Light mode";
|
|
645
|
+
readonly darkMode: "Dark mode";
|
|
646
|
+
readonly systemTheme: "System theme";
|
|
647
|
+
};
|
|
648
|
+
readonly chart: {
|
|
649
|
+
readonly category: "Category";
|
|
650
|
+
readonly series: "Series {{index}}";
|
|
651
|
+
readonly segment: "Segment";
|
|
652
|
+
readonly value: "Value";
|
|
653
|
+
readonly share: "Share";
|
|
654
|
+
};
|
|
655
|
+
readonly stepper: {
|
|
656
|
+
readonly optional: "Optional";
|
|
657
|
+
};
|
|
658
|
+
};
|
|
659
|
+
};
|
|
774
660
|
export { blocksTranslations };
|