@invana/forms 0.0.7 → 0.0.12

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/label.tsx","../src/components/form.tsx","../src/components/input.tsx","../src/components/switch.tsx","../src/components/select.tsx","../src/fields/color-swatches.tsx","../src/components/slider.tsx","../src/fields/slider-number.tsx","../src/fields/icon-input.tsx","../src/form-field.tsx","../src/components/textarea.tsx","../src/components/checkbox.tsx","../src/components/radio-group.tsx","../src/components/field.tsx","../src/components/input-group.tsx"],"names":["cva","React","jsx","LabelPrimitive","cn","FormProvider","React2","Controller","useFormContext","Slot","React3","React4","SwitchPrimitives","SelectPrimitive","React5","jsxs","ChevronDown","ChevronUp","Check","React6","React7","SliderPrimitive","React8","Accordion","AccordionItem","AccordionTrigger","AccordionContent","FormField","React9","React10","CheckboxPrimitive","React11","RadioGroupPrimitive","Circle","Separator","useMemo","Button"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAM,aAAA,GAAgBA,0BAAA;AAAA,EACpB;AACF,CAAA;AAEA,IAAM,KAAA,GAAcC,6BAIlB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BC,cAAA;AAAA,EAAgBC,yBAAA,CAAA,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,KAAA,CAAG,aAAA,EAAc,EAAG,SAAS,CAAA;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,cAA6BD,yBAAA,CAAA,IAAA,CAAK,WAAA;ACPxC,IAAM,IAAA,GAAOE;AASb,IAAM,gBAAA,GAAyBC,iBAAA,CAAA,aAAA;AAAA,EAC7B;AACF,CAAA;AAEA,IAAM,YAAY,CAGhB;AAAA,EACA,GAAG;AACL,CAAA,KAA4C;AAC1C,EAAA,uBACEJ,cAAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,OAAO,EAAE,IAAA,EAAM,KAAA,CAAM,IAAA,IAC9C,QAAA,kBAAAA,cAAAA,CAACK,wBAAA,EAAA,EAAY,GAAG,OAAO,CAAA,EACzB,CAAA;AAEJ,CAAA;AAEA,IAAM,eAAe,MAAM;AACzB,EAAA,MAAM,YAAA,GAAqBD,6BAAW,gBAAgB,CAAA;AACtD,EAAA,MAAM,WAAA,GAAoBA,6BAAW,eAAe,CAAA;AACpD,EAAA,MAAM,EAAE,aAAA,EAAe,SAAA,EAAU,GAAIE,4BAAA,EAAe;AAEpD,EAAA,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,CAAa,IAAA,EAAM,SAAS,CAAA;AAE7D,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AAEA,EAAA,MAAM,EAAE,IAAG,GAAI,WAAA;AAEf,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,MAAM,YAAA,CAAa,IAAA;AAAA,IACnB,UAAA,EAAY,GAAG,EAAE,CAAA,UAAA,CAAA;AAAA,IACjB,iBAAA,EAAmB,GAAG,EAAE,CAAA,sBAAA,CAAA;AAAA,IACxB,aAAA,EAAe,GAAG,EAAE,CAAA,kBAAA,CAAA;AAAA,IACpB,GAAG;AAAA,GACL;AACF;AAMA,IAAM,eAAA,GAAwBF,iBAAA,CAAA,aAAA;AAAA,EAC5B;AACF,CAAA;AAEA,IAAM,QAAA,GAAiBA,6BAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,KAAWA,iBAAA,CAAA,KAAA,EAAM;AAEvB,EAAA,uBACEJ,eAAC,eAAA,CAAgB,QAAA,EAAhB,EAAyB,KAAA,EAAO,EAAE,IAAG,EACpC,QAAA,kBAAAA,eAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,KAAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EAAI,GAAG,OAAO,CAAA,EACnE,CAAA;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,SAAA,GAAkBE,6BAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAW,GAAI,YAAA,EAAa;AAE3C,EAAA,uBACEJ,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWE,KAAAA,CAAG,KAAA,IAAS,kBAAA,EAAoB,SAAS,CAAA;AAAA,MACpD,OAAA,EAAS,UAAA;AAAA,MACR,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,cAAoBE,iBAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,GAAG,KAAA,IAAS,GAAA,KAAQ;AACvB,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAY,iBAAA,EAAmB,aAAA,KAAkB,YAAA,EAAa;AAE7E,EAAA,uBACEJ,cAAAA;AAAA,IAACO,cAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,UAAA;AAAA,MACJ,kBAAA,EACE,CAAC,KAAA,GACG,CAAA,EAAG,iBAAiB,CAAA,CAAA,GACpB,CAAA,EAAG,iBAAiB,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAAA,MAE3C,cAAA,EAAc,CAAC,CAAC,KAAA;AAAA,MACf,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,eAAA,GAAwBH,6BAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,iBAAA,EAAkB,GAAI,YAAA,EAAa;AAE3C,EAAA,uBACEJ,cAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,iBAAA;AAAA,MACJ,SAAA,EAAWE,KAAAA,CAAG,qCAAA,EAAuC,SAAS,CAAA;AAAA,MAC7D,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,WAAA,GAAoBE,6BAGxB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAc,GAAI,YAAA,EAAa;AAC9C,EAAA,MAAM,IAAA,GAAO,KAAA,GAAQ,MAAA,CAAO,KAAA,EAAO,OAAO,CAAA,GAAI,QAAA;AAE9C,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEJ,cAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,aAAA;AAAA,MACJ,SAAA,EAAWE,KAAAA,CAAG,4CAAA,EAA8C,SAAS,CAAA;AAAA,MACpE,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AC/J1B,IAAM,KAAA,GAAcM,iBAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,MAAM,GAAG,KAAA,IAAS,GAAA,KAAQ;AACtC,IAAA,uBACER,cAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAA,EAAWE,KAAAA;AAAA,UACT,gYAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;ACdpB,IAAM,MAAA,GAAeO,6BAGnB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BT,cAAAA;AAAA,EAAkBU,2BAAA,CAAA,IAAA;AAAA,EAAjB;AAAA,IACC,SAAA,EAAWR,KAAAA;AAAA,MACT,2ZAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IACJ,GAAA;AAAA,IAEA,QAAA,kBAAAF,cAAAA;AAAA,MAAkBU,2BAAA,CAAA,KAAA;AAAA,MAAjB;AAAA,QACC,SAAA,EAAWR,KAAAA;AAAA,UACT;AAAA;AACF;AAAA;AACF;AACF,CACD;AACD,MAAA,CAAO,cAA+BQ,2BAAA,CAAA,IAAA,CAAK,WAAA;AClB3C,IAAM,MAAA,GAAyBC,0BAAA,CAAA;AAE/B,IAAM,WAAA,GAA8BA,0BAAA,CAAA;AAEpC,IAAM,WAAA,GAA8BA,0BAAA,CAAA;AAEpC,IAAM,aAAA,GAAsBC,6BAG1B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCC,eAAA;AAAA,EAAiBF,0BAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA;AAAA,MACT,kTAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDF,cAAAA,CAAiBW,0BAAA,CAAA,IAAA,EAAhB,EAAqB,OAAA,EAAO,IAAA,EAC3B,QAAA,kBAAAX,cAAAA,CAACc,uBAAA,EAAA,EAAY,SAAA,EAAU,oBAAA,EAAqB,CAAA,EAC9C;AAAA;AAAA;AACF,CACD;AACD,aAAA,CAAc,cAA8BH,0BAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,oBAAA,GAA6BC,6BAGjC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BZ,cAAAA;AAAA,EAAiBW,0BAAA,CAAA,cAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA;AAAA,MACT,sDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAF,cAAAA,CAACe,qBAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU;AAAA;AACjC,CACD;AACD,oBAAA,CAAqB,cAA8BJ,0BAAA,CAAA,cAAA,CAAe,WAAA;AAElE,IAAM,sBAAA,GAA+BC,6BAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BZ,cAAAA;AAAA,EAAiBW,0BAAA,CAAA,gBAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA;AAAA,MACT,sDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAF,cAAAA,CAACc,uBAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA;AACnC,CACD;AACD,sBAAA,CAAuB,cACLH,0BAAA,CAAA,gBAAA,CAAiB,WAAA;AAEnC,IAAM,aAAA,GAAsBC,iBAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,WAAW,QAAA,EAAU,QAAA,GAAW,QAAA,EAAU,GAAG,OAAM,EAAG,GAAA,qBACzDZ,cAAAA,CAAiBW,mCAAhB,EACC,QAAA,kBAAAE,eAAA;AAAA,EAAiBF,0BAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA;AAAA,MACT,qcAAA;AAAA,MACA,aAAa,QAAA,IACb,iIAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,QAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAF,eAAC,oBAAA,EAAA,EAAqB,CAAA;AAAA,sBACtBA,cAAAA;AAAA,QAAiBW,0BAAA,CAAA,QAAA;AAAA,QAAhB;AAAA,UACC,SAAA,EAAWT,KAAAA;AAAA,YACT,KAAA;AAAA,YACA,aAAa,QAAA,IACb;AAAA,WACF;AAAA,UAEC;AAAA;AAAA,OACH;AAAA,sBACAF,eAAC,sBAAA,EAAA,EAAuB;AAAA;AAAA;AAC1B,CAAA,EACF,CACD;AACD,aAAA,CAAc,cAA8BW,0BAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,WAAA,GAAoBC,6BAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BZ,cAAAA;AAAA,EAAiBW,0BAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA;AAAA,IAC3D,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8BS,0BAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,UAAA,GAAmBC,6BAGvB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCC,eAAA;AAAA,EAAiBF,0BAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA;AAAA,MACT,mNAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAF,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+DAAA,EACd,0BAAAA,cAAAA,CAAiBW,0BAAA,CAAA,aAAA,EAAhB,EACC,QAAA,kBAAAX,cAAAA,CAACgB,iBAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,GAC7B,CAAA,EACF,CAAA;AAAA,sBACAhB,cAAAA,CAAiBW,0BAAA,CAAA,QAAA,EAAhB,EAA0B,QAAA,EAAS;AAAA;AAAA;AACtC,CACD;AACD,UAAA,CAAW,cAA8BA,0BAAA,CAAA,IAAA,CAAK,WAAA;AAE9C,IAAM,eAAA,GAAwBC,6BAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BZ,cAAAA;AAAA,EAAiBW,0BAAA,CAAA,SAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWT,KAAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,cAA8BS,0BAAA,CAAA,SAAA,CAAU,WAAA;AClIxD,IAAM,eAAA,GAAiC;AAAA,EACrC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,cAAA,EAAgB,WAAW,oBAAA,EAAqB;AAAA,EACzE,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,kBAAA,EAAmB;AAAA,EAC1C,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,mBAAA;AAC1B,CAAA;AAEO,IAAM,gBAA8C,CAAC;AAAA,EAC1D,KAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,GAAe,eAAA;AAAA,EACf,YAAA,GAAe;AACjB,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAUM,iBAAA,CAAA,QAAA,CAAS,SAAS,YAAY,CAAA;AAC1E,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUA,2BAAS,KAAK,CAAA;AAEpD,EAAMA,4BAAU,MAAM;AACpB,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,MAAM,WAAW,YAAA,CAAa,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,KAAK,CAAA;AAC3D,IAAA,WAAA,CAAY,CAAC,QAAQ,CAAA;AACrB,IAAA,IAAI,CAAC,QAAA,EAAU,cAAA,CAAe,KAAK,CAAA;AAAA,EACrC,CAAA,EAAG,CAAC,KAAA,EAAO,YAAY,CAAC,CAAA;AAExB,EAAA,MAAM,MAAA,GAAS,CAAC,QAAA,EAAkB,MAAA,GAAS,KAAA,KAAU;AACnD,IAAA,WAAA,CAAY,MAAM,CAAA;AAClB,IAAA,IAAI,MAAA,iBAAuB,QAAQ,CAAA;AACnC,IAAA,QAAA,GAAW,QAAQ,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACEJ,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA;AAAA,IAAA,YAAA,CAAa,GAAA,CAAI,CAAC,KAAA,qBACjBA,eAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AAAA,QACjC,SAAA,EAAWX,KAAAA;AAAA,UACT,0DAAA;AAAA,UACA,uDAAA;AAAA,UACA,qGAAA;AAAA,UACA,CAAC,QAAA,IAAY,KAAA,KAAU,KAAA,CAAM,KAAA,IAAS;AAAA,SACxC;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAF,cAAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EAAgB,OAAO,EAAE,eAAA,EAAiB,KAAA,CAAM,KAAA,EAAM,EAAG,CAAA;AAAA,UACvE,CAAC,QAAA,IAAY,KAAA,KAAU,KAAA,CAAM,KAAA,oBAC5BA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+DAAA,EACb,0BAAAA,cAAAA,CAACgB,iBAAAA,EAAA,EAAM,SAAA,EAAU,sBAAqB,CAAA,EACxC,CAAA;AAAA,0BAEFH,eAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA;AAAA,YAAA,SAAA;AAAA,YAAQ,KAAA,CAAM;AAAA,WAAA,EAAM;AAAA;AAAA,OAAA;AAAA,MAhBzC,KAAA,CAAM;AAAA,KAkBd,CAAA;AAAA,oBACDA,eAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWX,KAAAA;AAAA,UACT,0DAAA;AAAA,UACA,uDAAA;AAAA,UACA,QAAA,IAAY;AAAA,SACd;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAAF,cAAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,OAAA;AAAA,cACL,KAAA,EAAO,WAAA;AAAA,cACP,UAAU,CAAC,CAAA,KAAM,OAAO,CAAA,CAAE,MAAA,CAAO,OAAO,IAAI,CAAA;AAAA,cAC5C,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BACAA,eAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAgB,KAAA,EAAO,EAAE,eAAA,EAAiB,WAAA,EAAY,EAAG,CAAA;AAAA,UACvE,QAAA,oBACCA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+DAAA,EACb,QAAA,kBAAAA,cAAAA,CAACgB,iBAAAA,EAAA,EAAM,SAAA,EAAU,oBAAA,EAAqB,CAAA,EACxC,CAAA;AAAA,0BAEFhB,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,cAAA,EAAY;AAAA;AAAA;AAAA;AACxC,GAAA,EACF,CAAA;AAEJ;AClFA,IAAM,MAAA,GAAekB,6BAGnB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BL,eAAAA;AAAA,EAAiBM,0BAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWjB,KAAAA;AAAA,MACT,0DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAF,cAAAA,CAAiBmB,0BAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,oEAAA,EAC/B,QAAA,kBAAAnB,cAAAA,CAAiBmB,0BAAA,CAAA,KAAA,EAAhB,EAAsB,SAAA,EAAU,4BAAA,EAA6B,CAAA,EAChE,CAAA;AAAA,sBACAnB,cAAAA,CAAiBmB,0BAAA,CAAA,KAAA,EAAhB,EAAsB,WAAU,gQAAA,EAAiQ;AAAA;AAAA;AACpS,CACD;AACD,MAAA,CAAO,cAA8BA,0BAAA,CAAA,IAAA,CAAK,WAAA;ACRnC,IAAM,eAA4C,CAAC;AAAA,EACxD,KAAA,GAAQ,CAAA;AAAA,EACR,QAAA;AAAA,EACA,GAAA,GAAM,CAAA;AAAA,EACN,GAAA,GAAM,GAAA;AAAA,EACN,IAAA,GAAO,CAAA;AAAA,EACP;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUC,2BAAiB,KAAK,CAAA;AAEtD,EAAMA,4BAAU,MAAM;AACpB,IAAA,QAAA,CAAS,KAAK,CAAA;AAAA,EAChB,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,GAAA,GAAM,CAAC,CAAA,KAAc;AACzB,IAAA,QAAA,CAAS,CAAC,CAAA;AACV,IAAA,QAAA,GAAW,CAAC,CAAA;AAAA,EACd,CAAA;AAEA,EAAA,uBACEP,eAAAA,CAAC,KAAA,EAAA,EAAI,WAAWX,KAAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA,EACrD,QAAA,EAAA;AAAA,oBAAAF,cAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,CAAC,KAAK,CAAA;AAAA,QACb,eAAe,CAAC,CAAC,CAAC,CAAA,KAAgB,IAAI,CAAC,CAAA;AAAA,QACvC,GAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBACAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,KAAA,EAAO,KAAA;AAAA,QACP,QAAA,EAAU,CAAC,CAAA,KAAM,GAAA,CAAI,OAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,QAC3C,SAAA,EAAU,UAAA;AAAA,QACV,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;AC1CO,IAAM,SAAA,GAAsC,CAAC,EAAE,KAAA,EAAO,UAAS,KAAM;AAC1E,EAAA,uBACEa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,oBAAAb,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sFAAA,EACZ,QAAA,EAAA,KAAA,GAAQ,MAAM,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,QAAA,EAC/B,CAAA;AAAA,oBACAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,MAAA;AAAA,QACL,OAAO,KAAA,IAAS,EAAA;AAAA,QAChB,UAAU,CAAC,CAAA,KAAM,QAAA,GAAW,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,QAC1C,WAAA,EAAY,WAAA;AAAA,QACZ,SAAA,EAAU;AAAA;AAAA;AACZ,GAAA,EACF,CAAA;AAEJ;ACgCA,SAAS,WAAA,CAAY,eAA8B,SAAA,EAAoB;AACrE,EAAA,OAAOE,KAAAA;AAAA,IACL,kBAAkB,MAAA,IAAU,qCAAA;AAAA,IAC5B,kBAAkB,KAAA,IAAS,WAAA;AAAA,IAC3B;AAAA,GACF;AACF;AAEA,SAAS,aAAa,aAAA,EAA8B;AAClD,EAAA,OAAOA,KAAAA,CAAG,aAAA,KAAkB,MAAA,IAAU,YAAA,EAAc,WAAW,CAAA;AACjE;AAEO,IAAM,aAAuC,CAAC;AAAA,EACnD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB;AACF,CAAA,qBACEW,eAAAA,CAAC,QAAA,EAAA,EAAS,WAAW,WAAA,CAAY,aAAA,EAAe,SAAS,CAAA,EACtD,QAAA,EAAA;AAAA,EAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kBAChDa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,aAAa,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAAb,cAAAA,CAAC,eACC,QAAA,kBAAAA,cAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,aAAA;AAAA,QACV,WAAA;AAAA,QACA,OAAO,KAAA,IAAS,EAAA;AAAA,QAChB,UAAU,CAAC,CAAA,KAAM,QAAA,GAAW,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA,KAC5C,EACF,CAAA;AAAA,IACC,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,WAAW,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,oBAClEA,cAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA,GAAA,EACnC;AAAA,CAAA,EACF;AAGK,IAAM,cAAwC,CAAC;AAAA,EACpD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAU,EAAC;AAAA,EACX,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,aAAA;AAAA,EACd,aAAA,GAAgB,MAAA;AAAA,EAChB;AACF,CAAA,qBACEa,eAAAA,CAAC,QAAA,EAAA,EAAS,WAAW,WAAA,CAAY,aAAA,EAAe,SAAS,CAAA,EACtD,QAAA,EAAA;AAAA,EAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kBAChDa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,aAAa,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAAA,gBAAC,MAAA,EAAA,EAAO,KAAA,EAAO,KAAA,IAAS,EAAA,EAAI,eAAe,QAAA,EACzC,QAAA,EAAA;AAAA,sBAAAb,cAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,cAAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,KAAA,EACvB,QAAA,kBAAAA,cAAAA,CAAC,WAAA,EAAA,EAAY,WAAA,EAA0B,CAAA,EACzC,CAAA,EACF,CAAA;AAAA,sBACAA,cAAAA,CAAC,aAAA,EAAA,EACE,kBAAQ,GAAA,CAAI,CAAC,sBACZA,cAAAA,CAAC,UAAA,EAAA,EAAyB,KAAA,EAAO,EAAE,KAAA,EAChC,QAAA,EAAA,CAAA,CAAE,SADY,CAAA,CAAE,KAEnB,CACD,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,IACC,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,WAAW,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,oBAClEA,cAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA,GAAA,EACnC;AAAA,CAAA,EACF;AAGK,IAAM,eAAyC,CAAC;AAAA,EACrD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB;AAClB,CAAA,KAAM;AACJ,EAAA,IAAI,kBAAkB,MAAA,EAAQ;AAC5B,IAAA,uBACEa,eAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,yDAAA,EAClB,QAAA,EAAA;AAAA,sBAAAA,gBAAC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,QAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC/C,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,WAAW,QAAA,EAAA,WAAA,EAAY;AAAA,OAAA,EACpE,CAAA;AAAA,sBACAA,cAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,CAAC,CAAC,KAAA,EAAO,eAAA,EAAiB,QAAA,EAAU,CAAA,EACvD;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACA,EAAA,uBACEa,eAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,WAAA,EACjB,QAAA,EAAA;AAAA,IAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAChDa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yDAAA,EACb,QAAA,EAAA;AAAA,sBAAAb,cAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,cAAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,CAAC,CAAC,KAAA,EAAO,eAAA,EAAiB,QAAA,EAAU,CAAA,EACvD,CAAA;AAAA,MACC,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,gBAAgB,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EACzE;AAAA,GAAA,EACF,CAAA;AAEJ;AAEO,IAAM,aAAuC,CAAC;AAAA,EACnD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB;AACF,CAAA,qBACEa,eAAAA,CAAC,QAAA,EAAA,EAAS,WAAW,WAAA,CAAY,aAAA,EAAe,SAAS,CAAA,EACtD,QAAA,EAAA;AAAA,EAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kBAChDa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,aAAa,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAAb,cAAAA,CAAC,eACC,QAAA,kBAAAA,cAAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AAAA,KACF,EACF,CAAA;AAAA,IACC,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,WAAW,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,oBAClEA,cAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA,GAAA,EACnC;AAAA,CAAA,EACF;AAGK,IAAM,cAAwC,CAAC;AAAA,EACpD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB;AACF,CAAA,qBACEa,eAAAA,CAAC,QAAA,EAAA,EAAS,WAAW,WAAA,CAAY,aAAA,EAAe,SAAS,CAAA,EACtD,QAAA,EAAA;AAAA,EAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kBAChDa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,aAAa,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAAb,cAAAA,CAAC,eACC,QAAA,kBAAAA,cAAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,CAAA;AAAA,QAC3C,QAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AAAA,KACF,EACF,CAAA;AAAA,IACC,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,WAAW,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,oBAClEA,cAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA,GAAA,EACnC;AAAA,CAAA,EACF;AAGK,IAAM,YAAsC,CAAC;AAAA,EAClD,KAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB;AACF,CAAA,qBACEa,eAAAA,CAAC,QAAA,EAAA,EAAS,WAAW,WAAA,CAAY,aAAA,EAAe,SAAS,CAAA,EACtD,QAAA,EAAA;AAAA,EAAA,KAAA,oBAASb,cAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kBAChDa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,aAAa,CAAA,EACxC,QAAA,EAAA;AAAA,oBAAAb,eAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,eAAC,SAAA,EAAA,EAAU,KAAA,EAAc,UAAoB,CAAA,EAC/C,CAAA;AAAA,IACC,+BAAeA,cAAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,WAAW,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,oBAClEA,cAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU;AAAA,GAAA,EACnC;AAAA,CAAA,EACF;AAGK,IAAM,KAAA,GAAQ;AAAA,EACnB,KAAA,EAAO,UAAA;AAAA,EACP,OAAA,EAAS,YAAA;AAAA,EACT,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,WAAA;AAAA,EACR,MAAA,EAAQ,WAAA;AAAA,EACR,IAAA,EAAM;AACR;AAMA,SAAS,SAAS,IAAA,EAAsB;AACtC,EAAA,OAAO,IAAA,CACJ,OAAA,CAAQ,UAAA,EAAY,KAAK,CAAA,CACzB,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,EAAa,EACpC,IAAA,EAAK;AACV;AAEA,SAAS,KAAA,CAAS,KAAU,IAAA,EAAqB;AAC/C,EAAA,MAAM,MAAa,EAAC;AACpB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,IAAK,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,IAAI,CAAC,CAAA;AAC1E,EAAA,OAAO,GAAA;AACT;AAEA,SAAS,WAAA,CACP,KAAA,EACA,UAAA,EAEA,OAAA,EACA,aAAA,EACA;AACA,EAAA,uBACEA,cAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MAEC,OAAA;AAAA,MACA,IAAA,EAAM,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,CAAA;AAAA,MACjC,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,KAAI,KAAM;AAC1B,QAAA,MAAM,MAAA,GAAyB;AAAA,UAC7B,KAAA,EAAO,KAAA,CAAM,KAAA,IAAS,QAAA,CAAS,MAAM,IAAI,CAAA;AAAA,UACzC,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,KAAK,KAAA,CAAM,GAAA;AAAA,UACX,KAAK,KAAA,CAAM,GAAA;AAAA,UACX,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,aAAA;AAAA,UACA,OAAO,GAAA,CAAI,KAAA;AAAA,UACX,UAAU,GAAA,CAAI;AAAA,SAChB;AACA,QAAA,QAAQ,MAAM,IAAA;AAAM,UAClB,KAAK,SAAA;AACH,YAAA,uBAAOA,cAAAA,CAAC,YAAA,EAAA,EAAc,GAAG,MAAA,EAAQ,CAAA;AAAA,UACnC,KAAK,OAAA;AACH,YAAA,uBAAOA,cAAAA,CAAC,UAAA,EAAA,EAAY,GAAG,MAAA,EAAQ,CAAA;AAAA,UACjC,KAAK,QAAA;AACH,YAAA,uBAAOA,cAAAA,CAAC,WAAA,EAAA,EAAa,GAAG,MAAA,EAAQ,CAAA;AAAA,UAClC,KAAK,QAAA;AACH,YAAA,uBAAOA,cAAAA,CAAC,WAAA,EAAA,EAAa,GAAG,MAAA,EAAQ,CAAA;AAAA,UAClC,KAAK,MAAA;AACH,YAAA,uBAAOA,cAAAA,CAAC,SAAA,EAAA,EAAW,GAAG,MAAA,EAAQ,CAAA;AAAA,UAChC,KAAK,MAAA;AAAA,UACL;AACE,YAAA,uBACEA,cAAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACE,GAAG,MAAA;AAAA,gBACJ,WAAA,EAAa,KAAA,CAAM,WAAA,IAAe,CAAA,MAAA,EAAS,MAAM,IAAI,CAAA;AAAA;AAAA,aACvD;AAAA;AAEN,MACF;AAAA,KAAA;AAAA,IAtCK,KAAA,CAAM;AAAA,GAuCb;AAEJ;AAEA,SAAS,UAAA,CACP,MAAA,EACA,SAAA,EACA,UAAA,EAEA,SACA,aAAA,EACA;AACA,EAAA,IAAI,CAAC,SAAA,IAAa,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG;AACxC,IAAA,uBACEA,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA,KAAA,CAAM,MAAA,EAAQ,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAK,sBAC1BA,cAAAA,CAAC,KAAA,EAAA,EAAY,SAAA,EAAU,uCAAA,EACpB,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,WAAA,CAAY,CAAA,EAAG,UAAA,EAAY,OAAA,EAAS,aAAa,CAAC,CAAA,EAAA,EAD1D,CAEV,CACD,CAAA,EACH,CAAA;AAAA,EAEJ;AACA,EAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,SAAA,CAAU,QAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,MAAM,CAAC,CAAA;AACvD,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,IAAI,CAAC,CAAA;AACzD,EAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,IAAA,EAAM,CAAC,CAAC,CAAC,CAAA;AAErD,EAAA,uBACEa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA;AAAA,IAAA,SAAA,CAAU,GAAA,CAAI,CAAC,GAAA,KAAQ;AACtB,MAAA,MAAM,YAAY,GAAA,CAAI,MAAA,CACnB,GAAA,CAAI,CAAC,MAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,EACxB,MAAA,CAAO,CAAC,CAAA,KAAwB,CAAC,CAAC,CAAC,CAAA;AACtC,MAAA,OAAO,KAAA,CAAM,WAAW,CAAC,CAAA,CAAE,IAAI,CAAC,GAAA,EAAK,wBACnCb,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAU,uCAAA;AAAA,UAET,QAAA,EAAA,GAAA,CAAI,IAAI,CAAC,CAAA,KAAM,YAAY,CAAA,EAAG,UAAA,EAAY,OAAA,EAAS,aAAa,CAAC;AAAA,SAAA;AAAA,QAH7D,CAAA,EAAG,GAAA,CAAI,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA;AAAA,OAKxB,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,IACA,WAAW,MAAA,GAAS,CAAA,oBACnBA,cAAAA,CAAC,SAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA,KAAA,CAAM,UAAA,EAAY,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,EAAK,sBAC9BA,cAAAA,CAAC,KAAA,EAAA,EAAmB,SAAA,EAAU,yCAC3B,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,KAAM,YAAY,CAAA,EAAG,UAAA,EAAY,OAAA,EAAS,aAAa,CAAC,CAAA,EAAA,EAD1D,CAAA,EAAA,EAAK,CAAC,CAAA,CAEhB,CACD,CAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEA,IAAM,cAA0C,CAAC;AAAA,EAC/C,OAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,GAAgB;AAClB,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAsC,CAAC,KAAK,CAAA,KAAM;AACvE,IAAA,MAAM,GAAA,GAAM,EAAE,KAAA,IAAS,YAAA;AACvB,IAAA,CAAC,IAAI,GAAG,CAAA,KAAM,EAAC,EAAG,KAAK,CAAC,CAAA;AACxB,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,YAAY,CAAA,IAAK,EAAC;AAC5C,EAAA,OAAO,QAAQ,YAAY,CAAA;AAC3B,EAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA;AAE7C,EAAA,uBACEa,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA;AAAA,IAAA,SAAA,CAAU,MAAA,GAAS,CAAA,oBAClBb,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA,UAAA,CAAW,SAAA,EAAW,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,aAAa,CAAA,EAChE,CAAA;AAAA,IAGD,cAAA,CAAe,MAAA,GAAS,CAAA,oBACvBA,cAAAA;AAAA,MAACqB,YAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,UAAA;AAAA,QACL,cAAc,cAAA,CAAe,GAAA,CAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAAA,QAC3C,SAAA,EAAU,kBAAA;AAAA,QAET,QAAA,EAAA,cAAA,CAAe,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,OAAO,CAAA,qBAClCR,eAAAA,CAACS,gBAAA,EAAA,EAA0B,KAAA,EAAO,KAAA,EAAO,WAAU,mBAAA,EACjD,QAAA,EAAA;AAAA,0BAAAT,eAAAA,CAACU,mBAAA,EAAA,EAAiB,SAAA,EAAU,6CAAA,EACzB,QAAA,EAAA;AAAA,YAAA,QAAA,CAAS,KAAK,CAAA;AAAA,YAAE;AAAA,WAAA,EACnB,CAAA;AAAA,0BACAvB,cAAAA,CAACwB,mBAAA,EAAA,EAAiB,SAAA,EAAU,WAAA,EAC1B,0BAAAxB,cAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,qBAAW,OAAA,EAAS,SAAA,EAAW,MAAM,OAAA,EAAS,aAAa,GAC9D,CAAA,EACF;AAAA,SAAA,EAAA,EARkB,KASpB,CACD;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ;AAkBO,IAAMyB,UAAAA,GAAY,MAAA,CAAO,MAAA,CAAO,SAAA,EAAe;AAAA,EACpD,WAAA;AAAA,EACA,KAAA,EAAO,UAAA;AAAA,EACP,OAAA,EAAS,YAAA;AAAA,EACT,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ,WAAA;AAAA,EACR,MAAA,EAAQ,WAAA;AAAA,EACR,IAAA,EAAM;AACR,CAAC;ACtbD,IAAM,QAAA,GAAiBC,6BAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACE1B,cAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWE,KAAAA;AAAA,QACT,wSAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;ACdvB,IAAM,QAAA,GAAiByB,6BAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B3B,cAAAA;AAAA,EAAmB4B,4BAAA,CAAA,IAAA;AAAA,EAAlB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW1B,KAAAA;AAAA,MACT,oQAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAF,cAAAA;AAAA,MAAmB4B,4BAAA,CAAA,SAAA;AAAA,MAAlB;AAAA,QACC,SAAA,EAAW1B,MAAG,+CAA+C,CAAA;AAAA,QAE7D,QAAA,kBAAAF,cAAAA,CAACgB,iBAAAA,EAAA,EAAM,WAAU,SAAA,EAAU;AAAA;AAAA;AAC7B;AACF,CACD;AACD,QAAA,CAAS,cAAgCY,4BAAA,CAAA,IAAA,CAAK,WAAA;AClB9C,IAAM,UAAA,GAAmBC,6BAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACE7B,cAAAA;AAAA,IAAqB8B,8BAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,SAAA,EAAW5B,KAAAA,CAAG,YAAA,EAAc,SAAS,CAAA;AAAA,MACpC,GAAG,KAAA;AAAA,MACJ;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,UAAA,CAAW,cAAkC4B,8BAAA,CAAA,IAAA,CAAK,WAAA;AAElD,IAAM,cAAA,GAAuBD,6BAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACE7B,cAAAA;AAAA,IAAqB8B,8BAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW5B,KAAAA;AAAA,QACT,0OAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAF,cAAAA,CAAqB8B,8BAAA,CAAA,SAAA,EAApB,EAA8B,SAAA,EAAU,kCAAA,EACvC,QAAA,kBAAA9B,cAAAA,CAAC+B,kBAAA,EAAA,EAAO,SAAA,EAAU,uCAAA,EAAwC,CAAA,EAC5D;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,cAAA,CAAe,cAAkCD,8BAAA,CAAA,IAAA,CAAK,WAAA;AChCtD,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqC;AAC3E,EAAA,uBACE9B,cAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,qBAAA;AAAA,QACA,8EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,OAAA,GAAU,QAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAsE;AACpE,EAAA,uBACEF,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAWE,KAAAA;AAAA,QACT,kBAAA;AAAA,QACA,iCAAA;AAAA,QACA,8BAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEF,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,wIAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEsBJ,0BAAAA;AAAA,EACpB,oEAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,WAAA,EAAa;AAAA,QACX,QAAA,EAAU,CAAC,2CAA2C,CAAA;AAAA,QACtD,UAAA,EAAY;AAAA,UACV,uBAAA;AAAA,UACA,uCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,UAAA,EAAY;AAAA,UACV,8HAAA;AAAA,UACA,uDAAA;AAAA,UACA;AAAA;AACF;AACF,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ;AAkBA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEE,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,+DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuC;AACrC,EAAA,uBACEF,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,8GAAA;AAAA,QACA,iKAAA;AAAA,QACA,2HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEF,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,4GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA8B;AAC5E,EAAA,uBACEF,cAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,uHAAA;AAAA,QACA,8DAAA;AAAA,QACA,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,uBACEW,eAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,cAAA,EAAc,CAAC,CAAC,QAAA;AAAA,MAChB,SAAA,EAAWX,KAAAA;AAAA,QACT,2EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAF,cAAAA,CAACgC,YAAAA,EAAA,EAAU,SAAA,EAAU,0BAAA,EAA2B,CAAA;AAAA,QAC/C,4BACChC,cAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,uEAAA;AAAA,YACV,WAAA,EAAU,yBAAA;AAAA,YAET;AAAA;AAAA;AACH;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,OAAA,GAAUiC,eAAQ,MAAM;AAC5B,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAO,QAAA;AAAA,IACT;AAEA,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAI,QAAQ,MAAA,KAAW,CAAA,IAAK,MAAA,CAAO,CAAC,GAAG,OAAA,EAAS;AAC9C,MAAA,OAAO,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA;AAAA,IACnB;AAEA,IAAA,uBACEjC,cAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sCACX,QAAA,EAAA,MAAA,CAAO,GAAA;AAAA,MACN,CAAC,KAAA,EAAO,KAAA,KACN,KAAA,EAAO,OAAA,oBAAWA,cAAAA,CAAC,IAAA,EAAA,EAAgB,QAAA,EAAA,KAAA,CAAM,OAAA,EAAA,EAAd,KAAsB;AAAA,KACrD,EACF,CAAA;AAAA,EAEJ,CAAA,EAAG,CAAC,QAAA,EAAU,MAAM,CAAC,CAAA;AAErB,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAWE,KAAAA,CAAG,sCAAA,EAAwC,SAAS,CAAA;AAAA,MAC9D,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AC5NA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEF,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAWE,KAAAA;AAAA,QACT,0JAAA;AAAA,QACA,4BAAA;AAAA;AAAA,QAGA,iDAAA;AAAA,QACA,+CAAA;AAAA,QACA,gIAAA;AAAA,QACA,0HAAA;AAAA;AAAA,QAGA,0HAAA;AAAA;AAAA,QAGA,gLAAA;AAAA,QAEA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,uBAAA,GAA0BJ,0BAAAA;AAAA,EAC9B,yPAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,cAAA,EACE,uEAAA;AAAA,QACF,YAAA,EACE,qEAAA;AAAA,QACF,aAAA,EACE,mGAAA;AAAA,QACF,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,GAAG;AACL,CAAA,EAA+E;AAC7E,EAAA,uBACEE,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,mBAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,WAAWE,KAAAA,CAAG,uBAAA,CAAwB,EAAE,KAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MAC3D,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,IAAK,CAAA,CAAE,MAAA,CAAuB,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC/C,UAAA;AAAA,QACF;AACA,QAAA,CAAA,CAAE,aAAA,CAAc,aAAA,EAAe,aAAA,CAAc,OAAO,GAAG,KAAA,EAAM;AAAA,MAC/D,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,wBAAA,GAA2BJ,0BAAAA;AAAA,EAC/B,6CAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yGAAA;AAAA,QACJ,EAAA,EAAI,iDAAA;AAAA,QACJ,SAAA,EACE,6DAAA;AAAA,QACF,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,GAAG;AACL,CAAA,EACiD;AAC/C,EAAA,uBACEE,cAAAA;AAAA,IAACkC,SAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAW,IAAA;AAAA,MACX,OAAA;AAAA,MACA,WAAWhC,KAAAA,CAAG,wBAAA,CAAyB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC1D,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe,EAAE,SAAA,EAAW,GAAG,OAAM,EAAiC;AAC7E,EAAA,uBACEF,cAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWE,KAAAA;AAAA,QACT,wHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkC;AAChC,EAAA,uBACEF,cAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,kGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqC;AACnC,EAAA,uBACEF,cAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWE,KAAAA;AAAA,QACT,mHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"index.cjs","sourcesContent":["import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@invana/ui\"\n\nconst labelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\"\nimport { cn } from \"@invana/ui\"\nimport { Label } from \"./label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n )\n})\nFormItem.displayName = \"FormItem\"\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = \"FormLabel\"\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = \"FormControl\"\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-[0.8rem] text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = \"FormDescription\"\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-[0.8rem] font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = \"FormMessage\"\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border border-border shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 data-[state=checked]:bg-primary-foreground data-[state=unchecked]:bg-foreground\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-md py-1.5 pl-2 pr-8 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","'use client';\nimport * as React from 'react';\nimport { Check } from 'lucide-react';\nimport { cn } from '@invana/ui';\nimport type { ColorPreset } from '../types';\n\ninterface ColorSwatchesProps {\n value?: string;\n onChange?: (value: string) => void;\n presetColors?: ColorPreset[];\n defaultValue?: string;\n}\n\nconst DEFAULT_PRESETS: ColorPreset[] = [\n { label: 'Black', value: 'rgb(0, 0, 0)', darkValue: 'rgb(255, 255, 255)' },\n { label: 'Red', value: 'rgb(239, 68, 68)' },\n { label: 'Blue', value: 'rgb(59, 130, 246)' },\n];\n\nexport const ColorSwatches: React.FC<ColorSwatchesProps> = ({\n value,\n onChange,\n presetColors = DEFAULT_PRESETS,\n defaultValue = 'rgb(0, 0, 0)',\n}) => {\n const [customColor, setCustomColor] = React.useState(value || defaultValue);\n const [isCustom, setIsCustom] = React.useState(false);\n\n React.useEffect(() => {\n if (!value) return;\n const isPreset = presetColors.some((c) => c.value === value);\n setIsCustom(!isPreset);\n if (!isPreset) setCustomColor(value);\n }, [value, presetColors]);\n\n const select = (newColor: string, custom = false) => {\n setIsCustom(custom);\n if (custom) setCustomColor(newColor);\n onChange?.(newColor);\n };\n\n return (\n <div className=\"flex gap-2\">\n {presetColors.map((color) => (\n <button\n key={color.label}\n type=\"button\"\n onClick={() => select(color.value)}\n className={cn(\n 'group relative h-8 w-8 overflow-hidden rounded-md border',\n 'ring-offset-background transition-all hover:scale-105',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n !isCustom && value === color.value && 'ring-2 ring-ring ring-offset-2'\n )}\n >\n <div className=\"h-full w-full\" style={{ backgroundColor: color.value }} />\n {!isCustom && value === color.value && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/30\">\n <Check className=\"h-4 w-4 text-white\" />\n </div>\n )}\n <span className=\"sr-only\">Select {color.label}</span>\n </button>\n ))}\n <div\n className={cn(\n 'group relative h-8 w-8 overflow-hidden rounded-md border',\n 'ring-offset-background transition-all hover:scale-105',\n isCustom && 'ring-2 ring-ring ring-offset-2'\n )}\n >\n <input\n type=\"color\"\n value={customColor}\n onChange={(e) => select(e.target.value, true)}\n className=\"absolute inset-0 cursor-pointer opacity-0\"\n />\n <div className=\"h-full w-full\" style={{ backgroundColor: customColor }} />\n {isCustom && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/30\">\n <Check className=\"h-4 w-4 text-white\" />\n </div>\n )}\n <span className=\"sr-only\">Custom color</span>\n </div>\n </div>\n );\n};\n","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","'use client';\nimport * as React from 'react';\nimport { cn } from '@invana/ui';\nimport { Input } from '../components/input';\nimport { Slider } from '../components/slider';\n\ninterface SliderNumberProps {\n value?: number;\n onChange?: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n className?: string;\n}\n\nexport const SliderNumber: React.FC<SliderNumberProps> = ({\n value = 0,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n className,\n}) => {\n const [local, setLocal] = React.useState<number>(value);\n\n React.useEffect(() => {\n setLocal(value);\n }, [value]);\n\n const set = (n: number) => {\n setLocal(n);\n onChange?.(n);\n };\n\n return (\n <div className={cn('flex items-center gap-2', className)}>\n <Slider\n value={[local]}\n onValueChange={([n]: number[]) => set(n)}\n min={min}\n max={max}\n step={step}\n className=\"flex-1\"\n />\n <Input\n type=\"number\"\n value={local}\n onChange={(e) => set(Number(e.target.value))}\n className=\"h-8 w-16\"\n min={min}\n max={max}\n step={step}\n />\n </div>\n );\n};\n","'use client';\nimport * as React from 'react';\nimport { Input } from '../components/input';\n\ninterface IconInputProps {\n value?: string;\n onChange?: (value: string) => void;\n}\n\n/**\n * Minimal icon picker — text input + preview swatch. Acts as a placeholder\n * until a real icon picker (e.g. lucide search) is added.\n */\nexport const IconInput: React.FC<IconInputProps> = ({ value, onChange }) => {\n return (\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-muted text-sm\">\n {value ? value.slice(0, 2) : '–'}\n </div>\n <Input\n type=\"text\"\n value={value ?? ''}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder=\"icon name\"\n className=\"h-8 text-sm\"\n />\n </div>\n );\n};\n","'use client';\nimport * as React from 'react';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n cn,\n} from '@invana/ui';\nimport {\n FormField as FormFieldBase,\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from './components/form';\nimport { Input } from './components/input';\nimport { Switch } from './components/switch';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from './components/select';\nimport { ColorSwatches } from './fields/color-swatches';\nimport { SliderNumber } from './fields/slider-number';\nimport { IconInput } from './fields/icon-input';\nimport type {\n ColorPreset,\n FieldConfig,\n LabelPosition,\n ObjectFieldProps,\n RowConfig,\n} from './types';\n\n/* -------------------------------------------------------------------------- */\n/* Field.X — leaf field components */\n/* -------------------------------------------------------------------------- */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyValue = any;\n\ninterface BaseFieldProps {\n label?: string;\n description?: string;\n placeholder?: string;\n value?: AnyValue;\n onChange?: (value: AnyValue) => void;\n options?: { label: string; value: string }[];\n min?: number;\n max?: number;\n step?: number;\n presetColors?: ColorPreset[];\n defaultValue?: string;\n className?: string;\n labelPosition?: LabelPosition;\n}\n\nfunction itemClasses(labelPosition: LabelPosition, className?: string) {\n return cn(\n labelPosition === 'side' && 'grid grid-cols-3 items-center gap-2',\n labelPosition === 'top' && 'space-y-2',\n className\n );\n}\n\nfunction inputWrapper(labelPosition: LabelPosition) {\n return cn(labelPosition === 'side' && 'col-span-2', 'space-y-1');\n}\n\nexport const InputField: React.FC<BaseFieldProps> = ({\n label,\n description,\n placeholder,\n value,\n onChange,\n labelPosition = 'side',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <Input\n className=\"h-8 text-sm\"\n placeholder={placeholder}\n value={value ?? ''}\n onChange={(e) => onChange?.(e.target.value)}\n />\n </FormControl>\n {description && <FormDescription className=\"text-xs\">{description}</FormDescription>}\n <FormMessage className=\"text-xs\" />\n </div>\n </FormItem>\n);\n\nexport const SelectField: React.FC<BaseFieldProps> = ({\n label,\n description,\n options = [],\n value,\n onChange,\n placeholder = 'Select type',\n labelPosition = 'side',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <Select value={value ?? ''} onValueChange={onChange}>\n <FormControl>\n <SelectTrigger className=\"h-8\">\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n {options.map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {description && <FormDescription className=\"text-xs\">{description}</FormDescription>}\n <FormMessage className=\"text-xs\" />\n </div>\n </FormItem>\n);\n\nexport const BooleanField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n labelPosition = 'side',\n}) => {\n if (labelPosition === 'side') {\n return (\n <FormItem className=\"flex items-center justify-between rounded-md border p-2\">\n <div>\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n {description && <FormDescription className=\"text-xs\">{description}</FormDescription>}\n </div>\n <FormControl>\n <Switch checked={!!value} onCheckedChange={onChange} />\n </FormControl>\n </FormItem>\n );\n }\n return (\n <FormItem className=\"space-y-2\">\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n <div className=\"flex items-center justify-between rounded-md border p-2\">\n <FormControl>\n <Switch checked={!!value} onCheckedChange={onChange} />\n </FormControl>\n {description && <FormDescription className=\"ml-2 text-xs\">{description}</FormDescription>}\n </div>\n </FormItem>\n );\n};\n\nexport const ColorField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n presetColors,\n defaultValue,\n labelPosition = 'side',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <ColorSwatches\n value={value}\n onChange={onChange}\n presetColors={presetColors}\n defaultValue={defaultValue}\n />\n </FormControl>\n {description && <FormDescription className=\"text-xs\">{description}</FormDescription>}\n <FormMessage className=\"text-xs\" />\n </div>\n </FormItem>\n);\n\nexport const NumberField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n min,\n max,\n step,\n labelPosition = 'side',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <SliderNumber\n value={typeof value === 'number' ? value : 0}\n onChange={onChange}\n min={min}\n max={max}\n step={step}\n />\n </FormControl>\n {description && <FormDescription className=\"text-xs\">{description}</FormDescription>}\n <FormMessage className=\"text-xs\" />\n </div>\n </FormItem>\n);\n\nexport const IconField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n labelPosition = 'side',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className=\"text-xs\">{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <IconInput value={value} onChange={onChange} />\n </FormControl>\n {description && <FormDescription className=\"text-xs\">{description}</FormDescription>}\n <FormMessage className=\"text-xs\" />\n </div>\n </FormItem>\n);\n\nexport const Field = {\n Input: InputField,\n Boolean: BooleanField,\n Color: ColorField,\n Number: NumberField,\n Select: SelectField,\n Icon: IconField,\n};\n\n/* -------------------------------------------------------------------------- */\n/* ObjectField — renders a flat field config array under a parent name */\n/* -------------------------------------------------------------------------- */\n\nfunction humanize(name: string): string {\n return name\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (c) => c.toUpperCase())\n .trim();\n}\n\nfunction chunk<T>(arr: T[], size: number): T[][] {\n const out: T[][] = [];\n for (let i = 0; i < arr.length; i += size) out.push(arr.slice(i, i + size));\n return out;\n}\n\nfunction renderField(\n field: FieldConfig,\n parentName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n control: any,\n labelPosition: LabelPosition\n) {\n return (\n <FormFieldBase\n key={field.name}\n control={control}\n name={`${parentName}.${field.name}`}\n defaultValue={field.defaultValue as AnyValue}\n render={({ field: rhf }) => {\n const common: BaseFieldProps = {\n label: field.label ?? humanize(field.name),\n description: field.description,\n options: field.options,\n min: field.min,\n max: field.max,\n step: field.step,\n presetColors: field.presetColors,\n defaultValue: field.defaultValue,\n labelPosition,\n value: rhf.value,\n onChange: rhf.onChange,\n };\n switch (field.type) {\n case 'boolean':\n return <BooleanField {...common} />;\n case 'color':\n return <ColorField {...common} />;\n case 'number':\n return <NumberField {...common} />;\n case 'select':\n return <SelectField {...common} />;\n case 'icon':\n return <IconField {...common} />;\n case 'text':\n default:\n return (\n <InputField\n {...common}\n placeholder={field.placeholder ?? `Enter ${field.name}`}\n />\n );\n }\n }}\n />\n );\n}\n\nfunction renderRows(\n fields: FieldConfig[],\n rowConfig: RowConfig[] | undefined,\n parentName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n control: any,\n labelPosition: LabelPosition\n) {\n if (!rowConfig || rowConfig.length === 0) {\n return (\n <div className=\"grid gap-4\">\n {chunk(fields, 2).map((row, i) => (\n <div key={i} className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {row.map((f) => renderField(f, parentName, control, labelPosition))}\n </div>\n ))}\n </div>\n );\n }\n const used = new Set(rowConfig.flatMap((r) => r.fields));\n const unassigned = fields.filter((f) => !used.has(f.name));\n const byName = new Map(fields.map((f) => [f.name, f]));\n\n return (\n <div className=\"space-y-4\">\n {rowConfig.map((row) => {\n const rowFields = row.fields\n .map((n) => byName.get(n))\n .filter((f): f is FieldConfig => !!f);\n return chunk(rowFields, 2).map((cnk, idx) => (\n <div\n key={`${row.id}-${idx}`}\n className=\"grid grid-cols-1 gap-4 md:grid-cols-2\"\n >\n {cnk.map((f) => renderField(f, parentName, control, labelPosition))}\n </div>\n ));\n })}\n {unassigned.length > 0 && (\n <div className=\"grid gap-4\">\n {chunk(unassigned, 2).map((row, i) => (\n <div key={`u-${i}`} className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {row.map((f) => renderField(f, parentName, control, labelPosition))}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nconst ObjectField: React.FC<ObjectFieldProps> = ({\n control,\n name,\n fields,\n rowConfig,\n labelPosition = 'side',\n}) => {\n const grouped = fields.reduce<Record<string, FieldConfig[]>>((acc, f) => {\n const key = f.group ?? '_ungrouped';\n (acc[key] ??= []).push(f);\n return acc;\n }, {});\n\n const ungrouped = grouped['_ungrouped'] ?? [];\n delete grouped['_ungrouped'];\n const groupedEntries = Object.entries(grouped);\n\n return (\n <div className=\"space-y-6\">\n {ungrouped.length > 0 && (\n <div className=\"space-y-4\">\n {renderRows(ungrouped, rowConfig, name, control, labelPosition)}\n </div>\n )}\n\n {groupedEntries.length > 0 && (\n <Accordion\n type=\"multiple\"\n defaultValue={groupedEntries.map(([k]) => k)}\n className=\"w-full space-y-2\"\n >\n {groupedEntries.map(([group, gFields]) => (\n <AccordionItem key={group} value={group} className=\"rounded-md border\">\n <AccordionTrigger className=\"px-3 text-sm font-medium hover:no-underline\">\n {humanize(group)} Settings\n </AccordionTrigger>\n <AccordionContent className=\"px-3 pb-3\">\n <div className=\"space-y-4\">\n {renderRows(gFields, rowConfig, name, control, labelPosition)}\n </div>\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n )}\n </div>\n );\n};\n\n/* -------------------------------------------------------------------------- */\n/* FormField — shadcn FormField augmented with Field.* and ObjectField */\n/* -------------------------------------------------------------------------- */\n\ninterface FormFieldExtensions {\n ObjectField: typeof ObjectField;\n Input: typeof InputField;\n Boolean: typeof BooleanField;\n Color: typeof ColorField;\n Number: typeof NumberField;\n Select: typeof SelectField;\n Icon: typeof IconField;\n}\n\ntype FormFieldType = typeof FormFieldBase & FormFieldExtensions;\n\nexport const FormField = Object.assign(FormFieldBase, {\n ObjectField,\n Input: InputField,\n Boolean: BooleanField,\n Color: ColorField,\n Number: NumberField,\n Select: SelectField,\n Icon: IconField,\n}) as FormFieldType;\n\n// Also export ObjectField directly for consumers who prefer a flat import.\nexport { ObjectField };\n\nexport type {\n FieldConfig,\n RowConfig,\n LabelPosition,\n ObjectFieldProps,\n ColorPreset,\n} from './types';\n","import * as React from \"react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@invana/ui\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-md border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","import { useMemo } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@invana/ui\"\nimport { Label } from \"./label\"\nimport { Separator } from \"@invana/ui\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field data-[invalid=true]:text-destructive flex w-full gap-3\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start\",\n ],\n responsive: [\n \"@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors) {\n return null\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return errors[0].message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@invana/ui\"\nimport { Button } from \"@invana/ui\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 shadow-xs relative flex w-full items-center rounded-md border outline-none transition-[color,box-shadow]\",\n \"h-9 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot=input-group-control]:focus-visible]:ring-1\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"]}
1
+ {"version":3,"sources":["../src/components/label.tsx","../src/components/form.tsx","../src/components/input.tsx","../src/components/password-input.tsx","../src/components/textarea.tsx","../src/components/switch.tsx","../src/components/select.tsx","../src/fields/color-swatches.tsx","../src/components/slider.tsx","../src/fields/slider-number.tsx","../src/fields/icon-input.tsx","../src/form-field.tsx","../src/components/checkbox.tsx","../src/components/radio-group.tsx","../src/components/field.tsx","../src/components/input-group.tsx"],"names":["cva","React","jsx","LabelPrimitive","cn","FormProvider","React2","Controller","useFormContext","Slot","React3","React4","jsxs","EyeOff","Eye","React5","React6","SwitchPrimitives","SelectPrimitive","React7","ChevronDown","ChevronUp","Check","React8","React9","SliderPrimitive","React10","Accordion","AccordionItem","AccordionTrigger","AccordionContent","FormField","React11","CheckboxPrimitive","React12","RadioGroupPrimitive","Circle","Separator","useMemo","Button"],"mappings":"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","file":"index.cjs","sourcesContent":["import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@invana/ui\"\n\nconst labelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\"\nimport { cn } from \"@invana/ui\"\nimport { Label } from \"./label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n )\n})\nFormItem.displayName = \"FormItem\"\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = \"FormLabel\"\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = \"FormControl\"\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-[0.8rem] text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = \"FormDescription\"\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-[0.8rem] font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = \"FormMessage\"\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from \"react\"\nimport { Eye, EyeOff } from \"lucide-react\"\n\nimport { cn } from \"@invana/ui\"\nimport { Input } from \"./input\"\n\nexport type PasswordInputProps = Omit<\n React.ComponentProps<\"input\">,\n \"type\"\n> & {\n /** Controls visibility in a controlled fashion. Omit for self-managed toggle. */\n visible?: boolean\n onVisibleChange?: (visible: boolean) => void\n}\n\n/**\n * Password input with a built-in show/hide toggle. Wraps {@link Input} and\n * overlays an eye / eye-off button that flips the field between `password`\n * and `text`. Visibility is self-managed unless `visible` is supplied.\n */\nconst PasswordInput = React.forwardRef<HTMLInputElement, PasswordInputProps>(\n ({ className, visible, onVisibleChange, disabled, ...props }, ref) => {\n const [internalVisible, setInternalVisible] = React.useState(false)\n const isControlled = visible !== undefined\n const show = isControlled ? visible : internalVisible\n\n const toggle = () => {\n const next = !show\n if (!isControlled) setInternalVisible(next)\n onVisibleChange?.(next)\n }\n\n return (\n <div className=\"relative\">\n <Input\n type={show ? \"text\" : \"password\"}\n className={cn(\"pr-10\", className)}\n disabled={disabled}\n ref={ref}\n {...props}\n />\n <button\n type=\"button\"\n onClick={toggle}\n disabled={disabled}\n tabIndex={-1}\n aria-label={show ? \"Hide password\" : \"Show password\"}\n aria-pressed={show}\n className=\"absolute inset-y-0 right-0 flex items-center justify-center px-3 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n {show ? (\n <EyeOff className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <Eye className=\"size-4\" aria-hidden=\"true\" />\n )}\n </button>\n </div>\n )\n }\n)\nPasswordInput.displayName = \"PasswordInput\"\n\nexport { PasswordInput }\n","import * as React from \"react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border border-border shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 data-[state=checked]:bg-primary-foreground data-[state=unchecked]:bg-foreground\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-md py-1.5 pl-2 pr-8 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","'use client';\nimport * as React from 'react';\nimport { Check } from 'lucide-react';\nimport { cn } from '@invana/ui';\nimport type { ColorPreset } from '../types';\n\ninterface ColorSwatchesProps {\n value?: string;\n onChange?: (value: string) => void;\n presetColors?: ColorPreset[];\n defaultValue?: string;\n}\n\nconst DEFAULT_PRESETS: ColorPreset[] = [\n { label: 'Black', value: 'rgb(0, 0, 0)', darkValue: 'rgb(255, 255, 255)' },\n { label: 'Red', value: 'rgb(239, 68, 68)' },\n { label: 'Blue', value: 'rgb(59, 130, 246)' },\n];\n\nexport const ColorSwatches: React.FC<ColorSwatchesProps> = ({\n value,\n onChange,\n presetColors = DEFAULT_PRESETS,\n defaultValue = 'rgb(0, 0, 0)',\n}) => {\n const [customColor, setCustomColor] = React.useState(value || defaultValue);\n const [isCustom, setIsCustom] = React.useState(false);\n\n React.useEffect(() => {\n if (!value) return;\n const isPreset = presetColors.some((c) => c.value === value);\n setIsCustom(!isPreset);\n if (!isPreset) setCustomColor(value);\n }, [value, presetColors]);\n\n const select = (newColor: string, custom = false) => {\n setIsCustom(custom);\n if (custom) setCustomColor(newColor);\n onChange?.(newColor);\n };\n\n return (\n <div className=\"flex gap-2\">\n {presetColors.map((color) => (\n <button\n key={color.label}\n type=\"button\"\n onClick={() => select(color.value)}\n className={cn(\n 'group relative h-8 w-8 overflow-hidden rounded-md border',\n 'ring-offset-background transition-all hover:scale-105',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n !isCustom && value === color.value && 'ring-2 ring-ring ring-offset-2'\n )}\n >\n <div className=\"h-full w-full\" style={{ backgroundColor: color.value }} />\n {!isCustom && value === color.value && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/30\">\n <Check className=\"h-4 w-4 text-white\" />\n </div>\n )}\n <span className=\"sr-only\">Select {color.label}</span>\n </button>\n ))}\n <div\n className={cn(\n 'group relative h-8 w-8 overflow-hidden rounded-md border',\n 'ring-offset-background transition-all hover:scale-105',\n isCustom && 'ring-2 ring-ring ring-offset-2'\n )}\n >\n <input\n type=\"color\"\n value={customColor}\n onChange={(e) => select(e.target.value, true)}\n className=\"absolute inset-0 cursor-pointer opacity-0\"\n />\n <div className=\"h-full w-full\" style={{ backgroundColor: customColor }} />\n {isCustom && (\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/30\">\n <Check className=\"h-4 w-4 text-white\" />\n </div>\n )}\n <span className=\"sr-only\">Custom color</span>\n </div>\n </div>\n );\n};\n","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@invana/ui\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","'use client';\nimport * as React from 'react';\nimport { cn } from '@invana/ui';\nimport { Input } from '../components/input';\nimport { Slider } from '../components/slider';\n\ninterface SliderNumberProps {\n value?: number;\n onChange?: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n className?: string;\n}\n\nexport const SliderNumber: React.FC<SliderNumberProps> = ({\n value = 0,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n className,\n}) => {\n const [local, setLocal] = React.useState<number>(value);\n\n React.useEffect(() => {\n setLocal(value);\n }, [value]);\n\n const set = (n: number) => {\n setLocal(n);\n onChange?.(n);\n };\n\n return (\n <div className={cn('flex items-center gap-2', className)}>\n <Slider\n value={[local]}\n onValueChange={([n]: number[]) => set(n)}\n min={min}\n max={max}\n step={step}\n className=\"flex-1\"\n />\n <Input\n type=\"number\"\n value={local}\n onChange={(e) => set(Number(e.target.value))}\n className=\"h-8 w-16\"\n min={min}\n max={max}\n step={step}\n />\n </div>\n );\n};\n","'use client';\nimport * as React from 'react';\nimport { Input } from '../components/input';\n\ninterface IconInputProps {\n value?: string;\n onChange?: (value: string) => void;\n}\n\n/**\n * Minimal icon picker — text input + preview swatch. Acts as a placeholder\n * until a real icon picker (e.g. lucide search) is added.\n */\nexport const IconInput: React.FC<IconInputProps> = ({ value, onChange }) => {\n return (\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-muted text-sm\">\n {value ? value.slice(0, 2) : '–'}\n </div>\n <Input\n type=\"text\"\n value={value ?? ''}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder=\"icon name\"\n className=\"h-8 text-sm\"\n />\n </div>\n );\n};\n","'use client';\nimport * as React from 'react';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n cn,\n} from '@invana/ui';\nimport {\n FormField as FormFieldBase,\n FormControl,\n FormDescription,\n FormItem,\n FormLabel,\n FormMessage,\n} from './components/form';\nimport { Input } from './components/input';\nimport { PasswordInput } from './components/password-input';\nimport { Textarea } from './components/textarea';\nimport { Switch } from './components/switch';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from './components/select';\nimport { ColorSwatches } from './fields/color-swatches';\nimport { SliderNumber } from './fields/slider-number';\nimport { IconInput } from './fields/icon-input';\nimport type {\n ColorPreset,\n FieldConfig,\n FieldSize,\n LabelPosition,\n ObjectFieldProps,\n RowConfig,\n} from './types';\n\n/* -------------------------------------------------------------------------- */\n/* Field.X — leaf field components */\n/* -------------------------------------------------------------------------- */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyValue = any;\n\ninterface BaseFieldProps {\n label?: string;\n description?: string;\n placeholder?: string;\n value?: AnyValue;\n onChange?: (value: AnyValue) => void;\n options?: { label: string; value: string }[];\n min?: number;\n max?: number;\n step?: number;\n presetColors?: ColorPreset[];\n defaultValue?: string;\n rows?: number;\n className?: string;\n labelPosition?: LabelPosition;\n size?: FieldSize;\n}\n\n/**\n * Per-size class tokens. `sm` keeps the original compact look; `md` falls back\n * to the underlying components' natural full-size defaults (empty strings).\n */\nconst SIZE: Record<\n FieldSize,\n { input: string; select: string; label: string; desc: string }\n> = {\n sm: { input: 'h-8 text-sm', select: 'h-8', label: 'text-xs', desc: 'text-xs' },\n md: { input: '', select: '', label: '', desc: '' },\n};\n\nfunction itemClasses(labelPosition: LabelPosition, className?: string) {\n return cn(\n labelPosition === 'side' && 'grid grid-cols-3 items-center gap-2',\n labelPosition === 'top' && 'space-y-2',\n className\n );\n}\n\nfunction inputWrapper(labelPosition: LabelPosition) {\n return cn(labelPosition === 'side' && 'col-span-2', 'space-y-1');\n}\n\nexport const InputField: React.FC<BaseFieldProps> = ({\n label,\n description,\n placeholder,\n value,\n onChange,\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <Input\n className={SIZE[size].input}\n placeholder={placeholder}\n value={value ?? ''}\n onChange={(e) => onChange?.(e.target.value)}\n />\n </FormControl>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const PasswordField: React.FC<BaseFieldProps> = ({\n label,\n description,\n placeholder,\n value,\n onChange,\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <PasswordInput\n className={SIZE[size].input}\n placeholder={placeholder}\n value={value ?? ''}\n onChange={(e) => onChange?.(e.target.value)}\n />\n </FormControl>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const TextareaField: React.FC<BaseFieldProps> = ({\n label,\n description,\n placeholder,\n value,\n onChange,\n rows,\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <Textarea\n className={size === 'sm' ? 'text-sm' : undefined}\n rows={rows}\n placeholder={placeholder}\n value={value ?? ''}\n onChange={(e) => onChange?.(e.target.value)}\n />\n </FormControl>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const SelectField: React.FC<BaseFieldProps> = ({\n label,\n description,\n options = [],\n value,\n onChange,\n placeholder = 'Select type',\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <Select value={value ?? ''} onValueChange={onChange}>\n <FormControl>\n <SelectTrigger className={SIZE[size].select}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n </FormControl>\n <SelectContent>\n {options.map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const BooleanField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n labelPosition = 'side',\n size = 'sm',\n}) => {\n if (labelPosition === 'side') {\n return (\n <FormItem className=\"flex items-center justify-between rounded-md border p-2\">\n <div>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n </div>\n <FormControl>\n <Switch checked={!!value} onCheckedChange={onChange} />\n </FormControl>\n </FormItem>\n );\n }\n return (\n <FormItem className=\"space-y-2\">\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className=\"flex items-center justify-between rounded-md border p-2\">\n <FormControl>\n <Switch checked={!!value} onCheckedChange={onChange} />\n </FormControl>\n {description && (\n <FormDescription className={cn('ml-2', SIZE[size].desc)}>\n {description}\n </FormDescription>\n )}\n </div>\n </FormItem>\n );\n};\n\nexport const ColorField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n presetColors,\n defaultValue,\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <ColorSwatches\n value={value}\n onChange={onChange}\n presetColors={presetColors}\n defaultValue={defaultValue}\n />\n </FormControl>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const NumberField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n min,\n max,\n step,\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <SliderNumber\n value={typeof value === 'number' ? value : 0}\n onChange={onChange}\n min={min}\n max={max}\n step={step}\n />\n </FormControl>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const IconField: React.FC<BaseFieldProps> = ({\n label,\n description,\n value,\n onChange,\n labelPosition = 'side',\n size = 'sm',\n className,\n}) => (\n <FormItem className={itemClasses(labelPosition, className)}>\n {label && <FormLabel className={SIZE[size].label}>{label}</FormLabel>}\n <div className={inputWrapper(labelPosition)}>\n <FormControl>\n <IconInput value={value} onChange={onChange} />\n </FormControl>\n {description && (\n <FormDescription className={SIZE[size].desc}>{description}</FormDescription>\n )}\n <FormMessage className={SIZE[size].desc} />\n </div>\n </FormItem>\n);\n\nexport const Field = {\n Input: InputField,\n Password: PasswordField,\n Textarea: TextareaField,\n Boolean: BooleanField,\n Color: ColorField,\n Number: NumberField,\n Select: SelectField,\n Icon: IconField,\n};\n\n/* -------------------------------------------------------------------------- */\n/* ObjectField — renders a flat field config array under a parent name */\n/* -------------------------------------------------------------------------- */\n\nfunction humanize(name: string): string {\n return name\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (c) => c.toUpperCase())\n .trim();\n}\n\nfunction renderField(\n field: FieldConfig,\n parentName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n control: any,\n labelPosition: LabelPosition,\n size: FieldSize\n) {\n return (\n <FormFieldBase\n key={field.name}\n control={control}\n name={`${parentName}.${field.name}`}\n defaultValue={field.defaultValue as AnyValue}\n render={({ field: rhf }) => {\n const common: BaseFieldProps = {\n label: field.label ?? humanize(field.name),\n description: field.description,\n options: field.options,\n min: field.min,\n max: field.max,\n step: field.step,\n presetColors: field.presetColors,\n defaultValue: field.defaultValue,\n rows: field.rows,\n labelPosition,\n size,\n value: rhf.value,\n onChange: rhf.onChange,\n };\n switch (field.type) {\n case 'password':\n return (\n <PasswordField\n {...common}\n placeholder={field.placeholder ?? `Enter ${field.name}`}\n />\n );\n case 'boolean':\n return <BooleanField {...common} />;\n case 'color':\n return <ColorField {...common} />;\n case 'number':\n return <NumberField {...common} />;\n case 'select':\n return <SelectField {...common} />;\n case 'icon':\n return <IconField {...common} />;\n case 'textarea':\n return (\n <TextareaField\n {...common}\n placeholder={field.placeholder ?? `Enter ${field.name}`}\n />\n );\n case 'text':\n default:\n return (\n <InputField\n {...common}\n placeholder={field.placeholder ?? `Enter ${field.name}`}\n />\n );\n }\n }}\n />\n );\n}\n\n/**\n * Render a set of fields into the field grid. The grid is `columns`-wide on\n * `md+` (two by default) and collapses to a single column below `md`. A field\n * spans multiple columns via `colSpan` and can carry extra cell classes via\n * `className`.\n *\n * `colSpan` / `columns` drive the grid through CSS variables (`--ff-span` /\n * `--ff-cols`) read by static `md:` utilities rather than per-number Tailwind\n * classes — so any count works without the host app having to pre-generate\n * `col-span-N` / `grid-cols-N`. The `md:` prefix keeps spans from leaking into\n * the single-column mobile layout, where every field is already full width.\n */\nfunction renderGrid(\n fields: FieldConfig[],\n parentName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n control: any,\n labelPosition: LabelPosition,\n size: FieldSize,\n columns: number,\n key?: string\n) {\n // Default 2-col layout keeps the plain `md:grid-cols-2` utility; custom\n // counts drive the template from `--ff-cols`.\n const customCols = columns !== 2;\n return (\n <div\n key={key}\n className={cn(\n 'grid grid-cols-1 gap-4',\n customCols\n ? 'md:[grid-template-columns:repeat(var(--ff-cols),minmax(0,1fr))]'\n : 'md:grid-cols-2'\n )}\n style={\n customCols\n ? ({ '--ff-cols': columns } as React.CSSProperties)\n : undefined\n }\n >\n {fields.map((f) => {\n const span = f.colSpan && f.colSpan > 1 ? f.colSpan : undefined;\n return (\n <div\n key={f.name}\n className={cn(\n span && 'md:[grid-column:span_var(--ff-span)/span_var(--ff-span)]',\n f.className\n )}\n style={span ? ({ '--ff-span': span } as React.CSSProperties) : undefined}\n >\n {renderField(f, parentName, control, labelPosition, size)}\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction renderRows(\n fields: FieldConfig[],\n rowConfig: RowConfig[] | undefined,\n parentName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n control: any,\n labelPosition: LabelPosition,\n size: FieldSize,\n columns: number\n) {\n if (!rowConfig || rowConfig.length === 0) {\n return renderGrid(fields, parentName, control, labelPosition, size, columns);\n }\n const used = new Set(rowConfig.flatMap((r) => r.fields));\n const unassigned = fields.filter((f) => !used.has(f.name));\n const byName = new Map(fields.map((f) => [f.name, f]));\n\n return (\n <div className=\"space-y-4\">\n {rowConfig.map((row) => {\n const rowFields = row.fields\n .map((n) => byName.get(n))\n .filter((f): f is FieldConfig => !!f);\n if (rowFields.length === 0) return null;\n return renderGrid(\n rowFields,\n parentName,\n control,\n labelPosition,\n size,\n columns,\n row.id\n );\n })}\n {unassigned.length > 0 &&\n renderGrid(\n unassigned,\n parentName,\n control,\n labelPosition,\n size,\n columns,\n '_unassigned'\n )}\n </div>\n );\n}\n\nconst ObjectField: React.FC<ObjectFieldProps> = ({\n control,\n name,\n fields,\n rowConfig,\n labelPosition = 'side',\n size = 'sm',\n columns = 2,\n}) => {\n const grouped = fields.reduce<Record<string, FieldConfig[]>>((acc, f) => {\n const key = f.group ?? '_ungrouped';\n (acc[key] ??= []).push(f);\n return acc;\n }, {});\n\n const ungrouped = grouped['_ungrouped'] ?? [];\n delete grouped['_ungrouped'];\n const groupedEntries = Object.entries(grouped);\n\n return (\n <div className=\"space-y-6\">\n {ungrouped.length > 0 && (\n <div className=\"space-y-4\">\n {renderRows(\n ungrouped,\n rowConfig,\n name,\n control,\n labelPosition,\n size,\n columns\n )}\n </div>\n )}\n\n {groupedEntries.length > 0 && (\n <Accordion\n type=\"multiple\"\n defaultValue={groupedEntries.map(([k]) => k)}\n className=\"w-full space-y-2\"\n >\n {groupedEntries.map(([group, gFields]) => (\n <AccordionItem key={group} value={group} className=\"rounded-md border\">\n <AccordionTrigger className=\"px-3 text-sm font-medium hover:no-underline\">\n {humanize(group)} Settings\n </AccordionTrigger>\n <AccordionContent className=\"px-3 pb-3\">\n <div className=\"space-y-4\">\n {renderRows(\n gFields,\n rowConfig,\n name,\n control,\n labelPosition,\n size,\n columns\n )}\n </div>\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n )}\n </div>\n );\n};\n\n/* -------------------------------------------------------------------------- */\n/* FormField — shadcn FormField augmented with Field.* and ObjectField */\n/* -------------------------------------------------------------------------- */\n\ninterface FormFieldExtensions {\n ObjectField: typeof ObjectField;\n Input: typeof InputField;\n Password: typeof PasswordField;\n Textarea: typeof TextareaField;\n Boolean: typeof BooleanField;\n Color: typeof ColorField;\n Number: typeof NumberField;\n Select: typeof SelectField;\n Icon: typeof IconField;\n}\n\ntype FormFieldType = typeof FormFieldBase & FormFieldExtensions;\n\nexport const FormField = Object.assign(FormFieldBase, {\n ObjectField,\n Input: InputField,\n Password: PasswordField,\n Textarea: TextareaField,\n Boolean: BooleanField,\n Color: ColorField,\n Number: NumberField,\n Select: SelectField,\n Icon: IconField,\n}) as FormFieldType;\n\n// Also export ObjectField directly for consumers who prefer a flat import.\nexport { ObjectField };\n\nexport type {\n FieldConfig,\n FieldSize,\n FieldType,\n RowConfig,\n LabelPosition,\n ObjectFieldProps,\n ColorPreset,\n} from './types';\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@invana/ui\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-md border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@invana/ui\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","import { useMemo } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@invana/ui\"\nimport { Label } from \"./label\"\nimport { Separator } from \"@invana/ui\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field data-[invalid=true]:text-destructive flex w-full gap-3\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start\",\n ],\n responsive: [\n \"@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors) {\n return null\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return errors[0].message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@invana/ui\"\nimport { Button } from \"@invana/ui\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 shadow-xs relative flex w-full items-center rounded-md border outline-none transition-[color,box-shadow]\",\n \"h-9 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot=input-group-control]:focus-visible]:ring-1\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -35,7 +35,13 @@ declare const FormDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAtt
35
35
  declare const FormMessage: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
36
36
 
37
37
  type LabelPosition = 'side' | 'top';
38
- type FieldType = 'text' | 'number' | 'boolean' | 'color' | 'select' | 'icon';
38
+ /**
39
+ * Field density. `sm` is the compact look used by dense panels (e.g. the
40
+ * modeller property editor) and is the default for backward compatibility.
41
+ * `md` renders full-size fields for primary, page-level forms.
42
+ */
43
+ type FieldSize = 'sm' | 'md';
44
+ type FieldType = 'text' | 'password' | 'textarea' | 'number' | 'boolean' | 'color' | 'select' | 'icon';
39
45
  type ColorPreset = {
40
46
  label: string;
41
47
  value: string;
@@ -58,6 +64,22 @@ type FieldConfig = {
58
64
  row?: string;
59
65
  presetColors?: ColorPreset[];
60
66
  defaultValue?: string;
67
+ /** Number of visible rows for `textarea` fields. */
68
+ rows?: number;
69
+ /**
70
+ * How many grid columns the field spans on `md+` screens. Defaults to `1`.
71
+ * The grid is two columns by default (see `ObjectField`'s `columns`), so
72
+ * `colSpan: 2` makes a full-width field (textarea, long URI, …). A span
73
+ * larger than the column count simply fills the row. Ignored below `md`,
74
+ * where every field stacks full width.
75
+ */
76
+ colSpan?: number;
77
+ /**
78
+ * Extra classes merged onto the field's grid cell. Escape hatch for
79
+ * per-field layout/spacing tweaks (custom width, ordering, margins, …)
80
+ * without adding a dedicated prop for every case.
81
+ */
82
+ className?: string;
61
83
  };
62
84
  type RowConfig = {
63
85
  id: string;
@@ -69,6 +91,14 @@ interface ObjectFieldProps {
69
91
  fields: FieldConfig[];
70
92
  rowConfig?: RowConfig[];
71
93
  labelPosition?: LabelPosition;
94
+ /** Field density. Defaults to `sm` (compact) for backward compatibility. */
95
+ size?: FieldSize;
96
+ /**
97
+ * Number of columns in the field grid on `md+` screens. Defaults to `2`.
98
+ * Increase it to build wider layouts that fields can span via `colSpan`.
99
+ * Below `md` the grid always collapses to a single column.
100
+ */
101
+ columns?: number;
72
102
  }
73
103
 
74
104
  type AnyValue = any;
@@ -87,10 +117,14 @@ interface BaseFieldProps {
87
117
  step?: number;
88
118
  presetColors?: ColorPreset[];
89
119
  defaultValue?: string;
120
+ rows?: number;
90
121
  className?: string;
91
122
  labelPosition?: LabelPosition;
123
+ size?: FieldSize;
92
124
  }
93
125
  declare const InputField: React$1.FC<BaseFieldProps>;
126
+ declare const PasswordField: React$1.FC<BaseFieldProps>;
127
+ declare const TextareaField: React$1.FC<BaseFieldProps>;
94
128
  declare const SelectField: React$1.FC<BaseFieldProps>;
95
129
  declare const BooleanField: React$1.FC<BaseFieldProps>;
96
130
  declare const ColorField: React$1.FC<BaseFieldProps>;
@@ -98,6 +132,8 @@ declare const NumberField: React$1.FC<BaseFieldProps>;
98
132
  declare const IconField: React$1.FC<BaseFieldProps>;
99
133
  declare const Field: {
100
134
  Input: React$1.FC<BaseFieldProps>;
135
+ Password: React$1.FC<BaseFieldProps>;
136
+ Textarea: React$1.FC<BaseFieldProps>;
101
137
  Boolean: React$1.FC<BaseFieldProps>;
102
138
  Color: React$1.FC<BaseFieldProps>;
103
139
  Number: React$1.FC<BaseFieldProps>;
@@ -108,6 +144,8 @@ declare const ObjectField: React$1.FC<ObjectFieldProps>;
108
144
  interface FormFieldExtensions {
109
145
  ObjectField: typeof ObjectField;
110
146
  Input: typeof InputField;
147
+ Password: typeof PasswordField;
148
+ Textarea: typeof TextareaField;
111
149
  Boolean: typeof BooleanField;
112
150
  Color: typeof ColorField;
113
151
  Number: typeof NumberField;
@@ -147,6 +185,18 @@ declare const IconInput: React$1.FC<IconInputProps>;
147
185
 
148
186
  declare const Input: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
149
187
 
188
+ type PasswordInputProps = Omit<React$1.ComponentProps<"input">, "type"> & {
189
+ /** Controls visibility in a controlled fashion. Omit for self-managed toggle. */
190
+ visible?: boolean;
191
+ onVisibleChange?: (visible: boolean) => void;
192
+ };
193
+ /**
194
+ * Password input with a built-in show/hide toggle. Wraps {@link Input} and
195
+ * overlays an eye / eye-off button that flips the field between `password`
196
+ * and `text`. Visibility is self-managed unless `visible` is supplied.
197
+ */
198
+ declare const PasswordInput: React$1.ForwardRefExoticComponent<Omit<PasswordInputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
199
+
150
200
  declare const Textarea: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React$1.RefAttributes<HTMLTextAreaElement>>;
151
201
 
152
202
  declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
@@ -202,4 +252,4 @@ declare function InputGroupText({ className, ...props }: React$1.ComponentProps<
202
252
  declare function InputGroupInput({ className, ...props }: React$1.ComponentProps<"input">): react_jsx_runtime.JSX.Element;
203
253
  declare function InputGroupTextarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
204
254
 
205
- export { BooleanField, Checkbox, ColorField, type ColorPreset, ColorSwatches, Field, type FieldConfig, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, type FieldType, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, IconField, IconInput, Input, InputField, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, type LabelPosition, NumberField, ObjectField, type ObjectFieldProps, RadioGroup, RadioGroupItem, type RowConfig, Select, SelectContent, SelectField, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Slider, SliderNumber, Switch, Textarea, useFormField };
255
+ export { BooleanField, Checkbox, ColorField, type ColorPreset, ColorSwatches, Field, type FieldConfig, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, type FieldSize, FieldTitle, type FieldType, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, IconField, IconInput, Input, InputField, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, type LabelPosition, NumberField, ObjectField, type ObjectFieldProps, PasswordField, PasswordInput, type PasswordInputProps, RadioGroup, RadioGroupItem, type RowConfig, Select, SelectContent, SelectField, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Slider, SliderNumber, Switch, Textarea, TextareaField, useFormField };