diff --git a/packages/app/src/app/(default)/declaration-accessibilite/page.tsx b/packages/app/src/app/(default)/declaration-accessibilite/page.tsx new file mode 100644 index 000000000..ae9ddee0a --- /dev/null +++ b/packages/app/src/app/(default)/declaration-accessibilite/page.tsx @@ -0,0 +1,93 @@ +import { Container, Grid, GridCol, Link } from "@design-system"; + +const title = "Déclaration d'accessibilité"; +export const metadata = { + title, + openGraph: { + title, + }, +}; + +const AccessibilityStatement = () => { + return ( +
+ + + +

{title}

+

+ La Fabrique numérique des ministères sociaux s’engage à rendre son service accessible, conformément à + l’article 47 de la loi n° 2005-102 du 11 février 2005. +

+

+ Cette déclaration d’accessibilité s’applique à Egapro ( + + https://egapro.travail.gouv.fr/ + + ) +

+

Etat de conformité

+

Egapro est non conforme avec le RGAA. Le site n’a encore pas été audité.

+

+ Un audit{" "} + + Ara + {" "} + a été réalisé sur 25 critères. +

+

Contenus non accessibles

+

Amélioration et contact

+

+ Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez contacter le responsable de + Egapro pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme. +

+

+ E-mail : index@travail.gouv.fr +
+ Nous essayons de répondre dans les 2 jours ouvrés. +

+

Voie de recours

+

+ Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un + défaut d’accessibilité qui vous empêche d’accéder à un contenu ou à un des services du portail et vous + n’avez pas obtenu de réponse satisfaisante. +

+

Vous pouvez :

+

+ Écrire un message au{" "} + + Défenseur des droits + +
+ Contacter{" "} + + le délégué du Défenseur des droits dans votre région + +
+ Envoyer un courrier par la poste (gratuit, ne pas mettre de timbre) :
+ Défenseur des droits +
+ Libre réponse 71120 75342 Paris CEDEX 07 +
+ Cette déclaration d’accessibilité a été créé le 24 avril 2024 grâce au{" "} + + Générateur de Déclaration d’Accessibilité de BetaGouv + + . +

+
+
+
+
+ ); +}; + +export default AccessibilityStatement; diff --git a/packages/app/src/app/(default)/index-egapro/declaration/augmentations-et-promotions/AugmentationsEtPromotionsForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/augmentations-et-promotions/AugmentationsEtPromotionsForm.tsx index 274effede..ce064537c 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/augmentations-et-promotions/AugmentationsEtPromotionsForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/augmentations-et-promotions/AugmentationsEtPromotionsForm.tsx @@ -184,10 +184,11 @@ export const AugmentationEtPromotionsForm = () => { return (
+

Les champs suivis d'une * sont obligatoires

{/* Needs to be outside ClientOnly to not be unregistered by RHF. Be careful! */} @@ -197,7 +198,7 @@ export const AugmentationEtPromotionsForm = () => { {estCalculable === "oui" && ( <> - label="Résultat final obtenu à l'indicateur en %" + label="Résultat final obtenu à l'indicateur en % *" name="résultat" hintText={"(il s'agit de l'écart absolu de taux d’augmentations, arrondi à la première décimale.)"} min={0} @@ -220,7 +221,7 @@ export const AugmentationEtPromotionsForm = () => { } }, }} - label="Résultat final obtenu à l'indicateur en nombre équivalent de salariés" + label="Résultat final obtenu à l'indicateur en nombre équivalent de salariés *" hintText={"(il s'agit de l'écart en nombre équivalent de salariés, arrondi à la première décimale.)"} state={errorsWhenCalculable["résultatEquivalentSalarié"] && "error"} stateRelatedMessage={errorsWhenCalculable["résultatEquivalentSalarié"]?.message || ""} diff --git a/packages/app/src/app/(default)/index-egapro/declaration/augmentations/AugmentationsForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/augmentations/AugmentationsForm.tsx index 45344c16c..6ef579374 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/augmentations/AugmentationsForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/augmentations/AugmentationsForm.tsx @@ -160,9 +160,10 @@ export const AugmentationsForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

}> @@ -194,7 +195,7 @@ export const AugmentationsForm = () => {
- label="Résultat final obtenu à l'indicateur en %" + label="Résultat final obtenu à l'indicateur en % *" name="résultat" min={0} hintText={ diff --git a/packages/app/src/app/(default)/index-egapro/declaration/conges-maternite/CongesMaterniteForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/conges-maternite/CongesMaterniteForm.tsx index cc727e829..a9a86544d 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/conges-maternite/CongesMaterniteForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/conges-maternite/CongesMaterniteForm.tsx @@ -124,8 +124,9 @@ export const CongesMaterniteForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

- + }> {estCalculable && ( @@ -137,7 +138,7 @@ export const CongesMaterniteForm = () => { ) : ( <> - label="Résultat final obtenu à l'indicateur en %" + label="Résultat final obtenu à l'indicateur en % *" name="résultat" min={0} max={100} diff --git a/packages/app/src/app/(default)/index-egapro/declaration/entreprise/EntrepriseUESForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/entreprise/EntrepriseUESForm.tsx index 2b10afe8f..0fa438061 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/entreprise/EntrepriseUESForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/entreprise/EntrepriseUESForm.tsx @@ -67,10 +67,11 @@ export const EntrepriseUESForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

{ }> ({ label, nativeInputProps: { diff --git "a/packages/app/src/app/(default)/index-egapro/declaration/hautes-remunerations/HautesR\303\251mun\303\251rationsForm.tsx" "b/packages/app/src/app/(default)/index-egapro/declaration/hautes-remunerations/HautesR\303\251mun\303\251rationsForm.tsx" index 505c4b844..2bb410cbf 100644 --- "a/packages/app/src/app/(default)/index-egapro/declaration/hautes-remunerations/HautesR\303\251mun\303\251rationsForm.tsx" +++ "b/packages/app/src/app/(default)/index-egapro/declaration/hautes-remunerations/HautesR\303\251mun\303\251rationsForm.tsx" @@ -114,11 +114,12 @@ export const HautesRémunérationsForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

}> <> { stateRelatedMessage={get(errors, "résultat")?.message || ""} /> - {résultat !== 5 && } + {résultat !== 5 && } {note !== undefined && isValid && ( <> diff --git a/packages/app/src/app/(default)/index-egapro/declaration/periode-reference/PeriodeReferenceForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/periode-reference/PeriodeReferenceForm.tsx index 5aead937e..d11a6406c 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/periode-reference/PeriodeReferenceForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/periode-reference/PeriodeReferenceForm.tsx @@ -132,9 +132,10 @@ export const PeriodeReferenceForm = () => { est l'année au titre de laquelle les indicateurs sont calculés. +

Les champs suivis d'une * sont obligatoires

@@ -142,7 +143,7 @@ export const PeriodeReferenceForm = () => { {périodeSuffisante === "oui" && ( <> { Sélectionner la fin de l'année civile { return ( +

Les champs suivis d'une * sont obligatoires

@@ -175,7 +176,7 @@ export const PromotionsForm = () => { {estCalculable === "oui" && ( <>

- Écarts de taux de promotions par CSP en % + Écarts de taux de promotions par CSP en % *

@@ -200,7 +201,7 @@ export const PromotionsForm = () => { {/* Don't forget that résultat can be undefined, for some reasons. */} {/* We must handle this case, because of shouldUnregister mode. */} - label="Résultat final obtenu à l'indicateur en %" + label="Résultat final obtenu à l'indicateur en % *" name="résultat" min={0} hintText={ diff --git a/packages/app/src/app/(default)/index-egapro/declaration/publication/PublicationForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/publication/PublicationForm.tsx index 5d3340ba3..bd11221db 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/publication/PublicationForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/publication/PublicationForm.tsx @@ -93,10 +93,11 @@ export const PublicationForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

}> { stateRelatedMessage={errors.date?.message} /> - + {choixSiteWeb === "oui" && ( { )} {choixSiteWeb === "non" && ( { name="planRelance" legend={ formData.entreprise?.type === "ues" - ? "Une ou plusieurs entreprises comprenant au moins 50 salariés au sein de l'UES a-t-elle bénéficié, depuis 2021, d'une aide prévue par la loi du 29 décembre 2020 de finances pour 2021 au titre de la mission « Plan de relance » ?" - : "Avez-vous bénéficié, depuis 2021, d'une aide prévue par la loi du 29 décembre 2020 de finances pour 2021 au titre de la mission « Plan de relance » ?" + ? "Une ou plusieurs entreprises comprenant au moins 50 salariés au sein de l'UES a-t-elle bénéficié, depuis 2021, d'une aide prévue par la loi du 29 décembre 2020 de finances pour 2021 au titre de la mission « Plan de relance » ? *" + : "Avez-vous bénéficié, depuis 2021, d'une aide prévue par la loi du 29 décembre 2020 de finances pour 2021 au titre de la mission « Plan de relance » ? *" } /> diff --git a/packages/app/src/app/(default)/index-egapro/declaration/remunerations-resultat/RemunerationResultatForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/remunerations-resultat/RemunerationResultatForm.tsx index b7fc24768..59dc83c1e 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/remunerations-resultat/RemunerationResultatForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/remunerations-resultat/RemunerationResultatForm.tsx @@ -100,10 +100,11 @@ export const RemunerationResultatForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

}> - label="Résultat final obtenu à l'indicateur en %" + label="Résultat final obtenu à l'indicateur en % *" name="résultat" min={0} hintText={ diff --git a/packages/app/src/app/(default)/index-egapro/declaration/remunerations/RemunerationForm.tsx b/packages/app/src/app/(default)/index-egapro/declaration/remunerations/RemunerationForm.tsx index 58513354f..7fa3fa7b3 100644 --- a/packages/app/src/app/(default)/index-egapro/declaration/remunerations/RemunerationForm.tsx +++ b/packages/app/src/app/(default)/index-egapro/declaration/remunerations/RemunerationForm.tsx @@ -179,8 +179,9 @@ export const RemunerationForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

- + }> {estCalculable === "non" && ( @@ -189,7 +190,7 @@ export const RemunerationForm = () => { options={[ { label: - "Je déclare avoir procédé au calcul de cet indicateur par catégorie socio-professionnelle, et confirme que l'indicateur n'est pas calculable.", + "Je déclare avoir procédé au calcul de cet indicateur par catégorie socio-professionnelle, et confirme que l'indicateur n'est pas calculable. *", nativeInputProps: register("déclarationCalculCSP"), }, ]} @@ -205,7 +206,7 @@ export const RemunerationForm = () => { {estCalculable === "oui" && ( <> { return ( +

Les champs suivis d'une * sont obligatoires

}> { {index !== undefined && index < 75 && ( <> { { return ( +

Les champs suivis d'une * sont obligatoires

first={{ formKey: "women", - label: "Nombre de femmes parmi les 10 plus hautes rémunérations*", + label: "Nombre de femmes parmi les 10 plus hautes rémunérations *", }} second={{ formKey: "men", - label: "Nombre d'hommes parmi les 10 plus hautes rémunérations*", + label: "Nombre d'hommes parmi les 10 plus hautes rémunérations *", }} options={{ max: 10, diff --git a/packages/app/src/app/(default)/mentions-legales/page.tsx b/packages/app/src/app/(default)/mentions-legales/page.tsx index 7fdff52d9..40c416ad6 100644 --- a/packages/app/src/app/(default)/mentions-legales/page.tsx +++ b/packages/app/src/app/(default)/mentions-legales/page.tsx @@ -16,7 +16,7 @@ const LegalNotice = () => {

{title}

Éditeur de la plateforme

-

Index Egapro est édité par la Fabrique Numérique des Ministères sociaux située :

+

Egapro est édité par la Fabrique Numérique des Ministères sociaux située :

Tour Mirabeau
diff --git a/packages/app/src/app/(default)/politique-de-confidentialite-v2/page.tsx b/packages/app/src/app/(default)/politique-de-confidentialite-v2/page.tsx new file mode 100644 index 000000000..0a43b17f6 --- /dev/null +++ b/packages/app/src/app/(default)/politique-de-confidentialite-v2/page.tsx @@ -0,0 +1,220 @@ +import { Container, Grid, GridCol } from "@design-system"; +import Link from "next/link"; + +import { FooterConsentManagementItem } from "../../consentManagement"; + +const title = "Politique de confidentialité"; + +export const metadata = { + title, + openGraph: { + title, + }, +}; + +const PrivacyPolicy = () => { + return ( +

+ + + +

{title}

+

Qui est responsable d’Index Egapro ?

+

+ La plateforme Egapro est sous la responsabilité de la Direction générale du travail, représentée par + Monsieur Pierre RAMAIN, directeur général du travail. Egapro permet aux entreprises de déclarer aux + services du ministre chargé du travail leurs résultats de l’index de l’égalité professionnelle entre les + femmes et les hommes et, si elles sont assujetties, de la représentation équilibrée entre les femmes et + les hommes dans les postes de direction. +

+

Quelles sont les données à caractère personnel que nous traitons ?

+

Index Egapro traite les données à caractère personnel suivantes :

+
    +
  • Nom, prénom, adresse e-mail et numéro de téléphone professionnel des utilisateurs.
  • +
+

Pourquoi traitons-nous des données à caractère personnel ?

+

Index Egapro traite des données à caractère personnel pour :

+
    +
  • Déclarer les résultats de l’index de l’égalité professionnelle entre les femmes et les hommes;
  • +
  • + Déclarer les écarts éventuels de représentation entre les femmes et les hommes parmi les cadres + dirigeants et les membres des instances dirigeantes. +
  • +
+

Qu’est-ce qui nous autorise à traiter des données à caractère personnel ?

+

+ Egapro traite des données à caractère personnel en se basant sur l’exécution d’une mission d’intérêt + public ou relevant de l’exercice de l’autorité publique dont est investi le responsable de traitement + conformément à l’article 6-1 e) du RGPD. +

+

+ Cette mission d’intérêt public est posée par l’arrêté du 17 août 2022 modifié définissant les modèles de + présentation et les modalités de transmission à l’administration des indicateurs et du niveau de résultat + en matière d’écart de rémunération entre les femmes et les hommes dans l’entreprise ainsi que par l’arrêté + du 27 octobre 2022 définissant les modalités de transmission à l’administration des écarts éventuels de + représentation entre les femmes et les hommes dans l’entreprise. +

+

Pendant combien de temps les données à caractère personnel sont conservées ?

+ + + + + + + + + + + + + +
Catégorie de donnéesDurée de conservation
Données des utilisateurs des Index Egapro + À compter de la suppression par l’utilisateur ou 2 ans à compter de la dernière déclaration ou de + l’inactivité du compte +
+

Quels sont vos droits ?

+

Vous disposez :

+
    +
  • D’un droit d’information et d’un droit d’accès à vos données ;
  • +
  • D’un droit de rectification ;
  • +
  • D’un droit d’opposition ;
  • +
  • D’un droit à la limitation du traitement.
  • +
+

+ Pour les exercer, contactez-nous à :{" "} + index@travail.gouv.fr. +

+

+ Puisque ce sont des droits personnels, nous ne traiterons votre demande que si nous sommes en mesure de + vous identifier. Ainsi, nous pourrons être amenés à vous demander la communication d’une preuve de votre + identité. +

+

+ Pour vous aider dans votre démarche, vous trouverez un modèle de courrier élaboré par la CNIL ici :{" "} + + https://www.cnil.fr/fr/modele/courrier/exercer-son-droit-dacces + +

+

+ Nous nous engageons à vous répondre dans un délai raisonnable qui ne saurait dépasser 1 mois à compter de + la réception de votre demande. +

+

Qui va avoir accès aux données ?

+

+ Les accès aux données sont strictement encadrés et juridiquement justifiés. Les personnes suivantes vont + avoir accès aux données : +

    +
  • Les membres de l’équipe d’Index Egapro;
  • +
  • Les agents autorisés au sein de la Direction générale du travail.
  • +
+

+

Qui nous aide à traiter vos données ?

+

+ Certaines données sont envoyées à des sous-traitants. Nous nous sommes assurés qu’ils respectent les + dispositions du RGPD et qu’ils apportent des garanties suffisantes en matière de sécurité et de + confidentialité. +

+ + + + + + + + + + + + + + + + + +
Sous-traitantTraitement réaliséPays destinataireGaranties
OVHHébergementFrance + + https://storage.gra.cloud.ovh.net/v1 +
+ /AUTH_325716a587c64897acbef9a4a4726e38 +
+ /contracts/9e74492-OVH_Data_Protection_Agreement-FR-6.0.pdf + +
+

Cookies

+

+ Un cookie est un fichier déposé sur votre terminal lors de la visite d’un site. Il a pour but de collecter + des informations relatives à votre navigation et de vous adresser des services adaptés à votre terminal + (ordinateur, mobile ou tablette). +

+

+ En application de l’article 5(3) de la directive 2002/58/CE modifiée concernant le traitement des données + à caractère personnel et la protection de la vie privée dans le secteur des communications électroniques, + transposée à l’article 82 de la loi n° 78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers et + aux libertés, les traceurs ou cookies suivent deux régimes distincts. +

+

+ Les cookies strictement nécessaires au service ou ayant pour finalité exclusive de faciliter la + communication par voie électronique sont dispensés de consentement préalable au titre de l’article 82 de + la loi n° 78-17 du 6 janvier 1978. +

+

+ Les cookies n’étant pas strictement nécessaires au service ou n’ayant pas pour finalité exclusive de + faciliter la communication par voie électronique doivent être consenti par l’utilisateur. +

+

+ Ce consentement de la personne concernée pour une ou plusieurs finalités spécifiques constitue une base + légale au sens du RGPD et doit être entendu au sens de l'article 6-1 a) du RGPD. +

+

+ Index Egapro utilise notamment la solution de mesure d’audience « Matomo » paramétrée en mode + « exempté » et ne nécessitant pas le recueil de votre consentement conformément aux + recommandations de la CNIL. La durée de vie du cookie n’excède pas 13 mois. +

+

+ Vous êtes suivis de manière anonyme. Décochez la case pour ne plus être suivis même anonymement. :{" "} + +

+

+ À tout moment, vous pouvez refuser l’utilisation des cookies et désactiver le dépôt sur votre ordinateur + en utilisant la fonction dédiée de votre navigateur (fonction disponible notamment sur Microsoft Internet + Explorer 11, Google Chrome, Mozilla Firefox, Apple Safari et Opera). +

+

+ Pour aller plus loin, vous pouvez consulter les fiches proposées par la Commission Nationale de + l'Informatique et des Libertés (CNIL) : +

+
    +
  • + + Cookies & traceurs : que dit la loi ? + +
  • +
  • + + Cookies : les outils pour les maîtriser + +
  • +
+ + Version du 18/12/2023 + +
+
+
+
+ ); +}; + +export default PrivacyPolicy; diff --git a/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-cadres/Form.tsx b/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-cadres/Form.tsx index 9e5229ef6..181dd70b3 100644 --- a/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-cadres/Form.tsx +++ b/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-cadres/Form.tsx @@ -74,9 +74,10 @@ export const EcartsCadresForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

{ - first={{ formKey: "executiveWomenPercent", label: "Pourcentage de femmes parmi les cadres dirigeants" }} - second={{ formKey: "executiveMenPercent", label: "Pourcentage d'hommes parmi les cadres dirigeants" }} + first={{ formKey: "executiveWomenPercent", label: "Pourcentage de femmes parmi les cadres dirigeants *" }} + second={{ formKey: "executiveMenPercent", label: "Pourcentage d'hommes parmi les cadres dirigeants *" }} options={{ disabled: isComputable === false, max: 100, diff --git a/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-membres/Form.tsx b/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-membres/Form.tsx index f5f6f6b0b..94d79bc4e 100644 --- a/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-membres/Form.tsx +++ b/packages/app/src/app/(default)/representation-equilibree/(funnel)/ecarts-membres/Form.tsx @@ -77,9 +77,10 @@ export const EcartsMembresForm = () => { return ( +

Les champs suivis d'une * sont obligatoires

{ first={{ formKey: "memberWomenPercent", - label: "Pourcentage de femmes parmi les membres des instances dirigeantes", + label: "Pourcentage de femmes parmi les membres des instances dirigeantes *", }} second={{ formKey: "memberMenPercent", - label: "Pourcentage d'hommes parmi les membres des instances dirigeantes", + label: "Pourcentage d'hommes parmi les membres des instances dirigeantes *", }} options={{ disabled: isComputable === false, diff --git a/packages/app/src/app/(default)/representation-equilibree/(funnel)/periode-reference/Form.tsx b/packages/app/src/app/(default)/representation-equilibree/(funnel)/periode-reference/Form.tsx index 24fc13fb7..7e4743982 100644 --- a/packages/app/src/app/(default)/representation-equilibree/(funnel)/periode-reference/Form.tsx +++ b/packages/app/src/app/(default)/representation-equilibree/(funnel)/periode-reference/Form.tsx @@ -61,6 +61,7 @@ export const PeriodeReferenceForm = () => { return ( <> +

Les champs suivis d'une * sont obligatoires

{hydrated ? funnel?.year : } @@ -70,7 +71,7 @@ export const PeriodeReferenceForm = () => { { return ( +

Les champs suivis d'une * sont obligatoires

{ /> { ]} /> { /> ( }} contentDescription={`Index Egapro et Représentation équilibrée sont développés et maintenus par les équipes de la fabrique numérique des ministères sociaux.`} bottomItems={[ + { + text: "Déclaration d'accesibilité", + linkProps: { href: "/declaration-accessibilite" }, + }, { text: "CGU", linkProps: { href: "/cgu" }, }, - , + { + text: "Politique de confidentialité", + linkProps: { href: "/politique-de-confidentialite-v2" }, + }, { ...headerFooterDisplayItem, iconId: "fr-icon-theme-fill", diff --git a/packages/app/src/components/RHF/MotifNC.tsx b/packages/app/src/components/RHF/MotifNC.tsx index c825aba65..941079d0d 100644 --- a/packages/app/src/components/RHF/MotifNC.tsx +++ b/packages/app/src/components/RHF/MotifNC.tsx @@ -29,7 +29,7 @@ export const MotifNC = ({ stepName }: PropsWithChildren) => { return ( <>