@etus/ui 0.4.0-beta.17 → 0.4.0-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-U6EOAIPK.js → chunk-2X35C55E.js} +3 -3
- package/dist/chunk-2X35C55E.js.map +1 -0
- package/dist/{chunk-UYC7M3FM.js → chunk-34WNJNPL.js} +5 -5
- package/dist/{chunk-UYC7M3FM.js.map → chunk-34WNJNPL.js.map} +1 -1
- package/dist/{chunk-N4UTBJRY.js → chunk-3NHH7VPI.js} +3 -3
- package/dist/{chunk-N4UTBJRY.js.map → chunk-3NHH7VPI.js.map} +1 -1
- package/dist/{chunk-OEXQ2MOY.js → chunk-45YJLE4R.js} +3 -3
- package/dist/{chunk-OEXQ2MOY.js.map → chunk-45YJLE4R.js.map} +1 -1
- package/dist/{chunk-66TBTTZO.js → chunk-46SUPGQV.js} +14 -14
- package/dist/chunk-46SUPGQV.js.map +1 -0
- package/dist/{chunk-3W7FXRO5.js → chunk-56TC4CPT.js} +4 -4
- package/dist/{chunk-3W7FXRO5.js.map → chunk-56TC4CPT.js.map} +1 -1
- package/dist/{chunk-NCT5WXKG.js → chunk-5ACHKT35.js} +3 -3
- package/dist/{chunk-NCT5WXKG.js.map → chunk-5ACHKT35.js.map} +1 -1
- package/dist/{chunk-GGUWEAYD.js → chunk-5E44I7PB.js} +3 -3
- package/dist/{chunk-GGUWEAYD.js.map → chunk-5E44I7PB.js.map} +1 -1
- package/dist/{chunk-T6XRYT6Q.js → chunk-5K2SOCOX.js} +3 -3
- package/dist/{chunk-T6XRYT6Q.js.map → chunk-5K2SOCOX.js.map} +1 -1
- package/dist/{chunk-VT4IMHGE.js → chunk-5TABQJDW.js} +4 -4
- package/dist/chunk-5TABQJDW.js.map +1 -0
- package/dist/{chunk-4GVOOXYD.js → chunk-6ABGMOE2.js} +5 -5
- package/dist/chunk-6ABGMOE2.js.map +1 -0
- package/dist/{chunk-Q43KJP5A.js → chunk-6F5NWXZF.js} +7 -7
- package/dist/{chunk-Q43KJP5A.js.map → chunk-6F5NWXZF.js.map} +1 -1
- package/dist/{chunk-4RSHPKHB.js → chunk-6KMRMXR6.js} +3 -3
- package/dist/{chunk-4RSHPKHB.js.map → chunk-6KMRMXR6.js.map} +1 -1
- package/dist/{chunk-7J5OM4ZD.js → chunk-7CMOCWFX.js} +4 -4
- package/dist/{chunk-7J5OM4ZD.js.map → chunk-7CMOCWFX.js.map} +1 -1
- package/dist/{chunk-G7PBPX3K.js → chunk-7VGF6ZVE.js} +4 -4
- package/dist/{chunk-G7PBPX3K.js.map → chunk-7VGF6ZVE.js.map} +1 -1
- package/dist/{chunk-E2TI5V67.js → chunk-A4O3USMA.js} +3 -3
- package/dist/{chunk-E2TI5V67.js.map → chunk-A4O3USMA.js.map} +1 -1
- package/dist/{chunk-UPK5B2FL.js → chunk-AKRVZ2YW.js} +6 -6
- package/dist/chunk-AKRVZ2YW.js.map +1 -0
- package/dist/{chunk-VBJ26PZJ.js → chunk-AP3T3KMY.js} +3 -3
- package/dist/{chunk-VBJ26PZJ.js.map → chunk-AP3T3KMY.js.map} +1 -1
- package/dist/{chunk-X3AXEE3S.js → chunk-AR7K7Y4L.js} +3 -3
- package/dist/{chunk-X3AXEE3S.js.map → chunk-AR7K7Y4L.js.map} +1 -1
- package/dist/{chunk-WKWLKGNI.js → chunk-ARYBNQNS.js} +4 -4
- package/dist/chunk-ARYBNQNS.js.map +1 -0
- package/dist/{chunk-P27ERD6W.js → chunk-B2OCNHUW.js} +8 -8
- package/dist/{chunk-P27ERD6W.js.map → chunk-B2OCNHUW.js.map} +1 -1
- package/dist/{chunk-3NLWCX2F.js → chunk-DI3AISAZ.js} +3 -3
- package/dist/{chunk-3NLWCX2F.js.map → chunk-DI3AISAZ.js.map} +1 -1
- package/dist/{chunk-W3JVNX35.js → chunk-DSCLJ3GK.js} +4 -4
- package/dist/{chunk-W3JVNX35.js.map → chunk-DSCLJ3GK.js.map} +1 -1
- package/dist/{chunk-3KOLK3OB.js → chunk-EC5YEK3C.js} +3 -3
- package/dist/{chunk-3KOLK3OB.js.map → chunk-EC5YEK3C.js.map} +1 -1
- package/dist/{chunk-YUHPTV2A.js → chunk-EDSDAX56.js} +3 -3
- package/dist/{chunk-YUHPTV2A.js.map → chunk-EDSDAX56.js.map} +1 -1
- package/dist/{chunk-IRIIK3BU.js → chunk-F4EX3622.js} +10 -10
- package/dist/chunk-F4EX3622.js.map +1 -0
- package/dist/{chunk-XYYOV5GW.js → chunk-F5X2BBGU.js} +4 -4
- package/dist/{chunk-XYYOV5GW.js.map → chunk-F5X2BBGU.js.map} +1 -1
- package/dist/{chunk-BS5XDYOE.js → chunk-FLERVSKG.js} +5 -5
- package/dist/{chunk-BS5XDYOE.js.map → chunk-FLERVSKG.js.map} +1 -1
- package/dist/{chunk-TAZPML2P.js → chunk-G2CMEHW6.js} +3 -3
- package/dist/{chunk-TAZPML2P.js.map → chunk-G2CMEHW6.js.map} +1 -1
- package/dist/{chunk-TQBUBD3E.js → chunk-H7JHFBFD.js} +3 -3
- package/dist/{chunk-TQBUBD3E.js.map → chunk-H7JHFBFD.js.map} +1 -1
- package/dist/{chunk-Y4RKKQMB.js → chunk-HA5YVDHW.js} +3 -3
- package/dist/chunk-HA5YVDHW.js.map +1 -0
- package/dist/{chunk-ZKK7L7H7.js → chunk-HP7LEQJR.js} +3 -3
- package/dist/{chunk-ZKK7L7H7.js.map → chunk-HP7LEQJR.js.map} +1 -1
- package/dist/{chunk-W7S7GPU5.js → chunk-HV2ZZXFN.js} +4 -4
- package/dist/{chunk-W7S7GPU5.js.map → chunk-HV2ZZXFN.js.map} +1 -1
- package/dist/{chunk-K45MMHLA.js → chunk-HVFACGNK.js} +4 -4
- package/dist/{chunk-K45MMHLA.js.map → chunk-HVFACGNK.js.map} +1 -1
- package/dist/{chunk-R3HUGCGR.js → chunk-HZ47LQFJ.js} +4 -4
- package/dist/{chunk-R3HUGCGR.js.map → chunk-HZ47LQFJ.js.map} +1 -1
- package/dist/{chunk-4KOJTZVU.js → chunk-IA24GUNV.js} +25 -25
- package/dist/chunk-IA24GUNV.js.map +1 -0
- package/dist/{chunk-D6TH3EGA.js → chunk-IQKKPOI7.js} +4 -4
- package/dist/{chunk-D6TH3EGA.js.map → chunk-IQKKPOI7.js.map} +1 -1
- package/dist/{chunk-WXBC3D2N.js → chunk-IRFAIJLV.js} +4 -4
- package/dist/{chunk-WXBC3D2N.js.map → chunk-IRFAIJLV.js.map} +1 -1
- package/dist/{chunk-SXPBKGLT.js → chunk-J62NPPDO.js} +3 -3
- package/dist/{chunk-SXPBKGLT.js.map → chunk-J62NPPDO.js.map} +1 -1
- package/dist/{chunk-TNDW52VZ.js → chunk-JDG5A44W.js} +20 -13
- package/dist/chunk-JDG5A44W.js.map +1 -0
- package/dist/{chunk-Z4KW5VW6.js → chunk-JRVUEOKT.js} +5 -5
- package/dist/{chunk-Z4KW5VW6.js.map → chunk-JRVUEOKT.js.map} +1 -1
- package/dist/{chunk-NXQ25PKF.js → chunk-K43MPWTO.js} +7 -7
- package/dist/chunk-K43MPWTO.js.map +1 -0
- package/dist/{chunk-2ROFZG3A.js → chunk-KA7747GR.js} +3 -3
- package/dist/{chunk-2ROFZG3A.js.map → chunk-KA7747GR.js.map} +1 -1
- package/dist/{chunk-OBRJXVWO.js → chunk-KYURFRCH.js} +4 -4
- package/dist/{chunk-OBRJXVWO.js.map → chunk-KYURFRCH.js.map} +1 -1
- package/dist/{chunk-EYSTEGV5.js → chunk-LR56MGWT.js} +7 -7
- package/dist/{chunk-EYSTEGV5.js.map → chunk-LR56MGWT.js.map} +1 -1
- package/dist/{chunk-6ZAMTPGN.js → chunk-M6VBDPNQ.js} +3 -3
- package/dist/{chunk-6ZAMTPGN.js.map → chunk-M6VBDPNQ.js.map} +1 -1
- package/dist/{chunk-JPA2VQRW.js → chunk-MAM5PTRV.js} +3 -3
- package/dist/{chunk-JPA2VQRW.js.map → chunk-MAM5PTRV.js.map} +1 -1
- package/dist/{chunk-3L5G7VI2.js → chunk-MAM6VUKD.js} +3 -3
- package/dist/chunk-MAM6VUKD.js.map +1 -0
- package/dist/{chunk-LLI3JFJL.js → chunk-MLSIZ6JU.js} +4 -4
- package/dist/{chunk-LLI3JFJL.js.map → chunk-MLSIZ6JU.js.map} +1 -1
- package/dist/{chunk-U2R47SPY.js → chunk-NULX3RRN.js} +4 -4
- package/dist/{chunk-U2R47SPY.js.map → chunk-NULX3RRN.js.map} +1 -1
- package/dist/{chunk-GL56KIFL.js → chunk-OG3M4CMJ.js} +3 -3
- package/dist/{chunk-GL56KIFL.js.map → chunk-OG3M4CMJ.js.map} +1 -1
- package/dist/{chunk-7EGN7IGY.js → chunk-OR3NPCY2.js} +3 -3
- package/dist/{chunk-7EGN7IGY.js.map → chunk-OR3NPCY2.js.map} +1 -1
- package/dist/{chunk-5I7AXWJU.js → chunk-PGRMKSVA.js} +4 -4
- package/dist/{chunk-5I7AXWJU.js.map → chunk-PGRMKSVA.js.map} +1 -1
- package/dist/{chunk-VZZ3HP7G.js → chunk-PM344VOQ.js} +3 -3
- package/dist/{chunk-VZZ3HP7G.js.map → chunk-PM344VOQ.js.map} +1 -1
- package/dist/{chunk-46ESMCEQ.js → chunk-QBLU7J34.js} +5 -5
- package/dist/chunk-QBLU7J34.js.map +1 -0
- package/dist/{chunk-U74PNG4S.js → chunk-SMVH56FQ.js} +3 -3
- package/dist/{chunk-U74PNG4S.js.map → chunk-SMVH56FQ.js.map} +1 -1
- package/dist/{chunk-DYDXGWH2.js → chunk-T3LWBCVR.js} +4 -4
- package/dist/chunk-T3LWBCVR.js.map +1 -0
- package/dist/{chunk-ZP4HYVDG.js → chunk-TA4HCLP3.js} +3 -3
- package/dist/{chunk-ZP4HYVDG.js.map → chunk-TA4HCLP3.js.map} +1 -1
- package/dist/{chunk-7HT32DZG.js → chunk-TGLALXPU.js} +3 -3
- package/dist/{chunk-7HT32DZG.js.map → chunk-TGLALXPU.js.map} +1 -1
- package/dist/{chunk-5GE3BQA7.js → chunk-USPITOG4.js} +5 -5
- package/dist/chunk-USPITOG4.js.map +1 -0
- package/dist/{chunk-XLTSCY22.js → chunk-UYPYAOET.js} +4 -4
- package/dist/chunk-UYPYAOET.js.map +1 -0
- package/dist/{chunk-P7D6S6GX.js → chunk-V7O4X3AE.js} +38 -4
- package/dist/chunk-V7O4X3AE.js.map +1 -0
- package/dist/{chunk-2YSZPUQZ.js → chunk-VTDSGJ4R.js} +3 -3
- package/dist/{chunk-2YSZPUQZ.js.map → chunk-VTDSGJ4R.js.map} +1 -1
- package/dist/{chunk-4Y72SPNL.js → chunk-VUHJTTPV.js} +4 -4
- package/dist/chunk-VUHJTTPV.js.map +1 -0
- package/dist/{chunk-VLDAHAG6.js → chunk-VV6QE3M2.js} +4 -4
- package/dist/{chunk-VLDAHAG6.js.map → chunk-VV6QE3M2.js.map} +1 -1
- package/dist/{chunk-H5N3VPBG.js → chunk-WBERMEN7.js} +3 -3
- package/dist/{chunk-H5N3VPBG.js.map → chunk-WBERMEN7.js.map} +1 -1
- package/dist/{chunk-OXDWUKGP.js → chunk-WCMRVCIM.js} +4 -4
- package/dist/chunk-WCMRVCIM.js.map +1 -0
- package/dist/{chunk-IFHF4UES.js → chunk-WQI2USN7.js} +11 -11
- package/dist/chunk-WQI2USN7.js.map +1 -0
- package/dist/{chunk-CKD4UBV6.js → chunk-WVFQKBDB.js} +3 -3
- package/dist/{chunk-CKD4UBV6.js.map → chunk-WVFQKBDB.js.map} +1 -1
- package/dist/{chunk-3NSIUZGP.js → chunk-WZ2J4ALB.js} +3 -3
- package/dist/{chunk-3NSIUZGP.js.map → chunk-WZ2J4ALB.js.map} +1 -1
- package/dist/{chunk-7TF5PVEU.js → chunk-X5XP5QVO.js} +5 -5
- package/dist/chunk-X5XP5QVO.js.map +1 -0
- package/dist/{chunk-7Y2UQMX6.js → chunk-XKO6G5H2.js} +36 -36
- package/dist/chunk-XKO6G5H2.js.map +1 -0
- package/dist/{chunk-SUU3HNOX.js → chunk-XORDGKZI.js} +4 -4
- package/dist/{chunk-SUU3HNOX.js.map → chunk-XORDGKZI.js.map} +1 -1
- package/dist/{chunk-VAVE4ZJF.js → chunk-YGLD22TU.js} +3 -3
- package/dist/chunk-YGLD22TU.js.map +1 -0
- package/dist/{chunk-XOGMDABS.js → chunk-ZHUW6UYD.js} +8 -8
- package/dist/chunk-ZHUW6UYD.js.map +1 -0
- package/dist/{chunk-PWCMCMDN.js → chunk-ZMUUEXVD.js} +3 -3
- package/dist/{chunk-PWCMCMDN.js.map → chunk-ZMUUEXVD.js.map} +1 -1
- package/dist/components/advanced/Calendar/index.js +5 -5
- package/dist/components/advanced/EventCalendar/index.js +5 -5
- package/dist/components/advanced/FilterBuilder/index.js +7 -7
- package/dist/components/advanced/MarkdownEditor/index.js +2 -2
- package/dist/components/advanced/ReportBuilder/index.js +4 -4
- package/dist/components/advanced/RichTextEditor/index.js +2 -2
- package/dist/components/advanced/index.js +16 -16
- package/dist/components/data-display/Callout/index.js +1 -1
- package/dist/components/data-display/Carousel/index.js +5 -5
- package/dist/components/data-display/ChartCard/index.js +2 -2
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +7 -7
- package/dist/components/data-display/DataTable/index.js +10 -10
- package/dist/components/data-display/ImageGallery/index.js +6 -6
- package/dist/components/data-display/Item/index.js +2 -2
- package/dist/components/data-display/KPICard/index.js +3 -3
- package/dist/components/data-display/List/index.js +2 -2
- package/dist/components/data-display/SingleStat/index.js +1 -1
- package/dist/components/data-display/index.js +31 -31
- package/dist/components/feedback/AlertDialog/index.js +5 -5
- package/dist/components/feedback/ConfirmModal/index.js +6 -6
- package/dist/components/feedback/Modal/index.js +1 -1
- package/dist/components/feedback/UpdatesWidget/index.js +1 -1
- package/dist/components/feedback/index.js +10 -10
- package/dist/components/forms/ColorPicker/index.js +1 -1
- package/dist/components/forms/Combobox/index.js +1 -1
- package/dist/components/forms/DatePicker/index.js +6 -6
- package/dist/components/forms/DateRangePicker/index.js +6 -6
- package/dist/components/forms/EmailInput/index.js +3 -3
- package/dist/components/forms/Field/index.js +3 -3
- package/dist/components/forms/Form/index.js +2 -2
- package/dist/components/forms/InputGroup/index.js +8 -8
- package/dist/components/forms/InputOTPField/index.js +4 -4
- package/dist/components/forms/NativeSelect/index.js +1 -1
- package/dist/components/forms/NumberInput/index.js +2 -2
- package/dist/components/forms/PasswordInput/index.js +3 -3
- package/dist/components/forms/PaymentInput/index.js +1 -1
- package/dist/components/forms/PhoneInput/index.js +1 -1
- package/dist/components/forms/RadioButton/index.js +1 -1
- package/dist/components/forms/SearchInput/index.js +3 -3
- package/dist/components/forms/Slider/index.js +1 -1
- package/dist/components/forms/TagsInput/index.js +2 -2
- package/dist/components/forms/TextInput/index.js +2 -2
- package/dist/components/forms/Textarea/index.js +1 -1
- package/dist/components/forms/TextareaField/index.js +5 -5
- package/dist/components/forms/URLInput/index.js +3 -3
- package/dist/components/forms/index.js +33 -33
- package/dist/components/index.js +132 -132
- package/dist/components/layout/Card/index.js +1 -1
- package/dist/components/layout/Section/index.js +1 -1
- package/dist/components/layout/index.js +6 -6
- package/dist/components/navigation/AccountSwitch/index.js +3 -3
- package/dist/components/navigation/ContextMenu/index.js +1 -1
- package/dist/components/navigation/DropdownMenu/index.js +1 -1
- package/dist/components/navigation/FileTree/index.js +1 -1
- package/dist/components/navigation/Menu/index.js +1 -1
- package/dist/components/navigation/Menubar/index.js +1 -1
- package/dist/components/navigation/Navbar/index.js +1 -1
- package/dist/components/navigation/Pagination/index.js +5 -5
- package/dist/components/navigation/Sidebar/index.js +7 -7
- package/dist/components/navigation/Toolbar/index.js +1 -1
- package/dist/components/navigation/index.js +20 -20
- package/dist/components/primitives/Badge/index.js +1 -1
- package/dist/components/primitives/Button/index.js +4 -4
- package/dist/components/primitives/ButtonGroup/index.js +2 -2
- package/dist/components/primitives/ConfirmButton/index.js +6 -6
- package/dist/components/primitives/Divider/index.js +1 -1
- package/dist/components/primitives/FolderStack/index.js +1 -1
- package/dist/components/primitives/Image/index.js +1 -1
- package/dist/components/primitives/Label/index.js +1 -1
- package/dist/components/primitives/SplitButton/index.js +2 -2
- package/dist/components/primitives/StatusIndicator/index.js +1 -1
- package/dist/components/primitives/Tag/index.js +1 -1
- package/dist/components/primitives/Thumbnail/index.js +2 -2
- package/dist/components/primitives/index.js +19 -19
- package/dist/components/workflow/ApprovalFlow/index.js +5 -5
- package/dist/components/workflow/CommentSystem/index.js +6 -6
- package/dist/components/workflow/Dashboard/index.js +5 -5
- package/dist/components/workflow/DashboardBuilder/index.js +8 -8
- package/dist/components/workflow/KanbanBoard/index.js +5 -5
- package/dist/components/workflow/ReportGenerator/index.js +6 -6
- package/dist/components/workflow/Stepper/index.js +1 -1
- package/dist/components/workflow/TaskStatus/index.js +2 -2
- package/dist/components/workflow/Wizard/index.js +6 -6
- package/dist/components/workflow/index.js +19 -19
- package/dist/index.d.ts +8 -1
- package/dist/index.js +132 -132
- package/dist/styles.css +27 -703
- package/package.json +2 -2
- package/dist/chunk-3L5G7VI2.js.map +0 -1
- package/dist/chunk-46ESMCEQ.js.map +0 -1
- package/dist/chunk-4GVOOXYD.js.map +0 -1
- package/dist/chunk-4KOJTZVU.js.map +0 -1
- package/dist/chunk-4Y72SPNL.js.map +0 -1
- package/dist/chunk-5GE3BQA7.js.map +0 -1
- package/dist/chunk-66TBTTZO.js.map +0 -1
- package/dist/chunk-7TF5PVEU.js.map +0 -1
- package/dist/chunk-7Y2UQMX6.js.map +0 -1
- package/dist/chunk-DYDXGWH2.js.map +0 -1
- package/dist/chunk-IFHF4UES.js.map +0 -1
- package/dist/chunk-IRIIK3BU.js.map +0 -1
- package/dist/chunk-NXQ25PKF.js.map +0 -1
- package/dist/chunk-OXDWUKGP.js.map +0 -1
- package/dist/chunk-P7D6S6GX.js.map +0 -1
- package/dist/chunk-TNDW52VZ.js.map +0 -1
- package/dist/chunk-U6EOAIPK.js.map +0 -1
- package/dist/chunk-UPK5B2FL.js.map +0 -1
- package/dist/chunk-VAVE4ZJF.js.map +0 -1
- package/dist/chunk-VT4IMHGE.js.map +0 -1
- package/dist/chunk-WKWLKGNI.js.map +0 -1
- package/dist/chunk-XLTSCY22.js.map +0 -1
- package/dist/chunk-XOGMDABS.js.map +0 -1
- package/dist/chunk-Y4RKKQMB.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/workflow/TaskStatus/TaskStatus.variants.ts","../src/components/workflow/TaskStatus/TaskStatus.tsx"],"names":[],"mappings":";;;;;;;AAKO,IAAM,kBAAA,GAAqB,GAAA;AAAA,EAChC,0EAAA;AAAA,EACA;AAAA,IACE,gBAAA,EAAkB;AAAA;AAAA,MAEhB;AAAA,QACE,SAAA,EAAW,iCAAA;AAAA,QACX,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,SAAA,EAAW,+BAAA;AAAA,QACX,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU,KAAA;AAAA,MACV,WAAA,EAAa,KAAA;AAAA,MACb,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,EAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,WAAA,EAAa;AAAA,QACX,KAAA,EAAO,EAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,qBAAA;AAAA,QACT,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,qBAAA;AAAA,QACT,OAAA,EAAS,iDAAA;AAAA,QACT,IAAA,EAAM,uBAAA;AAAA,QACN,MAAA,EAAQ;AAAA;AACV;AACF;AAEJ;AAMO,IAAM,uBAAA,GAA0B,IAAI,EAAA,EAAI;AAAA,EAC7C,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,8CAAA;AAAA,MACT,OAAA,EAAS,8CAAA;AAAA,MACT,IAAA,EAAM,2CAAA;AAAA,MACN,aAAA,EAAe,kDAAA;AAAA,MACf,WAAA,EAAa,gDAAA;AAAA,MACb,IAAA,EAAM;AAAA;AACR;AAEJ,CAAC;AAKM,IAAM,sBAAA,GAAyB,IAAI,UAAA,EAAY;AAAA,EACpD,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,SAAA;AAAA,MACT,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN;AAEJ,CAAC;AAKM,IAAM,uBAAA,GAA0B,IAAI,0BAAA,EAA4B;AAAA,EACrE,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,SAAA;AAAA,MACT,EAAA,EAAI,WAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN;AAEJ,CAAC;AAKM,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,qKAAA;AAAA,EACA;AAAA,IACE,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA,KACR;AAAA,IACA,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,SAAA;AAAA,QACT,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN;AACF;AAEJ;AAKO,IAAM,0BAAA,GAA6B,GAAA;AAAA,EACxC,uMAAA;AAAA,EACA;AAAA,IACE,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,KAAA,EAAO,EAAA;AAAA,QACP,IAAA,EAAM;AAAA;AACR;AACF;AAEJ;ACxGA,IAAM,sBAAA,GAA8C;AAAA,EAClD,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,uBAAA;AAAA,IACP,IAAA,sBAAO,WAAA,EAAA,EAAY,CAAA;AAAA,IACnB,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,sBAAO,eAAA,EAAA,EAAgB,CAAA;AAAA,IACvB,KAAA,EAAO;AAAA,GACT;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,oCAAA;AAAA,IACP,IAAA,sBAAO,SAAA,EAAA,EAAU,CAAA;AAAA,IACjB,KAAA,EAAO;AAAA,GACT;AAAA,EACA,aAAA,EAAe;AAAA,IACb,KAAA,EAAO,kCAAA;AAAA,IACP,IAAA,sBAAO,SAAA,EAAA,EAAU,CAAA;AAAA,IACjB,KAAA,EAAO;AAAA,GACT;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,sCAAA;AAAA,IACP,IAAA,sBAAO,OAAA,EAAA,EAAQ,CAAA;AAAA,IACf,KAAA,EAAO;AAAA,GACT;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,uBAAA;AAAA,IACP,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX;AAKA,IAAM,YAAA,GAA6B;AAAA,EACjC,MAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AA4BA,SAAS,UAAA,CAAW;AAAA,EAClB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,WAAA,GAAc,KAAA;AAAA,EACd,QAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,SAAA,GAAY,IAAA;AAAA,EACZ,IAAA,GAAO,SAAA;AAAA,EACP,MAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,MAAM,KAAK,KAAA,EAAM;AACjB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAG1C,EAAA,MAAM,aAAA,GAAgB,OAAA;AAAA,IACpB,OAAO;AAAA,MACL,GAAG,sBAAA;AAAA,MACH,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,cAAc;AAAA,GACjB;AAEA,EAAA,MAAM,aAAA,GAAgB,cAAc,MAAM,CAAA;AAE1C,EAAA,MAAM,kBAAA,GAAqB,CAAC,SAAA,KAA0B;AACpD,IAAA,IAAI,CAAC,YAAY,QAAA,EAAU;AACzB,MAAA,QAAA,CAAS,SAAS,CAAA;AAAA,IACpB;AACA,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EACjB,CAAA;AAGA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAO,QAAA;AAAA,IACT;AAEA,IAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,QAAA,IAAY,cAAc,IAAA,oBACzB,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,WAAW,EAAA,CAAG,sBAAA,CAAuB,EAAE,IAAA,EAAM,CAAC,CAAA;AAAA,UAC9C,WAAA,EAAU,kBAAA;AAAA,UAET,QAAA,EAAA,aAAA,CAAc;AAAA;AAAA,OACjB;AAAA,MAED,SAAA,oBACC,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,WAAW,EAAA,CAAG,uBAAA,CAAwB,EAAE,IAAA,EAAM,CAAC,CAAA;AAAA,UAC/C,WAAA,EAAU,mBAAA;AAAA,UAET,QAAA,EAAA,aAAA,CAAc;AAAA;AAAA;AACjB,KAAA,EAEJ,CAAA;AAAA,EAEJ,CAAA;AAGA,EAAA,MAAM,aAAA,mBACJ,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,mBAAmB,EAAE,QAAA,EAAU,WAAA,EAAa,IAAA,EAAM,SAAS,CAAA;AAAA,QAC3D,uBAAA,CAAwB,EAAE,MAAA,EAAQ,CAAA;AAAA,QAClC;AAAA,OACF;AAAA,MACA,eAAA,EAAe,QAAA;AAAA,MACf,YAAA,EAAY,CAAA,QAAA,EAAW,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,MAC1C,WAAA,EAAU,QAAA;AAAA,MACV,WAAA,EAAU,aAAA;AAAA,MACV,aAAA,EAAa,MAAA;AAAA,MACb,EAAA,EAAI,eAAe,EAAE,CAAA,CAAA;AAAA,MACrB,IAAA,EAAK,QAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,aAAA,EAAc;AAAA,QACd,WAAA,IAAe,CAAC,QAAA,oBACf,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,yBAAA,CAA0B,EAAE,IAAA,EAAM,CAAA;AAAA,cAClC,MAAA,IAAU;AAAA,aACZ;AAAA,YACA,WAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA,GAEJ;AAIF,EAAA,IAAI,CAAC,eAAe,QAAA,EAAU;AAC5B,IAAA,OAAO,aAAA;AAAA,EACT;AAGA,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,MAAA,EAAQ,cAAc,SAAA,EACxC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,OAAA,EAAO,IAAA,EAAC,QAAA,EAC1B,QAAA,EAAA,aAAA,EACH,CAAA;AAAA,oBACA,GAAA,CAAC,uBAAoB,KAAA,EAAM,OAAA,EAAQ,WAAU,UAAA,EAC1C,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,YAAA,KAAiB;AAClC,MAAA,MAAM,MAAA,GAAS,cAAc,YAAY,CAAA;AACzC,MAAA,MAAM,aAAa,YAAA,KAAiB,MAAA;AAEpC,MAAA,uBACE,IAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAW,EAAA;AAAA,YACT,yBAAA;AAAA,YACA,UAAA,IAAc;AAAA,WAChB;AAAA,UACA,SAAS,MAAM;AAAE,YAAA,kBAAA,CAAmB,YAAY,CAAA;AAAA,UAAG,CAAA;AAAA,UAElD,QAAA,EAAA;AAAA,YAAA,MAAA,CAAO,IAAA,oBACN,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,sBAAA,CAAuB,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,kBACrC,MAAA,CAAO;AAAA,iBACT;AAAA,gBAEC,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,aACV;AAAA,4BAEF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAU,iBAAO,KAAA,EAAM,CAAA;AAAA,YACtC,UAAA,oBACC,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,sBAAA,EAAuB;AAAA;AAAA,SAAA;AAAA,QAnBzC;AAAA,OAqBP;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-E2TI5V67.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * TaskStatus container variants\n */\nexport const taskStatusVariants = cva(\n \"inline-flex items-center gap-1.5 font-medium transition-all duration-200\",\n {\n compoundVariants: [\n // Interactive states\n {\n className: \"cursor-pointer hover:opacity-80\",\n interactive: true,\n },\n {\n className: \"cursor-not-allowed opacity-50\",\n disabled: true,\n },\n ],\n defaultVariants: {\n disabled: false,\n interactive: false,\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n disabled: {\n false: \"\",\n true: \"\",\n },\n interactive: {\n false: \"\",\n true: \"\",\n },\n size: {\n default: \"px-3 py-1.5 text-sm\",\n lg: \"px-4 py-2 text-base\",\n sm: \"px-2 py-1 text-xs\",\n },\n variant: {\n default: \"rounded-md bg-muted\",\n outline: \"rounded-md border border-current bg-transparent\",\n pill: \"rounded-full bg-muted\",\n subtle: \"rounded-md bg-muted/30\",\n },\n },\n }\n)\n\n/**\n * Status-specific color variants using semantic tokens\n * Only applies text colors - background is controlled by variant prop\n */\nexport const taskStatusColorVariants = cva(\"\", {\n defaultVariants: {\n status: \"todo\",\n },\n variants: {\n status: {\n backlog: \"text-[color:var(--task-status-backlog-text)]\",\n blocked: \"text-[color:var(--task-status-blocked-text)]\",\n done: \"text-[color:var(--task-status-done-text)]\",\n \"in-progress\": \"text-[color:var(--task-status-in-progress-text)]\",\n \"in-review\": \"text-[color:var(--task-status-in-review-text)]\",\n todo: \"text-[color:var(--task-status-todo-text)]\",\n },\n },\n})\n\n/**\n * Icon container variants\n */\nexport const taskStatusIconVariants = cva(\"shrink-0\", {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n sm: \"h-3.5 w-3.5\",\n },\n },\n})\n\n/**\n * Label variants\n */\nexport const taskStatusLabelVariants = cva(\"font-medium leading-none\", {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"text-sm\",\n lg: \"text-base\",\n sm: \"text-xs\",\n },\n },\n})\n\n/**\n * Trigger button variants (for interactive mode)\n */\nexport const taskStatusTriggerVariants = cva(\n \"ml-1 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n sm: \"h-3 w-3\",\n },\n },\n }\n)\n\n/**\n * Dropdown menu item variants\n */\nexport const taskStatusMenuItemVariants = cva(\n \"flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n {\n defaultVariants: {\n selected: false,\n },\n variants: {\n selected: {\n false: \"\",\n true: \"bg-accent/50\",\n },\n },\n }\n)\n\n// Export variant prop types\nexport type TaskStatusVariantProps = VariantProps<typeof taskStatusVariants>\nexport type TaskStatusColorVariantProps = VariantProps<typeof taskStatusColorVariants>\nexport type TaskStatusIconVariantProps = VariantProps<typeof taskStatusIconVariants>\nexport type TaskStatusLabelVariantProps = VariantProps<typeof taskStatusLabelVariants>\nexport type TaskStatusTriggerVariantProps = VariantProps<typeof taskStatusTriggerVariants>\nexport type TaskStatusMenuItemVariantProps = VariantProps<typeof taskStatusMenuItemVariants>\n","\"use client\"\n\nimport type { StatusType, TaskStatusConfigMap, TaskStatusProps } from \"./TaskStatus.types\"\n\nimport {\n AlertCircleIcon,\n ArchiveIcon,\n CheckIcon,\n ChevronDownIcon,\n ClockIcon,\n EyeIcon,\n} from \"lucide-react\"\nimport { useId, useMemo, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"../../navigation/DropdownMenu\"\nimport {\n taskStatusColorVariants,\n taskStatusIconVariants,\n taskStatusLabelVariants,\n taskStatusTriggerVariants,\n taskStatusVariants,\n} from \"./TaskStatus.variants\"\n\n/**\n * Default status configurations with labels, colors, and icons\n */\nconst DEFAULT_STATUS_CONFIGS: TaskStatusConfigMap = {\n backlog: {\n color: \"text-muted-foreground\",\n icon: <ArchiveIcon />,\n label: \"Backlog\",\n },\n blocked: {\n color: \"text-destructive\",\n icon: <AlertCircleIcon />,\n label: \"Blocked\",\n },\n done: {\n color: \"text-green-600 dark:text-green-400\",\n icon: <CheckIcon />,\n label: \"Done\",\n },\n \"in-progress\": {\n color: \"text-blue-600 dark:text-blue-400\",\n icon: <ClockIcon />,\n label: \"In Progress\",\n },\n \"in-review\": {\n color: \"text-yellow-600 dark:text-yellow-400\",\n icon: <EyeIcon />,\n label: \"In Review\",\n },\n todo: {\n color: \"text-muted-foreground\",\n icon: null,\n label: \"To Do\",\n },\n}\n\n/**\n * List of all available statuses for the dropdown\n */\nconst ALL_STATUSES: StatusType[] = [\n \"todo\",\n \"in-progress\",\n \"in-review\",\n \"done\",\n \"blocked\",\n \"backlog\",\n]\n\n/**\n * TaskStatus - A component that displays the status of a task visually.\n *\n * Can be used as a simple badge or as an interactive dropdown to change status.\n * Supports multiple visual variants and sizes.\n *\n * @example\n * // Simple status badge\n * <TaskStatus status=\"in-progress\" />\n *\n * @example\n * // Interactive status dropdown\n * <TaskStatus\n * status={status}\n * interactive\n * onChange={setStatus}\n * />\n *\n * @example\n * // Pill variant without icon\n * <TaskStatus\n * status=\"done\"\n * variant=\"pill\"\n * showIcon={false}\n * />\n */\nfunction TaskStatus({\n children,\n className,\n customStatuses,\n disabled = false,\n interactive = false,\n onChange,\n ref,\n showIcon = true,\n showLabel = true,\n size = \"default\",\n status,\n variant = \"default\",\n ...props\n}: TaskStatusProps) {\n const id = useId()\n const [isOpen, setIsOpen] = useState(false)\n\n // Merge custom status configs with defaults\n const statusConfigs = useMemo(\n () => ({\n ...DEFAULT_STATUS_CONFIGS,\n ...customStatuses,\n }),\n [customStatuses]\n )\n\n const currentConfig = statusConfigs[status]\n\n const handleStatusSelect = (newStatus: StatusType) => {\n if (!disabled && onChange) {\n onChange(newStatus)\n }\n setIsOpen(false)\n }\n\n // Render content (icon + label)\n const renderContent = () => {\n if (children) {\n return children\n }\n\n return (\n <>\n {showIcon && currentConfig.icon && (\n <span\n className={cn(taskStatusIconVariants({ size }))}\n data-slot=\"task-status-icon\"\n >\n {currentConfig.icon}\n </span>\n )}\n {showLabel && (\n <span\n className={cn(taskStatusLabelVariants({ size }))}\n data-slot=\"task-status-label\"\n >\n {currentConfig.label}\n </span>\n )}\n </>\n )\n }\n\n // Base status element\n const statusElement = (\n <div\n ref={ref}\n className={cn(\n taskStatusVariants({ disabled, interactive, size, variant }),\n taskStatusColorVariants({ status }),\n className\n )}\n aria-disabled={disabled}\n aria-label={`Status: ${currentConfig.label}`}\n aria-live=\"polite\"\n data-slot=\"task-status\"\n data-status={status}\n id={`task-status-${id}`}\n role=\"status\"\n {...props}\n >\n {renderContent()}\n {interactive && !disabled && (\n <ChevronDownIcon\n className={cn(\n taskStatusTriggerVariants({ size }),\n isOpen && \"rotate-180 transition-transform\"\n )}\n data-slot=\"task-status-trigger\"\n />\n )}\n </div>\n )\n\n // If not interactive, just return the status element\n if (!interactive || disabled) {\n return statusElement\n }\n\n // Interactive mode with dropdown\n return (\n <DropdownMenu open={isOpen} onOpenChange={setIsOpen}>\n <DropdownMenuTrigger asChild disabled={disabled}>\n {statusElement}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"min-w-36\">\n {ALL_STATUSES.map((statusOption) => {\n const config = statusConfigs[statusOption]\n const isSelected = statusOption === status\n\n return (\n <DropdownMenuItem\n key={statusOption}\n className={cn(\n \"flex items-center gap-2\",\n isSelected && \"bg-accent/50\"\n )}\n onClick={() => { handleStatusSelect(statusOption); }}\n >\n {config.icon && (\n <span\n className={cn(\n taskStatusIconVariants({ size: \"sm\" }),\n config.color\n )}\n >\n {config.icon}\n </span>\n )}\n <span className=\"flex-1\">{config.label}</span>\n {isSelected && (\n <CheckIcon className=\"h-4 w-4 text-primary\" />\n )}\n </DropdownMenuItem>\n )\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport { ALL_STATUSES, DEFAULT_STATUS_CONFIGS, TaskStatus }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/workflow/TaskStatus/TaskStatus.variants.ts","../src/components/workflow/TaskStatus/TaskStatus.tsx"],"names":[],"mappings":"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","file":"chunk-A4O3USMA.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * TaskStatus container variants\n */\nexport const taskStatusVariants = cva(\n \"inline-flex items-center gap-1.5 font-medium transition-all duration-200\",\n {\n compoundVariants: [\n // Interactive states\n {\n className: \"cursor-pointer hover:opacity-80\",\n interactive: true,\n },\n {\n className: \"cursor-not-allowed opacity-50\",\n disabled: true,\n },\n ],\n defaultVariants: {\n disabled: false,\n interactive: false,\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n disabled: {\n false: \"\",\n true: \"\",\n },\n interactive: {\n false: \"\",\n true: \"\",\n },\n size: {\n default: \"px-3 py-1.5 text-sm\",\n lg: \"px-4 py-2 text-base\",\n sm: \"px-2 py-1 text-xs\",\n },\n variant: {\n default: \"rounded-md bg-muted\",\n outline: \"rounded-md border border-current bg-transparent\",\n pill: \"rounded-full bg-muted\",\n subtle: \"rounded-md bg-muted/30\",\n },\n },\n }\n)\n\n/**\n * Status-specific color variants using semantic tokens\n * Only applies text colors - background is controlled by variant prop\n */\nexport const taskStatusColorVariants = cva(\"\", {\n defaultVariants: {\n status: \"todo\",\n },\n variants: {\n status: {\n backlog: \"text-[color:var(--task-status-backlog-text)]\",\n blocked: \"text-[color:var(--task-status-blocked-text)]\",\n done: \"text-[color:var(--task-status-done-text)]\",\n \"in-progress\": \"text-[color:var(--task-status-in-progress-text)]\",\n \"in-review\": \"text-[color:var(--task-status-in-review-text)]\",\n todo: \"text-[color:var(--task-status-todo-text)]\",\n },\n },\n})\n\n/**\n * Icon container variants\n */\nexport const taskStatusIconVariants = cva(\"shrink-0\", {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n sm: \"h-3.5 w-3.5\",\n },\n },\n})\n\n/**\n * Label variants\n */\nexport const taskStatusLabelVariants = cva(\"font-medium leading-none\", {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"text-sm\",\n lg: \"text-base\",\n sm: \"text-xs\",\n },\n },\n})\n\n/**\n * Trigger button variants (for interactive mode)\n */\nexport const taskStatusTriggerVariants = cva(\n \"ml-1 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n {\n defaultVariants: {\n size: \"default\",\n },\n variants: {\n size: {\n default: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n sm: \"h-3 w-3\",\n },\n },\n }\n)\n\n/**\n * Dropdown menu item variants\n */\nexport const taskStatusMenuItemVariants = cva(\n \"flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n {\n defaultVariants: {\n selected: false,\n },\n variants: {\n selected: {\n false: \"\",\n true: \"bg-accent/50\",\n },\n },\n }\n)\n\n// Export variant prop types\nexport type TaskStatusVariantProps = VariantProps<typeof taskStatusVariants>\nexport type TaskStatusColorVariantProps = VariantProps<typeof taskStatusColorVariants>\nexport type TaskStatusIconVariantProps = VariantProps<typeof taskStatusIconVariants>\nexport type TaskStatusLabelVariantProps = VariantProps<typeof taskStatusLabelVariants>\nexport type TaskStatusTriggerVariantProps = VariantProps<typeof taskStatusTriggerVariants>\nexport type TaskStatusMenuItemVariantProps = VariantProps<typeof taskStatusMenuItemVariants>\n","\"use client\"\n\nimport type { StatusType, TaskStatusConfigMap, TaskStatusProps } from \"./TaskStatus.types\"\n\nimport {\n AlertCircleIcon,\n ArchiveIcon,\n CheckIcon,\n ChevronDownIcon,\n ClockIcon,\n EyeIcon,\n} from \"lucide-react\"\nimport { useId, useMemo, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"../../navigation/DropdownMenu\"\nimport {\n taskStatusColorVariants,\n taskStatusIconVariants,\n taskStatusLabelVariants,\n taskStatusTriggerVariants,\n taskStatusVariants,\n} from \"./TaskStatus.variants\"\n\n/**\n * Default status configurations with labels, colors, and icons\n */\nconst DEFAULT_STATUS_CONFIGS: TaskStatusConfigMap = {\n backlog: {\n color: \"text-muted-foreground\",\n icon: <ArchiveIcon />,\n label: \"Backlog\",\n },\n blocked: {\n color: \"text-destructive\",\n icon: <AlertCircleIcon />,\n label: \"Blocked\",\n },\n done: {\n color: \"text-green-600 dark:text-green-400\",\n icon: <CheckIcon />,\n label: \"Done\",\n },\n \"in-progress\": {\n color: \"text-blue-600 dark:text-blue-400\",\n icon: <ClockIcon />,\n label: \"In Progress\",\n },\n \"in-review\": {\n color: \"text-yellow-600 dark:text-yellow-400\",\n icon: <EyeIcon />,\n label: \"In Review\",\n },\n todo: {\n color: \"text-muted-foreground\",\n icon: null,\n label: \"To Do\",\n },\n}\n\n/**\n * List of all available statuses for the dropdown\n */\nconst ALL_STATUSES: StatusType[] = [\n \"todo\",\n \"in-progress\",\n \"in-review\",\n \"done\",\n \"blocked\",\n \"backlog\",\n]\n\n/**\n * TaskStatus - A component that displays the status of a task visually.\n *\n * Can be used as a simple badge or as an interactive dropdown to change status.\n * Supports multiple visual variants and sizes.\n *\n * @example\n * // Simple status badge\n * <TaskStatus status=\"in-progress\" />\n *\n * @example\n * // Interactive status dropdown\n * <TaskStatus\n * status={status}\n * interactive\n * onChange={setStatus}\n * />\n *\n * @example\n * // Pill variant without icon\n * <TaskStatus\n * status=\"done\"\n * variant=\"pill\"\n * showIcon={false}\n * />\n */\nfunction TaskStatus({\n children,\n className,\n customStatuses,\n disabled = false,\n interactive = false,\n onChange,\n ref,\n showIcon = true,\n showLabel = true,\n size = \"default\",\n status,\n variant = \"default\",\n ...props\n}: TaskStatusProps) {\n const id = useId()\n const [isOpen, setIsOpen] = useState(false)\n\n // Merge custom status configs with defaults\n const statusConfigs = useMemo(\n () => ({\n ...DEFAULT_STATUS_CONFIGS,\n ...customStatuses,\n }),\n [customStatuses]\n )\n\n const currentConfig = statusConfigs[status]\n\n const handleStatusSelect = (newStatus: StatusType) => {\n if (!disabled && onChange) {\n onChange(newStatus)\n }\n setIsOpen(false)\n }\n\n // Render content (icon + label)\n const renderContent = () => {\n if (children) {\n return children\n }\n\n return (\n <>\n {showIcon && currentConfig.icon && (\n <span\n className={cn(taskStatusIconVariants({ size }))}\n data-slot=\"task-status-icon\"\n >\n {currentConfig.icon}\n </span>\n )}\n {showLabel && (\n <span\n className={cn(taskStatusLabelVariants({ size }))}\n data-slot=\"task-status-label\"\n >\n {currentConfig.label}\n </span>\n )}\n </>\n )\n }\n\n // Base status element\n const statusElement = (\n <div\n ref={ref}\n className={cn(\n taskStatusVariants({ disabled, interactive, size, variant }),\n taskStatusColorVariants({ status }),\n className\n )}\n aria-disabled={disabled}\n aria-label={`Status: ${currentConfig.label}`}\n aria-live=\"polite\"\n data-slot=\"task-status\"\n data-status={status}\n id={`task-status-${id}`}\n role=\"status\"\n {...props}\n >\n {renderContent()}\n {interactive && !disabled && (\n <ChevronDownIcon\n className={cn(\n taskStatusTriggerVariants({ size }),\n isOpen && \"rotate-180 transition-transform\"\n )}\n data-slot=\"task-status-trigger\"\n />\n )}\n </div>\n )\n\n // If not interactive, just return the status element\n if (!interactive || disabled) {\n return statusElement\n }\n\n // Interactive mode with dropdown\n return (\n <DropdownMenu open={isOpen} onOpenChange={setIsOpen}>\n <DropdownMenuTrigger asChild disabled={disabled}>\n {statusElement}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"min-w-36\">\n {ALL_STATUSES.map((statusOption) => {\n const config = statusConfigs[statusOption]\n const isSelected = statusOption === status\n\n return (\n <DropdownMenuItem\n key={statusOption}\n className={cn(\n \"flex items-center gap-2\",\n isSelected && \"bg-accent/50\"\n )}\n onClick={() => { handleStatusSelect(statusOption); }}\n >\n {config.icon && (\n <span\n className={cn(\n taskStatusIconVariants({ size: \"sm\" }),\n config.color\n )}\n >\n {config.icon}\n </span>\n )}\n <span className=\"flex-1\">{config.label}</span>\n {isSelected && (\n <CheckIcon className=\"h-4 w-4 text-primary\" />\n )}\n </DropdownMenuItem>\n )\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nexport { ALL_STATUSES, DEFAULT_STATUS_CONFIGS, TaskStatus }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Badge } from './chunk-
|
|
1
|
+
import { Badge } from './chunk-6ABGMOE2.js';
|
|
2
2
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
3
3
|
import { useRef, useState, useId, useCallback } from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
@@ -6,7 +6,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
6
6
|
|
|
7
7
|
var tagsInputVariants = cva(
|
|
8
8
|
[
|
|
9
|
-
"flex flex-wrap items-center gap-1.5 w-full min-w-0 rounded-
|
|
9
|
+
"flex flex-wrap items-center gap-1.5 w-full min-w-0 rounded-[var(--tags-input-root-radius)] border bg-transparent transition-[color,box-shadow] outline-none",
|
|
10
10
|
"dark:bg-input/30",
|
|
11
11
|
"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",
|
|
12
12
|
"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50",
|
|
@@ -20,7 +20,7 @@ var tagsInputVariants = cva(
|
|
|
20
20
|
lg: "min-h-10 px-3.5 py-2 text-base"
|
|
21
21
|
},
|
|
22
22
|
variant: {
|
|
23
|
-
default: "border-input shadow-xs",
|
|
23
|
+
default: "border-[color:var(--tags-input-root-border)] shadow-xs",
|
|
24
24
|
filled: "border-transparent bg-muted",
|
|
25
25
|
flushed: "rounded-none border-x-0 border-t-0 border-b-input px-0"
|
|
26
26
|
}
|
|
@@ -33,7 +33,7 @@ var tagsInputVariants = cva(
|
|
|
33
33
|
);
|
|
34
34
|
var tagsInputInputVariants = cva(
|
|
35
35
|
[
|
|
36
|
-
"flex-1 min-w-24 bg-
|
|
36
|
+
"flex-1 min-w-24 bg-[color:var(--tags-input-input-background)] outline-none",
|
|
37
37
|
"placeholder:text-muted-foreground",
|
|
38
38
|
"disabled:cursor-not-allowed"
|
|
39
39
|
],
|
|
@@ -195,5 +195,5 @@ function TagsInput({
|
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
export { TagsInput, tagsInputInputVariants, tagsInputVariants };
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
198
|
+
//# sourceMappingURL=chunk-AKRVZ2YW.js.map
|
|
199
|
+
//# sourceMappingURL=chunk-AKRVZ2YW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/TagsInput/TagsInput.variants.ts","../src/components/forms/TagsInput/TagsInput.tsx"],"names":[],"mappings":"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","file":"chunk-AKRVZ2YW.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * TagsInput container variant styles using CVA\n */\nexport const tagsInputVariants = cva(\n [\n \"flex flex-wrap items-center gap-1.5 w-full min-w-0 rounded-[var(--tags-input-root-radius)] border bg-transparent transition-[color,box-shadow] outline-none\",\n \"dark:bg-input/30\",\n \"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]\",\n \"aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-8 px-2 py-1 text-sm\",\n md: \"min-h-9 px-3 py-1.5 text-base md:text-sm\",\n lg: \"min-h-10 px-3.5 py-2 text-base\",\n },\n variant: {\n default: \"border-[color:var(--tags-input-root-border)] shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * TagsInput inner input variant styles\n */\nexport const tagsInputInputVariants = cva(\n [\n \"flex-1 min-w-24 bg-[color:var(--tags-input-input-background)] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm h-5\",\n md: \"text-base md:text-sm h-5\",\n lg: \"text-base h-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type TagsInputVariantProps = VariantProps<typeof tagsInputVariants>\nexport type TagsInputInputVariantProps = VariantProps<typeof tagsInputInputVariants>\n","\"use client\"\n\nimport type { TagsInputProps } from \"./TagsInput.types\"\n\nimport * as React from \"react\"\nimport { useCallback, useId, useRef, useState } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { tagsInputInputVariants, tagsInputVariants } from \"./TagsInput.variants\"\n\n/**\n * TagsInput - A multi-tag input component for entering and managing tags\n *\n * @example\n * ```tsx\n * // Uncontrolled\n * <TagsInput\n * defaultValue={[\"react\", \"typescript\"]}\n * placeholder=\"Add tags...\"\n * />\n *\n * // Controlled\n * const [tags, setTags] = useState([\"hello\"])\n * <TagsInput\n * value={tags}\n * onChange={setTags}\n * maxTags={5}\n * />\n * ```\n */\nfunction TagsInput({\n value: controlledValue,\n defaultValue = [],\n onChange,\n onTagAdd,\n onTagRemove,\n placeholder = \"Add tag...\",\n maxTags,\n allowDuplicates = false,\n disabled,\n size = \"md\",\n variant,\n invalid,\n delimiters = [\",\"],\n className,\n ...props\n}: TagsInputProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [inputValue, setInputValue] = useState(\"\")\n const [internalTags, setInternalTags] = useState<string[]>(defaultValue)\n const id = useId()\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledValue !== undefined\n const tags = isControlled ? controlledValue : internalTags\n\n const updateTags = useCallback(\n (newTags: string[]) => {\n if (!isControlled) {\n setInternalTags(newTags)\n }\n onChange?.(newTags)\n },\n [isControlled, onChange]\n )\n\n const addTag = useCallback(\n (tag: string) => {\n const trimmedTag = tag.trim()\n if (!trimmedTag) return\n\n // Check for duplicates\n if (!allowDuplicates && tags.includes(trimmedTag)) {\n setInputValue(\"\")\n return\n }\n\n // Check max tags\n if (maxTags && tags.length >= maxTags) {\n setInputValue(\"\")\n return\n }\n\n const newTags = [...tags, trimmedTag]\n updateTags(newTags)\n onTagAdd?.(trimmedTag)\n setInputValue(\"\")\n },\n [tags, allowDuplicates, maxTags, updateTags, onTagAdd]\n )\n\n const removeTag = useCallback(\n (tagToRemove: string) => {\n const newTags = tags.filter((tag) => tag !== tagToRemove)\n updateTags(newTags)\n onTagRemove?.(tagToRemove)\n },\n [tags, updateTags, onTagRemove]\n )\n\n const removeLastTag = useCallback(() => {\n const lastTag = tags[tags.length - 1]\n if (lastTag) {\n removeTag(lastTag)\n }\n }, [tags, removeTag])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" || delimiters.includes(e.key)) {\n e.preventDefault()\n addTag(inputValue)\n } else if (e.key === \"Backspace\" && inputValue === \"\" && tags.length > 0) {\n removeLastTag()\n }\n },\n [inputValue, tags.length, addTag, removeLastTag, delimiters]\n )\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n\n // Check if any delimiter is in the pasted/typed value\n for (const delimiter of delimiters) {\n if (value.includes(delimiter)) {\n const parts = value.split(delimiter)\n parts.forEach((part, index) => {\n if (index < parts.length - 1) {\n addTag(part)\n } else {\n setInputValue(part)\n }\n })\n return\n }\n }\n\n setInputValue(value)\n },\n [delimiters, addTag]\n )\n\n const handleContainerClick = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n // Map size to Tag size\n const tagSize = size === \"lg\" ? \"default\" : \"sm\"\n\n return (\n <div\n aria-disabled={disabled ?? undefined}\n aria-invalid={invalid ?? undefined}\n className={cn(tagsInputVariants({ size, variant }), className)}\n data-slot=\"tags-input\"\n onClick={handleContainerClick}\n {...props}\n >\n {tags.map((tag, index) => (\n <Badge\n key={`${tag}-${String(index)}`}\n color=\"muted\"\n size={tagSize}\n type=\"pill-color\"\n onDismiss={disabled ? undefined : () => { removeTag(tag); }}\n >\n {tag}\n </Badge>\n ))}\n <input\n ref={inputRef}\n aria-label=\"Add tag\"\n className={tagsInputInputVariants({ size })}\n data-slot=\"tags-input-field\"\n disabled={disabled}\n id={id}\n placeholder={tags.length === 0 ? placeholder : undefined}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n )\n}\n\nexport { TagsInput }\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from './chunk-N3I6GA4I.js';
|
|
2
|
-
import { Field, FieldLabel, FieldError, FieldDescription } from './chunk-
|
|
2
|
+
import { Field, FieldLabel, FieldError, FieldDescription } from './chunk-7VGF6ZVE.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -143,5 +143,5 @@ var inputOTPFieldErrorVariants = cva(
|
|
|
143
143
|
);
|
|
144
144
|
|
|
145
145
|
export { InputOTPField, inputOTPFieldDescriptionVariants, inputOTPFieldErrorVariants, inputOTPFieldLabelVariants, inputOTPFieldVariants };
|
|
146
|
-
//# sourceMappingURL=chunk-
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-AP3T3KMY.js.map
|
|
147
|
+
//# sourceMappingURL=chunk-AP3T3KMY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/InputOTPField/InputOTPField.tsx","../src/components/forms/InputOTPField/InputOTPField.variants.ts"],"names":[],"mappings":"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","file":"chunk-VBJ26PZJ.js","sourcesContent":["\"use client\"\n\nimport type { InputOTPFieldProps } from \"./InputOTPField.types\"\n\nimport * as React from \"react\"\n\nimport { Field, FieldDescription, FieldError, FieldLabel } from \"../Field\"\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"../InputOTP\"\n\n/**\n * InputOTPField - A complete OTP input field with label, description, and error handling\n *\n * @example\n * ```tsx\n * // 6-digit OTP with two groups\n * <InputOTPField\n * label=\"Verification Code\"\n * description=\"Enter the 6-digit code sent to your phone\"\n * digits={6}\n * />\n *\n * // 4-digit OTP with placeholder\n * <InputOTPField\n * label=\"PIN\"\n * digits={4}\n * placeholder=\"0\"\n * />\n *\n * // With error state\n * <InputOTPField\n * label=\"Code\"\n * errorMessage=\"Invalid verification code\"\n * digits={6}\n * />\n * ```\n */\nfunction InputOTPField({\n label,\n description,\n errorMessage,\n required,\n digits = 6,\n placeholder,\n size = \"md\",\n slotSize,\n onChange,\n onComplete,\n value,\n defaultValue,\n disabled,\n pattern,\n className,\n containerClassName,\n}: InputOTPFieldProps) {\n const id = React.useId()\n const inputId = `${id}-input`\n const descriptionId = `${id}-description`\n const errorId = `${id}-error`\n\n const hasError = !!errorMessage\n const resolvedSlotSize = slotSize ?? size\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\")\n\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = React.useCallback(\n (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, onChange]\n )\n\n // Generate slot elements based on digit count\n // Index keys are safe here: OTP slots are static, fixed-length, never reordered\n /* eslint-disable @eslint-react/no-array-index-key */\n const renderSlots = () => {\n const slotProps = {\n size: resolvedSlotSize,\n ...(placeholder ? { placeholder } : {}),\n }\n\n if (digits === 4) {\n return (\n <InputOTPGroup>\n {Array.from({ length: 4 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n )\n }\n\n // 6 digits: two groups of 3 with separator\n return (\n <>\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i + 3} index={i + 3} {...slotProps} />\n ))}\n </InputOTPGroup>\n </>\n )\n }\n /* eslint-enable @eslint-react/no-array-index-key */\n\n return (\n <Field>\n {label && (\n <FieldLabel htmlFor={inputId}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive ml-1\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <InputOTP\n id={inputId}\n maxLength={digits}\n slotSize={resolvedSlotSize}\n onChange={handleChange}\n {...(onComplete ? { onComplete } : {})}\n disabled={disabled}\n value={currentValue}\n {...(pattern ? { pattern } : {})}\n {...(className ? { className } : {})}\n {...(containerClassName ? { containerClassName } : {})}\n aria-describedby={\n hasError ? errorId : (description ? descriptionId : undefined)\n }\n aria-invalid={hasError || undefined}\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Using || intentionally: false || undefined = undefined, false ?? undefined = false\n aria-required={required || undefined}\n >\n {renderSlots()}\n </InputOTP>\n {hasError ? (\n <FieldError id={errorId}>{errorMessage}</FieldError>\n ) : description ? (\n <FieldDescription id={descriptionId}>{description}</FieldDescription>\n ) : null}\n </Field>\n )\n}\n\nexport { InputOTPField }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputOTPField container variant styles using CVA\n * Wraps the Field + InputOTP combination with consistent spacing\n */\nexport const inputOTPFieldVariants = cva(\n \"flex flex-col gap-2\",\n {\n variants: {\n size: {\n sm: \"gap-1.5\",\n md: \"gap-2\",\n lg: \"gap-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField label variant styles using CVA\n */\nexport const inputOTPFieldLabelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField description variant styles using CVA\n */\nexport const inputOTPFieldDescriptionVariants = cva(\n \"text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField error variant styles using CVA\n */\nexport const inputOTPFieldErrorVariants = cva(\n \"text-destructive font-medium\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type InputOTPFieldVariantProps = VariantProps<typeof inputOTPFieldVariants>\nexport type InputOTPFieldLabelVariantProps = VariantProps<typeof inputOTPFieldLabelVariants>\nexport type InputOTPFieldDescriptionVariantProps = VariantProps<typeof inputOTPFieldDescriptionVariants>\nexport type InputOTPFieldErrorVariantProps = VariantProps<typeof inputOTPFieldErrorVariants>\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/InputOTPField/InputOTPField.tsx","../src/components/forms/InputOTPField/InputOTPField.variants.ts"],"names":[],"mappings":"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","file":"chunk-AP3T3KMY.js","sourcesContent":["\"use client\"\n\nimport type { InputOTPFieldProps } from \"./InputOTPField.types\"\n\nimport * as React from \"react\"\n\nimport { Field, FieldDescription, FieldError, FieldLabel } from \"../Field\"\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"../InputOTP\"\n\n/**\n * InputOTPField - A complete OTP input field with label, description, and error handling\n *\n * @example\n * ```tsx\n * // 6-digit OTP with two groups\n * <InputOTPField\n * label=\"Verification Code\"\n * description=\"Enter the 6-digit code sent to your phone\"\n * digits={6}\n * />\n *\n * // 4-digit OTP with placeholder\n * <InputOTPField\n * label=\"PIN\"\n * digits={4}\n * placeholder=\"0\"\n * />\n *\n * // With error state\n * <InputOTPField\n * label=\"Code\"\n * errorMessage=\"Invalid verification code\"\n * digits={6}\n * />\n * ```\n */\nfunction InputOTPField({\n label,\n description,\n errorMessage,\n required,\n digits = 6,\n placeholder,\n size = \"md\",\n slotSize,\n onChange,\n onComplete,\n value,\n defaultValue,\n disabled,\n pattern,\n className,\n containerClassName,\n}: InputOTPFieldProps) {\n const id = React.useId()\n const inputId = `${id}-input`\n const descriptionId = `${id}-description`\n const errorId = `${id}-error`\n\n const hasError = !!errorMessage\n const resolvedSlotSize = slotSize ?? size\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\")\n\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = React.useCallback(\n (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, onChange]\n )\n\n // Generate slot elements based on digit count\n // Index keys are safe here: OTP slots are static, fixed-length, never reordered\n /* eslint-disable @eslint-react/no-array-index-key */\n const renderSlots = () => {\n const slotProps = {\n size: resolvedSlotSize,\n ...(placeholder ? { placeholder } : {}),\n }\n\n if (digits === 4) {\n return (\n <InputOTPGroup>\n {Array.from({ length: 4 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n )\n }\n\n // 6 digits: two groups of 3 with separator\n return (\n <>\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i} index={i} {...slotProps} />\n ))}\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup>\n {Array.from({ length: 3 }).map((_, i) => (\n <InputOTPSlot key={i + 3} index={i + 3} {...slotProps} />\n ))}\n </InputOTPGroup>\n </>\n )\n }\n /* eslint-enable @eslint-react/no-array-index-key */\n\n return (\n <Field>\n {label && (\n <FieldLabel htmlFor={inputId}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive ml-1\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <InputOTP\n id={inputId}\n maxLength={digits}\n slotSize={resolvedSlotSize}\n onChange={handleChange}\n {...(onComplete ? { onComplete } : {})}\n disabled={disabled}\n value={currentValue}\n {...(pattern ? { pattern } : {})}\n {...(className ? { className } : {})}\n {...(containerClassName ? { containerClassName } : {})}\n aria-describedby={\n hasError ? errorId : (description ? descriptionId : undefined)\n }\n aria-invalid={hasError || undefined}\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- Using || intentionally: false || undefined = undefined, false ?? undefined = false\n aria-required={required || undefined}\n >\n {renderSlots()}\n </InputOTP>\n {hasError ? (\n <FieldError id={errorId}>{errorMessage}</FieldError>\n ) : description ? (\n <FieldDescription id={descriptionId}>{description}</FieldDescription>\n ) : null}\n </Field>\n )\n}\n\nexport { InputOTPField }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * InputOTPField container variant styles using CVA\n * Wraps the Field + InputOTP combination with consistent spacing\n */\nexport const inputOTPFieldVariants = cva(\n \"flex flex-col gap-2\",\n {\n variants: {\n size: {\n sm: \"gap-1.5\",\n md: \"gap-2\",\n lg: \"gap-2.5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField label variant styles using CVA\n */\nexport const inputOTPFieldLabelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField description variant styles using CVA\n */\nexport const inputOTPFieldDescriptionVariants = cva(\n \"text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * InputOTPField error variant styles using CVA\n */\nexport const inputOTPFieldErrorVariants = cva(\n \"text-destructive font-medium\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type InputOTPFieldVariantProps = VariantProps<typeof inputOTPFieldVariants>\nexport type InputOTPFieldLabelVariantProps = VariantProps<typeof inputOTPFieldLabelVariants>\nexport type InputOTPFieldDescriptionVariantProps = VariantProps<typeof inputOTPFieldDescriptionVariants>\nexport type InputOTPFieldErrorVariantProps = VariantProps<typeof inputOTPFieldErrorVariants>\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Toggle } from './chunk-UPYT2XM5.js';
|
|
2
|
-
import { Divider } from './chunk-
|
|
2
|
+
import { Divider } from './chunk-MAM6VUKD.js';
|
|
3
3
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
4
4
|
import Highlight from '@tiptap/extension-highlight';
|
|
5
5
|
import Image from '@tiptap/extension-image';
|
|
@@ -808,5 +808,5 @@ var richTextEditorPlaceholderVariants = cva(
|
|
|
808
808
|
);
|
|
809
809
|
|
|
810
810
|
export { RichTextBubbleMenuContent, RichTextEditor, RichTextFloatingMenuContent, RichTextToolbar, richTextEditorBubbleMenuVariants, richTextEditorContentVariants, richTextEditorFloatingMenuVariants, richTextEditorPlaceholderVariants, richTextEditorToolbarButtonVariants, richTextEditorToolbarVariants, richTextEditorVariants };
|
|
811
|
-
//# sourceMappingURL=chunk-
|
|
812
|
-
//# sourceMappingURL=chunk-
|
|
811
|
+
//# sourceMappingURL=chunk-AR7K7Y4L.js.map
|
|
812
|
+
//# sourceMappingURL=chunk-AR7K7Y4L.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/advanced/RichTextEditor/RichTextEditor.tsx","../src/components/advanced/RichTextEditor/RichTextEditor.variants.ts"],"names":[],"mappings":"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","file":"chunk-X3AXEE3S.js","sourcesContent":["import type {\n RichTextBubbleMenuProps,\n RichTextEditorProps,\n RichTextEditorRef,\n RichTextFloatingMenuProps,\n RichTextToolbarProps,\n} from \"./RichTextEditor.types\"\n\nimport Highlight from \"@tiptap/extension-highlight\"\nimport Image from \"@tiptap/extension-image\"\nimport Link from \"@tiptap/extension-link\"\nimport Placeholder from \"@tiptap/extension-placeholder\"\nimport { Table } from \"@tiptap/extension-table\"\nimport { TableCell } from \"@tiptap/extension-table-cell\"\nimport { TableHeader } from \"@tiptap/extension-table-header\"\nimport { TableRow } from \"@tiptap/extension-table-row\"\nimport TaskItem from \"@tiptap/extension-task-item\"\nimport TaskList from \"@tiptap/extension-task-list\"\nimport TextAlign from \"@tiptap/extension-text-align\"\nimport Underline from \"@tiptap/extension-underline\"\nimport { EditorContent, useEditor } from \"@tiptap/react\"\nimport { BubbleMenu, FloatingMenu } from \"@tiptap/react/menus\"\nimport StarterKit from \"@tiptap/starter-kit\"\nimport {\n AlignCenterIcon,\n AlignLeftIcon,\n AlignRightIcon,\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HighlighterIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n MinusIcon,\n QuoteIcon,\n RedoIcon,\n StrikethroughIcon,\n TableIcon,\n UnderlineIcon,\n UndoIcon,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\n\nfunction requestPromptValue(\n promptMessage: string,\n promptForValue?: (currentValue?: string) => null | string,\n currentValue?: string\n) {\n if (promptForValue) {\n return promptForValue(currentValue)\n }\n\n if (typeof window === \"undefined\") {\n return null\n }\n\n return window.prompt(promptMessage, currentValue)\n}\n\nfunction RichTextToolbar({\n className,\n editor,\n promptForImage,\n promptForLink,\n}: RichTextToolbarProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n const addImage = React.useCallback(() => {\n if (!editor) return\n const url = requestPromptValue(\"Image URL\", promptForImage)\n\n if (url) {\n editor.chain().focus().setImage({ src: url }).run()\n }\n }, [editor, promptForImage])\n\n const insertTable = React.useCallback(() => {\n if (!editor) return\n editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()\n }, [editor])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-muted flex flex-wrap items-center gap-1 rounded-t-md border-b p-1 overflow-x-auto sm:overflow-visible\",\n className\n )}\n aria-label=\"Text formatting\"\n data-slot=\"rich-text-toolbar\"\n role=\"toolbar\"\n >\n {/* History */}\n <Toggle\n aria-label=\"Undo\"\n disabled={!editor.can().undo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().undo().run()}\n >\n <UndoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Redo\"\n disabled={!editor.can().redo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().redo().run()}\n >\n <RedoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Headings */}\n <Toggle\n aria-label=\"Heading 1\"\n pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n pressed={editor.isActive(\"heading\", { level: 3 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}\n >\n <Heading3Icon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Lists */}\n <Toggle\n aria-label=\"Bullet list\"\n pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Alignment */}\n <Toggle\n aria-label=\"Align left\"\n pressed={editor.isActive({ textAlign: \"left\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"left\").run()}\n >\n <AlignLeftIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align center\"\n pressed={editor.isActive({ textAlign: \"center\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"center\").run()}\n >\n <AlignCenterIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align right\"\n pressed={editor.isActive({ textAlign: \"right\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"right\").run()}\n >\n <AlignRightIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Horizontal rule\"\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setHorizontalRule().run()}\n >\n <MinusIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Media & Links */}\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert image\"\n pressed={false}\n size=\"sm\"\n onPressedChange={addImage}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert table\"\n pressed={false}\n size=\"sm\"\n onPressedChange={insertTable}\n >\n <TableIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextBubbleMenuContent({\n className,\n editor,\n promptForLink,\n}: RichTextBubbleMenuProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Selection formatting\"\n data-slot=\"rich-text-bubble-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon className=\"size-4\" />\n </Toggle>\n <Divider className=\"mx-1 h-4\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextFloatingMenuContent({ className, editor }: RichTextFloatingMenuProps) {\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Block formatting\"\n data-slot=\"rich-text-floating-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Heading 1\"\n pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Bullet list\"\n pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextEditor({\n \"aria-label\": ariaLabel = \"Rich text editor\",\n autofocus = false,\n className,\n content,\n defaultContent,\n editable = true,\n extensions = [],\n onBlur,\n onChange,\n onFocus,\n onUpdate,\n placeholder = \"Start writing...\",\n promptForImage,\n promptForLink,\n ref,\n showBubbleMenu = true,\n showFloatingMenu = false,\n showToolbar = true,\n toolbarPosition = \"top\",\n ...props\n}: RichTextEditorProps & { ref?: React.Ref<RichTextEditorRef> }) {\n const editor = useEditor({\n autofocus,\n content: content ?? defaultContent ?? \"\",\n editable,\n editorProps: {\n attributes: {\n \"aria-label\": ariaLabel,\n role: \"textbox\",\n },\n },\n extensions: [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3, 4, 5, 6],\n },\n link: false,\n underline: false,\n }),\n Placeholder.configure({\n placeholder,\n }),\n Link.configure({\n HTMLAttributes: {\n class: \"text-primary underline underline-offset-4 cursor-pointer\",\n },\n openOnClick: false,\n }),\n Image.configure({\n HTMLAttributes: {\n class: \"max-w-full h-auto rounded-md\",\n },\n }),\n Underline,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Highlight.configure({\n HTMLAttributes: {\n class: \"bg-yellow-200 dark:bg-yellow-800\",\n },\n multicolor: false,\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Table.configure({\n HTMLAttributes: {\n class: \"border-collapse table-auto w-full\",\n },\n resizable: true,\n }),\n TableRow,\n TableCell.configure({\n HTMLAttributes: {\n class: \"border border-border p-2\",\n },\n }),\n TableHeader.configure({\n HTMLAttributes: {\n class: \"border border-border p-2 bg-muted font-semibold\",\n },\n }),\n ...extensions,\n ],\n onBlur: ({ editor: currentEditor }) => {\n onBlur?.({ editor: currentEditor })\n },\n onFocus: ({ editor: currentEditor }) => {\n onFocus?.({ editor: currentEditor })\n },\n onUpdate: ({ editor: currentEditor }) => {\n onChange?.(currentEditor.getJSON())\n onUpdate?.({ editor: currentEditor })\n },\n })\n\n // Sync content prop changes\n // Note: useEditor returns Editor | null, but ESLint infers it as always truthy after initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n React.useEffect(() => {\n if (editor && content !== undefined) {\n const currentContent = editor.getJSON()\n const newContent = typeof content === \"string\" ? content : JSON.stringify(content)\n const currentContentStr = JSON.stringify(currentContent)\n\n if (newContent !== currentContentStr) {\n editor.commands.setContent(content)\n }\n }\n }, [editor, content])\n\n // Sync editable prop\n React.useEffect(() => {\n if (editor) {\n editor.setEditable(editable)\n }\n }, [editor, editable])\n /* eslint-enable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n\n // Expose ref methods - editor can be null before initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition */\n React.useImperativeHandle(ref, () => ({\n blur: () => {\n editor?.commands.blur()\n },\n editor,\n focus: () => {\n editor?.commands.focus()\n },\n getHTML: () => editor?.getHTML() ?? \"\",\n getJSON: () => editor?.getJSON() ?? { type: \"doc\", content: [] },\n getText: () => editor?.getText() ?? \"\",\n setContent: (newContent) => {\n editor?.commands.setContent(newContent)\n },\n }))\n /* eslint-enable @typescript-eslint/no-unnecessary-condition */\n\n const showTopToolbar = showToolbar && toolbarPosition === \"top\"\n const showBottomToolbar = showToolbar && toolbarPosition === \"bottom\"\n\n return (\n <div\n className={cn(\n \"bg-background text-foreground border rounded-md w-full\",\n className\n )}\n data-slot=\"rich-text-editor\"\n style={{ width: \"100%\", ...props.style }}\n {...props}\n >\n {showTopToolbar && (\n <RichTextToolbar\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n\n <div className=\"relative w-full\">\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showBubbleMenu && editor && (\n <BubbleMenu\n className=\"rich-text-bubble-menu\"\n editor={editor}\n >\n <RichTextBubbleMenuContent\n editor={editor}\n promptForLink={promptForLink}\n />\n </BubbleMenu>\n )}\n\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showFloatingMenu && editor && (\n <FloatingMenu\n className=\"rich-text-floating-menu\"\n editor={editor}\n >\n <RichTextFloatingMenuContent editor={editor} />\n </FloatingMenu>\n )}\n\n <EditorContent\n className={cn(\n \"prose prose-sm dark:prose-invert max-w-none w-full\",\n \"focus-within:outline-none\",\n \"[&_.ProseMirror]:min-h-36 [&_.ProseMirror]:p-4 [&_.ProseMirror]:focus:outline-none\",\n \"[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)] [&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none\",\n \"[&_.ProseMirror_ul[data-type='taskList']]:list-none [&_.ProseMirror_ul[data-type='taskList']]:pl-0\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li]:flex [&_.ProseMirror_ul[data-type='taskList']_li]:items-start [&_.ProseMirror_ul[data-type='taskList']_li]:gap-2\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li_input]:mt-1\"\n )}\n editor={editor}\n style={{ width: \"100%\", minWidth: \"100%\", maxWidth: \"none\" }}\n />\n </div>\n\n {showBottomToolbar && (\n <RichTextToolbar\n className=\"rounded-t-none rounded-b-md border-t border-b-0\"\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n </div>\n )\n}\n\nexport {\n RichTextBubbleMenuContent as RichTextBubbleMenu,\n RichTextEditor,\n RichTextFloatingMenuContent as RichTextFloatingMenu,\n RichTextToolbar,\n}\n","import { cva } from \"class-variance-authority\"\n\n/**\n * RichTextEditor container variants\n */\nexport const richTextEditorVariants = cva(\n \"relative flex flex-col rounded-lg border border-border bg-background overflow-hidden\",\n {\n variants: {\n size: {\n sm: \"min-h-52\",\n md: \"min-h-72\",\n lg: \"min-h-96\",\n full: \"h-full min-h-72\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n focused: {\n true: \"ring-2 ring-ring ring-offset-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n focused: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar variants\n */\nexport const richTextEditorToolbarVariants = cva(\n \"flex items-center gap-1 flex-wrap border-b border-border bg-muted/30 p-2\",\n {\n variants: {\n position: {\n top: \"order-first\",\n bottom: \"order-last border-b-0 border-t\",\n floating: \"absolute top-2 left-2 right-2 z-10 rounded-md shadow-md border bg-background\",\n },\n compact: {\n true: \"p-1 gap-0.5\",\n false: \"p-2 gap-1\",\n },\n },\n defaultVariants: {\n position: \"top\",\n compact: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar button variants\n */\nexport const richTextEditorToolbarButtonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-accent hover:text-accent-foreground\",\n active: \"bg-accent text-accent-foreground\",\n },\n size: {\n sm: \"h-7 w-7\",\n md: \"h-8 w-8\",\n lg: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * RichTextEditor content area variants\n */\nexport const richTextEditorContentVariants = cva(\n \"flex-1 overflow-auto p-4 prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n {\n variants: {\n editable: {\n true: \"\",\n false: \"pointer-events-none\",\n },\n },\n defaultVariants: {\n editable: true,\n },\n }\n)\n\n/**\n * RichTextEditor bubble menu variants\n */\nexport const richTextEditorBubbleMenuVariants = cva(\n \"flex items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor floating menu variants\n */\nexport const richTextEditorFloatingMenuVariants = cva(\n \"flex items-center gap-1 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor placeholder variants\n */\nexport const richTextEditorPlaceholderVariants = cva(\n \"absolute top-4 left-4 text-muted-foreground pointer-events-none select-none\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/RichTextEditor/RichTextEditor.tsx","../src/components/advanced/RichTextEditor/RichTextEditor.variants.ts"],"names":[],"mappings":"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","file":"chunk-AR7K7Y4L.js","sourcesContent":["import type {\n RichTextBubbleMenuProps,\n RichTextEditorProps,\n RichTextEditorRef,\n RichTextFloatingMenuProps,\n RichTextToolbarProps,\n} from \"./RichTextEditor.types\"\n\nimport Highlight from \"@tiptap/extension-highlight\"\nimport Image from \"@tiptap/extension-image\"\nimport Link from \"@tiptap/extension-link\"\nimport Placeholder from \"@tiptap/extension-placeholder\"\nimport { Table } from \"@tiptap/extension-table\"\nimport { TableCell } from \"@tiptap/extension-table-cell\"\nimport { TableHeader } from \"@tiptap/extension-table-header\"\nimport { TableRow } from \"@tiptap/extension-table-row\"\nimport TaskItem from \"@tiptap/extension-task-item\"\nimport TaskList from \"@tiptap/extension-task-list\"\nimport TextAlign from \"@tiptap/extension-text-align\"\nimport Underline from \"@tiptap/extension-underline\"\nimport { EditorContent, useEditor } from \"@tiptap/react\"\nimport { BubbleMenu, FloatingMenu } from \"@tiptap/react/menus\"\nimport StarterKit from \"@tiptap/starter-kit\"\nimport {\n AlignCenterIcon,\n AlignLeftIcon,\n AlignRightIcon,\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HighlighterIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n MinusIcon,\n QuoteIcon,\n RedoIcon,\n StrikethroughIcon,\n TableIcon,\n UnderlineIcon,\n UndoIcon,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\n\nfunction requestPromptValue(\n promptMessage: string,\n promptForValue?: (currentValue?: string) => null | string,\n currentValue?: string\n) {\n if (promptForValue) {\n return promptForValue(currentValue)\n }\n\n if (typeof window === \"undefined\") {\n return null\n }\n\n return window.prompt(promptMessage, currentValue)\n}\n\nfunction RichTextToolbar({\n className,\n editor,\n promptForImage,\n promptForLink,\n}: RichTextToolbarProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n const addImage = React.useCallback(() => {\n if (!editor) return\n const url = requestPromptValue(\"Image URL\", promptForImage)\n\n if (url) {\n editor.chain().focus().setImage({ src: url }).run()\n }\n }, [editor, promptForImage])\n\n const insertTable = React.useCallback(() => {\n if (!editor) return\n editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()\n }, [editor])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-muted flex flex-wrap items-center gap-1 rounded-t-md border-b p-1 overflow-x-auto sm:overflow-visible\",\n className\n )}\n aria-label=\"Text formatting\"\n data-slot=\"rich-text-toolbar\"\n role=\"toolbar\"\n >\n {/* History */}\n <Toggle\n aria-label=\"Undo\"\n disabled={!editor.can().undo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().undo().run()}\n >\n <UndoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Redo\"\n disabled={!editor.can().redo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().redo().run()}\n >\n <RedoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Headings */}\n <Toggle\n aria-label=\"Heading 1\"\n pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n pressed={editor.isActive(\"heading\", { level: 3 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}\n >\n <Heading3Icon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Lists */}\n <Toggle\n aria-label=\"Bullet list\"\n pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Alignment */}\n <Toggle\n aria-label=\"Align left\"\n pressed={editor.isActive({ textAlign: \"left\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"left\").run()}\n >\n <AlignLeftIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align center\"\n pressed={editor.isActive({ textAlign: \"center\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"center\").run()}\n >\n <AlignCenterIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align right\"\n pressed={editor.isActive({ textAlign: \"right\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"right\").run()}\n >\n <AlignRightIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Horizontal rule\"\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setHorizontalRule().run()}\n >\n <MinusIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Media & Links */}\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert image\"\n pressed={false}\n size=\"sm\"\n onPressedChange={addImage}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert table\"\n pressed={false}\n size=\"sm\"\n onPressedChange={insertTable}\n >\n <TableIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextBubbleMenuContent({\n className,\n editor,\n promptForLink,\n}: RichTextBubbleMenuProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Selection formatting\"\n data-slot=\"rich-text-bubble-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon className=\"size-4\" />\n </Toggle>\n <Divider className=\"mx-1 h-4\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextFloatingMenuContent({ className, editor }: RichTextFloatingMenuProps) {\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Block formatting\"\n data-slot=\"rich-text-floating-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Heading 1\"\n pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Bullet list\"\n pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextEditor({\n \"aria-label\": ariaLabel = \"Rich text editor\",\n autofocus = false,\n className,\n content,\n defaultContent,\n editable = true,\n extensions = [],\n onBlur,\n onChange,\n onFocus,\n onUpdate,\n placeholder = \"Start writing...\",\n promptForImage,\n promptForLink,\n ref,\n showBubbleMenu = true,\n showFloatingMenu = false,\n showToolbar = true,\n toolbarPosition = \"top\",\n ...props\n}: RichTextEditorProps & { ref?: React.Ref<RichTextEditorRef> }) {\n const editor = useEditor({\n autofocus,\n content: content ?? defaultContent ?? \"\",\n editable,\n editorProps: {\n attributes: {\n \"aria-label\": ariaLabel,\n role: \"textbox\",\n },\n },\n extensions: [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3, 4, 5, 6],\n },\n link: false,\n underline: false,\n }),\n Placeholder.configure({\n placeholder,\n }),\n Link.configure({\n HTMLAttributes: {\n class: \"text-primary underline underline-offset-4 cursor-pointer\",\n },\n openOnClick: false,\n }),\n Image.configure({\n HTMLAttributes: {\n class: \"max-w-full h-auto rounded-md\",\n },\n }),\n Underline,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Highlight.configure({\n HTMLAttributes: {\n class: \"bg-yellow-200 dark:bg-yellow-800\",\n },\n multicolor: false,\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Table.configure({\n HTMLAttributes: {\n class: \"border-collapse table-auto w-full\",\n },\n resizable: true,\n }),\n TableRow,\n TableCell.configure({\n HTMLAttributes: {\n class: \"border border-border p-2\",\n },\n }),\n TableHeader.configure({\n HTMLAttributes: {\n class: \"border border-border p-2 bg-muted font-semibold\",\n },\n }),\n ...extensions,\n ],\n onBlur: ({ editor: currentEditor }) => {\n onBlur?.({ editor: currentEditor })\n },\n onFocus: ({ editor: currentEditor }) => {\n onFocus?.({ editor: currentEditor })\n },\n onUpdate: ({ editor: currentEditor }) => {\n onChange?.(currentEditor.getJSON())\n onUpdate?.({ editor: currentEditor })\n },\n })\n\n // Sync content prop changes\n // Note: useEditor returns Editor | null, but ESLint infers it as always truthy after initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n React.useEffect(() => {\n if (editor && content !== undefined) {\n const currentContent = editor.getJSON()\n const newContent = typeof content === \"string\" ? content : JSON.stringify(content)\n const currentContentStr = JSON.stringify(currentContent)\n\n if (newContent !== currentContentStr) {\n editor.commands.setContent(content)\n }\n }\n }, [editor, content])\n\n // Sync editable prop\n React.useEffect(() => {\n if (editor) {\n editor.setEditable(editable)\n }\n }, [editor, editable])\n /* eslint-enable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n\n // Expose ref methods - editor can be null before initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition */\n React.useImperativeHandle(ref, () => ({\n blur: () => {\n editor?.commands.blur()\n },\n editor,\n focus: () => {\n editor?.commands.focus()\n },\n getHTML: () => editor?.getHTML() ?? \"\",\n getJSON: () => editor?.getJSON() ?? { type: \"doc\", content: [] },\n getText: () => editor?.getText() ?? \"\",\n setContent: (newContent) => {\n editor?.commands.setContent(newContent)\n },\n }))\n /* eslint-enable @typescript-eslint/no-unnecessary-condition */\n\n const showTopToolbar = showToolbar && toolbarPosition === \"top\"\n const showBottomToolbar = showToolbar && toolbarPosition === \"bottom\"\n\n return (\n <div\n className={cn(\n \"bg-background text-foreground border rounded-md w-full\",\n className\n )}\n data-slot=\"rich-text-editor\"\n style={{ width: \"100%\", ...props.style }}\n {...props}\n >\n {showTopToolbar && (\n <RichTextToolbar\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n\n <div className=\"relative w-full\">\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showBubbleMenu && editor && (\n <BubbleMenu\n className=\"rich-text-bubble-menu\"\n editor={editor}\n >\n <RichTextBubbleMenuContent\n editor={editor}\n promptForLink={promptForLink}\n />\n </BubbleMenu>\n )}\n\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showFloatingMenu && editor && (\n <FloatingMenu\n className=\"rich-text-floating-menu\"\n editor={editor}\n >\n <RichTextFloatingMenuContent editor={editor} />\n </FloatingMenu>\n )}\n\n <EditorContent\n className={cn(\n \"prose prose-sm dark:prose-invert max-w-none w-full\",\n \"focus-within:outline-none\",\n \"[&_.ProseMirror]:min-h-36 [&_.ProseMirror]:p-4 [&_.ProseMirror]:focus:outline-none\",\n \"[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)] [&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none\",\n \"[&_.ProseMirror_ul[data-type='taskList']]:list-none [&_.ProseMirror_ul[data-type='taskList']]:pl-0\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li]:flex [&_.ProseMirror_ul[data-type='taskList']_li]:items-start [&_.ProseMirror_ul[data-type='taskList']_li]:gap-2\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li_input]:mt-1\"\n )}\n editor={editor}\n style={{ width: \"100%\", minWidth: \"100%\", maxWidth: \"none\" }}\n />\n </div>\n\n {showBottomToolbar && (\n <RichTextToolbar\n className=\"rounded-t-none rounded-b-md border-t border-b-0\"\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n </div>\n )\n}\n\nexport {\n RichTextBubbleMenuContent as RichTextBubbleMenu,\n RichTextEditor,\n RichTextFloatingMenuContent as RichTextFloatingMenu,\n RichTextToolbar,\n}\n","import { cva } from \"class-variance-authority\"\n\n/**\n * RichTextEditor container variants\n */\nexport const richTextEditorVariants = cva(\n \"relative flex flex-col rounded-lg border border-border bg-background overflow-hidden\",\n {\n variants: {\n size: {\n sm: \"min-h-52\",\n md: \"min-h-72\",\n lg: \"min-h-96\",\n full: \"h-full min-h-72\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n focused: {\n true: \"ring-2 ring-ring ring-offset-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n focused: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar variants\n */\nexport const richTextEditorToolbarVariants = cva(\n \"flex items-center gap-1 flex-wrap border-b border-border bg-muted/30 p-2\",\n {\n variants: {\n position: {\n top: \"order-first\",\n bottom: \"order-last border-b-0 border-t\",\n floating: \"absolute top-2 left-2 right-2 z-10 rounded-md shadow-md border bg-background\",\n },\n compact: {\n true: \"p-1 gap-0.5\",\n false: \"p-2 gap-1\",\n },\n },\n defaultVariants: {\n position: \"top\",\n compact: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar button variants\n */\nexport const richTextEditorToolbarButtonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-accent hover:text-accent-foreground\",\n active: \"bg-accent text-accent-foreground\",\n },\n size: {\n sm: \"h-7 w-7\",\n md: \"h-8 w-8\",\n lg: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * RichTextEditor content area variants\n */\nexport const richTextEditorContentVariants = cva(\n \"flex-1 overflow-auto p-4 prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n {\n variants: {\n editable: {\n true: \"\",\n false: \"pointer-events-none\",\n },\n },\n defaultVariants: {\n editable: true,\n },\n }\n)\n\n/**\n * RichTextEditor bubble menu variants\n */\nexport const richTextEditorBubbleMenuVariants = cva(\n \"flex items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor floating menu variants\n */\nexport const richTextEditorFloatingMenuVariants = cva(\n \"flex items-center gap-1 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor placeholder variants\n */\nexport const richTextEditorPlaceholderVariants = cva(\n \"absolute top-4 left-4 text-muted-foreground pointer-events-none select-none\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n"]}
|
|
@@ -19,7 +19,7 @@ var colorPickerTriggerVariants = cva(
|
|
|
19
19
|
variants: {
|
|
20
20
|
size: {
|
|
21
21
|
sm: "h-9 px-2.5 py-1 text-sm",
|
|
22
|
-
md: "h-
|
|
22
|
+
md: "h-[var(--color-picker-trigger-size)] px-3 py-1 text-base md:text-sm",
|
|
23
23
|
lg: "h-11 px-3.5 py-1.5 text-base"
|
|
24
24
|
},
|
|
25
25
|
variant: {
|
|
@@ -45,7 +45,7 @@ var colorPickerSwatchVariants = cva(
|
|
|
45
45
|
variants: {
|
|
46
46
|
size: {
|
|
47
47
|
sm: "size-5",
|
|
48
|
-
md: "size-
|
|
48
|
+
md: "size-[var(--color-picker-swatch-size)]",
|
|
49
49
|
lg: "size-7"
|
|
50
50
|
}
|
|
51
51
|
},
|
|
@@ -639,5 +639,5 @@ function ColorPicker({
|
|
|
639
639
|
}
|
|
640
640
|
|
|
641
641
|
export { ColorPicker, colorPickerPreviewVariants, colorPickerSwatchVariants, colorPickerTriggerVariants };
|
|
642
|
-
//# sourceMappingURL=chunk-
|
|
643
|
-
//# sourceMappingURL=chunk-
|
|
642
|
+
//# sourceMappingURL=chunk-ARYBNQNS.js.map
|
|
643
|
+
//# sourceMappingURL=chunk-ARYBNQNS.js.map
|