mypgs 1.3.6 → 1.3.7
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/{AI_GUIDELINES.md → AGENTS.md} +17 -15
- package/README.md +8 -172
- package/assets/scss/mixin/_mx-responsive.scss +11 -10
- package/dist/css/index.css.map +1 -1
- package/package.json +1 -1
- package/templates/react/components/accordion.jsx +27 -0
- package/templates/react/components/breadcumbs.jsx +27 -0
- package/templates/react/components/button.jsx +33 -0
- package/templates/react/components/card.jsx +27 -0
- package/templates/react/components/dropdown.jsx +29 -0
- package/templates/react/components/form.jsx +30 -0
- package/templates/react/components/logo.jsx +14 -0
- package/templates/react/components/menu.jsx +37 -0
- package/templates/react/components/modal.jsx +84 -0
- package/templates/react/components/notification.jsx +31 -0
- package/templates/react/components/searchbar.jsx +34 -0
- package/templates/react/components/slides.jsx +25 -0
- package/templates/react/components/stepTabs.jsx +40 -0
- package/templates/react/components/steps.jsx +21 -0
- package/templates/react/components/table.jsx +28 -0
- package/templates/react/components/tooltip.jsx +12 -0
- package/templates/react/layout/body.jsx +7 -0
- package/templates/react/layout/flex.jsx +36 -0
- package/templates/react/layout/grid.jsx +36 -0
- package/templates/react/layout/pageShell.jsx +48 -0
- package/templates/react/layout/section.jsx +44 -0
- package/templates/react/patterns/cookieConsent.jsx +62 -0
- package/templates/react/patterns/footer.jsx +40 -0
- package/templates/react/patterns/header.jsx +62 -0
- /package/templates/{components → html/components}/accordion.html +0 -0
- /package/templates/{components → html/components}/breadcumbs.html +0 -0
- /package/templates/{components → html/components}/button.html +0 -0
- /package/templates/{components → html/components}/card.html +0 -0
- /package/templates/{components → html/components}/dropdown.html +0 -0
- /package/templates/{components → html/components}/form.html +0 -0
- /package/templates/{components → html/components}/logo.html +0 -0
- /package/templates/{components → html/components}/menu.html +0 -0
- /package/templates/{components → html/components}/modal.html +0 -0
- /package/templates/{components → html/components}/notification.html +0 -0
- /package/templates/{components → html/components}/searchbar.html +0 -0
- /package/templates/{components → html/components}/slides.html +0 -0
- /package/templates/{components → html/components}/stepTabs.html +0 -0
- /package/templates/{components → html/components}/steps.html +0 -0
- /package/templates/{components → html/components}/table.html +0 -0
- /package/templates/{components → html/components}/tooltip.html +0 -0
- /package/templates/{demo.css → html/demo.css} +0 -0
- /package/templates/{demo.html → html/demo.html} +0 -0
- /package/templates/{demo.js → html/demo.js} +0 -0
- /package/templates/{layout → html/layout}/body.html +0 -0
- /package/templates/{layout → html/layout}/flex.html +0 -0
- /package/templates/{layout → html/layout}/grid.html +0 -0
- /package/templates/{layout → html/layout}/pageShell.html +0 -0
- /package/templates/{layout → html/layout}/section.html +0 -0
- /package/templates/{patterns → html/patterns}/cookieConsent.html +0 -0
- /package/templates/{patterns → html/patterns}/footer.html +0 -0
- /package/templates/{patterns → html/patterns}/header.html +0 -0
package/package.json
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default function Accordion() {
|
|
2
|
+
return (
|
|
3
|
+
<ul pgs="grid-1 gapTexts">
|
|
4
|
+
<li pgs="accordion">
|
|
5
|
+
<button pgs="accordion-button" type="button">
|
|
6
|
+
<i className="fa-solid fa-circle-question" aria-hidden="true"></i>
|
|
7
|
+
<span>Domanda frequente</span>
|
|
8
|
+
</button>
|
|
9
|
+
|
|
10
|
+
<div pgs="accordion-content" hidden>
|
|
11
|
+
<p>Risposta di esempio con contenuto testuale riutilizzabile.</p>
|
|
12
|
+
</div>
|
|
13
|
+
</li>
|
|
14
|
+
|
|
15
|
+
<li pgs="accordion">
|
|
16
|
+
<button pgs="accordion-button" type="button">
|
|
17
|
+
<i className="fa-solid fa-circle-info" aria-hidden="true"></i>
|
|
18
|
+
<span>Seconda sezione</span>
|
|
19
|
+
</button>
|
|
20
|
+
|
|
21
|
+
<div pgs="accordion-content" hidden>
|
|
22
|
+
<p>Altro contenuto del pannello accordion.</p>
|
|
23
|
+
</div>
|
|
24
|
+
</li>
|
|
25
|
+
</ul>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default function Breadcumbs() {
|
|
2
|
+
return (
|
|
3
|
+
<nav aria-label="Breadcrumb">
|
|
4
|
+
<ul pgs="breadcrumb">
|
|
5
|
+
<li pgs="breadcrumb-item">
|
|
6
|
+
<a href="/">Home</a>
|
|
7
|
+
<span pgs="breadcrumb-item-separator" aria-hidden="true">
|
|
8
|
+
>
|
|
9
|
+
</span>
|
|
10
|
+
</li>
|
|
11
|
+
|
|
12
|
+
<li pgs="breadcrumb-item">
|
|
13
|
+
<a href="/blog">Blog</a>
|
|
14
|
+
<span pgs="breadcrumb-item-separator" aria-hidden="true">
|
|
15
|
+
>
|
|
16
|
+
</span>
|
|
17
|
+
</li>
|
|
18
|
+
|
|
19
|
+
<li pgs="breadcrumb-item">
|
|
20
|
+
<span aria-current="page">
|
|
21
|
+
Articolo di prova
|
|
22
|
+
</span>
|
|
23
|
+
</li>
|
|
24
|
+
</ul>
|
|
25
|
+
</nav>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default function Button() {
|
|
2
|
+
return (
|
|
3
|
+
<div pgs="flexRow">
|
|
4
|
+
<a pgs="button" href="#">
|
|
5
|
+
<i className="fa-duotone fa-solid fa-store"></i>
|
|
6
|
+
About
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
<button pgs="button" type="button" pgs-option="buttonReverse">
|
|
10
|
+
Avanti
|
|
11
|
+
<i className="fa-solid fa-arrow-right" aria-hidden="true"></i>
|
|
12
|
+
</button>
|
|
13
|
+
|
|
14
|
+
<button pgs="buttonStrong" type="button">
|
|
15
|
+
<i className="fa-solid fa-check" aria-hidden="true"></i>
|
|
16
|
+
Submit
|
|
17
|
+
</button>
|
|
18
|
+
|
|
19
|
+
<button pgs="buttonIcon" type="button" aria-label="Impostazioni">
|
|
20
|
+
<i className="fa-solid fa-gear" aria-hidden="true"></i>
|
|
21
|
+
</button>
|
|
22
|
+
|
|
23
|
+
<button pgs="buttonMini" type="button" aria-label="Informazioni">
|
|
24
|
+
<i className="fa-solid fa-info" aria-hidden="true"></i>
|
|
25
|
+
</button>
|
|
26
|
+
|
|
27
|
+
<button pgs="buttonBig" type="button" aria-label="Bottone grande">
|
|
28
|
+
<i className="fa-solid fa-rocket" aria-hidden="true"></i>
|
|
29
|
+
Bottone grande
|
|
30
|
+
</button>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default function Card() {
|
|
2
|
+
return (
|
|
3
|
+
<article pgs="card flexColumn">
|
|
4
|
+
<img pgs="card-img imgCover" src="https://placehold.co/800x500" alt="Immagine segnaposto" />
|
|
5
|
+
|
|
6
|
+
<div pgs="flexColumnTexts">
|
|
7
|
+
<h3>Card riutilizzabile</h3>
|
|
8
|
+
<p>Contenuto descrittivo della card, adatto a liste, anteprime e griglie.</p>
|
|
9
|
+
<a pgs="button" href="#">Leggi di piu</a>
|
|
10
|
+
</div>
|
|
11
|
+
</article>
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
export default function CardLink() {
|
|
15
|
+
return (
|
|
16
|
+
<article pgs="card">
|
|
17
|
+
<a pgs="flexColumn" href="">
|
|
18
|
+
<img pgs="card-img imgCover" src="https://placehold.co/800x500" alt="Immagine segnaposto" />
|
|
19
|
+
|
|
20
|
+
<div pgs="flexColumnTexts">
|
|
21
|
+
<h3>Card riutilizzabile</h3>
|
|
22
|
+
<p>Contenuto descrittivo della card, adatto a liste, anteprime e griglie.</p>
|
|
23
|
+
</div>
|
|
24
|
+
</a>
|
|
25
|
+
</article>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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]"],
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
export default function Dropdown() {
|
|
13
|
+
return (
|
|
14
|
+
<div pgs="flexRow">
|
|
15
|
+
{dropdowns.map(([label, content, option]) => (
|
|
16
|
+
<span key={label} pgs="dropdown" {...(option ? { "pgs-option": option } : {})}>
|
|
17
|
+
<button pgs="dropdown-button button" pgs-option="buttonReverse" type="button">
|
|
18
|
+
{label}
|
|
19
|
+
<i className="fa-solid fa-chevron-down" aria-hidden="true"></i>
|
|
20
|
+
</button>
|
|
21
|
+
|
|
22
|
+
<div pgs="dropdown-content">
|
|
23
|
+
{content}
|
|
24
|
+
</div>
|
|
25
|
+
</span>
|
|
26
|
+
))}
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export default function Form() {
|
|
2
|
+
return (
|
|
3
|
+
<form pgs="form" action="#" method="post">
|
|
4
|
+
<label pgs="label" htmlFor="form-name">
|
|
5
|
+
Nome
|
|
6
|
+
</label>
|
|
7
|
+
<input id="form-name" pgs="input" type="text" name="name" placeholder="Mario Rossi" required data-form-field-message="Inserisci il nome" />
|
|
8
|
+
|
|
9
|
+
<label pgs="label" htmlFor="form-email">
|
|
10
|
+
Email
|
|
11
|
+
</label>
|
|
12
|
+
<input id="form-email" pgs="input" type="email" name="email" placeholder="nome@example.com" required data-form-field-message="Inserisci una email valida" />
|
|
13
|
+
|
|
14
|
+
<label pgs="label" htmlFor="form-message">
|
|
15
|
+
Messaggio
|
|
16
|
+
</label>
|
|
17
|
+
<textarea id="form-message" pgs="textarea" name="message" rows="5" placeholder="Scrivi il messaggio"></textarea>
|
|
18
|
+
|
|
19
|
+
<label pgs="toggle">
|
|
20
|
+
<span>Accetto la privacy policy</span>
|
|
21
|
+
<input type="checkbox" name="privacy" required />
|
|
22
|
+
</label>
|
|
23
|
+
|
|
24
|
+
<button pgs="buttonStrong" type="submit">
|
|
25
|
+
<i className="fa-solid fa-paper-plane" aria-hidden="true"></i>
|
|
26
|
+
Invia
|
|
27
|
+
</button>
|
|
28
|
+
</form>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default function Logo() {
|
|
2
|
+
return (
|
|
3
|
+
<a aria-label="Logo" pgs="logo logo-darkmode" href="/">
|
|
4
|
+
<img pgs="logo-image" src="https://placehold.co/240x80?text=MyPGS" alt="MyPGS" />
|
|
5
|
+
</a>
|
|
6
|
+
);
|
|
7
|
+
}
|
|
8
|
+
export default function LogoText() {
|
|
9
|
+
return (
|
|
10
|
+
<a aria-label="Logo testuale" pgs="logo" href="/">
|
|
11
|
+
<span pgs="logo-text">MyPGS</span>
|
|
12
|
+
</a>
|
|
13
|
+
);
|
|
14
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const menuItems = (
|
|
2
|
+
<ul>
|
|
3
|
+
<li>
|
|
4
|
+
<a href="/" aria-current="page">
|
|
5
|
+
<i className="fa-solid fa-house" aria-hidden="true"></i>
|
|
6
|
+
<span>Home</span>
|
|
7
|
+
</a>
|
|
8
|
+
</li>
|
|
9
|
+
<li>
|
|
10
|
+
<a href="/servizi">
|
|
11
|
+
<i className="fa-solid fa-layer-group" aria-hidden="true"></i>
|
|
12
|
+
<span>Servizi</span>
|
|
13
|
+
</a>
|
|
14
|
+
<ul>
|
|
15
|
+
<li><a href="/servizi/uno">Servizio uno</a></li>
|
|
16
|
+
<li><a href="/servizi/due">Servizio due</a></li>
|
|
17
|
+
</ul>
|
|
18
|
+
</li>
|
|
19
|
+
</ul>
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
export default function MenuHorizontal() {
|
|
23
|
+
return (
|
|
24
|
+
<nav pgs="menu" pgs-option="horizontal" aria-label="Menu orizzontale">
|
|
25
|
+
{menuItems}
|
|
26
|
+
</nav>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default function MenuVertical() {
|
|
31
|
+
return (
|
|
32
|
+
|
|
33
|
+
<nav pgs="menu" pgs-option="vertical" aria-label="Menu verticale">
|
|
34
|
+
{menuItems}
|
|
35
|
+
</nav>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export default function Modal() {
|
|
2
|
+
return (
|
|
3
|
+
<>
|
|
4
|
+
<div pgs="modal" pgs-option="containerID[modal-container]">
|
|
5
|
+
<button pgs="modal-button button" type="button">
|
|
6
|
+
<i className="fa-solid fa-window-maximize"></i> Apri modale
|
|
7
|
+
</button>
|
|
8
|
+
|
|
9
|
+
<dialog>
|
|
10
|
+
<div pgs="modal-dialog-content">
|
|
11
|
+
<div pgs="modal-dialog-content-header">
|
|
12
|
+
<h3>Modale di esempio</h3>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div pgs="modal-dialog-content-scroll">
|
|
16
|
+
<p>Contenuto della modale. Il bottone di chiusura viene aggiunto automaticamente se non presente.</p>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</dialog>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div pgs="modal" pgs-option="containerID[modal-container]">
|
|
23
|
+
<button pgs="modal-button button" type="button">
|
|
24
|
+
<i className="fa-solid fa-window-maximize"></i> Apri modale right
|
|
25
|
+
</button>
|
|
26
|
+
|
|
27
|
+
<dialog pgs-option="right">
|
|
28
|
+
<div pgs="modal-dialog-content">
|
|
29
|
+
<div pgs="modal-dialog-content-header">
|
|
30
|
+
<h3>Modale laterale</h3>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div pgs="modal-dialog-content-scroll">
|
|
34
|
+
<p>Contenuto della modale con <code>pgs-option="right"</code>.</p>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</dialog>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<div pgs="modal" pgs-option="containerID[modal-container]">
|
|
41
|
+
<button pgs="modal-button button" type="button">
|
|
42
|
+
<i className="fa-solid fa-window-maximize"></i> Apri modale left
|
|
43
|
+
</button>
|
|
44
|
+
|
|
45
|
+
<dialog pgs-option="left">
|
|
46
|
+
<div pgs="modal-dialog-content">
|
|
47
|
+
<div pgs="modal-dialog-content-header">
|
|
48
|
+
<h3>Modale laterale sinistra</h3>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<div pgs="modal-dialog-content-scroll">
|
|
52
|
+
<p>Contenuto della modale con <code>pgs-option="left"</code>.</p>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</dialog>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<div pgs="modal">
|
|
59
|
+
<button pgs="modal-button button" type="button">
|
|
60
|
+
<i className="fa-solid fa-floppy-disk"></i> Conferma salvataggio
|
|
61
|
+
</button>
|
|
62
|
+
|
|
63
|
+
<dialog pgs-option="topLevel">
|
|
64
|
+
<div pgs="modal-dialog-content">
|
|
65
|
+
<div pgs="modal-dialog-content-header">
|
|
66
|
+
<h3>Salvare le modifiche?</h3>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<div pgs="modal-dialog-content-scroll flexColumnElements">
|
|
70
|
+
<p>Hai modifiche non salvate. Conferma per applicarle oppure annulla per tornare alla pagina.</p>
|
|
71
|
+
|
|
72
|
+
<div pgs="flexRow">
|
|
73
|
+
<button pgs="button modal-close" type="button">Annulla</button>
|
|
74
|
+
<button pgs="buttonStrong" type="button">Salva modifiche</button>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</dialog>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<div id="modal-container"></div>
|
|
82
|
+
</>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const notificationData = {
|
|
2
|
+
title: "Titolo",
|
|
3
|
+
message: "Messaggio",
|
|
4
|
+
element: "notification",
|
|
5
|
+
type: "info",
|
|
6
|
+
icon: null,
|
|
7
|
+
duration: "-1",
|
|
8
|
+
link: null,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const toastData = {
|
|
12
|
+
title: "Benvetuto",
|
|
13
|
+
message: "Messaggio",
|
|
14
|
+
element: "toast",
|
|
15
|
+
type: "info",
|
|
16
|
+
icon: null,
|
|
17
|
+
duration: "3000",
|
|
18
|
+
link: null,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export default function Notification() {
|
|
22
|
+
return (
|
|
23
|
+
<>
|
|
24
|
+
<div pgs="notification" aria-live="polite"></div>
|
|
25
|
+
<div pgs="toast" aria-live="polite"></div>
|
|
26
|
+
|
|
27
|
+
<div pgs="hidden notificationTrigger" data-notification={JSON.stringify(notificationData)}></div>
|
|
28
|
+
<div pgs="hidden notificationTrigger" data-notification={JSON.stringify(toastData)}></div>
|
|
29
|
+
</>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export default function Searchbar() {
|
|
2
|
+
return (
|
|
3
|
+
<form pgs="buttonNohover searchbar" 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="" />
|
|
6
|
+
</form>
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
export default function SearchbarModal() {
|
|
10
|
+
return (
|
|
11
|
+
|
|
12
|
+
<div pgs="modal searchbar-modal" pgs-option="containerPGS[header]">
|
|
13
|
+
<button type="button" pgs="modal-button buttonIcon" title="Cerca">
|
|
14
|
+
<i className="fa-solid fa-search"></i>
|
|
15
|
+
</button>
|
|
16
|
+
|
|
17
|
+
<dialog>
|
|
18
|
+
<div pgs="flexRow section searchbar-mobile">
|
|
19
|
+
<form pgs="buttonNohover searchbar" autoComplete="off" action="/" method="get">
|
|
20
|
+
<button type="submit" title="Cerca">
|
|
21
|
+
<i className="fa-solid fa-search"></i>
|
|
22
|
+
</button>
|
|
23
|
+
|
|
24
|
+
<input type="search" name="s" placeholder="Cerca" defaultValue="" />
|
|
25
|
+
</form>
|
|
26
|
+
|
|
27
|
+
<button type="button" pgs="modal-close buttonIcon">
|
|
28
|
+
<i className="fa-solid fa-close"></i>
|
|
29
|
+
</button>
|
|
30
|
+
</div>
|
|
31
|
+
</dialog>
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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"],
|
|
5
|
+
];
|
|
6
|
+
|
|
7
|
+
export default function Slides() {
|
|
8
|
+
return (
|
|
9
|
+
<div pgs="slides" pgs-option="singleScroll shadowDesktop">
|
|
10
|
+
<ul pgs="slides-container">
|
|
11
|
+
{slides.map(([title, text, src, alt]) => (
|
|
12
|
+
<li key={title}>
|
|
13
|
+
<article pgs="card flexColumn">
|
|
14
|
+
<img pgs="card-img imgCover" src={src} alt={alt} />
|
|
15
|
+
<div pgs="flexColumnTexts">
|
|
16
|
+
<h3>{title}</h3>
|
|
17
|
+
<p>{text}</p>
|
|
18
|
+
</div>
|
|
19
|
+
</article>
|
|
20
|
+
</li>
|
|
21
|
+
))}
|
|
22
|
+
</ul>
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export default function StepTabs() {
|
|
2
|
+
return (
|
|
3
|
+
<div pgs="stepTabs flexColumnElements">
|
|
4
|
+
<div pgs="stepTabs-dots" aria-label="Avanzamento"></div>
|
|
5
|
+
|
|
6
|
+
<div pgs="stepTabs-container">
|
|
7
|
+
<section pgs="tab flexColumnTexts" tabIndex="-1" pgs-option="tabIcon[fa-user]">
|
|
8
|
+
<h3>Dati personali</h3>
|
|
9
|
+
<p>Contenuto del primo tab.</p>
|
|
10
|
+
</section>
|
|
11
|
+
|
|
12
|
+
<section pgs="tab flexColumnTexts" tabIndex="-1" pgs-option="tabIcon[fa-list-check]">
|
|
13
|
+
<h3>Preferenze</h3>
|
|
14
|
+
<p>Contenuto del secondo tab.</p>
|
|
15
|
+
</section>
|
|
16
|
+
|
|
17
|
+
<section pgs="tab flexColumnTexts" tabIndex="-1" pgs-option="tabIcon[fa-check]">
|
|
18
|
+
<h3>Conferma</h3>
|
|
19
|
+
<p>Contenuto del terzo tab.</p>
|
|
20
|
+
</section>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div pgs="flexRow">
|
|
24
|
+
<button pgs="stepTabs-prev button" type="button">
|
|
25
|
+
<i className="fa-solid fa-arrow-left" aria-hidden="true"></i>
|
|
26
|
+
Indietro
|
|
27
|
+
</button>
|
|
28
|
+
|
|
29
|
+
<button pgs="stepTabs-restart button" type="button">
|
|
30
|
+
Ricomincia
|
|
31
|
+
</button>
|
|
32
|
+
|
|
33
|
+
<button pgs="stepTabs-next button" pgs-option="buttonReverse" type="button">
|
|
34
|
+
Avanti
|
|
35
|
+
<i className="fa-solid fa-arrow-right" aria-hidden="true"></i>
|
|
36
|
+
</button>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const steps = [
|
|
2
|
+
["1", "Primo step", "Descrizione del primo passaggio."],
|
|
3
|
+
["2", "Secondo step", "Descrizione del secondo passaggio."],
|
|
4
|
+
["3", "Terzo step", "Descrizione del terzo passaggio."],
|
|
5
|
+
];
|
|
6
|
+
|
|
7
|
+
export default function Steps() {
|
|
8
|
+
return (
|
|
9
|
+
<ol pgs="steps">
|
|
10
|
+
{steps.map(([number, title, text]) => (
|
|
11
|
+
<li key={number} pgs="steps-step">
|
|
12
|
+
<span pgs="steps-step-circle">{number}</span>
|
|
13
|
+
<div pgs="steps-step-content">
|
|
14
|
+
<h3>{title}</h3>
|
|
15
|
+
<p>{text}</p>
|
|
16
|
+
</div>
|
|
17
|
+
</li>
|
|
18
|
+
))}
|
|
19
|
+
</ol>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export default function Table() {
|
|
2
|
+
return (
|
|
3
|
+
<div pgs="table">
|
|
4
|
+
<table>
|
|
5
|
+
<thead>
|
|
6
|
+
<tr>
|
|
7
|
+
<th>Nome</th>
|
|
8
|
+
<th>Stato</th>
|
|
9
|
+
<th>Data</th>
|
|
10
|
+
</tr>
|
|
11
|
+
</thead>
|
|
12
|
+
|
|
13
|
+
<tbody>
|
|
14
|
+
<tr>
|
|
15
|
+
<td>Elemento uno</td>
|
|
16
|
+
<td>Attivo</td>
|
|
17
|
+
<td>2026-01-01</td>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<td>Elemento due</td>
|
|
21
|
+
<td>Bozza</td>
|
|
22
|
+
<td>2026-02-01</td>
|
|
23
|
+
</tr>
|
|
24
|
+
</tbody>
|
|
25
|
+
</table>
|
|
26
|
+
</div>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default function Tooltip() {
|
|
2
|
+
return (
|
|
3
|
+
<span pgs="dropdown tooltip">
|
|
4
|
+
<button pgs="dropdown-button buttonMini tooltip-button" title="open-tooltip" type="button">
|
|
5
|
+
<i className="fa-solid fa-info"></i>
|
|
6
|
+
</button>
|
|
7
|
+
<div pgs="dropdown-content tooltip-content">
|
|
8
|
+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto hic, id consectetur facilis et, iste animi minima quidem praesentium omnis quod. Quidem provident ad cum aut reprehenderit laboriosam eum placeat.
|
|
9
|
+
</div>
|
|
10
|
+
</span>
|
|
11
|
+
);
|
|
12
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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."],
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
function ColumnCard({ title, text }) {
|
|
11
|
+
return (
|
|
12
|
+
<article pgs="card flexColumnTexts">
|
|
13
|
+
<strong>{title}</strong>
|
|
14
|
+
<p>{text}</p>
|
|
15
|
+
</article>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default function Flex() {
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<div pgs="container flexColumnTexts">
|
|
23
|
+
<strong>Sezione standard</strong>
|
|
24
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{[2, 3, 4, 6].map((count) => (
|
|
28
|
+
<div key={count} pgs={`flex-${count}`}>
|
|
29
|
+
{columns.slice(0, count).map(([title, text]) => (
|
|
30
|
+
<ColumnCard key={title} title={title} text={text} />
|
|
31
|
+
))}
|
|
32
|
+
</div>
|
|
33
|
+
))}
|
|
34
|
+
</>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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."],
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
function ColumnCard({ title, text }) {
|
|
11
|
+
return (
|
|
12
|
+
<article pgs="card flexColumnTexts">
|
|
13
|
+
<strong>{title}</strong>
|
|
14
|
+
<p>{text}</p>
|
|
15
|
+
</article>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default function Grid() {
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<div pgs="container flexColumnTexts">
|
|
23
|
+
<strong>Sezione standard</strong>
|
|
24
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{[2, 3, 4, 6].map((count) => (
|
|
28
|
+
<div key={count} pgs={`grid-${count}`}>
|
|
29
|
+
{columns.slice(0, count).map(([title, text]) => (
|
|
30
|
+
<ColumnCard key={title} title={title} text={text} />
|
|
31
|
+
))}
|
|
32
|
+
</div>
|
|
33
|
+
))}
|
|
34
|
+
</>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const contentText = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem dolore veniam nulla hic voluptatum harum illo voluptatem quos. Id quibusdam nemo, mollitia iusto quisquam tenetur doloremque corrupti natus nisi est sed consectetur deserunt? Fugiat consectetur iure aut id voluptate unde autem eius facilis dolorum? Eveniet, sit, excepturi iusto porro eos temporibus illum non ut sunt ex aut earum neque. Iure harum similique autem commodi ratione enim quisquam soluta rem, eius dolor officiis necessitatibus voluptatibus obcaecati vel sint iusto. Eligendi reiciendis aut error rem? Hic aliquid tenetur porro itaque quaerat excepturi consequatur veniam, et alias molestiae, eius odio quae maiores suscipit iure voluptatibus sed dolor facere ipsa quod libero necessitatibus, placeat natus. Doloribus esse nobis culpa ab ut dolorem id expedita nesciunt necessitatibus ipsam natus accusantium eius eveniet eum, distinctio quos modi perspiciatis earum sequi nostrum consequatur quibusdam? Blanditiis iusto possimus officia odio animi repudiandae? Repellendus autem ut soluta facere accusamus magni aut architecto cumque cupiditate. Nostrum officiis, tenetur consequuntur quaerat alias animi debitis? Quae quas placeat iure alias totam quaerat fugit recusandae sed, earum ipsa nihil molestiae quam odit itaque, odio asperiores, mollitia porro ratione tempora laboriosam. Incidunt aliquam nobis sunt ut molestiae nam animi placeat neque vero ratione? Eaque?";
|
|
2
|
+
|
|
3
|
+
function Aside({ side }) {
|
|
4
|
+
return (
|
|
5
|
+
<aside pgs={`pageShell-aside${side}`}>
|
|
6
|
+
<div pgs="flexColumnTexts">
|
|
7
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab modi ut sunt est illum accusantium dolores eum aut cum itaque.</p>
|
|
8
|
+
</div>
|
|
9
|
+
</aside>
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function MainContent() {
|
|
14
|
+
return (
|
|
15
|
+
<main pgs="pageShell-content">
|
|
16
|
+
<section pgs="flexColumnElements" id="sezione-uno">
|
|
17
|
+
<strong>Lorem ipsum</strong>
|
|
18
|
+
<p>{contentText}</p>
|
|
19
|
+
</section>
|
|
20
|
+
</main>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default function PageShell() {
|
|
25
|
+
return (
|
|
26
|
+
<>
|
|
27
|
+
<div pgs="pageShell">
|
|
28
|
+
<Aside side="Left" />
|
|
29
|
+
<MainContent />
|
|
30
|
+
<Aside side="Right" />
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div pgs="pageShell">
|
|
34
|
+
<Aside side="Left" />
|
|
35
|
+
<MainContent />
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div pgs="pageShell">
|
|
39
|
+
<MainContent />
|
|
40
|
+
<Aside side="Right" />
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div pgs="pageShell">
|
|
44
|
+
<MainContent />
|
|
45
|
+
</div>
|
|
46
|
+
</>
|
|
47
|
+
);
|
|
48
|
+
}
|