@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.
- package/LICENSE +162 -0
- package/README.md +174 -94
- package/dist/components/AppIcon.d.ts +20 -20
- package/dist/components/AppIcon.js +64 -53
- package/dist/components/AppIcon.js.map +1 -1
- package/dist/components/AppInput.d.ts +20 -20
- package/dist/components/AppInput.js +18 -7
- package/dist/components/AppInput.js.map +1 -1
- package/dist/components/AppPagination.d.ts +11 -11
- package/dist/components/AppPagination.js +74 -63
- package/dist/components/AppPagination.js.map +1 -1
- package/dist/components/Spin.d.ts +6 -6
- package/dist/components/Spin.js +21 -17
- package/dist/components/Spin.js.map +1 -1
- package/dist/components/Toaster/Toaster.d.ts +7 -7
- package/dist/components/Toaster/Toaster.js +41 -29
- package/dist/components/Toaster/Toaster.js.map +1 -1
- package/dist/components/Toaster/Types.d.ts +6 -6
- package/dist/components/Toaster/Types.js +1 -1
- package/dist/components/index.d.ts +7 -7
- package/dist/components/index.js +7 -7
- package/dist/index.d.ts +8 -7
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/utils/CurrencyUtiles.d.ts +4 -4
- package/dist/utils/CurrencyUtiles.js +35 -30
- package/dist/utils/CurrencyUtiles.js.map +1 -1
- package/dist/utils/DateUtils.d.ts +7 -7
- package/dist/utils/DateUtils.js +111 -100
- package/dist/utils/DateUtils.js.map +1 -1
- package/dist/utils/FileUtils.d.ts +5 -5
- package/dist/utils/FileUtils.js +73 -73
- package/dist/utils/FileUtils.js.map +1 -1
- package/dist/utils/Logger.d.ts +13 -0
- package/dist/utils/Logger.js +44 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/RegExValidation.d.ts +4 -4
- package/dist/utils/RegExValidation.js +19 -19
- package/dist/utils/UrlUtils.d.ts +4 -4
- package/dist/utils/UrlUtils.js +15 -15
- package/dist/utils/UrlUtils.js.map +1 -1
- package/dist/utils/configuration/ConfigurationLoader.d.ts +6 -6
- package/dist/utils/configuration/ConfigurationLoader.js +76 -75
- package/dist/utils/configuration/ConfigurationLoader.js.map +1 -1
- package/dist/utils/configuration/ConfigurationManager.d.ts +5 -5
- package/dist/utils/configuration/ConfigurationManager.js +96 -89
- package/dist/utils/configuration/ConfigurationManager.js.map +1 -1
- package/dist/utils/configuration/ConfigurationReturner.d.ts +9 -9
- package/dist/utils/configuration/ConfigurationReturner.js +70 -69
- package/dist/utils/configuration/ConfigurationReturner.js.map +1 -1
- package/dist/utils/configuration/index.d.ts +4 -4
- package/dist/utils/configuration/index.js +4 -4
- package/dist/utils/fetch/Types.d.ts +10 -10
- package/dist/utils/fetch/Types.js +1 -1
- package/dist/utils/fetch/fetchWrapper.d.ts +14 -14
- package/dist/utils/fetch/fetchWrapper.js +239 -262
- package/dist/utils/fetch/fetchWrapper.js.map +1 -1
- package/dist/utils/fetch/index.d.ts +3 -3
- package/dist/utils/fetch/index.js +3 -3
- package/dist/utils/index.d.ts +10 -9
- package/dist/utils/index.js +10 -9
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/labels/LanguageLoader.d.ts +7 -7
- package/dist/utils/labels/LanguageLoader.js +130 -100
- package/dist/utils/labels/LanguageLoader.js.map +1 -1
- package/dist/utils/labels/LanguageManager.d.ts +6 -6
- package/dist/utils/labels/LanguageManager.js +118 -110
- package/dist/utils/labels/LanguageManager.js.map +1 -1
- package/dist/utils/labels/LanguageReturner.d.ts +10 -10
- package/dist/utils/labels/LanguageReturner.js +70 -69
- package/dist/utils/labels/LanguageReturner.js.map +1 -1
- package/dist/utils/labels/index.d.ts +4 -4
- package/dist/utils/labels/index.js +4 -4
- package/docs/APP_ICON.md +82 -0
- package/docs/APP_INPUT.md +81 -0
- package/docs/APP_PAGINATION.md +61 -0
- package/docs/CONFIGURATION.md +105 -0
- package/docs/FETCH_WRAPPER.md +163 -0
- package/docs/LABELS.md +148 -0
- package/docs/LOGGER.md +112 -0
- package/docs/SECURITY_AUDIT_2026-02-05.md +468 -0
- package/docs/SPIN.md +45 -0
- package/docs/TOASTER.md +75 -0
- package/docs/UTILITIES.md +177 -0
- package/package.json +25 -35
- package/src/App.css +0 -12
- package/src/lib/components/AppIcon.tsx +0 -784
- package/src/lib/components/AppInput.tsx +0 -66
- package/src/lib/components/AppPagination.tsx +0 -124
- package/src/lib/components/Spin.tsx +0 -31
- package/src/lib/components/Toaster/Toaster.tsx +0 -50
- package/src/lib/components/Toaster/Types.ts +0 -11
- package/src/lib/components/index.ts +0 -8
- package/src/lib/index.ts +0 -15
- package/src/lib/styles/base.css +0 -392
- package/src/lib/styles/syncfusion_bootstrap4.css +0 -10
- package/src/lib/styles/toaster.css +0 -50
- package/src/lib/utils/CurrencyUtiles.ts +0 -48
- package/src/lib/utils/DateUtils.ts +0 -135
- package/src/lib/utils/FileUtils.ts +0 -40
- package/src/lib/utils/RegExValidation.ts +0 -49
- package/src/lib/utils/UrlUtils.ts +0 -17
- package/src/lib/utils/configuration/ConfigurationLoader.tsx +0 -43
- package/src/lib/utils/configuration/ConfigurationManager.ts +0 -38
- package/src/lib/utils/configuration/ConfigurationReturner.tsx +0 -39
- package/src/lib/utils/configuration/index.ts +0 -9
- package/src/lib/utils/fetch/Types.ts +0 -11
- package/src/lib/utils/fetch/fetchWrapper.ts +0 -174
- package/src/lib/utils/fetch/index.ts +0 -4
- package/src/lib/utils/index.ts +0 -11
- package/src/lib/utils/labels/LanguageLoader.tsx +0 -69
- package/src/lib/utils/labels/LanguageManager.ts +0 -61
- package/src/lib/utils/labels/LanguageReturner.tsx +0 -41
- 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
|
-
|
|
1
|
+
# @firedesktop/react-base
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
172
|
+
Run from the `@firedesktop/react-base/` directory:
|
|
95
173
|
|
|
96
174
|
### `npm start`
|
|
97
175
|
|
|
98
|
-
|
|
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
|
|
107
|
-
|
|
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
|
-
|
|
188
|
+
Publishes the package to npmjs.
|
|
112
189
|
|
|
113
190
|
## License
|
|
114
|
-
|
|
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;
|