@dsfrkit/react 0.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.
- package/README.md +115 -0
- package/dist/artwork-B3QGyilb.d.mts +156 -0
- package/dist/artwork-B3QGyilb.d.ts +156 -0
- package/dist/artwork-CW2iQ_23.d.mts +171 -0
- package/dist/artwork-CW2iQ_23.d.ts +171 -0
- package/dist/chunk-23I7BDV6.mjs +39 -0
- package/dist/chunk-24DYKVTR.mjs +144 -0
- package/dist/chunk-2BB27XUW.mjs +65 -0
- package/dist/chunk-2BJMVHYD.mjs +137 -0
- package/dist/chunk-2EW2GCGT.mjs +137 -0
- package/dist/chunk-2HZIFFGX.mjs +144 -0
- package/dist/chunk-2LHWW7HN.mjs +114 -0
- package/dist/chunk-2LXQNL5D.mjs +113 -0
- package/dist/chunk-2NH3AUHW.mjs +79 -0
- package/dist/chunk-2PJ4EU56.mjs +203 -0
- package/dist/chunk-2QH4KMWT.mjs +8 -0
- package/dist/chunk-2RNER4KC.mjs +144 -0
- package/dist/chunk-2U3S73BF.mjs +8 -0
- package/dist/chunk-2V722J6M.mjs +8 -0
- package/dist/chunk-37CO3FHD.mjs +125 -0
- package/dist/chunk-3BTPUF5K.mjs +144 -0
- package/dist/chunk-3GBCT2U3.mjs +156 -0
- package/dist/chunk-3HHH4GMH.mjs +110 -0
- package/dist/chunk-3IMYMASJ.mjs +194 -0
- package/dist/chunk-3J555ZVB.mjs +122 -0
- package/dist/chunk-3JFXRCOL.mjs +1 -0
- package/dist/chunk-3JUY36HV.mjs +127 -0
- package/dist/chunk-3THML6BJ.mjs +22 -0
- package/dist/chunk-3VPGNSKX.mjs +834 -0
- package/dist/chunk-3YSDF6VX.mjs +221 -0
- package/dist/chunk-43XOENR2.mjs +53 -0
- package/dist/chunk-43ZFDH2Q.mjs +122 -0
- package/dist/chunk-44UGQHBU.mjs +166 -0
- package/dist/chunk-474LZSO7.mjs +122 -0
- package/dist/chunk-4KCVV4LR.mjs +156 -0
- package/dist/chunk-4LGWCPN4.mjs +92 -0
- package/dist/chunk-4LVHKND5.mjs +129 -0
- package/dist/chunk-4NU2XZIG.mjs +137 -0
- package/dist/chunk-4PA73RZ4.mjs +221 -0
- package/dist/chunk-4UBXW6O2.mjs +63 -0
- package/dist/chunk-4ZFM6M7C.mjs +127 -0
- package/dist/chunk-52BJN7DC.mjs +504 -0
- package/dist/chunk-53M2BTB5.mjs +22 -0
- package/dist/chunk-552MR22F.mjs +93 -0
- package/dist/chunk-57DNFR54.mjs +92 -0
- package/dist/chunk-5FHDLYYI.mjs +200 -0
- package/dist/chunk-5I2Y5M2K.mjs +514 -0
- package/dist/chunk-5IJLRY6P.mjs +504 -0
- package/dist/chunk-5IQADW3H.mjs +82 -0
- package/dist/chunk-5MEHDSPX.mjs +137 -0
- package/dist/chunk-5OYV672H.mjs +122 -0
- package/dist/chunk-5TQ2XLQH.mjs +91 -0
- package/dist/chunk-5WNMRXFG.mjs +137 -0
- package/dist/chunk-5ZBE6TNA.mjs +137 -0
- package/dist/chunk-5ZNBGCHW.mjs +105 -0
- package/dist/chunk-6AVQRAR3.mjs +729 -0
- package/dist/chunk-6BGCPIW7.mjs +127 -0
- package/dist/chunk-6BOEMNY4.mjs +94 -0
- package/dist/chunk-6FCPWBF2.mjs +137 -0
- package/dist/chunk-6HDE47EI.mjs +141 -0
- package/dist/chunk-6OSSG7EX.mjs +291 -0
- package/dist/chunk-6U5FC3RG.mjs +85 -0
- package/dist/chunk-6XZ4GBJ6.mjs +83 -0
- package/dist/chunk-6YGKYFPL.mjs +137 -0
- package/dist/chunk-6Z77GLN6.mjs +72 -0
- package/dist/chunk-6ZP4SKO6.mjs +144 -0
- package/dist/chunk-6ZWOOE2S.mjs +60 -0
- package/dist/chunk-762QFXXR.mjs +141 -0
- package/dist/chunk-76L74JUY.mjs +115 -0
- package/dist/chunk-76VC5YPU.mjs +113 -0
- package/dist/chunk-7BWEILU6.mjs +95 -0
- package/dist/chunk-7DGUHXUB.mjs +156 -0
- package/dist/chunk-7DTPT7EQ.mjs +220 -0
- package/dist/chunk-7FDDD5IV.mjs +203 -0
- package/dist/chunk-7H6WDKNO.mjs +141 -0
- package/dist/chunk-7KDRU2XY.mjs +145 -0
- package/dist/chunk-7QZTUZPL.mjs +137 -0
- package/dist/chunk-7REZ747L.mjs +122 -0
- package/dist/chunk-7RV4WZVM.mjs +203 -0
- package/dist/chunk-7VT2ZJBR.mjs +122 -0
- package/dist/chunk-7XPLI6X6.mjs +129 -0
- package/dist/chunk-7XYNKZWU.mjs +32 -0
- package/dist/chunk-A5OCX7PW.mjs +141 -0
- package/dist/chunk-A734PEYB.mjs +20 -0
- package/dist/chunk-ACBEJHSN.mjs +89 -0
- package/dist/chunk-ADRORWCA.mjs +95 -0
- package/dist/chunk-AGELEW5Q.mjs +121 -0
- package/dist/chunk-AGFBCPPH.mjs +78 -0
- package/dist/chunk-AHDHVUSU.mjs +105 -0
- package/dist/chunk-AKXX5JM5.mjs +122 -0
- package/dist/chunk-AM2FMPVS.mjs +299 -0
- package/dist/chunk-AMLQ6RI2.mjs +72 -0
- package/dist/chunk-ARTXTVIX.mjs +156 -0
- package/dist/chunk-ARZVIKN2.mjs +114 -0
- package/dist/chunk-ATLMREKL.mjs +117 -0
- package/dist/chunk-AVN6NSOQ.mjs +504 -0
- package/dist/chunk-AWOTVASU.mjs +82 -0
- package/dist/chunk-AZWGY2SR.mjs +101 -0
- package/dist/chunk-B5T4EO6N.mjs +122 -0
- package/dist/chunk-BDPEOSAY.mjs +80 -0
- package/dist/chunk-BHUY7ML7.mjs +95 -0
- package/dist/chunk-BMGFO5X6.mjs +127 -0
- package/dist/chunk-BRDUOWC4.mjs +385 -0
- package/dist/chunk-BRX2NAAS.mjs +52 -0
- package/dist/chunk-BTFAMY6E.mjs +65 -0
- package/dist/chunk-C4BBQTZ3.mjs +20 -0
- package/dist/chunk-CEFGBZXZ.mjs +165 -0
- package/dist/chunk-CF6SPRDA.mjs +56 -0
- package/dist/chunk-CIOYPW7H.mjs +137 -0
- package/dist/chunk-CVGHZFZK.mjs +117 -0
- package/dist/chunk-D4XAI2WD.mjs +65 -0
- package/dist/chunk-DAECVI5O.mjs +113 -0
- package/dist/chunk-DD7O3SCJ.mjs +144 -0
- package/dist/chunk-DDQTQ7Z2.mjs +172 -0
- package/dist/chunk-DGYJH7JG.mjs +259 -0
- package/dist/chunk-DLRDFCPW.mjs +60 -0
- package/dist/chunk-DN67LFQR.mjs +81 -0
- package/dist/chunk-DOXA63UH.mjs +504 -0
- package/dist/chunk-DSU6MKPW.mjs +137 -0
- package/dist/chunk-DTK5B22N.mjs +65 -0
- package/dist/chunk-DTOWE2MA.mjs +89 -0
- package/dist/chunk-DUXLKXFH.mjs +91 -0
- package/dist/chunk-DW62DTCF.mjs +87 -0
- package/dist/chunk-DWGELT6B.mjs +21 -0
- package/dist/chunk-DX4476KH.mjs +831 -0
- package/dist/chunk-E63ZEQE4.mjs +732 -0
- package/dist/chunk-EA3TIJMP.mjs +196 -0
- package/dist/chunk-EA5VCJ4G.mjs +85 -0
- package/dist/chunk-EAZ6NHW3.mjs +141 -0
- package/dist/chunk-EBDDPXU3.mjs +122 -0
- package/dist/chunk-ELEGVKVJ.mjs +122 -0
- package/dist/chunk-EX3RF7CE.mjs +294 -0
- package/dist/chunk-EXL24QAL.mjs +95 -0
- package/dist/chunk-F3W67E3Q.mjs +22 -0
- package/dist/chunk-F4A4IDZT.mjs +116 -0
- package/dist/chunk-FA7MQI6D.mjs +36 -0
- package/dist/chunk-FDFTH2OA.mjs +90 -0
- package/dist/chunk-FDRHBZZC.mjs +144 -0
- package/dist/chunk-FG3S54WT.mjs +211 -0
- package/dist/chunk-FI3PDDER.mjs +122 -0
- package/dist/chunk-FIXSMDQ7.mjs +141 -0
- package/dist/chunk-FK6JIEEN.mjs +516 -0
- package/dist/chunk-FL5D63D7.mjs +71 -0
- package/dist/chunk-FMWN44M7.mjs +92 -0
- package/dist/chunk-FNJYYQWC.mjs +60 -0
- package/dist/chunk-FNW7PJBZ.mjs +64 -0
- package/dist/chunk-FNWRRTCO.mjs +39 -0
- package/dist/chunk-FW4K4W3K.mjs +141 -0
- package/dist/chunk-GERPY3SW.mjs +63 -0
- package/dist/chunk-GKDVJ2TL.mjs +95 -0
- package/dist/chunk-GLRU4LYS.mjs +504 -0
- package/dist/chunk-GVW4A5MT.mjs +60 -0
- package/dist/chunk-GXJ5KSWO.mjs +165 -0
- package/dist/chunk-GZGPV2GH.mjs +122 -0
- package/dist/chunk-H3MN7LXP.mjs +36 -0
- package/dist/chunk-H7FFO2UX.mjs +121 -0
- package/dist/chunk-H7PNKXKX.mjs +56 -0
- package/dist/chunk-HAAWMTFK.mjs +98 -0
- package/dist/chunk-HFWOG3A4.mjs +137 -0
- package/dist/chunk-HGZHZHVX.mjs +47 -0
- package/dist/chunk-HP6JAQYJ.mjs +94 -0
- package/dist/chunk-HU4E64GQ.mjs +71 -0
- package/dist/chunk-HVKU5XVM.mjs +53 -0
- package/dist/chunk-HXQU5KQU.mjs +95 -0
- package/dist/chunk-IFYYNQ45.mjs +58 -0
- package/dist/chunk-IHMJCY2Z.mjs +87 -0
- package/dist/chunk-IHWNEZFG.mjs +36 -0
- package/dist/chunk-IM6BEVG6.mjs +71 -0
- package/dist/chunk-INM7YQKC.mjs +127 -0
- package/dist/chunk-IOD6W4YR.mjs +127 -0
- package/dist/chunk-IRDSRZ6X.mjs +62 -0
- package/dist/chunk-ITVUL6I2.mjs +98 -0
- package/dist/chunk-JAJOT3LV.mjs +87 -0
- package/dist/chunk-JAWTBRNS.mjs +122 -0
- package/dist/chunk-JR35S45U.mjs +22 -0
- package/dist/chunk-JWP5ZC5R.mjs +122 -0
- package/dist/chunk-JXBXEIER.mjs +126 -0
- package/dist/chunk-KCTGBTKI.mjs +145 -0
- package/dist/chunk-KEVX5SBT.mjs +221 -0
- package/dist/chunk-KFCM7PTR.mjs +98 -0
- package/dist/chunk-KIIWOL5Y.mjs +144 -0
- package/dist/chunk-KJ22LZMS.mjs +122 -0
- package/dist/chunk-KLJX3KQD.mjs +291 -0
- package/dist/chunk-KLMBFT3I.mjs +137 -0
- package/dist/chunk-KQPVSMIE.mjs +119 -0
- package/dist/chunk-KSK2RMP2.mjs +91 -0
- package/dist/chunk-KVVAUT3G.mjs +104 -0
- package/dist/chunk-KYKGI5BT.mjs +29 -0
- package/dist/chunk-L56KCHUI.mjs +116 -0
- package/dist/chunk-L65SLADH.mjs +137 -0
- package/dist/chunk-LASIEVVD.mjs +185 -0
- package/dist/chunk-LCTUVPNY.mjs +297 -0
- package/dist/chunk-LNHBVSNL.mjs +60 -0
- package/dist/chunk-LO5DFSJW.mjs +145 -0
- package/dist/chunk-LZRZUFF7.mjs +145 -0
- package/dist/chunk-M2LTIUBU.mjs +122 -0
- package/dist/chunk-M3KPXPDL.mjs +29 -0
- package/dist/chunk-M4PKDGE6.mjs +84 -0
- package/dist/chunk-M5SSDTTI.mjs +144 -0
- package/dist/chunk-MEJPZHAU.mjs +137 -0
- package/dist/chunk-ML7LO7IA.mjs +117 -0
- package/dist/chunk-MMILCSIS.mjs +228 -0
- package/dist/chunk-MNRZGIJQ.mjs +71 -0
- package/dist/chunk-MR6L2TFX.mjs +108 -0
- package/dist/chunk-MSNX3AR7.mjs +77 -0
- package/dist/chunk-MTLKC5UG.mjs +52 -0
- package/dist/chunk-MVEJMLQV.mjs +121 -0
- package/dist/chunk-MXMPDB4C.mjs +115 -0
- package/dist/chunk-N4RS42JQ.mjs +95 -0
- package/dist/chunk-N57TKKRF.mjs +156 -0
- package/dist/chunk-NF7PDBLJ.mjs +137 -0
- package/dist/chunk-NFEGQZI6.mjs +137 -0
- package/dist/chunk-NFXJSDUN.mjs +141 -0
- package/dist/chunk-NIWPLXZV.mjs +156 -0
- package/dist/chunk-NLA4YXGL.mjs +514 -0
- package/dist/chunk-NMLAW5NT.mjs +122 -0
- package/dist/chunk-NR66XXLN.mjs +156 -0
- package/dist/chunk-NRMIWRV6.mjs +297 -0
- package/dist/chunk-NWFMBDRM.mjs +24 -0
- package/dist/chunk-NXDYVTFV.mjs +122 -0
- package/dist/chunk-O42L54HQ.mjs +64 -0
- package/dist/chunk-O6DX3UFY.mjs +144 -0
- package/dist/chunk-O6H6FK6Y.mjs +137 -0
- package/dist/chunk-OD2MYXSX.mjs +117 -0
- package/dist/chunk-OHDAB5RA.mjs +514 -0
- package/dist/chunk-OIVUFVD4.mjs +122 -0
- package/dist/chunk-OKNSXEYQ.mjs +23 -0
- package/dist/chunk-OODDZ36D.mjs +221 -0
- package/dist/chunk-OPSBOV67.mjs +103 -0
- package/dist/chunk-OR2S4A6H.mjs +95 -0
- package/dist/chunk-OSLWGGF7.mjs +206 -0
- package/dist/chunk-OTBJ3BDC.mjs +137 -0
- package/dist/chunk-OZ37V2CL.mjs +116 -0
- package/dist/chunk-OZVAPU5J.mjs +127 -0
- package/dist/chunk-P2PN6HBO.mjs +95 -0
- package/dist/chunk-P3RTX23Z.mjs +133 -0
- package/dist/chunk-P5JZQIOK.mjs +103 -0
- package/dist/chunk-P7R26T3Z.mjs +145 -0
- package/dist/chunk-PGTGRJXX.mjs +122 -0
- package/dist/chunk-POBPYPUF.mjs +112 -0
- package/dist/chunk-PWUDSGHY.mjs +503 -0
- package/dist/chunk-PYQP4S3P.mjs +121 -0
- package/dist/chunk-Q4X44C4L.mjs +144 -0
- package/dist/chunk-QADKEWBW.mjs +91 -0
- package/dist/chunk-QEJXAPVP.mjs +193 -0
- package/dist/chunk-QEXXBZLP.mjs +137 -0
- package/dist/chunk-QFDUI4JF.mjs +137 -0
- package/dist/chunk-QIRIOLSQ.mjs +36 -0
- package/dist/chunk-QKZKXMDP.mjs +116 -0
- package/dist/chunk-QM44OKQB.mjs +110 -0
- package/dist/chunk-QUDEY3ZC.mjs +184 -0
- package/dist/chunk-QXBXBOPT.mjs +14 -0
- package/dist/chunk-R3HLKKGQ.mjs +200 -0
- package/dist/chunk-R7Q3PWPD.mjs +138 -0
- package/dist/chunk-RE55YFSX.mjs +70 -0
- package/dist/chunk-RH2JCZ3S.mjs +144 -0
- package/dist/chunk-RIHKQMJZ.mjs +71 -0
- package/dist/chunk-RLESRYZ7.mjs +141 -0
- package/dist/chunk-RN7K57U3.mjs +108 -0
- package/dist/chunk-RPZ6KAGN.mjs +156 -0
- package/dist/chunk-RSK73346.mjs +507 -0
- package/dist/chunk-RSYSJQNC.mjs +156 -0
- package/dist/chunk-RVYMEMGV.mjs +141 -0
- package/dist/chunk-RWQEGPN3.mjs +47 -0
- package/dist/chunk-RXUR5LHG.mjs +221 -0
- package/dist/chunk-RZCB3IFV.mjs +151 -0
- package/dist/chunk-RZJMZDH6.mjs +24 -0
- package/dist/chunk-S6BMBKPF.mjs +108 -0
- package/dist/chunk-S6BOOCIS.mjs +82 -0
- package/dist/chunk-S72JYZ34.mjs +205 -0
- package/dist/chunk-SAMWUGZH.mjs +200 -0
- package/dist/chunk-SF72OO5J.mjs +141 -0
- package/dist/chunk-SGES2MH4.mjs +141 -0
- package/dist/chunk-SH42XLB3.mjs +126 -0
- package/dist/chunk-SHZX3OGO.mjs +89 -0
- package/dist/chunk-SJLOQ3VX.mjs +113 -0
- package/dist/chunk-SJSM5PK5.mjs +110 -0
- package/dist/chunk-SUCVL4AR.mjs +127 -0
- package/dist/chunk-SZOFVBTZ.mjs +9 -0
- package/dist/chunk-SZPASZJ7.mjs +137 -0
- package/dist/chunk-T26S5SRN.mjs +52 -0
- package/dist/chunk-TAPPN5PM.mjs +72 -0
- package/dist/chunk-TCLGXTVU.mjs +221 -0
- package/dist/chunk-TFWWQZZK.mjs +89 -0
- package/dist/chunk-TGMDRDFD.mjs +127 -0
- package/dist/chunk-THEZTSDO.mjs +122 -0
- package/dist/chunk-TNHL4DWX.mjs +116 -0
- package/dist/chunk-TNKFYE4G.mjs +30 -0
- package/dist/chunk-TR24H7UQ.mjs +95 -0
- package/dist/chunk-TTMH3FVZ.mjs +119 -0
- package/dist/chunk-TTQCH2X2.mjs +113 -0
- package/dist/chunk-TXZDAPDU.mjs +129 -0
- package/dist/chunk-TY4VNBLX.mjs +137 -0
- package/dist/chunk-U3P6M5T4.mjs +127 -0
- package/dist/chunk-U6OTBZMO.mjs +507 -0
- package/dist/chunk-UB6RKUH5.mjs +89 -0
- package/dist/chunk-UDUTTGR5.mjs +89 -0
- package/dist/chunk-UENEQHEN.mjs +506 -0
- package/dist/chunk-UGGMZF3C.mjs +87 -0
- package/dist/chunk-UMB7ZMKX.mjs +122 -0
- package/dist/chunk-UNL4F3FH.mjs +122 -0
- package/dist/chunk-UOP3WPZG.mjs +60 -0
- package/dist/chunk-UPBRQJAU.mjs +512 -0
- package/dist/chunk-UPPVJWBO.mjs +116 -0
- package/dist/chunk-UYFHSIC7.mjs +81 -0
- package/dist/chunk-UZJQAAOZ.mjs +108 -0
- package/dist/chunk-V2JDJALG.mjs +125 -0
- package/dist/chunk-V2YC7EE6.mjs +122 -0
- package/dist/chunk-V3UXNKVL.mjs +122 -0
- package/dist/chunk-V5FP5GDQ.mjs +95 -0
- package/dist/chunk-VCHYQYFB.mjs +503 -0
- package/dist/chunk-VJEJD4DF.mjs +52 -0
- package/dist/chunk-VL4PZ5RI.mjs +113 -0
- package/dist/chunk-VNGGNO3R.mjs +32 -0
- package/dist/chunk-VNWV6LZP.mjs +38 -0
- package/dist/chunk-VOQEOCHD.mjs +511 -0
- package/dist/chunk-VW33ORR4.mjs +301 -0
- package/dist/chunk-VZ6VFS3D.mjs +109 -0
- package/dist/chunk-W3SECUBG.mjs +14 -0
- package/dist/chunk-W5OZFHOX.mjs +193 -0
- package/dist/chunk-WCSWQVFA.mjs +96 -0
- package/dist/chunk-WELBZQP2.mjs +137 -0
- package/dist/chunk-WGJWOF4K.mjs +122 -0
- package/dist/chunk-WJUBYR25.mjs +122 -0
- package/dist/chunk-WKSLZG4X.mjs +122 -0
- package/dist/chunk-WO4BCKRI.mjs +145 -0
- package/dist/chunk-WRJ47AVE.mjs +136 -0
- package/dist/chunk-WWAEK25T.mjs +92 -0
- package/dist/chunk-X3N6PDZV.mjs +71 -0
- package/dist/chunk-X437NODC.mjs +122 -0
- package/dist/chunk-X4FBB2TI.mjs +32 -0
- package/dist/chunk-XAJVDNFJ.mjs +119 -0
- package/dist/chunk-XGIDLCZI.mjs +137 -0
- package/dist/chunk-XGPUTXJT.mjs +122 -0
- package/dist/chunk-XHSCOABH.mjs +138 -0
- package/dist/chunk-XRM6FF22.mjs +61 -0
- package/dist/chunk-XTG2CB35.mjs +122 -0
- package/dist/chunk-XX22JBNI.mjs +139 -0
- package/dist/chunk-Y2W5252F.mjs +515 -0
- package/dist/chunk-Y3UMAK4V.mjs +141 -0
- package/dist/chunk-Y4M4BHVP.mjs +106 -0
- package/dist/chunk-Y5TUAI6V.mjs +127 -0
- package/dist/chunk-Y6F7EJOV.mjs +129 -0
- package/dist/chunk-YCITYGTH.mjs +20 -0
- package/dist/chunk-YD3HHOXQ.mjs +120 -0
- package/dist/chunk-YE3IUCBS.mjs +81 -0
- package/dist/chunk-YG2I4KKR.mjs +156 -0
- package/dist/chunk-YQGPAXSD.mjs +24 -0
- package/dist/chunk-YSAEDU4W.mjs +137 -0
- package/dist/chunk-YSZMXNWH.mjs +30 -0
- package/dist/chunk-YW3ZBLND.mjs +8 -0
- package/dist/chunk-YZC2FQVP.mjs +78 -0
- package/dist/chunk-Z3MPWBBS.mjs +109 -0
- package/dist/chunk-Z3NBRL3F.mjs +108 -0
- package/dist/chunk-ZF5BUSKM.mjs +122 -0
- package/dist/chunk-ZF5CW4JH.mjs +91 -0
- package/dist/chunk-ZFUAZYLA.mjs +20 -0
- package/dist/chunk-ZJ7EMTGD.mjs +83 -0
- package/dist/chunk-ZPBOEUI7.mjs +56 -0
- package/dist/chunk-ZPFY4R5H.mjs +514 -0
- package/dist/chunk-ZRUMMJPO.mjs +127 -0
- package/dist/chunk-ZTLWJFDN.mjs +110 -0
- package/dist/chunk-ZVMW2BJZ.mjs +206 -0
- package/dist/components/dashboard/index.d.mts +135 -0
- package/dist/components/dashboard/index.d.ts +135 -0
- package/dist/components/dashboard/index.js +260 -0
- package/dist/components/dashboard/index.mjs +228 -0
- package/dist/components/layout/index.d.mts +2 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/layout/index.js +2 -0
- package/dist/components/layout/index.mjs +1 -0
- package/dist/components/navigation/index.d.mts +261 -0
- package/dist/components/navigation/index.d.ts +261 -0
- package/dist/components/navigation/index.js +552 -0
- package/dist/components/navigation/index.mjs +3 -0
- package/dist/components/ui/accordion.d.mts +37 -0
- package/dist/components/ui/accordion.d.ts +37 -0
- package/dist/components/ui/accordion.js +120 -0
- package/dist/components/ui/accordion.mjs +2 -0
- package/dist/components/ui/alert.d.mts +49 -0
- package/dist/components/ui/alert.d.ts +49 -0
- package/dist/components/ui/alert.js +149 -0
- package/dist/components/ui/alert.mjs +2 -0
- package/dist/components/ui/artwork.d.mts +2 -0
- package/dist/components/ui/artwork.d.ts +2 -0
- package/dist/components/ui/artwork.js +950 -0
- package/dist/components/ui/artwork.mjs +3 -0
- package/dist/components/ui/avatar.d.mts +36 -0
- package/dist/components/ui/avatar.d.ts +36 -0
- package/dist/components/ui/avatar.js +231 -0
- package/dist/components/ui/avatar.mjs +3 -0
- package/dist/components/ui/badge.d.mts +32 -0
- package/dist/components/ui/badge.d.ts +32 -0
- package/dist/components/ui/badge.js +119 -0
- package/dist/components/ui/badge.mjs +2 -0
- package/dist/components/ui/box.d.mts +8 -0
- package/dist/components/ui/box.d.ts +8 -0
- package/dist/components/ui/box.js +41 -0
- package/dist/components/ui/box.mjs +2 -0
- package/dist/components/ui/breadcrumb.d.mts +57 -0
- package/dist/components/ui/breadcrumb.d.ts +57 -0
- package/dist/components/ui/breadcrumb.js +162 -0
- package/dist/components/ui/breadcrumb.mjs +3 -0
- package/dist/components/ui/button-group.d.mts +54 -0
- package/dist/components/ui/button-group.d.ts +54 -0
- package/dist/components/ui/button-group.js +113 -0
- package/dist/components/ui/button-group.mjs +2 -0
- package/dist/components/ui/button.d.mts +38 -0
- package/dist/components/ui/button.d.ts +38 -0
- package/dist/components/ui/button.js +149 -0
- package/dist/components/ui/button.mjs +2 -0
- package/dist/components/ui/calendar.d.mts +15 -0
- package/dist/components/ui/calendar.d.ts +15 -0
- package/dist/components/ui/calendar.js +282 -0
- package/dist/components/ui/calendar.mjs +3 -0
- package/dist/components/ui/callout.d.mts +32 -0
- package/dist/components/ui/callout.d.ts +32 -0
- package/dist/components/ui/callout.js +93 -0
- package/dist/components/ui/callout.mjs +2 -0
- package/dist/components/ui/card.d.mts +63 -0
- package/dist/components/ui/card.d.ts +63 -0
- package/dist/components/ui/card.js +112 -0
- package/dist/components/ui/card.mjs +2 -0
- package/dist/components/ui/checkbox.d.mts +37 -0
- package/dist/components/ui/checkbox.d.ts +37 -0
- package/dist/components/ui/checkbox.js +132 -0
- package/dist/components/ui/checkbox.mjs +2 -0
- package/dist/components/ui/code.d.mts +9 -0
- package/dist/components/ui/code.d.ts +9 -0
- package/dist/components/ui/code.js +57 -0
- package/dist/components/ui/code.mjs +2 -0
- package/dist/components/ui/command.d.mts +85 -0
- package/dist/components/ui/command.d.ts +85 -0
- package/dist/components/ui/command.js +243 -0
- package/dist/components/ui/command.mjs +3 -0
- package/dist/components/ui/consent.d.mts +8 -0
- package/dist/components/ui/consent.d.ts +8 -0
- package/dist/components/ui/consent.js +68 -0
- package/dist/components/ui/consent.mjs +2 -0
- package/dist/components/ui/container.d.mts +9 -0
- package/dist/components/ui/container.d.ts +9 -0
- package/dist/components/ui/container.js +59 -0
- package/dist/components/ui/container.mjs +2 -0
- package/dist/components/ui/data-list.d.mts +13 -0
- package/dist/components/ui/data-list.d.ts +13 -0
- package/dist/components/ui/data-list.js +79 -0
- package/dist/components/ui/data-list.mjs +2 -0
- package/dist/components/ui/dropdown-menu.d.mts +30 -0
- package/dist/components/ui/dropdown-menu.d.ts +30 -0
- package/dist/components/ui/dropdown-menu.js +213 -0
- package/dist/components/ui/dropdown-menu.mjs +2 -0
- package/dist/components/ui/flex.d.mts +12 -0
- package/dist/components/ui/flex.d.ts +12 -0
- package/dist/components/ui/flex.js +79 -0
- package/dist/components/ui/flex.mjs +2 -0
- package/dist/components/ui/follow.d.mts +9 -0
- package/dist/components/ui/follow.d.ts +9 -0
- package/dist/components/ui/follow.js +63 -0
- package/dist/components/ui/follow.mjs +2 -0
- package/dist/components/ui/grid.d.mts +12 -0
- package/dist/components/ui/grid.d.ts +12 -0
- package/dist/components/ui/grid.js +92 -0
- package/dist/components/ui/grid.mjs +2 -0
- package/dist/components/ui/heading.d.mts +11 -0
- package/dist/components/ui/heading.d.ts +11 -0
- package/dist/components/ui/heading.js +63 -0
- package/dist/components/ui/heading.mjs +2 -0
- package/dist/components/ui/highlight.d.mts +27 -0
- package/dist/components/ui/highlight.d.ts +27 -0
- package/dist/components/ui/highlight.js +74 -0
- package/dist/components/ui/highlight.mjs +2 -0
- package/dist/components/ui/hover-card.d.mts +8 -0
- package/dist/components/ui/hover-card.d.ts +8 -0
- package/dist/components/ui/hover-card.js +52 -0
- package/dist/components/ui/hover-card.mjs +2 -0
- package/dist/components/ui/indicator.d.mts +32 -0
- package/dist/components/ui/indicator.d.ts +32 -0
- package/dist/components/ui/indicator.js +88 -0
- package/dist/components/ui/indicator.mjs +2 -0
- package/dist/components/ui/input-otp.d.mts +37 -0
- package/dist/components/ui/input-otp.d.ts +37 -0
- package/dist/components/ui/input-otp.js +94 -0
- package/dist/components/ui/input-otp.mjs +2 -0
- package/dist/components/ui/input.d.mts +74 -0
- package/dist/components/ui/input.d.ts +74 -0
- package/dist/components/ui/input.js +416 -0
- package/dist/components/ui/input.mjs +2 -0
- package/dist/components/ui/kbd.d.mts +8 -0
- package/dist/components/ui/kbd.d.ts +8 -0
- package/dist/components/ui/kbd.js +51 -0
- package/dist/components/ui/kbd.mjs +2 -0
- package/dist/components/ui/link.d.mts +56 -0
- package/dist/components/ui/link.d.ts +56 -0
- package/dist/components/ui/link.js +150 -0
- package/dist/components/ui/link.mjs +3 -0
- package/dist/components/ui/logo.d.mts +58 -0
- package/dist/components/ui/logo.d.ts +58 -0
- package/dist/components/ui/logo.js +225 -0
- package/dist/components/ui/logo.mjs +2 -0
- package/dist/components/ui/modal.d.mts +34 -0
- package/dist/components/ui/modal.d.ts +34 -0
- package/dist/components/ui/modal.js +153 -0
- package/dist/components/ui/modal.mjs +2 -0
- package/dist/components/ui/notice.d.mts +56 -0
- package/dist/components/ui/notice.d.ts +56 -0
- package/dist/components/ui/notice.js +126 -0
- package/dist/components/ui/notice.mjs +2 -0
- package/dist/components/ui/pagination.d.mts +100 -0
- package/dist/components/ui/pagination.d.ts +100 -0
- package/dist/components/ui/pagination.js +248 -0
- package/dist/components/ui/pagination.mjs +3 -0
- package/dist/components/ui/pictograms.d.mts +2 -0
- package/dist/components/ui/pictograms.d.ts +2 -0
- package/dist/components/ui/pictograms.js +924 -0
- package/dist/components/ui/pictograms.mjs +1 -0
- package/dist/components/ui/popover.d.mts +9 -0
- package/dist/components/ui/popover.d.ts +9 -0
- package/dist/components/ui/popover.js +54 -0
- package/dist/components/ui/popover.mjs +2 -0
- package/dist/components/ui/progress.d.mts +16 -0
- package/dist/components/ui/progress.d.ts +16 -0
- package/dist/components/ui/progress.js +99 -0
- package/dist/components/ui/progress.mjs +2 -0
- package/dist/components/ui/quote.d.mts +41 -0
- package/dist/components/ui/quote.d.ts +41 -0
- package/dist/components/ui/quote.js +91 -0
- package/dist/components/ui/quote.mjs +2 -0
- package/dist/components/ui/radio.d.mts +32 -0
- package/dist/components/ui/radio.d.ts +32 -0
- package/dist/components/ui/radio.js +111 -0
- package/dist/components/ui/radio.mjs +2 -0
- package/dist/components/ui/range.d.mts +27 -0
- package/dist/components/ui/range.d.ts +27 -0
- package/dist/components/ui/range.js +137 -0
- package/dist/components/ui/range.mjs +2 -0
- package/dist/components/ui/section.d.mts +9 -0
- package/dist/components/ui/section.d.ts +9 -0
- package/dist/components/ui/section.js +56 -0
- package/dist/components/ui/section.mjs +2 -0
- package/dist/components/ui/select.d.mts +27 -0
- package/dist/components/ui/select.d.ts +27 -0
- package/dist/components/ui/select.js +222 -0
- package/dist/components/ui/select.mjs +2 -0
- package/dist/components/ui/separator.d.mts +6 -0
- package/dist/components/ui/separator.d.ts +6 -0
- package/dist/components/ui/separator.js +49 -0
- package/dist/components/ui/separator.mjs +2 -0
- package/dist/components/ui/sheet.d.mts +29 -0
- package/dist/components/ui/sheet.d.ts +29 -0
- package/dist/components/ui/sheet.js +140 -0
- package/dist/components/ui/sheet.mjs +2 -0
- package/dist/components/ui/skeleton.d.mts +13 -0
- package/dist/components/ui/skeleton.d.ts +13 -0
- package/dist/components/ui/skeleton.js +28 -0
- package/dist/components/ui/skeleton.mjs +2 -0
- package/dist/components/ui/stepper.d.mts +36 -0
- package/dist/components/ui/stepper.d.ts +36 -0
- package/dist/components/ui/stepper.js +98 -0
- package/dist/components/ui/stepper.mjs +2 -0
- package/dist/components/ui/table.d.mts +20 -0
- package/dist/components/ui/table.d.ts +20 -0
- package/dist/components/ui/table.js +121 -0
- package/dist/components/ui/table.mjs +2 -0
- package/dist/components/ui/tabs.d.mts +18 -0
- package/dist/components/ui/tabs.d.ts +18 -0
- package/dist/components/ui/tabs.js +126 -0
- package/dist/components/ui/tabs.mjs +2 -0
- package/dist/components/ui/tag.d.mts +61 -0
- package/dist/components/ui/tag.d.ts +61 -0
- package/dist/components/ui/tag.js +328 -0
- package/dist/components/ui/tag.mjs +2 -0
- package/dist/components/ui/text.d.mts +11 -0
- package/dist/components/ui/text.d.ts +11 -0
- package/dist/components/ui/text.js +66 -0
- package/dist/components/ui/text.mjs +2 -0
- package/dist/components/ui/theme-artwork.d.mts +22 -0
- package/dist/components/ui/theme-artwork.d.ts +22 -0
- package/dist/components/ui/theme-artwork.js +158 -0
- package/dist/components/ui/theme-artwork.mjs +2 -0
- package/dist/components/ui/theme-toggle.d.mts +23 -0
- package/dist/components/ui/theme-toggle.d.ts +23 -0
- package/dist/components/ui/theme-toggle.js +567 -0
- package/dist/components/ui/theme-toggle.mjs +9 -0
- package/dist/components/ui/tile.d.mts +57 -0
- package/dist/components/ui/tile.d.ts +57 -0
- package/dist/components/ui/tile.js +248 -0
- package/dist/components/ui/tile.mjs +2 -0
- package/dist/components/ui/toast.d.mts +18 -0
- package/dist/components/ui/toast.d.ts +18 -0
- package/dist/components/ui/toast.js +141 -0
- package/dist/components/ui/toast.mjs +2 -0
- package/dist/components/ui/toaster.d.mts +8 -0
- package/dist/components/ui/toaster.d.ts +8 -0
- package/dist/components/ui/toaster.js +263 -0
- package/dist/components/ui/toaster.mjs +4 -0
- package/dist/components/ui/toggle.d.mts +39 -0
- package/dist/components/ui/toggle.d.ts +39 -0
- package/dist/components/ui/toggle.js +156 -0
- package/dist/components/ui/toggle.mjs +2 -0
- package/dist/components/ui/tooltip.d.mts +26 -0
- package/dist/components/ui/tooltip.d.ts +26 -0
- package/dist/components/ui/tooltip.js +85 -0
- package/dist/components/ui/tooltip.mjs +2 -0
- package/dist/components/ui/translate.d.mts +36 -0
- package/dist/components/ui/translate.d.ts +36 -0
- package/dist/components/ui/translate.js +191 -0
- package/dist/components/ui/translate.mjs +2 -0
- package/dist/components/ui/upload.d.mts +37 -0
- package/dist/components/ui/upload.d.ts +37 -0
- package/dist/components/ui/upload.js +89 -0
- package/dist/components/ui/upload.mjs +2 -0
- package/dist/components/ui/use-toast.d.mts +49 -0
- package/dist/components/ui/use-toast.d.ts +49 -0
- package/dist/components/ui/use-toast.js +142 -0
- package/dist/components/ui/use-toast.mjs +1 -0
- package/dist/hooks/index.d.mts +40 -0
- package/dist/hooks/index.d.ts +40 -0
- package/dist/hooks/index.js +87 -0
- package/dist/hooks/index.mjs +2 -0
- package/dist/i18n/index.d.mts +160 -0
- package/dist/i18n/index.d.ts +160 -0
- package/dist/i18n/index.js +228 -0
- package/dist/i18n/index.mjs +191 -0
- package/dist/index.d.mts +96 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.js +7183 -0
- package/dist/index.mjs +67 -0
- package/dist/primitives/index.d.mts +30 -0
- package/dist/primitives/index.d.ts +30 -0
- package/dist/primitives/index.js +48 -0
- package/dist/primitives/index.mjs +1 -0
- package/dist/providers/index.d.mts +155 -0
- package/dist/providers/index.d.ts +155 -0
- package/dist/providers/index.js +203 -0
- package/dist/providers/index.mjs +3 -0
- package/dist/theme-provider-DQSD5lrW.d.mts +82 -0
- package/dist/theme-provider-DQSD5lrW.d.ts +82 -0
- package/dist/theme-script-BIZ1PX7u.d.mts +75 -0
- package/dist/theme-script-BIZ1PX7u.d.ts +75 -0
- package/package.json +120 -0
- package/src/components/navigation/footer.tsx +173 -0
- package/src/components/navigation/header.tsx +236 -0
- package/src/components/navigation/index.ts +29 -0
- package/src/components/navigation/nav-link.tsx +135 -0
- package/src/components/navigation/navigation.tsx +336 -0
- package/src/components/navigation/skip-links.tsx +75 -0
- package/src/components/ui/accordion.test.tsx +56 -0
- package/src/components/ui/accordion.tsx +150 -0
- package/src/components/ui/alert.test.tsx +58 -0
- package/src/components/ui/alert.tsx +181 -0
- package/src/components/ui/artwork.tsx +166 -0
- package/src/components/ui/avatar.tsx +198 -0
- package/src/components/ui/badge.test.tsx +44 -0
- package/src/components/ui/badge.tsx +144 -0
- package/src/components/ui/box.tsx +17 -0
- package/src/components/ui/breadcrumb.tsx +189 -0
- package/src/components/ui/button-group.tsx +146 -0
- package/src/components/ui/button.test.tsx +56 -0
- package/src/components/ui/button.tsx +160 -0
- package/src/components/ui/calendar.tsx +159 -0
- package/src/components/ui/callout.test.tsx +36 -0
- package/src/components/ui/callout.tsx +131 -0
- package/src/components/ui/card.tsx +151 -0
- package/src/components/ui/checkbox.test.tsx +38 -0
- package/src/components/ui/checkbox.tsx +142 -0
- package/src/components/ui/code.tsx +33 -0
- package/src/components/ui/command.tsx +162 -0
- package/src/components/ui/consent.tsx +46 -0
- package/src/components/ui/container.tsx +35 -0
- package/src/components/ui/data-list.tsx +59 -0
- package/src/components/ui/dropdown-menu.tsx +226 -0
- package/src/components/ui/flex.tsx +62 -0
- package/src/components/ui/follow.tsx +52 -0
- package/src/components/ui/grid.tsx +75 -0
- package/src/components/ui/heading.tsx +42 -0
- package/src/components/ui/highlight.tsx +71 -0
- package/src/components/ui/hover-card.tsx +29 -0
- package/src/components/ui/indicator.tsx +108 -0
- package/src/components/ui/input-otp.tsx +85 -0
- package/src/components/ui/input.tsx +508 -0
- package/src/components/ui/kbd.tsx +26 -0
- package/src/components/ui/link.tsx +191 -0
- package/src/components/ui/logo.tsx +298 -0
- package/src/components/ui/modal.tsx +176 -0
- package/src/components/ui/notice.tsx +157 -0
- package/src/components/ui/pagination.tsx +348 -0
- package/src/components/ui/pictograms.ts +1197 -0
- package/src/components/ui/popover.tsx +33 -0
- package/src/components/ui/progress.tsx +79 -0
- package/src/components/ui/quote.tsx +132 -0
- package/src/components/ui/radio.test.tsx +48 -0
- package/src/components/ui/radio.tsx +126 -0
- package/src/components/ui/range.tsx +156 -0
- package/src/components/ui/section.tsx +32 -0
- package/src/components/ui/select.tsx +257 -0
- package/src/components/ui/separator.tsx +26 -0
- package/src/components/ui/sheet.tsx +137 -0
- package/src/components/ui/skeleton.tsx +26 -0
- package/src/components/ui/stepper.tsx +124 -0
- package/src/components/ui/table.tsx +158 -0
- package/src/components/ui/tabs.tsx +118 -0
- package/src/components/ui/tag.tsx +406 -0
- package/src/components/ui/text.tsx +45 -0
- package/src/components/ui/theme-artwork.tsx +122 -0
- package/src/components/ui/theme-toggle.tsx +154 -0
- package/src/components/ui/tile.tsx +337 -0
- package/src/components/ui/toast.tsx +140 -0
- package/src/components/ui/toaster.tsx +35 -0
- package/src/components/ui/toggle.tsx +187 -0
- package/src/components/ui/tooltip.tsx +96 -0
- package/src/components/ui/translate.tsx +203 -0
- package/src/components/ui/upload.tsx +118 -0
- package/src/components/ui/use-toast.ts +185 -0
- package/src/hooks/index.ts +10 -0
- package/src/hooks/use-media-query.ts +74 -0
- package/src/hooks/use-theme.ts +5 -0
- package/src/i18n/index.ts +35 -0
- package/src/i18n/provider.tsx +82 -0
- package/src/i18n/strings.ts +196 -0
- package/src/i18n/types.ts +95 -0
- package/src/index.ts +348 -0
- package/src/lib/utils.ts +10 -0
- package/src/primitives/index.ts +8 -0
- package/src/primitives/polymorphic.tsx +52 -0
- package/src/providers/index.ts +20 -0
- package/src/providers/router-provider.tsx +99 -0
- package/src/providers/theme-provider.tsx +218 -0
- package/src/providers/theme-script.tsx +135 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import * as React from 'react'
|
|
2
|
+
import { cn } from '../../lib/utils'
|
|
3
|
+
|
|
4
|
+
export interface FooterProps extends React.HTMLAttributes<HTMLElement> {}
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Conteneur principal du Footer DSFR
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <Footer>
|
|
12
|
+
* <FooterBody>
|
|
13
|
+
* <FooterBrand
|
|
14
|
+
* logo={<img src="/logo.svg" alt="Logo" />}
|
|
15
|
+
* description="Description du service"
|
|
16
|
+
* />
|
|
17
|
+
* <FooterContent>
|
|
18
|
+
* <FooterLinks title="Liens utiles">
|
|
19
|
+
* <NavLink href="/mentions-legales" variant="footer">Mentions légales</NavLink>
|
|
20
|
+
* <NavLink href="/accessibilite" variant="footer">Accessibilité</NavLink>
|
|
21
|
+
* </FooterLinks>
|
|
22
|
+
* </FooterContent>
|
|
23
|
+
* </FooterBody>
|
|
24
|
+
* <FooterBottom>
|
|
25
|
+
* <p>© 2024 - Tous droits réservés</p>
|
|
26
|
+
* </FooterBottom>
|
|
27
|
+
* </Footer>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
const Footer = React.forwardRef<HTMLElement, FooterProps>(
|
|
31
|
+
({ className, children, ...props }, ref) => {
|
|
32
|
+
return (
|
|
33
|
+
<footer
|
|
34
|
+
ref={ref}
|
|
35
|
+
id="footer"
|
|
36
|
+
className={cn('w-full bg-background-alt border-t border-border', className)}
|
|
37
|
+
{...props}
|
|
38
|
+
>
|
|
39
|
+
{children}
|
|
40
|
+
</footer>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
Footer.displayName = 'Footer'
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Corps principal du Footer
|
|
49
|
+
*/
|
|
50
|
+
const FooterBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
51
|
+
({ className, ...props }, ref) => (
|
|
52
|
+
<div
|
|
53
|
+
ref={ref}
|
|
54
|
+
className={cn('fr-container py-8 md:py-12 flex flex-col md:flex-row gap-8', className)}
|
|
55
|
+
{...props}
|
|
56
|
+
/>
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
FooterBody.displayName = 'FooterBody'
|
|
61
|
+
|
|
62
|
+
export interface FooterBrandProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
63
|
+
/**
|
|
64
|
+
* Logo ou image de marque
|
|
65
|
+
*/
|
|
66
|
+
logo?: React.ReactNode
|
|
67
|
+
/**
|
|
68
|
+
* Description du service
|
|
69
|
+
*/
|
|
70
|
+
description?: string
|
|
71
|
+
/**
|
|
72
|
+
* URL de destination du logo
|
|
73
|
+
*/
|
|
74
|
+
href?: string
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Zone de marque du Footer
|
|
79
|
+
*/
|
|
80
|
+
const FooterBrand = React.forwardRef<HTMLDivElement, FooterBrandProps>(
|
|
81
|
+
({ className, logo, description, href = '/', ...props }, ref) => (
|
|
82
|
+
<div ref={ref} className={cn('flex flex-col gap-4 md:max-w-xs', className)} {...props}>
|
|
83
|
+
{logo && (
|
|
84
|
+
<a href={href} className="flex-shrink-0 w-fit">
|
|
85
|
+
{logo}
|
|
86
|
+
</a>
|
|
87
|
+
)}
|
|
88
|
+
{description && <p className="text-sm text-foreground-muted">{description}</p>}
|
|
89
|
+
</div>
|
|
90
|
+
)
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
FooterBrand.displayName = 'FooterBrand'
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Zone de contenu du Footer (colonnes de liens)
|
|
97
|
+
*/
|
|
98
|
+
const FooterContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
99
|
+
({ className, ...props }, ref) => (
|
|
100
|
+
<div
|
|
101
|
+
ref={ref}
|
|
102
|
+
className={cn('flex-1 grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-8', className)}
|
|
103
|
+
{...props}
|
|
104
|
+
/>
|
|
105
|
+
)
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
FooterContent.displayName = 'FooterContent'
|
|
109
|
+
|
|
110
|
+
export interface FooterLinksProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
111
|
+
/**
|
|
112
|
+
* Titre de la section de liens
|
|
113
|
+
*/
|
|
114
|
+
title?: string
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Groupe de liens dans le Footer
|
|
119
|
+
*/
|
|
120
|
+
const FooterLinks = React.forwardRef<HTMLDivElement, FooterLinksProps>(
|
|
121
|
+
({ className, title, children, ...props }, ref) => (
|
|
122
|
+
<div ref={ref} className={cn('flex flex-col gap-2', className)} {...props}>
|
|
123
|
+
{title && <h3 className="font-semibold text-foreground-title mb-2">{title}</h3>}
|
|
124
|
+
<nav aria-label={title || 'Navigation'} className="flex flex-col gap-1 text-sm">
|
|
125
|
+
{children}
|
|
126
|
+
</nav>
|
|
127
|
+
</div>
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
FooterLinks.displayName = 'FooterLinks'
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Zone inférieure du Footer (copyright, mentions)
|
|
135
|
+
*/
|
|
136
|
+
const FooterBottom = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
137
|
+
({ className, ...props }, ref) => (
|
|
138
|
+
<div ref={ref} className={cn('border-t border-border bg-background', className)} {...props}>
|
|
139
|
+
<div className="fr-container py-4 flex flex-col md:flex-row items-center justify-between gap-4 text-sm text-foreground-muted">
|
|
140
|
+
{props.children}
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
)
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
FooterBottom.displayName = 'FooterBottom'
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Liens légaux dans le Footer (mentions légales, accessibilité, etc.)
|
|
150
|
+
*/
|
|
151
|
+
const FooterLegalLinks = React.forwardRef<HTMLUListElement, React.HTMLAttributes<HTMLUListElement>>(
|
|
152
|
+
({ className, children, ...props }, ref) => (
|
|
153
|
+
<ul ref={ref} className={cn('flex flex-wrap items-center gap-4 text-sm', className)} {...props}>
|
|
154
|
+
{React.Children.map(children, (child, index) => {
|
|
155
|
+
if (!React.isValidElement(child)) return child
|
|
156
|
+
if (child.type === 'li') return child
|
|
157
|
+
return <li key={index}>{child}</li>
|
|
158
|
+
})}
|
|
159
|
+
</ul>
|
|
160
|
+
)
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
FooterLegalLinks.displayName = 'FooterLegalLinks'
|
|
164
|
+
|
|
165
|
+
export {
|
|
166
|
+
Footer,
|
|
167
|
+
FooterBody,
|
|
168
|
+
FooterBottom,
|
|
169
|
+
FooterBrand,
|
|
170
|
+
FooterContent,
|
|
171
|
+
FooterLegalLinks,
|
|
172
|
+
FooterLinks,
|
|
173
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import * as React from 'react'
|
|
4
|
+
import { cn } from '../../lib/utils'
|
|
5
|
+
|
|
6
|
+
export interface HeaderProps extends React.HTMLAttributes<HTMLElement> {
|
|
7
|
+
/**
|
|
8
|
+
* Logo ou nom du service
|
|
9
|
+
*/
|
|
10
|
+
logo?: React.ReactNode
|
|
11
|
+
/**
|
|
12
|
+
* Titre du service
|
|
13
|
+
*/
|
|
14
|
+
serviceTitle?: string
|
|
15
|
+
/**
|
|
16
|
+
* Sous-titre ou tagline
|
|
17
|
+
*/
|
|
18
|
+
serviceTagline?: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Conteneur principal du Header DSFR
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <Header>
|
|
27
|
+
* <HeaderBody>
|
|
28
|
+
* <HeaderBrand
|
|
29
|
+
* logo={<img src="/logo.svg" alt="Logo" />}
|
|
30
|
+
* serviceTitle="Mon Service"
|
|
31
|
+
* serviceTagline="Description du service"
|
|
32
|
+
* />
|
|
33
|
+
* <HeaderNav>
|
|
34
|
+
* <NavLink href="/" variant="header" isActive>Accueil</NavLink>
|
|
35
|
+
* <NavLink href="/services" variant="header">Services</NavLink>
|
|
36
|
+
* </HeaderNav>
|
|
37
|
+
* <HeaderActions>
|
|
38
|
+
* <Button variant="ghost" size="sm">Connexion</Button>
|
|
39
|
+
* </HeaderActions>
|
|
40
|
+
* </HeaderBody>
|
|
41
|
+
* </Header>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
const Header = React.forwardRef<HTMLElement, HeaderProps>(
|
|
45
|
+
({ className, children, ...props }, ref) => {
|
|
46
|
+
return (
|
|
47
|
+
<header
|
|
48
|
+
ref={ref}
|
|
49
|
+
className={cn('w-full bg-background-elevated border-b border-border', className)}
|
|
50
|
+
{...props}
|
|
51
|
+
>
|
|
52
|
+
{children}
|
|
53
|
+
</header>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
Header.displayName = 'Header'
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Corps du Header contenant les éléments principaux
|
|
62
|
+
*/
|
|
63
|
+
const HeaderBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
64
|
+
({ className, ...props }, ref) => (
|
|
65
|
+
<div
|
|
66
|
+
ref={ref}
|
|
67
|
+
className={cn('fr-container flex items-center justify-between gap-4 py-4', className)}
|
|
68
|
+
{...props}
|
|
69
|
+
/>
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
HeaderBody.displayName = 'HeaderBody'
|
|
74
|
+
|
|
75
|
+
export interface HeaderBrandProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
76
|
+
/**
|
|
77
|
+
* Logo ou image de marque
|
|
78
|
+
*/
|
|
79
|
+
logo?: React.ReactNode
|
|
80
|
+
/**
|
|
81
|
+
* Titre du service
|
|
82
|
+
*/
|
|
83
|
+
serviceTitle?: string
|
|
84
|
+
/**
|
|
85
|
+
* Tagline ou description
|
|
86
|
+
*/
|
|
87
|
+
serviceTagline?: string
|
|
88
|
+
/**
|
|
89
|
+
* URL de destination du logo
|
|
90
|
+
*/
|
|
91
|
+
href?: string
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Zone de marque du Header (logo + titre)
|
|
96
|
+
*/
|
|
97
|
+
const HeaderBrand = React.forwardRef<HTMLDivElement, HeaderBrandProps>(
|
|
98
|
+
({ className, logo, serviceTitle, serviceTagline, href = '/', ...props }, ref) => (
|
|
99
|
+
<div ref={ref} className={cn('flex items-center gap-4', className)} {...props}>
|
|
100
|
+
{logo && (
|
|
101
|
+
<a href={href} className="flex-shrink-0">
|
|
102
|
+
{logo}
|
|
103
|
+
</a>
|
|
104
|
+
)}
|
|
105
|
+
{(serviceTitle || serviceTagline) && (
|
|
106
|
+
<div className="flex flex-col">
|
|
107
|
+
{serviceTitle && (
|
|
108
|
+
<a href={href} className="text-lg font-bold text-foreground hover:text-primary">
|
|
109
|
+
{serviceTitle}
|
|
110
|
+
</a>
|
|
111
|
+
)}
|
|
112
|
+
{serviceTagline && (
|
|
113
|
+
<span className="text-sm text-foreground-muted">{serviceTagline}</span>
|
|
114
|
+
)}
|
|
115
|
+
</div>
|
|
116
|
+
)}
|
|
117
|
+
</div>
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
HeaderBrand.displayName = 'HeaderBrand'
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Zone de navigation principale du Header
|
|
125
|
+
*/
|
|
126
|
+
const HeaderNav = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(
|
|
127
|
+
({ className, children, ...props }, ref) => (
|
|
128
|
+
<nav
|
|
129
|
+
ref={ref}
|
|
130
|
+
id="main-navigation"
|
|
131
|
+
aria-label="Navigation principale"
|
|
132
|
+
className={cn('hidden md:flex items-center gap-2 fr-nav', className)}
|
|
133
|
+
{...props}
|
|
134
|
+
>
|
|
135
|
+
<ul className={cn('fr-nav__list flex items-center gap-2')}>
|
|
136
|
+
{React.Children.map(children, (child) => {
|
|
137
|
+
if (!React.isValidElement(child)) return child
|
|
138
|
+
|
|
139
|
+
const childType = child.type as React.ComponentType & { displayName?: string }
|
|
140
|
+
const isNavLink = childType?.displayName === 'NavLink' || childType?.name === 'NavLink'
|
|
141
|
+
|
|
142
|
+
const childProps = child.props as Record<string, unknown>
|
|
143
|
+
const patched =
|
|
144
|
+
isNavLink && childProps.variant === undefined
|
|
145
|
+
? React.cloneElement(child, { variant: 'header' })
|
|
146
|
+
: child
|
|
147
|
+
|
|
148
|
+
return <li className="fr-nav__item">{patched}</li>
|
|
149
|
+
})}
|
|
150
|
+
</ul>
|
|
151
|
+
</nav>
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
HeaderNav.displayName = 'HeaderNav'
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Zone d'actions du Header (boutons, recherche, etc.)
|
|
159
|
+
*/
|
|
160
|
+
const HeaderActions = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
161
|
+
({ className, ...props }, ref) => (
|
|
162
|
+
<div ref={ref} className={cn('flex items-center gap-2', className)} {...props} />
|
|
163
|
+
)
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
HeaderActions.displayName = 'HeaderActions'
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Bouton menu mobile du Header
|
|
170
|
+
*/
|
|
171
|
+
export interface HeaderMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
172
|
+
/**
|
|
173
|
+
* État ouvert/fermé du menu
|
|
174
|
+
*/
|
|
175
|
+
isOpen?: boolean
|
|
176
|
+
/**
|
|
177
|
+
* Callback lors du clic
|
|
178
|
+
*/
|
|
179
|
+
onToggle?: () => void
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const HeaderMenuButton = React.forwardRef<HTMLButtonElement, HeaderMenuButtonProps>(
|
|
183
|
+
({ className, isOpen, onToggle, ...props }, ref) => (
|
|
184
|
+
<button
|
|
185
|
+
ref={ref}
|
|
186
|
+
type="button"
|
|
187
|
+
onClick={onToggle}
|
|
188
|
+
aria-expanded={isOpen}
|
|
189
|
+
aria-controls="mobile-menu"
|
|
190
|
+
aria-label={isOpen ? 'Fermer le menu' : 'Ouvrir le menu'}
|
|
191
|
+
className={cn(
|
|
192
|
+
'md:hidden p-2 rounded-md text-foreground',
|
|
193
|
+
'hover:bg-background-alt focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary',
|
|
194
|
+
className
|
|
195
|
+
)}
|
|
196
|
+
{...props}
|
|
197
|
+
>
|
|
198
|
+
{isOpen ? (
|
|
199
|
+
<svg
|
|
200
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
201
|
+
width="24"
|
|
202
|
+
height="24"
|
|
203
|
+
viewBox="0 0 24 24"
|
|
204
|
+
fill="none"
|
|
205
|
+
stroke="currentColor"
|
|
206
|
+
strokeWidth="2"
|
|
207
|
+
strokeLinecap="round"
|
|
208
|
+
strokeLinejoin="round"
|
|
209
|
+
>
|
|
210
|
+
<path d="M18 6 6 18" />
|
|
211
|
+
<path d="m6 6 12 12" />
|
|
212
|
+
</svg>
|
|
213
|
+
) : (
|
|
214
|
+
<svg
|
|
215
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
216
|
+
width="24"
|
|
217
|
+
height="24"
|
|
218
|
+
viewBox="0 0 24 24"
|
|
219
|
+
fill="none"
|
|
220
|
+
stroke="currentColor"
|
|
221
|
+
strokeWidth="2"
|
|
222
|
+
strokeLinecap="round"
|
|
223
|
+
strokeLinejoin="round"
|
|
224
|
+
>
|
|
225
|
+
<line x1="4" y1="6" x2="20" y2="6" />
|
|
226
|
+
<line x1="4" y1="12" x2="20" y2="12" />
|
|
227
|
+
<line x1="4" y1="18" x2="20" y2="18" />
|
|
228
|
+
</svg>
|
|
229
|
+
)}
|
|
230
|
+
</button>
|
|
231
|
+
)
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
HeaderMenuButton.displayName = 'HeaderMenuButton'
|
|
235
|
+
|
|
236
|
+
export { Header, HeaderActions, HeaderBody, HeaderBrand, HeaderMenuButton, HeaderNav }
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type { FooterBrandProps, FooterLinksProps, FooterProps } from './footer'
|
|
2
|
+
export {
|
|
3
|
+
Footer,
|
|
4
|
+
FooterBody,
|
|
5
|
+
FooterBottom,
|
|
6
|
+
FooterBrand,
|
|
7
|
+
FooterContent,
|
|
8
|
+
FooterLegalLinks,
|
|
9
|
+
FooterLinks,
|
|
10
|
+
} from './footer'
|
|
11
|
+
export type { HeaderBrandProps, HeaderMenuButtonProps, HeaderProps } from './header'
|
|
12
|
+
export {
|
|
13
|
+
Header,
|
|
14
|
+
HeaderActions,
|
|
15
|
+
HeaderBody,
|
|
16
|
+
HeaderBrand,
|
|
17
|
+
HeaderMenuButton,
|
|
18
|
+
HeaderNav,
|
|
19
|
+
} from './header'
|
|
20
|
+
export type { NavLinkProps } from './nav-link'
|
|
21
|
+
export { NavLink, navLinkVariants } from './nav-link'
|
|
22
|
+
export type { NavigationItemProps, NavigationProps, NavigationSectionProps } from './navigation'
|
|
23
|
+
export {
|
|
24
|
+
Navigation,
|
|
25
|
+
NavigationItem,
|
|
26
|
+
NavigationSection,
|
|
27
|
+
} from './navigation'
|
|
28
|
+
export type { SkipLink, SkipLinksProps } from './skip-links'
|
|
29
|
+
export { SkipLinks } from './skip-links'
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { Slot } from '@radix-ui/react-slot'
|
|
4
|
+
import { cva, type VariantProps } from 'class-variance-authority'
|
|
5
|
+
import * as React from 'react'
|
|
6
|
+
import { cn } from '../../lib/utils'
|
|
7
|
+
import { useRouter } from '../../providers/router-provider'
|
|
8
|
+
|
|
9
|
+
const navLinkVariants = cva(
|
|
10
|
+
'inline-flex items-center gap-2 relative font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary',
|
|
11
|
+
{
|
|
12
|
+
variants: {
|
|
13
|
+
variant: {
|
|
14
|
+
default: [
|
|
15
|
+
'text-foreground hover:text-primary hover:bg-background-contrast',
|
|
16
|
+
'data-[active=true]:text-primary data-[active=true]:border-b-[2px] data-[active=true]:border-primary',
|
|
17
|
+
],
|
|
18
|
+
header: [
|
|
19
|
+
'text-foreground hover:text-primary',
|
|
20
|
+
'py-3 px-4 md:py-3 md:px-4 md:text-base',
|
|
21
|
+
'data-[active=true]:text-primary data-[active=true]:border-b-[2px] data-[active=true]:border-primary',
|
|
22
|
+
],
|
|
23
|
+
side: [
|
|
24
|
+
'text-foreground hover:text-primary hover:bg-background-contrast',
|
|
25
|
+
'w-full px-4 py-2',
|
|
26
|
+
'data-[active=true]:text-primary data-[active=true]:bg-background-contrast data-[active=true]:border-l-2 data-[active=true]:border-border-active',
|
|
27
|
+
],
|
|
28
|
+
footer: ['text-foreground hover:text-primary hover:underline', 'text-xs py-0.5 px-0'],
|
|
29
|
+
},
|
|
30
|
+
size: {
|
|
31
|
+
sm: 'text-sm py-1 px-2',
|
|
32
|
+
md: 'text-base py-2 px-3',
|
|
33
|
+
lg: 'text-lg py-3 px-4',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
defaultVariants: {
|
|
37
|
+
variant: 'default',
|
|
38
|
+
size: 'md',
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
export interface NavLinkProps
|
|
44
|
+
extends React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
45
|
+
VariantProps<typeof navLinkVariants> {
|
|
46
|
+
/**
|
|
47
|
+
* Si true, rend le composant enfant au lieu d'un <a>
|
|
48
|
+
*/
|
|
49
|
+
asChild?: boolean
|
|
50
|
+
/**
|
|
51
|
+
* Indique si le lien est actif (page courante)
|
|
52
|
+
*/
|
|
53
|
+
isActive?: boolean
|
|
54
|
+
/**
|
|
55
|
+
* L'icône à afficher dans l'élément (ex: `<RemixIcon />`)
|
|
56
|
+
*/
|
|
57
|
+
icon?: React.ReactNode
|
|
58
|
+
/**
|
|
59
|
+
* La position de l'icône ('start' ou 'end'). Par défaut: 'start'
|
|
60
|
+
*/
|
|
61
|
+
iconPosition?: 'start' | 'end'
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Composant NavLink DSFR polymorphique
|
|
66
|
+
*
|
|
67
|
+
* Lien de navigation adaptable à différents contextes (header, sidebar, footer).
|
|
68
|
+
*/
|
|
69
|
+
const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(
|
|
70
|
+
(
|
|
71
|
+
{
|
|
72
|
+
className,
|
|
73
|
+
variant,
|
|
74
|
+
size,
|
|
75
|
+
asChild = false,
|
|
76
|
+
isActive,
|
|
77
|
+
icon,
|
|
78
|
+
iconPosition = 'start',
|
|
79
|
+
children,
|
|
80
|
+
...props
|
|
81
|
+
},
|
|
82
|
+
ref
|
|
83
|
+
) => {
|
|
84
|
+
const router = useRouter()
|
|
85
|
+
const sharedProps = {
|
|
86
|
+
'data-active': isActive,
|
|
87
|
+
'aria-current': isActive ? ('page' as const) : undefined,
|
|
88
|
+
className: cn('fr-nav__link', navLinkVariants({ variant, size, className })),
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const content = (
|
|
92
|
+
<>
|
|
93
|
+
{icon && iconPosition === 'start' && (
|
|
94
|
+
<span className="flex-shrink-0 flex items-center justify-center" aria-hidden="true">
|
|
95
|
+
{icon}
|
|
96
|
+
</span>
|
|
97
|
+
)}
|
|
98
|
+
{children}
|
|
99
|
+
{icon && iconPosition === 'end' && (
|
|
100
|
+
<span className="flex-shrink-0 flex items-center justify-center" aria-hidden="true">
|
|
101
|
+
{icon}
|
|
102
|
+
</span>
|
|
103
|
+
)}
|
|
104
|
+
</>
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
if (asChild) {
|
|
108
|
+
return (
|
|
109
|
+
<Slot ref={ref} {...sharedProps} {...props}>
|
|
110
|
+
{children}
|
|
111
|
+
</Slot>
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (router) {
|
|
116
|
+
const { href: hrefProp, ...restProps } = props
|
|
117
|
+
const adaptedProps = router.linkPropsAdapter({ href: hrefProp, ...restProps })
|
|
118
|
+
return (
|
|
119
|
+
<router.Link ref={ref} {...sharedProps} {...adaptedProps}>
|
|
120
|
+
{content}
|
|
121
|
+
</router.Link>
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return (
|
|
126
|
+
<a ref={ref} {...sharedProps} {...props}>
|
|
127
|
+
{content}
|
|
128
|
+
</a>
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
NavLink.displayName = 'NavLink'
|
|
134
|
+
|
|
135
|
+
export { NavLink, navLinkVariants }
|