@nice2dev/i18n 1.0.19 → 1.0.21

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as B } from "react/jsx-runtime";
2
- import { useMemo as w, useContext as N, createContext as I, useEffect as L, useState as P, useCallback as ee } from "react";
2
+ import { useMemo as b, useContext as N, createContext as I, useEffect as L, useState as P, useCallback as ee } from "react";
3
3
  const j = [
4
4
  "en",
5
5
  "pl",
@@ -40,7 +40,7 @@ const j = [
40
40
  // Filipino
41
41
  "ms"
42
42
  // Malay
43
- ], Ce = {
43
+ ], ye = {
44
44
  // ── Global / Generic ──
45
45
  ok: "OK",
46
46
  cancel: "Cancel",
@@ -120,6 +120,77 @@ const j = [
120
120
  "nav.notifications": "Notifications",
121
121
  "nav.profile": "Profile",
122
122
  "nav.logout": "Log out",
123
+ "nav.help": "Help",
124
+ "navShell.home.title": "Home",
125
+ "navShell.help.next": "Next",
126
+ "navShell.help.back": "Back",
127
+ "navShell.help.finish": "Finish",
128
+ "navShell.help.skip": "Skip",
129
+ "navShell.help.stepOf": "of",
130
+ "navShell.help.topNav.title": "Top navigation",
131
+ "navShell.help.topNav.body": "Use the top bar to switch workspaces, search, change theme or language, and open notifications.",
132
+ "navShell.help.sidebar.title": "Sidebar",
133
+ "navShell.help.sidebar.body": "Browse the available views grouped by section. Pick a view to open it in a new tab.",
134
+ "navShell.help.tabs.title": "Tabs",
135
+ "navShell.help.tabs.body": "Each open view lives in its own tab. Pin frequently used ones and right-click for more actions.",
136
+ "navShell.help.content.title": "Workspace",
137
+ "navShell.help.content.body": "The main area shows the active view. Switching tabs or sidebar entries swaps the content here.",
138
+ "navShell.home.subtitle": "Pick up where you left off.",
139
+ "navShell.home.empty": "Open a view from the sidebar or the tabs above to fill your workspace.",
140
+ "navShell.home.greeting.morning": "Good morning",
141
+ "navShell.home.greeting.afternoon": "Good afternoon",
142
+ "navShell.home.greeting.evening": "Good evening",
143
+ "navShell.home.greeting.night": "Hello",
144
+ "navShell.home.sections.openTabs": "Open now",
145
+ "navShell.home.sections.shortcuts": "Your shortcuts",
146
+ "navShell.home.sections.allViews": "All views",
147
+ // ── Sidebar context menu ──
148
+ "sidebar.menu.open": "Open",
149
+ "sidebar.menu.openNewTab": "Open in new tab",
150
+ "sidebar.menu.openBrowserTab": "Open in new browser tab",
151
+ "sidebar.menu.pinFavorite": "Add to favorites",
152
+ "sidebar.menu.unpinFavorite": "Remove from favorites",
153
+ "sidebar.menu.hide": "Hide",
154
+ "sidebar.menu.copyLink": "Copy link",
155
+ "sidebar.menu.pinSource": "Pin source",
156
+ "sidebar.menu.unpinSource": "Unpin source",
157
+ "sidebar.menu.hideSource": "Hide source",
158
+ // ── Sidebar preferences (categories + pages) ──
159
+ "sidebar.prefs.general": "General",
160
+ "sidebar.prefs.display": "Display",
161
+ "sidebar.prefs.order": "Order",
162
+ "sidebar.prefs.hidden": "Hidden items",
163
+ "sidebar.prefs.reset": "Reset",
164
+ "sidebar.prefs.general.title": "General",
165
+ "sidebar.prefs.general.desc": "Behavior of the sidebar tree and what a left click does.",
166
+ "sidebar.prefs.general.autoExpand": "Auto-expand all branches",
167
+ "sidebar.prefs.general.autoExpandHint": "When off, branches start collapsed and remember the last state per session.",
168
+ "sidebar.prefs.general.leftClickBehavior": "Left-click behavior",
169
+ "sidebar.prefs.general.focusExisting": "Focus the existing tab",
170
+ "sidebar.prefs.general.openNew": "Always open in a new tab",
171
+ "sidebar.prefs.general.leftClickHint": 'Right-click → "Open in new tab" is always available regardless of this setting.',
172
+ "sidebar.prefs.display.title": "Display",
173
+ "sidebar.prefs.display.desc": "Which modes appear in the strip and how deep the tree goes per mode.",
174
+ "sidebar.prefs.display.enableModeIcons": "Show mode switcher icons",
175
+ "sidebar.prefs.display.enabledModes": "Visible modes",
176
+ "sidebar.prefs.display.preferencesAlwaysOn": "Preferences is always shown.",
177
+ "sidebar.prefs.display.maxDepth": "Tree depth per mode",
178
+ "sidebar.prefs.order.title": "Order items",
179
+ "sidebar.prefs.order.desc": "Drag items to reorder how they appear in the selected mode.",
180
+ "sidebar.prefs.order.pickMode": "Mode",
181
+ "sidebar.prefs.order.visibilityHint": "Order applies to top-level items inside each source group. Collapse a source header to see only top-level entries when verifying the change.",
182
+ "sidebar.prefs.order.empty": "No reorderable items in this mode.",
183
+ "sidebar.prefs.order.resetMode": "Reset to default order",
184
+ "sidebar.prefs.hidden.title": "Hidden items",
185
+ "sidebar.prefs.hidden.desc": "Items you hid from the tree. Restore them to bring them back.",
186
+ "sidebar.prefs.hidden.empty": "Nothing hidden yet.",
187
+ "sidebar.prefs.hidden.restore": "Restore",
188
+ "sidebar.prefs.reset.title": "Reset",
189
+ "sidebar.prefs.reset.desc": "Clear every customisation and restore the original sidebar layout.",
190
+ "sidebar.prefs.reset.button": "Reset all preferences",
191
+ "sidebar.prefs.reset.confirm": "This will erase your favorites, hidden items, custom order, and all other sidebar preferences. This cannot be undone.",
192
+ "sidebar.prefs.reset.confirmYes": "Yes, reset everything",
193
+ "sidebar.prefs.reset.cancel": "Cancel",
123
194
  // ── Carousel ──
124
195
  "carousel.prev": "Previous slide",
125
196
  "carousel.next": "Next slide",
@@ -600,8 +671,121 @@ const j = [
600
671
  "noCode.codePreview.language": "Language",
601
672
  "noCode.codePreview.format": "Format Code",
602
673
  "noCode.codePreview.linesChanged": "Lines Changed",
603
- "noCode.codePreview.noChanges": "No Changes"
604
- }, ye = {
674
+ "noCode.codePreview.noChanges": "No Changes",
675
+ // ── Vector Editor ──
676
+ "vectorEditor.menu.file": "File",
677
+ "vectorEditor.menu.edit": "Edit",
678
+ "vectorEditor.menu.object": "Object",
679
+ "vectorEditor.menu.path": "Path",
680
+ "vectorEditor.menu.view": "View",
681
+ "vectorEditor.menu.newCanvas": "New canvas",
682
+ "vectorEditor.menu.openSvg": "Open SVG…",
683
+ "vectorEditor.menu.pasteSvg": "Paste SVG…",
684
+ "vectorEditor.menu.exportSvg": "Export SVG",
685
+ "vectorEditor.menu.exportPng": "Export PNG",
686
+ "vectorEditor.menu.exportJpg": "Export JPG",
687
+ "vectorEditor.menu.exportWebp": "Export WebP",
688
+ "vectorEditor.menu.exportBmp": "Export BMP",
689
+ "vectorEditor.menu.saveToLibrary": "📦 Save to Library",
690
+ "vectorEditor.menu.exportIconSnippet": "📋 Export Icon Snippet",
691
+ "vectorEditor.menu.exportIcon": "📋 Export Icon",
692
+ "vectorEditor.menu.undo": "Undo (Ctrl+Z)",
693
+ "vectorEditor.menu.redo": "Redo (Ctrl+Y)",
694
+ "vectorEditor.menu.copy": "Copy (Ctrl+C)",
695
+ "vectorEditor.menu.paste": "Paste (Ctrl+V)",
696
+ "vectorEditor.menu.duplicate": "Duplicate (Ctrl+D)",
697
+ "vectorEditor.menu.delete": "Delete (Del)",
698
+ "vectorEditor.menu.bringToFront": "Bring to Front",
699
+ "vectorEditor.menu.sendToBack": "Send to Back",
700
+ "vectorEditor.menu.flipH": "Flip Horizontal",
701
+ "vectorEditor.menu.flipV": "Flip Vertical",
702
+ "vectorEditor.menu.alignLeft": "Align Left",
703
+ "vectorEditor.menu.alignCenter": "Align Center",
704
+ "vectorEditor.menu.alignRight": "Align Right",
705
+ "vectorEditor.menu.union": "Union (∪)",
706
+ "vectorEditor.menu.subtract": "Subtract (−)",
707
+ "vectorEditor.menu.intersect": "Intersect (∩)",
708
+ "vectorEditor.menu.exclude": "Exclude (⊕)",
709
+ "vectorEditor.menu.outlineStroke": "Outline stroke",
710
+ "vectorEditor.menu.snapToGrid": "Snap to grid",
711
+ "vectorEditor.menu.snap": "Snap",
712
+ "vectorEditor.menu.secondShape": "2nd Shape",
713
+ "vectorEditor.tabs.properties": "Properties",
714
+ "vectorEditor.tabs.layers": "Layers",
715
+ "vectorEditor.tabs.library": "Library",
716
+ "vectorEditor.tabs.timeline": "Timeline",
717
+ "vectorEditor.timeline.preset": "Preset",
718
+ "vectorEditor.timeline.duration": "Duration (ms)",
719
+ "vectorEditor.timeline.repeat": "Repeat",
720
+ "vectorEditor.timeline.direction": "Direction",
721
+ "vectorEditor.timeline.remove": "Remove animation",
722
+ "vectorEditor.timeline.play": "Play",
723
+ "vectorEditor.timeline.pause": "Pause",
724
+ "vectorEditor.timeline.stop": "Stop",
725
+ "vectorEditor.timeline.copyCss": "Copy CSS",
726
+ "vectorEditor.timeline.keyframes": "Keyframes",
727
+ "vectorEditor.timeline.addKeyframe": "+ Add keyframe",
728
+ "vectorEditor.timeline.noSelection": "Select a shape to animate.",
729
+ "vectorEditor.timeline.animationTitle": "Animation",
730
+ "vectorEditor.timeline.playbackTitle": "Playback",
731
+ "vectorEditor.timeline.attachHint": "Select a shape to attach an animation.",
732
+ "vectorEditor.timeline.playLabel": "▶ Play",
733
+ "vectorEditor.timeline.pauseLabel": "⏸ Pause",
734
+ "vectorEditor.timeline.stopLabel": "⏹ Stop",
735
+ "vectorEditor.timeline.copyCssKeyframes": "📋 Copy CSS keyframes",
736
+ "vectorEditor.timeline.tLabel": "t",
737
+ "vectorEditor.layers.empty": "No layers yet. Use the tools to draw, or insert from the Library tab.",
738
+ "vectorEditor.layers.moveUp": "Move up",
739
+ "vectorEditor.layers.moveDown": "Move down",
740
+ "vectorEditor.library.passProp": "Pass a library prop to NiceVectorEditor to populate this tab with insertable icons.",
741
+ "vectorEditor.statusBar.zoom": "Zoom",
742
+ "vectorEditor.statusBar.shapes": "shape(s)",
743
+ "vectorEditor.statusBar.selected": "Selected",
744
+ "vectorEditor.statusBar.snap": "Snap",
745
+ "vectorEditor.library.empty": "No icons in library.",
746
+ "vectorEditor.snippet.title": "✅ Icon snippet copied to clipboard",
747
+ "vectorEditor.snippet.pasteHint": "Paste into",
748
+ "vectorEditor.snippet.copyAgain": "Copy again",
749
+ "vectorEditor.snippet.close": "Close",
750
+ "vectorEditor.properties.appearance": "Appearance",
751
+ "vectorEditor.properties.fill": "Fill",
752
+ "vectorEditor.properties.solid": "Solid",
753
+ "vectorEditor.properties.gradient": "Gradient",
754
+ "vectorEditor.properties.hideEditor": "▼ Hide Editor",
755
+ "vectorEditor.properties.editGradient": "► Edit Gradient",
756
+ "vectorEditor.properties.type": "Type",
757
+ "vectorEditor.properties.linear": "Linear",
758
+ "vectorEditor.properties.radial": "Radial",
759
+ "vectorEditor.properties.angle": "Angle",
760
+ "vectorEditor.properties.cx": "CX",
761
+ "vectorEditor.properties.cy": "CY",
762
+ "vectorEditor.properties.r": "R",
763
+ "vectorEditor.properties.colorStops": "Color Stops:",
764
+ "vectorEditor.properties.addStop": "+ Add Stop",
765
+ "vectorEditor.properties.removeStop": "- Remove",
766
+ "vectorEditor.properties.stroke": "Stroke",
767
+ "vectorEditor.properties.width": "Width",
768
+ "vectorEditor.properties.opacity": "Opacity",
769
+ "vectorEditor.properties.rotation": "Rotation",
770
+ "vectorEditor.properties.toolOptions": "Tool Options",
771
+ "vectorEditor.properties.radius": "Radius",
772
+ "vectorEditor.properties.sides": "Sides",
773
+ "vectorEditor.properties.points": "Points",
774
+ "vectorEditor.properties.innerR": "Inner R",
775
+ "vectorEditor.properties.size": "Size",
776
+ "vectorEditor.properties.font": "Font",
777
+ "vectorEditor.properties.grid": "Grid",
778
+ "vectorEditor.properties.transform": "Transform",
779
+ "vectorEditor.properties.x": "X",
780
+ "vectorEditor.properties.y": "Y",
781
+ "vectorEditor.properties.w": "W",
782
+ "vectorEditor.properties.h": "H",
783
+ "vectorEditor.layers.title": "Layers",
784
+ "vectorEditor.layers.show": "Show",
785
+ "vectorEditor.layers.hide": "Hide",
786
+ "vectorEditor.layers.lock": "Lock",
787
+ "vectorEditor.layers.unlock": "Unlock"
788
+ }, Ee = {
605
789
  ok: "OK",
606
790
  cancel: "Anuluj",
607
791
  save: "Zapisz",
@@ -679,6 +863,77 @@ const j = [
679
863
  "nav.notifications": "Powiadomienia",
680
864
  "nav.profile": "Profil",
681
865
  "nav.logout": "Wyloguj się",
866
+ "nav.help": "Pomoc",
867
+ "navShell.home.title": "Pulpit",
868
+ "navShell.help.next": "Dalej",
869
+ "navShell.help.back": "Wstecz",
870
+ "navShell.help.finish": "Zakończ",
871
+ "navShell.help.skip": "Pomiń",
872
+ "navShell.help.stepOf": "z",
873
+ "navShell.help.topNav.title": "Górny pasek",
874
+ "navShell.help.topNav.body": "Z górnego paska zmienisz workspace, wyszukasz treści, zmienisz motyw lub język i sprawdzisz powiadomienia.",
875
+ "navShell.help.sidebar.title": "Panel boczny",
876
+ "navShell.help.sidebar.body": "Przeglądaj dostępne widoki pogrupowane w sekcje. Wybierz widok, aby otworzyć go w nowej karcie.",
877
+ "navShell.help.tabs.title": "Karty",
878
+ "navShell.help.tabs.body": "Każdy otwarty widok ma własną kartę. Przypnij te najczęściej używane, a prawym przyciskiem otworzysz dodatkowe akcje.",
879
+ "navShell.help.content.title": "Obszar roboczy",
880
+ "navShell.help.content.body": "Tutaj wyświetla się aktywny widok. Zmiana karty lub pozycji w panelu bocznym podmienia zawartość w tym miejscu.",
881
+ "navShell.home.subtitle": "Wróć tam, gdzie skończyłeś.",
882
+ "navShell.home.empty": "Otwórz widok z panelu bocznego lub kart powyżej, aby wypełnić obszar roboczy.",
883
+ "navShell.home.greeting.morning": "Dzień dobry",
884
+ "navShell.home.greeting.afternoon": "Miłego popołudnia",
885
+ "navShell.home.greeting.evening": "Dobry wieczór",
886
+ "navShell.home.greeting.night": "Witaj",
887
+ "navShell.home.sections.openTabs": "Otwarte teraz",
888
+ "navShell.home.sections.shortcuts": "Twoje skróty",
889
+ "navShell.home.sections.allViews": "Wszystkie widoki",
890
+ // ── Sidebar context menu ──
891
+ "sidebar.menu.open": "Otwórz",
892
+ "sidebar.menu.openNewTab": "Otwórz w nowej karcie",
893
+ "sidebar.menu.openBrowserTab": "Otwórz w nowej karcie przeglądarki",
894
+ "sidebar.menu.pinFavorite": "Dodaj do ulubionych",
895
+ "sidebar.menu.unpinFavorite": "Usuń z ulubionych",
896
+ "sidebar.menu.hide": "Ukryj",
897
+ "sidebar.menu.copyLink": "Kopiuj link",
898
+ "sidebar.menu.pinSource": "Przypnij źródło",
899
+ "sidebar.menu.unpinSource": "Odepnij źródło",
900
+ "sidebar.menu.hideSource": "Ukryj źródło",
901
+ // ── Sidebar preferences (categories + pages) ──
902
+ "sidebar.prefs.general": "Ogólne",
903
+ "sidebar.prefs.display": "Wygląd",
904
+ "sidebar.prefs.order": "Kolejność",
905
+ "sidebar.prefs.hidden": "Ukryte elementy",
906
+ "sidebar.prefs.reset": "Reset",
907
+ "sidebar.prefs.general.title": "Ogólne",
908
+ "sidebar.prefs.general.desc": "Zachowanie drzewa nawigacji i to, co robi lewy klik.",
909
+ "sidebar.prefs.general.autoExpand": "Rozwijaj wszystkie gałęzie",
910
+ "sidebar.prefs.general.autoExpandHint": "Po wyłączeniu gałęzie startują zwinięte i zapamiętują ostatni stan sesji.",
911
+ "sidebar.prefs.general.leftClickBehavior": "Zachowanie lewego kliku",
912
+ "sidebar.prefs.general.focusExisting": "Aktywuj istniejącą kartę",
913
+ "sidebar.prefs.general.openNew": "Zawsze otwórz w nowej karcie",
914
+ "sidebar.prefs.general.leftClickHint": 'Prawy klik → „Otwórz w nowej karcie" jest zawsze dostępny, niezależnie od tego ustawienia.',
915
+ "sidebar.prefs.display.title": "Wygląd",
916
+ "sidebar.prefs.display.desc": "Które tryby pokazują się w pasku i jak głębokie ma być drzewo w każdym trybie.",
917
+ "sidebar.prefs.display.enableModeIcons": "Pokaż ikony przełącznika trybów",
918
+ "sidebar.prefs.display.enabledModes": "Widoczne tryby",
919
+ "sidebar.prefs.display.preferencesAlwaysOn": "Preferencje są zawsze widoczne.",
920
+ "sidebar.prefs.display.maxDepth": "Głębokość drzewa per tryb",
921
+ "sidebar.prefs.order.title": "Kolejność elementów",
922
+ "sidebar.prefs.order.desc": "Przeciągnij pozycje, żeby zmienić ich kolejność w wybranym trybie.",
923
+ "sidebar.prefs.order.pickMode": "Tryb",
924
+ "sidebar.prefs.order.visibilityHint": "Kolejność dotyczy elementów top-level wewnątrz każdej grupy źródła. Zwiń nagłówek źródła, aby zobaczyć tylko elementy top-level i sprawdzić efekt zmiany.",
925
+ "sidebar.prefs.order.empty": "Brak elementów do uporządkowania w tym trybie.",
926
+ "sidebar.prefs.order.resetMode": "Przywróć domyślną kolejność",
927
+ "sidebar.prefs.hidden.title": "Ukryte elementy",
928
+ "sidebar.prefs.hidden.desc": "Elementy, które ukryłeś z drzewa. Przywróć, żeby wróciły.",
929
+ "sidebar.prefs.hidden.empty": "Nic jeszcze nie zostało ukryte.",
930
+ "sidebar.prefs.hidden.restore": "Przywróć",
931
+ "sidebar.prefs.reset.title": "Reset",
932
+ "sidebar.prefs.reset.desc": "Wyczyść wszystkie ustawienia i przywróć oryginalny układ panelu bocznego.",
933
+ "sidebar.prefs.reset.button": "Zresetuj wszystkie preferencje",
934
+ "sidebar.prefs.reset.confirm": "To usunie ulubione, ukryte elementy, własną kolejność i wszystkie inne preferencje panelu bocznego. Tej operacji nie da się cofnąć.",
935
+ "sidebar.prefs.reset.confirmYes": "Tak, resetuj wszystko",
936
+ "sidebar.prefs.reset.cancel": "Anuluj",
682
937
  "carousel.prev": "Poprzedni slajd",
683
938
  "carousel.next": "Następny slajd",
684
939
  "carousel.slide": "Slajd",
@@ -1122,8 +1377,121 @@ const j = [
1122
1377
  "noCode.codePreview.language": "Język",
1123
1378
  "noCode.codePreview.format": "Formatuj kod",
1124
1379
  "noCode.codePreview.linesChanged": "Zmienione linie",
1125
- "noCode.codePreview.noChanges": "Brak zmian"
1126
- }, Ee = {
1380
+ "noCode.codePreview.noChanges": "Brak zmian",
1381
+ // ── Edytor wektorowy ──
1382
+ "vectorEditor.menu.file": "Plik",
1383
+ "vectorEditor.menu.edit": "Edycja",
1384
+ "vectorEditor.menu.object": "Obiekt",
1385
+ "vectorEditor.menu.path": "Ścieżka",
1386
+ "vectorEditor.menu.view": "Widok",
1387
+ "vectorEditor.menu.newCanvas": "Nowy obszar",
1388
+ "vectorEditor.menu.openSvg": "Otwórz SVG…",
1389
+ "vectorEditor.menu.pasteSvg": "Wklej SVG…",
1390
+ "vectorEditor.menu.exportSvg": "Eksportuj SVG",
1391
+ "vectorEditor.menu.exportPng": "Eksportuj PNG",
1392
+ "vectorEditor.menu.exportJpg": "Eksportuj JPG",
1393
+ "vectorEditor.menu.exportWebp": "Eksportuj WebP",
1394
+ "vectorEditor.menu.exportBmp": "Eksportuj BMP",
1395
+ "vectorEditor.menu.saveToLibrary": "📦 Zapisz do biblioteki",
1396
+ "vectorEditor.menu.exportIconSnippet": "📋 Eksportuj snippet ikony",
1397
+ "vectorEditor.menu.exportIcon": "📋 Eksportuj ikonę",
1398
+ "vectorEditor.menu.undo": "Cofnij (Ctrl+Z)",
1399
+ "vectorEditor.menu.redo": "Ponów (Ctrl+Y)",
1400
+ "vectorEditor.menu.copy": "Kopiuj (Ctrl+C)",
1401
+ "vectorEditor.menu.paste": "Wklej (Ctrl+V)",
1402
+ "vectorEditor.menu.duplicate": "Duplikuj (Ctrl+D)",
1403
+ "vectorEditor.menu.delete": "Usuń (Del)",
1404
+ "vectorEditor.menu.bringToFront": "Przenieś na wierzch",
1405
+ "vectorEditor.menu.sendToBack": "Przenieś na spód",
1406
+ "vectorEditor.menu.flipH": "Odbij poziomo",
1407
+ "vectorEditor.menu.flipV": "Odbij pionowo",
1408
+ "vectorEditor.menu.alignLeft": "Wyrównaj do lewej",
1409
+ "vectorEditor.menu.alignCenter": "Wyrównaj do środka",
1410
+ "vectorEditor.menu.alignRight": "Wyrównaj do prawej",
1411
+ "vectorEditor.menu.union": "Suma (∪)",
1412
+ "vectorEditor.menu.subtract": "Różnica (−)",
1413
+ "vectorEditor.menu.intersect": "Część wspólna (∩)",
1414
+ "vectorEditor.menu.exclude": "Wykluczenie (⊕)",
1415
+ "vectorEditor.menu.outlineStroke": "Zamień obrys na kształt",
1416
+ "vectorEditor.menu.snapToGrid": "Przyciągaj do siatki",
1417
+ "vectorEditor.menu.snap": "Siatka",
1418
+ "vectorEditor.menu.secondShape": "2-gi kształt",
1419
+ "vectorEditor.tabs.properties": "Właściwości",
1420
+ "vectorEditor.tabs.layers": "Warstwy",
1421
+ "vectorEditor.tabs.library": "Biblioteka",
1422
+ "vectorEditor.tabs.timeline": "Oś czasu",
1423
+ "vectorEditor.timeline.preset": "Preset",
1424
+ "vectorEditor.timeline.duration": "Czas (ms)",
1425
+ "vectorEditor.timeline.repeat": "Powtórzenia",
1426
+ "vectorEditor.timeline.direction": "Kierunek",
1427
+ "vectorEditor.timeline.remove": "Usuń animację",
1428
+ "vectorEditor.timeline.play": "Odtwórz",
1429
+ "vectorEditor.timeline.pause": "Pauza",
1430
+ "vectorEditor.timeline.stop": "Stop",
1431
+ "vectorEditor.timeline.copyCss": "Kopiuj CSS",
1432
+ "vectorEditor.timeline.keyframes": "Klatki kluczowe",
1433
+ "vectorEditor.timeline.addKeyframe": "+ Dodaj klatkę",
1434
+ "vectorEditor.timeline.noSelection": "Zaznacz kształt, aby animować.",
1435
+ "vectorEditor.timeline.animationTitle": "Animacja",
1436
+ "vectorEditor.timeline.playbackTitle": "Odtwarzanie",
1437
+ "vectorEditor.timeline.attachHint": "Zaznacz kształt, aby dodać animację.",
1438
+ "vectorEditor.timeline.playLabel": "▶ Odtwórz",
1439
+ "vectorEditor.timeline.pauseLabel": "⏸ Pauza",
1440
+ "vectorEditor.timeline.stopLabel": "⏹ Stop",
1441
+ "vectorEditor.timeline.copyCssKeyframes": "📋 Kopiuj CSS keyframes",
1442
+ "vectorEditor.timeline.tLabel": "t",
1443
+ "vectorEditor.layers.empty": "Brak warstw. Użyj narzędzi albo wstaw z zakładki Biblioteka.",
1444
+ "vectorEditor.layers.moveUp": "Przenieś w górę",
1445
+ "vectorEditor.layers.moveDown": "Przenieś w dół",
1446
+ "vectorEditor.library.passProp": "Przekaż prop library do NiceVectorEditor, aby wypełnić tę zakładkę ikonami do wstawienia.",
1447
+ "vectorEditor.statusBar.zoom": "Zoom",
1448
+ "vectorEditor.statusBar.shapes": "kształt(y)",
1449
+ "vectorEditor.statusBar.selected": "Zaznaczony",
1450
+ "vectorEditor.statusBar.snap": "Siatka",
1451
+ "vectorEditor.library.empty": "Brak ikon w bibliotece.",
1452
+ "vectorEditor.snippet.title": "✅ Snippet ikony skopiowany do schowka",
1453
+ "vectorEditor.snippet.pasteHint": "Wklej do",
1454
+ "vectorEditor.snippet.copyAgain": "Skopiuj ponownie",
1455
+ "vectorEditor.snippet.close": "Zamknij",
1456
+ "vectorEditor.properties.appearance": "Wygląd",
1457
+ "vectorEditor.properties.fill": "Wypełnienie",
1458
+ "vectorEditor.properties.solid": "Jednolite",
1459
+ "vectorEditor.properties.gradient": "Gradient",
1460
+ "vectorEditor.properties.hideEditor": "▼ Ukryj edytor",
1461
+ "vectorEditor.properties.editGradient": "► Edytuj gradient",
1462
+ "vectorEditor.properties.type": "Typ",
1463
+ "vectorEditor.properties.linear": "Liniowy",
1464
+ "vectorEditor.properties.radial": "Promienisty",
1465
+ "vectorEditor.properties.angle": "Kąt",
1466
+ "vectorEditor.properties.cx": "CX",
1467
+ "vectorEditor.properties.cy": "CY",
1468
+ "vectorEditor.properties.r": "R",
1469
+ "vectorEditor.properties.colorStops": "Punkty koloru:",
1470
+ "vectorEditor.properties.addStop": "+ Dodaj punkt",
1471
+ "vectorEditor.properties.removeStop": "- Usuń",
1472
+ "vectorEditor.properties.stroke": "Obrys",
1473
+ "vectorEditor.properties.width": "Szerokość",
1474
+ "vectorEditor.properties.opacity": "Przezroczystość",
1475
+ "vectorEditor.properties.rotation": "Obrót",
1476
+ "vectorEditor.properties.toolOptions": "Opcje narzędzia",
1477
+ "vectorEditor.properties.radius": "Promień",
1478
+ "vectorEditor.properties.sides": "Boki",
1479
+ "vectorEditor.properties.points": "Wierzchołki",
1480
+ "vectorEditor.properties.innerR": "Promień wewn.",
1481
+ "vectorEditor.properties.size": "Rozmiar",
1482
+ "vectorEditor.properties.font": "Czcionka",
1483
+ "vectorEditor.properties.grid": "Siatka",
1484
+ "vectorEditor.properties.transform": "Transformacja",
1485
+ "vectorEditor.properties.x": "X",
1486
+ "vectorEditor.properties.y": "Y",
1487
+ "vectorEditor.properties.w": "W",
1488
+ "vectorEditor.properties.h": "H",
1489
+ "vectorEditor.layers.title": "Warstwy",
1490
+ "vectorEditor.layers.show": "Pokaż",
1491
+ "vectorEditor.layers.hide": "Ukryj",
1492
+ "vectorEditor.layers.lock": "Zablokuj",
1493
+ "vectorEditor.layers.unlock": "Odblokuj"
1494
+ }, Ce = {
1127
1495
  ok: "OK",
1128
1496
  cancel: "Abbrechen",
1129
1497
  save: "Speichern",
@@ -1644,7 +2012,188 @@ const j = [
1644
2012
  "noCode.codePreview.language": "Sprache",
1645
2013
  "noCode.codePreview.format": "Code formatieren",
1646
2014
  "noCode.codePreview.linesChanged": "Geänderte Zeilen",
1647
- "noCode.codePreview.noChanges": "Keine Änderungen"
2015
+ "noCode.codePreview.noChanges": "Keine Änderungen",
2016
+ // ── Navigation / Help / Home / Sidebar / Vector Editor (P2.5 backfill) ──
2017
+ "nav.help": "Hilfe",
2018
+ "navShell.home.title": "Start",
2019
+ "navShell.help.next": "Weiter",
2020
+ "navShell.help.back": "Zurück",
2021
+ "navShell.help.finish": "Fertig",
2022
+ "navShell.help.skip": "Überspringen",
2023
+ "navShell.help.stepOf": "von",
2024
+ "navShell.help.topNav.title": "Obere Navigation",
2025
+ "navShell.help.topNav.body": "Über die obere Leiste wechseln Sie Arbeitsbereiche, suchen, ändern Theme oder Sprache und öffnen Benachrichtigungen.",
2026
+ "navShell.help.sidebar.title": "Seitenleiste",
2027
+ "navShell.help.sidebar.body": "Durchsuchen Sie verfügbare Ansichten gruppiert nach Bereich. Wählen Sie eine Ansicht, um sie in einem neuen Tab zu öffnen.",
2028
+ "navShell.help.tabs.title": "Tabs",
2029
+ "navShell.help.tabs.body": "Jede geöffnete Ansicht lebt in einem eigenen Tab. Häufig genutzte anheften und mit Rechtsklick weitere Aktionen aufrufen.",
2030
+ "navShell.help.content.title": "Arbeitsbereich",
2031
+ "navShell.help.content.body": "Im Hauptbereich wird die aktive Ansicht angezeigt. Wechsel von Tabs oder Seitenleisten-Einträgen tauscht den Inhalt hier.",
2032
+ "navShell.home.subtitle": "Machen Sie dort weiter, wo Sie aufgehört haben.",
2033
+ "navShell.home.empty": "Öffnen Sie eine Ansicht aus der Seitenleiste oder den Tabs oben, um Ihren Arbeitsbereich zu füllen.",
2034
+ "navShell.home.greeting.morning": "Guten Morgen",
2035
+ "navShell.home.greeting.afternoon": "Guten Tag",
2036
+ "navShell.home.greeting.evening": "Guten Abend",
2037
+ "navShell.home.greeting.night": "Hallo",
2038
+ "navShell.home.sections.openTabs": "Jetzt geöffnet",
2039
+ "navShell.home.sections.shortcuts": "Ihre Verknüpfungen",
2040
+ "navShell.home.sections.allViews": "Alle Ansichten",
2041
+ "sidebar.menu.open": "Öffnen",
2042
+ "sidebar.menu.openNewTab": "In neuem Tab öffnen",
2043
+ "sidebar.menu.openBrowserTab": "In neuem Browser-Tab öffnen",
2044
+ "sidebar.menu.pinFavorite": "Zu Favoriten hinzufügen",
2045
+ "sidebar.menu.unpinFavorite": "Aus Favoriten entfernen",
2046
+ "sidebar.menu.hide": "Ausblenden",
2047
+ "sidebar.menu.copyLink": "Link kopieren",
2048
+ "sidebar.menu.pinSource": "Quelle anheften",
2049
+ "sidebar.menu.unpinSource": "Quelle lösen",
2050
+ "sidebar.menu.hideSource": "Quelle ausblenden",
2051
+ "sidebar.prefs.general": "Allgemein",
2052
+ "sidebar.prefs.display": "Anzeige",
2053
+ "sidebar.prefs.order": "Reihenfolge",
2054
+ "sidebar.prefs.hidden": "Ausgeblendete Elemente",
2055
+ "sidebar.prefs.reset": "Zurücksetzen",
2056
+ "sidebar.prefs.general.title": "Allgemein",
2057
+ "sidebar.prefs.general.desc": "Verhalten des Seitenleisten-Baums und Aktion bei Linksklick.",
2058
+ "sidebar.prefs.general.autoExpand": "Alle Zweige automatisch erweitern",
2059
+ "sidebar.prefs.general.autoExpandHint": "Wenn deaktiviert, starten Zweige eingeklappt und merken sich den letzten Zustand pro Sitzung.",
2060
+ "sidebar.prefs.general.leftClickBehavior": "Verhalten beim Linksklick",
2061
+ "sidebar.prefs.general.focusExisting": "Vorhandenen Tab fokussieren",
2062
+ "sidebar.prefs.general.openNew": "Immer in neuem Tab öffnen",
2063
+ "sidebar.prefs.general.leftClickHint": "Rechtsklick → „In neuem Tab öffnen“ ist unabhängig von dieser Einstellung immer verfügbar.",
2064
+ "sidebar.prefs.display.title": "Anzeige",
2065
+ "sidebar.prefs.display.desc": "Welche Modi in der Leiste erscheinen und wie tief der Baum pro Modus reicht.",
2066
+ "sidebar.prefs.display.enableModeIcons": "Modus-Umschalter-Symbole anzeigen",
2067
+ "sidebar.prefs.display.enabledModes": "Sichtbare Modi",
2068
+ "sidebar.prefs.display.preferencesAlwaysOn": "Einstellungen werden immer angezeigt.",
2069
+ "sidebar.prefs.display.maxDepth": "Baumtiefe pro Modus",
2070
+ "sidebar.prefs.order.title": "Elemente sortieren",
2071
+ "sidebar.prefs.order.desc": "Ziehen Sie Elemente, um deren Reihenfolge im gewählten Modus zu ändern.",
2072
+ "sidebar.prefs.order.pickMode": "Modus",
2073
+ "sidebar.prefs.order.empty": "Keine sortierbaren Elemente in diesem Modus.",
2074
+ "sidebar.prefs.order.resetMode": "Auf Standardreihenfolge zurücksetzen",
2075
+ "sidebar.prefs.hidden.title": "Ausgeblendete Elemente",
2076
+ "sidebar.prefs.hidden.desc": "Aus dem Baum ausgeblendete Elemente. Stellen Sie sie wieder her, um sie zurückzubringen.",
2077
+ "sidebar.prefs.hidden.empty": "Nichts ausgeblendet.",
2078
+ "sidebar.prefs.hidden.restore": "Wiederherstellen",
2079
+ "sidebar.prefs.reset.title": "Zurücksetzen",
2080
+ "sidebar.prefs.reset.desc": "Alle Anpassungen löschen und das ursprüngliche Seitenleisten-Layout wiederherstellen.",
2081
+ "sidebar.prefs.reset.button": "Alle Einstellungen zurücksetzen",
2082
+ "sidebar.prefs.reset.confirm": "Dies löscht Ihre Favoriten, ausgeblendete Elemente, eigene Reihenfolge und alle weiteren Seitenleisten-Einstellungen. Dieser Vorgang kann nicht rückgängig gemacht werden.",
2083
+ "sidebar.prefs.reset.confirmYes": "Ja, alles zurücksetzen",
2084
+ "sidebar.prefs.reset.cancel": "Abbrechen",
2085
+ "vectorEditor.menu.file": "Datei",
2086
+ "vectorEditor.menu.edit": "Bearbeiten",
2087
+ "vectorEditor.menu.object": "Objekt",
2088
+ "vectorEditor.menu.path": "Pfad",
2089
+ "vectorEditor.menu.view": "Ansicht",
2090
+ "vectorEditor.menu.newCanvas": "Neue Leinwand",
2091
+ "vectorEditor.menu.openSvg": "SVG öffnen…",
2092
+ "vectorEditor.menu.pasteSvg": "SVG einfügen…",
2093
+ "vectorEditor.menu.exportSvg": "SVG exportieren",
2094
+ "vectorEditor.menu.exportPng": "PNG exportieren",
2095
+ "vectorEditor.menu.exportJpg": "JPG exportieren",
2096
+ "vectorEditor.menu.exportWebp": "WebP exportieren",
2097
+ "vectorEditor.menu.exportBmp": "BMP exportieren",
2098
+ "vectorEditor.menu.saveToLibrary": "📦 In Bibliothek speichern",
2099
+ "vectorEditor.menu.exportIconSnippet": "📋 Icon-Snippet exportieren",
2100
+ "vectorEditor.menu.exportIcon": "📋 Icon exportieren",
2101
+ "vectorEditor.menu.undo": "Rückgängig (Strg+Z)",
2102
+ "vectorEditor.menu.redo": "Wiederherstellen (Strg+Y)",
2103
+ "vectorEditor.menu.copy": "Kopieren (Strg+C)",
2104
+ "vectorEditor.menu.paste": "Einfügen (Strg+V)",
2105
+ "vectorEditor.menu.duplicate": "Duplizieren (Strg+D)",
2106
+ "vectorEditor.menu.delete": "Löschen (Entf)",
2107
+ "vectorEditor.menu.bringToFront": "In den Vordergrund",
2108
+ "vectorEditor.menu.sendToBack": "In den Hintergrund",
2109
+ "vectorEditor.menu.flipH": "Horizontal spiegeln",
2110
+ "vectorEditor.menu.flipV": "Vertikal spiegeln",
2111
+ "vectorEditor.menu.alignLeft": "Links ausrichten",
2112
+ "vectorEditor.menu.alignCenter": "Zentriert ausrichten",
2113
+ "vectorEditor.menu.alignRight": "Rechts ausrichten",
2114
+ "vectorEditor.menu.union": "Vereinigung (∪)",
2115
+ "vectorEditor.menu.subtract": "Subtraktion (−)",
2116
+ "vectorEditor.menu.intersect": "Schnittmenge (∩)",
2117
+ "vectorEditor.menu.exclude": "Ausschluss (⊕)",
2118
+ "vectorEditor.menu.outlineStroke": "Kontur in Pfad umwandeln",
2119
+ "vectorEditor.menu.snapToGrid": "Am Raster ausrichten",
2120
+ "vectorEditor.menu.snap": "Raster",
2121
+ "vectorEditor.menu.secondShape": "2. Form",
2122
+ "vectorEditor.tabs.properties": "Eigenschaften",
2123
+ "vectorEditor.tabs.layers": "Ebenen",
2124
+ "vectorEditor.tabs.library": "Bibliothek",
2125
+ "vectorEditor.tabs.timeline": "Zeitleiste",
2126
+ "vectorEditor.timeline.preset": "Vorlage",
2127
+ "vectorEditor.timeline.duration": "Dauer (ms)",
2128
+ "vectorEditor.timeline.repeat": "Wiederholen",
2129
+ "vectorEditor.timeline.direction": "Richtung",
2130
+ "vectorEditor.timeline.remove": "Animation entfernen",
2131
+ "vectorEditor.timeline.play": "Abspielen",
2132
+ "vectorEditor.timeline.pause": "Pause",
2133
+ "vectorEditor.timeline.stop": "Stopp",
2134
+ "vectorEditor.timeline.copyCss": "CSS kopieren",
2135
+ "vectorEditor.timeline.keyframes": "Keyframes",
2136
+ "vectorEditor.timeline.addKeyframe": "+ Keyframe hinzufügen",
2137
+ "vectorEditor.timeline.noSelection": "Form auswählen, um sie zu animieren.",
2138
+ "vectorEditor.timeline.animationTitle": "Animation",
2139
+ "vectorEditor.timeline.playbackTitle": "Wiedergabe",
2140
+ "vectorEditor.timeline.attachHint": "Form auswählen, um eine Animation hinzuzufügen.",
2141
+ "vectorEditor.timeline.playLabel": "▶ Abspielen",
2142
+ "vectorEditor.timeline.pauseLabel": "⏸ Pause",
2143
+ "vectorEditor.timeline.stopLabel": "⏹ Stopp",
2144
+ "vectorEditor.timeline.copyCssKeyframes": "📋 CSS-Keyframes kopieren",
2145
+ "vectorEditor.timeline.tLabel": "t",
2146
+ "vectorEditor.layers.empty": "Noch keine Ebenen. Verwenden Sie die Werkzeuge zum Zeichnen oder fügen Sie aus der Bibliothek ein.",
2147
+ "vectorEditor.layers.moveUp": "Nach oben",
2148
+ "vectorEditor.layers.moveDown": "Nach unten",
2149
+ "vectorEditor.library.passProp": "Übergeben Sie eine library-Property an NiceVectorEditor, um diesen Tab mit einfügbaren Icons zu füllen.",
2150
+ "vectorEditor.statusBar.zoom": "Zoom",
2151
+ "vectorEditor.statusBar.shapes": "Form(en)",
2152
+ "vectorEditor.statusBar.selected": "Ausgewählt",
2153
+ "vectorEditor.statusBar.snap": "Raster",
2154
+ "vectorEditor.library.empty": "Keine Icons in der Bibliothek.",
2155
+ "vectorEditor.snippet.title": "✅ Icon-Snippet in die Zwischenablage kopiert",
2156
+ "vectorEditor.snippet.pasteHint": "Einfügen in",
2157
+ "vectorEditor.snippet.copyAgain": "Erneut kopieren",
2158
+ "vectorEditor.snippet.close": "Schließen",
2159
+ "vectorEditor.properties.appearance": "Erscheinungsbild",
2160
+ "vectorEditor.properties.fill": "Füllung",
2161
+ "vectorEditor.properties.solid": "Einfarbig",
2162
+ "vectorEditor.properties.gradient": "Verlauf",
2163
+ "vectorEditor.properties.hideEditor": "▼ Editor ausblenden",
2164
+ "vectorEditor.properties.editGradient": "► Verlauf bearbeiten",
2165
+ "vectorEditor.properties.type": "Typ",
2166
+ "vectorEditor.properties.linear": "Linear",
2167
+ "vectorEditor.properties.radial": "Radial",
2168
+ "vectorEditor.properties.angle": "Winkel",
2169
+ "vectorEditor.properties.cx": "CX",
2170
+ "vectorEditor.properties.cy": "CY",
2171
+ "vectorEditor.properties.r": "R",
2172
+ "vectorEditor.properties.colorStops": "Farbstopps:",
2173
+ "vectorEditor.properties.addStop": "+ Stopp hinzufügen",
2174
+ "vectorEditor.properties.removeStop": "- Entfernen",
2175
+ "vectorEditor.properties.stroke": "Kontur",
2176
+ "vectorEditor.properties.width": "Breite",
2177
+ "vectorEditor.properties.opacity": "Deckkraft",
2178
+ "vectorEditor.properties.rotation": "Drehung",
2179
+ "vectorEditor.properties.toolOptions": "Werkzeug-Optionen",
2180
+ "vectorEditor.properties.radius": "Radius",
2181
+ "vectorEditor.properties.sides": "Seiten",
2182
+ "vectorEditor.properties.points": "Punkte",
2183
+ "vectorEditor.properties.innerR": "Innerer R",
2184
+ "vectorEditor.properties.size": "Größe",
2185
+ "vectorEditor.properties.font": "Schrift",
2186
+ "vectorEditor.properties.grid": "Raster",
2187
+ "vectorEditor.properties.transform": "Transformation",
2188
+ "vectorEditor.properties.x": "X",
2189
+ "vectorEditor.properties.y": "Y",
2190
+ "vectorEditor.properties.w": "B",
2191
+ "vectorEditor.properties.h": "H",
2192
+ "vectorEditor.layers.title": "Ebenen",
2193
+ "vectorEditor.layers.show": "Einblenden",
2194
+ "vectorEditor.layers.hide": "Ausblenden",
2195
+ "vectorEditor.layers.lock": "Sperren",
2196
+ "vectorEditor.layers.unlock": "Entsperren"
1648
2197
  }, Se = {
1649
2198
  ok: "OK",
1650
2199
  cancel: "Annuler",
@@ -2166,7 +2715,188 @@ const j = [
2166
2715
  "noCode.codePreview.language": "Langage",
2167
2716
  "noCode.codePreview.format": "Formater le code",
2168
2717
  "noCode.codePreview.linesChanged": "Lignes modifiées",
2169
- "noCode.codePreview.noChanges": "Aucune modification"
2718
+ "noCode.codePreview.noChanges": "Aucune modification",
2719
+ // ── Navigation / Help / Home / Sidebar / Vector Editor (P2.5 backfill) ──
2720
+ "nav.help": "Aide",
2721
+ "navShell.home.title": "Accueil",
2722
+ "navShell.help.next": "Suivant",
2723
+ "navShell.help.back": "Retour",
2724
+ "navShell.help.finish": "Terminer",
2725
+ "navShell.help.skip": "Passer",
2726
+ "navShell.help.stepOf": "sur",
2727
+ "navShell.help.topNav.title": "Navigation supérieure",
2728
+ "navShell.help.topNav.body": "Utilisez la barre supérieure pour changer d'espace de travail, rechercher, modifier le thème ou la langue, et ouvrir les notifications.",
2729
+ "navShell.help.sidebar.title": "Barre latérale",
2730
+ "navShell.help.sidebar.body": "Parcourez les vues disponibles regroupées par section. Choisissez une vue pour l’ouvrir dans un nouvel onglet.",
2731
+ "navShell.help.tabs.title": "Onglets",
2732
+ "navShell.help.tabs.body": "Chaque vue ouverte vit dans son propre onglet. Épinglez celles que vous utilisez souvent et faites un clic droit pour plus d'actions.",
2733
+ "navShell.help.content.title": "Espace de travail",
2734
+ "navShell.help.content.body": "La zone principale affiche la vue active. Changer d’onglet ou d’entrée latérale échange le contenu ici.",
2735
+ "navShell.home.subtitle": "Reprenez là où vous en étiez.",
2736
+ "navShell.home.empty": "Ouvrez une vue depuis la barre latérale ou les onglets ci-dessus pour remplir votre espace de travail.",
2737
+ "navShell.home.greeting.morning": "Bonjour",
2738
+ "navShell.home.greeting.afternoon": "Bon après-midi",
2739
+ "navShell.home.greeting.evening": "Bonsoir",
2740
+ "navShell.home.greeting.night": "Bonjour",
2741
+ "navShell.home.sections.openTabs": "Ouverts maintenant",
2742
+ "navShell.home.sections.shortcuts": "Vos raccourcis",
2743
+ "navShell.home.sections.allViews": "Toutes les vues",
2744
+ "sidebar.menu.open": "Ouvrir",
2745
+ "sidebar.menu.openNewTab": "Ouvrir dans un nouvel onglet",
2746
+ "sidebar.menu.openBrowserTab": "Ouvrir dans un nouvel onglet du navigateur",
2747
+ "sidebar.menu.pinFavorite": "Ajouter aux favoris",
2748
+ "sidebar.menu.unpinFavorite": "Retirer des favoris",
2749
+ "sidebar.menu.hide": "Masquer",
2750
+ "sidebar.menu.copyLink": "Copier le lien",
2751
+ "sidebar.menu.pinSource": "Épingler la source",
2752
+ "sidebar.menu.unpinSource": "Détacher la source",
2753
+ "sidebar.menu.hideSource": "Masquer la source",
2754
+ "sidebar.prefs.general": "Général",
2755
+ "sidebar.prefs.display": "Affichage",
2756
+ "sidebar.prefs.order": "Ordre",
2757
+ "sidebar.prefs.hidden": "Éléments masqués",
2758
+ "sidebar.prefs.reset": "Réinitialiser",
2759
+ "sidebar.prefs.general.title": "Général",
2760
+ "sidebar.prefs.general.desc": "Comportement de l'arborescence latérale et action du clic gauche.",
2761
+ "sidebar.prefs.general.autoExpand": "Développer automatiquement toutes les branches",
2762
+ "sidebar.prefs.general.autoExpandHint": "Lorsque désactivé, les branches démarrent repliées et conservent leur dernier état par session.",
2763
+ "sidebar.prefs.general.leftClickBehavior": "Comportement du clic gauche",
2764
+ "sidebar.prefs.general.focusExisting": "Focaliser l’onglet existant",
2765
+ "sidebar.prefs.general.openNew": "Toujours ouvrir dans un nouvel onglet",
2766
+ "sidebar.prefs.general.leftClickHint": "Le clic droit → « Ouvrir dans un nouvel onglet » est toujours disponible quel que soit ce paramètre.",
2767
+ "sidebar.prefs.display.title": "Affichage",
2768
+ "sidebar.prefs.display.desc": "Quels modes apparaissent dans la barre et la profondeur de l'arbre par mode.",
2769
+ "sidebar.prefs.display.enableModeIcons": "Afficher les icônes du sélecteur de mode",
2770
+ "sidebar.prefs.display.enabledModes": "Modes visibles",
2771
+ "sidebar.prefs.display.preferencesAlwaysOn": "Les préférences sont toujours affichées.",
2772
+ "sidebar.prefs.display.maxDepth": "Profondeur d’arbre par mode",
2773
+ "sidebar.prefs.order.title": "Ordonner les éléments",
2774
+ "sidebar.prefs.order.desc": "Faites glisser les éléments pour réorganiser leur affichage dans le mode sélectionné.",
2775
+ "sidebar.prefs.order.pickMode": "Mode",
2776
+ "sidebar.prefs.order.empty": "Aucun élément réorganisable dans ce mode.",
2777
+ "sidebar.prefs.order.resetMode": "Rétablir l’ordre par défaut",
2778
+ "sidebar.prefs.hidden.title": "Éléments masqués",
2779
+ "sidebar.prefs.hidden.desc": "Éléments que vous avez masqués de l'arborescence. Restaurez-les pour les ramener.",
2780
+ "sidebar.prefs.hidden.empty": "Rien de masqué pour l’instant.",
2781
+ "sidebar.prefs.hidden.restore": "Restaurer",
2782
+ "sidebar.prefs.reset.title": "Réinitialiser",
2783
+ "sidebar.prefs.reset.desc": "Effacer toutes les personnalisations et restaurer la disposition d'origine de la barre latérale.",
2784
+ "sidebar.prefs.reset.button": "Réinitialiser toutes les préférences",
2785
+ "sidebar.prefs.reset.confirm": "Cela effacera vos favoris, éléments masqués, ordre personnalisé et toutes les autres préférences de la barre latérale. Cette action est irréversible.",
2786
+ "sidebar.prefs.reset.confirmYes": "Oui, tout réinitialiser",
2787
+ "sidebar.prefs.reset.cancel": "Annuler",
2788
+ "vectorEditor.menu.file": "Fichier",
2789
+ "vectorEditor.menu.edit": "Édition",
2790
+ "vectorEditor.menu.object": "Objet",
2791
+ "vectorEditor.menu.path": "Chemin",
2792
+ "vectorEditor.menu.view": "Affichage",
2793
+ "vectorEditor.menu.newCanvas": "Nouveau canevas",
2794
+ "vectorEditor.menu.openSvg": "Ouvrir un SVG…",
2795
+ "vectorEditor.menu.pasteSvg": "Coller un SVG…",
2796
+ "vectorEditor.menu.exportSvg": "Exporter en SVG",
2797
+ "vectorEditor.menu.exportPng": "Exporter en PNG",
2798
+ "vectorEditor.menu.exportJpg": "Exporter en JPG",
2799
+ "vectorEditor.menu.exportWebp": "Exporter en WebP",
2800
+ "vectorEditor.menu.exportBmp": "Exporter en BMP",
2801
+ "vectorEditor.menu.saveToLibrary": "📦 Enregistrer dans la bibliothèque",
2802
+ "vectorEditor.menu.exportIconSnippet": "📋 Exporter l’extrait d’icône",
2803
+ "vectorEditor.menu.exportIcon": "📋 Exporter l’icône",
2804
+ "vectorEditor.menu.undo": "Annuler (Ctrl+Z)",
2805
+ "vectorEditor.menu.redo": "Rétablir (Ctrl+Y)",
2806
+ "vectorEditor.menu.copy": "Copier (Ctrl+C)",
2807
+ "vectorEditor.menu.paste": "Coller (Ctrl+V)",
2808
+ "vectorEditor.menu.duplicate": "Dupliquer (Ctrl+D)",
2809
+ "vectorEditor.menu.delete": "Supprimer (Suppr)",
2810
+ "vectorEditor.menu.bringToFront": "Mettre au premier plan",
2811
+ "vectorEditor.menu.sendToBack": "Mettre à l’arrière-plan",
2812
+ "vectorEditor.menu.flipH": "Retourner horizontalement",
2813
+ "vectorEditor.menu.flipV": "Retourner verticalement",
2814
+ "vectorEditor.menu.alignLeft": "Aligner à gauche",
2815
+ "vectorEditor.menu.alignCenter": "Centrer",
2816
+ "vectorEditor.menu.alignRight": "Aligner à droite",
2817
+ "vectorEditor.menu.union": "Union (∪)",
2818
+ "vectorEditor.menu.subtract": "Soustraire (−)",
2819
+ "vectorEditor.menu.intersect": "Intersection (∩)",
2820
+ "vectorEditor.menu.exclude": "Exclusion (⊕)",
2821
+ "vectorEditor.menu.outlineStroke": "Vectoriser le contour",
2822
+ "vectorEditor.menu.snapToGrid": "Aligner sur la grille",
2823
+ "vectorEditor.menu.snap": "Grille",
2824
+ "vectorEditor.menu.secondShape": "2e forme",
2825
+ "vectorEditor.tabs.properties": "Propriétés",
2826
+ "vectorEditor.tabs.layers": "Calques",
2827
+ "vectorEditor.tabs.library": "Bibliothèque",
2828
+ "vectorEditor.tabs.timeline": "Chronologie",
2829
+ "vectorEditor.timeline.preset": "Préréglage",
2830
+ "vectorEditor.timeline.duration": "Durée (ms)",
2831
+ "vectorEditor.timeline.repeat": "Répétitions",
2832
+ "vectorEditor.timeline.direction": "Direction",
2833
+ "vectorEditor.timeline.remove": "Supprimer l’animation",
2834
+ "vectorEditor.timeline.play": "Lecture",
2835
+ "vectorEditor.timeline.pause": "Pause",
2836
+ "vectorEditor.timeline.stop": "Arrêt",
2837
+ "vectorEditor.timeline.copyCss": "Copier le CSS",
2838
+ "vectorEditor.timeline.keyframes": "Images clés",
2839
+ "vectorEditor.timeline.addKeyframe": "+ Ajouter une image clé",
2840
+ "vectorEditor.timeline.noSelection": "Sélectionnez une forme à animer.",
2841
+ "vectorEditor.timeline.animationTitle": "Animation",
2842
+ "vectorEditor.timeline.playbackTitle": "Lecture",
2843
+ "vectorEditor.timeline.attachHint": "Sélectionnez une forme pour y attacher une animation.",
2844
+ "vectorEditor.timeline.playLabel": "▶ Lecture",
2845
+ "vectorEditor.timeline.pauseLabel": "⏸ Pause",
2846
+ "vectorEditor.timeline.stopLabel": "⏹ Arrêt",
2847
+ "vectorEditor.timeline.copyCssKeyframes": "📋 Copier les images clés CSS",
2848
+ "vectorEditor.timeline.tLabel": "t",
2849
+ "vectorEditor.layers.empty": "Aucun calque pour l’instant. Utilisez les outils pour dessiner ou insérez depuis l’onglet Bibliothèque.",
2850
+ "vectorEditor.layers.moveUp": "Monter",
2851
+ "vectorEditor.layers.moveDown": "Descendre",
2852
+ "vectorEditor.library.passProp": "Passez une prop library à NiceVectorEditor pour remplir cet onglet avec des icônes insérables.",
2853
+ "vectorEditor.statusBar.zoom": "Zoom",
2854
+ "vectorEditor.statusBar.shapes": "forme(s)",
2855
+ "vectorEditor.statusBar.selected": "Sélectionné",
2856
+ "vectorEditor.statusBar.snap": "Grille",
2857
+ "vectorEditor.library.empty": "Aucune icône dans la bibliothèque.",
2858
+ "vectorEditor.snippet.title": "✅ Extrait d’icône copié dans le presse-papiers",
2859
+ "vectorEditor.snippet.pasteHint": "Coller dans",
2860
+ "vectorEditor.snippet.copyAgain": "Copier à nouveau",
2861
+ "vectorEditor.snippet.close": "Fermer",
2862
+ "vectorEditor.properties.appearance": "Apparence",
2863
+ "vectorEditor.properties.fill": "Remplissage",
2864
+ "vectorEditor.properties.solid": "Uni",
2865
+ "vectorEditor.properties.gradient": "Dégradé",
2866
+ "vectorEditor.properties.hideEditor": "▼ Masquer l’éditeur",
2867
+ "vectorEditor.properties.editGradient": "► Modifier le dégradé",
2868
+ "vectorEditor.properties.type": "Type",
2869
+ "vectorEditor.properties.linear": "Linéaire",
2870
+ "vectorEditor.properties.radial": "Radial",
2871
+ "vectorEditor.properties.angle": "Angle",
2872
+ "vectorEditor.properties.cx": "CX",
2873
+ "vectorEditor.properties.cy": "CY",
2874
+ "vectorEditor.properties.r": "R",
2875
+ "vectorEditor.properties.colorStops": "Étapes de couleur :",
2876
+ "vectorEditor.properties.addStop": "+ Ajouter une étape",
2877
+ "vectorEditor.properties.removeStop": "- Supprimer",
2878
+ "vectorEditor.properties.stroke": "Contour",
2879
+ "vectorEditor.properties.width": "Largeur",
2880
+ "vectorEditor.properties.opacity": "Opacité",
2881
+ "vectorEditor.properties.rotation": "Rotation",
2882
+ "vectorEditor.properties.toolOptions": "Options de l’outil",
2883
+ "vectorEditor.properties.radius": "Rayon",
2884
+ "vectorEditor.properties.sides": "Côtés",
2885
+ "vectorEditor.properties.points": "Points",
2886
+ "vectorEditor.properties.innerR": "R intérieur",
2887
+ "vectorEditor.properties.size": "Taille",
2888
+ "vectorEditor.properties.font": "Police",
2889
+ "vectorEditor.properties.grid": "Grille",
2890
+ "vectorEditor.properties.transform": "Transformation",
2891
+ "vectorEditor.properties.x": "X",
2892
+ "vectorEditor.properties.y": "Y",
2893
+ "vectorEditor.properties.w": "L",
2894
+ "vectorEditor.properties.h": "H",
2895
+ "vectorEditor.layers.title": "Calques",
2896
+ "vectorEditor.layers.show": "Afficher",
2897
+ "vectorEditor.layers.hide": "Masquer",
2898
+ "vectorEditor.layers.lock": "Verrouiller",
2899
+ "vectorEditor.layers.unlock": "Déverrouiller"
2170
2900
  }, ze = {
2171
2901
  ok: "OK",
2172
2902
  cancel: "Cancelar",
@@ -4676,7 +5406,7 @@ const j = [
4676
5406
  "wm.minimizeAll": "すべて最小化",
4677
5407
  "wm.newWindow": "新しいウィンドウ",
4678
5408
  "wm.moveToFront": "最前面に移動"
4679
- }, Ue = {
5409
+ }, We = {
4680
5410
  ok: "확인",
4681
5411
  cancel: "취소",
4682
5412
  save: "저장",
@@ -5039,7 +5769,7 @@ const j = [
5039
5769
  "wm.minimizeAll": "모두 최소화",
5040
5770
  "wm.newWindow": "새 창",
5041
5771
  "wm.moveToFront": "맨 앞으로"
5042
- }, We = {
5772
+ }, Ve = {
5043
5773
  ok: "确定",
5044
5774
  cancel: "取消",
5045
5775
  save: "保存",
@@ -5402,7 +6132,7 @@ const j = [
5402
6132
  "wm.minimizeAll": "最小化全部",
5403
6133
  "wm.newWindow": "新建窗口",
5404
6134
  "wm.moveToFront": "置于最前"
5405
- }, He = {
6135
+ }, Ue = {
5406
6136
  ok: "حسناً",
5407
6137
  cancel: "إلغاء",
5408
6138
  save: "حفظ",
@@ -5765,7 +6495,7 @@ const j = [
5765
6495
  "wm.minimizeAll": "تصغير الكل",
5766
6496
  "wm.newWindow": "نافذة جديدة",
5767
6497
  "wm.moveToFront": "نقل إلى الأمام"
5768
- }, Ke = {
6498
+ }, He = {
5769
6499
  ok: "ठीक है",
5770
6500
  cancel: "रद्द करें",
5771
6501
  save: "सहेजें",
@@ -5776,7 +6506,7 @@ const j = [
5776
6506
  error: "त्रुटि",
5777
6507
  success: "सफलता",
5778
6508
  search: "खोजें"
5779
- }, Ve = {
6509
+ }, Ke = {
5780
6510
  ok: "ঠিক আছে",
5781
6511
  cancel: "বাতিল",
5782
6512
  save: "সংরক্ষণ",
@@ -5820,7 +6550,7 @@ const j = [
5820
6550
  error: "Kesalahan",
5821
6551
  success: "Berhasil",
5822
6552
  search: "Cari"
5823
- }, $e = {
6553
+ }, Je = {
5824
6554
  ok: "Sawa",
5825
6555
  cancel: "Ghairi",
5826
6556
  save: "Hifadhi",
@@ -5831,7 +6561,7 @@ const j = [
5831
6561
  error: "Hitilafu",
5832
6562
  success: "Imefanikiwa",
5833
6563
  search: "Tafuta"
5834
- }, Je = {
6564
+ }, Ye = {
5835
6565
  ok: "OK",
5836
6566
  cancel: "Kanselahin",
5837
6567
  save: "I-save",
@@ -5842,7 +6572,7 @@ const j = [
5842
6572
  error: "Error",
5843
6573
  success: "Tagumpay",
5844
6574
  search: "Maghanap"
5845
- }, _e = {
6575
+ }, $e = {
5846
6576
  ok: "OK",
5847
6577
  cancel: "Batal",
5848
6578
  save: "Simpan",
@@ -5853,10 +6583,10 @@ const j = [
5853
6583
  error: "Ralat",
5854
6584
  success: "Berjaya",
5855
6585
  search: "Cari"
5856
- }, v = {
5857
- en: Ce,
5858
- pl: ye,
5859
- de: Ee,
6586
+ }, k = {
6587
+ en: ye,
6588
+ pl: Ee,
6589
+ de: Ce,
5860
6590
  fr: Se,
5861
6591
  es: ze,
5862
6592
  it: De,
@@ -5873,18 +6603,18 @@ const j = [
5873
6603
  bg: Le,
5874
6604
  uk: Be,
5875
6605
  ja: Ie,
5876
- ko: Ue,
5877
- zh: We,
5878
- ar: He,
5879
- hi: Ke,
5880
- bn: Ve,
6606
+ ko: We,
6607
+ zh: Ve,
6608
+ ar: Ue,
6609
+ hi: He,
6610
+ bn: Ke,
5881
6611
  th: Ze,
5882
6612
  vi: qe,
5883
6613
  id: Ge,
5884
- sw: $e,
5885
- fil: Je,
5886
- ms: _e
5887
- }, J = {
6614
+ sw: Je,
6615
+ fil: Ye,
6616
+ ms: $e
6617
+ }, Y = {
5888
6618
  save: "Zapisz",
5889
6619
  cancel: "Anuluj",
5890
6620
  ok: "OK",
@@ -5908,7 +6638,7 @@ const j = [
5908
6638
  "form.invalidValue": "Proszę podać prawidłową wartość.",
5909
6639
  "auth.signIn": "Proszę się zalogować",
5910
6640
  "auth.signOut": "Proszę się wylogować"
5911
- }, _ = {
6641
+ }, $ = {
5912
6642
  save: "Zapisz",
5913
6643
  cancel: "Anuluj",
5914
6644
  ok: "OK",
@@ -5932,62 +6662,62 @@ const j = [
5932
6662
  "form.invalidValue": "Wpisz prawidłową wartość.",
5933
6663
  "auth.signIn": "Zaloguj się",
5934
6664
  "auth.signOut": "Wyloguj się"
5935
- }, Ye = {
5936
- "pl-PL": { formal: J, informal: _ },
5937
- pl: { formal: J, informal: _ }
6665
+ }, _e = {
6666
+ "pl-PL": { formal: Y, informal: $ },
6667
+ pl: { formal: Y, informal: $ }
5938
6668
  };
5939
6669
  function qo(e) {
5940
6670
  var o;
5941
- return { ...v.pl, ...((o = Ye.pl) == null ? void 0 : o[e]) ?? {} };
6671
+ return { ...k.pl, ...((o = _e.pl) == null ? void 0 : o[e]) ?? {} };
5942
6672
  }
5943
6673
  const Qe = (e, o) => o, oe = I(Qe), Go = ({
5944
6674
  t: e,
5945
6675
  lang: o = "en",
5946
- overrides: t,
5947
- children: a
6676
+ overrides: r,
6677
+ children: t
5948
6678
  }) => {
5949
- const n = w(() => {
6679
+ const a = b(() => {
5950
6680
  if (e)
5951
6681
  return e;
5952
- const r = v[o] ?? v.en, i = t ? { ...r, ...t } : r;
5953
- return (s, l) => i[s] ?? l;
5954
- }, [e, o, t]);
5955
- return /* @__PURE__ */ B(oe.Provider, { value: n, children: a });
6682
+ const n = k[o] ?? k.en, i = r ? { ...n, ...r } : n;
6683
+ return (s, d) => i[s] ?? d;
6684
+ }, [e, o, r]);
6685
+ return /* @__PURE__ */ B(oe.Provider, { value: a, children: t });
5956
6686
  };
5957
- function $o() {
6687
+ function Jo() {
5958
6688
  return { t: N(oe) };
5959
6689
  }
5960
- function Jo(e = "en", o) {
5961
- const t = v[e] ?? v.en, a = o ? { ...t, ...o } : t;
5962
- return (n, r) => a[n] ?? r;
6690
+ function Yo(e = "en", o) {
6691
+ const r = k[e] ?? k.en, t = o ? { ...r, ...o } : r;
6692
+ return (a, n) => t[a] ?? n;
5963
6693
  }
5964
- function _o(e, o = {}) {
5965
- let t = e.replace(/\{(\w+)\}/g, (a, n) => {
5966
- const r = o[n];
5967
- return r !== void 0 ? String(r) : a;
6694
+ function $o(e, o = {}) {
6695
+ let r = e.replace(/\{(\w+)\}/g, (t, a) => {
6696
+ const n = o[a];
6697
+ return n !== void 0 ? String(n) : t;
5968
6698
  });
5969
- return t = t.replace(
6699
+ return r = r.replace(
5970
6700
  /\{(\w+),\s*plural,\s*one\{([^}]+)\}\s*other\{([^}]+)\}\}/g,
5971
- (a, n, r, i) => {
5972
- const s = o[n];
5973
- return typeof s != "number" ? a : (s === 1 ? r : i).replace(/#/g, String(s));
6701
+ (t, a, n, i) => {
6702
+ const s = o[a];
6703
+ return typeof s != "number" ? t : (s === 1 ? n : i).replace(/#/g, String(s));
5974
6704
  }
5975
- ), t;
6705
+ ), r;
5976
6706
  }
5977
6707
  function Xe(e) {
5978
6708
  return j.includes(e);
5979
6709
  }
5980
- function Yo() {
6710
+ function _o() {
5981
6711
  var o;
5982
6712
  if (typeof navigator > "u")
5983
6713
  return "en";
5984
6714
  const e = (o = navigator.language) == null ? void 0 : o.split("-")[0];
5985
6715
  return Xe(e) ? e : "en";
5986
6716
  }
5987
- function ae(e, o) {
5988
- var r;
5989
- const t = Math.abs(e), a = Math.floor(t), n = e.toString().includes(".") && ((r = e.toString().split(".")[1]) == null ? void 0 : r.length) || 0;
5990
- switch (n > 0 && parseInt(e.toString().split(".")[1] || "0", 10), o) {
6717
+ function te(e, o) {
6718
+ var n;
6719
+ const r = Math.abs(e), t = Math.floor(r), a = e.toString().includes(".") && ((n = e.toString().split(".")[1]) == null ? void 0 : n.length) || 0;
6720
+ switch (a > 0 && parseInt(e.toString().split(".")[1] || "0", 10), o) {
5991
6721
  // ── English-like (one/other) ───────────────────────────
5992
6722
  case "en":
5993
6723
  case "de":
@@ -5999,29 +6729,29 @@ function ae(e, o) {
5999
6729
  case "it":
6000
6730
  case "es":
6001
6731
  case "pt":
6002
- return a === 1 && n === 0 ? "one" : "other";
6732
+ return t === 1 && a === 0 ? "one" : "other";
6003
6733
  // ── French (one/many/other) ────────────────────────────
6004
6734
  case "fr":
6005
- return a === 0 || a === 1 ? "one" : t >= 1e6 ? "many" : "other";
6735
+ return t === 0 || t === 1 ? "one" : r >= 1e6 ? "many" : "other";
6006
6736
  // ── Polish (Slavic: one/few/many/other) ────────────────
6007
6737
  case "pl":
6008
- return a === 1 && n === 0 ? "one" : n === 0 && a % 10 >= 2 && a % 10 <= 4 && !(a % 100 >= 12 && a % 100 <= 14) ? "few" : n === 0 && a !== 1 && (a % 10 === 0 || a % 10 === 1) || n === 0 && a % 10 >= 5 && a % 10 <= 9 || n === 0 && a % 100 >= 12 && a % 100 <= 14 ? "many" : "other";
6738
+ return t === 1 && a === 0 ? "one" : a === 0 && t % 10 >= 2 && t % 10 <= 4 && !(t % 100 >= 12 && t % 100 <= 14) ? "few" : a === 0 && t !== 1 && (t % 10 === 0 || t % 10 === 1) || a === 0 && t % 10 >= 5 && t % 10 <= 9 || a === 0 && t % 100 >= 12 && t % 100 <= 14 ? "many" : "other";
6009
6739
  // ── Ukrainian (Slavic: one/few/many/other) ─────────────
6010
6740
  case "uk":
6011
- return n === 0 && a % 10 === 1 && a % 100 !== 11 ? "one" : n === 0 && a % 10 >= 2 && a % 10 <= 4 && !(a % 100 >= 12 && a % 100 <= 14) ? "few" : n === 0 && a % 10 === 0 || n === 0 && a % 10 >= 5 && a % 10 <= 9 || n === 0 && a % 100 >= 11 && a % 100 <= 14 ? "many" : "other";
6741
+ return a === 0 && t % 10 === 1 && t % 100 !== 11 ? "one" : a === 0 && t % 10 >= 2 && t % 10 <= 4 && !(t % 100 >= 12 && t % 100 <= 14) ? "few" : a === 0 && t % 10 === 0 || a === 0 && t % 10 >= 5 && t % 10 <= 9 || a === 0 && t % 100 >= 11 && t % 100 <= 14 ? "many" : "other";
6012
6742
  // ── Bulgarian (one/other) ──────────────────────────────
6013
6743
  case "bg":
6014
6744
  return e === 1 ? "one" : "other";
6015
6745
  // ── Czech/Slovak (Slavic: one/few/many/other) ──────────
6016
6746
  case "cs":
6017
6747
  case "sk":
6018
- return a === 1 && n === 0 ? "one" : a >= 2 && a <= 4 && n === 0 ? "few" : n !== 0 ? "many" : "other";
6748
+ return t === 1 && a === 0 ? "one" : t >= 2 && t <= 4 && a === 0 ? "few" : a !== 0 ? "many" : "other";
6019
6749
  // ── Hungarian (one/other) ──────────────────────────────
6020
6750
  case "hu":
6021
6751
  return e === 1 ? "one" : "other";
6022
6752
  // ── Romanian (one/few/other) ───────────────────────────
6023
6753
  case "ro":
6024
- return a === 1 && n === 0 ? "one" : n !== 0 || e === 0 || e % 100 >= 2 && e % 100 <= 19 ? "few" : "other";
6754
+ return t === 1 && a === 0 ? "one" : a !== 0 || e === 0 || e % 100 >= 2 && e % 100 <= 19 ? "few" : "other";
6025
6755
  // ── Japanese/Korean/Chinese (other only) ─────────────────
6026
6756
  case "ja":
6027
6757
  case "ko":
@@ -6044,10 +6774,10 @@ function ae(e, o) {
6044
6774
  return new Intl.PluralRules(o).select(e);
6045
6775
  } catch {
6046
6776
  }
6047
- return a === 1 && n === 0 ? "one" : "other";
6777
+ return t === 1 && a === 0 ? "one" : "other";
6048
6778
  }
6049
6779
  }
6050
- function te(e, o) {
6780
+ function re(e, o) {
6051
6781
  switch (o) {
6052
6782
  // ── English ────────────────────────────────────────────
6053
6783
  case "en":
@@ -6082,118 +6812,118 @@ function te(e, o) {
6082
6812
  }
6083
6813
  }
6084
6814
  function eo(e) {
6085
- var n;
6815
+ var a;
6086
6816
  if (e = e.trim(), !e.includes(","))
6087
6817
  return { type: "simple", name: e };
6088
- const o = e.split(",").map((r) => r.trim()), t = o[0], a = (n = o[1]) == null ? void 0 : n.toLowerCase();
6089
- if (!a || !t)
6818
+ const o = e.split(",").map((n) => n.trim()), r = o[0], t = (a = o[1]) == null ? void 0 : a.toLowerCase();
6819
+ if (!t || !r)
6090
6820
  return null;
6091
- if (a === "number")
6092
- return { type: "number", name: t, style: o[2] };
6093
- if (a === "date" || a === "time")
6094
- return { type: a, name: t, style: o[2] || "medium" };
6095
- if (a === "plural" || a === "select" || a === "selectordinal") {
6096
- const r = o.slice(2).join(",").trim(), i = {}, s = /(=?\w+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
6097
- let l;
6098
- for (; (l = s.exec(r)) !== null; )
6099
- i[l[1]] = l[2];
6100
- return { type: a, name: t, options: i };
6821
+ if (t === "number")
6822
+ return { type: "number", name: r, style: o[2] };
6823
+ if (t === "date" || t === "time")
6824
+ return { type: t, name: r, style: o[2] || "medium" };
6825
+ if (t === "plural" || t === "select" || t === "selectordinal") {
6826
+ const n = o.slice(2).join(",").trim(), i = {}, s = /(=?\w+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
6827
+ let d;
6828
+ for (; (d = s.exec(n)) !== null; )
6829
+ i[d[1]] = d[2];
6830
+ return { type: t, name: r, options: i };
6101
6831
  }
6102
- return { type: "simple", name: t };
6832
+ return { type: "simple", name: r };
6103
6833
  }
6104
- function oo(e, o, t) {
6105
- const a = {};
6106
- switch (t) {
6834
+ function oo(e, o, r) {
6835
+ const t = {};
6836
+ switch (r) {
6107
6837
  case "currency":
6108
- a.style = "currency", a.currency = "USD";
6838
+ t.style = "currency", t.currency = "USD";
6109
6839
  break;
6110
6840
  case "percent":
6111
- a.style = "percent";
6841
+ t.style = "percent";
6112
6842
  break;
6113
6843
  case "integer":
6114
- a.maximumFractionDigits = 0;
6844
+ t.maximumFractionDigits = 0;
6115
6845
  break;
6116
6846
  }
6117
- return new Intl.NumberFormat(o, a).format(e);
6847
+ return new Intl.NumberFormat(o, t).format(e);
6118
6848
  }
6119
- function ao(e, o, t) {
6120
- const a = e instanceof Date ? e : new Date(e);
6121
- let n;
6122
- switch (t) {
6849
+ function to(e, o, r) {
6850
+ const t = e instanceof Date ? e : new Date(e);
6851
+ let a;
6852
+ switch (r) {
6123
6853
  case "short":
6124
- n = { dateStyle: "short" };
6854
+ a = { dateStyle: "short" };
6125
6855
  break;
6126
6856
  case "long":
6127
- n = { dateStyle: "long" };
6857
+ a = { dateStyle: "long" };
6128
6858
  break;
6129
6859
  case "full":
6130
- n = { dateStyle: "full" };
6860
+ a = { dateStyle: "full" };
6131
6861
  break;
6132
6862
  case "medium":
6133
6863
  default:
6134
- n = { dateStyle: "medium" };
6864
+ a = { dateStyle: "medium" };
6135
6865
  break;
6136
6866
  }
6137
- return new Intl.DateTimeFormat(o, n).format(a);
6867
+ return new Intl.DateTimeFormat(o, a).format(t);
6138
6868
  }
6139
- function to(e, o, t) {
6140
- const a = e instanceof Date ? e : new Date(e);
6141
- let n;
6142
- switch (t) {
6869
+ function ro(e, o, r) {
6870
+ const t = e instanceof Date ? e : new Date(e);
6871
+ let a;
6872
+ switch (r) {
6143
6873
  case "short":
6144
- n = { timeStyle: "short" };
6874
+ a = { timeStyle: "short" };
6145
6875
  break;
6146
6876
  case "long":
6147
- n = { timeStyle: "long" };
6877
+ a = { timeStyle: "long" };
6148
6878
  break;
6149
6879
  case "full":
6150
- n = { timeStyle: "full" };
6880
+ a = { timeStyle: "full" };
6151
6881
  break;
6152
6882
  case "medium":
6153
6883
  default:
6154
- n = { timeStyle: "medium" };
6884
+ a = { timeStyle: "medium" };
6155
6885
  break;
6156
6886
  }
6157
- return new Intl.DateTimeFormat(o, n).format(a);
6887
+ return new Intl.DateTimeFormat(o, a).format(t);
6158
6888
  }
6159
- function W(e, o, t) {
6160
- return e.replace(/#/g, String(t));
6889
+ function V(e, o, r) {
6890
+ return e.replace(/#/g, String(r));
6161
6891
  }
6162
- function no(e, o = {}, t = {}) {
6163
- const a = t.lang || "en", n = t.locale || a, r = /\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
6164
- return e.replace(r, (i, s) => {
6165
- const l = eo(s);
6166
- if (!l)
6892
+ function ao(e, o = {}, r = {}) {
6893
+ const t = r.lang || "en", a = r.locale || t, n = /\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
6894
+ return e.replace(n, (i, s) => {
6895
+ const d = eo(s);
6896
+ if (!d)
6167
6897
  return i;
6168
- const d = o[l.name];
6169
- if (d === void 0)
6898
+ const l = o[d.name];
6899
+ if (l === void 0)
6170
6900
  return i;
6171
- switch (l.type) {
6901
+ switch (d.type) {
6172
6902
  case "simple":
6173
- return String(d);
6903
+ return String(l);
6174
6904
  case "number":
6175
- return typeof d != "number" ? i : oo(d, n, l.style);
6905
+ return typeof l != "number" ? i : oo(l, a, d.style);
6176
6906
  case "date":
6177
- return ao(d, n, l.style);
6907
+ return to(l, a, d.style);
6178
6908
  case "time":
6179
- return to(d, n, l.style);
6909
+ return ro(l, a, d.style);
6180
6910
  case "plural": {
6181
- if (typeof d != "number" || !l.options)
6911
+ if (typeof l != "number" || !d.options)
6182
6912
  return i;
6183
- const m = ae(d, a), f = `=${d}`, u = l.options[f] ?? l.options[m] ?? l.options.other ?? "";
6184
- return W(u, l.name, d);
6913
+ const p = te(l, t), f = `=${l}`, u = d.options[f] ?? d.options[p] ?? d.options.other ?? "";
6914
+ return V(u, d.name, l);
6185
6915
  }
6186
6916
  case "selectordinal": {
6187
- if (typeof d != "number" || !l.options)
6917
+ if (typeof l != "number" || !d.options)
6188
6918
  return i;
6189
- const m = te(d, a), f = l.options[m] ?? l.options.other ?? "";
6190
- return W(f, l.name, d);
6919
+ const p = re(l, t), f = d.options[p] ?? d.options.other ?? "";
6920
+ return V(f, d.name, l);
6191
6921
  }
6192
6922
  case "select": {
6193
- if (!l.options)
6923
+ if (!d.options)
6194
6924
  return i;
6195
- const m = l.options[String(d)] ?? l.options.other ?? "";
6196
- return W(m, l.name, d);
6925
+ const p = d.options[String(l)] ?? d.options.other ?? "";
6926
+ return V(p, d.name, l);
6197
6927
  }
6198
6928
  default:
6199
6929
  return i;
@@ -6201,23 +6931,23 @@ function no(e, o = {}, t = {}) {
6201
6931
  });
6202
6932
  }
6203
6933
  function Qo(e, o = "en") {
6204
- return function(a, n, r) {
6205
- const i = e[a] ?? n;
6206
- return r ? no(i, r, { lang: o }) : i;
6934
+ return function(t, a, n) {
6935
+ const i = e[t] ?? a;
6936
+ return n ? ao(i, n, { lang: o }) : i;
6207
6937
  };
6208
6938
  }
6209
- function Xo(e, o, t = "en") {
6210
- const a = ae(e, t);
6211
- return (o[a] ?? o.other).replace(/#/g, String(e));
6939
+ function Xo(e, o, r = "en") {
6940
+ const t = te(e, r);
6941
+ return (o[t] ?? o.other).replace(/#/g, String(e));
6212
6942
  }
6213
- function ea(e, o, t = "en") {
6214
- const a = te(e, t);
6215
- return (o[a] ?? o.other).replace(/#/g, String(e));
6943
+ function et(e, o, r = "en") {
6944
+ const t = re(e, r);
6945
+ return (o[t] ?? o.other).replace(/#/g, String(e));
6216
6946
  }
6217
- function oa(e, o) {
6947
+ function ot(e, o) {
6218
6948
  return o[e] ?? o.other;
6219
6949
  }
6220
- const ro = [
6950
+ const no = [
6221
6951
  "ar",
6222
6952
  // Arabic
6223
6953
  "he",
@@ -6231,11 +6961,11 @@ const ro = [
6231
6961
  "ps"
6232
6962
  // Pashto
6233
6963
  ];
6234
- function ne(e) {
6235
- return ro.includes(e);
6964
+ function ae(e) {
6965
+ return no.includes(e);
6236
6966
  }
6237
6967
  function io(e) {
6238
- return ne(e) ? "rtl" : "ltr";
6968
+ return ae(e) ? "rtl" : "ltr";
6239
6969
  }
6240
6970
  function so(e) {
6241
6971
  if (typeof document > "u")
@@ -6243,13 +6973,13 @@ function so(e) {
6243
6973
  const o = io(e);
6244
6974
  document.documentElement.setAttribute("dir", o), document.documentElement.setAttribute("lang", e);
6245
6975
  }
6246
- function aa() {
6976
+ function tt() {
6247
6977
  return typeof document > "u" ? "ltr" : document.documentElement.getAttribute("dir") || "ltr";
6248
6978
  }
6249
6979
  function lo(e, o) {
6250
6980
  return o ? e.rtl : e.ltr;
6251
6981
  }
6252
- function ta(e) {
6982
+ function rt(e) {
6253
6983
  return e === "left" ? "right" : "left";
6254
6984
  }
6255
6985
  function co(e, o) {
@@ -6262,7 +6992,7 @@ function co(e, o) {
6262
6992
  "flex-end": "flex-start"
6263
6993
  }[e] || e;
6264
6994
  }
6265
- function mo(e) {
6995
+ function po(e) {
6266
6996
  return {
6267
6997
  // Margins
6268
6998
  "margin-left": "margin-inline-start",
@@ -6297,34 +7027,34 @@ const q = I({
6297
7027
  isRTL: !1,
6298
7028
  flip: (e) => e,
6299
7029
  value: (e) => e.ltr
6300
- }), na = ({
7030
+ }), at = ({
6301
7031
  lang: e,
6302
7032
  autoSetDocument: o = !0,
6303
- children: t
7033
+ children: r
6304
7034
  }) => {
6305
- const a = ne(e), n = a ? "rtl" : "ltr";
7035
+ const t = ae(e), a = t ? "rtl" : "ltr";
6306
7036
  L(() => {
6307
7037
  o && so(e);
6308
7038
  }, [e, o]);
6309
- const r = w(
7039
+ const n = b(
6310
7040
  () => ({
6311
- dir: n,
6312
- isRTL: a,
6313
- flip: (i) => co(i, a),
6314
- value: (i) => lo(i, a)
7041
+ dir: a,
7042
+ isRTL: t,
7043
+ flip: (i) => co(i, t),
7044
+ value: (i) => lo(i, t)
6315
7045
  }),
6316
- [n, a]
7046
+ [a, t]
6317
7047
  );
6318
- return /* @__PURE__ */ B(q.Provider, { value: r, children: t });
7048
+ return /* @__PURE__ */ B(q.Provider, { value: n, children: r });
6319
7049
  };
6320
- function ra() {
7050
+ function nt() {
6321
7051
  return N(q);
6322
7052
  }
6323
- function ia() {
7053
+ function it() {
6324
7054
  return N(q).isRTL;
6325
7055
  }
6326
- function sa(e) {
6327
- const o = [], t = [
7056
+ function st(e) {
7057
+ const o = [], r = [
6328
7058
  "left",
6329
7059
  "right",
6330
7060
  "margin-left",
@@ -6334,11 +7064,11 @@ function sa(e) {
6334
7064
  "border-left",
6335
7065
  "border-right"
6336
7066
  ];
6337
- for (const [a, n] of Object.entries(e))
6338
- t.includes(a) && o.push(`Use logical property instead of '${a}' → '${mo(a)}'`), a === "text-align" && (n === "left" || n === "right") && o.push(`Use 'text-align: start/end' instead of 'text-align: ${n}'`), a === "float" && (n === "left" || n === "right") && o.push(`Use flexbox or grid instead of 'float: ${n}' for RTL support`);
7067
+ for (const [t, a] of Object.entries(e))
7068
+ r.includes(t) && o.push(`Use logical property instead of '${t}' → '${po(t)}'`), t === "text-align" && (a === "left" || a === "right") && o.push(`Use 'text-align: start/end' instead of 'text-align: ${a}'`), t === "float" && (a === "left" || a === "right") && o.push(`Use flexbox or grid instead of 'float: ${a}' for RTL support`);
6339
7069
  return o;
6340
7070
  }
6341
- const H = {
7071
+ const U = {
6342
7072
  // Direction multiplier: 1 for LTR, -1 for RTL
6343
7073
  dirMultiplier: "--nice-dir-multiplier",
6344
7074
  // Inline start (left in LTR, right in RTL)
@@ -6346,50 +7076,50 @@ const H = {
6346
7076
  // Inline end (right in LTR, left in RTL)
6347
7077
  inlineEnd: "--nice-inline-end"
6348
7078
  };
6349
- function la(e) {
7079
+ function dt(e) {
6350
7080
  return {
6351
- [H.dirMultiplier]: e ? "-1" : "1",
6352
- [H.inlineStart]: e ? "right" : "left",
6353
- [H.inlineEnd]: e ? "left" : "right"
7081
+ [U.dirMultiplier]: e ? "-1" : "1",
7082
+ [U.inlineStart]: e ? "right" : "left",
7083
+ [U.inlineEnd]: e ? "left" : "right"
6354
7084
  };
6355
7085
  }
6356
- function da() {
6357
- return Object.keys(v.en);
7086
+ function lt() {
7087
+ return Object.keys(k.en);
6358
7088
  }
6359
7089
  function uo(e) {
6360
7090
  if (e === "en")
6361
7091
  return [];
6362
- const o = v.en, t = v[e], a = [];
6363
- for (const [n, r] of Object.entries(o))
6364
- t[n] || a.push({ key: n, englishValue: r });
6365
- return a;
7092
+ const o = k.en, r = k[e], t = [];
7093
+ for (const [a, n] of Object.entries(o))
7094
+ r[a] || t.push({ key: a, englishValue: n });
7095
+ return t;
6366
7096
  }
6367
- function po(e) {
6368
- const o = Object.keys(v.en).length, t = Object.keys(v[e]).length, a = o - t, n = Math.round(t / o * 100);
7097
+ function mo(e) {
7098
+ const o = Object.keys(k.en).length, r = Object.keys(k[e]).length, t = o - r, a = Math.round(r / o * 100);
6369
7099
  return {
6370
7100
  lang: e,
6371
7101
  totalKeys: o,
6372
- translatedKeys: t,
6373
- missingKeys: a,
6374
- coverage: n
7102
+ translatedKeys: r,
7103
+ missingKeys: t,
7104
+ coverage: a
6375
7105
  };
6376
7106
  }
6377
7107
  function go() {
6378
- return j.map((e) => po(e));
7108
+ return j.map((e) => mo(e));
6379
7109
  }
6380
- function ca(e, o) {
6381
- const t = o.map((a) => {
6382
- const n = a.translated.replace(/'/g, "\\'");
6383
- return ` '${a.key}': '${n}',`;
7110
+ function ct(e, o) {
7111
+ const r = o.map((t) => {
7112
+ const a = t.translated.replace(/'/g, "\\'");
7113
+ return ` '${t.key}': '${a}',`;
6384
7114
  });
6385
7115
  return `// Auto-translated additions for ${e} (review before merging)
6386
7116
  // Generated on ${(/* @__PURE__ */ new Date()).toISOString()}
6387
7117
  {
6388
- ${t.join(`
7118
+ ${r.join(`
6389
7119
  `)}
6390
7120
  }`;
6391
7121
  }
6392
- function ma() {
7122
+ function pt() {
6393
7123
  const e = go();
6394
7124
  let o = `# Translation Coverage Report
6395
7125
 
@@ -6400,25 +7130,25 @@ Generated: ${(/* @__PURE__ */ new Date()).toISOString()}
6400
7130
  | Language | Translated | Missing | Coverage |
6401
7131
  |----------|------------|---------|----------|
6402
7132
  `;
6403
- for (const t of e) {
6404
- const a = "█".repeat(Math.floor(t.coverage / 10)) + "░".repeat(10 - Math.floor(t.coverage / 10));
6405
- o += `| ${t.lang} | ${t.translatedKeys} | ${t.missingKeys} | ${a} ${t.coverage}% |
7133
+ for (const r of e) {
7134
+ const t = "█".repeat(Math.floor(r.coverage / 10)) + "░".repeat(10 - Math.floor(r.coverage / 10));
7135
+ o += `| ${r.lang} | ${r.translatedKeys} | ${r.missingKeys} | ${t} ${r.coverage}% |
6406
7136
  `;
6407
7137
  }
6408
7138
  o += `
6409
7139
  ## Languages with Missing Translations
6410
7140
 
6411
7141
  `;
6412
- for (const t of e.filter((a) => a.missingKeys > 0)) {
6413
- o += `### ${t.lang.toUpperCase()} (${t.coverage}% complete)
7142
+ for (const r of e.filter((t) => t.missingKeys > 0)) {
7143
+ o += `### ${r.lang.toUpperCase()} (${r.coverage}% complete)
6414
7144
 
6415
7145
  `;
6416
- const a = uo(t.lang);
6417
- o += `Missing ${a.length} keys:
7146
+ const t = uo(r.lang);
7147
+ o += `Missing ${t.length} keys:
6418
7148
 
6419
- `, o += "```\n", o += a.slice(0, 10).map((n) => n.key).join(`
6420
- `), a.length > 10 && (o += `
6421
- ... and ${a.length - 10} more`), o += "\n```\n\n";
7149
+ `, o += "```\n", o += t.slice(0, 10).map((a) => a.key).join(`
7150
+ `), t.length > 10 && (o += `
7151
+ ... and ${t.length - 10} more`), o += "\n```\n\n";
6422
7152
  }
6423
7153
  return o;
6424
7154
  }
@@ -6458,53 +7188,53 @@ function D(e) {
6458
7188
  return ho[e] ?? "en-US";
6459
7189
  }
6460
7190
  function fo(e, o = "medium") {
6461
- const t = D(e), a = new Intl.DateTimeFormat(t, { dateStyle: o });
7191
+ const r = D(e), t = new Intl.DateTimeFormat(r, { dateStyle: o });
6462
7192
  return {
6463
- format: (n) => a.format(n instanceof Date ? n : new Date(n)),
6464
- formatRange: (n, r) => {
6465
- const i = n instanceof Date ? n : new Date(n), s = r instanceof Date ? r : new Date(r);
6466
- return a.formatRange(i, s);
7193
+ format: (a) => t.format(a instanceof Date ? a : new Date(a)),
7194
+ formatRange: (a, n) => {
7195
+ const i = a instanceof Date ? a : new Date(a), s = n instanceof Date ? n : new Date(n);
7196
+ return t.formatRange(i, s);
6467
7197
  },
6468
- formatRelative: (n) => bo(n instanceof Date ? n : new Date(n), t)
7198
+ formatRelative: (a) => wo(a instanceof Date ? a : new Date(a), r)
6469
7199
  };
6470
7200
  }
6471
- function ua(e, o = "medium") {
6472
- return w(() => fo(e, o), [e, o]);
7201
+ function ut(e, o = "medium") {
7202
+ return b(() => fo(e, o), [e, o]);
6473
7203
  }
6474
- function ko(e, o = "short") {
6475
- const t = D(e), a = new Intl.DateTimeFormat(t, { timeStyle: o });
7204
+ function vo(e, o = "short") {
7205
+ const r = D(e), t = new Intl.DateTimeFormat(r, { timeStyle: o });
6476
7206
  return {
6477
- format: (n) => a.format(n instanceof Date ? n : new Date(n))
7207
+ format: (a) => t.format(a instanceof Date ? a : new Date(a))
6478
7208
  };
6479
7209
  }
6480
- function pa(e, o = "short") {
6481
- return w(() => ko(e, o), [e, o]);
7210
+ function mt(e, o = "short") {
7211
+ return b(() => vo(e, o), [e, o]);
6482
7212
  }
6483
- function wo(e) {
7213
+ function bo(e) {
6484
7214
  const o = D(e);
6485
7215
  return {
6486
- format: (t) => new Intl.NumberFormat(o).format(t),
6487
- formatCompact: (t) => new Intl.NumberFormat(o, { notation: "compact" }).format(t),
6488
- formatPercent: (t) => new Intl.NumberFormat(o, { style: "percent", maximumFractionDigits: 1 }).format(t)
7216
+ format: (r) => new Intl.NumberFormat(o).format(r),
7217
+ formatCompact: (r) => new Intl.NumberFormat(o, { notation: "compact" }).format(r),
7218
+ formatPercent: (r) => new Intl.NumberFormat(o, { style: "percent", maximumFractionDigits: 1 }).format(r)
6489
7219
  };
6490
7220
  }
6491
- function ga(e) {
6492
- return w(() => wo(e), [e]);
7221
+ function gt(e) {
7222
+ return b(() => bo(e), [e]);
6493
7223
  }
6494
- function vo(e, o = "USD") {
6495
- const t = D(e), a = new Intl.NumberFormat(t, { style: "currency", currency: o });
7224
+ function ko(e, o = "USD") {
7225
+ const r = D(e), t = new Intl.NumberFormat(r, { style: "currency", currency: o });
6496
7226
  return {
6497
- format: (n) => a.format(n)
7227
+ format: (a) => t.format(a)
6498
7228
  };
6499
7229
  }
6500
- function ha(e, o = "USD") {
6501
- return w(() => vo(e, o), [e, o]);
7230
+ function ht(e, o = "USD") {
7231
+ return b(() => ko(e, o), [e, o]);
6502
7232
  }
6503
- function bo(e, o) {
6504
- const t = Date.now(), a = e.getTime() - t, n = Math.abs(a), r = new Intl.RelativeTimeFormat(o, { numeric: "auto" });
6505
- return n < 6e4 ? r.format(Math.round(a / 1e3), "second") : n < 36e5 ? r.format(Math.round(a / 6e4), "minute") : n < 864e5 ? r.format(Math.round(a / 36e5), "hour") : n < 2592e6 ? r.format(Math.round(a / 864e5), "day") : n < 31536e6 ? r.format(Math.round(a / 2592e6), "month") : r.format(Math.round(a / 31536e6), "year");
7233
+ function wo(e, o) {
7234
+ const r = Date.now(), t = e.getTime() - r, a = Math.abs(t), n = new Intl.RelativeTimeFormat(o, { numeric: "auto" });
7235
+ return a < 6e4 ? n.format(Math.round(t / 1e3), "second") : a < 36e5 ? n.format(Math.round(t / 6e4), "minute") : a < 864e5 ? n.format(Math.round(t / 36e5), "hour") : a < 2592e6 ? n.format(Math.round(t / 864e5), "day") : a < 31536e6 ? n.format(Math.round(t / 2592e6), "month") : n.format(Math.round(t / 31536e6), "year");
6506
7236
  }
6507
- const re = [
7237
+ const ne = [
6508
7238
  {
6509
7239
  en: "Save",
6510
7240
  translations: {
@@ -6656,52 +7386,52 @@ const re = [
6656
7386
  }
6657
7387
  }
6658
7388
  ];
6659
- function Co(e, o) {
6660
- const t = re.find((a) => a.en.toLowerCase() === e.toLowerCase());
6661
- return t == null ? void 0 : t.translations[o];
7389
+ function yo(e, o) {
7390
+ const r = ne.find((t) => t.en.toLowerCase() === e.toLowerCase());
7391
+ return r == null ? void 0 : r.translations[o];
6662
7392
  }
6663
- function fa(e, o, t = 0.8) {
6664
- const a = v.en, n = v[o], r = e.toLowerCase().trim();
7393
+ function ft(e, o, r = 0.8) {
7394
+ const t = k.en, a = k[o], n = e.toLowerCase().trim();
6665
7395
  let i;
6666
- for (const [s, l] of Object.entries(a)) {
6667
- const d = n[s];
6668
- if (!d)
7396
+ for (const [s, d] of Object.entries(t)) {
7397
+ const l = a[s];
7398
+ if (!l)
6669
7399
  continue;
6670
- const m = yo(r, l.toLowerCase().trim());
6671
- m >= t && (!i || m > i.similarity) && (i = { key: s, english: l, translated: d, similarity: m });
7400
+ const p = Eo(n, d.toLowerCase().trim());
7401
+ p >= r && (!i || p > i.similarity) && (i = { key: s, english: d, translated: l, similarity: p });
6672
7402
  }
6673
7403
  return i;
6674
7404
  }
6675
- function ka(e) {
6676
- return re.filter((o) => o.translations[e] != null).map((o) => ({
7405
+ function vt(e) {
7406
+ return ne.filter((o) => o.translations[e] != null).map((o) => ({
6677
7407
  en: o.en,
6678
7408
  translation: o.translations[e]
6679
7409
  }));
6680
7410
  }
6681
- function wa(e) {
6682
- const o = v[e], t = v.en, a = [];
6683
- for (const [n, r] of Object.entries(t)) {
6684
- const i = Co(r, e), s = o[n];
6685
- i && s && s !== i && a.push({ key: n, currentTranslation: s, glossaryTranslation: i });
7411
+ function bt(e) {
7412
+ const o = k[e], r = k.en, t = [];
7413
+ for (const [a, n] of Object.entries(r)) {
7414
+ const i = yo(n, e), s = o[a];
7415
+ i && s && s !== i && t.push({ key: a, currentTranslation: s, glossaryTranslation: i });
6686
7416
  }
6687
- return a;
7417
+ return t;
6688
7418
  }
6689
- function Y(e) {
7419
+ function _(e) {
6690
7420
  const o = /* @__PURE__ */ new Set();
6691
- for (let t = 0; t < e.length - 1; t++)
6692
- o.add(e.substring(t, t + 2));
7421
+ for (let r = 0; r < e.length - 1; r++)
7422
+ o.add(e.substring(r, r + 2));
6693
7423
  return o;
6694
7424
  }
6695
- function yo(e, o) {
7425
+ function Eo(e, o) {
6696
7426
  if (e === o)
6697
7427
  return 1;
6698
7428
  if (e.length < 2 || o.length < 2)
6699
7429
  return 0;
6700
- const t = Y(e), a = Y(o);
6701
- let n = 0;
6702
- for (const r of t)
6703
- a.has(r) && n++;
6704
- return 2 * n / (t.size + a.size);
7430
+ const r = _(e), t = _(o);
7431
+ let a = 0;
7432
+ for (const n of r)
7433
+ t.has(n) && a++;
7434
+ return 2 * a / (r.size + t.size);
6705
7435
  }
6706
7436
  const ie = {
6707
7437
  UTC: ["UTC", "Etc/UTC", "Etc/GMT"],
@@ -6771,117 +7501,117 @@ function G() {
6771
7501
  return "UTC";
6772
7502
  }
6773
7503
  }
6774
- function va(e) {
7504
+ function kt(e) {
6775
7505
  try {
6776
7506
  return new Intl.DateTimeFormat("en", { timeZone: e }), !0;
6777
7507
  } catch {
6778
7508
  return !1;
6779
7509
  }
6780
7510
  }
6781
- function F(e, o = "en", t = /* @__PURE__ */ new Date()) {
6782
- var b, M;
6783
- const a = D(o), n = new Intl.DateTimeFormat(a, {
7511
+ function F(e, o = "en", r = /* @__PURE__ */ new Date()) {
7512
+ var w, M;
7513
+ const t = D(o), a = new Intl.DateTimeFormat(t, {
6784
7514
  timeZone: e,
6785
7515
  timeZoneName: "long"
6786
- }), r = new Intl.DateTimeFormat(a, {
7516
+ }), n = new Intl.DateTimeFormat(t, {
6787
7517
  timeZone: e,
6788
7518
  timeZoneName: "short"
6789
- }), i = n.formatToParts(t), s = r.formatToParts(t), l = ((b = i.find((x) => x.type === "timeZoneName")) == null ? void 0 : b.value) || e, d = ((M = s.find((x) => x.type === "timeZoneName")) == null ? void 0 : M.value) || e, m = new Date(t.toLocaleString("en-US", { timeZone: "UTC" })), f = new Date(t.toLocaleString("en-US", { timeZone: e })), u = Math.round((f.getTime() - m.getTime()) / 6e4), p = new Date(t.getFullYear(), 0, 1), k = new Date(t.getFullYear(), 6, 1), g = V(e, p), y = V(e, k), E = V(e, t), C = Math.min(g, y), A = E !== C && g !== y;
7519
+ }), i = a.formatToParts(r), s = n.formatToParts(r), d = ((w = i.find((x) => x.type === "timeZoneName")) == null ? void 0 : w.value) || e, l = ((M = s.find((x) => x.type === "timeZoneName")) == null ? void 0 : M.value) || e, p = new Date(r.toLocaleString("en-US", { timeZone: "UTC" })), f = new Date(r.toLocaleString("en-US", { timeZone: e })), u = Math.round((f.getTime() - p.getTime()) / 6e4), m = new Date(r.getFullYear(), 0, 1), v = new Date(r.getFullYear(), 6, 1), g = K(e, m), E = K(e, v), C = K(e, r), y = Math.min(g, E), A = C !== y && g !== E;
6790
7520
  return {
6791
7521
  id: e,
6792
- displayName: l,
6793
- shortName: d,
7522
+ displayName: d,
7523
+ shortName: l,
6794
7524
  offsetMinutes: u,
6795
7525
  offsetString: Do(u),
6796
7526
  isDST: A
6797
7527
  };
6798
7528
  }
6799
- function ba(e = "en", o = /* @__PURE__ */ new Date()) {
6800
- return Object.values(ie).flat().map((a) => F(a, e, o));
7529
+ function wt(e = "en", o = /* @__PURE__ */ new Date()) {
7530
+ return Object.values(ie).flat().map((t) => F(t, e, o));
6801
7531
  }
6802
- function Ca(e = "en", o = /* @__PURE__ */ new Date()) {
6803
- const t = {};
6804
- for (const [a, n] of Object.entries(ie))
6805
- t[a] = n.map((r) => F(r, e, o));
6806
- return t;
7532
+ function yt(e = "en", o = /* @__PURE__ */ new Date()) {
7533
+ const r = {};
7534
+ for (const [t, a] of Object.entries(ie))
7535
+ r[t] = a.map((n) => F(n, e, o));
7536
+ return r;
6807
7537
  }
6808
- function se(e, o, t) {
6809
- const a = e.toLocaleString("en-US", { timeZone: o }), n = new Date(a), r = e.toLocaleString("en-US", { timeZone: t }), i = new Date(r), s = n.getTime() - i.getTime();
7538
+ function se(e, o, r) {
7539
+ const t = e.toLocaleString("en-US", { timeZone: o }), a = new Date(t), n = e.toLocaleString("en-US", { timeZone: r }), i = new Date(n), s = a.getTime() - i.getTime();
6810
7540
  return new Date(e.getTime() + s);
6811
7541
  }
6812
- function Eo(e, o) {
6813
- const t = o || G();
6814
- return se(e, t, "UTC");
7542
+ function Co(e, o) {
7543
+ const r = o || G();
7544
+ return se(e, r, "UTC");
6815
7545
  }
6816
7546
  function So(e, o) {
6817
- const t = o || G();
6818
- return se(e, "UTC", t);
7547
+ const r = o || G();
7548
+ return se(e, "UTC", r);
6819
7549
  }
6820
- function zo(e, o, t = {}) {
6821
- const a = D(e), { dateStyle: n = "medium", timeStyle: r = "short", nameStyle: i = "short" } = t, s = new Intl.DateTimeFormat(a, {
7550
+ function zo(e, o, r = {}) {
7551
+ const t = D(e), { dateStyle: a = "medium", timeStyle: n = "short", nameStyle: i = "short" } = r, s = new Intl.DateTimeFormat(t, {
6822
7552
  timeZone: o,
6823
- dateStyle: n,
6824
- timeStyle: r
6825
- }), l = new Intl.DateTimeFormat(a, {
7553
+ dateStyle: a,
7554
+ timeStyle: n
7555
+ }), d = new Intl.DateTimeFormat(t, {
6826
7556
  timeZone: o,
6827
- dateStyle: n,
6828
- timeStyle: r,
7557
+ dateStyle: a,
7558
+ timeStyle: n,
6829
7559
  timeZoneName: i
6830
- }), d = new Intl.DateTimeFormat(a, {
7560
+ }), l = new Intl.DateTimeFormat(t, {
6831
7561
  timeZone: o,
6832
7562
  timeZoneName: "short"
6833
7563
  });
6834
7564
  return {
6835
- format: (m) => s.format(m),
6836
- formatWithZone: (m) => l.format(m),
6837
- getOffset: (m) => F(o, e, m).offsetString,
6838
- getAbbreviation: (m) => {
7565
+ format: (p) => s.format(p),
7566
+ formatWithZone: (p) => d.format(p),
7567
+ getOffset: (p) => F(o, e, p).offsetString,
7568
+ getAbbreviation: (p) => {
6839
7569
  var u;
6840
- return ((u = d.formatToParts(m).find((p) => p.type === "timeZoneName")) == null ? void 0 : u.value) || "";
7570
+ return ((u = l.formatToParts(p).find((m) => m.type === "timeZoneName")) == null ? void 0 : u.value) || "";
6841
7571
  }
6842
7572
  };
6843
7573
  }
6844
- function K(e, o = /* @__PURE__ */ new Date()) {
7574
+ function H(e, o = /* @__PURE__ */ new Date()) {
6845
7575
  return F(e, "en", o).isDST;
6846
7576
  }
6847
- function ya(e, o = /* @__PURE__ */ new Date()) {
6848
- const t = K(e, o), a = new Date(o), n = new Date(o);
6849
- for (n.setFullYear(n.getFullYear() + 1); a < n; )
6850
- if (a.setDate(a.getDate() + 1), K(e, a) !== t) {
6851
- a.setDate(a.getDate() - 1);
6852
- const r = new Date(a);
6853
- r.setHours(0, 0, 0, 0);
6854
- const i = new Date(a);
6855
- for (i.setDate(i.getDate() + 2); i.getTime() - r.getTime() > 6e4; ) {
6856
- const s = new Date((r.getTime() + i.getTime()) / 2);
6857
- K(e, s) === t ? r.setTime(s.getTime()) : i.setTime(s.getTime());
7577
+ function Et(e, o = /* @__PURE__ */ new Date()) {
7578
+ const r = H(e, o), t = new Date(o), a = new Date(o);
7579
+ for (a.setFullYear(a.getFullYear() + 1); t < a; )
7580
+ if (t.setDate(t.getDate() + 1), H(e, t) !== r) {
7581
+ t.setDate(t.getDate() - 1);
7582
+ const n = new Date(t);
7583
+ n.setHours(0, 0, 0, 0);
7584
+ const i = new Date(t);
7585
+ for (i.setDate(i.getDate() + 2); i.getTime() - n.getTime() > 6e4; ) {
7586
+ const s = new Date((n.getTime() + i.getTime()) / 2);
7587
+ H(e, s) === r ? n.setTime(s.getTime()) : i.setTime(s.getTime());
6858
7588
  }
6859
7589
  return i;
6860
7590
  }
6861
7591
  return null;
6862
7592
  }
6863
- function Ea(e, o, t) {
6864
- const [a] = P(() => G()), n = o || a, r = w(() => zo(e, n, t), [e, n, t]), i = w(() => F(n, e), [n, e]);
7593
+ function Ct(e, o, r) {
7594
+ const [t] = P(() => G()), a = o || t, n = b(() => zo(e, a, r), [e, a, r]), i = b(() => F(a, e), [a, e]);
6865
7595
  return {
6866
- timezone: n,
7596
+ timezone: a,
6867
7597
  info: i,
6868
- format: r.format,
6869
- formatWithZone: r.formatWithZone,
6870
- getOffset: r.getOffset,
6871
- getAbbreviation: r.getAbbreviation,
6872
- toUTC: (s) => Eo(s, n),
6873
- fromUTC: (s) => So(s, n)
7598
+ format: n.format,
7599
+ formatWithZone: n.formatWithZone,
7600
+ getOffset: n.getOffset,
7601
+ getAbbreviation: n.getAbbreviation,
7602
+ toUTC: (s) => Co(s, a),
7603
+ fromUTC: (s) => So(s, a)
6874
7604
  };
6875
7605
  }
6876
- function V(e, o) {
6877
- const t = o.toLocaleString("en-US", { timeZone: "UTC" }), a = o.toLocaleString("en-US", { timeZone: e }), n = new Date(t), r = new Date(a);
6878
- return Math.round((r.getTime() - n.getTime()) / 6e4);
7606
+ function K(e, o) {
7607
+ const r = o.toLocaleString("en-US", { timeZone: "UTC" }), t = o.toLocaleString("en-US", { timeZone: e }), a = new Date(r), n = new Date(t);
7608
+ return Math.round((n.getTime() - a.getTime()) / 6e4);
6879
7609
  }
6880
7610
  function Do(e) {
6881
- const o = e >= 0 ? "+" : "-", t = Math.abs(e), a = Math.floor(t / 60), n = t % 60;
6882
- return `${o}${a.toString().padStart(2, "0")}:${n.toString().padStart(2, "0")}`;
7611
+ const o = e >= 0 ? "+" : "-", r = Math.abs(e), t = Math.floor(r / 60), a = r % 60;
7612
+ return `${o}${t.toString().padStart(2, "0")}:${a.toString().padStart(2, "0")}`;
6883
7613
  }
6884
- const U = {
7614
+ const W = {
6885
7615
  gregory: {
6886
7616
  id: "gregory",
6887
7617
  displayName: "Gregorian",
@@ -7015,7 +7745,7 @@ const U = {
7015
7745
  isLunar: !1,
7016
7746
  associatedLanguages: ["zh"]
7017
7747
  }
7018
- }, le = {
7748
+ }, de = {
7019
7749
  en: "gregory",
7020
7750
  pl: "gregory",
7021
7751
  de: "gregory",
@@ -7047,70 +7777,70 @@ const U = {
7047
7777
  fil: "gregory",
7048
7778
  ms: "gregory"
7049
7779
  };
7050
- function de(e, o = "gregory", t = {}) {
7051
- const a = D(e), { dateStyle: n = "medium", showEra: r = !1, showWeekday: i = !1 } = t, s = {
7780
+ function le(e, o = "gregory", r = {}) {
7781
+ const t = D(e), { dateStyle: a = "medium", showEra: n = !1, showWeekday: i = !1 } = r, s = {
7052
7782
  calendar: o,
7053
- dateStyle: n
7783
+ dateStyle: a
7054
7784
  };
7055
7785
  i && (delete s.dateStyle, s.weekday = "long", s.year = "numeric", s.month = "long", s.day = "numeric");
7056
- const l = new Intl.DateTimeFormat(a, s), d = {
7786
+ const d = new Intl.DateTimeFormat(t, s), l = {
7057
7787
  calendar: o,
7058
7788
  year: "numeric",
7059
7789
  month: "long",
7060
7790
  day: "numeric",
7061
7791
  era: "long"
7062
- }, m = new Intl.DateTimeFormat(a, d), f = new Intl.DateTimeFormat(a, { calendar: o, month: "long" }), u = new Intl.DateTimeFormat(a, { calendar: o, weekday: "long" });
7792
+ }, p = new Intl.DateTimeFormat(t, l), f = new Intl.DateTimeFormat(t, { calendar: o, month: "long" }), u = new Intl.DateTimeFormat(t, { calendar: o, weekday: "long" });
7063
7793
  return {
7064
- format: (p) => l.format(p),
7065
- formatWithEra: (p) => m.format(p),
7066
- getMonthName: (p) => f.format(p),
7794
+ format: (m) => d.format(m),
7795
+ formatWithEra: (m) => p.format(m),
7796
+ getMonthName: (m) => f.format(m),
7067
7797
  getMonthNames: () => {
7068
- const p = [], k = new Date(2024, 0, 15);
7798
+ const m = [], v = new Date(2024, 0, 15);
7069
7799
  for (let g = 0; g < 12; g++)
7070
- k.setMonth(g), p.push(f.format(k));
7071
- return p;
7800
+ v.setMonth(g), m.push(f.format(v));
7801
+ return m;
7072
7802
  },
7073
- getWeekdayName: (p) => u.format(p),
7803
+ getWeekdayName: (m) => u.format(m),
7074
7804
  getWeekdayNames: () => {
7075
- const p = [], k = new Date(2024, 0, 7);
7805
+ const m = [], v = new Date(2024, 0, 7);
7076
7806
  for (let g = 0; g < 7; g++)
7077
- k.setDate(7 + g), p.push(u.format(k));
7078
- return p;
7807
+ v.setDate(7 + g), m.push(u.format(v));
7808
+ return m;
7079
7809
  },
7080
- parseParts: (p) => {
7081
- var y, E, C, A;
7082
- const g = new Intl.DateTimeFormat(a, {
7810
+ parseParts: (m) => {
7811
+ var E, C, y, A;
7812
+ const g = new Intl.DateTimeFormat(t, {
7083
7813
  calendar: o,
7084
7814
  year: "numeric",
7085
7815
  month: "numeric",
7086
7816
  day: "numeric",
7087
7817
  era: "short"
7088
- }).formatToParts(p);
7818
+ }).formatToParts(m);
7089
7819
  return {
7090
7820
  calendar: o,
7091
- year: parseInt(((y = g.find((b) => b.type === "year")) == null ? void 0 : y.value) || "0", 10),
7092
- month: parseInt(((E = g.find((b) => b.type === "month")) == null ? void 0 : E.value) || "0", 10),
7093
- day: parseInt(((C = g.find((b) => b.type === "day")) == null ? void 0 : C.value) || "0", 10),
7094
- era: (A = g.find((b) => b.type === "era")) == null ? void 0 : A.value,
7095
- gregorianDate: p
7821
+ year: parseInt(((E = g.find((w) => w.type === "year")) == null ? void 0 : E.value) || "0", 10),
7822
+ month: parseInt(((C = g.find((w) => w.type === "month")) == null ? void 0 : C.value) || "0", 10),
7823
+ day: parseInt(((y = g.find((w) => w.type === "day")) == null ? void 0 : y.value) || "0", 10),
7824
+ era: (A = g.find((w) => w.type === "era")) == null ? void 0 : A.value,
7825
+ gregorianDate: m
7096
7826
  };
7097
7827
  },
7098
- getEraName: (p) => {
7099
- var y;
7100
- return (y = new Intl.DateTimeFormat(a, {
7828
+ getEraName: (m) => {
7829
+ var E;
7830
+ return (E = new Intl.DateTimeFormat(t, {
7101
7831
  calendar: o,
7102
7832
  era: "long"
7103
- }).formatToParts(p).find((E) => E.type === "era")) == null ? void 0 : y.value;
7833
+ }).formatToParts(m).find((C) => C.type === "era")) == null ? void 0 : E.value;
7104
7834
  }
7105
7835
  };
7106
7836
  }
7107
- function ce(e, o, t = "en") {
7108
- return de(t, o).parseParts(e);
7837
+ function ce(e, o, r = "en") {
7838
+ return le(r, o).parseParts(e);
7109
7839
  }
7110
7840
  function Ao(e, o = "en") {
7111
7841
  return ce(/* @__PURE__ */ new Date(), e, o);
7112
7842
  }
7113
- const Sa = [
7843
+ const St = [
7114
7844
  "Muharram",
7115
7845
  "Safar",
7116
7846
  "Rabi' al-Awwal",
@@ -7127,10 +7857,10 @@ const Sa = [
7127
7857
  function xo(e) {
7128
7858
  return (11 * e + 14) % 30 < 11;
7129
7859
  }
7130
- function za(e, o) {
7860
+ function zt(e, o) {
7131
7861
  return o === 12 ? xo(e) ? 30 : 29 : o % 2 === 1 ? 30 : 29;
7132
7862
  }
7133
- const Da = [
7863
+ const Dt = [
7134
7864
  "Tishrei",
7135
7865
  "Cheshvan",
7136
7866
  "Kislev",
@@ -7143,7 +7873,7 @@ const Da = [
7143
7873
  "Tammuz",
7144
7874
  "Av",
7145
7875
  "Elul"
7146
- ], Aa = [
7876
+ ], At = [
7147
7877
  "Tishrei",
7148
7878
  "Cheshvan",
7149
7879
  "Kislev",
@@ -7158,7 +7888,7 @@ const Da = [
7158
7888
  "Av",
7159
7889
  "Elul"
7160
7890
  ];
7161
- function xa(e) {
7891
+ function xt(e) {
7162
7892
  return (7 * e + 1) % 19 < 7;
7163
7893
  }
7164
7894
  const Z = [
@@ -7174,11 +7904,11 @@ function To(e) {
7174
7904
  return Z[o];
7175
7905
  return null;
7176
7906
  }
7177
- function Ta(e) {
7907
+ function Tt(e) {
7178
7908
  const o = To(e);
7179
7909
  return o ? e.getFullYear() - o.startDate.getFullYear() + 1 : null;
7180
7910
  }
7181
- const Pa = [
7911
+ const Pt = [
7182
7912
  "Farvardin",
7183
7913
  "Ordibehesht",
7184
7914
  "Khordad",
@@ -7192,7 +7922,7 @@ const Pa = [
7192
7922
  "Bahman",
7193
7923
  "Esfand"
7194
7924
  ];
7195
- function ja(e) {
7925
+ function jt(e) {
7196
7926
  return ((e - 474) % 2820 + 2820) % 2820 * 682 % 2816 < 682;
7197
7927
  }
7198
7928
  const Po = [
@@ -7209,7 +7939,7 @@ const Po = [
7209
7939
  "Dog",
7210
7940
  "Pig"
7211
7941
  ];
7212
- function Na(e) {
7942
+ function Nt(e) {
7213
7943
  return Po[(e - 4) % 12];
7214
7944
  }
7215
7945
  const jo = [
@@ -7224,48 +7954,48 @@ const jo = [
7224
7954
  "Ren",
7225
7955
  "Gui"
7226
7956
  ];
7227
- function Fa(e) {
7957
+ function Ft(e) {
7228
7958
  return jo[(e - 4) % 10];
7229
7959
  }
7230
- function Ma(e, o, t) {
7231
- const a = o || le[e], n = w(
7232
- () => de(e, a, t),
7233
- [e, a, t]
7234
- ), r = w(() => U[a], [a]), i = w(() => Ao(a, e), [a, e]);
7960
+ function Mt(e, o, r) {
7961
+ const t = o || de[e], a = b(
7962
+ () => le(e, t, r),
7963
+ [e, t, r]
7964
+ ), n = b(() => W[t], [t]), i = b(() => Ao(t, e), [t, e]);
7235
7965
  return {
7236
- calendar: a,
7237
- info: r,
7966
+ calendar: t,
7967
+ info: n,
7238
7968
  current: i,
7239
- format: n.format,
7240
- formatWithEra: n.formatWithEra,
7241
- getMonthName: n.getMonthName,
7242
- getMonthNames: n.getMonthNames,
7243
- getWeekdayName: n.getWeekdayName,
7244
- getWeekdayNames: n.getWeekdayNames,
7245
- parseParts: n.parseParts,
7246
- getEraName: n.getEraName,
7247
- toCalendar: (s) => ce(s, a, e)
7969
+ format: a.format,
7970
+ formatWithEra: a.formatWithEra,
7971
+ getMonthName: a.getMonthName,
7972
+ getMonthNames: a.getMonthNames,
7973
+ getWeekdayName: a.getWeekdayName,
7974
+ getWeekdayNames: a.getWeekdayNames,
7975
+ parseParts: a.parseParts,
7976
+ getEraName: a.getEraName,
7977
+ toCalendar: (s) => ce(s, t, e)
7248
7978
  };
7249
7979
  }
7250
- function Oa() {
7251
- return Object.keys(U);
7980
+ function Ot() {
7981
+ return Object.keys(W);
7252
7982
  }
7253
- function Ra(e, o = "en") {
7254
- const t = { ...U[e] };
7983
+ function Rt(e, o = "en") {
7984
+ const r = { ...W[e] };
7255
7985
  try {
7256
- const a = D(o), r = new Intl.DisplayNames([a], { type: "calendar" }).of(e);
7257
- r && (t.displayName = r);
7986
+ const t = D(o), n = new Intl.DisplayNames([t], { type: "calendar" }).of(e);
7987
+ n && (r.displayName = n);
7258
7988
  } catch {
7259
7989
  }
7260
- return t;
7990
+ return r;
7261
7991
  }
7262
- function La(e) {
7263
- const o = le[e], t = /* @__PURE__ */ new Set([o]);
7264
- for (const [a, n] of Object.entries(U))
7265
- n.associatedLanguages.includes(e) && t.add(a);
7266
- return t.add("gregory"), Array.from(t);
7992
+ function Lt(e) {
7993
+ const o = de[e], r = /* @__PURE__ */ new Set([o]);
7994
+ for (const [t, a] of Object.entries(W))
7995
+ a.associatedLanguages.includes(e) && r.add(t);
7996
+ return r.add("gregory"), Array.from(r);
7267
7997
  }
7268
- const $ = {
7998
+ const J = {
7269
7999
  // Lowercase
7270
8000
  a: "ą",
7271
8001
  b: "ɓ",
@@ -7321,7 +8051,7 @@ const $ = {
7321
8051
  Y: "Ÿ",
7322
8052
  Z: "Ž"
7323
8053
  }, No = {
7324
- ...$,
8054
+ ...J,
7325
8055
  // Additional mappings
7326
8056
  a: "ặ",
7327
8057
  e: "ệ",
@@ -7336,60 +8066,60 @@ const $ = {
7336
8066
  U: "Ụ",
7337
8067
  Y: "Ỵ"
7338
8068
  }, Fo = "‪", Mo = "‫", Q = "‬", Oo = "~∼~≈";
7339
- function Ba(e, o = !1) {
7340
- const t = o ? No : $;
7341
- return e.split("").map((a) => t[a] || a).join("");
8069
+ function Bt(e, o = !1) {
8070
+ const r = o ? No : J;
8071
+ return e.split("").map((t) => r[t] || t).join("");
7342
8072
  }
7343
- function Ia(e, o = "[", t = "]") {
7344
- return `${o}${e}${t}`;
8073
+ function It(e, o = "[", r = "]") {
8074
+ return `${o}${e}${r}`;
7345
8075
  }
7346
- function Ro(e, o = 0.3, t = !1) {
7347
- if (t)
8076
+ function Ro(e, o = 0.3, r = !1) {
8077
+ if (r)
7348
8078
  return Lo(e);
7349
- const n = Math.ceil(e.length * (1 + o)) - e.length;
7350
- if (n <= 0)
8079
+ const a = Math.ceil(e.length * (1 + o)) - e.length;
8080
+ if (a <= 0)
7351
8081
  return e;
7352
- const r = Oo[0].repeat(n);
7353
- return e + r;
8082
+ const n = Oo[0].repeat(a);
8083
+ return e + n;
7354
8084
  }
7355
8085
  function Lo(e) {
7356
8086
  const o = /* @__PURE__ */ new Set(["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]);
7357
- return e.split("").map((t) => o.has(t) ? t + t : t).join("");
8087
+ return e.split("").map((r) => o.has(r) ? r + r : r).join("");
7358
8088
  }
7359
8089
  function Bo(e, o = !1) {
7360
8090
  return o ? `${Mo}${e}${Q}` : `${Fo}${e}${Q}`;
7361
8091
  }
7362
- function me(e, o = {}) {
8092
+ function pe(e, o = {}) {
7363
8093
  const {
7364
- addBrackets: t = !0,
7365
- expansionFactor: a = 0.3,
7366
- addAccents: n = !0,
7367
- addBidiMarkers: r = !1,
8094
+ addBrackets: r = !0,
8095
+ expansionFactor: t = 0.3,
8096
+ addAccents: a = !0,
8097
+ addBidiMarkers: n = !1,
7368
8098
  useVowelDoubling: i = !1,
7369
8099
  preservePlaceholders: s = !0,
7370
- preserveHtml: l = !0,
7371
- prefix: d = "[",
7372
- suffix: m = "]"
8100
+ preserveHtml: d = !0,
8101
+ prefix: l = "[",
8102
+ suffix: p = "]"
7373
8103
  } = o, f = /* @__PURE__ */ new Map();
7374
- let u = e, p = 0;
7375
- s && (u = u.replace(/\{[^}]+\}/g, (k) => {
7376
- const g = `__PH${p++}__`;
7377
- return f.set(g, k), g;
7378
- })), l && (u = u.replace(/<[^>]+>/g, (k) => {
7379
- const g = `__PH${p++}__`;
7380
- return f.set(g, k), g;
7381
- })), n && (u = Io(u, f)), a > 0 && (u = Ro(u, a, i)), r && (u = Bo(u)), t && (u = `${d}${u}${m}`);
7382
- for (const [k, g] of f.entries())
7383
- u = u.replace(k, g);
8104
+ let u = e, m = 0;
8105
+ s && (u = u.replace(/\{[^}]+\}/g, (v) => {
8106
+ const g = `__PH${m++}__`;
8107
+ return f.set(g, v), g;
8108
+ })), d && (u = u.replace(/<[^>]+>/g, (v) => {
8109
+ const g = `__PH${m++}__`;
8110
+ return f.set(g, v), g;
8111
+ })), a && (u = Io(u, f)), t > 0 && (u = Ro(u, t, i)), n && (u = Bo(u)), r && (u = `${l}${u}${p}`);
8112
+ for (const [v, g] of f.entries())
8113
+ u = u.replace(v, g);
7384
8114
  return u;
7385
8115
  }
7386
8116
  function Io(e, o) {
7387
- const t = new Set(o.keys());
7388
- return e.split("").map((a) => {
7389
- for (const n of t)
7390
- if (e.includes(n) && n.includes(a))
7391
- return a;
7392
- return $[a] || a;
8117
+ const r = new Set(o.keys());
8118
+ return e.split("").map((t) => {
8119
+ for (const a of r)
8120
+ if (e.includes(a) && a.includes(t))
8121
+ return t;
8122
+ return J[t] || t;
7393
8123
  }).join("");
7394
8124
  }
7395
8125
  function T(e) {
@@ -7426,70 +8156,70 @@ function T(e) {
7426
8156
  };
7427
8157
  }
7428
8158
  }
7429
- function Ua(e, o) {
7430
- const t = {};
7431
- for (const [a, n] of Object.entries(e))
7432
- t[a] = me(n, o);
7433
- return t;
8159
+ function Wt(e, o) {
8160
+ const r = {};
8161
+ for (const [t, a] of Object.entries(e))
8162
+ r[t] = pe(a, o);
8163
+ return r;
7434
8164
  }
7435
- function Uo(e) {
8165
+ function Wo(e) {
7436
8166
  return /[^\x00-\x7F]/.test(e);
7437
8167
  }
7438
- function Wo(e) {
8168
+ function Vo(e) {
7439
8169
  if (!e || /^[\d.,-]+$/.test(e) || e.startsWith("["))
7440
8170
  return !1;
7441
- const o = /[a-zA-Z]{2,}/.test(e), t = Uo(e);
7442
- return o && !t;
8171
+ const o = /[a-zA-Z]{2,}/.test(e), r = Wo(e);
8172
+ return o && !r;
7443
8173
  }
7444
- function Wa(e, o) {
7445
- const t = {
8174
+ function Vt(e, o) {
8175
+ const r = {
7446
8176
  totalKeys: Object.keys(e).length,
7447
8177
  hardcodedStrings: [],
7448
8178
  emptyValues: [],
7449
8179
  placeholderMismatches: [],
7450
8180
  potentialIssues: 0
7451
8181
  };
7452
- for (const [a, n] of Object.entries(e)) {
7453
- if (!n || n.trim() === "") {
7454
- t.emptyValues.push(a), t.potentialIssues++;
8182
+ for (const [t, a] of Object.entries(e)) {
8183
+ if (!a || a.trim() === "") {
8184
+ r.emptyValues.push(t), r.potentialIssues++;
7455
8185
  continue;
7456
8186
  }
7457
- if (Wo(n) && t.hardcodedStrings.push(a), o && o[a]) {
7458
- const r = X(n), i = X(o[a]), s = r.filter((d) => !i.includes(d)), l = i.filter((d) => !r.includes(d));
7459
- (s.length > 0 || l.length > 0) && (t.placeholderMismatches.push({
7460
- key: a,
8187
+ if (Vo(a) && r.hardcodedStrings.push(t), o && o[t]) {
8188
+ const n = X(a), i = X(o[t]), s = n.filter((l) => !i.includes(l)), d = i.filter((l) => !n.includes(l));
8189
+ (s.length > 0 || d.length > 0) && (r.placeholderMismatches.push({
8190
+ key: t,
7461
8191
  placeholders: [
7462
- ...s.map((d) => `-${d}`),
7463
- ...l.map((d) => `+${d}`)
8192
+ ...s.map((l) => `-${l}`),
8193
+ ...d.map((l) => `+${l}`)
7464
8194
  ]
7465
- }), t.potentialIssues++);
8195
+ }), r.potentialIssues++);
7466
8196
  }
7467
8197
  }
7468
- return t;
8198
+ return r;
7469
8199
  }
7470
8200
  function X(e) {
7471
- return (e.match(/\{([^}]+)\}/g) || []).map((t) => t.replace(/[{}]/g, "").split(",")[0].trim());
8201
+ return (e.match(/\{([^}]+)\}/g) || []).map((r) => r.replace(/[{}]/g, "").split(",")[0].trim());
7472
8202
  }
7473
8203
  const ue = I(null);
7474
- function Ha({
8204
+ function Ut({
7475
8205
  children: e,
7476
8206
  initialEnabled: o = !1,
7477
- initialMode: t = "full"
8207
+ initialMode: r = "full"
7478
8208
  }) {
7479
- const [a, n] = P(o), [r, i] = P(t), s = w(() => T(r), [r]), l = w(() => (m) => a ? me(m, s) : m, [a, s]), d = w(
8209
+ const [t, a] = P(o), [n, i] = P(r), s = b(() => T(n), [n]), d = b(() => (p) => t ? pe(p, s) : p, [t, s]), l = b(
7480
8210
  () => ({
7481
- enabled: a,
7482
- mode: r,
8211
+ enabled: t,
8212
+ mode: n,
7483
8213
  options: s,
7484
- toggle: () => n((m) => !m),
8214
+ toggle: () => a((p) => !p),
7485
8215
  setMode: i,
7486
- transform: l
8216
+ transform: d
7487
8217
  }),
7488
- [a, r, s, l]
8218
+ [t, n, s, d]
7489
8219
  );
7490
- return /* @__PURE__ */ B(ue.Provider, { value: d, children: e });
8220
+ return /* @__PURE__ */ B(ue.Provider, { value: l, children: e });
7491
8221
  }
7492
- function Ka() {
8222
+ function Ht() {
7493
8223
  const e = N(ue);
7494
8224
  return e || {
7495
8225
  enabled: !1,
@@ -7502,7 +8232,7 @@ function Ka() {
7502
8232
  transform: (o) => o
7503
8233
  };
7504
8234
  }
7505
- const Va = {
8235
+ const Kt = {
7506
8236
  /** Minimal: brackets only */
7507
8237
  MINIMAL: { addBrackets: !0, addAccents: !1, expansionFactor: 0 },
7508
8238
  /** Accented: brackets + accents */
@@ -7520,73 +8250,73 @@ const Va = {
7520
8250
  /** CJK: Short expansion, no accents (CJK often shorter) */
7521
8251
  CJK: { addBrackets: !0, addAccents: !1, expansionFactor: -0.1 }
7522
8252
  };
7523
- class Ho {
8253
+ class Uo {
7524
8254
  constructor(o = 0) {
7525
8255
  this.cache = /* @__PURE__ */ new Map(), this.ttl = o;
7526
8256
  }
7527
- getCacheKey(o, t) {
7528
- return t ? `${o}:${t}` : o;
8257
+ getCacheKey(o, r) {
8258
+ return r ? `${o}:${r}` : o;
7529
8259
  }
7530
- get(o, t) {
7531
- const a = this.getCacheKey(o, t), n = this.cache.get(a);
7532
- return n ? this.ttl > 0 && Date.now() > n.expiresAt ? (this.cache.delete(a), null) : n.data : null;
8260
+ get(o, r) {
8261
+ const t = this.getCacheKey(o, r), a = this.cache.get(t);
8262
+ return a ? this.ttl > 0 && Date.now() > a.expiresAt ? (this.cache.delete(t), null) : a.data : null;
7533
8263
  }
7534
- set(o, t, a) {
7535
- const n = this.getCacheKey(o, a), r = Date.now();
7536
- this.cache.set(n, {
7537
- data: t,
7538
- loadedAt: r,
7539
- expiresAt: this.ttl > 0 ? r + this.ttl : 1 / 0
8264
+ set(o, r, t) {
8265
+ const a = this.getCacheKey(o, t), n = Date.now();
8266
+ this.cache.set(a, {
8267
+ data: r,
8268
+ loadedAt: n,
8269
+ expiresAt: this.ttl > 0 ? n + this.ttl : 1 / 0
7540
8270
  });
7541
8271
  }
7542
- has(o, t) {
7543
- return this.get(o, t) !== null;
8272
+ has(o, r) {
8273
+ return this.get(o, r) !== null;
7544
8274
  }
7545
- delete(o, t) {
7546
- if (t)
7547
- this.cache.delete(this.getCacheKey(o, t));
8275
+ delete(o, r) {
8276
+ if (r)
8277
+ this.cache.delete(this.getCacheKey(o, r));
7548
8278
  else
7549
- for (const a of this.cache.keys())
7550
- (a === o || a.startsWith(`${o}:`)) && this.cache.delete(a);
8279
+ for (const t of this.cache.keys())
8280
+ (t === o || t.startsWith(`${o}:`)) && this.cache.delete(t);
7551
8281
  }
7552
8282
  clear() {
7553
8283
  this.cache.clear();
7554
8284
  }
7555
8285
  getStats() {
7556
8286
  const o = /* @__PURE__ */ new Set();
7557
- for (const t of this.cache.keys())
7558
- o.add(t.split(":")[0]);
8287
+ for (const r of this.cache.keys())
8288
+ o.add(r.split(":")[0]);
7559
8289
  return {
7560
8290
  size: this.cache.size,
7561
8291
  languages: Array.from(o)
7562
8292
  };
7563
8293
  }
7564
8294
  }
7565
- function pe(e) {
8295
+ function me(e) {
7566
8296
  const {
7567
8297
  loadFn: o,
7568
- fallbackLang: t = "en",
7569
- cacheTtl: a = 0,
7570
- preloadLanguages: n = [],
7571
- namespaces: r = [],
8298
+ fallbackLang: r = "en",
8299
+ cacheTtl: t = 0,
8300
+ preloadLanguages: a = [],
8301
+ namespaces: n = [],
7572
8302
  defaultNamespace: i,
7573
8303
  onLoadStart: s,
7574
- onLoadComplete: l,
7575
- onLoadError: d
7576
- } = e, m = new Ho(a), f = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map();
7577
- let p = t;
7578
- const k = /* @__PURE__ */ new Set();
8304
+ onLoadComplete: d,
8305
+ onLoadError: l
8306
+ } = e, p = new Uo(t), f = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map();
8307
+ let m = r;
8308
+ const v = /* @__PURE__ */ new Set();
7579
8309
  function g() {
7580
- const c = E();
7581
- k.forEach((h) => h(c));
8310
+ const c = C();
8311
+ v.forEach((h) => h(c));
7582
8312
  }
7583
- function y(c, h) {
8313
+ function E(c, h) {
7584
8314
  return h ? `${c}:${h}` : c;
7585
8315
  }
7586
- function E() {
8316
+ function C() {
7587
8317
  const c = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Set();
7588
8318
  for (const S of j)
7589
- m.has(S) && c.add(S);
8319
+ p.has(S) && c.add(S);
7590
8320
  for (const S of f) {
7591
8321
  const O = S.split(":")[0];
7592
8322
  h.add(O);
@@ -7595,43 +8325,43 @@ function pe(e) {
7595
8325
  loadedLanguages: c,
7596
8326
  loadingLanguages: h,
7597
8327
  failedLanguages: new Map(u),
7598
- currentLanguage: p
8328
+ currentLanguage: m
7599
8329
  };
7600
8330
  }
7601
- async function C(c, h) {
7602
- const S = y(c, h), O = m.get(c, h);
8331
+ async function y(c, h) {
8332
+ const S = E(c, h), O = p.get(c, h);
7603
8333
  if (O)
7604
8334
  return O;
7605
8335
  if (f.has(S))
7606
8336
  return new Promise((z) => {
7607
8337
  const R = setInterval(() => {
7608
- f.has(S) || (clearInterval(R), z(m.get(c, h)));
8338
+ f.has(S) || (clearInterval(R), z(p.get(c, h)));
7609
8339
  }, 50);
7610
8340
  });
7611
8341
  f.add(S), u.delete(c), s == null || s(c, h), g();
7612
8342
  try {
7613
8343
  const z = await o(c, h);
7614
- return m.set(c, z, h), l == null || l(c, h), z;
8344
+ return p.set(c, z, h), d == null || d(c, h), z;
7615
8345
  } catch (z) {
7616
8346
  const R = z instanceof Error ? z : new Error(String(z));
7617
- return u.set(c, R), d == null || d(c, R, h), c !== t && !h ? (console.warn(`Failed to load ${c}, falling back to ${t}`), C(t, h)) : null;
8347
+ return u.set(c, R), l == null || l(c, R, h), c !== r && !h ? (console.warn(`Failed to load ${c}, falling back to ${r}`), y(r, h)) : null;
7618
8348
  } finally {
7619
8349
  f.delete(S), g();
7620
8350
  }
7621
8351
  }
7622
8352
  async function A(c) {
7623
- await Promise.all(c.map((h) => C(h)));
8353
+ await Promise.all(c.map((h) => y(h)));
7624
8354
  }
7625
- async function b() {
7626
- n.length !== 0 && await Promise.allSettled(
7627
- n.map((c) => r.length > 0 ? Promise.all(r.map((h) => C(c, h))) : C(c))
8355
+ async function w() {
8356
+ a.length !== 0 && await Promise.allSettled(
8357
+ a.map((c) => n.length > 0 ? Promise.all(n.map((h) => y(c, h))) : y(c))
7628
8358
  );
7629
8359
  }
7630
8360
  function M(c, h) {
7631
- return m.get(c, h);
8361
+ return p.get(c, h);
7632
8362
  }
7633
8363
  function x(c, h) {
7634
- return m.has(c, h);
8364
+ return p.has(c, h);
7635
8365
  }
7636
8366
  function he(c) {
7637
8367
  for (const h of f)
@@ -7640,64 +8370,64 @@ function pe(e) {
7640
8370
  return !1;
7641
8371
  }
7642
8372
  function fe() {
7643
- return m.getStats().languages;
8373
+ return p.getStats().languages;
7644
8374
  }
7645
- function ke(c) {
7646
- c ? m.delete(c) : m.clear(), g();
8375
+ function ve(c) {
8376
+ c ? p.delete(c) : p.clear(), g();
7647
8377
  }
7648
- async function we(c) {
7649
- x(c) || await C(c), p = c, g();
8378
+ async function be(c) {
8379
+ x(c) || await y(c), m = c, g();
7650
8380
  }
7651
- function ve() {
7652
- return p;
8381
+ function ke() {
8382
+ return m;
7653
8383
  }
7654
- function be(c) {
7655
- return k.add(c), () => k.delete(c);
8384
+ function we(c) {
8385
+ return v.add(c), () => v.delete(c);
7656
8386
  }
7657
8387
  return {
7658
- loadLanguage: C,
8388
+ loadLanguage: y,
7659
8389
  loadLanguages: A,
7660
- preloadLanguages: b,
8390
+ preloadLanguages: w,
7661
8391
  getTranslations: M,
7662
8392
  isLoaded: x,
7663
8393
  isLoading: he,
7664
8394
  getLoadedLanguages: fe,
7665
- clearCache: ke,
7666
- getState: E,
7667
- setLanguage: we,
7668
- getCurrentLanguage: ve,
7669
- subscribe: be
8395
+ clearCache: ve,
8396
+ getState: C,
8397
+ setLanguage: be,
8398
+ getCurrentLanguage: ke,
8399
+ subscribe: we
7670
8400
  };
7671
8401
  }
7672
- function Za(e, o) {
7673
- return pe({
8402
+ function Zt(e, o) {
8403
+ return me({
7674
8404
  ...o,
7675
- loadFn: async (t, a) => {
7676
- const n = a ? `${e}/${t}/${a}.json` : `${e}/${t}.json`, r = await fetch(n);
7677
- if (!r.ok)
7678
- throw new Error(`Failed to load translations: ${r.status}`);
7679
- return r.json();
8405
+ loadFn: async (r, t) => {
8406
+ const a = t ? `${e}/${r}/${t}.json` : `${e}/${r}.json`, n = await fetch(a);
8407
+ if (!n.ok)
8408
+ throw new Error(`Failed to load translations: ${n.status}`);
8409
+ return n.json();
7680
8410
  }
7681
8411
  });
7682
8412
  }
7683
- function qa(e, o) {
7684
- return pe({
8413
+ function qt(e, o) {
8414
+ return me({
7685
8415
  ...o,
7686
- loadFn: async (t, a) => (await e(t, a)).default
8416
+ loadFn: async (r, t) => (await e(r, t)).default
7687
8417
  });
7688
8418
  }
7689
8419
  const ge = I(null);
7690
- function Ga({
8420
+ function Gt({
7691
8421
  children: e,
7692
8422
  loader: o,
7693
- initialLanguage: t,
7694
- namespace: a
8423
+ initialLanguage: r,
8424
+ namespace: t
7695
8425
  }) {
7696
- const [n, r] = P(() => o.getState()), [i, s] = P(null);
7697
- L(() => o.subscribe(r), [o]), L(() => {
7698
- t && !o.isLoaded(t, a) && o.loadLanguage(t, a).catch(s);
7699
- }, [o, t, a]);
7700
- const l = w(() => o.getTranslations(n.currentLanguage, a) || {}, [o, n.currentLanguage, a]), d = ee(
8426
+ const [a, n] = P(() => o.getState()), [i, s] = P(null);
8427
+ L(() => o.subscribe(n), [o]), L(() => {
8428
+ r && !o.isLoaded(r, t) && o.loadLanguage(r, t).catch(s);
8429
+ }, [o, r, t]);
8430
+ const d = b(() => o.getTranslations(a.currentLanguage, t) || {}, [o, a.currentLanguage, t]), l = ee(
7701
8431
  async (f) => {
7702
8432
  s(null);
7703
8433
  try {
@@ -7707,43 +8437,43 @@ function Ga({
7707
8437
  }
7708
8438
  },
7709
8439
  [o]
7710
- ), m = w(
8440
+ ), p = b(
7711
8441
  () => ({
7712
8442
  loader: o,
7713
- translations: l,
7714
- isLoading: n.loadingLanguages.size > 0,
8443
+ translations: d,
8444
+ isLoading: a.loadingLanguages.size > 0,
7715
8445
  error: i,
7716
- setLanguage: d,
7717
- currentLanguage: n.currentLanguage,
7718
- loadedLanguages: Array.from(n.loadedLanguages)
8446
+ setLanguage: l,
8447
+ currentLanguage: a.currentLanguage,
8448
+ loadedLanguages: Array.from(a.loadedLanguages)
7719
8449
  }),
7720
- [o, l, n, i, d]
8450
+ [o, d, a, i, l]
7721
8451
  );
7722
- return /* @__PURE__ */ B(ge.Provider, { value: m, children: e });
8452
+ return /* @__PURE__ */ B(ge.Provider, { value: p, children: e });
7723
8453
  }
7724
- function Ko() {
8454
+ function Ho() {
7725
8455
  const e = N(ge);
7726
8456
  if (!e)
7727
8457
  throw new Error("useDynamicI18n must be used within DynamicI18nProvider");
7728
8458
  return e;
7729
8459
  }
7730
- function $a(e) {
7731
- const { translations: o, currentLanguage: t, loader: a, isLoading: n } = Ko();
8460
+ function Jt(e) {
8461
+ const { translations: o, currentLanguage: r, loader: t, isLoading: a } = Ho();
7732
8462
  return L(() => {
7733
- e && !a.isLoaded(t, e) && a.loadLanguage(t, e);
7734
- }, [a, t, e]), { t: ee(
8463
+ e && !t.isLoaded(r, e) && t.loadLanguage(r, e);
8464
+ }, [t, r, e]), { t: ee(
7735
8465
  (i, s) => {
7736
- let l = o[i] || i;
8466
+ let d = o[i] || i;
7737
8467
  if (s)
7738
- for (const [d, m] of Object.entries(s))
7739
- l = l.replace(new RegExp(`\\{${d}\\}`, "g"), String(m));
7740
- return l;
8468
+ for (const [l, p] of Object.entries(s))
8469
+ d = d.replace(new RegExp(`\\{${l}\\}`, "g"), String(p));
8470
+ return d;
7741
8471
  },
7742
8472
  [o]
7743
- ), isLoading: n, currentLanguage: t };
8473
+ ), isLoading: a, currentLanguage: r };
7744
8474
  }
7745
- function Ja(e, o, t) {
7746
- switch (t) {
8475
+ function Yt(e, o, r) {
8476
+ switch (r) {
7747
8477
  case "immediate":
7748
8478
  e.loadLanguages(o);
7749
8479
  break;
@@ -7754,142 +8484,142 @@ function Ja(e, o, t) {
7754
8484
  break;
7755
8485
  case "visible":
7756
8486
  if ("IntersectionObserver" in window) {
7757
- const a = new IntersectionObserver(
8487
+ const t = new IntersectionObserver(
7758
8488
  () => {
7759
- e.loadLanguages(o), a.disconnect();
8489
+ e.loadLanguages(o), t.disconnect();
7760
8490
  },
7761
8491
  { threshold: 0.1 }
7762
8492
  );
7763
- a.observe(document.body);
8493
+ t.observe(document.body);
7764
8494
  } else
7765
8495
  e.loadLanguages(o);
7766
8496
  break;
7767
8497
  case "interaction": {
7768
- const a = () => {
7769
- e.loadLanguages(o), window.removeEventListener("click", a), window.removeEventListener("keydown", a), window.removeEventListener("touchstart", a);
8498
+ const t = () => {
8499
+ e.loadLanguages(o), window.removeEventListener("click", t), window.removeEventListener("keydown", t), window.removeEventListener("touchstart", t);
7770
8500
  };
7771
- window.addEventListener("click", a, { once: !0 }), window.addEventListener("keydown", a, { once: !0 }), window.addEventListener("touchstart", a, { once: !0 });
8501
+ window.addEventListener("click", t, { once: !0 }), window.addEventListener("keydown", t, { once: !0 }), window.addEventListener("touchstart", t, { once: !0 });
7772
8502
  break;
7773
8503
  }
7774
8504
  }
7775
8505
  }
7776
- async function _a(e, o) {
7777
- const { fallback: t = "en", preferredLanguages: a = [] } = o || {};
7778
- for (const r of a)
7779
- if (j.includes(r))
7780
- return await e.setLanguage(r), r;
7781
- const n = navigator.language.split("-")[0].toLowerCase();
7782
- return j.includes(n) ? (await e.setLanguage(n), n) : (await e.setLanguage(t), t);
8506
+ async function $t(e, o) {
8507
+ const { fallback: r = "en", preferredLanguages: t = [] } = o || {};
8508
+ for (const n of t)
8509
+ if (j.includes(n))
8510
+ return await e.setLanguage(n), n;
8511
+ const a = navigator.language.split("-")[0].toLowerCase();
8512
+ return j.includes(a) ? (await e.setLanguage(a), a) : (await e.setLanguage(r), r);
7783
8513
  }
7784
8514
  export {
7785
- U as CALENDAR_INFO,
8515
+ W as CALENDAR_INFO,
7786
8516
  jo as CELESTIAL_STEMS,
7787
8517
  Po as CHINESE_ZODIAC,
7788
- le as DEFAULT_CALENDAR,
7789
- Ga as DynamicI18nProvider,
7790
- Da as HEBREW_MONTHS,
7791
- Aa as HEBREW_MONTHS_LEAP,
7792
- Sa as HIJRI_MONTHS,
8518
+ de as DEFAULT_CALENDAR,
8519
+ Gt as DynamicI18nProvider,
8520
+ Dt as HEBREW_MONTHS,
8521
+ At as HEBREW_MONTHS_LEAP,
8522
+ St as HIJRI_MONTHS,
7793
8523
  Z as JAPANESE_ERAS,
7794
- re as NICE_GLOSSARY,
7795
- v as NICE_I18N_DICTIONARIES,
7796
- Ye as NICE_I18N_VARIANTS,
8524
+ ne as NICE_GLOSSARY,
8525
+ k as NICE_I18N_DICTIONARIES,
8526
+ _e as NICE_I18N_VARIANTS,
7797
8527
  j as NICE_SUPPORTED_LANGS,
7798
8528
  Go as NiceI18nProvider,
7799
- Pa as PERSIAN_MONTHS,
7800
- Va as PSEUDO_PRESETS,
7801
- Ha as PseudoLocalizationProvider,
7802
- na as RTLProvider,
7803
- H as RTL_CSS_VARS,
7804
- ro as RTL_LANGUAGES,
8529
+ Pt as PERSIAN_MONTHS,
8530
+ Kt as PSEUDO_PRESETS,
8531
+ Ut as PseudoLocalizationProvider,
8532
+ at as RTLProvider,
8533
+ U as RTL_CSS_VARS,
8534
+ no as RTL_LANGUAGES,
7805
8535
  ie as TIMEZONE_GROUPS,
7806
- Ba as addAccents,
8536
+ Bt as addAccents,
7807
8537
  Bo as addBidiMarkers,
7808
- Ia as addBrackets,
7809
- Wa as analyzeDictionary,
7810
- sa as analyzeStylesForRTL,
7811
- Uo as containsNonAscii,
8538
+ It as addBrackets,
8539
+ Vt as analyzeDictionary,
8540
+ st as analyzeStylesForRTL,
8541
+ Wo as containsNonAscii,
7812
8542
  se as convertTimezone,
7813
- de as createCalendarFormatter,
7814
- vo as createCurrencyFormatter,
8543
+ le as createCalendarFormatter,
8544
+ ko as createCurrencyFormatter,
7815
8545
  fo as createDateFormatter,
7816
- pe as createDynamicLoader,
7817
- Za as createFetchLoader,
8546
+ me as createDynamicLoader,
8547
+ Zt as createFetchLoader,
7818
8548
  Qo as createICUTranslator,
7819
- qa as createImportLoader,
7820
- wo as createNumberFormatter,
7821
- ko as createTimeFormatter,
8549
+ qt as createImportLoader,
8550
+ bo as createNumberFormatter,
8551
+ vo as createTimeFormatter,
7822
8552
  zo as createTimezoneFormatter,
7823
- Jo as createTranslator,
7824
- _a as detectAndLoad,
7825
- Yo as detectBrowserLanguage,
7826
- Wo as detectHardcodedText,
8553
+ Yo as createTranslator,
8554
+ $t as detectAndLoad,
8555
+ _o as detectBrowserLanguage,
8556
+ Vo as detectHardcodedText,
7827
8557
  G as detectTimezone,
7828
8558
  Ro as expandText,
7829
- fa as findSimilarTranslation,
8559
+ ft as findSimilarTranslation,
7830
8560
  co as flipAlignment,
7831
- ta as flipHorizontal,
7832
- no as formatICU,
7833
- _o as formatMessage,
8561
+ rt as flipHorizontal,
8562
+ ao as formatICU,
8563
+ $o as formatMessage,
7834
8564
  So as fromUTC,
7835
- ma as generateCoverageReport,
7836
- ca as generateTranslationCode,
7837
- ba as getAllTimezones,
8565
+ pt as generateCoverageReport,
8566
+ ct as generateTranslationCode,
8567
+ wt as getAllTimezones,
7838
8568
  go as getAllTranslationStats,
7839
- Oa as getAvailableCalendars,
7840
- Ra as getCalendarInfo,
7841
- Fa as getCelestialStem,
7842
- Na as getChineseZodiac,
8569
+ Ot as getAvailableCalendars,
8570
+ Rt as getCalendarInfo,
8571
+ Ft as getCelestialStem,
8572
+ Nt as getChineseZodiac,
7843
8573
  Ao as getCurrentCalendarDate,
7844
- aa as getDocumentDirection,
7845
- ka as getGlossaryForLanguage,
7846
- za as getHijriMonthDays,
8574
+ tt as getDocumentDirection,
8575
+ vt as getGlossaryForLanguage,
8576
+ zt as getHijriMonthDays,
7847
8577
  To as getJapaneseEra,
7848
- Ta as getJapaneseYear,
8578
+ Tt as getJapaneseYear,
7849
8579
  D as getLocaleTag,
7850
- mo as getLogicalProperty,
8580
+ po as getLogicalProperty,
7851
8581
  uo as getMissingTranslations,
7852
- ya as getNextDSTTransition,
7853
- te as getOrdinalCategory,
7854
- ae as getPluralCategory,
8582
+ Et as getNextDSTTransition,
8583
+ re as getOrdinalCategory,
8584
+ te as getPluralCategory,
7855
8585
  T as getPseudoLocalizationPreset,
7856
- la as getRTLCSSVars,
7857
- La as getRecommendedCalendars,
7858
- da as getSourceKeys,
8586
+ dt as getRTLCSSVars,
8587
+ Lt as getRecommendedCalendars,
8588
+ lt as getSourceKeys,
7859
8589
  io as getTextDirection,
7860
8590
  F as getTimezoneInfo,
7861
- Ca as getTimezonesGrouped,
7862
- po as getTranslationStats,
7863
- K as isDSTActive,
7864
- xa as isHebrewLeapYear,
8591
+ yt as getTimezonesGrouped,
8592
+ mo as getTranslationStats,
8593
+ H as isDSTActive,
8594
+ xt as isHebrewLeapYear,
7865
8595
  xo as isHijriLeapYear,
7866
- ja as isPersianLeapYear,
7867
- ne as isRTLLanguage,
8596
+ jt as isPersianLeapYear,
8597
+ ae as isRTLLanguage,
7868
8598
  Xe as isSupported,
7869
- va as isValidTimezone,
7870
- Co as lookupGlossary,
7871
- ea as ordinal,
8599
+ kt as isValidTimezone,
8600
+ yo as lookupGlossary,
8601
+ et as ordinal,
7872
8602
  Xo as plural,
7873
- Ja as preloadWithStrategy,
7874
- me as pseudoLocalize,
7875
- Ua as pseudoLocalizeDictionary,
8603
+ Yt as preloadWithStrategy,
8604
+ pe as pseudoLocalize,
8605
+ Wt as pseudoLocalizeDictionary,
7876
8606
  qo as resolvePlVariant,
7877
8607
  lo as rtlValue,
7878
- oa as select,
8608
+ ot as select,
7879
8609
  so as setDocumentDirection,
7880
8610
  ce as toCalendar,
7881
- Eo as toUTC,
7882
- Ma as useCalendar,
7883
- Ko as useDynamicI18n,
7884
- $a as useDynamicTranslation,
7885
- ia as useIsRTL,
7886
- ha as useNiceCurrencyFormat,
7887
- ua as useNiceDateFormat,
7888
- ga as useNiceNumberFormat,
7889
- pa as useNiceTimeFormat,
7890
- $o as useNiceTranslation,
7891
- Ka as usePseudoLocalization,
7892
- ra as useRTL,
7893
- Ea as useTimezone,
7894
- wa as validateAgainstGlossary
8611
+ Co as toUTC,
8612
+ Mt as useCalendar,
8613
+ Ho as useDynamicI18n,
8614
+ Jt as useDynamicTranslation,
8615
+ it as useIsRTL,
8616
+ ht as useNiceCurrencyFormat,
8617
+ ut as useNiceDateFormat,
8618
+ gt as useNiceNumberFormat,
8619
+ mt as useNiceTimeFormat,
8620
+ Jo as useNiceTranslation,
8621
+ Ht as usePseudoLocalization,
8622
+ nt as useRTL,
8623
+ Ct as useTimezone,
8624
+ bt as validateAgainstGlossary
7895
8625
  };