@elabs-ai/components-ui 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/chunk-22Z735L6.js +18 -0
- package/dist/chunk-22Z735L6.js.map +1 -0
- package/dist/chunk-23E62DNM.js +2 -0
- package/dist/chunk-23E62DNM.js.map +1 -0
- package/dist/chunk-2AABRSIN.js +2 -0
- package/dist/chunk-2AABRSIN.js.map +1 -0
- package/dist/chunk-2HXVFC4B.js +44 -0
- package/dist/chunk-2HXVFC4B.js.map +1 -0
- package/dist/chunk-2SBYBN45.js +2 -0
- package/dist/chunk-2SBYBN45.js.map +1 -0
- package/dist/chunk-333EWYWL.js +385 -0
- package/dist/chunk-333EWYWL.js.map +1 -0
- package/dist/chunk-35DUHYPC.js +59 -0
- package/dist/chunk-35DUHYPC.js.map +1 -0
- package/dist/chunk-35ZTVB35.js +76 -0
- package/dist/chunk-35ZTVB35.js.map +1 -0
- package/dist/chunk-36VULFFV.js +2 -0
- package/dist/chunk-36VULFFV.js.map +1 -0
- package/dist/chunk-3B7W334A.js +229 -0
- package/dist/chunk-3B7W334A.js.map +1 -0
- package/dist/chunk-3EKVSKGJ.js +256 -0
- package/dist/chunk-3EKVSKGJ.js.map +1 -0
- package/dist/chunk-3JAEQNCB.js +60 -0
- package/dist/chunk-3JAEQNCB.js.map +1 -0
- package/dist/chunk-3LWAAK3J.js +140 -0
- package/dist/chunk-3LWAAK3J.js.map +1 -0
- package/dist/chunk-3OSGTUN2.js +2 -0
- package/dist/chunk-3OSGTUN2.js.map +1 -0
- package/dist/chunk-3P7SRCDB.js +23 -0
- package/dist/chunk-3P7SRCDB.js.map +1 -0
- package/dist/chunk-45ICJ3EV.js +2 -0
- package/dist/chunk-45ICJ3EV.js.map +1 -0
- package/dist/chunk-4ACT7RLU.js +2 -0
- package/dist/chunk-4ACT7RLU.js.map +1 -0
- package/dist/chunk-4E73UAFA.js +296 -0
- package/dist/chunk-4E73UAFA.js.map +1 -0
- package/dist/chunk-4GQFIJAE.js +197 -0
- package/dist/chunk-4GQFIJAE.js.map +1 -0
- package/dist/chunk-4HTVJZVG.js +2 -0
- package/dist/chunk-4HTVJZVG.js.map +1 -0
- package/dist/chunk-4KDA5MDC.js +2 -0
- package/dist/chunk-4KDA5MDC.js.map +1 -0
- package/dist/chunk-4PITSMJ3.js +52 -0
- package/dist/chunk-4PITSMJ3.js.map +1 -0
- package/dist/chunk-4PXDZR2W.js +2 -0
- package/dist/chunk-4PXDZR2W.js.map +1 -0
- package/dist/chunk-4UWOADYM.js +2 -0
- package/dist/chunk-4UWOADYM.js.map +1 -0
- package/dist/chunk-4W3MVVKN.js +66 -0
- package/dist/chunk-4W3MVVKN.js.map +1 -0
- package/dist/chunk-4YOFSGHD.js +2 -0
- package/dist/chunk-4YOFSGHD.js.map +1 -0
- package/dist/chunk-533R5EKD.js +87 -0
- package/dist/chunk-533R5EKD.js.map +1 -0
- package/dist/chunk-545HI223.js +2 -0
- package/dist/chunk-545HI223.js.map +1 -0
- package/dist/chunk-57C25JYV.js +170 -0
- package/dist/chunk-57C25JYV.js.map +1 -0
- package/dist/chunk-5AWXGBSH.js +82 -0
- package/dist/chunk-5AWXGBSH.js.map +1 -0
- package/dist/chunk-5G2DDMHR.js +2 -0
- package/dist/chunk-5G2DDMHR.js.map +1 -0
- package/dist/chunk-5HBMI2DO.js +42 -0
- package/dist/chunk-5HBMI2DO.js.map +1 -0
- package/dist/chunk-5LCN5Q2L.js +23 -0
- package/dist/chunk-5LCN5Q2L.js.map +1 -0
- package/dist/chunk-5P4BSHIG.js +2 -0
- package/dist/chunk-5P4BSHIG.js.map +1 -0
- package/dist/chunk-5RC32MZH.js +161 -0
- package/dist/chunk-5RC32MZH.js.map +1 -0
- package/dist/chunk-5SHHIQVA.js +22 -0
- package/dist/chunk-5SHHIQVA.js.map +1 -0
- package/dist/chunk-5V5J7APL.js +27 -0
- package/dist/chunk-5V5J7APL.js.map +1 -0
- package/dist/chunk-5YZLOAKR.js +2 -0
- package/dist/chunk-5YZLOAKR.js.map +1 -0
- package/dist/chunk-5Z55AFOW.js +128 -0
- package/dist/chunk-5Z55AFOW.js.map +1 -0
- package/dist/chunk-653ZIWX6.js +2 -0
- package/dist/chunk-653ZIWX6.js.map +1 -0
- package/dist/chunk-6DHG7JVP.js +2 -0
- package/dist/chunk-6DHG7JVP.js.map +1 -0
- package/dist/chunk-6HGS5Z2Z.js +110 -0
- package/dist/chunk-6HGS5Z2Z.js.map +1 -0
- package/dist/chunk-6NKILKS6.js +35 -0
- package/dist/chunk-6NKILKS6.js.map +1 -0
- package/dist/chunk-6OFWWIEG.js +50 -0
- package/dist/chunk-6OFWWIEG.js.map +1 -0
- package/dist/chunk-6OPDRLMU.js +158 -0
- package/dist/chunk-6OPDRLMU.js.map +1 -0
- package/dist/chunk-6QU7OVFA.js +357 -0
- package/dist/chunk-6QU7OVFA.js.map +1 -0
- package/dist/chunk-6ROQKB4U.js +2 -0
- package/dist/chunk-6ROQKB4U.js.map +1 -0
- package/dist/chunk-6S43VAN7.js +2 -0
- package/dist/chunk-6S43VAN7.js.map +1 -0
- package/dist/chunk-6TJVJPNU.js +1321 -0
- package/dist/chunk-6TJVJPNU.js.map +1 -0
- package/dist/chunk-6VLJL7Q4.js +2 -0
- package/dist/chunk-6VLJL7Q4.js.map +1 -0
- package/dist/chunk-7G63B2B7.js +189 -0
- package/dist/chunk-7G63B2B7.js.map +1 -0
- package/dist/chunk-7P24I5OL.js +23 -0
- package/dist/chunk-7P24I5OL.js.map +1 -0
- package/dist/chunk-7PS5MKVH.js +97 -0
- package/dist/chunk-7PS5MKVH.js.map +1 -0
- package/dist/chunk-7WIHVGYL.js +2 -0
- package/dist/chunk-7WIHVGYL.js.map +1 -0
- package/dist/chunk-7WXDSTNR.js +62 -0
- package/dist/chunk-7WXDSTNR.js.map +1 -0
- package/dist/chunk-A43B4IT7.js +395 -0
- package/dist/chunk-A43B4IT7.js.map +1 -0
- package/dist/chunk-A47AZPCL.js +35 -0
- package/dist/chunk-A47AZPCL.js.map +1 -0
- package/dist/chunk-AA3SPDJU.js +2 -0
- package/dist/chunk-AA3SPDJU.js.map +1 -0
- package/dist/chunk-AC7X3D2M.js +2 -0
- package/dist/chunk-AC7X3D2M.js.map +1 -0
- package/dist/chunk-AE6UDP36.js +2 -0
- package/dist/chunk-AE6UDP36.js.map +1 -0
- package/dist/chunk-AFEFAGPW.js +2 -0
- package/dist/chunk-AFEFAGPW.js.map +1 -0
- package/dist/chunk-AFJCS2WV.js +95 -0
- package/dist/chunk-AFJCS2WV.js.map +1 -0
- package/dist/chunk-AQNLEP5F.js +2 -0
- package/dist/chunk-AQNLEP5F.js.map +1 -0
- package/dist/chunk-AUQVJ7KO.js +2 -0
- package/dist/chunk-AUQVJ7KO.js.map +1 -0
- package/dist/chunk-AXKZBRZK.js +32 -0
- package/dist/chunk-AXKZBRZK.js.map +1 -0
- package/dist/chunk-AZEABCK4.js +30 -0
- package/dist/chunk-AZEABCK4.js.map +1 -0
- package/dist/chunk-B23VW24W.js +2 -0
- package/dist/chunk-B23VW24W.js.map +1 -0
- package/dist/chunk-B2RSOLLO.js +2 -0
- package/dist/chunk-B2RSOLLO.js.map +1 -0
- package/dist/chunk-B5QQLMEE.js +31 -0
- package/dist/chunk-B5QQLMEE.js.map +1 -0
- package/dist/chunk-BLNXHETI.js +163 -0
- package/dist/chunk-BLNXHETI.js.map +1 -0
- package/dist/chunk-BM6NGS3A.js +201 -0
- package/dist/chunk-BM6NGS3A.js.map +1 -0
- package/dist/chunk-BN4CKDFU.js +989 -0
- package/dist/chunk-BN4CKDFU.js.map +1 -0
- package/dist/chunk-BPXLHGWI.js +54 -0
- package/dist/chunk-BPXLHGWI.js.map +1 -0
- package/dist/chunk-BTBYNKT4.js +2 -0
- package/dist/chunk-BTBYNKT4.js.map +1 -0
- package/dist/chunk-BWL7HWEF.js +325 -0
- package/dist/chunk-BWL7HWEF.js.map +1 -0
- package/dist/chunk-BZQF5QCN.js +18 -0
- package/dist/chunk-BZQF5QCN.js.map +1 -0
- package/dist/chunk-C2AQEEFB.js +2 -0
- package/dist/chunk-C2AQEEFB.js.map +1 -0
- package/dist/chunk-C753P3VJ.js +2 -0
- package/dist/chunk-C753P3VJ.js.map +1 -0
- package/dist/chunk-CDE74W6O.js +2 -0
- package/dist/chunk-CDE74W6O.js.map +1 -0
- package/dist/chunk-CEQER4CV.js +2 -0
- package/dist/chunk-CEQER4CV.js.map +1 -0
- package/dist/chunk-CQ5CH3SB.js +55 -0
- package/dist/chunk-CQ5CH3SB.js.map +1 -0
- package/dist/chunk-CRGGGHAM.js +2 -0
- package/dist/chunk-CRGGGHAM.js.map +1 -0
- package/dist/chunk-CRVB4SLG.js +2 -0
- package/dist/chunk-CRVB4SLG.js.map +1 -0
- package/dist/chunk-CT6XJIPY.js +2 -0
- package/dist/chunk-CT6XJIPY.js.map +1 -0
- package/dist/chunk-CY624JOL.js +2 -0
- package/dist/chunk-CY624JOL.js.map +1 -0
- package/dist/chunk-D3C3VVCX.js +38 -0
- package/dist/chunk-D3C3VVCX.js.map +1 -0
- package/dist/chunk-D53EN4Q6.js +2 -0
- package/dist/chunk-D53EN4Q6.js.map +1 -0
- package/dist/chunk-DCHYNTHI.js +11 -0
- package/dist/chunk-DCHYNTHI.js.map +1 -0
- package/dist/chunk-DCI6IOJX.js +236 -0
- package/dist/chunk-DCI6IOJX.js.map +1 -0
- package/dist/chunk-DFYPQ52O.js +476 -0
- package/dist/chunk-DFYPQ52O.js.map +1 -0
- package/dist/chunk-DIQJODQR.js +2 -0
- package/dist/chunk-DIQJODQR.js.map +1 -0
- package/dist/chunk-DSGTH6JW.js +2 -0
- package/dist/chunk-DSGTH6JW.js.map +1 -0
- package/dist/chunk-DT6RNLCP.js +32 -0
- package/dist/chunk-DT6RNLCP.js.map +1 -0
- package/dist/chunk-DU6ITAJL.js +2 -0
- package/dist/chunk-DU6ITAJL.js.map +1 -0
- package/dist/chunk-DUF2VZON.js +36 -0
- package/dist/chunk-DUF2VZON.js.map +1 -0
- package/dist/chunk-DXDLTYTT.js +2 -0
- package/dist/chunk-DXDLTYTT.js.map +1 -0
- package/dist/chunk-E3ES2KR6.js +55 -0
- package/dist/chunk-E3ES2KR6.js.map +1 -0
- package/dist/chunk-EAFPUZ46.js +2 -0
- package/dist/chunk-EAFPUZ46.js.map +1 -0
- package/dist/chunk-EBDOKU5K.js +2 -0
- package/dist/chunk-EBDOKU5K.js.map +1 -0
- package/dist/chunk-ECCNRCC4.js +74 -0
- package/dist/chunk-ECCNRCC4.js.map +1 -0
- package/dist/chunk-EDE73Q6Z.js +2 -0
- package/dist/chunk-EDE73Q6Z.js.map +1 -0
- package/dist/chunk-EHGIW7GA.js +190 -0
- package/dist/chunk-EHGIW7GA.js.map +1 -0
- package/dist/chunk-EJQYE4MY.js +100 -0
- package/dist/chunk-EJQYE4MY.js.map +1 -0
- package/dist/chunk-EKY3A5LO.js +133 -0
- package/dist/chunk-EKY3A5LO.js.map +1 -0
- package/dist/chunk-EL3OXVOW.js +31 -0
- package/dist/chunk-EL3OXVOW.js.map +1 -0
- package/dist/chunk-EP3U7OQ3.js +18 -0
- package/dist/chunk-EP3U7OQ3.js.map +1 -0
- package/dist/chunk-EY2PGOG3.js +246 -0
- package/dist/chunk-EY2PGOG3.js.map +1 -0
- package/dist/chunk-FAOX6A5D.js +2 -0
- package/dist/chunk-FAOX6A5D.js.map +1 -0
- package/dist/chunk-FBJ2JSRA.js +47 -0
- package/dist/chunk-FBJ2JSRA.js.map +1 -0
- package/dist/chunk-FDJ77DTR.js +2 -0
- package/dist/chunk-FDJ77DTR.js.map +1 -0
- package/dist/chunk-FDPONOOT.js +93 -0
- package/dist/chunk-FDPONOOT.js.map +1 -0
- package/dist/chunk-FHDJKH2A.js +2 -0
- package/dist/chunk-FHDJKH2A.js.map +1 -0
- package/dist/chunk-FINAKMC6.js +796 -0
- package/dist/chunk-FINAKMC6.js.map +1 -0
- package/dist/chunk-FKUP7QRJ.js +54 -0
- package/dist/chunk-FKUP7QRJ.js.map +1 -0
- package/dist/chunk-FPLZ24MK.js +2 -0
- package/dist/chunk-FPLZ24MK.js.map +1 -0
- package/dist/chunk-FRFSDZIN.js +2 -0
- package/dist/chunk-FRFSDZIN.js.map +1 -0
- package/dist/chunk-FYCCNQXQ.js +173 -0
- package/dist/chunk-FYCCNQXQ.js.map +1 -0
- package/dist/chunk-G3OTDYCD.js +53 -0
- package/dist/chunk-G3OTDYCD.js.map +1 -0
- package/dist/chunk-G72UOVKS.js +2 -0
- package/dist/chunk-G72UOVKS.js.map +1 -0
- package/dist/chunk-GAI4NEPU.js +151 -0
- package/dist/chunk-GAI4NEPU.js.map +1 -0
- package/dist/chunk-GRWGNWIJ.js +187 -0
- package/dist/chunk-GRWGNWIJ.js.map +1 -0
- package/dist/chunk-GV6GQXKX.js +176 -0
- package/dist/chunk-GV6GQXKX.js.map +1 -0
- package/dist/chunk-H5UA5JW4.js +140 -0
- package/dist/chunk-H5UA5JW4.js.map +1 -0
- package/dist/chunk-H5XSI63P.js +2 -0
- package/dist/chunk-H5XSI63P.js.map +1 -0
- package/dist/chunk-HANBQNW3.js +1498 -0
- package/dist/chunk-HANBQNW3.js.map +1 -0
- package/dist/chunk-HCU2JHPH.js +169 -0
- package/dist/chunk-HCU2JHPH.js.map +1 -0
- package/dist/chunk-HDDXP2J7.js +2 -0
- package/dist/chunk-HDDXP2J7.js.map +1 -0
- package/dist/chunk-HDS64Z5L.js +54 -0
- package/dist/chunk-HDS64Z5L.js.map +1 -0
- package/dist/chunk-HHVULJGX.js +2 -0
- package/dist/chunk-HHVULJGX.js.map +1 -0
- package/dist/chunk-HLMFRCFE.js +2 -0
- package/dist/chunk-HLMFRCFE.js.map +1 -0
- package/dist/chunk-HPUPDT4Q.js +2 -0
- package/dist/chunk-HPUPDT4Q.js.map +1 -0
- package/dist/chunk-HRYH7XQP.js +209 -0
- package/dist/chunk-HRYH7XQP.js.map +1 -0
- package/dist/chunk-HVFYAQLK.js +101 -0
- package/dist/chunk-HVFYAQLK.js.map +1 -0
- package/dist/chunk-HZPNST7D.js +2 -0
- package/dist/chunk-HZPNST7D.js.map +1 -0
- package/dist/chunk-I6O6ACCH.js +2 -0
- package/dist/chunk-I6O6ACCH.js.map +1 -0
- package/dist/chunk-IGP5E4FC.js +201 -0
- package/dist/chunk-IGP5E4FC.js.map +1 -0
- package/dist/chunk-IHMFEPIT.js +123 -0
- package/dist/chunk-IHMFEPIT.js.map +1 -0
- package/dist/chunk-IM5VJP6T.js +2 -0
- package/dist/chunk-IM5VJP6T.js.map +1 -0
- package/dist/chunk-IRUZDWJ3.js +218 -0
- package/dist/chunk-IRUZDWJ3.js.map +1 -0
- package/dist/chunk-ISWUCXEZ.js +2 -0
- package/dist/chunk-ISWUCXEZ.js.map +1 -0
- package/dist/chunk-ITFDGFOT.js +31 -0
- package/dist/chunk-ITFDGFOT.js.map +1 -0
- package/dist/chunk-IUQ474IC.js +2 -0
- package/dist/chunk-IUQ474IC.js.map +1 -0
- package/dist/chunk-IY23F2Y5.js +2 -0
- package/dist/chunk-IY23F2Y5.js.map +1 -0
- package/dist/chunk-IZJOZJDL.js +75 -0
- package/dist/chunk-IZJOZJDL.js.map +1 -0
- package/dist/chunk-J2P4YZLC.js +85 -0
- package/dist/chunk-J2P4YZLC.js.map +1 -0
- package/dist/chunk-JCRBDA66.js +2 -0
- package/dist/chunk-JCRBDA66.js.map +1 -0
- package/dist/chunk-JGS2IHER.js +140 -0
- package/dist/chunk-JGS2IHER.js.map +1 -0
- package/dist/chunk-JNWXHPZG.js +24 -0
- package/dist/chunk-JNWXHPZG.js.map +1 -0
- package/dist/chunk-JWWJ2Z5C.js +2 -0
- package/dist/chunk-JWWJ2Z5C.js.map +1 -0
- package/dist/chunk-K2GLXCTG.js +2 -0
- package/dist/chunk-K2GLXCTG.js.map +1 -0
- package/dist/chunk-K6YRTASS.js +55 -0
- package/dist/chunk-K6YRTASS.js.map +1 -0
- package/dist/chunk-KAAJL2HA.js +327 -0
- package/dist/chunk-KAAJL2HA.js.map +1 -0
- package/dist/chunk-KBNWM27Q.js +48 -0
- package/dist/chunk-KBNWM27Q.js.map +1 -0
- package/dist/chunk-KOVHUAHG.js +164 -0
- package/dist/chunk-KOVHUAHG.js.map +1 -0
- package/dist/chunk-KRVSD4OK.js +2 -0
- package/dist/chunk-KRVSD4OK.js.map +1 -0
- package/dist/chunk-KTH3GWAL.js +116 -0
- package/dist/chunk-KTH3GWAL.js.map +1 -0
- package/dist/chunk-KUAVM54Y.js +30 -0
- package/dist/chunk-KUAVM54Y.js.map +1 -0
- package/dist/chunk-KWQ6HV5Z.js +97 -0
- package/dist/chunk-KWQ6HV5Z.js.map +1 -0
- package/dist/chunk-KZWC6JCI.js +177 -0
- package/dist/chunk-KZWC6JCI.js.map +1 -0
- package/dist/chunk-L37QZALU.js +17 -0
- package/dist/chunk-L37QZALU.js.map +1 -0
- package/dist/chunk-L3SHPHLK.js +35 -0
- package/dist/chunk-L3SHPHLK.js.map +1 -0
- package/dist/chunk-L66VJIRD.js +2 -0
- package/dist/chunk-L66VJIRD.js.map +1 -0
- package/dist/chunk-LDOCY4SU.js +68 -0
- package/dist/chunk-LDOCY4SU.js.map +1 -0
- package/dist/chunk-LJGWA2XL.js +2 -0
- package/dist/chunk-LJGWA2XL.js.map +1 -0
- package/dist/chunk-LLQWLZ75.js +2 -0
- package/dist/chunk-LLQWLZ75.js.map +1 -0
- package/dist/chunk-LMO3QK7Q.js +137 -0
- package/dist/chunk-LMO3QK7Q.js.map +1 -0
- package/dist/chunk-LOSXINSS.js +100 -0
- package/dist/chunk-LOSXINSS.js.map +1 -0
- package/dist/chunk-LR2CU7HK.js +41 -0
- package/dist/chunk-LR2CU7HK.js.map +1 -0
- package/dist/chunk-LSYVAOSH.js +2 -0
- package/dist/chunk-LSYVAOSH.js.map +1 -0
- package/dist/chunk-LVRULYU4.js +400 -0
- package/dist/chunk-LVRULYU4.js.map +1 -0
- package/dist/chunk-LXW3GNF7.js +201 -0
- package/dist/chunk-LXW3GNF7.js.map +1 -0
- package/dist/chunk-LYVBDMDQ.js +2 -0
- package/dist/chunk-LYVBDMDQ.js.map +1 -0
- package/dist/chunk-M3WSUFD4.js +2 -0
- package/dist/chunk-M3WSUFD4.js.map +1 -0
- package/dist/chunk-MGAXCPT7.js +87 -0
- package/dist/chunk-MGAXCPT7.js.map +1 -0
- package/dist/chunk-MIXCXZWT.js +2 -0
- package/dist/chunk-MIXCXZWT.js.map +1 -0
- package/dist/chunk-MLGBLKUH.js +2 -0
- package/dist/chunk-MLGBLKUH.js.map +1 -0
- package/dist/chunk-MNS2VWHD.js +2 -0
- package/dist/chunk-MNS2VWHD.js.map +1 -0
- package/dist/chunk-MPMMU3QI.js +2 -0
- package/dist/chunk-MPMMU3QI.js.map +1 -0
- package/dist/chunk-MRWOHWEH.js +2 -0
- package/dist/chunk-MRWOHWEH.js.map +1 -0
- package/dist/chunk-MZDL7N52.js +2 -0
- package/dist/chunk-MZDL7N52.js.map +1 -0
- package/dist/chunk-N44PNGDS.js +169 -0
- package/dist/chunk-N44PNGDS.js.map +1 -0
- package/dist/chunk-N7PJTMRL.js +2 -0
- package/dist/chunk-N7PJTMRL.js.map +1 -0
- package/dist/chunk-NBMF7SIS.js +35 -0
- package/dist/chunk-NBMF7SIS.js.map +1 -0
- package/dist/chunk-NJAGSGPF.js +245 -0
- package/dist/chunk-NJAGSGPF.js.map +1 -0
- package/dist/chunk-NMGNXW3J.js +98 -0
- package/dist/chunk-NMGNXW3J.js.map +1 -0
- package/dist/chunk-NQY3QNLR.js +80 -0
- package/dist/chunk-NQY3QNLR.js.map +1 -0
- package/dist/chunk-NRNIUM75.js +2 -0
- package/dist/chunk-NRNIUM75.js.map +1 -0
- package/dist/chunk-NRSSSVWB.js +61 -0
- package/dist/chunk-NRSSSVWB.js.map +1 -0
- package/dist/chunk-NTTSHOOK.js +78 -0
- package/dist/chunk-NTTSHOOK.js.map +1 -0
- package/dist/chunk-O3JWMB6O.js +20 -0
- package/dist/chunk-O3JWMB6O.js.map +1 -0
- package/dist/chunk-OBEJUAN6.js +246 -0
- package/dist/chunk-OBEJUAN6.js.map +1 -0
- package/dist/chunk-OEPN373X.js +2 -0
- package/dist/chunk-OEPN373X.js.map +1 -0
- package/dist/chunk-OITCRC5D.js +2 -0
- package/dist/chunk-OITCRC5D.js.map +1 -0
- package/dist/chunk-OKV3N7QK.js +2 -0
- package/dist/chunk-OKV3N7QK.js.map +1 -0
- package/dist/chunk-ON2E7XHD.js +51 -0
- package/dist/chunk-ON2E7XHD.js.map +1 -0
- package/dist/chunk-OPMMD25Z.js +218 -0
- package/dist/chunk-OPMMD25Z.js.map +1 -0
- package/dist/chunk-OR4NVFPH.js +2 -0
- package/dist/chunk-OR4NVFPH.js.map +1 -0
- package/dist/chunk-OV4GQOLC.js +73 -0
- package/dist/chunk-OV4GQOLC.js.map +1 -0
- package/dist/chunk-OYKS7YHE.js +2 -0
- package/dist/chunk-OYKS7YHE.js.map +1 -0
- package/dist/chunk-OYM3NHSD.js +74 -0
- package/dist/chunk-OYM3NHSD.js.map +1 -0
- package/dist/chunk-OZTM6PYF.js +30 -0
- package/dist/chunk-OZTM6PYF.js.map +1 -0
- package/dist/chunk-PHAENHGL.js +19 -0
- package/dist/chunk-PHAENHGL.js.map +1 -0
- package/dist/chunk-PLCQZBZS.js +63 -0
- package/dist/chunk-PLCQZBZS.js.map +1 -0
- package/dist/chunk-PP7POY7C.js +110 -0
- package/dist/chunk-PP7POY7C.js.map +1 -0
- package/dist/chunk-PSBNQZB4.js +2 -0
- package/dist/chunk-PSBNQZB4.js.map +1 -0
- package/dist/chunk-PYPNGKRD.js +355 -0
- package/dist/chunk-PYPNGKRD.js.map +1 -0
- package/dist/chunk-QDJHUNBQ.js +2 -0
- package/dist/chunk-QDJHUNBQ.js.map +1 -0
- package/dist/chunk-QDTGDYMM.js +77 -0
- package/dist/chunk-QDTGDYMM.js.map +1 -0
- package/dist/chunk-QF6UWWDY.js +125 -0
- package/dist/chunk-QF6UWWDY.js.map +1 -0
- package/dist/chunk-QGX37P5L.js +24 -0
- package/dist/chunk-QGX37P5L.js.map +1 -0
- package/dist/chunk-QNEOO22E.js +75 -0
- package/dist/chunk-QNEOO22E.js.map +1 -0
- package/dist/chunk-QODOFLHL.js +2 -0
- package/dist/chunk-QODOFLHL.js.map +1 -0
- package/dist/chunk-QRGYKV4J.js +2 -0
- package/dist/chunk-QRGYKV4J.js.map +1 -0
- package/dist/chunk-QTIKGWU4.js +91 -0
- package/dist/chunk-QTIKGWU4.js.map +1 -0
- package/dist/chunk-R3SYH7RG.js +782 -0
- package/dist/chunk-R3SYH7RG.js.map +1 -0
- package/dist/chunk-R5JYMCEA.js +2 -0
- package/dist/chunk-R5JYMCEA.js.map +1 -0
- package/dist/chunk-R7DDZIE3.js +232 -0
- package/dist/chunk-R7DDZIE3.js.map +1 -0
- package/dist/chunk-RB5AWLDJ.js +26 -0
- package/dist/chunk-RB5AWLDJ.js.map +1 -0
- package/dist/chunk-RF7JSNXJ.js +2 -0
- package/dist/chunk-RF7JSNXJ.js.map +1 -0
- package/dist/chunk-RHXVQZOW.js +2 -0
- package/dist/chunk-RHXVQZOW.js.map +1 -0
- package/dist/chunk-RM5JIUVW.js +74 -0
- package/dist/chunk-RM5JIUVW.js.map +1 -0
- package/dist/chunk-RMSMTLXH.js +2 -0
- package/dist/chunk-RMSMTLXH.js.map +1 -0
- package/dist/chunk-RNC4M6SG.js +85 -0
- package/dist/chunk-RNC4M6SG.js.map +1 -0
- package/dist/chunk-RRYWMYGI.js +14 -0
- package/dist/chunk-RRYWMYGI.js.map +1 -0
- package/dist/chunk-RRZUMIYG.js +93 -0
- package/dist/chunk-RRZUMIYG.js.map +1 -0
- package/dist/chunk-RTHCX2TG.js +59 -0
- package/dist/chunk-RTHCX2TG.js.map +1 -0
- package/dist/chunk-RWUKMJYA.js +39 -0
- package/dist/chunk-RWUKMJYA.js.map +1 -0
- package/dist/chunk-SMTAPQEQ.js +2 -0
- package/dist/chunk-SMTAPQEQ.js.map +1 -0
- package/dist/chunk-SS6EOZKZ.js +2 -0
- package/dist/chunk-SS6EOZKZ.js.map +1 -0
- package/dist/chunk-T2XEMEN2.js +2 -0
- package/dist/chunk-T2XEMEN2.js.map +1 -0
- package/dist/chunk-T4JNXV75.js +125 -0
- package/dist/chunk-T4JNXV75.js.map +1 -0
- package/dist/chunk-T7JOWG2A.js +10 -0
- package/dist/chunk-T7JOWG2A.js.map +1 -0
- package/dist/chunk-TAQI4JTE.js +12 -0
- package/dist/chunk-TAQI4JTE.js.map +1 -0
- package/dist/chunk-TEKBTTP2.js +27 -0
- package/dist/chunk-TEKBTTP2.js.map +1 -0
- package/dist/chunk-TNOANK34.js +4483 -0
- package/dist/chunk-TNOANK34.js.map +1 -0
- package/dist/chunk-TU24Y4HN.js +178 -0
- package/dist/chunk-TU24Y4HN.js.map +1 -0
- package/dist/chunk-U26XDHMX.js +726 -0
- package/dist/chunk-U26XDHMX.js.map +1 -0
- package/dist/chunk-U4LHV5DS.js +36 -0
- package/dist/chunk-U4LHV5DS.js.map +1 -0
- package/dist/chunk-U7QYCYHC.js +2 -0
- package/dist/chunk-U7QYCYHC.js.map +1 -0
- package/dist/chunk-UANAVLMS.js +2 -0
- package/dist/chunk-UANAVLMS.js.map +1 -0
- package/dist/chunk-UCEVPLR5.js +2 -0
- package/dist/chunk-UCEVPLR5.js.map +1 -0
- package/dist/chunk-UCQDLRHR.js +31 -0
- package/dist/chunk-UCQDLRHR.js.map +1 -0
- package/dist/chunk-UFF7LLGU.js +2 -0
- package/dist/chunk-UFF7LLGU.js.map +1 -0
- package/dist/chunk-UG5TKXTK.js +2 -0
- package/dist/chunk-UG5TKXTK.js.map +1 -0
- package/dist/chunk-ULIDYFM7.js +192 -0
- package/dist/chunk-ULIDYFM7.js.map +1 -0
- package/dist/chunk-UPEMEBWH.js +186 -0
- package/dist/chunk-UPEMEBWH.js.map +1 -0
- package/dist/chunk-UQHWOPUY.js +61 -0
- package/dist/chunk-UQHWOPUY.js.map +1 -0
- package/dist/chunk-UQRYTMR7.js +2 -0
- package/dist/chunk-UQRYTMR7.js.map +1 -0
- package/dist/chunk-URVAZW44.js +323 -0
- package/dist/chunk-URVAZW44.js.map +1 -0
- package/dist/chunk-USI4LB3N.js +2 -0
- package/dist/chunk-USI4LB3N.js.map +1 -0
- package/dist/chunk-UXSV6RVS.js +31 -0
- package/dist/chunk-UXSV6RVS.js.map +1 -0
- package/dist/chunk-V2S5DINS.js +2 -0
- package/dist/chunk-V2S5DINS.js.map +1 -0
- package/dist/chunk-V3EQ6ACC.js +2 -0
- package/dist/chunk-V3EQ6ACC.js.map +1 -0
- package/dist/chunk-V4DDHF7S.js +147 -0
- package/dist/chunk-V4DDHF7S.js.map +1 -0
- package/dist/chunk-VA2OONPE.js +77 -0
- package/dist/chunk-VA2OONPE.js.map +1 -0
- package/dist/chunk-VFF3AN4Y.js +90 -0
- package/dist/chunk-VFF3AN4Y.js.map +1 -0
- package/dist/chunk-VH7GG77B.js +2 -0
- package/dist/chunk-VH7GG77B.js.map +1 -0
- package/dist/chunk-VHLPJ4XW.js +2 -0
- package/dist/chunk-VHLPJ4XW.js.map +1 -0
- package/dist/chunk-VLE5THFD.js +2 -0
- package/dist/chunk-VLE5THFD.js.map +1 -0
- package/dist/chunk-VORFRWM5.js +2 -0
- package/dist/chunk-VORFRWM5.js.map +1 -0
- package/dist/chunk-VQ2T3OEC.js +27 -0
- package/dist/chunk-VQ2T3OEC.js.map +1 -0
- package/dist/chunk-VRIAWF3A.js +25 -0
- package/dist/chunk-VRIAWF3A.js.map +1 -0
- package/dist/chunk-W6HCXQBH.js +198 -0
- package/dist/chunk-W6HCXQBH.js.map +1 -0
- package/dist/chunk-W7I2X6VI.js +2 -0
- package/dist/chunk-W7I2X6VI.js.map +1 -0
- package/dist/chunk-WCCCW4KD.js +140 -0
- package/dist/chunk-WCCCW4KD.js.map +1 -0
- package/dist/chunk-WNIVCHDP.js +2 -0
- package/dist/chunk-WNIVCHDP.js.map +1 -0
- package/dist/chunk-WOMO5CZ7.js +2 -0
- package/dist/chunk-WOMO5CZ7.js.map +1 -0
- package/dist/chunk-WTB4DDZP.js +163 -0
- package/dist/chunk-WTB4DDZP.js.map +1 -0
- package/dist/chunk-WW3CD7AU.js +118 -0
- package/dist/chunk-WW3CD7AU.js.map +1 -0
- package/dist/chunk-WX3LWMVU.js +81 -0
- package/dist/chunk-WX3LWMVU.js.map +1 -0
- package/dist/chunk-WYENWW3Y.js +2 -0
- package/dist/chunk-WYENWW3Y.js.map +1 -0
- package/dist/chunk-WZTFU6FJ.js +69 -0
- package/dist/chunk-WZTFU6FJ.js.map +1 -0
- package/dist/chunk-X4FE7UKP.js +2 -0
- package/dist/chunk-X4FE7UKP.js.map +1 -0
- package/dist/chunk-X6J4KKZZ.js +126 -0
- package/dist/chunk-X6J4KKZZ.js.map +1 -0
- package/dist/chunk-XAFRTZQF.js +56 -0
- package/dist/chunk-XAFRTZQF.js.map +1 -0
- package/dist/chunk-XGX3UFLD.js +2 -0
- package/dist/chunk-XGX3UFLD.js.map +1 -0
- package/dist/chunk-XGXCMA5M.js +2 -0
- package/dist/chunk-XGXCMA5M.js.map +1 -0
- package/dist/chunk-XJQADN6S.js +41 -0
- package/dist/chunk-XJQADN6S.js.map +1 -0
- package/dist/chunk-XMZ5LXL4.js +68 -0
- package/dist/chunk-XMZ5LXL4.js.map +1 -0
- package/dist/chunk-XONGYCW3.js +637 -0
- package/dist/chunk-XONGYCW3.js.map +1 -0
- package/dist/chunk-XYACSO57.js +36 -0
- package/dist/chunk-XYACSO57.js.map +1 -0
- package/dist/chunk-XYFEQHEM.js +2 -0
- package/dist/chunk-XYFEQHEM.js.map +1 -0
- package/dist/chunk-XZ23AFOP.js +26 -0
- package/dist/chunk-XZ23AFOP.js.map +1 -0
- package/dist/chunk-YACASX6X.js +54 -0
- package/dist/chunk-YACASX6X.js.map +1 -0
- package/dist/chunk-YCFOFNQF.js +28 -0
- package/dist/chunk-YCFOFNQF.js.map +1 -0
- package/dist/chunk-YIFB24WW.js +37 -0
- package/dist/chunk-YIFB24WW.js.map +1 -0
- package/dist/chunk-YIVL6HWS.js +68 -0
- package/dist/chunk-YIVL6HWS.js.map +1 -0
- package/dist/chunk-YK4H7VWM.js +2 -0
- package/dist/chunk-YK4H7VWM.js.map +1 -0
- package/dist/chunk-YL7VBHPZ.js +100 -0
- package/dist/chunk-YL7VBHPZ.js.map +1 -0
- package/dist/chunk-YMFEBGTU.js +2 -0
- package/dist/chunk-YMFEBGTU.js.map +1 -0
- package/dist/chunk-YPLKH5H4.js +226 -0
- package/dist/chunk-YPLKH5H4.js.map +1 -0
- package/dist/chunk-YWB7HLL7.js +126 -0
- package/dist/chunk-YWB7HLL7.js.map +1 -0
- package/dist/chunk-YXHHUJOZ.js +235 -0
- package/dist/chunk-YXHHUJOZ.js.map +1 -0
- package/dist/chunk-YZVXIPBC.js +2 -0
- package/dist/chunk-YZVXIPBC.js.map +1 -0
- package/dist/chunk-Z44RRTMX.js +2 -0
- package/dist/chunk-Z44RRTMX.js.map +1 -0
- package/dist/chunk-Z4CYBG3H.js +2 -0
- package/dist/chunk-Z4CYBG3H.js.map +1 -0
- package/dist/chunk-ZE2H4J3P.js +2 -0
- package/dist/chunk-ZE2H4J3P.js.map +1 -0
- package/dist/chunk-ZEMTALKO.js +2 -0
- package/dist/chunk-ZEMTALKO.js.map +1 -0
- package/dist/chunk-ZI2OXD6L.js +244 -0
- package/dist/chunk-ZI2OXD6L.js.map +1 -0
- package/dist/chunk-ZNFHDBUW.js +266 -0
- package/dist/chunk-ZNFHDBUW.js.map +1 -0
- package/dist/chunk-ZXBUOHCR.js +111 -0
- package/dist/chunk-ZXBUOHCR.js.map +1 -0
- package/dist/chunk-ZXVPEQM5.js +2 -0
- package/dist/chunk-ZXVPEQM5.js.map +1 -0
- package/dist/components/accordion/accordion.js +16 -0
- package/dist/components/accordion/accordion.js.map +1 -0
- package/dist/components/accordion/index.js +17 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/advanced-group/advanced-group.js +18 -0
- package/dist/components/advanced-group/advanced-group.js.map +1 -0
- package/dist/components/advanced-group/index.js +18 -0
- package/dist/components/advanced-group/index.js.map +1 -0
- package/dist/components/alert/alert.js +16 -0
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/index.js +17 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/alert-dialog/alert-dialog.js +30 -0
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/components/alert-dialog/index.js +31 -0
- package/dist/components/alert-dialog/index.js.map +1 -0
- package/dist/components/ambient-field/ambient-field.css +59 -0
- package/dist/components/ambient-field/ambient-field.css.map +1 -0
- package/dist/components/ambient-field/ambient-field.js +15 -0
- package/dist/components/ambient-field/ambient-field.js.map +1 -0
- package/dist/components/ambient-field/index.css +59 -0
- package/dist/components/ambient-field/index.css.map +1 -0
- package/dist/components/ambient-field/index.js +16 -0
- package/dist/components/ambient-field/index.js.map +1 -0
- package/dist/components/app-shell/app-shell.js +14 -0
- package/dist/components/app-shell/app-shell.js.map +1 -0
- package/dist/components/app-shell/index.js +15 -0
- package/dist/components/app-shell/index.js.map +1 -0
- package/dist/components/app-sidebar/app-sidebar.js +31 -0
- package/dist/components/app-sidebar/app-sidebar.js.map +1 -0
- package/dist/components/app-sidebar/index.js +31 -0
- package/dist/components/app-sidebar/index.js.map +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +9 -0
- package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -0
- package/dist/components/aspect-ratio/index.js +10 -0
- package/dist/components/aspect-ratio/index.js.map +1 -0
- package/dist/components/attribution-panel/attribution-panel.js +24 -0
- package/dist/components/attribution-panel/attribution-panel.js.map +1 -0
- package/dist/components/attribution-panel/attribution-types.js +2 -0
- package/dist/components/attribution-panel/attribution-types.js.map +1 -0
- package/dist/components/attribution-panel/attributions.generated.js +9 -0
- package/dist/components/attribution-panel/attributions.generated.js.map +1 -0
- package/dist/components/attribution-panel/index.js +24 -0
- package/dist/components/attribution-panel/index.js.map +1 -0
- package/dist/components/avatar/avatar.js +14 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/index.js +15 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.js +16 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/index.js +13 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/bento-grid/bento-grid.js +16 -0
- package/dist/components/bento-grid/bento-grid.js.map +1 -0
- package/dist/components/bento-grid/index.js +16 -0
- package/dist/components/bento-grid/index.js.map +1 -0
- package/dist/components/bounded-number/bounded-number.js +24 -0
- package/dist/components/bounded-number/bounded-number.js.map +1 -0
- package/dist/components/bounded-number/index.js +24 -0
- package/dist/components/bounded-number/index.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +28 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/index.js +26 -0
- package/dist/components/breadcrumb/index.js.map +1 -0
- package/dist/components/button/button.js +12 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/index.js +13 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button-group/button-group.js +18 -0
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/button-group/index.js +19 -0
- package/dist/components/button-group/index.js.map +1 -0
- package/dist/components/calendar/calendar.js +12 -0
- package/dist/components/calendar/calendar.js.map +1 -0
- package/dist/components/calendar/index.js +13 -0
- package/dist/components/calendar/index.js.map +1 -0
- package/dist/components/card/card.js +27 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/index.js +27 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/carousel/carousel.js +24 -0
- package/dist/components/carousel/carousel.js.map +1 -0
- package/dist/components/carousel/index.js +24 -0
- package/dist/components/carousel/index.js.map +1 -0
- package/dist/components/change-review/change-review.js +34 -0
- package/dist/components/change-review/change-review.js.map +1 -0
- package/dist/components/change-review/index.js +34 -0
- package/dist/components/change-review/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.js +10 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/index.js +11 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/collapsible/collapsible.js +14 -0
- package/dist/components/collapsible/collapsible.js.map +1 -0
- package/dist/components/collapsible/index.js +15 -0
- package/dist/components/collapsible/index.js.map +1 -0
- package/dist/components/collapsible-panel/index.js +11 -0
- package/dist/components/collapsible-panel/index.js.map +1 -0
- package/dist/components/collapsible-panel/use-collapsible-panel.js +11 -0
- package/dist/components/collapsible-panel/use-collapsible-panel.js.map +1 -0
- package/dist/components/color-picker/color-picker.js +18 -0
- package/dist/components/color-picker/color-picker.js.map +1 -0
- package/dist/components/color-picker/index.js +18 -0
- package/dist/components/color-picker/index.js.map +1 -0
- package/dist/components/combobox/combobox.js +28 -0
- package/dist/components/combobox/combobox.js.map +1 -0
- package/dist/components/combobox/index.js +28 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/command/command.js +39 -0
- package/dist/components/command/command.js.map +1 -0
- package/dist/components/command/index.js +39 -0
- package/dist/components/command/index.js.map +1 -0
- package/dist/components/command-chip/command-chip.js +17 -0
- package/dist/components/command-chip/command-chip.js.map +1 -0
- package/dist/components/command-chip/index.js +17 -0
- package/dist/components/command-chip/index.js.map +1 -0
- package/dist/components/command-trigger/command-trigger.js +12 -0
- package/dist/components/command-trigger/command-trigger.js.map +1 -0
- package/dist/components/command-trigger/index.js +13 -0
- package/dist/components/command-trigger/index.js.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.js +20 -0
- package/dist/components/confirm-dialog/confirm-dialog.js.map +1 -0
- package/dist/components/confirm-dialog/index.js +20 -0
- package/dist/components/confirm-dialog/index.js.map +1 -0
- package/dist/components/context-menu/context-menu.js +36 -0
- package/dist/components/context-menu/context-menu.js.map +1 -0
- package/dist/components/context-menu/index.js +37 -0
- package/dist/components/context-menu/index.js.map +1 -0
- package/dist/components/context-rail/context-rail.js +35 -0
- package/dist/components/context-rail/context-rail.js.map +1 -0
- package/dist/components/context-rail/index.js +35 -0
- package/dist/components/context-rail/index.js.map +1 -0
- package/dist/components/copyable-value/copyable-value.js +19 -0
- package/dist/components/copyable-value/copyable-value.js.map +1 -0
- package/dist/components/copyable-value/index.js +17 -0
- package/dist/components/copyable-value/index.js.map +1 -0
- package/dist/components/date-picker/date-picker.js +21 -0
- package/dist/components/date-picker/date-picker.js.map +1 -0
- package/dist/components/date-picker/index.js +21 -0
- package/dist/components/date-picker/index.js.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.js +22 -0
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -0
- package/dist/components/date-range-picker/index.js +22 -0
- package/dist/components/date-range-picker/index.js.map +1 -0
- package/dist/components/descriptions/descriptions.js +12 -0
- package/dist/components/descriptions/descriptions.js.map +1 -0
- package/dist/components/descriptions/index.js +13 -0
- package/dist/components/descriptions/index.js.map +1 -0
- package/dist/components/dialog/dialog.js +41 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/index.js +45 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/dialog/use-dialog-dismiss-guard.js +10 -0
- package/dist/components/dialog/use-dialog-dismiss-guard.js.map +1 -0
- package/dist/components/drawer/drawer.js +26 -0
- package/dist/components/drawer/drawer.js.map +1 -0
- package/dist/components/drawer/index.js +27 -0
- package/dist/components/drawer/index.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +38 -0
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu/index.js +39 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/empty-state/empty-state.js +15 -0
- package/dist/components/empty-state/empty-state.js.map +1 -0
- package/dist/components/empty-state/index.js +16 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/error-state/error-state.js +15 -0
- package/dist/components/error-state/error-state.js.map +1 -0
- package/dist/components/error-state/index.js +16 -0
- package/dist/components/error-state/index.js.map +1 -0
- package/dist/components/expand-dialog/expand-dialog.js +28 -0
- package/dist/components/expand-dialog/expand-dialog.js.map +1 -0
- package/dist/components/expand-dialog/index.js +28 -0
- package/dist/components/expand-dialog/index.js.map +1 -0
- package/dist/components/field/field-context.js +11 -0
- package/dist/components/field/field-context.js.map +1 -0
- package/dist/components/field/field.js +23 -0
- package/dist/components/field/field.js.map +1 -0
- package/dist/components/field/index.js +23 -0
- package/dist/components/field/index.js.map +1 -0
- package/dist/components/field-row/field-row.js +14 -0
- package/dist/components/field-row/field-row.js.map +1 -0
- package/dist/components/field-row/index.js +14 -0
- package/dist/components/field-row/index.js.map +1 -0
- package/dist/components/file-upload/file-upload.js +28 -0
- package/dist/components/file-upload/file-upload.js.map +1 -0
- package/dist/components/file-upload/index.js +26 -0
- package/dist/components/file-upload/index.js.map +1 -0
- package/dist/components/form/form.js +27 -0
- package/dist/components/form/form.js.map +1 -0
- package/dist/components/hover-card/hover-card.js +14 -0
- package/dist/components/hover-card/hover-card.js.map +1 -0
- package/dist/components/hover-card/index.js +15 -0
- package/dist/components/hover-card/index.js.map +1 -0
- package/dist/components/icon-button/icon-button.js +14 -0
- package/dist/components/icon-button/icon-button.js.map +1 -0
- package/dist/components/icon-button/index.js +15 -0
- package/dist/components/icon-button/index.js.map +1 -0
- package/dist/components/input/index.js +11 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.js +10 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input-group/index.js +31 -0
- package/dist/components/input-group/index.js.map +1 -0
- package/dist/components/input-group/input-group.js +30 -0
- package/dist/components/input-group/input-group.js.map +1 -0
- package/dist/components/input-otp/index.js +17 -0
- package/dist/components/input-otp/index.js.map +1 -0
- package/dist/components/input-otp/input-otp.js +17 -0
- package/dist/components/input-otp/input-otp.js.map +1 -0
- package/dist/components/install-tabs/index.js +28 -0
- package/dist/components/install-tabs/index.js.map +1 -0
- package/dist/components/install-tabs/install-tabs.js +28 -0
- package/dist/components/install-tabs/install-tabs.js.map +1 -0
- package/dist/components/integration-matrix/index.js +26 -0
- package/dist/components/integration-matrix/index.js.map +1 -0
- package/dist/components/integration-matrix/integration-matrix.js +26 -0
- package/dist/components/integration-matrix/integration-matrix.js.map +1 -0
- package/dist/components/kbd/index.js +11 -0
- package/dist/components/kbd/index.js.map +1 -0
- package/dist/components/kbd/kbd.js +10 -0
- package/dist/components/kbd/kbd.js.map +1 -0
- package/dist/components/key-value-editor/index.js +18 -0
- package/dist/components/key-value-editor/index.js.map +1 -0
- package/dist/components/key-value-editor/key-value-editor.js +18 -0
- package/dist/components/key-value-editor/key-value-editor.js.map +1 -0
- package/dist/components/keyboard-shortcuts/index.js +25 -0
- package/dist/components/keyboard-shortcuts/index.js.map +1 -0
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.js +25 -0
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.js.map +1 -0
- package/dist/components/label/index.js +11 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.js +10 -0
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/link-preview/index.js +14 -0
- package/dist/components/link-preview/index.js.map +1 -0
- package/dist/components/link-preview/link-preview.js +14 -0
- package/dist/components/link-preview/link-preview.js.map +1 -0
- package/dist/components/list-editor/index.js +18 -0
- package/dist/components/list-editor/index.js.map +1 -0
- package/dist/components/list-editor/list-editor.js +18 -0
- package/dist/components/list-editor/list-editor.js.map +1 -0
- package/dist/components/loading-state/index.js +16 -0
- package/dist/components/loading-state/index.js.map +1 -0
- package/dist/components/loading-state/loading-state.js +15 -0
- package/dist/components/loading-state/loading-state.js.map +1 -0
- package/dist/components/locale-provider/index.js +16 -0
- package/dist/components/locale-provider/index.js.map +1 -0
- package/dist/components/locale-provider/locale-provider.js +13 -0
- package/dist/components/locale-provider/locale-provider.js.map +1 -0
- package/dist/components/locale-provider/messages.js +10 -0
- package/dist/components/locale-provider/messages.js.map +1 -0
- package/dist/components/match-highlight/index.js +15 -0
- package/dist/components/match-highlight/index.js.map +1 -0
- package/dist/components/match-highlight/match-highlight.js +14 -0
- package/dist/components/match-highlight/match-highlight.js.map +1 -0
- package/dist/components/mention-input/index.js +46 -0
- package/dist/components/mention-input/index.js.map +1 -0
- package/dist/components/mention-input/mention-input.js +33 -0
- package/dist/components/mention-input/mention-input.js.map +1 -0
- package/dist/components/mention-input/mention-value.js +20 -0
- package/dist/components/mention-input/mention-value.js.map +1 -0
- package/dist/components/menubar/index.js +39 -0
- package/dist/components/menubar/index.js.map +1 -0
- package/dist/components/menubar/menubar.js +38 -0
- package/dist/components/menubar/menubar.js.map +1 -0
- package/dist/components/meter/index.js +15 -0
- package/dist/components/meter/index.js.map +1 -0
- package/dist/components/meter/meter.js +15 -0
- package/dist/components/meter/meter.js.map +1 -0
- package/dist/components/metric-card/index.js +24 -0
- package/dist/components/metric-card/index.js.map +1 -0
- package/dist/components/metric-card/metric-card.js +24 -0
- package/dist/components/metric-card/metric-card.js.map +1 -0
- package/dist/components/model-picker/index.js +37 -0
- package/dist/components/model-picker/index.js.map +1 -0
- package/dist/components/model-picker/model-picker-state.js +13 -0
- package/dist/components/model-picker/model-picker-state.js.map +1 -0
- package/dist/components/model-picker/model-picker.js +37 -0
- package/dist/components/model-picker/model-picker.js.map +1 -0
- package/dist/components/nav-main/index.js +33 -0
- package/dist/components/nav-main/index.js.map +1 -0
- package/dist/components/nav-main/nav-main.js +33 -0
- package/dist/components/nav-main/nav-main.js.map +1 -0
- package/dist/components/nav-notifications/index.js +20 -0
- package/dist/components/nav-notifications/index.js.map +1 -0
- package/dist/components/nav-notifications/nav-notifications.js +20 -0
- package/dist/components/nav-notifications/nav-notifications.js.map +1 -0
- package/dist/components/nav-user/index.js +35 -0
- package/dist/components/nav-user/index.js.map +1 -0
- package/dist/components/nav-user/nav-user.js +35 -0
- package/dist/components/nav-user/nav-user.js.map +1 -0
- package/dist/components/navigation-menu/index.js +25 -0
- package/dist/components/navigation-menu/index.js.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.js +25 -0
- package/dist/components/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/components/number-input/index.js +22 -0
- package/dist/components/number-input/index.js.map +1 -0
- package/dist/components/number-input/number-input.js +22 -0
- package/dist/components/number-input/number-input.js.map +1 -0
- package/dist/components/page-shell/index.js +11 -0
- package/dist/components/page-shell/index.js.map +1 -0
- package/dist/components/page-shell/page-shell.js +10 -0
- package/dist/components/page-shell/page-shell.js.map +1 -0
- package/dist/components/pagination/index.js +28 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/pagination.js +28 -0
- package/dist/components/pagination/pagination.js.map +1 -0
- package/dist/components/parallax-plane/index.css +17 -0
- package/dist/components/parallax-plane/index.css.map +1 -0
- package/dist/components/parallax-plane/index.js +18 -0
- package/dist/components/parallax-plane/index.js.map +1 -0
- package/dist/components/parallax-plane/parallax-plane.css +17 -0
- package/dist/components/parallax-plane/parallax-plane.css.map +1 -0
- package/dist/components/parallax-plane/parallax-plane.js +18 -0
- package/dist/components/parallax-plane/parallax-plane.js.map +1 -0
- package/dist/components/popover/index.js +17 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.js +16 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/progress/index.js +13 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.js +12 -0
- package/dist/components/progress/progress.js.map +1 -0
- package/dist/components/radio-group/index.js +13 -0
- package/dist/components/radio-group/index.js.map +1 -0
- package/dist/components/radio-group/radio-group.js +12 -0
- package/dist/components/radio-group/radio-group.js.map +1 -0
- package/dist/components/rating/index.js +11 -0
- package/dist/components/rating/index.js.map +1 -0
- package/dist/components/rating/rating.js +11 -0
- package/dist/components/rating/rating.js.map +1 -0
- package/dist/components/resizable/index.js +15 -0
- package/dist/components/resizable/index.js.map +1 -0
- package/dist/components/resizable/resizable.js +14 -0
- package/dist/components/resizable/resizable.js.map +1 -0
- package/dist/components/reveal/index.js +15 -0
- package/dist/components/reveal/index.js.map +1 -0
- package/dist/components/reveal/reveal.js +14 -0
- package/dist/components/reveal/reveal.js.map +1 -0
- package/dist/components/reveal-on-enter/index.css +21 -0
- package/dist/components/reveal-on-enter/index.css.map +1 -0
- package/dist/components/reveal-on-enter/index.js +12 -0
- package/dist/components/reveal-on-enter/index.js.map +1 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.css +21 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.css.map +1 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.js +12 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.js.map +1 -0
- package/dist/components/revision-timeline/index.js +18 -0
- package/dist/components/revision-timeline/index.js.map +1 -0
- package/dist/components/revision-timeline/revision-timeline.js +18 -0
- package/dist/components/revision-timeline/revision-timeline.js.map +1 -0
- package/dist/components/schema-form/from-json-schema.js +13 -0
- package/dist/components/schema-form/from-json-schema.js.map +1 -0
- package/dist/components/schema-form/index.js +140 -0
- package/dist/components/schema-form/index.js.map +1 -0
- package/dist/components/schema-form/schema-form-spec.js +63 -0
- package/dist/components/schema-form/schema-form-spec.js.map +1 -0
- package/dist/components/schema-form/schema-form-store.js +21 -0
- package/dist/components/schema-form/schema-form-store.js.map +1 -0
- package/dist/components/schema-form/schema-form.js +77 -0
- package/dist/components/schema-form/schema-form.js.map +1 -0
- package/dist/components/scroll-area/index.js +13 -0
- package/dist/components/scroll-area/index.js.map +1 -0
- package/dist/components/scroll-area/scroll-area.js +12 -0
- package/dist/components/scroll-area/scroll-area.js.map +1 -0
- package/dist/components/section-header/index.js +11 -0
- package/dist/components/section-header/index.js.map +1 -0
- package/dist/components/section-header/section-header.js +10 -0
- package/dist/components/section-header/section-header.js.map +1 -0
- package/dist/components/segmented-field/index.js +17 -0
- package/dist/components/segmented-field/index.js.map +1 -0
- package/dist/components/segmented-field/segmented-field.js +17 -0
- package/dist/components/segmented-field/segmented-field.js.map +1 -0
- package/dist/components/select/index.js +26 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.js +26 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/separator/index.js +11 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.js +10 -0
- package/dist/components/separator/separator.js.map +1 -0
- package/dist/components/sheet/index.js +30 -0
- package/dist/components/sheet/index.js.map +1 -0
- package/dist/components/sheet/sheet.js +30 -0
- package/dist/components/sheet/sheet.js.map +1 -0
- package/dist/components/side-dock/index.js +20 -0
- package/dist/components/side-dock/index.js.map +1 -0
- package/dist/components/side-dock/side-dock.js +20 -0
- package/dist/components/side-dock/side-dock.js.map +1 -0
- package/dist/components/sidebar/index.js +77 -0
- package/dist/components/sidebar/index.js.map +1 -0
- package/dist/components/sidebar/sidebar.js +77 -0
- package/dist/components/sidebar/sidebar.js.map +1 -0
- package/dist/components/skeleton/index.js +11 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.js +10 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/skip-link/index.js +11 -0
- package/dist/components/skip-link/index.js.map +1 -0
- package/dist/components/skip-link/skip-link.js +10 -0
- package/dist/components/skip-link/skip-link.js.map +1 -0
- package/dist/components/slider/index.js +11 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/slider/slider.js +10 -0
- package/dist/components/slider/slider.js.map +1 -0
- package/dist/components/slider-number/index.js +26 -0
- package/dist/components/slider-number/index.js.map +1 -0
- package/dist/components/slider-number/slider-number.js +26 -0
- package/dist/components/slider-number/slider-number.js.map +1 -0
- package/dist/components/sonner/index.js +13 -0
- package/dist/components/sonner/index.js.map +1 -0
- package/dist/components/sonner/sonner.js +13 -0
- package/dist/components/sonner/sonner.js.map +1 -0
- package/dist/components/spec-playground/index.js +23 -0
- package/dist/components/spec-playground/index.js.map +1 -0
- package/dist/components/spec-playground/locate-json-path.js +17 -0
- package/dist/components/spec-playground/locate-json-path.js.map +1 -0
- package/dist/components/spec-playground/spec-playground.js +23 -0
- package/dist/components/spec-playground/spec-playground.js.map +1 -0
- package/dist/components/spinner/index.js +14 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.js +14 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/split-panel/index.js +13 -0
- package/dist/components/split-panel/index.js.map +1 -0
- package/dist/components/split-panel/split-panel.js +12 -0
- package/dist/components/split-panel/split-panel.js.map +1 -0
- package/dist/components/state-panel/index.js +17 -0
- package/dist/components/state-panel/index.js.map +1 -0
- package/dist/components/state-panel/state-panel.js +17 -0
- package/dist/components/state-panel/state-panel.js.map +1 -0
- package/dist/components/status-badge/index.js +30 -0
- package/dist/components/status-badge/index.js.map +1 -0
- package/dist/components/status-badge/status-badge.js +29 -0
- package/dist/components/status-badge/status-badge.js.map +1 -0
- package/dist/components/surface-tour/index.css +21 -0
- package/dist/components/surface-tour/index.css.map +1 -0
- package/dist/components/surface-tour/index.js +36 -0
- package/dist/components/surface-tour/index.js.map +1 -0
- package/dist/components/surface-tour/surface-tour.css +21 -0
- package/dist/components/surface-tour/surface-tour.css.map +1 -0
- package/dist/components/surface-tour/surface-tour.js +36 -0
- package/dist/components/surface-tour/surface-tour.js.map +1 -0
- package/dist/components/switch/index.js +11 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.js +10 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/table/index.js +28 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table.js +28 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/tabs/index.js +22 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.js +22 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tag-input/index.js +21 -0
- package/dist/components/tag-input/index.js.map +1 -0
- package/dist/components/tag-input/tag-input.js +21 -0
- package/dist/components/tag-input/tag-input.js.map +1 -0
- package/dist/components/team-switcher/index.js +33 -0
- package/dist/components/team-switcher/index.js.map +1 -0
- package/dist/components/team-switcher/team-switcher.js +33 -0
- package/dist/components/team-switcher/team-switcher.js.map +1 -0
- package/dist/components/textarea/index.js +11 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.js +10 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/theme-family-switch/index.js +19 -0
- package/dist/components/theme-family-switch/index.js.map +1 -0
- package/dist/components/theme-family-switch/theme-family-switch.js +19 -0
- package/dist/components/theme-family-switch/theme-family-switch.js.map +1 -0
- package/dist/components/theme-switcher/index.js +24 -0
- package/dist/components/theme-switcher/index.js.map +1 -0
- package/dist/components/theme-switcher/theme-switcher.js +21 -0
- package/dist/components/theme-switcher/theme-switcher.js.map +1 -0
- package/dist/components/theme-switcher/use-theme-transition.js +10 -0
- package/dist/components/theme-switcher/use-theme-transition.js.map +1 -0
- package/dist/components/timeline/index.js +18 -0
- package/dist/components/timeline/index.js.map +1 -0
- package/dist/components/timeline/timeline.js +19 -0
- package/dist/components/timeline/timeline.js.map +1 -0
- package/dist/components/toggle/index.js +13 -0
- package/dist/components/toggle/index.js.map +1 -0
- package/dist/components/toggle/toggle.js +12 -0
- package/dist/components/toggle/toggle.js.map +1 -0
- package/dist/components/toggle-group/index.js +15 -0
- package/dist/components/toggle-group/index.js.map +1 -0
- package/dist/components/toggle-group/toggle-group.js +15 -0
- package/dist/components/toggle-group/toggle-group.js.map +1 -0
- package/dist/components/token-spotlight/index.css +25 -0
- package/dist/components/token-spotlight/index.css.map +1 -0
- package/dist/components/token-spotlight/index.js +23 -0
- package/dist/components/token-spotlight/index.js.map +1 -0
- package/dist/components/token-spotlight/token-spotlight.css +25 -0
- package/dist/components/token-spotlight/token-spotlight.css.map +1 -0
- package/dist/components/token-spotlight/token-spotlight.js +23 -0
- package/dist/components/token-spotlight/token-spotlight.js.map +1 -0
- package/dist/components/token-spotlight/token-value-format.js +11 -0
- package/dist/components/token-spotlight/token-value-format.js.map +1 -0
- package/dist/components/toolbar/index.js +27 -0
- package/dist/components/toolbar/index.js.map +1 -0
- package/dist/components/toolbar/toolbar.js +27 -0
- package/dist/components/toolbar/toolbar.js.map +1 -0
- package/dist/components/tooltip/index.js +17 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.js +16 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/top-nav/index.js +11 -0
- package/dist/components/top-nav/index.js.map +1 -0
- package/dist/components/top-nav/top-nav.js +10 -0
- package/dist/components/top-nav/top-nav.js.map +1 -0
- package/dist/components/transfer/index.js +26 -0
- package/dist/components/transfer/index.js.map +1 -0
- package/dist/components/transfer/transfer.js +26 -0
- package/dist/components/transfer/transfer.js.map +1 -0
- package/dist/components/tree/index.js +21 -0
- package/dist/components/tree/index.js.map +1 -0
- package/dist/components/tree/tree.js +18 -0
- package/dist/components/tree/tree.js.map +1 -0
- package/dist/components/tree/use-tree-keyboard.js +14 -0
- package/dist/components/tree/use-tree-keyboard.js.map +1 -0
- package/dist/components/tree-select/index.js +26 -0
- package/dist/components/tree-select/index.js.map +1 -0
- package/dist/components/tree-select/tree-select.js +26 -0
- package/dist/components/tree-select/tree-select.js.map +1 -0
- package/dist/components/typography/index.js +41 -0
- package/dist/components/typography/index.js.map +1 -0
- package/dist/components/typography/prose.js +29 -0
- package/dist/components/typography/prose.js.map +1 -0
- package/dist/components/typography/typography.js +18 -0
- package/dist/components/typography/typography.js.map +1 -0
- package/dist/components/view-toolbar/index.js +27 -0
- package/dist/components/view-toolbar/index.js.map +1 -0
- package/dist/components/view-toolbar/view-toolbar.js +27 -0
- package/dist/components/view-toolbar/view-toolbar.js.map +1 -0
- package/dist/components/virtual-select/index.js +26 -0
- package/dist/components/virtual-select/index.js.map +1 -0
- package/dist/components/virtual-select/use-virtual-listbox.js +10 -0
- package/dist/components/virtual-select/use-virtual-listbox.js.map +1 -0
- package/dist/components/virtual-select/virtual-select.js +23 -0
- package/dist/components/virtual-select/virtual-select.js.map +1 -0
- package/dist/components/wizard/index.js +19 -0
- package/dist/components/wizard/index.js.map +1 -0
- package/dist/components/wizard/wizard.js +19 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/components/workspace-picker/index.js +38 -0
- package/dist/components/workspace-picker/index.js.map +1 -0
- package/dist/components/workspace-picker/workspace-picker-state.js +9 -0
- package/dist/components/workspace-picker/workspace-picker-state.js.map +1 -0
- package/dist/components/workspace-picker/workspace-picker.js +35 -0
- package/dist/components/workspace-picker/workspace-picker.js.map +1 -0
- package/dist/form.js +13 -110
- package/dist/form.js.map +1 -1
- package/dist/illustrations/empty-list-illustration.js +11 -0
- package/dist/illustrations/empty-list-illustration.js.map +1 -0
- package/dist/illustrations/error-illustration.js +11 -0
- package/dist/illustrations/error-illustration.js.map +1 -0
- package/dist/illustrations/first-run-illustration.js +11 -0
- package/dist/illustrations/first-run-illustration.js.map +1 -0
- package/dist/illustrations/illustration-base.js +16 -0
- package/dist/illustrations/illustration-base.js.map +1 -0
- package/dist/illustrations/index.js +41 -0
- package/dist/illustrations/index.js.map +1 -0
- package/dist/illustrations/no-access-illustration.js +11 -0
- package/dist/illustrations/no-access-illustration.js.map +1 -0
- package/dist/illustrations/no-results-illustration.js +11 -0
- package/dist/illustrations/no-results-illustration.js.map +1 -0
- package/dist/illustrations/offline-illustration.js +11 -0
- package/dist/illustrations/offline-illustration.js.map +1 -0
- package/dist/illustrations/success-illustration.js +11 -0
- package/dist/illustrations/success-illustration.js.map +1 -0
- package/dist/index.css +122 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +1390 -146
- package/dist/index.js +997 -22676
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-event-model.js +9 -0
- package/dist/lib/agent-event-model.js.map +1 -0
- package/dist/lib/approval-option.js +9 -0
- package/dist/lib/approval-option.js.map +1 -0
- package/dist/lib/check-result.js +3 -0
- package/dist/lib/check-result.js.map +1 -0
- package/dist/lib/cn.js +28 -3
- package/dist/lib/cn.js.map +1 -1
- package/dist/lib/color-scale.js +11 -0
- package/dist/lib/color-scale.js.map +1 -0
- package/dist/lib/compact-number.js +21 -0
- package/dist/lib/compact-number.js.map +1 -0
- package/dist/lib/csv.js +11 -0
- package/dist/lib/csv.js.map +1 -0
- package/dist/lib/diff-line.js +11 -0
- package/dist/lib/diff-line.js.map +1 -0
- package/dist/lib/diff-rows.js +12 -0
- package/dist/lib/diff-rows.js.map +1 -0
- package/dist/lib/document-address.js +13 -0
- package/dist/lib/document-address.js.map +1 -0
- package/dist/lib/download.js +11 -0
- package/dist/lib/download.js.map +1 -0
- package/dist/lib/file-icon.js +12 -0
- package/dist/lib/file-icon.js.map +1 -0
- package/dist/lib/file-kind.js +13 -0
- package/dist/lib/file-kind.js.map +1 -0
- package/dist/lib/file-source.js +10 -0
- package/dist/lib/file-source.js.map +1 -0
- package/dist/lib/format-duration.js +9 -0
- package/dist/lib/format-duration.js.map +1 -0
- package/dist/lib/has-renderable-content.js +9 -0
- package/dist/lib/has-renderable-content.js.map +1 -0
- package/dist/lib/merge-refs.js +10 -0
- package/dist/lib/merge-refs.js.map +1 -0
- package/dist/lib/operating-mode.js +9 -0
- package/dist/lib/operating-mode.js.map +1 -0
- package/dist/lib/optional-peer.js +11 -0
- package/dist/lib/optional-peer.js.map +1 -0
- package/dist/lib/session-launch.js +3 -0
- package/dist/lib/session-launch.js.map +1 -0
- package/dist/lib/slash-command.js +11 -0
- package/dist/lib/slash-command.js.map +1 -0
- package/dist/lib/streamdown-translations.js +15 -0
- package/dist/lib/streamdown-translations.js.map +1 -0
- package/dist/lib/trigger-query.js +11 -0
- package/dist/lib/trigger-query.js.map +1 -0
- package/dist/lib/use-controllable-state.js +10 -0
- package/dist/lib/use-controllable-state.js.map +1 -0
- package/dist/lib/use-copy-to-clipboard.js +12 -0
- package/dist/lib/use-copy-to-clipboard.js.map +1 -0
- package/dist/lib/use-mobile.js +10 -0
- package/dist/lib/use-mobile.js.map +1 -0
- package/dist/lib/use-scroll-progress.js +18 -0
- package/dist/lib/use-scroll-progress.js.map +1 -0
- package/package.json +12 -5
- package/src/__contract__/ambient-field.contract.test.tsx +49 -0
- package/src/__contract__/attribution-panel.contract.test.tsx +49 -0
- package/src/__contract__/badge.contract.test.tsx +49 -0
- package/src/__contract__/bounded-number.contract.test.tsx +49 -0
- package/src/__contract__/button.contract.test.tsx +49 -0
- package/src/__contract__/color-picker.contract.test.tsx +49 -0
- package/src/__contract__/combobox.contract.test.tsx +49 -0
- package/src/__contract__/command-chip.contract.test.tsx +49 -0
- package/src/__contract__/command-trigger.contract.test.tsx +49 -0
- package/src/__contract__/copyable-value.contract.test.tsx +49 -0
- package/src/__contract__/date-picker.contract.test.tsx +49 -0
- package/src/__contract__/date-range-picker.contract.test.tsx +49 -0
- package/src/__contract__/empty-state.contract.test.tsx +49 -0
- package/src/__contract__/error-state.contract.test.tsx +49 -0
- package/src/__contract__/icon-button.contract.test.tsx +49 -0
- package/src/__contract__/input.contract.test.tsx +49 -0
- package/src/__contract__/install-tabs.contract.test.tsx +49 -0
- package/src/__contract__/integration-matrix.contract.test.tsx +49 -0
- package/src/__contract__/key-value-editor.contract.test.tsx +49 -0
- package/src/__contract__/list-editor.contract.test.tsx +49 -0
- package/src/__contract__/loading-state.contract.test.tsx +49 -0
- package/src/__contract__/meter.contract.test.tsx +49 -0
- package/src/__contract__/metric-card.contract.test.tsx +49 -0
- package/src/__contract__/model-picker.contract.test.tsx +49 -0
- package/src/__contract__/nav-notifications.contract.test.tsx +49 -0
- package/src/__contract__/number-input.contract.test.tsx +49 -0
- package/src/__contract__/parallax-plane.contract.test.tsx +49 -0
- package/src/__contract__/rating.contract.test.tsx +49 -0
- package/src/__contract__/reveal-on-enter.contract.test.tsx +49 -0
- package/src/__contract__/schema-form.contract.test.tsx +49 -0
- package/src/__contract__/section-header.contract.test.tsx +49 -0
- package/src/__contract__/segmented-field.contract.test.tsx +49 -0
- package/src/__contract__/slider-number.contract.test.tsx +49 -0
- package/src/__contract__/spec-playground.contract.test.tsx +49 -0
- package/src/__contract__/status-badge.contract.test.tsx +49 -0
- package/src/__contract__/surface-tour.contract.test.tsx +49 -0
- package/src/__contract__/tag-input.contract.test.tsx +49 -0
- package/src/__contract__/text.contract.test.tsx +49 -0
- package/src/__contract__/textarea.contract.test.tsx +49 -0
- package/src/__contract__/theme-family-switch.contract.test.tsx +49 -0
- package/src/__contract__/timeline.contract.test.tsx +49 -0
- package/src/__contract__/toggle.contract.test.tsx +49 -0
- package/src/__contract__/token-spotlight.contract.test.tsx +49 -0
- package/src/__contract__/transfer.contract.test.tsx +49 -0
- package/src/__contract__/tree-select.contract.test.tsx +49 -0
- package/src/__contract__/tree.contract.test.tsx +49 -0
- package/src/__contract__/virtual-select.contract.test.tsx +49 -0
- package/src/__contract__/workspace-picker.contract.test.tsx +49 -0
- package/src/blocks-comparison-table.stories.tsx +1 -1
- package/src/components/accordion/accordion.tsx +41 -16
- package/src/components/advanced-group/advanced-group.stories.tsx +2 -0
- package/src/components/alert/alert.tsx +24 -8
- package/src/components/alert-dialog/alert-dialog.test.tsx +32 -0
- package/src/components/alert-dialog/alert-dialog.tsx +28 -6
- package/src/components/ambient-field/ambient-field.css +98 -0
- package/src/components/ambient-field/ambient-field.stories.tsx +75 -0
- package/src/components/ambient-field/ambient-field.test.tsx +28 -0
- package/src/components/ambient-field/ambient-field.tsx +69 -0
- package/src/components/ambient-field/index.ts +7 -0
- package/src/components/app-shell/app-shell.stories.tsx +344 -1
- package/src/components/app-shell/app-shell.test.tsx +266 -0
- package/src/components/app-shell/app-shell.tsx +147 -14
- package/src/components/app-shell/index.ts +1 -1
- package/src/components/attribution-panel/attribution-panel.tsx +2 -0
- package/src/components/attribution-panel/attributions.generated.ts +79 -6
- package/src/components/avatar/avatar.tsx +4 -1
- package/src/components/badge/badge.stories.tsx +62 -0
- package/src/components/badge/badge.test.tsx +29 -0
- package/src/components/badge/badge.tsx +101 -11
- package/src/components/bento-grid/bento-grid.test.tsx +23 -2
- package/src/components/bento-grid/bento-grid.tsx +10 -0
- package/src/components/bounded-number/bounded-number.test.tsx +1 -1
- package/src/components/bounded-number/bounded-number.tsx +78 -75
- package/src/components/breadcrumb/breadcrumb.stories.tsx +1 -1
- package/src/components/breadcrumb/breadcrumb.tsx +5 -2
- package/src/components/button/button.stories.tsx +5 -1
- package/src/components/button/button.tsx +37 -20
- package/src/components/button-group/button-group.tsx +1 -1
- package/src/components/calendar/calendar.tsx +9 -3
- package/src/components/card/card.stories.tsx +73 -1
- package/src/components/card/card.test.tsx +53 -4
- package/src/components/card/card.tsx +122 -17
- package/src/components/card/index.ts +2 -0
- package/src/components/carousel/carousel.test.tsx +169 -0
- package/src/components/carousel/carousel.tsx +93 -32
- package/src/components/change-review/change-review.tsx +39 -30
- package/src/components/checkbox/checkbox.tsx +1 -0
- package/src/components/collapsible-panel/index.ts +1 -0
- package/src/components/collapsible-panel/use-collapsible-panel.ts +21 -5
- package/src/components/color-picker/color-picker.tsx +20 -14
- package/src/components/combobox/combobox.stories.tsx +10 -0
- package/src/components/combobox/combobox.test.tsx +54 -0
- package/src/components/combobox/combobox.tsx +25 -11
- package/src/components/command/command.stories.tsx +64 -1
- package/src/components/command/command.test.tsx +88 -0
- package/src/components/command/command.tsx +81 -8
- package/src/components/command-chip/command-chip.stories.tsx +78 -0
- package/src/components/command-chip/command-chip.test.tsx +57 -0
- package/src/components/command-chip/command-chip.tsx +168 -0
- package/src/components/command-chip/index.ts +7 -0
- package/src/components/command-trigger/command-trigger.tsx +1 -1
- package/src/components/confirm-dialog/confirm-dialog.stories.tsx +2 -0
- package/src/components/context-menu/context-menu.stories.tsx +26 -0
- package/src/components/context-menu/context-menu.tsx +17 -8
- package/src/components/context-rail/context-rail.tsx +26 -8
- package/src/components/copyable-value/copyable-value.stories.tsx +10 -0
- package/src/components/copyable-value/copyable-value.test.tsx +28 -1
- package/src/components/copyable-value/copyable-value.tsx +12 -1
- package/src/components/date-picker/date-picker.stories.tsx +9 -0
- package/src/components/date-picker/date-picker.test.tsx +52 -0
- package/src/components/date-picker/date-picker.tsx +15 -15
- package/src/components/date-range-picker/date-range-picker.stories.tsx +9 -0
- package/src/components/date-range-picker/date-range-picker.test.tsx +76 -1
- package/src/components/date-range-picker/date-range-picker.tsx +39 -28
- package/src/components/descriptions/descriptions.stories.tsx +6 -0
- package/src/components/descriptions/descriptions.test.tsx +18 -0
- package/src/components/descriptions/descriptions.tsx +34 -6
- package/src/components/descriptions/index.ts +1 -0
- package/src/components/dialog/dialog.stories.tsx +5 -0
- package/src/components/dialog/dialog.test.tsx +8 -3
- package/src/components/dialog/dialog.tsx +13 -5
- package/src/components/drawer/drawer.tsx +23 -6
- package/src/components/dropdown-menu/dropdown-menu.stories.tsx +37 -0
- package/src/components/dropdown-menu/dropdown-menu.tsx +17 -9
- package/src/components/expand-dialog/expand-dialog.test.tsx +47 -0
- package/src/components/expand-dialog/expand-dialog.tsx +20 -5
- package/src/components/field/field.tsx +2 -0
- package/src/components/field-row/field-row.tsx +2 -0
- package/src/components/file-upload/file-upload.test.tsx +83 -10
- package/src/components/file-upload/file-upload.tsx +150 -28
- package/src/components/form/form.tsx +4 -2
- package/src/components/hover-card/hover-card.tsx +2 -1
- package/src/components/icon-button/icon-button.tsx +1 -1
- package/src/components/input/input.stories.tsx +17 -0
- package/src/components/input/input.tsx +8 -4
- package/src/components/input-group/input-group.stories.tsx +43 -6
- package/src/components/input-group/input-group.tsx +10 -7
- package/src/components/input-otp/input-otp.tsx +7 -3
- package/src/components/install-tabs/index.ts +8 -0
- package/src/components/install-tabs/install-tabs.stories.tsx +147 -0
- package/src/components/install-tabs/install-tabs.test.tsx +120 -0
- package/src/components/install-tabs/install-tabs.tsx +238 -0
- package/src/components/integration-matrix/index.ts +10 -0
- package/src/components/integration-matrix/integration-matrix.stories.tsx +171 -0
- package/src/components/integration-matrix/integration-matrix.test.tsx +89 -0
- package/src/components/integration-matrix/integration-matrix.tsx +237 -0
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.tsx +2 -2
- package/src/components/label/label.tsx +1 -1
- package/src/components/list-editor/list-editor.test.tsx +24 -0
- package/src/components/list-editor/list-editor.tsx +126 -52
- package/src/components/locale-provider/locale-keys.test.ts +134 -0
- package/src/components/locale-provider/messages.ts +573 -0
- package/src/components/mention-input/mention-input.stories.tsx +3 -3
- package/src/components/mention-input/mention-input.test.tsx +51 -1
- package/src/components/mention-input/mention-input.tsx +59 -9
- package/src/components/menubar/menubar.stories.tsx +25 -0
- package/src/components/menubar/menubar.tsx +18 -8
- package/src/components/meter/index.ts +1 -0
- package/src/components/meter/meter.stories.tsx +102 -0
- package/src/components/meter/meter.test.tsx +61 -0
- package/src/components/meter/meter.tsx +173 -0
- package/src/components/metric-card/index.ts +6 -1
- package/src/components/metric-card/metric-card.stories.tsx +63 -0
- package/src/components/metric-card/metric-card.test.tsx +83 -0
- package/src/components/metric-card/metric-card.tsx +97 -14
- package/src/components/nav-main/nav-main.tsx +7 -3
- package/src/components/nav-notifications/nav-notifications.test.tsx +11 -0
- package/src/components/nav-notifications/nav-notifications.tsx +11 -5
- package/src/components/nav-user/nav-user.test.tsx +23 -1
- package/src/components/nav-user/nav-user.tsx +68 -53
- package/src/components/navigation-menu/navigation-menu.stories.tsx +42 -0
- package/src/components/navigation-menu/navigation-menu.tsx +16 -4
- package/src/components/number-input/number-input.stories.tsx +7 -3
- package/src/components/number-input/number-input.test.tsx +47 -0
- package/src/components/number-input/number-input.tsx +65 -24
- package/src/components/page-shell/page-shell.stories.tsx +1 -1
- package/src/components/page-shell/page-shell.tsx +3 -2
- package/src/components/pagination/pagination.test.tsx +20 -1
- package/src/components/pagination/pagination.tsx +20 -14
- package/src/components/parallax-plane/index.ts +8 -0
- package/src/components/parallax-plane/parallax-plane.css +26 -0
- package/src/components/parallax-plane/parallax-plane.stories.tsx +88 -0
- package/src/components/parallax-plane/parallax-plane.test.tsx +57 -0
- package/src/components/parallax-plane/parallax-plane.tsx +80 -0
- package/src/components/popover/popover.tsx +2 -1
- package/src/components/progress/progress.stories.tsx +85 -0
- package/src/components/progress/progress.test.tsx +47 -0
- package/src/components/progress/progress.tsx +59 -3
- package/src/components/rating/rating.tsx +2 -0
- package/src/components/resizable/resizable.test.tsx +76 -0
- package/src/components/resizable/resizable.tsx +31 -5
- package/src/components/reveal-on-enter/index.ts +5 -0
- package/src/components/reveal-on-enter/reveal-on-enter.css +32 -0
- package/src/components/reveal-on-enter/reveal-on-enter.stories.tsx +100 -0
- package/src/components/reveal-on-enter/reveal-on-enter.test.tsx +87 -0
- package/src/components/reveal-on-enter/reveal-on-enter.tsx +75 -0
- package/src/components/revision-timeline/revision-timeline.tsx +8 -5
- package/src/components/schema-form/index.ts +2 -0
- package/src/components/schema-form/schema-form-spec.ts +36 -0
- package/src/components/schema-form/schema-form-store.ts +506 -0
- package/src/components/schema-form/schema-form.stories.tsx +33 -0
- package/src/components/schema-form/schema-form.test.tsx +165 -1
- package/src/components/schema-form/schema-form.tsx +271 -328
- package/src/components/scroll-area/index.ts +1 -1
- package/src/components/scroll-area/scroll-area.tsx +47 -18
- package/src/components/section-header/section-header.tsx +2 -4
- package/src/components/select/select.stories.tsx +17 -0
- package/src/components/select/select.test.tsx +28 -1
- package/src/components/select/select.tsx +9 -7
- package/src/components/separator/separator.tsx +1 -0
- package/src/components/sheet/sheet.test.tsx +39 -0
- package/src/components/sheet/sheet.tsx +40 -9
- package/src/components/side-dock/side-dock.stories.tsx +83 -0
- package/src/components/side-dock/side-dock.test.tsx +26 -0
- package/src/components/side-dock/side-dock.tsx +65 -18
- package/src/components/sidebar/sidebar.stories.tsx +3 -3
- package/src/components/sidebar/sidebar.test.tsx +66 -2
- package/src/components/sidebar/sidebar.tsx +54 -13
- package/src/components/skeleton/skeleton.tsx +1 -0
- package/src/components/skip-link/skip-link.stories.tsx +1 -0
- package/src/components/slider/slider.stories.tsx +13 -77
- package/src/components/slider-number/slider-number.stories.tsx +4 -1
- package/src/components/slider-number/slider-number.test.tsx +1 -1
- package/src/components/sonner/sonner.tsx +2 -0
- package/src/components/spec-playground/index.ts +10 -0
- package/src/components/spec-playground/locate-json-path.ts +144 -0
- package/src/components/spec-playground/spec-playground.stories.tsx +156 -0
- package/src/components/spec-playground/spec-playground.test.tsx +106 -0
- package/src/components/spec-playground/spec-playground.tsx +351 -0
- package/src/components/spinner/spinner.test.tsx +18 -0
- package/src/components/spinner/spinner.tsx +14 -4
- package/src/components/state-panel/state-panel.stories.tsx +4 -2
- package/src/components/state-panel/state-panel.test.tsx +3 -3
- package/src/components/state-panel/state-panel.tsx +16 -9
- package/src/components/status-badge/status-badge.stories.tsx +53 -0
- package/src/components/status-badge/status-badge.test.tsx +37 -0
- package/src/components/status-badge/status-badge.tsx +75 -13
- package/src/components/surface-tour/index.ts +11 -0
- package/src/components/surface-tour/surface-tour.stories.tsx +150 -0
- package/src/components/surface-tour/surface-tour.test.tsx +117 -0
- package/src/components/surface-tour/surface-tour.tsx +456 -0
- package/src/components/switch/switch.tsx +2 -0
- package/src/components/table/table.stories.tsx +3 -1
- package/src/components/table/table.test.tsx +9 -2
- package/src/components/table/table.tsx +22 -9
- package/src/components/tabs/index.ts +10 -1
- package/src/components/tabs/tabs.stories.tsx +95 -1
- package/src/components/tabs/tabs.test.tsx +93 -0
- package/src/components/tabs/tabs.tsx +215 -77
- package/src/components/tag-input/tag-input.tsx +4 -2
- package/src/components/team-switcher/team-switcher.tsx +3 -3
- package/src/components/textarea/textarea.tsx +2 -2
- package/src/components/theme-family-switch/index.ts +10 -0
- package/src/components/theme-family-switch/theme-family-switch.stories.tsx +97 -0
- package/src/components/theme-family-switch/theme-family-switch.test.tsx +85 -0
- package/src/components/theme-family-switch/theme-family-switch.tsx +166 -0
- package/src/components/theme-switcher/theme-switcher.stories.tsx +76 -0
- package/src/components/theme-switcher/theme-switcher.test.tsx +182 -0
- package/src/components/theme-switcher/theme-switcher.tsx +144 -13
- package/src/components/timeline/timeline.tsx +0 -3
- package/src/components/toggle/toggle.tsx +7 -2
- package/src/components/toggle-group/toggle-group.tsx +2 -0
- package/src/components/token-spotlight/index.ts +11 -0
- package/src/components/token-spotlight/token-spotlight.css +32 -0
- package/src/components/token-spotlight/token-spotlight.stories.tsx +161 -0
- package/src/components/token-spotlight/token-spotlight.test.tsx +323 -0
- package/src/components/token-spotlight/token-spotlight.tsx +379 -0
- package/src/components/token-spotlight/token-value-format.ts +205 -0
- package/src/components/tooltip/tooltip.tsx +2 -1
- package/src/components/top-nav/top-nav.test.tsx +59 -0
- package/src/components/top-nav/top-nav.tsx +37 -7
- package/src/components/transfer/transfer.tsx +35 -30
- package/src/components/tree/tree.stories.tsx +1 -1
- package/src/components/tree/tree.test.tsx +45 -4
- package/src/components/tree/tree.tsx +81 -26
- package/src/components/tree/use-tree-keyboard.ts +37 -14
- package/src/components/tree-select/tree-select.stories.tsx +9 -0
- package/src/components/tree-select/tree-select.test.tsx +5 -0
- package/src/components/tree-select/tree-select.tsx +11 -14
- package/src/components/typography/prose.test.tsx +3 -2
- package/src/components/typography/prose.tsx +3 -3
- package/src/components/typography/typography.stories.tsx +7 -2
- package/src/components/typography/typography.tsx +8 -0
- package/src/components/view-toolbar/view-toolbar.stories.tsx +2 -1
- package/src/components/view-toolbar/view-toolbar.tsx +2 -2
- package/src/components/virtual-select/virtual-select.stories.tsx +9 -0
- package/src/components/virtual-select/virtual-select.test.tsx +28 -2
- package/src/components/virtual-select/virtual-select.tsx +56 -18
- package/src/components/wizard/wizard.test.tsx +9 -0
- package/src/components/wizard/wizard.tsx +12 -4
- package/src/decoration.stories.tsx +213 -2
- package/src/index.ts +51 -0
- package/src/lib/cn.test.ts +20 -0
- package/src/lib/cn.ts +36 -2
- package/src/lib/color-scale.test.ts +386 -0
- package/src/lib/color-scale.ts +628 -0
- package/src/lib/compact-number.ts +118 -28
- package/src/lib/csv.ts +48 -0
- package/src/lib/diff-rows.ts +2 -0
- package/src/lib/merge-refs.ts +2 -0
- package/src/lib/use-controllable-state.ts +47 -0
- package/src/lib/use-mobile.test.tsx +47 -0
- package/src/lib/use-mobile.ts +26 -10
- package/src/lib/use-scroll-progress.ts +103 -0
- package/src/motion.stories.tsx +1 -0
- package/src/templates-object-detail-hub.stories.tsx +8 -8
- package/src/templates-screen-states.stories.tsx +1 -1
- package/src/templates-settings.stories.tsx +8 -3
- package/dist/chunk-JKPPTL63.js +0 -48
- package/dist/chunk-JKPPTL63.js.map +0 -1
|
@@ -46,10 +46,11 @@
|
|
|
46
46
|
import {
|
|
47
47
|
createContext,
|
|
48
48
|
forwardRef,
|
|
49
|
+
memo,
|
|
49
50
|
use,
|
|
50
|
-
useCallback,
|
|
51
51
|
useEffect,
|
|
52
52
|
useId,
|
|
53
|
+
useLayoutEffect,
|
|
53
54
|
useMemo,
|
|
54
55
|
useRef,
|
|
55
56
|
useState,
|
|
@@ -83,18 +84,16 @@ import {
|
|
|
83
84
|
} from "../file-upload";
|
|
84
85
|
import { AdvancedGroup } from "../advanced-group";
|
|
85
86
|
import { Tabs, TabsList, TabsTrigger, TabsContent } from "../tabs";
|
|
87
|
+
import { ChevronRight } from "lucide-react";
|
|
88
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible";
|
|
89
|
+
import { Descriptions, DescriptionsItem } from "../descriptions";
|
|
86
90
|
|
|
87
91
|
import {
|
|
88
92
|
checkFileIssue,
|
|
89
|
-
collectValidatableFields,
|
|
90
93
|
fieldLabel,
|
|
91
|
-
findFieldByName,
|
|
92
|
-
initialFormValues,
|
|
93
|
-
isFieldVisible,
|
|
94
94
|
normalizeFormSpec,
|
|
95
95
|
optionLabel,
|
|
96
96
|
optionValue,
|
|
97
|
-
validateForm,
|
|
98
97
|
type FieldSpec,
|
|
99
98
|
type FormSpec,
|
|
100
99
|
type FormSubmitState,
|
|
@@ -104,49 +103,26 @@ import {
|
|
|
104
103
|
type GroupItemSpec,
|
|
105
104
|
type NormalizedFormSpec,
|
|
106
105
|
} from "./schema-form-spec";
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
effectiveValues: FormValues;
|
|
125
|
-
/** Per-field error text, only populated after a submit attempt. */
|
|
126
|
-
errors: Record<string, string | null>;
|
|
127
|
-
setValue: (name: string, value: FormValue) => void;
|
|
128
|
-
submit: () => void;
|
|
129
|
-
reset: () => void;
|
|
130
|
-
/** True once submit has been attempted (drives error visibility). */
|
|
131
|
-
attempted: boolean;
|
|
132
|
-
submitted: boolean;
|
|
133
|
-
submitting: boolean;
|
|
134
|
-
disabled: boolean;
|
|
135
|
-
loading: boolean;
|
|
136
|
-
/** A terminal, form-level submission error (e.g. "Couldn't save settings"). */
|
|
137
|
-
error: ReactNode;
|
|
138
|
-
formId: string;
|
|
139
|
-
headingId: string;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
const SchemaFormContext = createContext<SchemaFormContextValue | null>(null);
|
|
143
|
-
|
|
144
|
-
function useSchemaFormContext(): SchemaFormContextValue {
|
|
145
|
-
const ctx = use(SchemaFormContext);
|
|
146
|
-
if (!ctx) {
|
|
106
|
+
import {
|
|
107
|
+
SchemaFormStore,
|
|
108
|
+
useBranchHasError,
|
|
109
|
+
useEffectiveValues,
|
|
110
|
+
useFieldSnapshot,
|
|
111
|
+
useSchemaFormMeta,
|
|
112
|
+
useVisibleFieldNames,
|
|
113
|
+
type SchemaFormStoreProps,
|
|
114
|
+
} from "./schema-form-store";
|
|
115
|
+
|
|
116
|
+
// ─── Context (carries only the STABLE store instance — see schema-form-store.ts) ──
|
|
117
|
+
|
|
118
|
+
const SchemaFormStoreContext = createContext<SchemaFormStore | null>(null);
|
|
119
|
+
|
|
120
|
+
function useSchemaFormStore(): SchemaFormStore {
|
|
121
|
+
const store = use(SchemaFormStoreContext);
|
|
122
|
+
if (!store) {
|
|
147
123
|
throw new Error("SchemaForm sub-components must be rendered inside <SchemaFormProvider>.");
|
|
148
124
|
}
|
|
149
|
-
return
|
|
125
|
+
return store;
|
|
150
126
|
}
|
|
151
127
|
|
|
152
128
|
/** Stable DOM id for a field's primary control (used for label + focus). */
|
|
@@ -160,39 +136,6 @@ function errorId(formId: string, name: string): string {
|
|
|
160
136
|
return `${formId}-error-${name}`;
|
|
161
137
|
}
|
|
162
138
|
|
|
163
|
-
/** The effective value for a field (state value, else its default/empty). */
|
|
164
|
-
function effectiveValue(field: FieldSpec, values: FormValues): FormValue {
|
|
165
|
-
const v = values[field.name];
|
|
166
|
-
if (v !== undefined) return v;
|
|
167
|
-
if (field.type === "group") return field.default ?? field.groups[0]?.key;
|
|
168
|
-
if ("default" in field && field.default !== undefined) return field.default;
|
|
169
|
-
if (field.type === "boolean") return false;
|
|
170
|
-
if (field.type === "multi-enum" || field.type === "list") return [];
|
|
171
|
-
if (field.type === "key-value") return [];
|
|
172
|
-
if (field.type === "file") return [];
|
|
173
|
-
return undefined;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/** Remove every field's key (recursively, including nested group branches) from `values`. */
|
|
177
|
-
function stripFields(fields: FieldSpec[], values: FormValues): void {
|
|
178
|
-
for (const field of fields) {
|
|
179
|
-
delete values[field.name];
|
|
180
|
-
if (field.type === "group") {
|
|
181
|
-
for (const group of field.groups) stripFields(group.fields, values);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/** The active branch of a `variant: "tabs"` group, given its own (possibly-just-computed) value. */
|
|
187
|
-
function activeTabBranch(field: GroupFieldSpec, activeKey: FormValue): GroupItemSpec | undefined {
|
|
188
|
-
const key = typeof activeKey === "string" ? activeKey : undefined;
|
|
189
|
-
return (
|
|
190
|
-
field.groups.find((g) => g.key === key) ??
|
|
191
|
-
field.groups.find((g) => g.key === field.default) ??
|
|
192
|
-
field.groups[0]
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
139
|
// ─── Provider ───────────────────────────────────────────────────────────────
|
|
197
140
|
|
|
198
141
|
export interface SchemaFormProviderProps {
|
|
@@ -237,187 +180,54 @@ export function SchemaFormProvider({
|
|
|
237
180
|
children,
|
|
238
181
|
}: SchemaFormProviderProps) {
|
|
239
182
|
const formId = useId();
|
|
240
|
-
const headingId = `${formId}-title`;
|
|
241
183
|
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
//
|
|
256
|
-
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
(base: FormValues) => {
|
|
279
|
-
const merged: FormValues = { ...base };
|
|
280
|
-
const fill = (fields: FieldSpec[]) => {
|
|
281
|
-
for (const field of fields) {
|
|
282
|
-
// A field (or, for a hidden `group`, its whole subtree) whose
|
|
283
|
-
// `visibleWhen` does not currently hold must not participate in
|
|
284
|
-
// submission — strip it rather than merely skip re-computing it,
|
|
285
|
-
// because `merged` starts as a spread of `base` and so already
|
|
286
|
-
// carries any stale value the field held from BEFORE its
|
|
287
|
-
// controller made it hidden (e.g. a secret typed in while an
|
|
288
|
-
// "oauth" branch was active, still present after switching to
|
|
289
|
-
// "apikey"). Mirrors `collectValidatableFields`'s own
|
|
290
|
-
// visibility check so what's validated/submitted never disagrees
|
|
291
|
-
// with what's shown.
|
|
292
|
-
if (!isFieldVisible(field, merged)) {
|
|
293
|
-
delete merged[field.name];
|
|
294
|
-
if (field.type === "group") {
|
|
295
|
-
for (const group of field.groups) stripFields(group.fields, merged);
|
|
296
|
-
}
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
merged[field.name] = effectiveValue(field, merged);
|
|
300
|
-
if (field.type !== "group") continue;
|
|
301
|
-
if (field.variant === "tabs") {
|
|
302
|
-
// Only the ACTIVE branch's fields participate — mirrors
|
|
303
|
-
// `collectValidatableFields`'s own active-branch resolution, so
|
|
304
|
-
// what gets validated and what gets submitted agree. The
|
|
305
|
-
// inactive branch(es) are stripped from `merged` rather than
|
|
306
|
-
// left as-is: a value typed into "API key" before switching to
|
|
307
|
-
// "OAuth" must not still ride along (and be treated as valid)
|
|
308
|
-
// once OAuth is what actually submits.
|
|
309
|
-
const active = activeTabBranch(field, merged[field.name]);
|
|
310
|
-
for (const group of field.groups) {
|
|
311
|
-
if (group === active) fill(group.fields);
|
|
312
|
-
else stripFields(group.fields, merged);
|
|
313
|
-
}
|
|
314
|
-
} else {
|
|
315
|
-
// `variant: "advanced"` — nothing is mutually exclusive; every
|
|
316
|
-
// branch is always live.
|
|
317
|
-
for (const group of field.groups) fill(group.fields);
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
};
|
|
321
|
-
fill(spec.fields);
|
|
322
|
-
return merged;
|
|
323
|
-
},
|
|
324
|
-
[spec.fields],
|
|
325
|
-
);
|
|
326
|
-
|
|
327
|
-
// The field to focus after an invalid submit, applied from a `useEffect`
|
|
328
|
-
// below rather than synchronously here. `setAttempted(true)` (which is
|
|
329
|
-
// what makes an error-containing `AdvancedGroup` branch open itself — see
|
|
330
|
-
// `AdvancedGroupBranch`) and this focus request are dispatched in the same
|
|
331
|
-
// synchronous call, so React batches them into ONE commit; a synchronous
|
|
332
|
-
// `document.getElementById(...).focus()` right here would run against the
|
|
333
|
-
// PRE-update DOM and can never find a control that only exists once the
|
|
334
|
-
// just-opened disclosure mounts its content. Deferring to an effect lets
|
|
335
|
-
// it run after React has committed (and Radix has mounted) the newly-open
|
|
336
|
-
// group. A fresh object on every call (not just the name) guarantees the
|
|
184
|
+
const storeProps: SchemaFormStoreProps = {
|
|
185
|
+
spec,
|
|
186
|
+
valuesProp,
|
|
187
|
+
onChange,
|
|
188
|
+
onSubmit,
|
|
189
|
+
disabled,
|
|
190
|
+
submitted,
|
|
191
|
+
submitting,
|
|
192
|
+
loading,
|
|
193
|
+
error,
|
|
194
|
+
};
|
|
195
|
+
// Created once (lazy initializer) and then kept in sync on every render via
|
|
196
|
+
// `syncProps` below — see schema-form-store.ts's module doc comment for why
|
|
197
|
+
// the store, not React context, is what field-level readers subscribe to.
|
|
198
|
+
const [store] = useState(() => new SchemaFormStore(storeProps, formId));
|
|
199
|
+
// `syncProps` runs here, IN render, so a non-memoized descendant
|
|
200
|
+
// re-rendering this same pass reads fresh values; the resulting `changed`
|
|
201
|
+
// flag is only ACTED ON (`store.notify()`) from the layout effect below —
|
|
202
|
+
// see `syncProps`'s doc comment for why calling it synchronously here
|
|
203
|
+
// instead would trip React's "setState while rendering a different
|
|
204
|
+
// component" guard against an already-mounted, memoized `SchemaFormField`.
|
|
205
|
+
const changed = store.syncProps(storeProps);
|
|
206
|
+
useLayoutEffect(() => {
|
|
207
|
+
if (changed) store.notify();
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
// The field to focus after an invalid submit. `store.submit()` calls this
|
|
211
|
+
// listener synchronously (in the same click/Enter handler that also flips
|
|
212
|
+
// `attempted`, which is what makes an error-containing `AdvancedGroup`
|
|
213
|
+
// branch open itself — see `AdvancedGroupBranch`), so React batches both
|
|
214
|
+
// updates into ONE commit; the actual `.focus()` call happens from the
|
|
215
|
+
// `useEffect` below, which runs AFTER that commit (and after Radix has
|
|
216
|
+
// mounted the newly-open group) — a synchronous `document.getElementById`
|
|
217
|
+
// right here would run against the PRE-update DOM and could never find a
|
|
218
|
+
// control that only exists once the just-opened disclosure mounts its
|
|
219
|
+
// content. A fresh object on every call (not just the name) guarantees the
|
|
337
220
|
// effect re-fires even when the SAME field is invalid on consecutive
|
|
338
221
|
// submit attempts, where a primitive dependency wouldn't change.
|
|
339
222
|
const [pendingFocus, setPendingFocus] = useState<{ name: string } | null>(null);
|
|
340
|
-
|
|
341
|
-
const submit = useCallback(() => {
|
|
342
|
-
setAttempted(true);
|
|
343
|
-
const merged = mergedValues(resolvedValues);
|
|
344
|
-
|
|
345
|
-
const errs = validateForm(spec.fields, merged);
|
|
346
|
-
const invalidNames = Object.keys(errs).filter((name) => errs[name]);
|
|
347
|
-
if (invalidNames.length > 0) {
|
|
348
|
-
// Focus the first field with an error (a11y: don't leave the user hunting).
|
|
349
|
-
const firstInvalid = collectValidatableFields(spec.fields, merged).find((f) => errs[f.name]);
|
|
350
|
-
if (firstInvalid) setPendingFocus({ name: firstInvalid.name });
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
onSubmit?.({ formName: spec.formName, values: merged });
|
|
354
|
-
}, [resolvedValues, mergedValues, spec.fields, spec.formName, onSubmit]);
|
|
355
|
-
|
|
223
|
+
useEffect(() => store.onPendingFocus((name) => setPendingFocus({ name })), [store]);
|
|
356
224
|
useEffect(() => {
|
|
357
225
|
if (!pendingFocus || typeof document === "undefined") return;
|
|
358
|
-
const el = document.getElementById(controlId(formId, pendingFocus.name));
|
|
226
|
+
const el = document.getElementById(controlId(store.formId, pendingFocus.name));
|
|
359
227
|
el?.focus();
|
|
360
|
-
}, [pendingFocus,
|
|
361
|
-
|
|
362
|
-
const reset = useCallback(() => {
|
|
363
|
-
setAttempted(false);
|
|
364
|
-
const seeded = initialFormValues(spec.fields);
|
|
365
|
-
if (!isControlled) setInternalValues(seeded);
|
|
366
|
-
onChange?.(seeded);
|
|
367
|
-
}, [isControlled, spec.fields, onChange]);
|
|
368
|
-
|
|
369
|
-
// Errors only surface after a submit attempt; then they live-update on change.
|
|
370
|
-
const errors = useMemo<Record<string, string | null>>(() => {
|
|
371
|
-
if (!attempted) return {};
|
|
372
|
-
return validateForm(spec.fields, mergedValues(resolvedValues));
|
|
373
|
-
}, [attempted, resolvedValues, mergedValues, spec.fields]);
|
|
374
|
-
|
|
375
|
-
// Same object `submit`/`errors` already resolve visibility against (see
|
|
376
|
-
// `SchemaFormContextValue.effectiveValues`) — computed once per render so
|
|
377
|
-
// every render-time `isFieldVisible` check agrees with validation/submit.
|
|
378
|
-
const effectiveValues = useMemo(
|
|
379
|
-
() => mergedValues(resolvedValues),
|
|
380
|
-
[mergedValues, resolvedValues],
|
|
381
|
-
);
|
|
382
|
-
|
|
383
|
-
const value = useMemo<SchemaFormContextValue>(
|
|
384
|
-
() => ({
|
|
385
|
-
spec,
|
|
386
|
-
values: resolvedValues,
|
|
387
|
-
effectiveValues,
|
|
388
|
-
errors,
|
|
389
|
-
setValue,
|
|
390
|
-
submit,
|
|
391
|
-
reset,
|
|
392
|
-
attempted,
|
|
393
|
-
submitted,
|
|
394
|
-
submitting,
|
|
395
|
-
disabled,
|
|
396
|
-
loading,
|
|
397
|
-
error,
|
|
398
|
-
formId,
|
|
399
|
-
headingId,
|
|
400
|
-
}),
|
|
401
|
-
[
|
|
402
|
-
spec,
|
|
403
|
-
resolvedValues,
|
|
404
|
-
effectiveValues,
|
|
405
|
-
errors,
|
|
406
|
-
setValue,
|
|
407
|
-
submit,
|
|
408
|
-
reset,
|
|
409
|
-
attempted,
|
|
410
|
-
submitted,
|
|
411
|
-
submitting,
|
|
412
|
-
disabled,
|
|
413
|
-
loading,
|
|
414
|
-
error,
|
|
415
|
-
formId,
|
|
416
|
-
headingId,
|
|
417
|
-
],
|
|
418
|
-
);
|
|
228
|
+
}, [pendingFocus, store]);
|
|
419
229
|
|
|
420
|
-
return <
|
|
230
|
+
return <SchemaFormStoreContext value={store}>{children}</SchemaFormStoreContext>;
|
|
421
231
|
}
|
|
422
232
|
|
|
423
233
|
// ─── Field control renderers ──────────────────────────────────────────────────
|
|
@@ -734,6 +544,15 @@ function FileControl({
|
|
|
734
544
|
file,
|
|
735
545
|
}));
|
|
736
546
|
}, [value]);
|
|
547
|
+
// `FileUpload.addFiles` also declines a wrong-type file (`accept`) before it
|
|
548
|
+
// reaches `files` — right for a bare FileUpload, but here that would make the
|
|
549
|
+
// "wrong type" designed state unreachable for a drop (the file would just
|
|
550
|
+
// vanish, exactly the `maxSize` failure mode noted below). `addFiles` commits
|
|
551
|
+
// the accepted list and THEN reports rejections, synchronously, so remember
|
|
552
|
+
// the last committed list and re-admit the `accept` rejections onto it for
|
|
553
|
+
// `checkFileIssue` to render with a visible error.
|
|
554
|
+
const lastCommittedRef = useRef<File[]>([]);
|
|
555
|
+
const maxFiles = field.multiple ? field.maxFiles : 1;
|
|
737
556
|
return (
|
|
738
557
|
<FileUpload
|
|
739
558
|
id={id}
|
|
@@ -747,15 +566,20 @@ function FileControl({
|
|
|
747
566
|
// unreachable (the file the user picked would just vanish with no
|
|
748
567
|
// feedback). Enforcement instead happens entirely in `checkFileIssue`
|
|
749
568
|
// below, which renders the oversized file WITH an error item.
|
|
750
|
-
maxFiles={
|
|
569
|
+
maxFiles={maxFiles}
|
|
751
570
|
disabled={disabled}
|
|
752
571
|
files={controlledFiles}
|
|
753
|
-
onFilesChange={(list) =>
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
572
|
+
onFilesChange={(list) => {
|
|
573
|
+
const next = list.map((u) => u.file);
|
|
574
|
+
lastCommittedRef.current = next;
|
|
575
|
+
setValue(field.name, next);
|
|
576
|
+
}}
|
|
577
|
+
onFilesRejected={(rejections) => {
|
|
578
|
+
const wrongType = rejections.filter((r) => r.reason === "accept").map((r) => r.file);
|
|
579
|
+
if (wrongType.length === 0) return;
|
|
580
|
+
const merged = [...lastCommittedRef.current, ...wrongType];
|
|
581
|
+
setValue(field.name, maxFiles ? merged.slice(0, maxFiles) : merged);
|
|
582
|
+
}}
|
|
759
583
|
>
|
|
760
584
|
<FileUploadDropzone />
|
|
761
585
|
<FileControlList field={field} />
|
|
@@ -774,7 +598,6 @@ function GroupTabsControl({
|
|
|
774
598
|
describedBy,
|
|
775
599
|
setValue,
|
|
776
600
|
}: FieldControlProps & { field: GroupFieldSpec }) {
|
|
777
|
-
const { effectiveValues } = useSchemaFormContext();
|
|
778
601
|
const active =
|
|
779
602
|
(typeof value === "string" ? value : undefined) ?? field.default ?? field.groups[0]?.key;
|
|
780
603
|
return (
|
|
@@ -797,28 +620,29 @@ function GroupTabsControl({
|
|
|
797
620
|
{group.description && (
|
|
798
621
|
<p className="text-caption text-muted-foreground">{group.description}</p>
|
|
799
622
|
)}
|
|
800
|
-
{group
|
|
801
|
-
.filter((child) => isFieldVisible(child, effectiveValues))
|
|
802
|
-
.map((child) => (
|
|
803
|
-
<SchemaFormField key={child.name} name={child.name} />
|
|
804
|
-
))}
|
|
623
|
+
<GroupTabsBranch group={group} />
|
|
805
624
|
</TabsContent>
|
|
806
625
|
))}
|
|
807
626
|
</Tabs>
|
|
808
627
|
);
|
|
809
628
|
}
|
|
810
629
|
|
|
811
|
-
/**
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
630
|
+
/**
|
|
631
|
+
* One tab branch's visible fields — its own `useVisibleFieldNames`
|
|
632
|
+
* subscription, so a `visibleWhen` inside THIS branch re-evaluates
|
|
633
|
+
* independent of `GroupTabsControl`'s (and its parent `SchemaFormField`'s)
|
|
634
|
+
* own re-render.
|
|
635
|
+
*/
|
|
636
|
+
function GroupTabsBranch({ group }: { group: GroupItemSpec }) {
|
|
637
|
+
const store = useSchemaFormStore();
|
|
638
|
+
const visibleNames = useVisibleFieldNames(store, group.fields);
|
|
639
|
+
return (
|
|
640
|
+
<>
|
|
641
|
+
{visibleNames.map((name) => (
|
|
642
|
+
<SchemaFormField key={name} name={name} />
|
|
643
|
+
))}
|
|
644
|
+
</>
|
|
645
|
+
);
|
|
822
646
|
}
|
|
823
647
|
|
|
824
648
|
/**
|
|
@@ -832,9 +656,11 @@ function branchHasError(fields: FieldSpec[], errors: Record<string, string | nul
|
|
|
832
656
|
* disclosure never re-imposes itself over a deliberate user action).
|
|
833
657
|
*/
|
|
834
658
|
function AdvancedGroupBranch({ group }: { group: GroupItemSpec }) {
|
|
835
|
-
const
|
|
659
|
+
const store = useSchemaFormStore();
|
|
660
|
+
const hasError = useBranchHasError(store, group.fields);
|
|
661
|
+
const visibleNames = useVisibleFieldNames(store, group.fields);
|
|
836
662
|
const [manualOpen, setManualOpen] = useState<boolean | undefined>(undefined);
|
|
837
|
-
const open = manualOpen ??
|
|
663
|
+
const open = manualOpen ?? hasError;
|
|
838
664
|
return (
|
|
839
665
|
<AdvancedGroup
|
|
840
666
|
title={group.label}
|
|
@@ -842,11 +668,9 @@ function AdvancedGroupBranch({ group }: { group: GroupItemSpec }) {
|
|
|
842
668
|
open={open}
|
|
843
669
|
onOpenChange={setManualOpen}
|
|
844
670
|
>
|
|
845
|
-
{
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
<SchemaFormField key={child.name} name={child.name} />
|
|
849
|
-
))}
|
|
671
|
+
{visibleNames.map((name) => (
|
|
672
|
+
<SchemaFormField key={name} name={name} />
|
|
673
|
+
))}
|
|
850
674
|
</AdvancedGroup>
|
|
851
675
|
);
|
|
852
676
|
}
|
|
@@ -884,39 +708,72 @@ export interface SchemaFormFieldProps extends Omit<HTMLAttributes<HTMLDivElement
|
|
|
884
708
|
* the same spec would render a hidden field in a custom layout while
|
|
885
709
|
* validation/submission (which always excludes it) disagree.
|
|
886
710
|
*/
|
|
887
|
-
export const SchemaFormField =
|
|
888
|
-
function SchemaFormField(
|
|
889
|
-
|
|
890
|
-
|
|
711
|
+
export const SchemaFormField = memo(
|
|
712
|
+
forwardRef<HTMLDivElement, SchemaFormFieldProps>(function SchemaFormField(
|
|
713
|
+
{ name, className, ...props },
|
|
714
|
+
ref,
|
|
715
|
+
) {
|
|
716
|
+
// Hooks run unconditionally, ahead of the `!field`/`!visible` early
|
|
717
|
+
// returns below (rules-of-hooks) — this is exactly what makes typing in
|
|
718
|
+
// field A skip re-rendering field B: `useFieldSnapshot` bails out (via
|
|
719
|
+
// `useSyncExternalStore`'s `Object.is` check on the cached snapshot) for
|
|
720
|
+
// every OTHER mounted `SchemaFormField`, so only the field whose own
|
|
721
|
+
// snapshot changed re-renders.
|
|
722
|
+
const store = useSchemaFormStore();
|
|
723
|
+
const meta = useSchemaFormMeta(store);
|
|
724
|
+
const snapshot = useFieldSnapshot(store, name);
|
|
725
|
+
const field = store.getField(name);
|
|
891
726
|
if (!field) return null;
|
|
892
|
-
if (!
|
|
893
|
-
|
|
894
|
-
const id = controlId(
|
|
895
|
-
const labelId = `${
|
|
896
|
-
const
|
|
897
|
-
const error = ctx.errors[name] ?? null;
|
|
898
|
-
const invalid = Boolean(error);
|
|
899
|
-
const controlDisabled = ctx.disabled || ctx.submitted || ctx.submitting;
|
|
900
|
-
const readOnly = ctx.submitted;
|
|
727
|
+
if (!snapshot.visible) return null;
|
|
728
|
+
|
|
729
|
+
const id = controlId(meta.formId, name);
|
|
730
|
+
const labelId = `${meta.formId}-label-${name}`;
|
|
731
|
+
const invalid = snapshot.invalid;
|
|
901
732
|
const description = field.description;
|
|
902
733
|
const hasDesc = Boolean(description);
|
|
903
734
|
const describedBy =
|
|
904
|
-
[hasDesc ? descId(
|
|
735
|
+
[hasDesc ? descId(meta.formId, name) : null, invalid ? errorId(meta.formId, name) : null]
|
|
905
736
|
.filter(Boolean)
|
|
906
737
|
.join(" ") || undefined;
|
|
907
738
|
|
|
908
739
|
const controlProps: FieldControlProps = {
|
|
909
740
|
field,
|
|
910
|
-
value,
|
|
741
|
+
value: snapshot.value,
|
|
911
742
|
invalid,
|
|
912
|
-
disabled:
|
|
913
|
-
readOnly,
|
|
743
|
+
disabled: snapshot.disabled,
|
|
744
|
+
readOnly: snapshot.readOnly,
|
|
914
745
|
id,
|
|
915
746
|
labelId,
|
|
916
747
|
describedBy,
|
|
917
|
-
setValue:
|
|
748
|
+
setValue: store.setValue,
|
|
918
749
|
};
|
|
919
750
|
|
|
751
|
+
if (field.type !== "group" && field.readOnly) {
|
|
752
|
+
return (
|
|
753
|
+
<div
|
|
754
|
+
ref={ref}
|
|
755
|
+
data-slot="schema-form-field"
|
|
756
|
+
data-readonly=""
|
|
757
|
+
className={cn("flex flex-col gap-1.5", className)}
|
|
758
|
+
{...props}
|
|
759
|
+
>
|
|
760
|
+
<Descriptions layout="vertical">
|
|
761
|
+
<DescriptionsItem
|
|
762
|
+
label={fieldLabel(field)}
|
|
763
|
+
numeric={field.type === "number" || field.type === "integer"}
|
|
764
|
+
>
|
|
765
|
+
{readOnlyText(snapshot.value)}
|
|
766
|
+
</DescriptionsItem>
|
|
767
|
+
</Descriptions>
|
|
768
|
+
{hasDesc && (
|
|
769
|
+
<p id={descId(meta.formId, name)} className="text-caption text-muted-foreground">
|
|
770
|
+
{description}
|
|
771
|
+
</p>
|
|
772
|
+
)}
|
|
773
|
+
</div>
|
|
774
|
+
);
|
|
775
|
+
}
|
|
776
|
+
|
|
920
777
|
const isBoolean = field.type === "boolean";
|
|
921
778
|
const isGroup = field.type === "group";
|
|
922
779
|
// A multi-value control renders a labelled REGION, not one focusable
|
|
@@ -970,18 +827,18 @@ export const SchemaFormField = forwardRef<HTMLDivElement, SchemaFormFieldProps>(
|
|
|
970
827
|
)}
|
|
971
828
|
|
|
972
829
|
{hasDesc && (
|
|
973
|
-
<p id={descId(
|
|
830
|
+
<p id={descId(meta.formId, name)} className="text-caption text-muted-foreground">
|
|
974
831
|
{description}
|
|
975
832
|
</p>
|
|
976
833
|
)}
|
|
977
834
|
{invalid && (
|
|
978
|
-
<p id={errorId(
|
|
979
|
-
{
|
|
835
|
+
<p id={errorId(meta.formId, name)} className="text-caption text-destructive-text">
|
|
836
|
+
{snapshot.errorText}
|
|
980
837
|
</p>
|
|
981
838
|
)}
|
|
982
839
|
</div>
|
|
983
840
|
);
|
|
984
|
-
},
|
|
841
|
+
}),
|
|
985
842
|
);
|
|
986
843
|
|
|
987
844
|
// ─── Fields (all) ─────────────────────────────────────────────────────────────
|
|
@@ -991,7 +848,10 @@ export type SchemaFormFieldsProps = HTMLAttributes<HTMLDivElement>;
|
|
|
991
848
|
/** Renders every top-level field in the spec, in order. A skeleton while `loading` with no fields. */
|
|
992
849
|
export const SchemaFormFields = forwardRef<HTMLDivElement, SchemaFormFieldsProps>(
|
|
993
850
|
function SchemaFormFields({ className, ...props }, ref) {
|
|
994
|
-
const
|
|
851
|
+
const store = useSchemaFormStore();
|
|
852
|
+
const meta = useSchemaFormMeta(store);
|
|
853
|
+
const visibleNames = useVisibleFieldNames(store, meta.spec.fields);
|
|
854
|
+
const { spec, loading } = meta;
|
|
995
855
|
|
|
996
856
|
if (spec.fields.length === 0 && loading) {
|
|
997
857
|
return (
|
|
@@ -1021,16 +881,92 @@ export const SchemaFormFields = forwardRef<HTMLDivElement, SchemaFormFieldsProps
|
|
|
1021
881
|
className={cn("flex flex-col gap-4", className)}
|
|
1022
882
|
{...props}
|
|
1023
883
|
>
|
|
1024
|
-
{spec.
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
884
|
+
{spec.sections
|
|
885
|
+
? (() => {
|
|
886
|
+
const grouped = new Set(spec.sections.flatMap((section) => section.fields));
|
|
887
|
+
const visible = new Set(visibleNames);
|
|
888
|
+
return (
|
|
889
|
+
<>
|
|
890
|
+
{visibleNames
|
|
891
|
+
.filter((name) => !grouped.has(name))
|
|
892
|
+
.map((name) => (
|
|
893
|
+
<SchemaFormField key={name} name={name} />
|
|
894
|
+
))}
|
|
895
|
+
{spec.sections.map((section) => {
|
|
896
|
+
const names = section.fields.filter((name) => visible.has(name));
|
|
897
|
+
if (names.length === 0) return null;
|
|
898
|
+
return (
|
|
899
|
+
<SchemaFormSection
|
|
900
|
+
key={section.id}
|
|
901
|
+
label={section.label}
|
|
902
|
+
collapsed={section.collapsed}
|
|
903
|
+
>
|
|
904
|
+
{names.map((name) => (
|
|
905
|
+
<SchemaFormField key={name} name={name} />
|
|
906
|
+
))}
|
|
907
|
+
</SchemaFormSection>
|
|
908
|
+
);
|
|
909
|
+
})}
|
|
910
|
+
</>
|
|
911
|
+
);
|
|
912
|
+
})()
|
|
913
|
+
: visibleNames.map((name) => <SchemaFormField key={name} name={name} />)}
|
|
1029
914
|
</div>
|
|
1030
915
|
);
|
|
1031
916
|
},
|
|
1032
917
|
);
|
|
1033
918
|
|
|
919
|
+
/** A read-only field's value as text; an empty value renders an em dash. */
|
|
920
|
+
function readOnlyText(value: FormValue): string {
|
|
921
|
+
if (value === undefined || value === "") return "—";
|
|
922
|
+
if (Array.isArray(value)) {
|
|
923
|
+
if (value.length === 0) return "—";
|
|
924
|
+
return value
|
|
925
|
+
.map((item) =>
|
|
926
|
+
typeof item === "string"
|
|
927
|
+
? item
|
|
928
|
+
: item instanceof File
|
|
929
|
+
? item.name
|
|
930
|
+
: `${item.key}: ${item.value}`,
|
|
931
|
+
)
|
|
932
|
+
.join(", ");
|
|
933
|
+
}
|
|
934
|
+
return String(value);
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
/** One `FormSpec.sections` entry: a disclosure over its fields. */
|
|
938
|
+
function SchemaFormSection({
|
|
939
|
+
label,
|
|
940
|
+
collapsed,
|
|
941
|
+
children,
|
|
942
|
+
}: {
|
|
943
|
+
label: string;
|
|
944
|
+
collapsed?: boolean;
|
|
945
|
+
children: ReactNode;
|
|
946
|
+
}) {
|
|
947
|
+
return (
|
|
948
|
+
<Collapsible
|
|
949
|
+
defaultOpen={!collapsed}
|
|
950
|
+
data-slot="schema-form-section"
|
|
951
|
+
className="group/section flex flex-col gap-3 border-t border-border-strong pt-3"
|
|
952
|
+
>
|
|
953
|
+
<CollapsibleTrigger
|
|
954
|
+
data-slot="schema-form-section-trigger"
|
|
955
|
+
className="focus-ring flex w-full items-center gap-1 rounded-sm text-start text-subtitle text-foreground"
|
|
956
|
+
>
|
|
957
|
+
<ChevronRight
|
|
958
|
+
aria-hidden="true"
|
|
959
|
+
className="size-4 shrink-0 transition-transform group-data-[state=open]/section:rotate-90 motion-reduce:transition-none"
|
|
960
|
+
/>
|
|
961
|
+
{label}
|
|
962
|
+
</CollapsibleTrigger>
|
|
963
|
+
<CollapsibleContent data-slot="schema-form-section-content" className="flex flex-col gap-4">
|
|
964
|
+
{children}
|
|
965
|
+
</CollapsibleContent>
|
|
966
|
+
</Collapsible>
|
|
967
|
+
);
|
|
968
|
+
}
|
|
969
|
+
|
|
1034
970
|
function SchemaFormSkeletonAnnouncement() {
|
|
1035
971
|
const { t } = useLocale();
|
|
1036
972
|
return (
|
|
@@ -1047,7 +983,8 @@ export type SchemaFormErrorProps = HTMLAttributes<HTMLDivElement>;
|
|
|
1047
983
|
/** A terminal, form-level submission error (e.g. "Couldn't save settings"). Renders nothing when absent. */
|
|
1048
984
|
export const SchemaFormError = forwardRef<HTMLDivElement, SchemaFormErrorProps>(
|
|
1049
985
|
function SchemaFormError({ className, ...props }, ref) {
|
|
1050
|
-
const
|
|
986
|
+
const store = useSchemaFormStore();
|
|
987
|
+
const { error } = useSchemaFormMeta(store);
|
|
1051
988
|
if (!error) return null;
|
|
1052
989
|
return (
|
|
1053
990
|
<div
|
|
@@ -1099,7 +1036,8 @@ export interface SchemaFormSubmitProps extends Omit<HTMLAttributes<HTMLButtonEle
|
|
|
1099
1036
|
export const SchemaFormSubmit = forwardRef<HTMLButtonElement, SchemaFormSubmitProps>(
|
|
1100
1037
|
function SchemaFormSubmit({ label, className, onClick, ...props }, ref) {
|
|
1101
1038
|
const { t } = useLocale();
|
|
1102
|
-
const
|
|
1039
|
+
const store = useSchemaFormStore();
|
|
1040
|
+
const { spec, submitting, submitted, disabled, loading } = useSchemaFormMeta(store);
|
|
1103
1041
|
|
|
1104
1042
|
if (submitted) {
|
|
1105
1043
|
return (
|
|
@@ -1152,7 +1090,7 @@ export const SchemaFormSubmit = forwardRef<HTMLButtonElement, SchemaFormSubmitPr
|
|
|
1152
1090
|
/**
|
|
1153
1091
|
* `SchemaFormTestAction`'s lifecycle: `idle` → `pending` while `onTest` is in
|
|
1154
1092
|
* flight → `success`/`failure` once it settles. Deliberately local component
|
|
1155
|
-
* state, NOT part of `
|
|
1093
|
+
* state, NOT part of the `SchemaFormStore` — so it can never affect field
|
|
1156
1094
|
* validity or gate `submit()` (issue #22 maintainer ruling, 2026-09-01: a
|
|
1157
1095
|
* form/group-level test-action slot, kept separate from field validity and
|
|
1158
1096
|
* never gating submit — not per-field `validateAsync` in the validation
|
|
@@ -1201,13 +1139,9 @@ export const SchemaFormTestAction = forwardRef<HTMLDivElement, SchemaFormTestAct
|
|
|
1201
1139
|
ref,
|
|
1202
1140
|
) {
|
|
1203
1141
|
const { t } = useLocale();
|
|
1204
|
-
const
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
loading,
|
|
1208
|
-
submitted,
|
|
1209
|
-
submitting,
|
|
1210
|
-
} = useSchemaFormContext();
|
|
1142
|
+
const store = useSchemaFormStore();
|
|
1143
|
+
const { disabled: formDisabled, loading, submitted, submitting } = useSchemaFormMeta(store);
|
|
1144
|
+
const effectiveValues = useEffectiveValues(store);
|
|
1211
1145
|
const [status, setStatus] = useState<SchemaFormTestActionStatus>("idle");
|
|
1212
1146
|
const [failureMessage, setFailureMessage] = useState<string | null>(null);
|
|
1213
1147
|
|
|
@@ -1339,7 +1273,8 @@ export type SchemaFormRootProps = Omit<HTMLAttributes<HTMLFormElement>, "onSubmi
|
|
|
1339
1273
|
export const SchemaFormRoot = forwardRef<HTMLFormElement, SchemaFormRootProps>(
|
|
1340
1274
|
function SchemaFormRoot({ className, children, ...props }, ref) {
|
|
1341
1275
|
const { t } = useLocale();
|
|
1342
|
-
const
|
|
1276
|
+
const store = useSchemaFormStore();
|
|
1277
|
+
const { headingId, spec, disabled, submitting, loading } = useSchemaFormMeta(store);
|
|
1343
1278
|
const handleSubmit = (e: FormEvent<HTMLFormElement>) => {
|
|
1344
1279
|
e.preventDefault();
|
|
1345
1280
|
// The submit control's `aria-disabled` is a signal, not a lock — this is
|
|
@@ -1347,7 +1282,7 @@ export const SchemaFormRoot = forwardRef<HTMLFormElement, SchemaFormRootProps>(
|
|
|
1347
1282
|
// too (see `SchemaFormSubmit`): the fields are still a skeleton, so
|
|
1348
1283
|
// there is nothing real to validate/submit yet.
|
|
1349
1284
|
if (disabled || submitting || loading) return;
|
|
1350
|
-
submit();
|
|
1285
|
+
store.submit();
|
|
1351
1286
|
};
|
|
1352
1287
|
return (
|
|
1353
1288
|
<form
|
|
@@ -1373,14 +1308,15 @@ export type SchemaFormTitleProps = HTMLAttributes<HTMLParagraphElement>;
|
|
|
1373
1308
|
/** The form heading. Its id is the `<form>`'s `aria-labelledby` target. */
|
|
1374
1309
|
export const SchemaFormTitle = forwardRef<HTMLParagraphElement, SchemaFormTitleProps>(
|
|
1375
1310
|
function SchemaFormTitle({ className, children, ...props }, ref) {
|
|
1376
|
-
const
|
|
1311
|
+
const store = useSchemaFormStore();
|
|
1312
|
+
const { headingId, spec } = useSchemaFormMeta(store);
|
|
1377
1313
|
const content = children ?? spec.title;
|
|
1378
1314
|
if (!content) return null;
|
|
1379
1315
|
return (
|
|
1380
1316
|
<p
|
|
1381
1317
|
ref={ref}
|
|
1382
1318
|
id={headingId}
|
|
1383
|
-
className={cn("text-subtitle
|
|
1319
|
+
className={cn("text-subtitle text-foreground text-balance", className)}
|
|
1384
1320
|
{...props}
|
|
1385
1321
|
>
|
|
1386
1322
|
{content}
|
|
@@ -1394,7 +1330,8 @@ export type SchemaFormDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
|
|
|
1394
1330
|
/** Supplemental description under the title. */
|
|
1395
1331
|
export const SchemaFormDescription = forwardRef<HTMLParagraphElement, SchemaFormDescriptionProps>(
|
|
1396
1332
|
function SchemaFormDescription({ className, children, ...props }, ref) {
|
|
1397
|
-
const
|
|
1333
|
+
const store = useSchemaFormStore();
|
|
1334
|
+
const { spec } = useSchemaFormMeta(store);
|
|
1398
1335
|
const content = children ?? spec.description;
|
|
1399
1336
|
if (!content) return null;
|
|
1400
1337
|
return (
|
|
@@ -1494,7 +1431,13 @@ export const SchemaForm = forwardRef<HTMLDivElement, SchemaFormProps>(function S
|
|
|
1494
1431
|
},
|
|
1495
1432
|
ref,
|
|
1496
1433
|
) {
|
|
1497
|
-
|
|
1434
|
+
// Memoized on `spec`'s reference: a parent re-rendering with the SAME spec
|
|
1435
|
+
// object (the common case once a spec is loaded) must not re-walk/re-
|
|
1436
|
+
// validate it on every keystroke elsewhere in the app — `SchemaFormStore`
|
|
1437
|
+
// itself already relies on `spec` reference-equality to skip its own
|
|
1438
|
+
// recompute (see `syncProps`), so this keeps that contract meaningful one
|
|
1439
|
+
// level up.
|
|
1440
|
+
const result = useMemo(() => normalizeFormSpec(spec), [spec]);
|
|
1498
1441
|
if (!result.ok) {
|
|
1499
1442
|
return (
|
|
1500
1443
|
<SchemaFormFallback ref={ref} message={result.reason} className={className} {...props} />
|