mypgs 2.0.0 → 2.1.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 (104) hide show
  1. package/README.md +25 -25
  2. package/assets/scss/components/_accordion.scss +0 -2
  3. package/assets/scss/components/_button.scss +1 -1
  4. package/assets/scss/components/_form.scss +0 -16
  5. package/assets/scss/components/_formAddon.scss +18 -0
  6. package/assets/scss/components/_modals.scss +5 -3
  7. package/assets/scss/components/_search.scss +2 -2
  8. package/assets/scss/components/_slides.scss +0 -1
  9. package/assets/scss/components/_tooltip.scss +0 -1
  10. package/assets/scss/index.scss +1 -0
  11. package/assets/scss/layout/_footer.scss +0 -2
  12. package/assets/scss/layout/_header.scss +9 -1
  13. package/assets/scss/layout/_pageShell.scss +6 -2
  14. package/assets/scss/mixin/_mx-button.scss +30 -76
  15. package/assets/scss/mixin/_mx-card.scss +11 -9
  16. package/assets/scss/mixin/_mx-form.scss +3 -5
  17. package/assets/scss/mixin/{_mx-form-addon.scss → _mx-formAddon.scss} +23 -26
  18. package/assets/scss/mixin/_mx-hover.scss +75 -0
  19. package/assets/scss/mixin/_settings.scss +2 -1
  20. package/assets/scss/mixin/mixin.scss +2 -1
  21. package/demo/demo.js +4 -3
  22. package/dist/css/index.css +1166 -1517
  23. package/dist/css/index.css.map +1 -1
  24. package/dist/css/index.min.css +1 -1
  25. package/docs/componenti-e-markup.md +6 -5
  26. package/docs/components/accordion.md +22 -22
  27. package/docs/components/badges.md +19 -19
  28. package/docs/components/breadcumbs.md +8 -8
  29. package/docs/components/button.md +17 -17
  30. package/docs/components/card.md +19 -19
  31. package/docs/components/dropdown.md +29 -29
  32. package/docs/components/form.md +63 -40
  33. package/docs/components/formAddon.md +79 -0
  34. package/docs/components/logo.md +11 -11
  35. package/docs/components/menu.md +20 -20
  36. package/docs/components/modal.md +46 -46
  37. package/docs/components/notification.md +34 -34
  38. package/docs/components/search.md +51 -50
  39. package/docs/components/slides.md +39 -39
  40. package/docs/components/stepTabs.md +41 -41
  41. package/docs/components/steps.md +16 -16
  42. package/docs/components/summary.md +20 -20
  43. package/docs/components/table.md +7 -7
  44. package/docs/components/tooltip.md +22 -22
  45. package/docs/convenzioni.md +11 -11
  46. package/docs/export-e-sviluppo.md +3 -3
  47. package/docs/helper-javascript.md +7 -7
  48. package/docs/layout/body.md +11 -11
  49. package/docs/layout/flex.md +44 -44
  50. package/docs/layout/footer.md +23 -23
  51. package/docs/layout/grid.md +44 -44
  52. package/docs/layout/header.md +34 -34
  53. package/docs/layout/pageShell.md +11 -11
  54. package/docs/layout/section.md +26 -26
  55. package/docs/patterns/cookieConsent.md +38 -38
  56. package/docs/utilizzo-css-scss.md +8 -8
  57. package/package.json +1 -1
  58. package/scripts/generate-component-docs.js +5 -5
  59. package/templates/html/components/accordion.html +19 -19
  60. package/templates/html/components/badges.html +17 -17
  61. package/templates/html/components/breadcumbs.html +6 -6
  62. package/templates/html/components/button.html +15 -15
  63. package/templates/html/components/card.html +17 -17
  64. package/templates/html/components/dropdown.html +25 -25
  65. package/templates/html/components/form.html +58 -35
  66. package/templates/html/components/formAddon.html +72 -0
  67. package/templates/html/components/logo.html +9 -9
  68. package/templates/html/components/menu.html +16 -16
  69. package/templates/html/components/modal.html +42 -42
  70. package/templates/html/components/notification.html +30 -30
  71. package/templates/html/components/search.html +43 -42
  72. package/templates/html/components/slides.html +31 -31
  73. package/templates/html/components/stepTabs.html +37 -37
  74. package/templates/html/components/steps.html +13 -13
  75. package/templates/html/components/summary.html +17 -17
  76. package/templates/html/components/table.html +5 -5
  77. package/templates/html/components/tooltip.html +18 -18
  78. package/templates/html/layout/body.html +9 -10
  79. package/templates/html/layout/flex.html +42 -42
  80. package/templates/html/layout/footer.html +20 -20
  81. package/templates/html/layout/grid.html +42 -42
  82. package/templates/html/layout/header.html +32 -32
  83. package/templates/html/layout/pageShell.html +8 -8
  84. package/templates/html/layout/section.html +24 -24
  85. package/templates/html/patterns/cookieConsent.html +33 -33
  86. package/templates/react/components/accordion.jsx +4 -4
  87. package/templates/react/components/breadcumbs.jsx +1 -1
  88. package/templates/react/components/button.jsx +5 -5
  89. package/templates/react/components/card.jsx +4 -4
  90. package/templates/react/components/dropdown.jsx +8 -8
  91. package/templates/react/components/form.jsx +2 -2
  92. package/templates/react/components/modal.jsx +14 -14
  93. package/templates/react/components/notification.jsx +3 -3
  94. package/templates/react/components/search.jsx +5 -5
  95. package/templates/react/components/slides.jsx +3 -3
  96. package/templates/react/components/stepTabs.jsx +8 -8
  97. package/templates/react/components/summary.jsx +3 -3
  98. package/templates/react/components/table.jsx +2 -2
  99. package/templates/react/layout/flex.jsx +8 -8
  100. package/templates/react/layout/grid.jsx +8 -8
  101. package/templates/react/layout/section.jsx +12 -12
  102. package/templates/react/patterns/cookieConsent.jsx +8 -8
  103. package/templates/react/patterns/footer.jsx +3 -3
  104. package/templates/react/patterns/header.jsx +3 -3
@@ -7,7 +7,7 @@ export default function Button() {
7
7
  </a>
8
8
 
9
9
  <button pgs="button" type="button" pgs-option="buttonReverse">
10
- Avanti
10
+ Next
11
11
  <i className="fa-solid fa-arrow-right" aria-hidden="true"></i>
12
12
  </button>
13
13
 
@@ -16,17 +16,17 @@ export default function Button() {
16
16
  Submit
17
17
  </button>
18
18
 
19
- <button pgs="buttonIcon" type="button" aria-label="Impostazioni">
19
+ <button pgs="buttonIcon" type="button" aria-label="Settings">
20
20
  <i className="fa-solid fa-gear" aria-hidden="true"></i>
21
21
  </button>
22
22
 
23
- <button pgs="buttonMini" type="button" aria-label="Informazioni">
23
+ <button pgs="buttonMini" type="button" aria-label="Information">
24
24
  <i className="fa-solid fa-info" aria-hidden="true"></i>
25
25
  </button>
26
26
 
27
- <button pgs="buttonBig" type="button" aria-label="Bottone grande">
27
+ <button pgs="buttonBig" type="button" aria-label="Large button">
28
28
  <i className="fa-solid fa-rocket" aria-hidden="true"></i>
29
- Bottone grande
29
+ Large button
30
30
  </button>
31
31
  </div>
32
32
  );
@@ -1,11 +1,11 @@
1
1
  export default function Card() {
2
2
  return (
3
3
  <article pgs="card flexColumn">
4
- <img pgs="card-img imgCover" src="https://placehold.co/800x500" alt="Immagine segnaposto" />
4
+ <img pgs="card-img imgCover" src="https://placehold.co/800x500" alt="Placeholder image" />
5
5
 
6
6
  <div pgs="flexColumnTexts">
7
7
  <h3>Card riutilizzabile</h3>
8
- <p>Contenuto descrittivo della card, adatto a liste, anteprime e griglie.</p>
8
+ <p>Descriptive card content suitable for lists, previews, and grids.</p>
9
9
  <a pgs="button" href="#">Leggi di piu</a>
10
10
  </div>
11
11
  </article>
@@ -15,11 +15,11 @@ export default function CardLink() {
15
15
  return (
16
16
  <article pgs="card">
17
17
  <a pgs="flexColumn" href="">
18
- <img pgs="card-img imgCover" src="https://placehold.co/800x500" alt="Immagine segnaposto" />
18
+ <img pgs="card-img imgCover" src="https://placehold.co/800x500" alt="Placeholder image" />
19
19
 
20
20
  <div pgs="flexColumnTexts">
21
21
  <h3>Card riutilizzabile</h3>
22
- <p>Contenuto descrittivo della card, adatto a liste, anteprime e griglie.</p>
22
+ <p>Descriptive card content suitable for lists, previews, and grids.</p>
23
23
  </div>
24
24
  </a>
25
25
  </article>
@@ -1,12 +1,12 @@
1
1
  const dropdowns = [
2
- ["Bottom center", "Contenuto bottom center"],
3
- ["Top left", "Contenuto top left", "position[top left]"],
4
- ["Top center", "Contenuto top center", "position[top center]"],
5
- ["Top right", "Contenuto top right", "position[top right]"],
6
- ["Bottom left", "Contenuto bottom left", "position[bottom left]"],
7
- ["Bottom right", "Contenuto bottom right", "position[bottom right]"],
8
- ["Left center", "Contenuto left center", "position[left center]"],
9
- ["Right center", "Contenuto right center", "position[right center]"],
2
+ ["Bottom center", "bottom center content"],
3
+ ["Top left", "top left content", "position[top left]"],
4
+ ["Top center", "top center content", "position[top center]"],
5
+ ["Top right", "top right content", "position[top right]"],
6
+ ["Bottom left", "bottom left content", "position[bottom left]"],
7
+ ["Bottom right", "bottom right content", "position[bottom right]"],
8
+ ["Left center", "left center content", "position[left center]"],
9
+ ["Right center", "right center content", "position[right center]"],
10
10
  ];
11
11
 
12
12
  export default function Dropdown() {
@@ -12,9 +12,9 @@ export default function Form() {
12
12
  <input id="form-email" pgs="input" pgs-option="message[Inserisci una email valida]" type="email" name="email" placeholder="nome@example.com" required />
13
13
 
14
14
  <label pgs="label" htmlFor="form-message">
15
- Messaggio
15
+ Message
16
16
  </label>
17
- <textarea id="form-message" pgs="textarea" name="message" rows="5" placeholder="Scrivi il messaggio"></textarea>
17
+ <textarea id="form-message" pgs="textarea" name="message" rows="5" placeholder="Write your message"></textarea>
18
18
 
19
19
  <label pgs="toggle">
20
20
  <span>Accetto la privacy policy</span>
@@ -3,17 +3,17 @@ export default function Modal() {
3
3
  <>
4
4
  <div pgs="modal" pgs-option="containerID[modal-container]">
5
5
  <button pgs="modal-button button" type="button">
6
- <i className="fa-solid fa-window-maximize"></i> Apri modale
6
+ <i className="fa-solid fa-window-maximize"></i> Open modal
7
7
  </button>
8
8
 
9
9
  <dialog>
10
10
  <div pgs="modal-dialog-content">
11
11
  <div pgs="modal-dialog-content-header">
12
- <h3>Modale di esempio</h3>
12
+ <h3>Example modal</h3>
13
13
  </div>
14
14
 
15
15
  <div pgs="modal-dialog-content-scroll">
16
- <p>Contenuto della modale. Il bottone di chiusura viene aggiunto automaticamente se non presente.</p>
16
+ <p>Modal content. The close button is added automatically when missing.</p>
17
17
  </div>
18
18
  </div>
19
19
  </dialog>
@@ -21,17 +21,17 @@ export default function Modal() {
21
21
 
22
22
  <div pgs="modal" pgs-option="containerID[modal-container]">
23
23
  <button pgs="modal-button button" type="button">
24
- <i className="fa-solid fa-window-maximize"></i> Apri modale right
24
+ <i className="fa-solid fa-window-maximize"></i> Open modal right
25
25
  </button>
26
26
 
27
27
  <dialog pgs-option="right">
28
28
  <div pgs="modal-dialog-content">
29
29
  <div pgs="modal-dialog-content-header">
30
- <h3>Modale laterale</h3>
30
+ <h3>Side modal</h3>
31
31
  </div>
32
32
 
33
33
  <div pgs="modal-dialog-content-scroll">
34
- <p>Contenuto della modale con <code>pgs-option=&quot;right&quot;</code>.</p>
34
+ <p>Modal content with <code>pgs-option=&quot;right&quot;</code>.</p>
35
35
  </div>
36
36
  </div>
37
37
  </dialog>
@@ -39,17 +39,17 @@ export default function Modal() {
39
39
 
40
40
  <div pgs="modal" pgs-option="containerID[modal-container]">
41
41
  <button pgs="modal-button button" type="button">
42
- <i className="fa-solid fa-window-maximize"></i> Apri modale left
42
+ <i className="fa-solid fa-window-maximize"></i> Open modal left
43
43
  </button>
44
44
 
45
45
  <dialog pgs-option="left">
46
46
  <div pgs="modal-dialog-content">
47
47
  <div pgs="modal-dialog-content-header">
48
- <h3>Modale laterale sinistra</h3>
48
+ <h3>Left-side modal</h3>
49
49
  </div>
50
50
 
51
51
  <div pgs="modal-dialog-content-scroll">
52
- <p>Contenuto della modale con <code>pgs-option=&quot;left&quot;</code>.</p>
52
+ <p>Modal content with <code>pgs-option=&quot;left&quot;</code>.</p>
53
53
  </div>
54
54
  </div>
55
55
  </dialog>
@@ -57,21 +57,21 @@ export default function Modal() {
57
57
 
58
58
  <div pgs="modal">
59
59
  <button pgs="modal-button button" type="button">
60
- <i className="fa-solid fa-floppy-disk"></i> Conferma salvataggio
60
+ <i className="fa-solid fa-floppy-disk"></i> Confirmation salvataggio
61
61
  </button>
62
62
 
63
63
  <dialog pgs-option="topLevel">
64
64
  <div pgs="modal-dialog-content">
65
65
  <div pgs="modal-dialog-content-header">
66
- <h3>Salvare le modifiche?</h3>
66
+ <h3>Save changes?</h3>
67
67
  </div>
68
68
 
69
69
  <div pgs="modal-dialog-content-scroll flexColumnElements">
70
- <p>Hai modifiche non salvate. Conferma per applicarle oppure annulla per tornare alla pagina.</p>
70
+ <p>You have unsaved changes. Confirm to apply them or cancel to return to the page.</p>
71
71
 
72
72
  <div pgs="flexRow">
73
- <button pgs="button modal-close" type="button">Annulla</button>
74
- <button pgs="buttonStrong" type="button">Salva modifiche</button>
73
+ <button pgs="button modal-close" type="button">Cancel</button>
74
+ <button pgs="buttonStrong" type="button">Save changes</button>
75
75
  </div>
76
76
  </div>
77
77
  </div>
@@ -1,6 +1,6 @@
1
1
  const notificationData = {
2
- title: "Titolo",
3
- message: "Messaggio",
2
+ title: "Title",
3
+ message: "Message",
4
4
  element: "notification",
5
5
  type: "info",
6
6
  icon: null,
@@ -10,7 +10,7 @@ const notificationData = {
10
10
 
11
11
  const toastData = {
12
12
  title: "Benvenuto",
13
- message: "Messaggio",
13
+ message: "Message",
14
14
  element: "toast",
15
15
  type: "info",
16
16
  icon: null,
@@ -1,8 +1,8 @@
1
1
  export default function Search() {
2
2
  return (
3
3
  <form pgs="buttonNohover search" autoComplete="off" action="" method="get">
4
- <button type="submit" title="Cerca"><i className="fa-solid fa-search"></i></button>
5
- <input type="search" name="s" placeholder="Cerca" defaultValue="" />
4
+ <button type="submit" title="Search"><i className="fa-solid fa-search"></i></button>
5
+ <input type="search" name="s" placeholder="Search" defaultValue="" />
6
6
  <ul pgs="search-suggestions"></ul>
7
7
  </form>
8
8
  );
@@ -11,18 +11,18 @@ export default function Search() {
11
11
  export function SearchModal() {
12
12
  return (
13
13
  <div pgs="modal search-modal" pgs-option="containerPGS[header]">
14
- <button type="button" pgs="modal-button buttonIcon" title="Cerca">
14
+ <button type="button" pgs="modal-button buttonIcon" title="Search">
15
15
  <i className="fa-solid fa-search"></i>
16
16
  </button>
17
17
 
18
18
  <dialog>
19
19
  <div pgs="flexRow section search-mobile">
20
20
  <form pgs="buttonNohover search" autoComplete="off" action="/" method="get">
21
- <button type="submit" title="Cerca">
21
+ <button type="submit" title="Search">
22
22
  <i className="fa-solid fa-search"></i>
23
23
  </button>
24
24
 
25
- <input type="search" name="s" placeholder="Cerca" defaultValue="" />
25
+ <input type="search" name="s" placeholder="Search" defaultValue="" />
26
26
  <ul pgs="search-suggestions"></ul>
27
27
  </form>
28
28
 
@@ -1,7 +1,7 @@
1
1
  const slides = [
2
- ["Slide uno", "Contenuto della prima slide.", "https://placehold.co/800x500?text=Slide+1", "Slide 1"],
3
- ["Slide due", "Contenuto della seconda slide.", "https://placehold.co/800x500?text=Slide+2", "Slide 2"],
4
- ["Slide tre", "Contenuto della terza slide.", "https://placehold.co/800x500?text=Slide+3", "Slide 3"],
2
+ ["Slide uno", "First slide content.", "https://placehold.co/800x500?text=Slide+1", "Slide 1"],
3
+ ["Slide due", "Second slide content.", "https://placehold.co/800x500?text=Slide+2", "Slide 2"],
4
+ ["Slide tre", "Third slide content.", "https://placehold.co/800x500?text=Slide+3", "Slide 3"],
5
5
  ];
6
6
 
7
7
  export default function Slides() {
@@ -5,25 +5,25 @@ export default function StepTabs() {
5
5
 
6
6
  <div pgs="stepTabs-container">
7
7
  <section pgs="tab flexColumnTexts" tabIndex="-1" pgs-option="tabIcon[fa-user]">
8
- <h3>Dati personali</h3>
9
- <p>Contenuto del primo tab.</p>
8
+ <h3>Personal details</h3>
9
+ <p>First tab content.</p>
10
10
  </section>
11
11
 
12
12
  <section pgs="tab flexColumnTexts" tabIndex="-1" pgs-option="tabIcon[fa-list-check]">
13
- <h3>Preferenze</h3>
14
- <p>Contenuto del secondo tab.</p>
13
+ <h3>Preferences</h3>
14
+ <p>Second tab content.</p>
15
15
  </section>
16
16
 
17
17
  <section pgs="tab flexColumnTexts" tabIndex="-1" pgs-option="tabIcon[fa-check]">
18
- <h3>Conferma</h3>
19
- <p>Contenuto del terzo tab.</p>
18
+ <h3>Confirmation</h3>
19
+ <p>Third tab content.</p>
20
20
  </section>
21
21
  </div>
22
22
 
23
23
  <div pgs="flexRow">
24
24
  <button pgs="stepTabs-prev button" type="button">
25
25
  <i className="fa-solid fa-arrow-left" aria-hidden="true"></i>
26
- Indietro
26
+ Back
27
27
  </button>
28
28
 
29
29
  <button pgs="stepTabs-restart button" type="button">
@@ -31,7 +31,7 @@ export default function StepTabs() {
31
31
  </button>
32
32
 
33
33
  <button pgs="stepTabs-next button" pgs-option="buttonReverse" type="button">
34
- Avanti
34
+ Next
35
35
  <i className="fa-solid fa-arrow-right" aria-hidden="true"></i>
36
36
  </button>
37
37
  </div>
@@ -3,15 +3,15 @@ export default function Summary() {
3
3
  <div pgs="summary">
4
4
  <div pgs="summary-content">
5
5
  <p>
6
- Questo testo dimostrativo e' abbastanza lungo da occupare piu righe e mostrare il comportamento del componente summary. Il contenuto puo includere testo, link e altri elementi inline senza richiedere markup aggiuntivo.
6
+ This demonstration text is long enough to span multiple lines and show the summary component behavior. Content can include text, links, and other inline elements without requiring additional markup.
7
7
  </p>
8
8
  <p>
9
- Quando il contenuto supera tre righe viene mostrato un pulsante per espandere o richiudere l'area visibile.
9
+ When content exceeds three lines, a button is shown to expand or collapse the visible area.
10
10
  </p>
11
11
  </div>
12
12
 
13
13
  <button pgs="summary-button" type="button">
14
- Mostra di più
14
+ Show more
15
15
  </button>
16
16
  </div>
17
17
  );
@@ -4,7 +4,7 @@ export default function Table() {
4
4
  <table>
5
5
  <thead>
6
6
  <tr>
7
- <th>Nome</th>
7
+ <th>Name</th>
8
8
  <th>Stato</th>
9
9
  <th>Data</th>
10
10
  </tr>
@@ -13,7 +13,7 @@ export default function Table() {
13
13
  <tbody>
14
14
  <tr>
15
15
  <td>Elemento uno</td>
16
- <td>Attivo</td>
16
+ <td>Active</td>
17
17
  <td>2026-01-01</td>
18
18
  </tr>
19
19
  <tr>
@@ -1,10 +1,10 @@
1
1
  const columns = [
2
- ["Colonna uno", "Contenuto della prima colonna."],
3
- ["Colonna due", "Contenuto della seconda colonna."],
4
- ["Colonna tre", "Contenuto della terza colonna."],
5
- ["Colonna quattro", "Contenuto della quarta colonna."],
6
- ["Colonna cinque", "Contenuto della quinta colonna."],
7
- ["Colonna sei", "Contenuto della sesta colonna."],
2
+ ["Column one", "First column content."],
3
+ ["Column two", "Second column content."],
4
+ ["Column three", "Third column content."],
5
+ ["Column four", "Fourth column content."],
6
+ ["Column five", "Fifth column content."],
7
+ ["Column six", "Sixth column content."],
8
8
  ];
9
9
 
10
10
  function ColumnCard({ title, text }) {
@@ -20,8 +20,8 @@ export default function Flex() {
20
20
  return (
21
21
  <>
22
22
  <div pgs="container flexColumnTexts">
23
- <strong>Sezione standard</strong>
24
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
23
+ <strong>Standard section</strong>
24
+ <p>Centered content inside a MyPGS section.</p>
25
25
  </div>
26
26
 
27
27
  {[2, 3, 4, 6].map((count) => (
@@ -1,10 +1,10 @@
1
1
  const columns = [
2
- ["Colonna uno", "Contenuto della prima colonna."],
3
- ["Colonna due", "Contenuto della seconda colonna."],
4
- ["Colonna tre", "Contenuto della terza colonna."],
5
- ["Colonna quattro", "Contenuto della quarta colonna."],
6
- ["Colonna cinque", "Contenuto della quinta colonna."],
7
- ["Colonna sei", "Contenuto della sesta colonna."],
2
+ ["Column one", "First column content."],
3
+ ["Column two", "Second column content."],
4
+ ["Column three", "Third column content."],
5
+ ["Column four", "Fourth column content."],
6
+ ["Column five", "Fifth column content."],
7
+ ["Column six", "Sixth column content."],
8
8
  ];
9
9
 
10
10
  function ColumnCard({ title, text }) {
@@ -20,8 +20,8 @@ export default function Grid() {
20
20
  return (
21
21
  <>
22
22
  <div pgs="container flexColumnTexts">
23
- <strong>Sezione standard</strong>
24
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
23
+ <strong>Standard section</strong>
24
+ <p>Centered content inside a MyPGS section.</p>
25
25
  </div>
26
26
 
27
27
  {[2, 3, 4, 6].map((count) => (
@@ -3,40 +3,40 @@ export default function Section() {
3
3
  <div pgs="flexColumnSections">
4
4
  <section pgs="section flexColumnElements">
5
5
  <div pgs="container flexColumnTexts">
6
- <strong>Sezione standard</strong>
7
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
6
+ <strong>Standard section</strong>
7
+ <p>Centered content inside a MyPGS section.</p>
8
8
  </div>
9
9
  </section>
10
10
 
11
11
  <section pgs="sectionFull flexColumnElements">
12
12
  <div pgs="container flexColumnTexts">
13
- <strong>Sezione full-width</strong>
14
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
13
+ <strong>Full-width section</strong>
14
+ <p>Centered content inside a MyPGS section.</p>
15
15
  </div>
16
16
  </section>
17
17
 
18
18
  <section pgs="sectionSpecificity flexColumnElements">
19
19
  <div pgs="container flexColumnTexts">
20
- <strong>Sezione specificità</strong>
21
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
20
+ <strong>Specificity section</strong>
21
+ <p>Centered content inside a MyPGS section.</p>
22
22
  </div>
23
23
  <div pgs="sectionSpecificity-child container flexColumnTexts">
24
- <strong>Sezione specificità-child</strong>
25
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
24
+ <strong>Specificity-child section</strong>
25
+ <p>Centered content inside a MyPGS section.</p>
26
26
  </div>
27
27
  </section>
28
28
 
29
29
  <section pgs="sectionMax flexColumnElements" style={{ backgroundColor: "var(--color-primary-soft)" }}>
30
30
  <div pgs="container flexColumnTexts">
31
- <strong>Sezione max-width</strong>
32
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
31
+ <strong>Max-width section</strong>
32
+ <p>Centered content inside a MyPGS section.</p>
33
33
  </div>
34
34
  </section>
35
35
 
36
36
  <section pgs="sectionNoPadding flexColumnElements">
37
37
  <div pgs="container flexColumnTexts">
38
- <strong>Sezione no-padding</strong>
39
- <p>Contenuto centrato dentro una sezione MyPGS.</p>
38
+ <strong>No-padding section</strong>
39
+ <p>Centered content inside a MyPGS section.</p>
40
40
  </div>
41
41
  </section>
42
42
  </div>
@@ -8,11 +8,11 @@ export default function CookieConsent({
8
8
 
9
9
  return (
10
10
  <div id="cookieConsent" pgs="cookieConsent" role="dialog" aria-modal="true" data-ga-id={gaMeasurementId} hidden tabIndex="-1">
11
- <p><i className="fa-duotone fa-solid fa-cookie-bite"></i> Cookie e privacy <br /></p>
11
+ <p><i className="fa-duotone fa-solid fa-cookie-bite"></i> Cookies and privacy <br /></p>
12
12
  <h2>La tua privacy prima di tutto</h2>
13
13
 
14
14
  <p>
15
- Utilizziamo cookie tecnici per offrire il servizio e, previo consenso, cookie analitici di
15
+ We use essential cookies to provide the service and, with your consent, analytics cookies from
16
16
  <strong>Google Analytics</strong> per misurare in modo anonimo il traffico e migliorare i contenuti.
17
17
  Puoi modificare la scelta in qualsiasi momento.
18
18
  </p>
@@ -22,17 +22,17 @@ export default function CookieConsent({
22
22
  <a href={cookiePolicyUrl} target="_blank" rel="noopener noreferrer">Cookie Policy</a>
23
23
  </p>
24
24
 
25
- <div pgs="cookieConsent-panel flexColumn" role="group" aria-label="Preferenze cookie">
25
+ <div pgs="cookieConsent-panel flexColumn" role="group" aria-label="Cookie preferences">
26
26
  <div pgs="flexRow nowrap cookieConsent-featureEssential">
27
27
  <div>
28
28
  <p>
29
29
  <strong>Cookie tecnici</strong>
30
30
  <br />
31
- <small>Sempre attivi per garantire il corretto funzionamento del sito.</small>
31
+ <small>Always active to ensure the website works correctly.</small>
32
32
  </p>
33
33
  </div>
34
34
 
35
- <span pgs="cookieConsent-panel-badge">Attivi</span>
35
+ <span pgs="cookieConsent-panel-badge">Active</span>
36
36
  </div>
37
37
 
38
38
  <div pgs="flexRow cookieConsent-featureAnalytics">
@@ -40,7 +40,7 @@ export default function CookieConsent({
40
40
  <p>
41
41
  <strong>Analytics</strong>
42
42
  <br />
43
- <small>Dati di navigazione raccolti in forma aggregata per statistiche anonime.</small>
43
+ <small>Browsing data collected in aggregate form for anonymous statistics.</small>
44
44
  </p>
45
45
 
46
46
  <input type="checkbox" pgs="cookieConsent-toggleAnalytics" aria-label="Abilita Google Analytics" />
@@ -50,11 +50,11 @@ export default function CookieConsent({
50
50
 
51
51
  <div pgs="flexRow">
52
52
  <button type="button" pgs="button cookieConsent-actionReject">
53
- <i className="fa-solid fa-duotone fa-sliders"></i>Solo selezionati
53
+ <i className="fa-solid fa-duotone fa-sliders"></i>Selected only
54
54
  </button>
55
55
 
56
56
  <button type="button" pgs="buttonStrong cookieConsent-actionAccept">
57
- <i className="fa-solid fa-check"></i> Accetta tutto
57
+ <i className="fa-solid fa-check"></i> Accept all
58
58
  </button>
59
59
  </div>
60
60
  </div>
@@ -1,7 +1,7 @@
1
1
  export default function Footer() {
2
2
  return (
3
3
  <footer pgs="footer">
4
- <button pgs="button toggleDarkmode" type="button" aria-label="Cambia tema">
4
+ <button pgs="button toggleDarkmode" type="button" aria-label="Change theme">
5
5
  <i className="fa-solid fa-moon"></i>
6
6
  </button>
7
7
 
@@ -28,11 +28,11 @@ export default function Footer() {
28
28
 
29
29
  <section pgs="footer-legal section">
30
30
  <div pgs="footer-legal-content">
31
- <button type="button" pgs="button cookieConsent-actionOpen">Preferenze cookie</button>
31
+ <button type="button" pgs="button cookieConsent-actionOpen">Cookie preferences</button>
32
32
  <p><a href="">Privacy Policy</a></p>
33
33
  <p><a href="">Cookie Policy</a></p>
34
34
  <p><a href="">Termini e Condizioni</a></p>
35
- <p>© 2026 MyPgs. Nessun diritto riservato.</p>
35
+ <p>© 2026 MyPgs. No rights reserved.</p>
36
36
  </div>
37
37
  </section>
38
38
  </footer>
@@ -30,7 +30,7 @@ export default function Header() {
30
30
  </div>
31
31
 
32
32
  <div pgs="header-element-onlyDesktop">
33
- <nav pgs="menu" pgs-option="horizontal menuHeader" aria-label="Menu principale">
33
+ <nav pgs="menu" pgs-option="horizontal menuHeader" aria-label="Main menu">
34
34
  <ul>
35
35
  <li><a href="/">Home</a></li>
36
36
  <li><a href="#componenti">Componenti</a></li>
@@ -42,7 +42,7 @@ export default function Header() {
42
42
  <div pgs="header-element-onlyMobile"></div>
43
43
 
44
44
  <div pgs="header-element-alwaysOnLast">
45
- <button pgs="buttonIcon toggleDarkmode" type="button" aria-label="Cambia tema">
45
+ <button pgs="buttonIcon toggleDarkmode" type="button" aria-label="Change theme">
46
46
  <i className="fa-solid fa-moon"></i>
47
47
  </button>
48
48
  </div>
@@ -52,7 +52,7 @@ export default function Header() {
52
52
 
53
53
  <dialog pgs="modal-dialog" pgs-option="right">
54
54
  <div pgs="modal-dialog-content">
55
- <nav pgs="menu" pgs-option="vertical menuHeader" aria-label="Menu mobile">
55
+ <nav pgs="menu" pgs-option="vertical menuHeader" aria-label="Mobile menu">
56
56
  <ul>
57
57
  <li><a href="/">Home</a></li>
58
58
  <li><a href="#componenti">Componenti</a></li>