@nice2dev/i18n 1.0.22 → 1.0.23

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,6 +1,6 @@
1
1
  import { jsx as O } from "react/jsx-runtime";
2
- import { useMemo as b, useContext as B, createContext as I, useEffect as L, useState as x, useCallback as ee } from "react";
3
- const T = [
2
+ import { useMemo as b, useContext as B, createContext as I, useEffect as L, useState as T, useCallback as ee } from "react";
3
+ const x = [
4
4
  "en",
5
5
  "pl",
6
6
  "de",
@@ -40,7 +40,9 @@ const T = [
40
40
  // Filipino
41
41
  "ms"
42
42
  // Malay
43
- ], Ee = {
43
+ ], ke = {
44
+ "tutorial.viewEditor.intro.title": "View editor",
45
+ "tutorial.viewEditor.intro.content": "Author any view kind from one place: choose the kind (or scaffold from an entity), drag controls from the palette into the grid cells, then configure each cell — data binding, role permissions and event actions. Switch Design / Preview / Source, and Save when valid.",
44
46
  // ── Global / Generic ──
45
47
  ok: "OK",
46
48
  cancel: "Cancel",
@@ -960,6 +962,8 @@ const T = [
960
962
  "vectorEditor.layers.lock": "Lock",
961
963
  "vectorEditor.layers.unlock": "Unlock"
962
964
  }, ye = {
965
+ "tutorial.viewEditor.intro.title": "Edytor widoków",
966
+ "tutorial.viewEditor.intro.content": "Twórz dowolny rodzaj widoku w jednym miejscu: wybierz rodzaj (lub wygeneruj z encji), przeciągaj kontrolki z palety do komórek siatki, a następnie skonfiguruj każdą komórkę — wiązanie danych, uprawnienia ról i akcje zdarzeń. Przełączaj Projekt / Podgląd / Źródło i zapisz, gdy widok jest poprawny.",
963
967
  ok: "OK",
964
968
  cancel: "Anuluj",
965
969
  save: "Zapisz",
@@ -1840,6 +1844,8 @@ const T = [
1840
1844
  "vectorEditor.layers.lock": "Zablokuj",
1841
1845
  "vectorEditor.layers.unlock": "Odblokuj"
1842
1846
  }, ze = {
1847
+ "tutorial.viewEditor.intro.title": "Ansichts-Editor",
1848
+ "tutorial.viewEditor.intro.content": "Erstellen Sie jede Ansichtsart an einem Ort: Wählen Sie die Art (oder generieren Sie aus einer Entität), ziehen Sie Steuerelemente aus der Palette in die Rasterzellen und konfigurieren Sie dann jede Zelle — Datenbindung, Rollenberechtigungen und Ereignisaktionen. Wechseln Sie Design / Vorschau / Quelle und speichern Sie, wenn gültig.",
1843
1849
  ok: "OK",
1844
1850
  cancel: "Abbrechen",
1845
1851
  save: "Speichern",
@@ -2714,6 +2720,8 @@ const T = [
2714
2720
  "tutorial.dmxEditor.intro.content": "Wählen Sie das FTDI-Gerät und den Port und stellen Sie dann den Wert jedes DMX-Kanals mit den Reglern ein, um Ihre Lichtgeräte live zu steuern.",
2715
2721
  "sidebar.prefs.order.visibilityHint": "Die Reihenfolge gilt für die obersten Einträge innerhalb jeder Quellgruppe. Klappen Sie einen Quell-Header zu, um beim Überprüfen der Änderung nur die obersten Einträge zu sehen."
2716
2722
  }, Ce = {
2723
+ "tutorial.viewEditor.intro.title": "Éditeur de vues",
2724
+ "tutorial.viewEditor.intro.content": "Concevez n’importe quel type de vue au même endroit : choisissez le type (ou générez depuis une entité), faites glisser des contrôles depuis la palette dans les cellules de la grille, puis configurez chaque cellule — liaison de données, permissions par rôle et actions d’événement. Basculez Conception / Aperçu / Source et enregistrez quand c’est valide.",
2717
2725
  ok: "OK",
2718
2726
  cancel: "Annuler",
2719
2727
  save: "Enregistrer",
@@ -3588,6 +3596,8 @@ const T = [
3588
3596
  "tutorial.dmxEditor.intro.content": "Choisissez le périphérique FTDI et le port, puis réglez la valeur de chaque canal DMX avec les curseurs pour piloter vos projecteurs en direct.",
3589
3597
  "sidebar.prefs.order.visibilityHint": "L’ordre s’applique aux éléments de premier niveau dans chaque groupe de source. Repliez un en-tête de source pour ne voir que les entrées de premier niveau lors de la vérification."
3590
3598
  }, Se = {
3599
+ "tutorial.viewEditor.intro.title": "Editor de vistas",
3600
+ "tutorial.viewEditor.intro.content": "Crea cualquier tipo de vista desde un solo lugar: elige el tipo (o genéralo desde una entidad), arrastra controles desde la paleta a las celdas de la cuadrícula y configura cada celda — enlace de datos, permisos por rol y acciones de eventos. Cambia entre Diseño / Vista previa / Código y guarda cuando sea válido.",
3591
3601
  ok: "OK",
3592
3602
  cancel: "Cancelar",
3593
3603
  save: "Guardar",
@@ -4572,7 +4582,178 @@ const T = [
4572
4582
  "lang.ja": "Giapponese",
4573
4583
  "lang.ko": "Coreano",
4574
4584
  "lang.zh": "Cinese",
4575
- "lang.ar": "Arabo"
4585
+ "lang.ar": "Arabo",
4586
+ "tutorial.viewEditor.intro.title": "Editor di viste",
4587
+ "tutorial.viewEditor.intro.content": "Crea qualsiasi tipo di vista da un unico posto: scegli il tipo (o generala da un’entità), trascina i controlli dalla palette nelle celle della griglia, poi configura ogni cella — binding dei dati, permessi per ruolo e azioni sugli eventi. Passa tra Design / Anteprima / Sorgente e salva quando è valida.",
4588
+ "tutorial.play": "Riproduci",
4589
+ "tutorial.pause": "Pausa",
4590
+ "tutorial.speed": "Velocità",
4591
+ "tutorial.close": "Chiudi",
4592
+ "tutorial.start": "Tutorial",
4593
+ "tutorial.startAria": "Avvia il tutorial",
4594
+ "tutorial.next": "Avanti",
4595
+ "tutorial.back": "Indietro",
4596
+ "tutorial.finish": "Fine",
4597
+ "tutorial.skip": "Salta",
4598
+ "tutorial.stepOf": "di",
4599
+ "tutorial.moduleEditor.browser.title": "Browser dei moduli",
4600
+ "tutorial.moduleEditor.browser.content": "Seleziona qui un modulo per aprirne il manifest, le entità e le traduzioni.",
4601
+ "tutorial.moduleEditor.validate.title": "Convalida",
4602
+ "tutorial.moduleEditor.validate.content": "Verifica il modulo rispetto allo schema del manifest. I problemi compaiono nella barra di stato e nell’output.",
4603
+ "tutorial.moduleEditor.save.title": "Salva",
4604
+ "tutorial.moduleEditor.save.content": "Rendi persistenti le modifiche tramite il data provider configurato (es. riscrivi i file su disco).",
4605
+ "tutorial.manifestEditor.intro.title": "Editor del manifest",
4606
+ "tutorial.manifestEditor.intro.content": "Modifica il manifest in sezioni guidate dallo schema. Alterna Form ⇄ JSON per sezione; la convalida compare nella barra di stato.",
4607
+ "tutorial.schemaForm.intro.title": "Form da schema",
4608
+ "tutorial.schemaForm.intro.content": "Questo form è generato da uno schema. I campi obbligatori e gli errori di convalida sono evidenziati; usa l’interruttore JSON per la modifica grezza.",
4609
+ "tutorial.entityEditor.intro.title": "Editor di entità",
4610
+ "tutorial.entityEditor.intro.content": "Aggiungi le entità a sinistra, poi modifica a destra i metadati di ogni entità e i suoi campi (tipo, chiavi, vincoli).",
4611
+ "tutorial.i18nEditor.intro.title": "Traduzioni",
4612
+ "tutorial.i18nEditor.intro.content": "Modifica le traduzioni come griglia chiavi × lingue. Aggiungi chiavi e lingue; le celle ambra indicano traduzioni mancanti.",
4613
+ "tutorial.formBuilder.intro.title": "Costruttore di form",
4614
+ "tutorial.formBuilder.intro.content": "Trascina i campi dalla palette sul canvas, poi configura ciascun campo nel pannello delle proprietà. Esporta lo schema al termine.",
4615
+ "tutorial.formDesigner.intro.title": "Designer di form",
4616
+ "tutorial.formDesigner.intro.content": "Progetta form di inserimento dati con sezioni, lookup e campi calcolati; collegali alla tua entità e visualizza l’anteprima dal vivo.",
4617
+ "tutorial.paymentProviderConfig.intro.title": "Provider di pagamento",
4618
+ "tutorial.paymentProviderConfig.intro.content": "Scegli un provider, inserisci le credenziali (i segreti sono mascherati), seleziona test/live, abilita i metodi e copia l’URL del webhook.",
4619
+ "tutorial.webhookTester.intro.title": "Tester di webhook",
4620
+ "tutorial.webhookTester.intro.content": "Scegli un payload salvato (o scrivine uno), firmalo facoltativamente, invialo all’endpoint ed esamina la risposta.",
4621
+ "tutorial.apiDesigner.intro.title": "Designer di API",
4622
+ "tutorial.apiDesigner.intro.content": "Definisci endpoint, parametri, schemi di richiesta/risposta e sicurezza per il tuo documento OpenAPI.",
4623
+ "tutorial.apiTester.intro.title": "Tester di API",
4624
+ "tutorial.apiTester.intro.content": "Crea richieste con raccolte e variabili d’ambiente, inviale e verifica le risposte con asserzioni.",
4625
+ "tutorial.integrationBuilder.intro.title": "Costruttore di integrazioni",
4626
+ "tutorial.integrationBuilder.intro.content": "Collega un flusso di nodi (trigger → azioni → gestione errori) per costruire un’integrazione.",
4627
+ "tutorial.scriptRunner.intro.title": "Esecutore di script",
4628
+ "tutorial.scriptRunner.intro.content": "Scrivi uno script e un input di esempio, fai clic su Esegui, poi esamina il risultato e i log catturati qui sotto.",
4629
+ "tutorial.lifecycleHooks.intro.title": "Hook del ciclo di vita",
4630
+ "tutorial.lifecycleHooks.intro.content": "Associa gli handler a ciascun trigger, imposta l’ordine e il flag di abilitazione e aggiungi una condizione facoltativa che vincola l’esecuzione.",
4631
+ "tutorial.revisionHistory.intro.title": "Cronologia revisioni",
4632
+ "tutorial.revisionHistory.intro.content": "Scegli una revisione, selezionane un’altra da confrontare, esamina il diff affiancato, poi ripristina una versione precedente se necessario.",
4633
+ "tutorial.markdownEditor.intro.title": "Editor Markdown",
4634
+ "tutorial.markdownEditor.intro.content": "Scrivi in Markdown con la barra di formattazione; attiva l’anteprima dal vivo per vedere il risultato ed esporta in HTML.",
4635
+ "tutorial.htmlEditor.intro.title": "Editor di testo formattato",
4636
+ "tutorial.htmlEditor.intro.content": "Formatta il testo con la barra degli strumenti, inserisci link, immagini e tabelle e passa al sorgente HTML o Markdown quando serve.",
4637
+ "tutorial.documentEditor.intro.title": "Editor di documenti",
4638
+ "tutorial.documentEditor.intro.content": "Componi un documento a blocchi: usa la barra o i comandi slash per aggiungere titoli, elenchi, media e altro, poi esporta in HTML.",
4639
+ "tutorial.codeEditor.intro.title": "Editor di codice",
4640
+ "tutorial.codeEditor.intro.content": "Modifica il codice con evidenziazione della sintassi, IntelliSense e barra degli strumenti. Ctrl+S salva; la barra di stato mostra la posizione del cursore ed eventuali problemi.",
4641
+ "tutorial.kanbanBoard.intro.title": "Bacheca Kanban",
4642
+ "tutorial.kanbanBoard.intro.content": 'Trascina le schede tra le colonne per cambiarne lo stato, aggiungi schede con il pulsante "+" e fai clic su una scheda per modificarne i dettagli.',
4643
+ "tutorial.queryBuilder.intro.title": "Costruttore di query",
4644
+ "tutorial.queryBuilder.intro.content": "Aggiungi tabelle, scegli colonne, definisci join, condizioni e ordinamento in modo visuale — l’SQL è generato per te. Passa alla scheda SQL per esaminarlo.",
4645
+ "tutorial.stateDesigner.intro.title": "Designer di stato",
4646
+ "tutorial.stateDesigner.intro.content": "Modella lo store come slice con campi e azioni, scegli un target (es. Zustand) ed esporta codice di gestione dello stato pronto all’uso.",
4647
+ "tutorial.componentDesigner.intro.title": "Designer di componenti",
4648
+ "tutorial.componentDesigner.intro.content": "Dai un nome al componente, dichiara le sue prop con tipi e requisiti e visualizza in tempo reale l’interfaccia TypeScript generata.",
4649
+ "tutorial.pageBuilder.intro.title": "Costruttore di pagine",
4650
+ "tutorial.pageBuilder.intro.content": "Trascina i componenti dalla barra laterale sulla griglia responsiva, alterna l’anteprima desktop/tablet/mobile e salva il layout.",
4651
+ "tutorial.lowCodeStudio.intro.title": "Studio low-code",
4652
+ "tutorial.lowCodeStudio.intro.content": "Trascina i componenti dalla barra laterale sul canvas, poi alterna le schede Design, Anteprima e Codice per costruire ed esportare la tua app.",
4653
+ "tutorial.testBuilder.intro.title": "Costruttore di test",
4654
+ "tutorial.testBuilder.intro.content": "Crea suite di test in modo visuale: aggiungi casi e passi di interazione con asserzioni, eseguili ed esporta in un file .test.tsx pronto all’uso.",
4655
+ "tutorial.workflowDesigner.intro.title": "Designer di workflow",
4656
+ "tutorial.workflowDesigner.intro.content": "Aggiungi stati e transizioni sul canvas, convalida il flusso, simulalo, poi testa o pubblica il tuo workflow.",
4657
+ "tutorial.themeBuilder.intro.title": "Costruttore di temi",
4658
+ "tutorial.themeBuilder.intro.content": "Parti da un preset, regola colori, tipografia e altri token per sezione, visualizza l’anteprima dal vivo, poi applica o esporta il tema.",
4659
+ "tutorial.filterBuilder.intro.title": "Costruttore di filtri",
4660
+ "tutorial.filterBuilder.intro.content": "Costruisci alberi di filtri AND/OR complessi: aggiungi condizioni e gruppi annidati, scegli campi e operatori e salva preset riutilizzabili.",
4661
+ "tutorial.diagramDesigner.intro.title": "Designer di diagrammi",
4662
+ "tutorial.diagramDesigner.intro.content": "Trascina le forme dalla palette sul canvas, collegale con i connettori, modifica le proprietà a destra, poi esporta in SVG, PNG o JSON.",
4663
+ "tutorial.reportBuilder.intro.title": "Costruttore di report",
4664
+ "tutorial.reportBuilder.intro.content": "Trascina le sezioni sul report, collegale alle origini dati, disponi il layout, poi esporta in PDF, HTML o XLSX.",
4665
+ "tutorial.erpReportDesigner.intro.title": "Designer di report",
4666
+ "tutorial.erpReportDesigner.intro.content": "Disponi report a bande: inserisci elementi (campi, espressioni, grafici) nelle bande, collega le connessioni dati, modifica le proprietà, poi visualizza ed esporta.",
4667
+ "tutorial.recipeEditor.intro.title": "Editor di ricette",
4668
+ "tutorial.recipeEditor.intro.content": "Modifica i dettagli della ricetta, aggiungi e riordina ingredienti e passaggi, allega foto e importa o esporta la ricetta come JSON.",
4669
+ "tutorial.pipelineEditor.intro.title": "Editor di pipeline",
4670
+ "tutorial.pipelineEditor.intro.content": "Costruisci una pipeline CI/CD con stage, job e step; imposta trigger, variabili e segreti; poi convalida, salva ed esegui.",
4671
+ "tutorial.mergeRequestBuilder.intro.title": "Costruttore di merge request",
4672
+ "tutorial.mergeRequestBuilder.intro.content": "Scegli i branch di origine e destinazione, scrivi titolo e descrizione, aggiungi revisori, etichette e issue collegate, poi visualizza e invia.",
4673
+ "tutorial.automationRuleEditor.intro.title": "Editor di regole di automazione",
4674
+ "tutorial.automationRuleEditor.intro.content": "Definisci il trigger, aggiungi condizioni facoltative, poi elenca le azioni da eseguire — passa tra le tre sezioni usando le schede.",
4675
+ "tutorial.sceneActionBuilder.intro.title": "Costruttore di azioni scena",
4676
+ "tutorial.sceneActionBuilder.intro.content": "Aggiungi un’azione per dispositivo, imposta lo stato di destinazione e un ritardo facoltativo, riordinale e visualizza l’anteprima della sequenza.",
4677
+ "tutorial.backupTagEditor.intro.title": "Tag di backup",
4678
+ "tutorial.backupTagEditor.intro.content": "Etichetta questo backup per recuperarlo facilmente: digita un’etichetta e scegli un colore, o aggiungi uno dei tag suggeriti; i tag generati automaticamente sono protetti.",
4679
+ "tutorial.dataMergeBuilder.intro.title": "Unione dati",
4680
+ "tutorial.dataMergeBuilder.intro.content": "Segui i passaggi: scegli i branch di origine e destinazione, visualizza le modifiche, risolvi i conflitti, imposta le opzioni, poi conferma l’unione.",
4681
+ "tutorial.invoiceLineEditor.intro.title": "Righe fattura",
4682
+ "tutorial.invoiceLineEditor.intro.content": "Aggiungi voci con quantità, prezzo unitario, IVA e sconto — netto, lordo e il dettaglio IVA sono calcolati automaticamente.",
4683
+ "tutorial.keyValueEditor.intro.title": "Editor chiave/valore",
4684
+ "tutorial.keyValueEditor.intro.content": "Aggiungi righe chiave/valore per header, parametri, variabili d’ambiente o configurazioni; maschera i valori segreti, attiva/disattiva le righe e tieni d’occhio le chiavi duplicate.",
4685
+ "tutorial.imageEditor.intro.title": "Editor di immagini",
4686
+ "tutorial.imageEditor.intro.content": "Usa la barra per ritagliare, ruotare, capovolgere, regolare luminosità/contrasto e annotare; annulla/ripristina le modifiche, poi salva il risultato.",
4687
+ "tutorial.cropEditor.intro.title": "Editor di ritaglio",
4688
+ "tutorial.cropEditor.intro.content": "Trascina il riquadro di ritaglio sull’immagine, scegli una proporzione, ruota, capovolgi o zooma, poi usa il risultato.",
4689
+ "tutorial.pdfAnnotationEditor.intro.title": "Annotazioni PDF",
4690
+ "tutorial.pdfAnnotationEditor.intro.content": "Scegli uno strumento dalla barra (evidenzia, sottolinea, mano libera, testo…), annota la pagina, naviga tra le pagine e zooma secondo necessità.",
4691
+ "tutorial.videoEditor.intro.title": "Editor video",
4692
+ "tutorial.videoEditor.intro.content": "Aggiungi media alle tracce della timeline, taglia e disponi le clip, modifica le proprietà delle clip, visualizza l’anteprima, poi esporta il video.",
4693
+ "tutorial.viewBuilder.intro.title": "Costruttore di viste",
4694
+ "tutorial.viewBuilder.intro.content": "Trascina i controlli dalla palette nelle celle della griglia, configura ogni cella nel pannello delle proprietà e importa, esporta o salva la vista.",
4695
+ "tutorial.dashboardDesigner.intro.title": "Designer di dashboard",
4696
+ "tutorial.dashboardDesigner.intro.content": "Trascina i widget dalla palette sulla griglia, ridimensionali e disponili, configura ciascuno nel pannello delle proprietà, poi visualizza o esporta la dashboard.",
4697
+ "tutorial.workflowDesignerCanvas.intro.title": "Designer di workflow",
4698
+ "tutorial.workflowDesignerCanvas.intro.content": "Aggiungi nodi trigger, azione e condizione sul canvas e collegali; gestisci le variabili, convalida il flusso, poi esportalo.",
4699
+ "tutorial.armatureEditor.intro.title": "Editor di armature",
4700
+ "tutorial.armatureEditor.intro.content": "Seleziona le ossa per modificarne le trasformazioni, aggiungi o riassegna ossa, configura le catene IK e salva o carica le pose.",
4701
+ "tutorial.morphTargetEditor.intro.title": "Editor di morph target",
4702
+ "tutorial.morphTargetEditor.intro.content": "Miscela i morph target della mesh con i cursori di influenza per target, crea o elimina target e visualizza l’anteprima dell’interpolazione.",
4703
+ "tutorial.terrainEditor.intro.title": "Editor di terreno",
4704
+ "tutorial.terrainEditor.intro.content": "Scolpisci la heightmap con i pennelli (alza, abbassa, appiattisci, leviga, rumore), applica layer di texture, genera terreno procedurale e importa/esporta heightmap.",
4705
+ "tutorial.materialEditor.intro.title": "Editor di materiali",
4706
+ "tutorial.materialEditor.intro.content": "Crea uno shader come grafo di nodi: trascina i nodi dalla palette, collega le loro porte, modifica le proprietà e visualizza l’anteprima del materiale compilato.",
4707
+ "tutorial.particleEditor.intro.title": "Editor di particelle",
4708
+ "tutorial.particleEditor.intro.content": "Scegli un sistema di particelle, regola l’emettitore e i moduli nell’inspector e riproduci, metti in pausa o ferma l’anteprima dal vivo.",
4709
+ "tutorial.uvEditor.intro.title": "Editor UV",
4710
+ "tutorial.uvEditor.intro.content": "Modifica il layout UV della mesh sopra la texture: seleziona e trasforma le UV con gli strumenti, cambia canale UV e applica le modifiche.",
4711
+ "tutorial.fontEditor.intro.title": "Editor di font",
4712
+ "tutorial.fontEditor.intro.content": "Modifica i glifi sulla griglia unicode, regola le metriche del font e i tracciati e i bearing per glifo, poi esporta il font.",
4713
+ "tutorial.iconEditor.intro.title": "Editor di icone",
4714
+ "tutorial.iconEditor.intro.content": "Disegna e modifica forme SVG sulla griglia, regola il tratto e le varianti, visualizza l’anteprima su sfondi diversi ed esporta in SVG, React o PNG.",
4715
+ "tutorial.uiDesigner.intro.title": "Designer di UI",
4716
+ "tutorial.uiDesigner.intro.content": "Trascina i componenti dalla palette sul canvas, modifica le loro prop nel pannello, visualizza l’anteprima dei breakpoint responsivi ed esporta in React/TSX.",
4717
+ "tutorial.gameEditor.intro.title": "Editor di gioco",
4718
+ "tutorial.gameEditor.intro.content": "Costruisci la scena nel viewport usando i pannelli gerarchia e asset, modifica le entità nell’inspector e salva il progetto.",
4719
+ "tutorial.levelEditor.intro.title": "Editor di livelli",
4720
+ "tutorial.levelEditor.intro.content": "Costruisci il mondo di gioco: posiziona e aggancia oggetti su più layer, dipingi il terreno, disponi spline e luci, poi calcola le lightmap.",
4721
+ "tutorial.gameMaterialEditor.intro.title": "Editor di materiali",
4722
+ "tutorial.gameMaterialEditor.intro.content": "Crea uno shader come grafo di nodi: aggiungi e collega i nodi shader, modifica le loro proprietà e compila il materiale.",
4723
+ "tutorial.gameParticleEditor.intro.title": "Editor di particelle",
4724
+ "tutorial.gameParticleEditor.intro.content": "Regola il sistema di particelle nell’inspector — emettitore, durata, curve e rendering — e riproduci, metti in pausa o riavvia l’anteprima dal vivo.",
4725
+ "tutorial.floorPlanEditor.intro.title": "Editor di planimetrie",
4726
+ "tutorial.floorPlanEditor.intro.content": "Disegna stanze e zone con gli strumenti, posiziona i dispositivi sulla planimetria, cambia piano e attiva overlay come quote, griglia e occupazione.",
4727
+ "tutorial.buildingSceneEditor.intro.title": "Editor di scene",
4728
+ "tutorial.buildingSceneEditor.intro.content": "Crea scene che impostano più dispositivi insieme: scegli una scena, seleziona gli stati di destinazione dei dispositivi, poi salvala o attivala.",
4729
+ "tutorial.buildingAutomationEditor.intro.title": "Editor di automazioni",
4730
+ "tutorial.buildingAutomationEditor.intro.content": "Crea automazioni dell’edificio: scegline una dall’elenco, definisci trigger, condizioni e azioni, poi salvala, abilitala o eliminala.",
4731
+ "tutorial.spatialEditor.intro.title": "Editor spaziale",
4732
+ "tutorial.spatialEditor.intro.content": "Disponi planimetrie in diverse modalità: disegna muri, stanze e oggetti con gli strumenti, gestisci i layer, aggancia alla griglia, poi esporta.",
4733
+ "tutorial.decisionTreeEditor.intro.title": "Editor di alberi decisionali",
4734
+ "tutorial.decisionTreeEditor.intro.content": "Esplora l’albero decisionale: fai clic sui nodi per esaminare condizioni ed esiti, attiva metriche, probabilità e campioni ed evidenzia un percorso per un input.",
4735
+ "tutorial.diagramEditor.intro.title": "Editor di diagrammi",
4736
+ "tutorial.diagramEditor.intro.content": "Scegli uno strumento per aggiungere e collegare i nodi sul canvas, modificali nel pannello delle proprietà ed esporta il diagramma dalla barra.",
4737
+ "tutorial.contractEditor.intro.title": "Editor di contratti",
4738
+ "tutorial.contractEditor.intro.content": "Assembla il contratto dalla libreria di clausole, compila le variabili del modello, traccia versioni e approvazioni, poi salva o esporta in PDF/DOCX/HTML.",
4739
+ "tutorial.invoiceDesigner.intro.title": "Designer di fatture",
4740
+ "tutorial.invoiceDesigner.intro.content": "Trascina gli elementi sul canvas della fattura, collegali ai campi dati, allinea con griglia e righelli, poi salva o esporta in PDF.",
4741
+ "tutorial.presentationEditor.intro.title": "Editor di presentazioni",
4742
+ "tutorial.presentationEditor.intro.content": "Crea le slide dalla barra delle miniature, aggiungi e disponi gli elementi sul canvas, modificali nel pannello delle proprietà, poi presenta o esporta.",
4743
+ "tutorial.dashboardStudio.intro.title": "Studio dashboard",
4744
+ "tutorial.dashboardStudio.intro.content": "Trascina i widget dalla palette sulla griglia, collegali alle origini dati, aggiungi filtri, poi alterna Modifica/Visualizza, aggiorna e salva.",
4745
+ "tutorial.biReportBuilder.intro.title": "Costruttore di report",
4746
+ "tutorial.biReportBuilder.intro.content": "Trascina gli elementi dalla palette sul report, collegali alle origini dati, alterna design/anteprima, poi esporta in PDF o Excel.",
4747
+ "tutorial.etlBuilder.intro.title": "Costruttore ETL",
4748
+ "tutorial.etlBuilder.intro.content": "Collega sorgenti → trasformazioni → destinazioni in una pipeline, alterna le viste, poi eseguila e salva la configurazione.",
4749
+ "tutorial.videoEditorPro.intro.title": "Editor video",
4750
+ "tutorial.videoEditorPro.intro.content": "Aggiungi media alla timeline, disponi e taglia le clip, applica effetti e transizioni, poi configura ed esegui l’esportazione.",
4751
+ "tutorial.mlStudio.intro.title": "Studio ML",
4752
+ "tutorial.mlStudio.intro.content": "Procedi tra le schede: prepara i dataset, esegui esperimenti, confronta e scegli i modelli, poi distribuisci il migliore.",
4753
+ "tutorial.mathEditor.intro.title": "Editor matematico",
4754
+ "tutorial.mathEditor.intro.content": "Scrivi equazioni in LaTeX o inserisci simboli dalla palette; passa all’input a mano libera e visualizza l’anteprima della formula dal vivo.",
4755
+ "tutorial.dmxEditor.intro.title": "Editor DMX",
4756
+ "tutorial.dmxEditor.intro.content": "Scegli il dispositivo FTDI e la porta, poi imposta il valore di ogni canale DMX con i cursori per controllare dal vivo i tuoi fari."
4576
4757
  }, je = {
4577
4758
  ok: "OK",
4578
4759
  cancel: "Cancelar",
@@ -5091,7 +5272,7 @@ const T = [
5091
5272
  "lang.ko": "Koreanska",
5092
5273
  "lang.zh": "Kinesiska",
5093
5274
  "lang.ar": "Arabiska"
5094
- }, xe = {
5275
+ }, Te = {
5095
5276
  ok: "OK",
5096
5277
  cancel: "Avbryt",
5097
5278
  save: "Lagre",
@@ -5154,7 +5335,7 @@ const T = [
5154
5335
  "lang.ko": "Koreansk",
5155
5336
  "lang.zh": "Kinesisk",
5156
5337
  "lang.ar": "Arabisk"
5157
- }, Te = {
5338
+ }, xe = {
5158
5339
  ok: "OK",
5159
5340
  cancel: "Annuller",
5160
5341
  save: "Gem",
@@ -5280,7 +5461,7 @@ const T = [
5280
5461
  "lang.ko": "Korea",
5281
5462
  "lang.zh": "Kiina",
5282
5463
  "lang.ar": "Arabia"
5283
- }, Fe = {
5464
+ }, Me = {
5284
5465
  ok: "OK",
5285
5466
  cancel: "Zrušit",
5286
5467
  save: "Uložit",
@@ -5643,7 +5824,7 @@ const T = [
5643
5824
  "wm.minimizeAll": "Minimalizovat vše",
5644
5825
  "wm.newWindow": "Nové okno",
5645
5826
  "wm.moveToFront": "Přenést dopředu"
5646
- }, Me = {
5827
+ }, Fe = {
5647
5828
  ok: "OK",
5648
5829
  cancel: "Zrušiť",
5649
5830
  save: "Uložiť",
@@ -5880,6 +6061,8 @@ const T = [
5880
6061
  "lang.zh": "Китайски",
5881
6062
  "lang.ar": "Арабски"
5882
6063
  }, Oe = {
6064
+ "tutorial.viewEditor.intro.title": "Редактор подань",
6065
+ "tutorial.viewEditor.intro.content": "Створюйте будь-який тип подання в одному місці: виберіть тип (або згенеруйте із сутності), перетягуйте елементи керування з палітри в клітинки сітки, а потім налаштуйте кожну клітинку — прив’язку даних, дозволи за ролями та дії подій. Перемикайте «Дизайн / Перегляд / Код» і зберігайте, коли подання правильне.",
5883
6066
  ok: "OK",
5884
6067
  cancel: "Скасувати",
5885
6068
  save: "Зберегти",
@@ -7840,7 +8023,7 @@ const T = [
7840
8023
  "wm.minimizeAll": "最小化全部",
7841
8024
  "wm.newWindow": "新建窗口",
7842
8025
  "wm.moveToFront": "置于最前"
7843
- }, We = {
8026
+ }, qe = {
7844
8027
  ok: "حسناً",
7845
8028
  cancel: "إلغاء",
7846
8029
  save: "حفظ",
@@ -8203,7 +8386,7 @@ const T = [
8203
8386
  "wm.minimizeAll": "تصغير الكل",
8204
8387
  "wm.newWindow": "نافذة جديدة",
8205
8388
  "wm.moveToFront": "نقل إلى الأمام"
8206
- }, qe = {
8389
+ }, We = {
8207
8390
  ok: "ठीक है",
8208
8391
  cancel: "रद्द करें",
8209
8392
  save: "सहेजें",
@@ -8269,7 +8452,7 @@ const T = [
8269
8452
  error: "Hitilafu",
8270
8453
  success: "Imefanikiwa",
8271
8454
  search: "Tafuta"
8272
- }, Ye = {
8455
+ }, Xe = {
8273
8456
  ok: "OK",
8274
8457
  cancel: "Kanselahin",
8275
8458
  save: "I-save",
@@ -8280,7 +8463,7 @@ const T = [
8280
8463
  error: "Error",
8281
8464
  success: "Tagumpay",
8282
8465
  search: "Maghanap"
8283
- }, Xe = {
8466
+ }, Ye = {
8284
8467
  ok: "OK",
8285
8468
  cancel: "Batal",
8286
8469
  save: "Simpan",
@@ -8292,7 +8475,7 @@ const T = [
8292
8475
  success: "Berjaya",
8293
8476
  search: "Cari"
8294
8477
  }, w = {
8295
- en: Ee,
8478
+ en: ke,
8296
8479
  pl: ye,
8297
8480
  de: ze,
8298
8481
  fr: Ce,
@@ -8301,11 +8484,11 @@ const T = [
8301
8484
  pt: je,
8302
8485
  nl: Ae,
8303
8486
  sv: Pe,
8304
- no: xe,
8305
- da: Te,
8487
+ no: Te,
8488
+ da: xe,
8306
8489
  fi: Be,
8307
- cs: Fe,
8308
- sk: Me,
8490
+ cs: Me,
8491
+ sk: Fe,
8309
8492
  hu: Ne,
8310
8493
  ro: Re,
8311
8494
  bg: Le,
@@ -8313,16 +8496,16 @@ const T = [
8313
8496
  ja: Ie,
8314
8497
  ko: Ve,
8315
8498
  zh: He,
8316
- ar: We,
8317
- hi: qe,
8499
+ ar: qe,
8500
+ hi: We,
8318
8501
  bn: Ue,
8319
8502
  th: Ke,
8320
8503
  vi: Ge,
8321
8504
  id: Ze,
8322
8505
  sw: Je,
8323
- fil: Ye,
8324
- ms: Xe
8325
- }, Y = {
8506
+ fil: Xe,
8507
+ ms: Ye
8508
+ }, X = {
8326
8509
  save: "Zapisz",
8327
8510
  cancel: "Anuluj",
8328
8511
  ok: "OK",
@@ -8346,7 +8529,7 @@ const T = [
8346
8529
  "form.invalidValue": "Proszę podać prawidłową wartość.",
8347
8530
  "auth.signIn": "Proszę się zalogować",
8348
8531
  "auth.signOut": "Proszę się wylogować"
8349
- }, X = {
8532
+ }, Y = {
8350
8533
  save: "Zapisz",
8351
8534
  cancel: "Anuluj",
8352
8535
  ok: "OK",
@@ -8371,8 +8554,8 @@ const T = [
8371
8554
  "auth.signIn": "Zaloguj się",
8372
8555
  "auth.signOut": "Wyloguj się"
8373
8556
  }, $e = {
8374
- "pl-PL": { formal: Y, informal: X },
8375
- pl: { formal: Y, informal: X }
8557
+ "pl-PL": { formal: X, informal: Y },
8558
+ pl: { formal: X, informal: Y }
8376
8559
  };
8377
8560
  function Kt(e) {
8378
8561
  var t;
@@ -8381,41 +8564,41 @@ function Kt(e) {
8381
8564
  const _e = (e, t) => t, te = I(_e), Gt = ({
8382
8565
  t: e,
8383
8566
  lang: t = "en",
8384
- overrides: r,
8567
+ overrides: i,
8385
8568
  children: o
8386
8569
  }) => {
8387
- const i = b(() => {
8570
+ const r = b(() => {
8388
8571
  if (e)
8389
8572
  return e;
8390
- const a = w[t] ?? w.en, n = r ? { ...a, ...r } : a;
8573
+ const a = w[t] ?? w.en, n = i ? { ...a, ...i } : a;
8391
8574
  return (s, l) => n[s] ?? l;
8392
- }, [e, t, r]);
8393
- return /* @__PURE__ */ O(te.Provider, { value: i, children: o });
8575
+ }, [e, t, i]);
8576
+ return /* @__PURE__ */ O(te.Provider, { value: r, children: o });
8394
8577
  };
8395
8578
  function Zt() {
8396
8579
  return { t: B(te) };
8397
8580
  }
8398
8581
  function Jt(e = "en", t) {
8399
- const r = w[e] ?? w.en, o = t ? { ...r, ...t } : r;
8400
- return (i, a) => o[i] ?? a;
8582
+ const i = w[e] ?? w.en, o = t ? { ...i, ...t } : i;
8583
+ return (r, a) => o[r] ?? a;
8401
8584
  }
8402
- function Yt(e, t = {}) {
8403
- let r = e.replace(/\{(\w+)\}/g, (o, i) => {
8404
- const a = t[i];
8585
+ function Xt(e, t = {}) {
8586
+ let i = e.replace(/\{(\w+)\}/g, (o, r) => {
8587
+ const a = t[r];
8405
8588
  return a !== void 0 ? String(a) : o;
8406
8589
  });
8407
- return r = r.replace(
8590
+ return i = i.replace(
8408
8591
  /\{(\w+),\s*plural,\s*one\{([^}]+)\}\s*other\{([^}]+)\}\}/g,
8409
- (o, i, a, n) => {
8410
- const s = t[i];
8592
+ (o, r, a, n) => {
8593
+ const s = t[r];
8411
8594
  return typeof s != "number" ? o : (s === 1 ? a : n).replace(/#/g, String(s));
8412
8595
  }
8413
- ), r;
8596
+ ), i;
8414
8597
  }
8415
8598
  function Qe(e) {
8416
- return T.includes(e);
8599
+ return x.includes(e);
8417
8600
  }
8418
- function Xt() {
8601
+ function Yt() {
8419
8602
  var t;
8420
8603
  if (typeof navigator > "u")
8421
8604
  return "en";
@@ -8424,8 +8607,8 @@ function Xt() {
8424
8607
  }
8425
8608
  function oe(e, t) {
8426
8609
  var a;
8427
- const r = Math.abs(e), o = Math.floor(r), i = e.toString().includes(".") && ((a = e.toString().split(".")[1]) == null ? void 0 : a.length) || 0;
8428
- switch (i > 0 && parseInt(e.toString().split(".")[1] || "0", 10), t) {
8610
+ const i = Math.abs(e), o = Math.floor(i), r = e.toString().includes(".") && ((a = e.toString().split(".")[1]) == null ? void 0 : a.length) || 0;
8611
+ switch (r > 0 && parseInt(e.toString().split(".")[1] || "0", 10), t) {
8429
8612
  // ── English-like (one/other) ───────────────────────────
8430
8613
  case "en":
8431
8614
  case "de":
@@ -8437,29 +8620,29 @@ function oe(e, t) {
8437
8620
  case "it":
8438
8621
  case "es":
8439
8622
  case "pt":
8440
- return o === 1 && i === 0 ? "one" : "other";
8623
+ return o === 1 && r === 0 ? "one" : "other";
8441
8624
  // ── French (one/many/other) ────────────────────────────
8442
8625
  case "fr":
8443
- return o === 0 || o === 1 ? "one" : r >= 1e6 ? "many" : "other";
8626
+ return o === 0 || o === 1 ? "one" : i >= 1e6 ? "many" : "other";
8444
8627
  // ── Polish (Slavic: one/few/many/other) ────────────────
8445
8628
  case "pl":
8446
- return o === 1 && i === 0 ? "one" : i === 0 && o % 10 >= 2 && o % 10 <= 4 && !(o % 100 >= 12 && o % 100 <= 14) ? "few" : i === 0 && o !== 1 && (o % 10 === 0 || o % 10 === 1) || i === 0 && o % 10 >= 5 && o % 10 <= 9 || i === 0 && o % 100 >= 12 && o % 100 <= 14 ? "many" : "other";
8629
+ return o === 1 && r === 0 ? "one" : r === 0 && o % 10 >= 2 && o % 10 <= 4 && !(o % 100 >= 12 && o % 100 <= 14) ? "few" : r === 0 && o !== 1 && (o % 10 === 0 || o % 10 === 1) || r === 0 && o % 10 >= 5 && o % 10 <= 9 || r === 0 && o % 100 >= 12 && o % 100 <= 14 ? "many" : "other";
8447
8630
  // ── Ukrainian (Slavic: one/few/many/other) ─────────────
8448
8631
  case "uk":
8449
- return i === 0 && o % 10 === 1 && o % 100 !== 11 ? "one" : i === 0 && o % 10 >= 2 && o % 10 <= 4 && !(o % 100 >= 12 && o % 100 <= 14) ? "few" : i === 0 && o % 10 === 0 || i === 0 && o % 10 >= 5 && o % 10 <= 9 || i === 0 && o % 100 >= 11 && o % 100 <= 14 ? "many" : "other";
8632
+ return r === 0 && o % 10 === 1 && o % 100 !== 11 ? "one" : r === 0 && o % 10 >= 2 && o % 10 <= 4 && !(o % 100 >= 12 && o % 100 <= 14) ? "few" : r === 0 && o % 10 === 0 || r === 0 && o % 10 >= 5 && o % 10 <= 9 || r === 0 && o % 100 >= 11 && o % 100 <= 14 ? "many" : "other";
8450
8633
  // ── Bulgarian (one/other) ──────────────────────────────
8451
8634
  case "bg":
8452
8635
  return e === 1 ? "one" : "other";
8453
8636
  // ── Czech/Slovak (Slavic: one/few/many/other) ──────────
8454
8637
  case "cs":
8455
8638
  case "sk":
8456
- return o === 1 && i === 0 ? "one" : o >= 2 && o <= 4 && i === 0 ? "few" : i !== 0 ? "many" : "other";
8639
+ return o === 1 && r === 0 ? "one" : o >= 2 && o <= 4 && r === 0 ? "few" : r !== 0 ? "many" : "other";
8457
8640
  // ── Hungarian (one/other) ──────────────────────────────
8458
8641
  case "hu":
8459
8642
  return e === 1 ? "one" : "other";
8460
8643
  // ── Romanian (one/few/other) ───────────────────────────
8461
8644
  case "ro":
8462
- return o === 1 && i === 0 ? "one" : i !== 0 || e === 0 || e % 100 >= 2 && e % 100 <= 19 ? "few" : "other";
8645
+ return o === 1 && r === 0 ? "one" : r !== 0 || e === 0 || e % 100 >= 2 && e % 100 <= 19 ? "few" : "other";
8463
8646
  // ── Japanese/Korean/Chinese (other only) ─────────────────
8464
8647
  case "ja":
8465
8648
  case "ko":
@@ -8482,10 +8665,10 @@ function oe(e, t) {
8482
8665
  return new Intl.PluralRules(t).select(e);
8483
8666
  } catch {
8484
8667
  }
8485
- return o === 1 && i === 0 ? "one" : "other";
8668
+ return o === 1 && r === 0 ? "one" : "other";
8486
8669
  }
8487
8670
  }
8488
- function re(e, t) {
8671
+ function ie(e, t) {
8489
8672
  switch (t) {
8490
8673
  // ── English ────────────────────────────────────────────
8491
8674
  case "en":
@@ -8520,28 +8703,28 @@ function re(e, t) {
8520
8703
  }
8521
8704
  }
8522
8705
  function et(e) {
8523
- var i;
8706
+ var r;
8524
8707
  if (e = e.trim(), !e.includes(","))
8525
8708
  return { type: "simple", name: e };
8526
- const t = e.split(",").map((a) => a.trim()), r = t[0], o = (i = t[1]) == null ? void 0 : i.toLowerCase();
8527
- if (!o || !r)
8709
+ const t = e.split(",").map((a) => a.trim()), i = t[0], o = (r = t[1]) == null ? void 0 : r.toLowerCase();
8710
+ if (!o || !i)
8528
8711
  return null;
8529
8712
  if (o === "number")
8530
- return { type: "number", name: r, style: t[2] };
8713
+ return { type: "number", name: i, style: t[2] };
8531
8714
  if (o === "date" || o === "time")
8532
- return { type: o, name: r, style: t[2] || "medium" };
8715
+ return { type: o, name: i, style: t[2] || "medium" };
8533
8716
  if (o === "plural" || o === "select" || o === "selectordinal") {
8534
8717
  const a = t.slice(2).join(",").trim(), n = {}, s = /(=?\w+)\s*\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
8535
8718
  let l;
8536
8719
  for (; (l = s.exec(a)) !== null; )
8537
8720
  n[l[1]] = l[2];
8538
- return { type: o, name: r, options: n };
8721
+ return { type: o, name: i, options: n };
8539
8722
  }
8540
- return { type: "simple", name: r };
8723
+ return { type: "simple", name: i };
8541
8724
  }
8542
- function tt(e, t, r) {
8725
+ function tt(e, t, i) {
8543
8726
  const o = {};
8544
- switch (r) {
8727
+ switch (i) {
8545
8728
  case "currency":
8546
8729
  o.style = "currency", o.currency = "USD";
8547
8730
  break;
@@ -8554,51 +8737,51 @@ function tt(e, t, r) {
8554
8737
  }
8555
8738
  return new Intl.NumberFormat(t, o).format(e);
8556
8739
  }
8557
- function ot(e, t, r) {
8740
+ function ot(e, t, i) {
8558
8741
  const o = e instanceof Date ? e : new Date(e);
8559
- let i;
8560
- switch (r) {
8742
+ let r;
8743
+ switch (i) {
8561
8744
  case "short":
8562
- i = { dateStyle: "short" };
8745
+ r = { dateStyle: "short" };
8563
8746
  break;
8564
8747
  case "long":
8565
- i = { dateStyle: "long" };
8748
+ r = { dateStyle: "long" };
8566
8749
  break;
8567
8750
  case "full":
8568
- i = { dateStyle: "full" };
8751
+ r = { dateStyle: "full" };
8569
8752
  break;
8570
8753
  case "medium":
8571
8754
  default:
8572
- i = { dateStyle: "medium" };
8755
+ r = { dateStyle: "medium" };
8573
8756
  break;
8574
8757
  }
8575
- return new Intl.DateTimeFormat(t, i).format(o);
8758
+ return new Intl.DateTimeFormat(t, r).format(o);
8576
8759
  }
8577
- function rt(e, t, r) {
8760
+ function it(e, t, i) {
8578
8761
  const o = e instanceof Date ? e : new Date(e);
8579
- let i;
8580
- switch (r) {
8762
+ let r;
8763
+ switch (i) {
8581
8764
  case "short":
8582
- i = { timeStyle: "short" };
8765
+ r = { timeStyle: "short" };
8583
8766
  break;
8584
8767
  case "long":
8585
- i = { timeStyle: "long" };
8768
+ r = { timeStyle: "long" };
8586
8769
  break;
8587
8770
  case "full":
8588
- i = { timeStyle: "full" };
8771
+ r = { timeStyle: "full" };
8589
8772
  break;
8590
8773
  case "medium":
8591
8774
  default:
8592
- i = { timeStyle: "medium" };
8775
+ r = { timeStyle: "medium" };
8593
8776
  break;
8594
8777
  }
8595
- return new Intl.DateTimeFormat(t, i).format(o);
8778
+ return new Intl.DateTimeFormat(t, r).format(o);
8596
8779
  }
8597
- function H(e, t, r) {
8598
- return e.replace(/#/g, String(r));
8780
+ function H(e, t, i) {
8781
+ return e.replace(/#/g, String(i));
8599
8782
  }
8600
- function it(e, t = {}, r = {}) {
8601
- const o = r.lang || "en", i = r.locale || o, a = /\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
8783
+ function rt(e, t = {}, i = {}) {
8784
+ const o = i.lang || "en", r = i.locale || o, a = /\{([^{}]*(?:\{[^{}]*\}[^{}]*)*)\}/g;
8602
8785
  return e.replace(a, (n, s) => {
8603
8786
  const l = et(s);
8604
8787
  if (!l)
@@ -8610,11 +8793,11 @@ function it(e, t = {}, r = {}) {
8610
8793
  case "simple":
8611
8794
  return String(d);
8612
8795
  case "number":
8613
- return typeof d != "number" ? n : tt(d, i, l.style);
8796
+ return typeof d != "number" ? n : tt(d, r, l.style);
8614
8797
  case "date":
8615
- return ot(d, i, l.style);
8798
+ return ot(d, r, l.style);
8616
8799
  case "time":
8617
- return rt(d, i, l.style);
8800
+ return it(d, r, l.style);
8618
8801
  case "plural": {
8619
8802
  if (typeof d != "number" || !l.options)
8620
8803
  return n;
@@ -8624,7 +8807,7 @@ function it(e, t = {}, r = {}) {
8624
8807
  case "selectordinal": {
8625
8808
  if (typeof d != "number" || !l.options)
8626
8809
  return n;
8627
- const u = re(d, o), v = l.options[u] ?? l.options.other ?? "";
8810
+ const u = ie(d, o), v = l.options[u] ?? l.options.other ?? "";
8628
8811
  return H(v, l.name, d);
8629
8812
  }
8630
8813
  case "select": {
@@ -8639,17 +8822,17 @@ function it(e, t = {}, r = {}) {
8639
8822
  });
8640
8823
  }
8641
8824
  function $t(e, t = "en") {
8642
- return function(o, i, a) {
8643
- const n = e[o] ?? i;
8644
- return a ? it(n, a, { lang: t }) : n;
8825
+ return function(o, r, a) {
8826
+ const n = e[o] ?? r;
8827
+ return a ? rt(n, a, { lang: t }) : n;
8645
8828
  };
8646
8829
  }
8647
- function _t(e, t, r = "en") {
8648
- const o = oe(e, r);
8830
+ function _t(e, t, i = "en") {
8831
+ const o = oe(e, i);
8649
8832
  return (t[o] ?? t.other).replace(/#/g, String(e));
8650
8833
  }
8651
- function Qt(e, t, r = "en") {
8652
- const o = re(e, r);
8834
+ function Qt(e, t, i = "en") {
8835
+ const o = ie(e, i);
8653
8836
  return (t[o] ?? t.other).replace(/#/g, String(e));
8654
8837
  }
8655
8838
  function eo(e, t) {
@@ -8669,11 +8852,11 @@ const at = [
8669
8852
  "ps"
8670
8853
  // Pashto
8671
8854
  ];
8672
- function ie(e) {
8855
+ function re(e) {
8673
8856
  return at.includes(e);
8674
8857
  }
8675
8858
  function nt(e) {
8676
- return ie(e) ? "rtl" : "ltr";
8859
+ return re(e) ? "rtl" : "ltr";
8677
8860
  }
8678
8861
  function st(e) {
8679
8862
  if (typeof document > "u")
@@ -8735,34 +8918,34 @@ const G = I({
8735
8918
  isRTL: !1,
8736
8919
  flip: (e) => e,
8737
8920
  value: (e) => e.ltr
8738
- }), ro = ({
8921
+ }), io = ({
8739
8922
  lang: e,
8740
8923
  autoSetDocument: t = !0,
8741
- children: r
8924
+ children: i
8742
8925
  }) => {
8743
- const o = ie(e), i = o ? "rtl" : "ltr";
8926
+ const o = re(e), r = o ? "rtl" : "ltr";
8744
8927
  L(() => {
8745
8928
  t && st(e);
8746
8929
  }, [e, t]);
8747
8930
  const a = b(
8748
8931
  () => ({
8749
- dir: i,
8932
+ dir: r,
8750
8933
  isRTL: o,
8751
8934
  flip: (n) => dt(n, o),
8752
8935
  value: (n) => lt(n, o)
8753
8936
  }),
8754
- [i, o]
8937
+ [r, o]
8755
8938
  );
8756
- return /* @__PURE__ */ O(G.Provider, { value: a, children: r });
8939
+ return /* @__PURE__ */ O(G.Provider, { value: a, children: i });
8757
8940
  };
8758
- function io() {
8941
+ function ro() {
8759
8942
  return B(G);
8760
8943
  }
8761
8944
  function ao() {
8762
8945
  return B(G).isRTL;
8763
8946
  }
8764
8947
  function no(e) {
8765
- const t = [], r = [
8948
+ const t = [], i = [
8766
8949
  "left",
8767
8950
  "right",
8768
8951
  "margin-left",
@@ -8772,11 +8955,11 @@ function no(e) {
8772
8955
  "border-left",
8773
8956
  "border-right"
8774
8957
  ];
8775
- for (const [o, i] of Object.entries(e))
8776
- r.includes(o) && t.push(`Use logical property instead of '${o}' → '${ct(o)}'`), o === "text-align" && (i === "left" || i === "right") && t.push(`Use 'text-align: start/end' instead of 'text-align: ${i}'`), o === "float" && (i === "left" || i === "right") && t.push(`Use flexbox or grid instead of 'float: ${i}' for RTL support`);
8958
+ for (const [o, r] of Object.entries(e))
8959
+ i.includes(o) && t.push(`Use logical property instead of '${o}' → '${ct(o)}'`), o === "text-align" && (r === "left" || r === "right") && t.push(`Use 'text-align: start/end' instead of 'text-align: ${r}'`), o === "float" && (r === "left" || r === "right") && t.push(`Use flexbox or grid instead of 'float: ${r}' for RTL support`);
8777
8960
  return t;
8778
8961
  }
8779
- const W = {
8962
+ const q = {
8780
8963
  // Direction multiplier: 1 for LTR, -1 for RTL
8781
8964
  dirMultiplier: "--nice-dir-multiplier",
8782
8965
  // Inline start (left in LTR, right in RTL)
@@ -8786,9 +8969,9 @@ const W = {
8786
8969
  };
8787
8970
  function so(e) {
8788
8971
  return {
8789
- [W.dirMultiplier]: e ? "-1" : "1",
8790
- [W.inlineStart]: e ? "right" : "left",
8791
- [W.inlineEnd]: e ? "left" : "right"
8972
+ [q.dirMultiplier]: e ? "-1" : "1",
8973
+ [q.inlineStart]: e ? "right" : "left",
8974
+ [q.inlineEnd]: e ? "left" : "right"
8792
8975
  };
8793
8976
  }
8794
8977
  function lo() {
@@ -8797,33 +8980,33 @@ function lo() {
8797
8980
  function ut(e) {
8798
8981
  if (e === "en")
8799
8982
  return [];
8800
- const t = w.en, r = w[e], o = [];
8801
- for (const [i, a] of Object.entries(t))
8802
- r[i] || o.push({ key: i, englishValue: a });
8983
+ const t = w.en, i = w[e], o = [];
8984
+ for (const [r, a] of Object.entries(t))
8985
+ i[r] || o.push({ key: r, englishValue: a });
8803
8986
  return o;
8804
8987
  }
8805
8988
  function pt(e) {
8806
- const t = Object.keys(w.en).length, r = Object.keys(w[e]).length, o = t - r, i = Math.round(r / t * 100);
8989
+ const t = Object.keys(w.en).length, i = Object.keys(w[e]).length, o = t - i, r = Math.round(i / t * 100);
8807
8990
  return {
8808
8991
  lang: e,
8809
8992
  totalKeys: t,
8810
- translatedKeys: r,
8993
+ translatedKeys: i,
8811
8994
  missingKeys: o,
8812
- coverage: i
8995
+ coverage: r
8813
8996
  };
8814
8997
  }
8815
8998
  function mt() {
8816
- return T.map((e) => pt(e));
8999
+ return x.map((e) => pt(e));
8817
9000
  }
8818
9001
  function co(e, t) {
8819
- const r = t.map((o) => {
8820
- const i = o.translated.replace(/'/g, "\\'");
8821
- return ` '${o.key}': '${i}',`;
9002
+ const i = t.map((o) => {
9003
+ const r = o.translated.replace(/'/g, "\\'");
9004
+ return ` '${o.key}': '${r}',`;
8822
9005
  });
8823
9006
  return `// Auto-translated additions for ${e} (review before merging)
8824
9007
  // Generated on ${(/* @__PURE__ */ new Date()).toISOString()}
8825
9008
  {
8826
- ${r.join(`
9009
+ ${i.join(`
8827
9010
  `)}
8828
9011
  }`;
8829
9012
  }
@@ -8838,23 +9021,23 @@ Generated: ${(/* @__PURE__ */ new Date()).toISOString()}
8838
9021
  | Language | Translated | Missing | Coverage |
8839
9022
  |----------|------------|---------|----------|
8840
9023
  `;
8841
- for (const r of e) {
8842
- const o = "█".repeat(Math.floor(r.coverage / 10)) + "░".repeat(10 - Math.floor(r.coverage / 10));
8843
- t += `| ${r.lang} | ${r.translatedKeys} | ${r.missingKeys} | ${o} ${r.coverage}% |
9024
+ for (const i of e) {
9025
+ const o = "█".repeat(Math.floor(i.coverage / 10)) + "░".repeat(10 - Math.floor(i.coverage / 10));
9026
+ t += `| ${i.lang} | ${i.translatedKeys} | ${i.missingKeys} | ${o} ${i.coverage}% |
8844
9027
  `;
8845
9028
  }
8846
9029
  t += `
8847
9030
  ## Languages with Missing Translations
8848
9031
 
8849
9032
  `;
8850
- for (const r of e.filter((o) => o.missingKeys > 0)) {
8851
- t += `### ${r.lang.toUpperCase()} (${r.coverage}% complete)
9033
+ for (const i of e.filter((o) => o.missingKeys > 0)) {
9034
+ t += `### ${i.lang.toUpperCase()} (${i.coverage}% complete)
8852
9035
 
8853
9036
  `;
8854
- const o = ut(r.lang);
9037
+ const o = ut(i.lang);
8855
9038
  t += `Missing ${o.length} keys:
8856
9039
 
8857
- `, t += "```\n", t += o.slice(0, 10).map((i) => i.key).join(`
9040
+ `, t += "```\n", t += o.slice(0, 10).map((r) => r.key).join(`
8858
9041
  `), o.length > 10 && (t += `
8859
9042
  ... and ${o.length - 10} more`), t += "\n```\n\n";
8860
9043
  }
@@ -8896,23 +9079,23 @@ function D(e) {
8896
9079
  return gt[e] ?? "en-US";
8897
9080
  }
8898
9081
  function ht(e, t = "medium") {
8899
- const r = D(e), o = new Intl.DateTimeFormat(r, { dateStyle: t });
9082
+ const i = D(e), o = new Intl.DateTimeFormat(i, { dateStyle: t });
8900
9083
  return {
8901
- format: (i) => o.format(i instanceof Date ? i : new Date(i)),
8902
- formatRange: (i, a) => {
8903
- const n = i instanceof Date ? i : new Date(i), s = a instanceof Date ? a : new Date(a);
9084
+ format: (r) => o.format(r instanceof Date ? r : new Date(r)),
9085
+ formatRange: (r, a) => {
9086
+ const n = r instanceof Date ? r : new Date(r), s = a instanceof Date ? a : new Date(a);
8904
9087
  return o.formatRange(n, s);
8905
9088
  },
8906
- formatRelative: (i) => wt(i instanceof Date ? i : new Date(i), r)
9089
+ formatRelative: (r) => wt(r instanceof Date ? r : new Date(r), i)
8907
9090
  };
8908
9091
  }
8909
9092
  function po(e, t = "medium") {
8910
9093
  return b(() => ht(e, t), [e, t]);
8911
9094
  }
8912
9095
  function vt(e, t = "short") {
8913
- const r = D(e), o = new Intl.DateTimeFormat(r, { timeStyle: t });
9096
+ const i = D(e), o = new Intl.DateTimeFormat(i, { timeStyle: t });
8914
9097
  return {
8915
- format: (i) => o.format(i instanceof Date ? i : new Date(i))
9098
+ format: (r) => o.format(r instanceof Date ? r : new Date(r))
8916
9099
  };
8917
9100
  }
8918
9101
  function mo(e, t = "short") {
@@ -8921,26 +9104,26 @@ function mo(e, t = "short") {
8921
9104
  function ft(e) {
8922
9105
  const t = D(e);
8923
9106
  return {
8924
- format: (r) => new Intl.NumberFormat(t).format(r),
8925
- formatCompact: (r) => new Intl.NumberFormat(t, { notation: "compact" }).format(r),
8926
- formatPercent: (r) => new Intl.NumberFormat(t, { style: "percent", maximumFractionDigits: 1 }).format(r)
9107
+ format: (i) => new Intl.NumberFormat(t).format(i),
9108
+ formatCompact: (i) => new Intl.NumberFormat(t, { notation: "compact" }).format(i),
9109
+ formatPercent: (i) => new Intl.NumberFormat(t, { style: "percent", maximumFractionDigits: 1 }).format(i)
8927
9110
  };
8928
9111
  }
8929
9112
  function go(e) {
8930
9113
  return b(() => ft(e), [e]);
8931
9114
  }
8932
9115
  function bt(e, t = "USD") {
8933
- const r = D(e), o = new Intl.NumberFormat(r, { style: "currency", currency: t });
9116
+ const i = D(e), o = new Intl.NumberFormat(i, { style: "currency", currency: t });
8934
9117
  return {
8935
- format: (i) => o.format(i)
9118
+ format: (r) => o.format(r)
8936
9119
  };
8937
9120
  }
8938
9121
  function ho(e, t = "USD") {
8939
9122
  return b(() => bt(e, t), [e, t]);
8940
9123
  }
8941
9124
  function wt(e, t) {
8942
- const r = Date.now(), o = e.getTime() - r, i = Math.abs(o), a = new Intl.RelativeTimeFormat(t, { numeric: "auto" });
8943
- return i < 6e4 ? a.format(Math.round(o / 1e3), "second") : i < 36e5 ? a.format(Math.round(o / 6e4), "minute") : i < 864e5 ? a.format(Math.round(o / 36e5), "hour") : i < 2592e6 ? a.format(Math.round(o / 864e5), "day") : i < 31536e6 ? a.format(Math.round(o / 2592e6), "month") : a.format(Math.round(o / 31536e6), "year");
9125
+ const i = Date.now(), o = e.getTime() - i, r = Math.abs(o), a = new Intl.RelativeTimeFormat(t, { numeric: "auto" });
9126
+ return r < 6e4 ? a.format(Math.round(o / 1e3), "second") : r < 36e5 ? a.format(Math.round(o / 6e4), "minute") : r < 864e5 ? a.format(Math.round(o / 36e5), "hour") : r < 2592e6 ? a.format(Math.round(o / 864e5), "day") : r < 31536e6 ? a.format(Math.round(o / 2592e6), "month") : a.format(Math.round(o / 31536e6), "year");
8944
9127
  }
8945
9128
  const ae = [
8946
9129
  {
@@ -9094,19 +9277,19 @@ const ae = [
9094
9277
  }
9095
9278
  }
9096
9279
  ];
9097
- function kt(e, t) {
9098
- const r = ae.find((o) => o.en.toLowerCase() === e.toLowerCase());
9099
- return r == null ? void 0 : r.translations[t];
9280
+ function Et(e, t) {
9281
+ const i = ae.find((o) => o.en.toLowerCase() === e.toLowerCase());
9282
+ return i == null ? void 0 : i.translations[t];
9100
9283
  }
9101
- function vo(e, t, r = 0.8) {
9102
- const o = w.en, i = w[t], a = e.toLowerCase().trim();
9284
+ function vo(e, t, i = 0.8) {
9285
+ const o = w.en, r = w[t], a = e.toLowerCase().trim();
9103
9286
  let n;
9104
9287
  for (const [s, l] of Object.entries(o)) {
9105
- const d = i[s];
9288
+ const d = r[s];
9106
9289
  if (!d)
9107
9290
  continue;
9108
- const u = Et(a, l.toLowerCase().trim());
9109
- u >= r && (!n || u > n.similarity) && (n = { key: s, english: l, translated: d, similarity: u });
9291
+ const u = kt(a, l.toLowerCase().trim());
9292
+ u >= i && (!n || u > n.similarity) && (n = { key: s, english: l, translated: d, similarity: u });
9110
9293
  }
9111
9294
  return n;
9112
9295
  }
@@ -9117,29 +9300,29 @@ function fo(e) {
9117
9300
  }));
9118
9301
  }
9119
9302
  function bo(e) {
9120
- const t = w[e], r = w.en, o = [];
9121
- for (const [i, a] of Object.entries(r)) {
9122
- const n = kt(a, e), s = t[i];
9123
- n && s && s !== n && o.push({ key: i, currentTranslation: s, glossaryTranslation: n });
9303
+ const t = w[e], i = w.en, o = [];
9304
+ for (const [r, a] of Object.entries(i)) {
9305
+ const n = Et(a, e), s = t[r];
9306
+ n && s && s !== n && o.push({ key: r, currentTranslation: s, glossaryTranslation: n });
9124
9307
  }
9125
9308
  return o;
9126
9309
  }
9127
9310
  function $(e) {
9128
9311
  const t = /* @__PURE__ */ new Set();
9129
- for (let r = 0; r < e.length - 1; r++)
9130
- t.add(e.substring(r, r + 2));
9312
+ for (let i = 0; i < e.length - 1; i++)
9313
+ t.add(e.substring(i, i + 2));
9131
9314
  return t;
9132
9315
  }
9133
- function Et(e, t) {
9316
+ function kt(e, t) {
9134
9317
  if (e === t)
9135
9318
  return 1;
9136
9319
  if (e.length < 2 || t.length < 2)
9137
9320
  return 0;
9138
- const r = $(e), o = $(t);
9139
- let i = 0;
9140
- for (const a of r)
9141
- o.has(a) && i++;
9142
- return 2 * i / (r.size + o.size);
9321
+ const i = $(e), o = $(t);
9322
+ let r = 0;
9323
+ for (const a of i)
9324
+ o.has(a) && r++;
9325
+ return 2 * r / (i.size + o.size);
9143
9326
  }
9144
9327
  const ne = {
9145
9328
  UTC: ["UTC", "Etc/UTC", "Etc/GMT"],
@@ -9216,15 +9399,15 @@ function wo(e) {
9216
9399
  return !1;
9217
9400
  }
9218
9401
  }
9219
- function F(e, t = "en", r = /* @__PURE__ */ new Date()) {
9220
- var k, M;
9221
- const o = D(t), i = new Intl.DateTimeFormat(o, {
9402
+ function M(e, t = "en", i = /* @__PURE__ */ new Date()) {
9403
+ var E, F;
9404
+ const o = D(t), r = new Intl.DateTimeFormat(o, {
9222
9405
  timeZone: e,
9223
9406
  timeZoneName: "long"
9224
9407
  }), a = new Intl.DateTimeFormat(o, {
9225
9408
  timeZone: e,
9226
9409
  timeZoneName: "short"
9227
- }), n = i.formatToParts(r), s = a.formatToParts(r), l = ((k = n.find((A) => A.type === "timeZoneName")) == null ? void 0 : k.value) || e, d = ((M = s.find((A) => A.type === "timeZoneName")) == null ? void 0 : M.value) || e, u = new Date(r.toLocaleString("en-US", { timeZone: "UTC" })), v = new Date(r.toLocaleString("en-US", { timeZone: e })), p = Math.round((v.getTime() - u.getTime()) / 6e4), m = new Date(r.getFullYear(), 0, 1), f = new Date(r.getFullYear(), 6, 1), g = U(e, m), y = U(e, f), z = U(e, r), E = Math.min(g, y), j = z !== E && g !== y;
9410
+ }), n = r.formatToParts(i), s = a.formatToParts(i), l = ((E = n.find((A) => A.type === "timeZoneName")) == null ? void 0 : E.value) || e, d = ((F = s.find((A) => A.type === "timeZoneName")) == null ? void 0 : F.value) || e, u = new Date(i.toLocaleString("en-US", { timeZone: "UTC" })), v = new Date(i.toLocaleString("en-US", { timeZone: e })), p = Math.round((v.getTime() - u.getTime()) / 6e4), m = new Date(i.getFullYear(), 0, 1), f = new Date(i.getFullYear(), 6, 1), g = U(e, m), y = U(e, f), z = U(e, i), k = Math.min(g, y), j = z !== k && g !== y;
9228
9411
  return {
9229
9412
  id: e,
9230
9413
  displayName: l,
@@ -9234,35 +9417,35 @@ function F(e, t = "en", r = /* @__PURE__ */ new Date()) {
9234
9417
  isDST: j
9235
9418
  };
9236
9419
  }
9237
- function ko(e = "en", t = /* @__PURE__ */ new Date()) {
9238
- return Object.values(ne).flat().map((o) => F(o, e, t));
9239
- }
9240
9420
  function Eo(e = "en", t = /* @__PURE__ */ new Date()) {
9241
- const r = {};
9242
- for (const [o, i] of Object.entries(ne))
9243
- r[o] = i.map((a) => F(a, e, t));
9244
- return r;
9421
+ return Object.values(ne).flat().map((o) => M(o, e, t));
9422
+ }
9423
+ function ko(e = "en", t = /* @__PURE__ */ new Date()) {
9424
+ const i = {};
9425
+ for (const [o, r] of Object.entries(ne))
9426
+ i[o] = r.map((a) => M(a, e, t));
9427
+ return i;
9245
9428
  }
9246
- function se(e, t, r) {
9247
- const o = e.toLocaleString("en-US", { timeZone: t }), i = new Date(o), a = e.toLocaleString("en-US", { timeZone: r }), n = new Date(a), s = i.getTime() - n.getTime();
9429
+ function se(e, t, i) {
9430
+ const o = e.toLocaleString("en-US", { timeZone: t }), r = new Date(o), a = e.toLocaleString("en-US", { timeZone: i }), n = new Date(a), s = r.getTime() - n.getTime();
9248
9431
  return new Date(e.getTime() + s);
9249
9432
  }
9250
9433
  function yt(e, t) {
9251
- const r = t || Z();
9252
- return se(e, r, "UTC");
9434
+ const i = t || Z();
9435
+ return se(e, i, "UTC");
9253
9436
  }
9254
9437
  function zt(e, t) {
9255
- const r = t || Z();
9256
- return se(e, "UTC", r);
9438
+ const i = t || Z();
9439
+ return se(e, "UTC", i);
9257
9440
  }
9258
- function Ct(e, t, r = {}) {
9259
- const o = D(e), { dateStyle: i = "medium", timeStyle: a = "short", nameStyle: n = "short" } = r, s = new Intl.DateTimeFormat(o, {
9441
+ function Ct(e, t, i = {}) {
9442
+ const o = D(e), { dateStyle: r = "medium", timeStyle: a = "short", nameStyle: n = "short" } = i, s = new Intl.DateTimeFormat(o, {
9260
9443
  timeZone: t,
9261
- dateStyle: i,
9444
+ dateStyle: r,
9262
9445
  timeStyle: a
9263
9446
  }), l = new Intl.DateTimeFormat(o, {
9264
9447
  timeZone: t,
9265
- dateStyle: i,
9448
+ dateStyle: r,
9266
9449
  timeStyle: a,
9267
9450
  timeZoneName: n
9268
9451
  }), d = new Intl.DateTimeFormat(o, {
@@ -9272,52 +9455,52 @@ function Ct(e, t, r = {}) {
9272
9455
  return {
9273
9456
  format: (u) => s.format(u),
9274
9457
  formatWithZone: (u) => l.format(u),
9275
- getOffset: (u) => F(t, e, u).offsetString,
9458
+ getOffset: (u) => M(t, e, u).offsetString,
9276
9459
  getAbbreviation: (u) => {
9277
9460
  var p;
9278
9461
  return ((p = d.formatToParts(u).find((m) => m.type === "timeZoneName")) == null ? void 0 : p.value) || "";
9279
9462
  }
9280
9463
  };
9281
9464
  }
9282
- function q(e, t = /* @__PURE__ */ new Date()) {
9283
- return F(e, "en", t).isDST;
9465
+ function W(e, t = /* @__PURE__ */ new Date()) {
9466
+ return M(e, "en", t).isDST;
9284
9467
  }
9285
9468
  function yo(e, t = /* @__PURE__ */ new Date()) {
9286
- const r = q(e, t), o = new Date(t), i = new Date(t);
9287
- for (i.setFullYear(i.getFullYear() + 1); o < i; )
9288
- if (o.setDate(o.getDate() + 1), q(e, o) !== r) {
9469
+ const i = W(e, t), o = new Date(t), r = new Date(t);
9470
+ for (r.setFullYear(r.getFullYear() + 1); o < r; )
9471
+ if (o.setDate(o.getDate() + 1), W(e, o) !== i) {
9289
9472
  o.setDate(o.getDate() - 1);
9290
9473
  const a = new Date(o);
9291
9474
  a.setHours(0, 0, 0, 0);
9292
9475
  const n = new Date(o);
9293
9476
  for (n.setDate(n.getDate() + 2); n.getTime() - a.getTime() > 6e4; ) {
9294
9477
  const s = new Date((a.getTime() + n.getTime()) / 2);
9295
- q(e, s) === r ? a.setTime(s.getTime()) : n.setTime(s.getTime());
9478
+ W(e, s) === i ? a.setTime(s.getTime()) : n.setTime(s.getTime());
9296
9479
  }
9297
9480
  return n;
9298
9481
  }
9299
9482
  return null;
9300
9483
  }
9301
- function zo(e, t, r) {
9302
- const [o] = x(() => Z()), i = t || o, a = b(() => Ct(e, i, r), [e, i, r]), n = b(() => F(i, e), [i, e]);
9484
+ function zo(e, t, i) {
9485
+ const [o] = T(() => Z()), r = t || o, a = b(() => Ct(e, r, i), [e, r, i]), n = b(() => M(r, e), [r, e]);
9303
9486
  return {
9304
- timezone: i,
9487
+ timezone: r,
9305
9488
  info: n,
9306
9489
  format: a.format,
9307
9490
  formatWithZone: a.formatWithZone,
9308
9491
  getOffset: a.getOffset,
9309
9492
  getAbbreviation: a.getAbbreviation,
9310
- toUTC: (s) => yt(s, i),
9311
- fromUTC: (s) => zt(s, i)
9493
+ toUTC: (s) => yt(s, r),
9494
+ fromUTC: (s) => zt(s, r)
9312
9495
  };
9313
9496
  }
9314
9497
  function U(e, t) {
9315
- const r = t.toLocaleString("en-US", { timeZone: "UTC" }), o = t.toLocaleString("en-US", { timeZone: e }), i = new Date(r), a = new Date(o);
9316
- return Math.round((a.getTime() - i.getTime()) / 6e4);
9498
+ const i = t.toLocaleString("en-US", { timeZone: "UTC" }), o = t.toLocaleString("en-US", { timeZone: e }), r = new Date(i), a = new Date(o);
9499
+ return Math.round((a.getTime() - r.getTime()) / 6e4);
9317
9500
  }
9318
9501
  function St(e) {
9319
- const t = e >= 0 ? "+" : "-", r = Math.abs(e), o = Math.floor(r / 60), i = r % 60;
9320
- return `${t}${o.toString().padStart(2, "0")}:${i.toString().padStart(2, "0")}`;
9502
+ const t = e >= 0 ? "+" : "-", i = Math.abs(e), o = Math.floor(i / 60), r = i % 60;
9503
+ return `${t}${o.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}`;
9321
9504
  }
9322
9505
  const V = {
9323
9506
  gregory: {
@@ -9485,10 +9668,10 @@ const V = {
9485
9668
  fil: "gregory",
9486
9669
  ms: "gregory"
9487
9670
  };
9488
- function de(e, t = "gregory", r = {}) {
9489
- const o = D(e), { dateStyle: i = "medium", showEra: a = !1, showWeekday: n = !1 } = r, s = {
9671
+ function de(e, t = "gregory", i = {}) {
9672
+ const o = D(e), { dateStyle: r = "medium", showEra: a = !1, showWeekday: n = !1 } = i, s = {
9490
9673
  calendar: t,
9491
- dateStyle: i
9674
+ dateStyle: r
9492
9675
  };
9493
9676
  n && (delete s.dateStyle, s.weekday = "long", s.year = "numeric", s.month = "long", s.day = "numeric");
9494
9677
  const l = new Intl.DateTimeFormat(o, s), d = {
@@ -9516,7 +9699,7 @@ function de(e, t = "gregory", r = {}) {
9516
9699
  return m;
9517
9700
  },
9518
9701
  parseParts: (m) => {
9519
- var y, z, E, j;
9702
+ var y, z, k, j;
9520
9703
  const g = new Intl.DateTimeFormat(o, {
9521
9704
  calendar: t,
9522
9705
  year: "numeric",
@@ -9526,10 +9709,10 @@ function de(e, t = "gregory", r = {}) {
9526
9709
  }).formatToParts(m);
9527
9710
  return {
9528
9711
  calendar: t,
9529
- year: parseInt(((y = g.find((k) => k.type === "year")) == null ? void 0 : y.value) || "0", 10),
9530
- month: parseInt(((z = g.find((k) => k.type === "month")) == null ? void 0 : z.value) || "0", 10),
9531
- day: parseInt(((E = g.find((k) => k.type === "day")) == null ? void 0 : E.value) || "0", 10),
9532
- era: (j = g.find((k) => k.type === "era")) == null ? void 0 : j.value,
9712
+ year: parseInt(((y = g.find((E) => E.type === "year")) == null ? void 0 : y.value) || "0", 10),
9713
+ month: parseInt(((z = g.find((E) => E.type === "month")) == null ? void 0 : z.value) || "0", 10),
9714
+ day: parseInt(((k = g.find((E) => E.type === "day")) == null ? void 0 : k.value) || "0", 10),
9715
+ era: (j = g.find((E) => E.type === "era")) == null ? void 0 : j.value,
9533
9716
  gregorianDate: m
9534
9717
  };
9535
9718
  },
@@ -9542,8 +9725,8 @@ function de(e, t = "gregory", r = {}) {
9542
9725
  }
9543
9726
  };
9544
9727
  }
9545
- function ce(e, t, r = "en") {
9546
- return de(r, t).parseParts(e);
9728
+ function ce(e, t, i = "en") {
9729
+ return de(i, t).parseParts(e);
9547
9730
  }
9548
9731
  function Dt(e, t = "en") {
9549
9732
  return ce(/* @__PURE__ */ new Date(), e, t);
@@ -9616,7 +9799,7 @@ function Po(e) {
9616
9799
  const t = At(e);
9617
9800
  return t ? e.getFullYear() - t.startDate.getFullYear() + 1 : null;
9618
9801
  }
9619
- const xo = [
9802
+ const To = [
9620
9803
  "Farvardin",
9621
9804
  "Ordibehesht",
9622
9805
  "Khordad",
@@ -9630,7 +9813,7 @@ const xo = [
9630
9813
  "Bahman",
9631
9814
  "Esfand"
9632
9815
  ];
9633
- function To(e) {
9816
+ function xo(e) {
9634
9817
  return ((e - 474) % 2820 + 2820) % 2820 * 682 % 2816 < 682;
9635
9818
  }
9636
9819
  const Pt = [
@@ -9650,7 +9833,7 @@ const Pt = [
9650
9833
  function Bo(e) {
9651
9834
  return Pt[(e - 4) % 12];
9652
9835
  }
9653
- const xt = [
9836
+ const Tt = [
9654
9837
  "Jia",
9655
9838
  "Yi",
9656
9839
  "Bing",
@@ -9662,26 +9845,26 @@ const xt = [
9662
9845
  "Ren",
9663
9846
  "Gui"
9664
9847
  ];
9665
- function Fo(e) {
9666
- return xt[(e - 4) % 10];
9848
+ function Mo(e) {
9849
+ return Tt[(e - 4) % 10];
9667
9850
  }
9668
- function Mo(e, t, r) {
9669
- const o = t || le[e], i = b(
9670
- () => de(e, o, r),
9671
- [e, o, r]
9851
+ function Fo(e, t, i) {
9852
+ const o = t || le[e], r = b(
9853
+ () => de(e, o, i),
9854
+ [e, o, i]
9672
9855
  ), a = b(() => V[o], [o]), n = b(() => Dt(o, e), [o, e]);
9673
9856
  return {
9674
9857
  calendar: o,
9675
9858
  info: a,
9676
9859
  current: n,
9677
- format: i.format,
9678
- formatWithEra: i.formatWithEra,
9679
- getMonthName: i.getMonthName,
9680
- getMonthNames: i.getMonthNames,
9681
- getWeekdayName: i.getWeekdayName,
9682
- getWeekdayNames: i.getWeekdayNames,
9683
- parseParts: i.parseParts,
9684
- getEraName: i.getEraName,
9860
+ format: r.format,
9861
+ formatWithEra: r.formatWithEra,
9862
+ getMonthName: r.getMonthName,
9863
+ getMonthNames: r.getMonthNames,
9864
+ getWeekdayName: r.getWeekdayName,
9865
+ getWeekdayNames: r.getWeekdayNames,
9866
+ parseParts: r.parseParts,
9867
+ getEraName: r.getEraName,
9685
9868
  toCalendar: (s) => ce(s, o, e)
9686
9869
  };
9687
9870
  }
@@ -9689,19 +9872,19 @@ function No() {
9689
9872
  return Object.keys(V);
9690
9873
  }
9691
9874
  function Ro(e, t = "en") {
9692
- const r = { ...V[e] };
9875
+ const i = { ...V[e] };
9693
9876
  try {
9694
9877
  const o = D(t), a = new Intl.DisplayNames([o], { type: "calendar" }).of(e);
9695
- a && (r.displayName = a);
9878
+ a && (i.displayName = a);
9696
9879
  } catch {
9697
9880
  }
9698
- return r;
9881
+ return i;
9699
9882
  }
9700
9883
  function Lo(e) {
9701
- const t = le[e], r = /* @__PURE__ */ new Set([t]);
9702
- for (const [o, i] of Object.entries(V))
9703
- i.associatedLanguages.includes(e) && r.add(o);
9704
- return r.add("gregory"), Array.from(r);
9884
+ const t = le[e], i = /* @__PURE__ */ new Set([t]);
9885
+ for (const [o, r] of Object.entries(V))
9886
+ r.associatedLanguages.includes(e) && i.add(o);
9887
+ return i.add("gregory"), Array.from(i);
9705
9888
  }
9706
9889
  const J = {
9707
9890
  // Lowercase
@@ -9758,7 +9941,7 @@ const J = {
9758
9941
  X: "Χ",
9759
9942
  Y: "Ÿ",
9760
9943
  Z: "Ž"
9761
- }, Tt = {
9944
+ }, xt = {
9762
9945
  ...J,
9763
9946
  // Additional mappings
9764
9947
  a: "ặ",
@@ -9773,35 +9956,35 @@ const J = {
9773
9956
  O: "Ộ",
9774
9957
  U: "Ụ",
9775
9958
  Y: "Ỵ"
9776
- }, Bt = "‪", Ft = "‫", _ = "‬", Mt = "~∼~≈";
9959
+ }, Bt = "‪", Mt = "‫", _ = "‬", Ft = "~∼~≈";
9777
9960
  function Oo(e, t = !1) {
9778
- const r = t ? Tt : J;
9779
- return e.split("").map((o) => r[o] || o).join("");
9961
+ const i = t ? xt : J;
9962
+ return e.split("").map((o) => i[o] || o).join("");
9780
9963
  }
9781
- function Io(e, t = "[", r = "]") {
9782
- return `${t}${e}${r}`;
9964
+ function Io(e, t = "[", i = "]") {
9965
+ return `${t}${e}${i}`;
9783
9966
  }
9784
- function Nt(e, t = 0.3, r = !1) {
9785
- if (r)
9967
+ function Nt(e, t = 0.3, i = !1) {
9968
+ if (i)
9786
9969
  return Rt(e);
9787
- const i = Math.ceil(e.length * (1 + t)) - e.length;
9788
- if (i <= 0)
9970
+ const r = Math.ceil(e.length * (1 + t)) - e.length;
9971
+ if (r <= 0)
9789
9972
  return e;
9790
- const a = Mt[0].repeat(i);
9973
+ const a = Ft[0].repeat(r);
9791
9974
  return e + a;
9792
9975
  }
9793
9976
  function Rt(e) {
9794
9977
  const t = /* @__PURE__ */ new Set(["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]);
9795
- return e.split("").map((r) => t.has(r) ? r + r : r).join("");
9978
+ return e.split("").map((i) => t.has(i) ? i + i : i).join("");
9796
9979
  }
9797
9980
  function Lt(e, t = !1) {
9798
- return t ? `${Ft}${e}${_}` : `${Bt}${e}${_}`;
9981
+ return t ? `${Mt}${e}${_}` : `${Bt}${e}${_}`;
9799
9982
  }
9800
9983
  function ue(e, t = {}) {
9801
9984
  const {
9802
- addBrackets: r = !0,
9985
+ addBrackets: i = !0,
9803
9986
  expansionFactor: o = 0.3,
9804
- addAccents: i = !0,
9987
+ addAccents: r = !0,
9805
9988
  addBidiMarkers: a = !1,
9806
9989
  useVowelDoubling: n = !1,
9807
9990
  preservePlaceholders: s = !0,
@@ -9816,16 +9999,16 @@ function ue(e, t = {}) {
9816
9999
  })), l && (p = p.replace(/<[^>]+>/g, (f) => {
9817
10000
  const g = `__PH${m++}__`;
9818
10001
  return v.set(g, f), g;
9819
- })), i && (p = Ot(p, v)), o > 0 && (p = Nt(p, o, n)), a && (p = Lt(p)), r && (p = `${d}${p}${u}`);
10002
+ })), r && (p = Ot(p, v)), o > 0 && (p = Nt(p, o, n)), a && (p = Lt(p)), i && (p = `${d}${p}${u}`);
9820
10003
  for (const [f, g] of v.entries())
9821
10004
  p = p.replace(f, g);
9822
10005
  return p;
9823
10006
  }
9824
10007
  function Ot(e, t) {
9825
- const r = new Set(t.keys());
10008
+ const i = new Set(t.keys());
9826
10009
  return e.split("").map((o) => {
9827
- for (const i of r)
9828
- if (e.includes(i) && i.includes(o))
10010
+ for (const r of i)
10011
+ if (e.includes(r) && r.includes(o))
9829
10012
  return o;
9830
10013
  return J[o] || o;
9831
10014
  }).join("");
@@ -9865,10 +10048,10 @@ function P(e) {
9865
10048
  }
9866
10049
  }
9867
10050
  function Vo(e, t) {
9868
- const r = {};
9869
- for (const [o, i] of Object.entries(e))
9870
- r[o] = ue(i, t);
9871
- return r;
10051
+ const i = {};
10052
+ for (const [o, r] of Object.entries(e))
10053
+ i[o] = ue(r, t);
10054
+ return i;
9872
10055
  }
9873
10056
  function It(e) {
9874
10057
  return /[^\x00-\x7F]/.test(e);
@@ -9876,50 +10059,50 @@ function It(e) {
9876
10059
  function Vt(e) {
9877
10060
  if (!e || /^[\d.,-]+$/.test(e) || e.startsWith("["))
9878
10061
  return !1;
9879
- const t = /[a-zA-Z]{2,}/.test(e), r = It(e);
9880
- return t && !r;
10062
+ const t = /[a-zA-Z]{2,}/.test(e), i = It(e);
10063
+ return t && !i;
9881
10064
  }
9882
10065
  function Ho(e, t) {
9883
- const r = {
10066
+ const i = {
9884
10067
  totalKeys: Object.keys(e).length,
9885
10068
  hardcodedStrings: [],
9886
10069
  emptyValues: [],
9887
10070
  placeholderMismatches: [],
9888
10071
  potentialIssues: 0
9889
10072
  };
9890
- for (const [o, i] of Object.entries(e)) {
9891
- if (!i || i.trim() === "") {
9892
- r.emptyValues.push(o), r.potentialIssues++;
10073
+ for (const [o, r] of Object.entries(e)) {
10074
+ if (!r || r.trim() === "") {
10075
+ i.emptyValues.push(o), i.potentialIssues++;
9893
10076
  continue;
9894
10077
  }
9895
- if (Vt(i) && r.hardcodedStrings.push(o), t && t[o]) {
9896
- const a = Q(i), n = Q(t[o]), s = a.filter((d) => !n.includes(d)), l = n.filter((d) => !a.includes(d));
9897
- (s.length > 0 || l.length > 0) && (r.placeholderMismatches.push({
10078
+ if (Vt(r) && i.hardcodedStrings.push(o), t && t[o]) {
10079
+ const a = Q(r), n = Q(t[o]), s = a.filter((d) => !n.includes(d)), l = n.filter((d) => !a.includes(d));
10080
+ (s.length > 0 || l.length > 0) && (i.placeholderMismatches.push({
9898
10081
  key: o,
9899
10082
  placeholders: [
9900
10083
  ...s.map((d) => `-${d}`),
9901
10084
  ...l.map((d) => `+${d}`)
9902
10085
  ]
9903
- }), r.potentialIssues++);
10086
+ }), i.potentialIssues++);
9904
10087
  }
9905
10088
  }
9906
- return r;
10089
+ return i;
9907
10090
  }
9908
10091
  function Q(e) {
9909
- return (e.match(/\{([^}]+)\}/g) || []).map((r) => r.replace(/[{}]/g, "").split(",")[0].trim());
10092
+ return (e.match(/\{([^}]+)\}/g) || []).map((i) => i.replace(/[{}]/g, "").split(",")[0].trim());
9910
10093
  }
9911
10094
  const pe = I(null);
9912
- function Wo({
10095
+ function qo({
9913
10096
  children: e,
9914
10097
  initialEnabled: t = !1,
9915
- initialMode: r = "full"
10098
+ initialMode: i = "full"
9916
10099
  }) {
9917
- const [o, i] = x(t), [a, n] = x(r), s = b(() => P(a), [a]), l = b(() => (u) => o ? ue(u, s) : u, [o, s]), d = b(
10100
+ const [o, r] = T(t), [a, n] = T(i), s = b(() => P(a), [a]), l = b(() => (u) => o ? ue(u, s) : u, [o, s]), d = b(
9918
10101
  () => ({
9919
10102
  enabled: o,
9920
10103
  mode: a,
9921
10104
  options: s,
9922
- toggle: () => i((u) => !u),
10105
+ toggle: () => r((u) => !u),
9923
10106
  setMode: n,
9924
10107
  transform: l
9925
10108
  }),
@@ -9927,7 +10110,7 @@ function Wo({
9927
10110
  );
9928
10111
  return /* @__PURE__ */ O(pe.Provider, { value: d, children: e });
9929
10112
  }
9930
- function qo() {
10113
+ function Wo() {
9931
10114
  const e = B(pe);
9932
10115
  return e || {
9933
10116
  enabled: !1,
@@ -9962,27 +10145,27 @@ class Ht {
9962
10145
  constructor(t = 0) {
9963
10146
  this.cache = /* @__PURE__ */ new Map(), this.ttl = t;
9964
10147
  }
9965
- getCacheKey(t, r) {
9966
- return r ? `${t}:${r}` : t;
10148
+ getCacheKey(t, i) {
10149
+ return i ? `${t}:${i}` : t;
9967
10150
  }
9968
- get(t, r) {
9969
- const o = this.getCacheKey(t, r), i = this.cache.get(o);
9970
- return i ? this.ttl > 0 && Date.now() > i.expiresAt ? (this.cache.delete(o), null) : i.data : null;
10151
+ get(t, i) {
10152
+ const o = this.getCacheKey(t, i), r = this.cache.get(o);
10153
+ return r ? this.ttl > 0 && Date.now() > r.expiresAt ? (this.cache.delete(o), null) : r.data : null;
9971
10154
  }
9972
- set(t, r, o) {
9973
- const i = this.getCacheKey(t, o), a = Date.now();
9974
- this.cache.set(i, {
9975
- data: r,
10155
+ set(t, i, o) {
10156
+ const r = this.getCacheKey(t, o), a = Date.now();
10157
+ this.cache.set(r, {
10158
+ data: i,
9976
10159
  loadedAt: a,
9977
10160
  expiresAt: this.ttl > 0 ? a + this.ttl : 1 / 0
9978
10161
  });
9979
10162
  }
9980
- has(t, r) {
9981
- return this.get(t, r) !== null;
10163
+ has(t, i) {
10164
+ return this.get(t, i) !== null;
9982
10165
  }
9983
- delete(t, r) {
9984
- if (r)
9985
- this.cache.delete(this.getCacheKey(t, r));
10166
+ delete(t, i) {
10167
+ if (i)
10168
+ this.cache.delete(this.getCacheKey(t, i));
9986
10169
  else
9987
10170
  for (const o of this.cache.keys())
9988
10171
  (o === t || o.startsWith(`${t}:`)) && this.cache.delete(o);
@@ -9992,8 +10175,8 @@ class Ht {
9992
10175
  }
9993
10176
  getStats() {
9994
10177
  const t = /* @__PURE__ */ new Set();
9995
- for (const r of this.cache.keys())
9996
- t.add(r.split(":")[0]);
10178
+ for (const i of this.cache.keys())
10179
+ t.add(i.split(":")[0]);
9997
10180
  return {
9998
10181
  size: this.cache.size,
9999
10182
  languages: Array.from(t)
@@ -10003,16 +10186,16 @@ class Ht {
10003
10186
  function me(e) {
10004
10187
  const {
10005
10188
  loadFn: t,
10006
- fallbackLang: r = "en",
10189
+ fallbackLang: i = "en",
10007
10190
  cacheTtl: o = 0,
10008
- preloadLanguages: i = [],
10191
+ preloadLanguages: r = [],
10009
10192
  namespaces: a = [],
10010
10193
  defaultNamespace: n,
10011
10194
  onLoadStart: s,
10012
10195
  onLoadComplete: l,
10013
10196
  onLoadError: d
10014
10197
  } = e, u = new Ht(o), v = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Map();
10015
- let m = r;
10198
+ let m = i;
10016
10199
  const f = /* @__PURE__ */ new Set();
10017
10200
  function g() {
10018
10201
  const c = z();
@@ -10023,7 +10206,7 @@ function me(e) {
10023
10206
  }
10024
10207
  function z() {
10025
10208
  const c = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Set();
10026
- for (const C of T)
10209
+ for (const C of x)
10027
10210
  u.has(C) && c.add(C);
10028
10211
  for (const C of v) {
10029
10212
  const N = C.split(":")[0];
@@ -10036,7 +10219,7 @@ function me(e) {
10036
10219
  currentLanguage: m
10037
10220
  };
10038
10221
  }
10039
- async function E(c, h) {
10222
+ async function k(c, h) {
10040
10223
  const C = y(c, h), N = u.get(c, h);
10041
10224
  if (N)
10042
10225
  return N;
@@ -10052,20 +10235,20 @@ function me(e) {
10052
10235
  return u.set(c, S, h), l == null || l(c, h), S;
10053
10236
  } catch (S) {
10054
10237
  const R = S instanceof Error ? S : new Error(String(S));
10055
- return p.set(c, R), d == null || d(c, R, h), c !== r && !h ? (console.warn(`Failed to load ${c}, falling back to ${r}`), E(r, h)) : null;
10238
+ return p.set(c, R), d == null || d(c, R, h), c !== i && !h ? (console.warn(`Failed to load ${c}, falling back to ${i}`), k(i, h)) : null;
10056
10239
  } finally {
10057
10240
  v.delete(C), g();
10058
10241
  }
10059
10242
  }
10060
10243
  async function j(c) {
10061
- await Promise.all(c.map((h) => E(h)));
10244
+ await Promise.all(c.map((h) => k(h)));
10062
10245
  }
10063
- async function k() {
10064
- i.length !== 0 && await Promise.allSettled(
10065
- i.map((c) => a.length > 0 ? Promise.all(a.map((h) => E(c, h))) : E(c))
10246
+ async function E() {
10247
+ r.length !== 0 && await Promise.allSettled(
10248
+ r.map((c) => a.length > 0 ? Promise.all(a.map((h) => k(c, h))) : k(c))
10066
10249
  );
10067
10250
  }
10068
- function M(c, h) {
10251
+ function F(c, h) {
10069
10252
  return u.get(c, h);
10070
10253
  }
10071
10254
  function A(c, h) {
@@ -10084,19 +10267,19 @@ function me(e) {
10084
10267
  c ? u.delete(c) : u.clear(), g();
10085
10268
  }
10086
10269
  async function be(c) {
10087
- A(c) || await E(c), m = c, g();
10270
+ A(c) || await k(c), m = c, g();
10088
10271
  }
10089
10272
  function we() {
10090
10273
  return m;
10091
10274
  }
10092
- function ke(c) {
10275
+ function Ee(c) {
10093
10276
  return f.add(c), () => f.delete(c);
10094
10277
  }
10095
10278
  return {
10096
- loadLanguage: E,
10279
+ loadLanguage: k,
10097
10280
  loadLanguages: j,
10098
- preloadLanguages: k,
10099
- getTranslations: M,
10281
+ preloadLanguages: E,
10282
+ getTranslations: F,
10100
10283
  isLoaded: A,
10101
10284
  isLoading: he,
10102
10285
  getLoadedLanguages: ve,
@@ -10104,14 +10287,14 @@ function me(e) {
10104
10287
  getState: z,
10105
10288
  setLanguage: be,
10106
10289
  getCurrentLanguage: we,
10107
- subscribe: ke
10290
+ subscribe: Ee
10108
10291
  };
10109
10292
  }
10110
10293
  function Ko(e, t) {
10111
10294
  return me({
10112
10295
  ...t,
10113
- loadFn: async (r, o) => {
10114
- const i = o ? `${e}/${r}/${o}.json` : `${e}/${r}.json`, a = await fetch(i);
10296
+ loadFn: async (i, o) => {
10297
+ const r = o ? `${e}/${i}/${o}.json` : `${e}/${i}.json`, a = await fetch(r);
10115
10298
  if (!a.ok)
10116
10299
  throw new Error(`Failed to load translations: ${a.status}`);
10117
10300
  return a.json();
@@ -10121,21 +10304,21 @@ function Ko(e, t) {
10121
10304
  function Go(e, t) {
10122
10305
  return me({
10123
10306
  ...t,
10124
- loadFn: async (r, o) => (await e(r, o)).default
10307
+ loadFn: async (i, o) => (await e(i, o)).default
10125
10308
  });
10126
10309
  }
10127
10310
  const ge = I(null);
10128
10311
  function Zo({
10129
10312
  children: e,
10130
10313
  loader: t,
10131
- initialLanguage: r,
10314
+ initialLanguage: i,
10132
10315
  namespace: o
10133
10316
  }) {
10134
- const [i, a] = x(() => t.getState()), [n, s] = x(null);
10317
+ const [r, a] = T(() => t.getState()), [n, s] = T(null);
10135
10318
  L(() => t.subscribe(a), [t]), L(() => {
10136
- r && !t.isLoaded(r, o) && t.loadLanguage(r, o).catch(s);
10137
- }, [t, r, o]);
10138
- const l = b(() => t.getTranslations(i.currentLanguage, o) || {}, [t, i.currentLanguage, o]), d = ee(
10319
+ i && !t.isLoaded(i, o) && t.loadLanguage(i, o).catch(s);
10320
+ }, [t, i, o]);
10321
+ const l = b(() => t.getTranslations(r.currentLanguage, o) || {}, [t, r.currentLanguage, o]), d = ee(
10139
10322
  async (v) => {
10140
10323
  s(null);
10141
10324
  try {
@@ -10149,27 +10332,27 @@ function Zo({
10149
10332
  () => ({
10150
10333
  loader: t,
10151
10334
  translations: l,
10152
- isLoading: i.loadingLanguages.size > 0,
10335
+ isLoading: r.loadingLanguages.size > 0,
10153
10336
  error: n,
10154
10337
  setLanguage: d,
10155
- currentLanguage: i.currentLanguage,
10156
- loadedLanguages: Array.from(i.loadedLanguages)
10338
+ currentLanguage: r.currentLanguage,
10339
+ loadedLanguages: Array.from(r.loadedLanguages)
10157
10340
  }),
10158
- [t, l, i, n, d]
10341
+ [t, l, r, n, d]
10159
10342
  );
10160
10343
  return /* @__PURE__ */ O(ge.Provider, { value: u, children: e });
10161
10344
  }
10162
- function Wt() {
10345
+ function qt() {
10163
10346
  const e = B(ge);
10164
10347
  if (!e)
10165
10348
  throw new Error("useDynamicI18n must be used within DynamicI18nProvider");
10166
10349
  return e;
10167
10350
  }
10168
10351
  function Jo(e) {
10169
- const { translations: t, currentLanguage: r, loader: o, isLoading: i } = Wt();
10352
+ const { translations: t, currentLanguage: i, loader: o, isLoading: r } = qt();
10170
10353
  return L(() => {
10171
- e && !o.isLoaded(r, e) && o.loadLanguage(r, e);
10172
- }, [o, r, e]), { t: ee(
10354
+ e && !o.isLoaded(i, e) && o.loadLanguage(i, e);
10355
+ }, [o, i, e]), { t: ee(
10173
10356
  (n, s) => {
10174
10357
  let l = t[n] || n;
10175
10358
  if (s)
@@ -10178,10 +10361,10 @@ function Jo(e) {
10178
10361
  return l;
10179
10362
  },
10180
10363
  [t]
10181
- ), isLoading: i, currentLanguage: r };
10364
+ ), isLoading: r, currentLanguage: i };
10182
10365
  }
10183
- function Yo(e, t, r) {
10184
- switch (r) {
10366
+ function Xo(e, t, i) {
10367
+ switch (i) {
10185
10368
  case "immediate":
10186
10369
  e.loadLanguages(t);
10187
10370
  break;
@@ -10211,17 +10394,17 @@ function Yo(e, t, r) {
10211
10394
  }
10212
10395
  }
10213
10396
  }
10214
- async function Xo(e, t) {
10215
- const { fallback: r = "en", preferredLanguages: o = [] } = t || {};
10397
+ async function Yo(e, t) {
10398
+ const { fallback: i = "en", preferredLanguages: o = [] } = t || {};
10216
10399
  for (const a of o)
10217
- if (T.includes(a))
10400
+ if (x.includes(a))
10218
10401
  return await e.setLanguage(a), a;
10219
- const i = navigator.language.split("-")[0].toLowerCase();
10220
- return T.includes(i) ? (await e.setLanguage(i), i) : (await e.setLanguage(r), r);
10402
+ const r = navigator.language.split("-")[0].toLowerCase();
10403
+ return x.includes(r) ? (await e.setLanguage(r), r) : (await e.setLanguage(i), i);
10221
10404
  }
10222
10405
  export {
10223
10406
  V as CALENDAR_INFO,
10224
- xt as CELESTIAL_STEMS,
10407
+ Tt as CELESTIAL_STEMS,
10225
10408
  Pt as CHINESE_ZODIAC,
10226
10409
  le as DEFAULT_CALENDAR,
10227
10410
  Zo as DynamicI18nProvider,
@@ -10232,13 +10415,13 @@ export {
10232
10415
  ae as NICE_GLOSSARY,
10233
10416
  w as NICE_I18N_DICTIONARIES,
10234
10417
  $e as NICE_I18N_VARIANTS,
10235
- T as NICE_SUPPORTED_LANGS,
10418
+ x as NICE_SUPPORTED_LANGS,
10236
10419
  Gt as NiceI18nProvider,
10237
- xo as PERSIAN_MONTHS,
10420
+ To as PERSIAN_MONTHS,
10238
10421
  Uo as PSEUDO_PRESETS,
10239
- Wo as PseudoLocalizationProvider,
10240
- ro as RTLProvider,
10241
- W as RTL_CSS_VARS,
10422
+ qo as PseudoLocalizationProvider,
10423
+ io as RTLProvider,
10424
+ q as RTL_CSS_VARS,
10242
10425
  at as RTL_LANGUAGES,
10243
10426
  ne as TIMEZONE_GROUPS,
10244
10427
  Oo as addAccents,
@@ -10259,24 +10442,24 @@ export {
10259
10442
  vt as createTimeFormatter,
10260
10443
  Ct as createTimezoneFormatter,
10261
10444
  Jt as createTranslator,
10262
- Xo as detectAndLoad,
10263
- Xt as detectBrowserLanguage,
10445
+ Yo as detectAndLoad,
10446
+ Yt as detectBrowserLanguage,
10264
10447
  Vt as detectHardcodedText,
10265
10448
  Z as detectTimezone,
10266
10449
  Nt as expandText,
10267
10450
  vo as findSimilarTranslation,
10268
10451
  dt as flipAlignment,
10269
10452
  oo as flipHorizontal,
10270
- it as formatICU,
10271
- Yt as formatMessage,
10453
+ rt as formatICU,
10454
+ Xt as formatMessage,
10272
10455
  zt as fromUTC,
10273
10456
  uo as generateCoverageReport,
10274
10457
  co as generateTranslationCode,
10275
- ko as getAllTimezones,
10458
+ Eo as getAllTimezones,
10276
10459
  mt as getAllTranslationStats,
10277
10460
  No as getAvailableCalendars,
10278
10461
  Ro as getCalendarInfo,
10279
- Fo as getCelestialStem,
10462
+ Mo as getCelestialStem,
10280
10463
  Bo as getChineseZodiac,
10281
10464
  Dt as getCurrentCalendarDate,
10282
10465
  to as getDocumentDirection,
@@ -10288,27 +10471,27 @@ export {
10288
10471
  ct as getLogicalProperty,
10289
10472
  ut as getMissingTranslations,
10290
10473
  yo as getNextDSTTransition,
10291
- re as getOrdinalCategory,
10474
+ ie as getOrdinalCategory,
10292
10475
  oe as getPluralCategory,
10293
10476
  P as getPseudoLocalizationPreset,
10294
10477
  so as getRTLCSSVars,
10295
10478
  Lo as getRecommendedCalendars,
10296
10479
  lo as getSourceKeys,
10297
10480
  nt as getTextDirection,
10298
- F as getTimezoneInfo,
10299
- Eo as getTimezonesGrouped,
10481
+ M as getTimezoneInfo,
10482
+ ko as getTimezonesGrouped,
10300
10483
  pt as getTranslationStats,
10301
- q as isDSTActive,
10484
+ W as isDSTActive,
10302
10485
  Ao as isHebrewLeapYear,
10303
10486
  jt as isHijriLeapYear,
10304
- To as isPersianLeapYear,
10305
- ie as isRTLLanguage,
10487
+ xo as isPersianLeapYear,
10488
+ re as isRTLLanguage,
10306
10489
  Qe as isSupported,
10307
10490
  wo as isValidTimezone,
10308
- kt as lookupGlossary,
10491
+ Et as lookupGlossary,
10309
10492
  Qt as ordinal,
10310
10493
  _t as plural,
10311
- Yo as preloadWithStrategy,
10494
+ Xo as preloadWithStrategy,
10312
10495
  ue as pseudoLocalize,
10313
10496
  Vo as pseudoLocalizeDictionary,
10314
10497
  Kt as resolvePlVariant,
@@ -10317,8 +10500,8 @@ export {
10317
10500
  st as setDocumentDirection,
10318
10501
  ce as toCalendar,
10319
10502
  yt as toUTC,
10320
- Mo as useCalendar,
10321
- Wt as useDynamicI18n,
10503
+ Fo as useCalendar,
10504
+ qt as useDynamicI18n,
10322
10505
  Jo as useDynamicTranslation,
10323
10506
  ao as useIsRTL,
10324
10507
  ho as useNiceCurrencyFormat,
@@ -10326,8 +10509,8 @@ export {
10326
10509
  go as useNiceNumberFormat,
10327
10510
  mo as useNiceTimeFormat,
10328
10511
  Zt as useNiceTranslation,
10329
- qo as usePseudoLocalization,
10330
- io as useRTL,
10512
+ Wo as usePseudoLocalization,
10513
+ ro as useRTL,
10331
10514
  zo as useTimezone,
10332
10515
  bo as validateAgainstGlossary
10333
10516
  };