@firedesktop/react-base 2.1.24 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/LICENSE +162 -0
  2. package/README.md +174 -94
  3. package/dist/components/AppIcon.d.ts +20 -20
  4. package/dist/components/AppIcon.js +64 -53
  5. package/dist/components/AppIcon.js.map +1 -1
  6. package/dist/components/AppInput.d.ts +20 -20
  7. package/dist/components/AppInput.js +18 -7
  8. package/dist/components/AppInput.js.map +1 -1
  9. package/dist/components/AppPagination.d.ts +11 -11
  10. package/dist/components/AppPagination.js +74 -63
  11. package/dist/components/AppPagination.js.map +1 -1
  12. package/dist/components/Spin.d.ts +6 -6
  13. package/dist/components/Spin.js +21 -17
  14. package/dist/components/Spin.js.map +1 -1
  15. package/dist/components/Toaster/Toaster.d.ts +7 -7
  16. package/dist/components/Toaster/Toaster.js +41 -29
  17. package/dist/components/Toaster/Toaster.js.map +1 -1
  18. package/dist/components/Toaster/Types.d.ts +6 -6
  19. package/dist/components/Toaster/Types.js +1 -1
  20. package/dist/components/index.d.ts +7 -7
  21. package/dist/components/index.js +7 -7
  22. package/dist/index.d.ts +8 -7
  23. package/dist/index.js +8 -7
  24. package/dist/index.js.map +1 -1
  25. package/dist/utils/CurrencyUtiles.d.ts +4 -4
  26. package/dist/utils/CurrencyUtiles.js +35 -30
  27. package/dist/utils/CurrencyUtiles.js.map +1 -1
  28. package/dist/utils/DateUtils.d.ts +7 -7
  29. package/dist/utils/DateUtils.js +111 -100
  30. package/dist/utils/DateUtils.js.map +1 -1
  31. package/dist/utils/FileUtils.d.ts +5 -5
  32. package/dist/utils/FileUtils.js +73 -73
  33. package/dist/utils/FileUtils.js.map +1 -1
  34. package/dist/utils/Logger.d.ts +13 -0
  35. package/dist/utils/Logger.js +44 -0
  36. package/dist/utils/Logger.js.map +1 -0
  37. package/dist/utils/RegExValidation.d.ts +4 -4
  38. package/dist/utils/RegExValidation.js +19 -19
  39. package/dist/utils/UrlUtils.d.ts +4 -4
  40. package/dist/utils/UrlUtils.js +15 -15
  41. package/dist/utils/UrlUtils.js.map +1 -1
  42. package/dist/utils/configuration/ConfigurationLoader.d.ts +6 -6
  43. package/dist/utils/configuration/ConfigurationLoader.js +76 -75
  44. package/dist/utils/configuration/ConfigurationLoader.js.map +1 -1
  45. package/dist/utils/configuration/ConfigurationManager.d.ts +5 -5
  46. package/dist/utils/configuration/ConfigurationManager.js +96 -89
  47. package/dist/utils/configuration/ConfigurationManager.js.map +1 -1
  48. package/dist/utils/configuration/ConfigurationReturner.d.ts +9 -9
  49. package/dist/utils/configuration/ConfigurationReturner.js +70 -69
  50. package/dist/utils/configuration/ConfigurationReturner.js.map +1 -1
  51. package/dist/utils/configuration/index.d.ts +4 -4
  52. package/dist/utils/configuration/index.js +4 -4
  53. package/dist/utils/fetch/Types.d.ts +10 -10
  54. package/dist/utils/fetch/Types.js +1 -1
  55. package/dist/utils/fetch/fetchWrapper.d.ts +14 -14
  56. package/dist/utils/fetch/fetchWrapper.js +239 -262
  57. package/dist/utils/fetch/fetchWrapper.js.map +1 -1
  58. package/dist/utils/fetch/index.d.ts +3 -3
  59. package/dist/utils/fetch/index.js +3 -3
  60. package/dist/utils/index.d.ts +10 -9
  61. package/dist/utils/index.js +10 -9
  62. package/dist/utils/index.js.map +1 -1
  63. package/dist/utils/labels/LanguageLoader.d.ts +7 -7
  64. package/dist/utils/labels/LanguageLoader.js +130 -100
  65. package/dist/utils/labels/LanguageLoader.js.map +1 -1
  66. package/dist/utils/labels/LanguageManager.d.ts +6 -6
  67. package/dist/utils/labels/LanguageManager.js +118 -110
  68. package/dist/utils/labels/LanguageManager.js.map +1 -1
  69. package/dist/utils/labels/LanguageReturner.d.ts +10 -10
  70. package/dist/utils/labels/LanguageReturner.js +70 -69
  71. package/dist/utils/labels/LanguageReturner.js.map +1 -1
  72. package/dist/utils/labels/index.d.ts +4 -4
  73. package/dist/utils/labels/index.js +4 -4
  74. package/docs/APP_ICON.md +82 -0
  75. package/docs/APP_INPUT.md +81 -0
  76. package/docs/APP_PAGINATION.md +61 -0
  77. package/docs/CONFIGURATION.md +105 -0
  78. package/docs/FETCH_WRAPPER.md +163 -0
  79. package/docs/LABELS.md +148 -0
  80. package/docs/LOGGER.md +112 -0
  81. package/docs/SECURITY_AUDIT_2026-02-05.md +468 -0
  82. package/docs/SPIN.md +45 -0
  83. package/docs/TOASTER.md +75 -0
  84. package/docs/UTILITIES.md +177 -0
  85. package/package.json +25 -35
  86. package/src/App.css +0 -12
  87. package/src/lib/components/AppIcon.tsx +0 -784
  88. package/src/lib/components/AppInput.tsx +0 -66
  89. package/src/lib/components/AppPagination.tsx +0 -124
  90. package/src/lib/components/Spin.tsx +0 -31
  91. package/src/lib/components/Toaster/Toaster.tsx +0 -50
  92. package/src/lib/components/Toaster/Types.ts +0 -11
  93. package/src/lib/components/index.ts +0 -8
  94. package/src/lib/index.ts +0 -15
  95. package/src/lib/styles/base.css +0 -392
  96. package/src/lib/styles/syncfusion_bootstrap4.css +0 -10
  97. package/src/lib/styles/toaster.css +0 -50
  98. package/src/lib/utils/CurrencyUtiles.ts +0 -48
  99. package/src/lib/utils/DateUtils.ts +0 -135
  100. package/src/lib/utils/FileUtils.ts +0 -40
  101. package/src/lib/utils/RegExValidation.ts +0 -49
  102. package/src/lib/utils/UrlUtils.ts +0 -17
  103. package/src/lib/utils/configuration/ConfigurationLoader.tsx +0 -43
  104. package/src/lib/utils/configuration/ConfigurationManager.ts +0 -38
  105. package/src/lib/utils/configuration/ConfigurationReturner.tsx +0 -39
  106. package/src/lib/utils/configuration/index.ts +0 -9
  107. package/src/lib/utils/fetch/Types.ts +0 -11
  108. package/src/lib/utils/fetch/fetchWrapper.ts +0 -174
  109. package/src/lib/utils/fetch/index.ts +0 -4
  110. package/src/lib/utils/index.ts +0 -11
  111. package/src/lib/utils/labels/LanguageLoader.tsx +0 -69
  112. package/src/lib/utils/labels/LanguageManager.ts +0 -61
  113. package/src/lib/utils/labels/LanguageReturner.tsx +0 -41
  114. package/src/lib/utils/labels/index.ts +0 -9
package/LICENSE ADDED
@@ -0,0 +1,162 @@
1
+ CONTRATTO DI LICENZA D'USO SOFTWARE PROPRIETARIO E CONDIZIONI DI SERVIZIO
2
+ FLOWBOT(R)
3
+ Ultimo aggiornamento: 05/02/2026
4
+
5
+ 1) Identita del Licenziante (Titolare)
6
+ Firedesktop S.r.l.
7
+ Sede: Via Giorgio Byron, 14/3 - 16145 Genova (GE) - Italia
8
+ P. IVA / C.F.: 02284740996
9
+ Sito: www.firedesktop.com
10
+ Contatti: info@firedesktop.com / PEC: firedesktop@pec.it
11
+
12
+ 2) Parti e definizioni
13
+ "Licenziante": Firedesktop S.r.l.
14
+ "Licenziatario": il soggetto (persona fisica o giuridica) che installa, accede o utilizza il Software, come eventualmente identificato in un Ordine/Offerta/Contratto commerciale.
15
+ "Software": il programma denominato Flowbot(R), inclusi moduli, componenti, aggiornamenti, correzioni, patch e relativa Documentazione, forniti dal Licenziante.
16
+ "Documentazione": manuali, specifiche, guide utente, release notes, FAQ, knowledge base e materiali tecnici.
17
+ "Ordine": offerta/ordine/statement of work o documento commerciale che definisce (a titolo esemplificativo) durata, corrispettivi, metriche, moduli, livelli di servizio e condizioni speciali.
18
+ "Metriche di Licenza": parametri di misurazione della licenza (es. utenti nominativi, utenti concorrenti, bot/runner/worker, processi, ambienti, server/VM, volumi documentali, ecc.) definiti nell'Ordine o nell'Allegato A.
19
+ "Ambiente Autorizzato": infrastruttura/tenant/sistemi/ambiti tecnici indicati nell'Ordine o comunque sotto il controllo del Licenziatario per l'uso autorizzato.
20
+ "Dati del Licenziatario": dati e contenuti (incluse informazioni e documenti) trattati dal Licenziatario tramite il Software.
21
+ "Dati Personali": come definiti dalla normativa applicabile (es. GDPR).
22
+
23
+ 3) Accettazione del Contratto
24
+ Installando, copiando, configurando, accedendo o utilizzando il Software, il Licenziatario dichiara di aver letto, compreso e accettato integralmente il presente Contratto. Se il Licenziatario non accetta, non e autorizzato a utilizzare il Software.
25
+ Se chi accetta agisce per conto di una societa/ente, dichiara di avere i poteri per vincolarla.
26
+
27
+ 4) Gerarchia contrattuale
28
+ In caso di conflitto tra documenti prevale, nell'ordine:
29
+ 1. eventuali condizioni speciali firmate dalle parti / Ordine;
30
+ 2. il presente Contratto (EULA);
31
+ 3. allegati/policy richiamati (SLA, DPA, Third Party Notices), se applicabili.
32
+
33
+ 5) Oggetto: licenza d'uso proprietaria
34
+ Il Software e concesso in licenza, non venduto.
35
+ Il Licenziante concede al Licenziatario una licenza d'uso limitata, non esclusiva, non trasferibile, non sublicenziabile e revocabile, nei limiti del presente Contratto e dell'Ordine.
36
+ Tutti i diritti non espressamente concessi sono riservati al Licenziante.
37
+
38
+ 6) Modalita di erogazione e deployment
39
+ Il Software puo essere messo a disposizione in una o piu modalita (a titolo esemplificativo e non esaustivo): installazione locale presso il Licenziatario, ambienti virtualizzati, container, appliance, hosting gestito, cloud/SaaS, modalita ibrida o altre forme tecniche equivalenti, secondo quanto indicato nell'Ordine e/o nella Documentazione.
40
+ Indipendentemente dalla modalita di deployment, la disciplina di licenza, le limitazioni d'uso e le responsabilita previste dal presente Contratto si applicano integralmente.
41
+
42
+ 7) Ambito d'uso autorizzato
43
+ Salvo diverso accordo scritto nell'Ordine, il Licenziatario puo usare il Software esclusivamente:
44
+ - per finalita interne del proprio business;
45
+ - entro le Metriche di Licenza e l'Ambiente Autorizzato;
46
+ - con i soli moduli/funzionalita acquistati o autorizzati.
47
+ E vietato l'uso "service bureau", outsourcing verso terzi o utilizzo per erogare servizi a terzi se non espressamente autorizzato in un Ordine o addendum.
48
+
49
+ 8) Restrizioni e divieti
50
+ E vietato (salvo quanto inderogabilmente consentito dalla legge):
51
+ 1. copiare o riprodurre il Software oltre quanto necessario per l'uso autorizzato;
52
+ 2. distribuire, vendere, concedere in leasing/noleggio, prestare o sublicenziare il Software;
53
+ 3. consentire accesso a soggetti non autorizzati (inclusi fornitori/consulenti non previsti);
54
+ 4. modificare, adattare, tradurre, creare opere derivate;
55
+ 5. decompilare, disassemblare, fare reverse engineering o tentare di ricavare il codice sorgente;
56
+ 6. rimuovere/alterare marchi, copyright, notice o misure tecniche di protezione/licensing;
57
+ 7. usare il Software per sviluppare o migliorare un prodotto concorrente o per estrarre sistematicamente funzionalita;
58
+ 8. pubblicare benchmark o test comparativi senza consenso scritto del Licenziante;
59
+ 9. usare il Software per finalita illecite o in violazione di norme, diritti di terzi o policy di sicurezza.
60
+
61
+ 9) Copia di backup e interoperabilita
62
+ Il Licenziatario puo effettuare una copia di backup del Software solo se e nella misura in cui cio sia necessario e consentito dalla legge applicabile e dalla Documentazione, e comunque esclusivamente per scopi di continuita operativa, senza uso concorrente o distribuzione.
63
+ Eventuali attivita necessarie per ottenere interoperabilita con altri sistemi devono rispettare i limiti previsti dalle norme inderogabili applicabili e non possono essere usate per creare software sostanzialmente simile o concorrente.
64
+
65
+ 10) Account, credenziali e sicurezza operativa
66
+ Il Licenziatario e responsabile di:
67
+ - gestione delle credenziali e degli accessi degli Utenti;
68
+ - configurazione dei profili/ruoli e segregazione delle funzioni;
69
+ - uso conforme del Software da parte dei propri Utenti;
70
+ - sicurezza del proprio ambiente (endpoint, reti, sistemi, backup), salvo responsabilita specifiche del Licenziante previste in eventuali SLA/DPA.
71
+
72
+ 11) Dati del Licenziatario e privacy
73
+ 11.1 Il Licenziatario resta titolare e responsabile dei Dati del Licenziatario e garantisce di avere basi giuridiche e diritti necessari per trattarli tramite il Software.
74
+ 11.2 Se e nella misura in cui il Licenziante tratti Dati Personali per conto del Licenziatario (tipicamente in contesti di supporto o erogazione gestita), le parti regolano il rapporto con un Data Processing Addendum (DPA) separato o allegato.
75
+ 11.3 Il Licenziante non e responsabile della qualita, liceita, accuratezza o legittimita dei dati inseriti/gestiti dal Licenziatario.
76
+
77
+ 12) Telemetria e controlli di licenza
78
+ Il Software puo includere meccanismi tecnici di verifica (es. chiavi di licenza, license server, controlli su metriche, log tecnici) necessari a:
79
+ - prevenire utilizzi non autorizzati,
80
+ - garantire sicurezza e integrita,
81
+ - supportare manutenzione e diagnostica.
82
+ Ove possibile, l'uso di telemetria non essenziale puo essere configurabile secondo Documentazione/policy, fermo restando quanto necessario per licensing e sicurezza.
83
+
84
+ 13) Aggiornamenti, patch e modifiche
85
+ Il Licenziante puo rilasciare aggiornamenti, patch, correzioni e nuove versioni.
86
+ Salvo diverso accordo nell'Ordine, il Licenziante non garantisce:
87
+ - aggiornamenti per sempre o con una cadenza specifica;
88
+ - compatibilita con ambienti non supportati o modificati dal Licenziatario;
89
+ - permanenza di singole funzionalita inalterate nel tempo (es. per ragioni tecniche o di sicurezza).
90
+
91
+ 14) Supporto e manutenzione
92
+ Eventuali livelli di supporto, SLA, tempi di risposta e canali sono quelli indicati nell'Ordine e/o in un Allegato SLA. In mancanza, il supporto (se fornito) e "best effort".
93
+
94
+ 15) Corrispettivi e imposte
95
+ I corrispettivi, le modalita di pagamento, il rinnovo e le imposte applicabili sono disciplinati dall'Ordine.
96
+ In caso di mancato pagamento, il Licenziante puo sospendere l'uso/servizio previa comunicazione e decorso di un termine ragionevole, salvo urgenze o violazioni gravi.
97
+
98
+ 16) Proprieta intellettuale
99
+ Il Software, la Documentazione, i marchi e ogni relativo diritto di proprieta intellettuale/industriale sono di esclusiva titolarita del Licenziante (o dei suoi danti causa).
100
+ Nessuna clausola trasferisce al Licenziatario diritti diversi dalla licenza d'uso espressamente concessa.
101
+
102
+ 17) Componenti di terze parti
103
+ Il Software puo includere componenti di terze parti soggetti a licenze specifiche (incluse licenze open source). Tali licenze si applicano ai soli componenti di terze parti e prevalgono su eventuali disposizioni incompatibili limitatamente a essi. Un elenco puo essere fornito in un file "Third Party Notices" incluso nella distribuzione o disponibile su richiesta.
104
+
105
+ 18) Riservatezza
106
+ Ciascuna parte si impegna a mantenere riservate le Informazioni Confidenziali dell'altra e a usarle solo per eseguire il Contratto.
107
+ Sono escluse le informazioni che: (i) erano gia pubbliche; (ii) erano legittimamente note; (iii) sono ottenute da terzi senza vincoli; (iv) sono sviluppate indipendentemente; (v) devono essere divulgate per legge/Autorita (con preavviso ove possibile).
108
+
109
+ 19) Garanzie
110
+ 19.1 Il Licenziante garantisce di avere titolo a concedere la licenza.
111
+ 19.2 Esclusione di garanzie: nei limiti massimi consentiti, il Software e fornito "cosi com'e" e il Licenziante esclude garanzie implicite di commerciabilita, idoneita a scopo specifico e non violazione (salvo quanto inderogabile).
112
+ 19.3 Il Licenziatario e responsabile di verificare l'idoneita del Software ai propri scopi, incluse conformita normativa, controlli di qualita e procedure interne.
113
+
114
+ 20) Limitazione di responsabilita
115
+ 20.1 Nei limiti massimi consentiti, il Licenziante non e responsabile per danni indiretti o consequenziali, inclusi (a titolo esemplificativo) perdita profitti, perdita ricavi, perdita dati, interruzione attivita, danni reputazionali.
116
+ 20.2 Massimale (cap): salvo dolo o colpa grave e salvo casi non limitabili per legge, la responsabilita complessiva del Licenziante derivante dal Contratto non potra eccedere, per ciascun evento e complessivamente nell'anno contrattuale, l'importo effettivamente corrisposto dal Licenziatario al Licenziante nei 12 mesi precedenti l'evento dannoso per il Software/servizio interessato (o, se inferiore, euro 5.000).
117
+ 20.3 Nulla nel Contratto esclude o limita responsabilita non escludibili per legge (es. dolo/colpa grave, ove applicabile).
118
+
119
+ 21) Manleva
120
+ 21.1 Il Licenziatario manleva e tiene indenne il Licenziante da pretese, danni, sanzioni, costi e spese (incluse ragionevoli spese legali) derivanti da:
121
+ - uso del Software in violazione del Contratto o di legge;
122
+ - contenuti/dati trattati dal Licenziatario;
123
+ - violazione di diritti di terzi tramite i Dati del Licenziatario;
124
+ - integrazioni o modifiche non fornite/autorizzate dal Licenziante.
125
+ 21.2 Eventuale manleva IP a favore del Licenziatario (se desiderata) puo essere concessa solo se prevista espressamente in Ordine/Addendum enterprise.
126
+
127
+ 22) Durata, sospensione e risoluzione
128
+ 22.1 La durata della licenza e quella prevista nell'Ordine (abbonamento/term, perpetua, ecc.).
129
+ 22.2 Il Licenziante puo sospendere l'accesso o l'uso in caso di:
130
+ - violazione materiale del Contratto;
131
+ - rischio sicurezza o uso fraudolento;
132
+ - mancato pagamento (secondo art. 15).
133
+ 22.3 Ciascuna parte puo risolvere il Contratto per inadempimento grave dell'altra non sanato entro 15/30 giorni da diffida scritta, salvo violazioni non sanabili (es. pirateria, aggiramento misure tecniche, divulgazione Info Confidenziali).
134
+
135
+ 23) Effetti della cessazione
136
+ Alla cessazione, il Licenziatario deve:
137
+ - cessare l'uso del Software;
138
+ - disinstallare e distruggere le copie (salvo obblighi legali di conservazione, backup tecnici e quanto inderogabile);
139
+ - interrompere l'uso di chiavi/licenze/credenziali e restituire o distruggere la Documentazione confidenziale.
140
+ Se applicabile un servizio gestito, eventuali modalita/tempi di export dati sono regolati nell'Ordine/SLA/DPA.
141
+
142
+ 24) Verifiche e audit di conformita
143
+ Il Licenziante puo verificare la conformita alle Metriche di Licenza mediante controlli tecnici e/o audit documentale ragionevole, con preavviso e in orario lavorativo, minimizzando impatti e tutelando la riservatezza.
144
+ In caso di scostamenti (under licensing), il Licenziatario si impegna a regolarizzare e corrispondere quanto dovuto; se lo scostamento supera il 10%, il Licenziatario rimborsa anche i costi ragionevoli dell'audit.
145
+
146
+ 25) Cessione
147
+ Il Licenziatario non puo cedere il Contratto ne trasferire la licenza senza consenso scritto del Licenziante.
148
+ Il Licenziante puo cedere il Contratto nell'ambito di operazioni straordinarie (fusione/cessione azienda o ramo), previa comunicazione.
149
+
150
+ 26) Conformita, export e sanzioni
151
+ Il Licenziatario si impegna a rispettare la normativa applicabile (incluse eventuali norme su export control e sanzioni). Il Licenziante puo sospendere/risolvere se l'erogazione o l'uso comportano violazioni o rischi legali.
152
+
153
+ 27) Forza maggiore
154
+ Nessuna parte e responsabile per ritardi o inadempimenti dovuti a eventi fuori dal ragionevole controllo (es. calamita, blackout estesi, guasti infrastrutturali, provvedimenti autorita, scioperi, attacchi informatici diffusi).
155
+
156
+ 28) Legge applicabile e foro
157
+ Il Contratto e regolato dalla legge italiana.
158
+ Foro esclusivo competente: Genova, salvo norme inderogabili applicabili.
159
+
160
+ 29) Clausole specificamente approvate
161
+ Ai sensi degli artt. 1341 e 1342 c.c., il Licenziatario approva specificamente le seguenti clausole:
162
+ Restrizioni e divieti (art. 8), Telemetria/controlli licenza (art. 12), Esclusione garanzie (art. 19), Limitazioni di responsabilita e cap (art. 20), Manleva (art. 21), Sospensione/Risoluzione (art. 22), Effetti cessazione (art. 23), Audit (art. 24), Cessione (art. 25), Foro competente (art. 28).
package/README.md CHANGED
@@ -1,114 +1,194 @@
1
- This is the FireDesktop base package used to support every React Project in this Company.
1
+ # @firedesktop/react-base
2
2
 
3
- ## Usage of Configuration
4
- 1. Installation
3
+ Shared React component library and utility package for Firedesktop applications. Provides UI components, HTTP client, i18n, configuration loading, and CSS design tokens.
4
+
5
+ ## Installation
5
6
 
6
- - Login in the shell using your npmjs account
7
7
  ```bash
8
8
  npm i @firedesktop/react-base
9
9
  ```
10
10
 
11
- 2. Create a file with a name like 'config.json' with the following format and put it in the public/configuration
12
- sample name it-IT.json
13
-
14
- ```json
15
- {
16
- "myPropery": "myvalue",
17
- "urls" : {
18
- "first": "http..."
19
- }
20
- }
21
- ```
22
-
23
- 3. Import
24
- ```javascript
25
- import { ConfigurationLoader } from '@firedesktop/react-base';
26
- ```
27
-
28
- 4. Load your configuration just put this component in the page where the Provider component is
29
-
30
- ```javascript
31
- <Provider store={store}>
32
- ...
33
- <ConfigurationLoader updateAppState={updateAppState} path={null} />
34
- </Provider >
35
- ```
36
- - updateAppState: is a function with two paramenters
37
- ```
38
- updateAppState = (nameInState: string, configuration: object)
39
- ```
40
- - nameInState: name of the property in the App state where to save the documentation
41
- - path: is the path from where to load the configuration file (if null: /configuration/config.json)
42
-
43
- ## Usage of LabelManager
44
-
45
- 1. Installation
46
- ```bash
47
- npm i @firedesktop/react-base
48
- ```
49
-
50
- 2. Create a file with a name like '[locale].json' with the following format and put it in the public/labels
51
- sample name it-IT.json
52
-
53
- ```json
54
- {
55
- "language": "it-IT",
56
- "demo": {
57
- "label_01": "Demo Label 01",
58
- "label_02": "Demo Label 02"
59
- },
60
- "anotherContext": {}
61
- }
62
- ```
63
-
64
- 3. Import
65
- ```javascript
66
- import { LanguageLoader } from '@firedesktop/react-base';
67
- ```
68
-
69
- 4. Load your language Labels just put this component in the page where the Provider component is
70
- ```javascript
71
- <Provider store={store}>
72
- ...
73
- <LanguageLoader updateAppState={updateAppState} locale='it-IT' path={null} />
74
- </Provider >
75
- ```
76
-
77
- 4. Show a label in code
78
- ```javascript
79
- import { useSelector } from "react-redux";
80
- import LanguageManager from './lib/LanguageManager';
81
- const { getLabel } = LanguageManager();
82
-
83
- const { labels }: any = useSelector(state => state);
84
-
85
- return (
86
- <React.Fragment>
87
- {getLabel(labels, 'demo.label_01', 'Ola')}
88
- </React.Fragment>
89
- );
90
- ```
11
+ ### Peer Dependencies
12
+
13
+ Your project must provide:
14
+
15
+ - `react` >= 16.8
16
+ - `react-dom` >= 16.8
17
+ - `react-redux` >= 7
18
+ - `bootstrap` >= 4.5.3
19
+
20
+ ## Quick Start
21
+
22
+ ```javascript
23
+ import {
24
+ Components,
25
+ ConfigurationLoader,
26
+ LanguageLoader,
27
+ Logger,
28
+ Utils
29
+ } from '@firedesktop/react-base';
30
+ ```
31
+
32
+ ## Components
33
+
34
+ | Component | Description | Docs |
35
+ |-----------|-------------|------|
36
+ | `AppIcon` | SVG icon with 40+ variants | [docs/APP_ICON.md](docs/APP_ICON.md) |
37
+ | `AppInput` | Input wrapper with icon support | [docs/APP_INPUT.md](docs/APP_INPUT.md) |
38
+ | `AppPagination` | Bootstrap pagination with smart page range | [docs/APP_PAGINATION.md](docs/APP_PAGINATION.md) |
39
+ | `Spin` | Loading spinner overlay (Syncfusion) | [docs/SPIN.md](docs/SPIN.md) |
40
+ | `Toaster` | Toast notifications (Syncfusion) | [docs/TOASTER.md](docs/TOASTER.md) |
41
+
42
+ ```javascript
43
+ const { AppIcon, AppInput, AppPagination, Spin, Toaster } = Components;
44
+ ```
45
+
46
+ ## Configuration
47
+
48
+ Load a JSON configuration file at runtime and store it in Redux state.
49
+
50
+ ```jsx
51
+ import { ConfigurationLoader } from '@firedesktop/react-base';
52
+
53
+ <Provider store={store}>
54
+ <ConfigurationLoader updateAppState={updateAppState} />
55
+ <App />
56
+ </Provider>
57
+ ```
58
+
59
+ Default path: `/configuration/config.json`. See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for full API.
60
+
61
+ ## Labels (i18n)
62
+
63
+ Load locale-specific label files at runtime with dot-notation access.
64
+
65
+ ```jsx
66
+ import { LanguageLoader, Utils } from '@firedesktop/react-base';
67
+
68
+ // Load labels
69
+ <Provider store={store}>
70
+ <LanguageLoader updateAppState={updateAppState} language="it-IT" />
71
+ <App />
72
+ </Provider>
73
+
74
+ // Read labels
75
+ const { getLabel } = Utils.Labels();
76
+ const { labels } = useSelector(state => state);
77
+ getLabel(labels, 'common.save', 'Save');
78
+ ```
79
+
80
+ Default path: `./labels/{language}.json`. See [docs/LABELS.md](docs/LABELS.md) for full API.
81
+
82
+ ## HTTP Client (FetchWrapper)
83
+
84
+ Class-based HTTP client with session token auth, error callbacks, timeouts, and file upload.
85
+
86
+ ```javascript
87
+ import { Utils } from '@firedesktop/react-base';
88
+ const FetchWrapper = Utils.Fetch;
89
+
90
+ const api = new FetchWrapper('v1', labels, handle401, handle403);
91
+ const data = await api.get('/api/users', 'MyApp', token);
92
+ ```
93
+
94
+ See [docs/FETCH_WRAPPER.md](docs/FETCH_WRAPPER.md) for full API.
95
+
96
+ ## Utilities
97
+
98
+ | Utility | Description |
99
+ |---------|-------------|
100
+ | `Utils.DateUtils()` | Date formatting and manipulation (Intl API) |
101
+ | `Utils.CurrencyUtiles()` | Currency formatting (Intl.NumberFormat) |
102
+ | `Utils.FileUtils()` | Base64 to Blob, async file reading |
103
+ | `Utils.UrlUtils()` | URL validation |
104
+ | `Utils.RegExValidation()` | Email and C# name validation |
105
+
106
+ ```javascript
107
+ const { dateToString } = Utils.DateUtils();
108
+ const { numberToCurrencyString } = Utils.CurrencyUtiles();
109
+ ```
110
+
111
+ See [docs/UTILITIES.md](docs/UTILITIES.md) for full API.
112
+
113
+ ## Debug Logging
114
+
115
+ The library is **silent by default** -- zero console output in production. To enable debug logs, opt in from your app entry point:
116
+
117
+ ```javascript
118
+ import { Logger } from '@firedesktop/react-base';
119
+
120
+ Logger.enableDebug(process.env.NODE_ENV === 'development');
121
+ ```
122
+
123
+ When enabled, all internal logs are prefixed with `[react-base]` for easy filtering in browser DevTools.
124
+
125
+ See [docs/LOGGER.md](docs/LOGGER.md) for full API.
126
+
127
+ ## CSS Design Tokens
128
+
129
+ Import the base stylesheet for design tokens and utility classes:
130
+
131
+ ```javascript
132
+ import '@firedesktop/react-base/dist/styles/base.css';
133
+ ```
134
+
135
+ ### Colors
136
+
137
+ | Token | Value |
138
+ |-------|-------|
139
+ | `--primary-color` | `#0057ff` |
140
+ | `--warning-color` | `#ffc14e` |
141
+ | `--danger-color` | `#e80026` |
142
+ | `--success-color` | `#00854d` |
143
+ | `--tertiary-color` | `#b1aeae` |
144
+ | `--dark-pink-color` | `#de31d2` |
145
+
146
+ ### Utility Classes
147
+
148
+ - **Text**: `primary-text`, `tertiary-text`, `danger-text`, `success-text`, `warning-text`
149
+ - **SVG fill**: `primary-svg`, `danger-svg`, `success-svg`, `warning-svg`
150
+ - **SVG stroke**: `primary-svg-stroke`, `danger-svg-stroke`
151
+ - **Borders**: `primary-border`, `danger-border`, `success-border`
152
+ - **Backgrounds**: `primary-background`, `danger-background`
153
+ - **Font sizes**: `fz10`, `fz12`, `fz14`, `fz16`, `fz18`, `fz20`, `fz24`, `fz30`, `fz36`, `fz42`, `fz48`, `fz54`, `fz60`, `fz70`
154
+
155
+ ## Documentation Index
156
+
157
+ | Document | Description |
158
+ |----------|-------------|
159
+ | [docs/APP_ICON.md](docs/APP_ICON.md) | AppIcon component reference |
160
+ | [docs/APP_INPUT.md](docs/APP_INPUT.md) | AppInput component reference |
161
+ | [docs/APP_PAGINATION.md](docs/APP_PAGINATION.md) | AppPagination component reference |
162
+ | [docs/SPIN.md](docs/SPIN.md) | Spin component reference |
163
+ | [docs/TOASTER.md](docs/TOASTER.md) | Toaster component reference |
164
+ | [docs/FETCH_WRAPPER.md](docs/FETCH_WRAPPER.md) | FetchWrapper HTTP client reference |
165
+ | [docs/CONFIGURATION.md](docs/CONFIGURATION.md) | Configuration loading reference |
166
+ | [docs/LABELS.md](docs/LABELS.md) | Labels / i18n reference |
167
+ | [docs/UTILITIES.md](docs/UTILITIES.md) | DateUtils, CurrencyUtiles, FileUtils, UrlUtils, RegExValidation |
168
+ | [docs/LOGGER.md](docs/LOGGER.md) | Logger utility reference |
91
169
 
92
170
  ## Available Scripts
93
171
 
94
- In the project directory, you can run:
172
+ Run from the `@firedesktop/react-base/` directory:
95
173
 
96
174
  ### `npm start`
97
175
 
98
- Runs the Demo app in the development mode.<br />
99
- Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
100
-
101
- The page will reload if you make edits.<br />
102
- You will also see any lint errors in the console.
176
+ Launches the interactive component showcase at [http://localhost:3000](http://localhost:3000). The showcase provides live demos, editable controls, and code snippets for every component, utility, and design token in the library. Source files live in `src/demo/` and are **not** included in the published package.
103
177
 
104
178
  ### `npm run distribute`
105
179
 
106
- Builds (made for windows) the app for production to the `dist` folder.<br />
107
- It correctly bundles the React component.
180
+ Builds the library to `dist/`. Compiles TypeScript from `src/lib/` and copies CSS from `src/lib/styles/`. Demo files under `src/demo/` are excluded from compilation (only `src/lib/` is in `tsconfig.json` include).
181
+
182
+ ### `npm test`
183
+
184
+ Runs the test suite (smoke test verifying the showcase renders without errors).
108
185
 
109
186
  ### `npm publish`
110
187
 
111
- Publish the dist on npmjs.
188
+ Publishes the package to npmjs.
112
189
 
113
190
  ## License
114
- [MIT](https://choosealicense.com/licenses/mit/)
191
+
192
+ Proprietary software. See [LICENSE](LICENSE) for the full EULA.
193
+
194
+ Copyright (c) 2026 Firedesktop S.r.l. All rights reserved.
@@ -1,20 +1,20 @@
1
- import React from 'react';
2
- type PropType = {
3
- name: 'add' | 'edit' | 'delete' | 'list' | 'link' | 'unlink' | 'shrink' | 'arrow-first' | 'arrow-prev' | 'arrow-next' | 'arrow-last' | 'user' | 'password' | 'tickTrue' | 'document' | 'company' | 'tickFalse' | 'plantMonitor' | 'plantMissing' | 'circle' | 'tickStep' | 'unPin' | 'Pin' | 'contact' | 'userManagement' | 'configurations' | 'documentTemplate' | 'eye' | 'share' | 'download' | 'search' | 'logo-main' | 'backicon' | 'expand' | 'upload' | 'table' | 'pin-tilted' | 'home' | 'registry' | 'material' | 'supply' | 'delivery';
4
- className: string;
5
- iconClassName: string;
6
- iconHeight?: number;
7
- iconWidth?: number;
8
- fill?: string;
9
- onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;
10
- ref?: React.LegacyRef<SVGSVGElement>;
11
- stroke?: string;
12
- };
13
- declare function AppIcon({ className, fill, iconClassName, iconHeight, iconWidth, name, onClick, ref, stroke }: PropType): import("react/jsx-runtime").JSX.Element;
14
- declare namespace AppIcon {
15
- var defaultProps: {
16
- className: string;
17
- iconClassName: string;
18
- };
19
- }
20
- export default AppIcon;
1
+ import React from 'react';
2
+ type PropType = {
3
+ name: 'add' | 'edit' | 'delete' | 'list' | 'link' | 'unlink' | 'shrink' | 'arrow-first' | 'arrow-prev' | 'arrow-next' | 'arrow-last' | 'user' | 'password' | 'tickTrue' | 'document' | 'company' | 'tickFalse' | 'plantMonitor' | 'plantMissing' | 'circle' | 'tickStep' | 'unPin' | 'Pin' | 'contact' | 'userManagement' | 'configurations' | 'documentTemplate' | 'eye' | 'share' | 'download' | 'search' | 'logo-main' | 'backicon' | 'expand' | 'upload' | 'table' | 'pin-tilted' | 'home' | 'registry' | 'material' | 'supply' | 'delivery';
4
+ className: string;
5
+ iconClassName: string;
6
+ iconHeight?: number;
7
+ iconWidth?: number;
8
+ fill?: string;
9
+ onClick?: (event: React.MouseEvent<SVGSVGElement>) => void;
10
+ ref?: React.LegacyRef<SVGSVGElement>;
11
+ stroke?: string;
12
+ };
13
+ declare function AppIcon({ className, fill, iconClassName, iconHeight, iconWidth, name, onClick, ref, stroke }: PropType): import("react/jsx-runtime").JSX.Element;
14
+ declare namespace AppIcon {
15
+ var defaultProps: {
16
+ className: string;
17
+ iconClassName: string;
18
+ };
19
+ }
20
+ export default AppIcon;