@mieweb/ui 0.2.2 → 0.3.0-dev.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/dist/ag-grid.cjs +37 -26
- package/dist/ag-grid.cjs.map +1 -1
- package/dist/ag-grid.js +33 -22
- package/dist/ag-grid.js.map +1 -1
- package/dist/brands/bluehive.cjs +3 -3
- package/dist/brands/bluehive.css +5 -5
- package/dist/brands/bluehive.js +1 -1
- package/dist/brands/index.cjs +29 -29
- package/dist/brands/index.js +8 -8
- package/dist/brands/mieweb.css +5 -5
- package/dist/brands/ozwell.cjs +2 -2
- package/dist/brands/ozwell.css +5 -5
- package/dist/brands/ozwell.js +1 -1
- package/dist/brands/types.cjs +4 -4
- package/dist/brands/types.d.cts +14 -8
- package/dist/brands/types.d.ts +14 -8
- package/dist/brands/types.js +1 -1
- package/dist/brands/waggleline.css +1 -1
- package/dist/brands/webchart.css +5 -5
- package/dist/{chunk-QDGZBDBI.cjs → chunk-2LF7PSSX.cjs} +3 -3
- package/dist/{chunk-QDGZBDBI.cjs.map → chunk-2LF7PSSX.cjs.map} +1 -1
- package/dist/{chunk-OWPWP46L.js → chunk-2NTYAALC.js} +3 -3
- package/dist/{chunk-OWPWP46L.js.map → chunk-2NTYAALC.js.map} +1 -1
- package/dist/{chunk-NAATBUHR.cjs → chunk-2VCAWAPC.cjs} +45 -20
- package/dist/chunk-2VCAWAPC.cjs.map +1 -0
- package/dist/{chunk-N3QTYHRZ.cjs → chunk-3GGET5LK.cjs} +40 -22
- package/dist/chunk-3GGET5LK.cjs.map +1 -0
- package/dist/{chunk-QL2YTVTR.js → chunk-43GBCUSQ.js} +8 -3
- package/dist/chunk-43GBCUSQ.js.map +1 -0
- package/dist/chunk-4DMZAVB2.js +334 -0
- package/dist/chunk-4DMZAVB2.js.map +1 -0
- package/dist/{chunk-EKIQE524.cjs → chunk-4FALCEJI.cjs} +3 -2
- package/dist/chunk-4FALCEJI.cjs.map +1 -0
- package/dist/chunk-4O3WJY4C.cjs +615 -0
- package/dist/chunk-4O3WJY4C.cjs.map +1 -0
- package/dist/{chunk-6OCIIIAI.js → chunk-4Z6ZZKIY.js} +40 -22
- package/dist/chunk-4Z6ZZKIY.js.map +1 -0
- package/dist/{chunk-QUA7WVHK.cjs → chunk-4ZU53GNR.cjs} +6 -14
- package/dist/{chunk-QUA7WVHK.cjs.map → chunk-4ZU53GNR.cjs.map} +1 -1
- package/dist/{chunk-S6UNPMAS.cjs → chunk-66S4PT6C.cjs} +3 -3
- package/dist/{chunk-S6UNPMAS.cjs.map → chunk-66S4PT6C.cjs.map} +1 -1
- package/dist/{chunk-4AWW5WPF.js → chunk-6LFG4JFF.js} +51 -24
- package/dist/chunk-6LFG4JFF.js.map +1 -0
- package/dist/chunk-7BARESXI.cjs +353 -0
- package/dist/chunk-7BARESXI.cjs.map +1 -0
- package/dist/{chunk-PEH4ZOEM.cjs → chunk-A2QVQF54.cjs} +12 -6
- package/dist/chunk-A2QVQF54.cjs.map +1 -0
- package/dist/{chunk-I7L6CQXR.cjs → chunk-AWUADXYI.cjs} +58 -31
- package/dist/chunk-AWUADXYI.cjs.map +1 -0
- package/dist/{chunk-PEFJAWNR.cjs → chunk-BWYYA3LQ.cjs} +26 -10
- package/dist/chunk-BWYYA3LQ.cjs.map +1 -0
- package/dist/chunk-C4QQAUYN.js +588 -0
- package/dist/chunk-C4QQAUYN.js.map +1 -0
- package/dist/chunk-CJQXWFIW.js +829 -0
- package/dist/chunk-CJQXWFIW.js.map +1 -0
- package/dist/{chunk-KWDTTGH2.js → chunk-CVF4HRWL.js} +5 -5
- package/dist/{chunk-KWDTTGH2.js.map → chunk-CVF4HRWL.js.map} +1 -1
- package/dist/{chunk-WH6I7CMP.cjs → chunk-CW75IKA6.cjs} +27 -2
- package/dist/chunk-CW75IKA6.cjs.map +1 -0
- package/dist/{chunk-3NJ72QU6.js → chunk-DCER2QQB.js} +3 -2
- package/dist/chunk-DCER2QQB.js.map +1 -0
- package/dist/{chunk-JYMQJ32S.cjs → chunk-DEZ7XSTG.cjs} +9 -5
- package/dist/chunk-DEZ7XSTG.cjs.map +1 -0
- package/dist/{chunk-QYJ7RQJ2.cjs → chunk-DFCZPVG4.cjs} +84 -38
- package/dist/chunk-DFCZPVG4.cjs.map +1 -0
- package/dist/{chunk-AWIULTJW.js → chunk-DNPRRYPQ.js} +18 -3
- package/dist/chunk-DNPRRYPQ.js.map +1 -0
- package/dist/{chunk-SSKI6VTW.cjs → chunk-E35GUUTC.cjs} +23 -4
- package/dist/chunk-E35GUUTC.cjs.map +1 -0
- package/dist/{chunk-B5364UWR.cjs → chunk-EAXY5X33.cjs} +6 -6
- package/dist/{chunk-B5364UWR.cjs.map → chunk-EAXY5X33.cjs.map} +1 -1
- package/dist/{chunk-53K3KWXQ.cjs → chunk-EUUQVDXX.cjs} +168 -138
- package/dist/chunk-EUUQVDXX.cjs.map +1 -0
- package/dist/{chunk-5UUL5EEO.cjs → chunk-FRT6RQND.cjs} +181 -128
- package/dist/chunk-FRT6RQND.cjs.map +1 -0
- package/dist/{chunk-R4DM4635.cjs → chunk-FSBFQBNE.cjs} +86 -2
- package/dist/chunk-FSBFQBNE.cjs.map +1 -0
- package/dist/{chunk-6Q4SU72T.js → chunk-FYEK4RZ3.js} +50 -11
- package/dist/chunk-FYEK4RZ3.js.map +1 -0
- package/dist/{chunk-UZUBLXVC.js → chunk-FZJBFJJR.js} +3 -2
- package/dist/chunk-FZJBFJJR.js.map +1 -0
- package/dist/{chunk-UHSPAFY6.js → chunk-GFZNSSSN.js} +3 -3
- package/dist/{chunk-UHSPAFY6.js.map → chunk-GFZNSSSN.js.map} +1 -1
- package/dist/chunk-GOKC4CCZ.cjs +384 -0
- package/dist/chunk-GOKC4CCZ.cjs.map +1 -0
- package/dist/{chunk-Z3TFPXVN.cjs → chunk-GXQFRLTN.cjs} +3 -3
- package/dist/{chunk-Z3TFPXVN.cjs.map → chunk-GXQFRLTN.cjs.map} +1 -1
- package/dist/{chunk-B3L43JGH.js → chunk-HEH3QXOQ.js} +26 -10
- package/dist/chunk-HEH3QXOQ.js.map +1 -0
- package/dist/{chunk-TA6FVVCM.js → chunk-I56VBDSC.js} +3 -3
- package/dist/{chunk-TA6FVVCM.js.map → chunk-I56VBDSC.js.map} +1 -1
- package/dist/{chunk-4DJNHPHB.js → chunk-IGWABMSM.js} +3 -3
- package/dist/{chunk-4DJNHPHB.js.map → chunk-IGWABMSM.js.map} +1 -1
- package/dist/{chunk-SWMRCGL4.cjs → chunk-IKMR2ADM.cjs} +5 -4
- package/dist/chunk-IKMR2ADM.cjs.map +1 -0
- package/dist/{chunk-HRA4FUO6.cjs → chunk-IWU7H3YS.cjs} +79 -52
- package/dist/chunk-IWU7H3YS.cjs.map +1 -0
- package/dist/{chunk-ONWOB76P.js → chunk-J3BU3JBX.js} +33 -14
- package/dist/chunk-J3BU3JBX.js.map +1 -0
- package/dist/{chunk-FFJVCQ5R.cjs → chunk-J644FU54.cjs} +49 -19
- package/dist/chunk-J644FU54.cjs.map +1 -0
- package/dist/chunk-JBB25LFB.js +359 -0
- package/dist/chunk-JBB25LFB.js.map +1 -0
- package/dist/{chunk-VDMQCSXT.cjs → chunk-JHPFOG2N.cjs} +4 -4
- package/dist/{chunk-VDMQCSXT.cjs.map → chunk-JHPFOG2N.cjs.map} +1 -1
- package/dist/{chunk-RYQ5NEKH.js → chunk-JV7UJGBM.js} +6 -6
- package/dist/{chunk-RYQ5NEKH.js.map → chunk-JV7UJGBM.js.map} +1 -1
- package/dist/{chunk-C6MDPPPL.js → chunk-JW5GWKV7.js} +3 -3
- package/dist/{chunk-C6MDPPPL.js.map → chunk-JW5GWKV7.js.map} +1 -1
- package/dist/{chunk-XXOBTAKA.js → chunk-JWUVVPKM.js} +79 -52
- package/dist/chunk-JWUVVPKM.js.map +1 -0
- package/dist/{chunk-EYH7OUX5.js → chunk-JYAWYBA3.js} +23 -4
- package/dist/chunk-JYAWYBA3.js.map +1 -0
- package/dist/{chunk-5T3AWNHG.cjs → chunk-K7IGBNZA.cjs} +70 -39
- package/dist/chunk-K7IGBNZA.cjs.map +1 -0
- package/dist/{chunk-BTJHYGPI.cjs → chunk-L7YQBSEL.cjs} +14 -4
- package/dist/chunk-L7YQBSEL.cjs.map +1 -0
- package/dist/chunk-LEMY57MI.js +3 -0
- package/dist/{chunk-Y22SOAJM.js.map → chunk-LEMY57MI.js.map} +1 -1
- package/dist/{chunk-AU5ADTYD.cjs → chunk-MIGLLTTD.cjs} +50 -11
- package/dist/chunk-MIGLLTTD.cjs.map +1 -0
- package/dist/{chunk-VV4N4WY6.cjs → chunk-MSRU3XBH.cjs} +61 -35
- package/dist/chunk-MSRU3XBH.cjs.map +1 -0
- package/dist/{chunk-JFAXLE2J.js → chunk-MUYTGWGE.js} +9 -5
- package/dist/chunk-MUYTGWGE.js.map +1 -0
- package/dist/{chunk-B26RIQ5R.js → chunk-MV3MTHWQ.js} +6 -2
- package/dist/chunk-MV3MTHWQ.js.map +1 -0
- package/dist/{chunk-VZUVYJFU.cjs → chunk-MXQNNKPX.cjs} +17 -17
- package/dist/{chunk-VZUVYJFU.cjs.map → chunk-MXQNNKPX.cjs.map} +1 -1
- package/dist/{chunk-PF3XWKE5.cjs → chunk-NIEIRA5A.cjs} +33 -14
- package/dist/chunk-NIEIRA5A.cjs.map +1 -0
- package/dist/{chunk-RRQGH7C5.cjs → chunk-NVHAQOHH.cjs} +8 -3
- package/dist/chunk-NVHAQOHH.cjs.map +1 -0
- package/dist/chunk-OGOFYY22.js +247 -0
- package/dist/chunk-OGOFYY22.js.map +1 -0
- package/dist/{chunk-OT36EMM5.js → chunk-OKBR6PX4.js} +5 -4
- package/dist/chunk-OKBR6PX4.js.map +1 -0
- package/dist/{chunk-LZEY55QZ.cjs → chunk-OYKS2JBB.cjs} +18 -3
- package/dist/chunk-OYKS2JBB.cjs.map +1 -0
- package/dist/{chunk-4LTN2LEN.js → chunk-PSTGFXQG.js} +3 -3
- package/dist/{chunk-4LTN2LEN.js.map → chunk-PSTGFXQG.js.map} +1 -1
- package/dist/{chunk-OW2BWGST.js → chunk-PU6ZC4GI.js} +48 -31
- package/dist/chunk-PU6ZC4GI.js.map +1 -0
- package/dist/chunk-PVUDXJAI.js +124 -0
- package/dist/chunk-PVUDXJAI.js.map +1 -0
- package/dist/{chunk-EF46XW4Z.cjs → chunk-Q2EWNXIB.cjs} +161 -67
- package/dist/chunk-Q2EWNXIB.cjs.map +1 -0
- package/dist/{chunk-CP7NPDQW.js → chunk-Q7NBJFEB.js} +87 -4
- package/dist/chunk-Q7NBJFEB.js.map +1 -0
- package/dist/{chunk-ORUPC5TV.cjs → chunk-QASIWBXU.cjs} +9 -5
- package/dist/chunk-QASIWBXU.cjs.map +1 -0
- package/dist/{chunk-4LNS5QDP.cjs → chunk-QITBJX4A.cjs} +3 -3
- package/dist/{chunk-4LNS5QDP.cjs.map → chunk-QITBJX4A.cjs.map} +1 -1
- package/dist/{chunk-KEIA2G6O.cjs → chunk-QO6U5VOT.cjs} +3 -3
- package/dist/{chunk-KEIA2G6O.cjs.map → chunk-QO6U5VOT.cjs.map} +1 -1
- package/dist/{chunk-XVZ4SLQB.js → chunk-QVJBUWJQ.js} +70 -39
- package/dist/chunk-QVJBUWJQ.js.map +1 -0
- package/dist/{chunk-QSMMFATL.js → chunk-R25H4N4Z.js} +181 -128
- package/dist/chunk-R25H4N4Z.js.map +1 -0
- package/dist/{chunk-TPGT236K.js → chunk-RC2YMOMS.js} +26 -3
- package/dist/chunk-RC2YMOMS.js.map +1 -0
- package/dist/{chunk-BXK5TNJE.cjs → chunk-RH43XBNV.cjs} +3 -2
- package/dist/chunk-RH43XBNV.cjs.map +1 -0
- package/dist/{chunk-4MHTSFPX.js → chunk-TGCY5FNL.js} +45 -20
- package/dist/chunk-TGCY5FNL.js.map +1 -0
- package/dist/{chunk-QZLRB3UG.js → chunk-TRZXK57D.js} +168 -138
- package/dist/chunk-TRZXK57D.js.map +1 -0
- package/dist/{chunk-B7YGVKTE.cjs → chunk-U3ABLVYH.cjs} +51 -24
- package/dist/chunk-U3ABLVYH.cjs.map +1 -0
- package/dist/chunk-VACI5SP7.cjs +270 -0
- package/dist/chunk-VACI5SP7.cjs.map +1 -0
- package/dist/{chunk-GV5JQBPX.js → chunk-VCO2IZOG.js} +9 -5
- package/dist/chunk-VCO2IZOG.js.map +1 -0
- package/dist/chunk-WFS6R2F5.js +328 -0
- package/dist/chunk-WFS6R2F5.js.map +1 -0
- package/dist/{chunk-IY7UQPDO.cjs → chunk-WGPMTW36.cjs} +6 -2
- package/dist/chunk-WGPMTW36.cjs.map +1 -0
- package/dist/chunk-WJU3KLVV.cjs +855 -0
- package/dist/chunk-WJU3KLVV.cjs.map +1 -0
- package/dist/{chunk-SOFX4T7M.js → chunk-WOYUQ4AT.js} +49 -19
- package/dist/chunk-WOYUQ4AT.js.map +1 -0
- package/dist/{chunk-SD44QJIP.js → chunk-WTDCNXZO.js} +58 -31
- package/dist/chunk-WTDCNXZO.js.map +1 -0
- package/dist/{chunk-2J2V4TMJ.cjs → chunk-WZBCK7KG.cjs} +42 -32
- package/dist/chunk-WZBCK7KG.cjs.map +1 -0
- package/dist/{chunk-O5HS7ZND.cjs → chunk-X7S76WB7.cjs} +3 -3
- package/dist/{chunk-O5HS7ZND.cjs.map → chunk-X7S76WB7.cjs.map} +1 -1
- package/dist/{chunk-ULOA7WBW.js → chunk-XB7QCKK7.js} +3 -3
- package/dist/{chunk-ULOA7WBW.js.map → chunk-XB7QCKK7.js.map} +1 -1
- package/dist/{chunk-G2DOD34H.js → chunk-XCLQZ4FV.js} +84 -38
- package/dist/chunk-XCLQZ4FV.js.map +1 -0
- package/dist/{chunk-NIHESA7O.js → chunk-YDJUUR4Y.js} +42 -32
- package/dist/chunk-YDJUUR4Y.js.map +1 -0
- package/dist/{chunk-RCMF6KZA.js → chunk-YTZPVEIO.js} +3 -3
- package/dist/{chunk-RCMF6KZA.js.map → chunk-YTZPVEIO.js.map} +1 -1
- package/dist/{chunk-SWV5E75F.cjs → chunk-Z5J4NTPL.cjs} +3 -3
- package/dist/{chunk-SWV5E75F.cjs.map → chunk-Z5J4NTPL.cjs.map} +1 -1
- package/dist/{chunk-XHJGYBYG.cjs → chunk-ZKFVGYBK.cjs} +48 -31
- package/dist/chunk-ZKFVGYBK.cjs.map +1 -0
- package/dist/{chunk-CEHWXAAI.js → chunk-ZVPJ2MH6.js} +14 -4
- package/dist/chunk-ZVPJ2MH6.js.map +1 -0
- package/dist/{chunk-VBHPXSCV.js → chunk-ZVSW2KS6.js} +12 -6
- package/dist/chunk-ZVSW2KS6.js.map +1 -0
- package/dist/components/Alert/index.cjs +5 -5
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/AudioPlayer/index.cjs +6 -6
- package/dist/components/AudioPlayer/index.d.cts +5 -4
- package/dist/components/AudioPlayer/index.d.ts +5 -4
- package/dist/components/AudioPlayer/index.js +1 -1
- package/dist/components/AudioRecorder/index.cjs +6 -6
- package/dist/components/AudioRecorder/index.js +1 -1
- package/dist/components/Avatar/index.cjs +5 -5
- package/dist/components/Avatar/index.js +1 -1
- package/dist/components/Badge/index.cjs +3 -3
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/Breadcrumb/index.cjs +3 -3
- package/dist/components/Breadcrumb/index.js +1 -1
- package/dist/components/Button/index.cjs +3 -3
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Card/index.cjs +15 -15
- package/dist/components/Card/index.d.cts +6 -2
- package/dist/components/Card/index.d.ts +6 -2
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Checkbox/index.cjs +4 -4
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/CountryCodeDropdown/index.cjs +23 -0
- package/dist/components/CountryCodeDropdown/index.cjs.map +1 -0
- package/dist/components/CountryCodeDropdown/index.d.cts +69 -0
- package/dist/components/CountryCodeDropdown/index.d.ts +69 -0
- package/dist/components/CountryCodeDropdown/index.js +6 -0
- package/dist/components/CountryCodeDropdown/index.js.map +1 -0
- package/dist/components/DateInput/index.cjs +4 -4
- package/dist/components/DateInput/index.js +3 -3
- package/dist/components/Dropdown/index.cjs +9 -8
- package/dist/components/Dropdown/index.d.cts +29 -1
- package/dist/components/Dropdown/index.d.ts +29 -1
- package/dist/components/Dropdown/index.js +3 -2
- package/dist/components/Input/index.cjs +3 -3
- package/dist/components/Input/index.js +1 -1
- package/dist/components/Modal/index.cjs +9 -9
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/Pagination/index.cjs +4 -4
- package/dist/components/Pagination/index.d.cts +6 -2
- package/dist/components/Pagination/index.d.ts +6 -2
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/PhoneInput/index.cjs +5 -5
- package/dist/components/PhoneInput/index.js +3 -3
- package/dist/components/Progress/index.cjs +6 -6
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/QuickAction/index.cjs +6 -6
- package/dist/components/QuickAction/index.js +1 -1
- package/dist/components/Radio/index.cjs +4 -4
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/RecordButton/index.cjs +4 -4
- package/dist/components/RecordButton/index.js +1 -1
- package/dist/components/SchedulePicker/index.cjs +10 -10
- package/dist/components/SchedulePicker/index.js +1 -1
- package/dist/components/Select/index.cjs +3 -3
- package/dist/components/Select/index.d.cts +3 -1
- package/dist/components/Select/index.d.ts +3 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/Skeleton/index.cjs +6 -6
- package/dist/components/Skeleton/index.d.cts +1 -1
- package/dist/components/Skeleton/index.d.ts +1 -1
- package/dist/components/Skeleton/index.js +1 -1
- package/dist/components/Slider/index.cjs +5 -5
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/Spinner/index.cjs +5 -5
- package/dist/components/Spinner/index.js +1 -1
- package/dist/components/Switch/index.cjs +4 -4
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Table/index.cjs +9 -9
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Tabs/index.cjs +7 -7
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/Text/index.cjs +4 -4
- package/dist/components/Text/index.js +1 -1
- package/dist/components/Textarea/index.cjs +3 -3
- package/dist/components/Textarea/index.js +1 -1
- package/dist/components/ThemeProvider/index.cjs +8 -8
- package/dist/components/ThemeProvider/index.js +2 -2
- package/dist/components/Tooltip/index.cjs +2 -2
- package/dist/components/Tooltip/index.js +1 -1
- package/dist/datavis.cjs +251 -0
- package/dist/datavis.cjs.map +1 -0
- package/dist/datavis.d.cts +47 -0
- package/dist/datavis.d.ts +47 -0
- package/dist/datavis.js +247 -0
- package/dist/datavis.js.map +1 -0
- package/dist/default-BTEIFIZJ.cjs +18 -0
- package/dist/{default-ZGHKI5WF.cjs.map → default-BTEIFIZJ.cjs.map} +1 -1
- package/dist/default-ORBRVZRZ.js +3 -0
- package/dist/{default-LIRPABBK.js.map → default-ORBRVZRZ.js.map} +1 -1
- package/dist/hooks/index.cjs +19 -15
- package/dist/hooks/index.d.cts +39 -3
- package/dist/hooks/index.d.ts +39 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +13453 -9169
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +134 -55
- package/dist/index.d.ts +134 -55
- package/dist/index.js +12679 -8419
- package/dist/index.js.map +1 -1
- package/dist/mieweb-4XR6UKDQ.cjs +18 -0
- package/dist/{mieweb-UJABK5XX.cjs.map → mieweb-4XR6UKDQ.cjs.map} +1 -1
- package/dist/mieweb-N6UMH4MU.js +3 -0
- package/dist/{mieweb-PV2YKYO7.js.map → mieweb-N6UMH4MU.js.map} +1 -1
- package/dist/ozwell.cjs +385 -0
- package/dist/ozwell.cjs.map +1 -0
- package/dist/ozwell.d.cts +15 -0
- package/dist/ozwell.d.ts +15 -0
- package/dist/ozwell.js +360 -0
- package/dist/ozwell.js.map +1 -0
- package/dist/styles/init.css +339 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.d.cts +13 -2
- package/dist/tailwind-preset.d.ts +13 -2
- package/dist/tailwind-preset.js +1 -1
- package/dist/utils/index.cjs +31 -23
- package/dist/utils/index.d.cts +19 -2
- package/dist/utils/index.d.ts +19 -2
- package/dist/utils/index.js +2 -2
- package/dist/waggleline-2MLRNVCV.js +3 -0
- package/dist/{waggleline-BMUYAFJF.js.map → waggleline-2MLRNVCV.js.map} +1 -1
- package/dist/waggleline-I7QWD3YX.cjs +18 -0
- package/dist/{waggleline-6IGA66HR.cjs.map → waggleline-I7QWD3YX.cjs.map} +1 -1
- package/dist/webchart-F6EIMC3I.js +3 -0
- package/dist/{webchart-2SLO5ICI.js.map → webchart-F6EIMC3I.js.map} +1 -1
- package/dist/webchart-H3BHYNHB.cjs +18 -0
- package/dist/{webchart-EHVGP46N.cjs.map → webchart-H3BHYNHB.cjs.map} +1 -1
- package/package.json +42 -4
- package/dist/chunk-265CFCCX.js +0 -173
- package/dist/chunk-265CFCCX.js.map +0 -1
- package/dist/chunk-2J2V4TMJ.cjs.map +0 -1
- package/dist/chunk-3NJ72QU6.js.map +0 -1
- package/dist/chunk-4AWW5WPF.js.map +0 -1
- package/dist/chunk-4MHTSFPX.js.map +0 -1
- package/dist/chunk-4T2ZNPTC.js +0 -220
- package/dist/chunk-4T2ZNPTC.js.map +0 -1
- package/dist/chunk-4YRAEFYW.js +0 -233
- package/dist/chunk-4YRAEFYW.js.map +0 -1
- package/dist/chunk-53K3KWXQ.cjs.map +0 -1
- package/dist/chunk-5T3AWNHG.cjs.map +0 -1
- package/dist/chunk-5UUL5EEO.cjs.map +0 -1
- package/dist/chunk-6OCIIIAI.js.map +0 -1
- package/dist/chunk-6Q4SU72T.js.map +0 -1
- package/dist/chunk-AU5ADTYD.cjs.map +0 -1
- package/dist/chunk-AWIULTJW.js.map +0 -1
- package/dist/chunk-B26RIQ5R.js.map +0 -1
- package/dist/chunk-B3L43JGH.js.map +0 -1
- package/dist/chunk-B7YGVKTE.cjs.map +0 -1
- package/dist/chunk-BTJHYGPI.cjs.map +0 -1
- package/dist/chunk-BV75DAKO.cjs +0 -245
- package/dist/chunk-BV75DAKO.cjs.map +0 -1
- package/dist/chunk-BXK5TNJE.cjs.map +0 -1
- package/dist/chunk-CEHWXAAI.js.map +0 -1
- package/dist/chunk-CP7NPDQW.js.map +0 -1
- package/dist/chunk-CQCYXHCU.cjs +0 -256
- package/dist/chunk-CQCYXHCU.cjs.map +0 -1
- package/dist/chunk-DMA74PZ7.js +0 -240
- package/dist/chunk-DMA74PZ7.js.map +0 -1
- package/dist/chunk-EF46XW4Z.cjs.map +0 -1
- package/dist/chunk-EKIQE524.cjs.map +0 -1
- package/dist/chunk-EYH7OUX5.js.map +0 -1
- package/dist/chunk-FFJVCQ5R.cjs.map +0 -1
- package/dist/chunk-FIXAVBUA.cjs +0 -200
- package/dist/chunk-FIXAVBUA.cjs.map +0 -1
- package/dist/chunk-G2DOD34H.js.map +0 -1
- package/dist/chunk-GHRQ3ZJH.js +0 -764
- package/dist/chunk-GHRQ3ZJH.js.map +0 -1
- package/dist/chunk-GV5JQBPX.js.map +0 -1
- package/dist/chunk-HRA4FUO6.cjs.map +0 -1
- package/dist/chunk-I7L6CQXR.cjs.map +0 -1
- package/dist/chunk-INFSKLXE.cjs +0 -790
- package/dist/chunk-INFSKLXE.cjs.map +0 -1
- package/dist/chunk-IY7UQPDO.cjs.map +0 -1
- package/dist/chunk-JFAXLE2J.js.map +0 -1
- package/dist/chunk-JYMQJ32S.cjs.map +0 -1
- package/dist/chunk-LZEY55QZ.cjs.map +0 -1
- package/dist/chunk-N3QTYHRZ.cjs.map +0 -1
- package/dist/chunk-NAATBUHR.cjs.map +0 -1
- package/dist/chunk-NIHESA7O.js.map +0 -1
- package/dist/chunk-NXRLGHEC.js +0 -98
- package/dist/chunk-NXRLGHEC.js.map +0 -1
- package/dist/chunk-ONWOB76P.js.map +0 -1
- package/dist/chunk-ORUPC5TV.cjs.map +0 -1
- package/dist/chunk-OT36EMM5.js.map +0 -1
- package/dist/chunk-OW2BWGST.js.map +0 -1
- package/dist/chunk-PEFJAWNR.cjs.map +0 -1
- package/dist/chunk-PEH4ZOEM.cjs.map +0 -1
- package/dist/chunk-PF3XWKE5.cjs.map +0 -1
- package/dist/chunk-QL2YTVTR.js.map +0 -1
- package/dist/chunk-QSMMFATL.js.map +0 -1
- package/dist/chunk-QYJ7RQJ2.cjs.map +0 -1
- package/dist/chunk-QZLRB3UG.js.map +0 -1
- package/dist/chunk-R4DM4635.cjs.map +0 -1
- package/dist/chunk-RRQGH7C5.cjs.map +0 -1
- package/dist/chunk-SD44QJIP.js.map +0 -1
- package/dist/chunk-SOFX4T7M.js.map +0 -1
- package/dist/chunk-SSKI6VTW.cjs.map +0 -1
- package/dist/chunk-SWMRCGL4.cjs.map +0 -1
- package/dist/chunk-TPGT236K.js.map +0 -1
- package/dist/chunk-UZUBLXVC.js.map +0 -1
- package/dist/chunk-VBHPXSCV.js.map +0 -1
- package/dist/chunk-VV4N4WY6.cjs.map +0 -1
- package/dist/chunk-WH6I7CMP.cjs.map +0 -1
- package/dist/chunk-XHJGYBYG.cjs.map +0 -1
- package/dist/chunk-XVZ4SLQB.js.map +0 -1
- package/dist/chunk-XXOBTAKA.js.map +0 -1
- package/dist/chunk-Y22SOAJM.js +0 -3
- package/dist/default-LIRPABBK.js +0 -3
- package/dist/default-ZGHKI5WF.cjs +0 -18
- package/dist/mieweb-PV2YKYO7.js +0 -3
- package/dist/mieweb-UJABK5XX.cjs +0 -18
- package/dist/waggleline-6IGA66HR.cjs +0 -18
- package/dist/waggleline-BMUYAFJF.js +0 -3
- package/dist/webchart-2SLO5ICI.js +0 -3
- package/dist/webchart-EHVGP46N.cjs +0 -18
package/dist/ag-grid.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mail, Phone, Globe, CheckCircle, Clock } from './chunk-
|
|
1
|
+
import { Mail, Phone, Globe, CheckCircle, Clock } from './chunk-LEMY57MI.js';
|
|
2
2
|
import { cn } from './chunk-F3SOEIN2.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { memo } from 'react';
|
|
@@ -145,6 +145,7 @@ function AGGridInner({
|
|
|
145
145
|
return /* @__PURE__ */ jsx(
|
|
146
146
|
"div",
|
|
147
147
|
{
|
|
148
|
+
"data-slot": "ag-grid",
|
|
148
149
|
className: cn(agGridVariants({ variant, size, brand }), className),
|
|
149
150
|
style: {
|
|
150
151
|
height: typeof resolvedHeight === "number" ? `${resolvedHeight}px` : resolvedHeight,
|
|
@@ -223,7 +224,7 @@ function getInitials(name) {
|
|
|
223
224
|
}
|
|
224
225
|
function getAvatarColor(name) {
|
|
225
226
|
const colors = [
|
|
226
|
-
"bg-primary-
|
|
227
|
+
"bg-primary-800",
|
|
227
228
|
"bg-green-600",
|
|
228
229
|
"bg-orange-600",
|
|
229
230
|
"bg-secondary-600",
|
|
@@ -249,32 +250,42 @@ var statusColors = {
|
|
|
249
250
|
active: {
|
|
250
251
|
label: "Active",
|
|
251
252
|
bgClass: "bg-green-100 dark:bg-green-900/30",
|
|
252
|
-
textClass: "text-green-
|
|
253
|
+
textClass: "text-green-700 dark:text-green-400"
|
|
253
254
|
},
|
|
254
255
|
inactive: {
|
|
255
256
|
label: "Inactive",
|
|
256
257
|
bgClass: "bg-gray-200 dark:bg-gray-700",
|
|
257
|
-
textClass: "text-gray-600 dark:text-gray-
|
|
258
|
+
textClass: "text-gray-600 dark:text-gray-300"
|
|
259
|
+
},
|
|
260
|
+
closed_won: {
|
|
261
|
+
label: "Closed Won",
|
|
262
|
+
bgClass: "bg-green-100 dark:bg-green-900/30",
|
|
263
|
+
textClass: "text-green-700 dark:text-green-400"
|
|
264
|
+
},
|
|
265
|
+
closed_lost: {
|
|
266
|
+
label: "Closed Lost",
|
|
267
|
+
bgClass: "bg-red-100 dark:bg-red-900/30",
|
|
268
|
+
textClass: "text-red-700 dark:text-red-400"
|
|
258
269
|
},
|
|
259
270
|
pending: {
|
|
260
271
|
label: "Pending",
|
|
261
272
|
bgClass: "bg-amber-100 dark:bg-amber-900/30",
|
|
262
|
-
textClass: "text-amber-
|
|
273
|
+
textClass: "text-amber-700 dark:text-amber-400"
|
|
263
274
|
},
|
|
264
275
|
new: {
|
|
265
276
|
label: "New",
|
|
266
277
|
bgClass: "bg-primary-100 dark:bg-primary-900/30",
|
|
267
|
-
textClass: "text-
|
|
278
|
+
textClass: "text-green-700 dark:text-green-400"
|
|
268
279
|
},
|
|
269
280
|
verified: {
|
|
270
281
|
label: "Verified",
|
|
271
282
|
bgClass: "bg-green-100 dark:bg-green-900/30",
|
|
272
|
-
textClass: "text-green-
|
|
283
|
+
textClass: "text-green-700 dark:text-green-400"
|
|
273
284
|
},
|
|
274
285
|
flagged: {
|
|
275
286
|
label: "Flagged",
|
|
276
287
|
bgClass: "bg-red-100 dark:bg-red-900/30",
|
|
277
|
-
textClass: "text-red-
|
|
288
|
+
textClass: "text-red-700 dark:text-red-400"
|
|
278
289
|
}
|
|
279
290
|
};
|
|
280
291
|
function AvatarNameRenderer(props) {
|
|
@@ -291,8 +302,8 @@ function AvatarNameRenderer(props) {
|
|
|
291
302
|
const imageUrl = avatarUrl || faviconUrl;
|
|
292
303
|
if (isSystemValue) {
|
|
293
304
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1", children: [
|
|
294
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-gray-200 text-xs font-semibold text-gray-400 dark:bg-gray-700
|
|
295
|
-
/* @__PURE__ */ jsx("span", { className: "truncate text-gray-400 italic
|
|
305
|
+
/* @__PURE__ */ jsx("div", { className: "dark:text-muted-foreground flex h-7 w-7 items-center justify-center rounded-full bg-gray-200 text-xs font-semibold text-gray-400 dark:bg-gray-700", children: displayName === "Unassigned" ? "\u2014" : "??" }),
|
|
306
|
+
/* @__PURE__ */ jsx("span", { className: "dark:text-muted-foreground truncate text-gray-400 italic", children: displayName })
|
|
296
307
|
] });
|
|
297
308
|
}
|
|
298
309
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1", children: [
|
|
@@ -331,7 +342,7 @@ function StatusBadgeRenderer(props) {
|
|
|
331
342
|
const config = statusConfig[normalizedValue] || {
|
|
332
343
|
label: value,
|
|
333
344
|
bgClass: "bg-gray-200 dark:bg-gray-700",
|
|
334
|
-
textClass: "text-gray-600 dark:text-gray-
|
|
345
|
+
textClass: "text-gray-600 dark:text-gray-300"
|
|
335
346
|
};
|
|
336
347
|
return /* @__PURE__ */ jsx(
|
|
337
348
|
"span",
|
|
@@ -349,21 +360,21 @@ function getEngagementScoreColors(score) {
|
|
|
349
360
|
if (score >= 70)
|
|
350
361
|
return {
|
|
351
362
|
barColor: "bg-green-500",
|
|
352
|
-
textColor: "text-green-
|
|
363
|
+
textColor: "text-green-700 dark:text-green-400"
|
|
353
364
|
};
|
|
354
365
|
if (score >= 40)
|
|
355
366
|
return {
|
|
356
367
|
barColor: "bg-amber-500",
|
|
357
|
-
textColor: "text-amber-
|
|
368
|
+
textColor: "text-amber-700 dark:text-amber-400"
|
|
358
369
|
};
|
|
359
370
|
if (score >= 20)
|
|
360
371
|
return {
|
|
361
372
|
barColor: "bg-orange-500",
|
|
362
|
-
textColor: "text-orange-
|
|
373
|
+
textColor: "text-orange-700 dark:text-orange-400"
|
|
363
374
|
};
|
|
364
375
|
return {
|
|
365
376
|
barColor: "bg-gray-400",
|
|
366
|
-
textColor: "text-
|
|
377
|
+
textColor: "text-muted-foreground"
|
|
367
378
|
};
|
|
368
379
|
}
|
|
369
380
|
function EngagementScoreRenderer(props) {
|
|
@@ -390,7 +401,7 @@ function EmailRenderer(props) {
|
|
|
390
401
|
"a",
|
|
391
402
|
{
|
|
392
403
|
href: `mailto:${value}`,
|
|
393
|
-
className: "text-primary-
|
|
404
|
+
className: "text-primary-800 dark:text-primary-400 inline-flex items-center gap-1.5 hover:underline",
|
|
394
405
|
onClick: (e) => e.stopPropagation(),
|
|
395
406
|
children: [
|
|
396
407
|
/* @__PURE__ */ jsx(Mail, { className: "h-3 w-3 opacity-60" }),
|
|
@@ -407,7 +418,7 @@ function PhoneRenderer(props) {
|
|
|
407
418
|
"a",
|
|
408
419
|
{
|
|
409
420
|
href: `tel:${value}`,
|
|
410
|
-
className: "text-foreground hover:text-primary-
|
|
421
|
+
className: "text-foreground hover:text-primary-800 dark:hover:text-primary-400 inline-flex items-center gap-1.5",
|
|
411
422
|
onClick: (e) => e.stopPropagation(),
|
|
412
423
|
children: [
|
|
413
424
|
/* @__PURE__ */ jsx(Phone, { className: "h-3 w-3 text-green-500 opacity-70" }),
|
|
@@ -427,7 +438,7 @@ function DomainRenderer(props) {
|
|
|
427
438
|
href: url,
|
|
428
439
|
target: "_blank",
|
|
429
440
|
rel: "noopener noreferrer",
|
|
430
|
-
className: "text-primary-
|
|
441
|
+
className: "text-primary-800 dark:text-primary-400 inline-flex items-center gap-1.5 hover:underline",
|
|
431
442
|
onClick: (e) => e.stopPropagation(),
|
|
432
443
|
children: [
|
|
433
444
|
/* @__PURE__ */ jsx(Globe, { className: "h-3 w-3 opacity-60" }),
|
|
@@ -524,7 +535,7 @@ function BooleanRenderer(props) {
|
|
|
524
535
|
{
|
|
525
536
|
className: cn(
|
|
526
537
|
"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium",
|
|
527
|
-
isTrue ? "bg-green-100 text-green-
|
|
538
|
+
isTrue ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-gray-200 text-gray-600 dark:bg-gray-700 dark:text-gray-300"
|
|
528
539
|
),
|
|
529
540
|
children: [
|
|
530
541
|
isTrue ? /* @__PURE__ */ jsx(CheckCircle, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(Clock, { className: "h-3 w-3" }),
|
|
@@ -556,7 +567,7 @@ function CompanyRenderer(props) {
|
|
|
556
567
|
/* @__PURE__ */ jsx(
|
|
557
568
|
"div",
|
|
558
569
|
{
|
|
559
|
-
className: "bg-primary-100 text-primary-
|
|
570
|
+
className: "bg-primary-100 text-primary-800 dark:bg-primary-900/30 dark:text-primary-400 flex h-5 w-5 items-center justify-center rounded text-[9px] font-semibold",
|
|
560
571
|
style: { display: faviconUrl ? "none" : "flex" },
|
|
561
572
|
children: getInitials(value)
|
|
562
573
|
}
|
|
@@ -565,7 +576,7 @@ function CompanyRenderer(props) {
|
|
|
565
576
|
] });
|
|
566
577
|
}
|
|
567
578
|
function ProgressRenderer(props) {
|
|
568
|
-
const { value, barColor = "bg-primary-
|
|
579
|
+
const { value, barColor = "bg-primary-800", max = 100 } = props;
|
|
569
580
|
if (value == null) return /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "--" });
|
|
570
581
|
const percentage = Math.min(100, Math.max(0, Number(value) / max * 100));
|
|
571
582
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1", children: [
|
|
@@ -591,7 +602,7 @@ function TagsRenderer(props) {
|
|
|
591
602
|
value.slice(0, 3).map((tag, index) => /* @__PURE__ */ jsx(
|
|
592
603
|
"span",
|
|
593
604
|
{
|
|
594
|
-
className: "inline-flex items-center rounded-full bg-gray-100 px-2 py-0.5 text-xs font-medium
|
|
605
|
+
className: "text-foreground inline-flex items-center rounded-full bg-gray-100 px-2 py-0.5 text-xs font-medium dark:bg-gray-800",
|
|
595
606
|
children: tag
|
|
596
607
|
},
|
|
597
608
|
index
|
package/dist/ag-grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/AGGrid/AGGrid.tsx","../src/components/AGGrid/CellRenderers.tsx"],"names":["jsx","formatted"],"mappings":"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","file":"ag-grid.js","sourcesContent":["import * as React from 'react';\nimport { AgGridReact, AgGridReactProps } from 'ag-grid-react';\nimport {\n ModuleRegistry,\n AllCommunityModule,\n type GridApi,\n type GridReadyEvent,\n type ColDef as AGColDef,\n type RowClickedEvent,\n type RowSelectionOptions,\n} from 'ag-grid-community';\nimport { cn } from '../../utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type { BrandConfig } from '../../brands/types';\n\n// Register AG Grid Community modules\nModuleRegistry.registerModules([AllCommunityModule]);\n\n// ============================================================================\n// AG Grid Wrapper Styles\n// ============================================================================\n\nconst agGridVariants = cva('ag-theme-custom w-full', {\n variants: {\n /**\n * Visual variant of the grid\n */\n variant: {\n default: '',\n bordered:\n '[&_.ag-root-wrapper]:border [&_.ag-root-wrapper]:border-border [&_.ag-root-wrapper]:rounded-lg',\n striped: '[&_.ag-row-odd]:bg-muted/50',\n card: '[&_.ag-root-wrapper]:shadow-card [&_.ag-root-wrapper]:rounded-lg [&_.ag-root-wrapper]:border-0',\n },\n /**\n * Size/density of the grid rows\n */\n size: {\n xs: '[&_.ag-row]:h-7 [&_.ag-header-row]:h-7 text-xs [&_.ag-cell]:px-2',\n sm: '[&_.ag-row]:h-8 [&_.ag-header-row]:h-8 text-xs [&_.ag-cell]:px-3',\n md: '[&_.ag-row]:h-10 [&_.ag-header-row]:h-10 text-sm [&_.ag-cell]:px-4',\n lg: '[&_.ag-row]:h-12 [&_.ag-header-row]:h-12 text-base [&_.ag-cell]:px-4',\n xl: '[&_.ag-row]:h-14 [&_.ag-header-row]:h-14 text-base [&_.ag-cell]:px-6',\n },\n /**\n * Brand theme variant\n */\n brand: {\n default: '',\n mieweb: 'ag-brand-mieweb',\n bluehive: 'ag-brand-bluehive',\n waggleline: 'ag-brand-waggleline',\n webchart: 'ag-brand-webchart',\n 'enterprise-health': 'ag-brand-enterprise-health',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n brand: 'default',\n },\n});\n\n// ============================================================================\n// AG Grid Component Types\n// ============================================================================\n\nexport interface AGGridProps<TData = unknown>\n extends\n Omit<AgGridReactProps<TData>, 'className' | 'rowSelection'>,\n VariantProps<typeof agGridVariants> {\n /** Additional CSS classes for the grid container */\n className?: string;\n /** Height of the grid container */\n height?: string | number;\n /** Loading state */\n loading?: boolean;\n /** Callback when a row is clicked */\n onRowClick?: (event: RowClickedEvent<TData>) => void;\n /** Reference to access the grid API */\n gridRef?: React.RefObject<AgGridReact<TData> | null>;\n /** Row selection configuration (v35+ object format or legacy string) */\n rowSelection?: RowSelectionOptions | 'single' | 'multiple';\n /** Brand configuration for theming */\n brandConfig?: BrandConfig;\n /** Show pagination controls */\n pagination?: boolean;\n /** Enable column resizing */\n resizable?: boolean;\n /** Enable sorting */\n sortable?: boolean;\n /** Enable filtering */\n filterable?: boolean;\n /** Custom empty state message */\n noDataMessage?: string;\n /** Custom loading message */\n loadingMessage?: string;\n}\n\n// ============================================================================\n// Default Column Definitions\n// ============================================================================\n\n// Size to pixel height mapping for AG Grid (row heights + default container heights)\nconst sizeToRowHeight: Record<\n string,\n { rowHeight: number; headerHeight: number; containerHeight: number }\n> = {\n xs: { rowHeight: 28, headerHeight: 28, containerHeight: 280 },\n sm: { rowHeight: 32, headerHeight: 32, containerHeight: 320 },\n md: { rowHeight: 40, headerHeight: 40, containerHeight: 400 },\n lg: { rowHeight: 48, headerHeight: 48, containerHeight: 480 },\n xl: { rowHeight: 56, headerHeight: 56, containerHeight: 560 },\n};\n\n// Enhanced default column definitions with brand awareness\nconst getDefaultColDef = (\n sortable: boolean,\n filterable: boolean,\n resizable: boolean\n): AGColDef => ({\n sortable,\n filter: filterable,\n resizable,\n minWidth: 100,\n flex: 1,\n suppressMovable: false,\n headerClass: 'ag-header-cell-custom',\n cellClass: 'ag-cell-custom',\n});\n\n// ============================================================================\n// AG Grid Component\n// ============================================================================\n\n/**\n * A themed AG Grid wrapper component that integrates with the MIE Web UI design system.\n *\n * This component wraps AG Grid Community Edition and provides:\n * - Consistent theming with CSS variables\n * - Size variants (sm, md, lg)\n * - Visual variants (default, bordered, striped)\n * - Loading states\n * - Simplified API while maintaining full AG Grid capabilities\n *\n * @example\n * ```tsx\n * const columnDefs = [\n * { field: 'name', headerName: 'Name' },\n * { field: 'email', headerName: 'Email' },\n * { field: 'status', headerName: 'Status' },\n * ];\n *\n * const rowData = [\n * { name: 'John Doe', email: 'john@example.com', status: 'Active' },\n * { name: 'Jane Smith', email: 'jane@example.com', status: 'Pending' },\n * ];\n *\n * <AGGrid\n * columnDefs={columnDefs}\n * rowData={rowData}\n * variant=\"bordered\"\n * size=\"md\"\n * />\n * ```\n */\nfunction AGGridInner<TData = unknown>(\n {\n className,\n variant,\n size,\n brand,\n height,\n loading = false,\n columnDefs,\n rowData,\n defaultColDef: userDefaultColDef,\n onGridReady,\n onRowClick,\n gridRef,\n rowSelection,\n brandConfig,\n pagination = false,\n resizable = true,\n sortable = true,\n filterable = true,\n noDataMessage = 'No data to display',\n loadingMessage = 'Loading...',\n ...props\n }: AGGridProps<TData>,\n ref: React.ForwardedRef<AgGridReact<TData>>\n) {\n const internalRef = React.useRef<AgGridReact<TData>>(null);\n const gridApiRef = React.useRef<GridApi<TData> | null>(null);\n\n // Use provided ref or internal ref\n const resolvedRef = gridRef || ref || internalRef;\n\n // Handle grid ready\n const handleGridReady = React.useCallback(\n (event: GridReadyEvent<TData>) => {\n gridApiRef.current = event.api;\n onGridReady?.(event);\n },\n [onGridReady]\n );\n\n // Handle row click\n const handleRowClicked = React.useCallback(\n (event: RowClickedEvent<TData>) => {\n onRowClick?.(event);\n },\n [onRowClick]\n );\n\n // Merge default column definitions with feature toggles\n const mergedDefaultColDef = React.useMemo(\n () =>\n ({\n ...getDefaultColDef(sortable, filterable, resizable),\n ...userDefaultColDef,\n }) as AGColDef<TData>,\n [userDefaultColDef, sortable, filterable, resizable]\n );\n\n // Convert legacy rowSelection string to v35+ object format\n const resolvedRowSelection = React.useMemo(():\n | RowSelectionOptions\n | undefined => {\n if (!rowSelection) return undefined;\n\n // If already in object format, use as-is\n if (typeof rowSelection === 'object') {\n return rowSelection;\n }\n\n // Convert legacy string format to v35+ object format\n if (rowSelection === 'multiple') {\n return {\n mode: 'multiRow',\n enableClickSelection: true,\n };\n }\n\n if (rowSelection === 'single') {\n return {\n mode: 'singleRow',\n enableClickSelection: true,\n };\n }\n\n return undefined;\n }, [rowSelection]);\n\n // Show loading overlay when loading prop changes\n React.useEffect(() => {\n if (gridApiRef.current) {\n if (loading) {\n gridApiRef.current.showLoadingOverlay();\n } else {\n gridApiRef.current.hideOverlay();\n }\n }\n }, [loading]);\n\n // Get row/header heights based on size prop\n const sizeConfig = sizeToRowHeight[size || 'md'];\n\n // Use provided height or default based on size\n const resolvedHeight = height ?? sizeConfig.containerHeight;\n\n return (\n <div\n className={cn(agGridVariants({ variant, size, brand }), className)}\n style={{\n height:\n typeof resolvedHeight === 'number'\n ? `${resolvedHeight}px`\n : resolvedHeight,\n ...(brandConfig &&\n ({\n '--ag-primary-color': brandConfig.colors.primary[600],\n '--ag-font-family':\n brandConfig.typography.fontFamily.sans.join(', '),\n } as React.CSSProperties)),\n }}\n data-brand={brand}\n >\n <AgGridReact<TData>\n ref={resolvedRef as React.RefObject<AgGridReact<TData>>}\n columnDefs={columnDefs}\n rowData={rowData}\n defaultColDef={mergedDefaultColDef}\n onGridReady={handleGridReady}\n onRowClicked={handleRowClicked}\n animateRows={true}\n enableBrowserTooltips={true}\n rowSelection={resolvedRowSelection}\n pagination={pagination}\n paginationPageSize={pagination ? 50 : undefined}\n paginationPageSizeSelector={pagination ? [25, 50, 100, 200] : undefined}\n rowHeight={sizeConfig.rowHeight}\n headerHeight={sizeConfig.headerHeight}\n noRowsOverlayComponent={() => (\n <div className=\"text-muted-foreground py-8 text-center\">\n {noDataMessage}\n </div>\n )}\n loadingOverlayComponent={() => (\n <div className=\"text-muted-foreground py-8 text-center\">\n {loadingMessage}\n </div>\n )}\n theme=\"legacy\"\n {...props}\n />\n </div>\n );\n}\n\n// Forward ref with generic support\nexport const AGGrid = React.forwardRef(AGGridInner) as <TData = unknown>(\n props: AGGridProps<TData> & { ref?: React.ForwardedRef<AgGridReact<TData>> }\n) => React.ReactElement;\n\n// Display name for debugging\n(AGGrid as React.FC).displayName = 'AGGrid';\n\n// ============================================================================\n// Re-export AG Grid types for convenience\n// ============================================================================\n\n// Export ColDef with the original name for external use\nexport type { ColDef as AGColDef } from 'ag-grid-community';\n\n// Also export as ColDef for convenience\nexport type ColDef<TData = unknown, TValue = unknown> = AGColDef<TData, TValue>;\n\nexport type {\n GridApi,\n GridReadyEvent,\n RowClickedEvent,\n CellClickedEvent,\n CellValueChangedEvent,\n SelectionChangedEvent,\n FilterChangedEvent,\n SortChangedEvent,\n RowSelectedEvent,\n FirstDataRenderedEvent,\n} from 'ag-grid-community';\n\nexport { AgGridReact } from 'ag-grid-react';\n","/**\n * AG Grid Cell Renderers\n *\n * Rich, visually appealing cell renderers for AG Grid tables.\n * Based on Waggleline's production-tested implementations with\n * full dark mode support and design system integration.\n *\n * All renderers are memoized with React.memo for performance optimization.\n */\n\nimport * as React from 'react';\nimport { memo } from 'react';\nimport type { ICellRendererParams } from 'ag-grid-community';\nimport { cn } from '../../utils/cn';\nimport {\n MailIcon,\n PhoneIcon,\n GlobeIcon,\n CheckCircleIcon,\n ClockIcon,\n} from '../Icons';\nimport { Linkedin } from 'lucide-react';\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Get a nested value from an object using dot notation (e.g., 'company.domain')\n */\nfunction getNestedValue(\n obj: Record<string, unknown> | undefined | null,\n path: string\n): unknown {\n if (!obj || !path) return undefined;\n const parts = path.split('.');\n let current: unknown = obj;\n for (const part of parts) {\n if (current === null || current === undefined) return undefined;\n if (typeof current === 'object') {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n}\n\n/**\n * Get favicon URL from a domain using Google's favicon service\n */\nfunction getFaviconUrl(domain: string | null | undefined): string | null {\n if (!domain || typeof domain !== 'string') return null;\n const cleanDomain = domain\n .replace(/^https?:\\/\\//, '')\n .replace(/\\/.*$/, '')\n .trim();\n if (!cleanDomain) return null;\n return `https://www.google.com/s2/favicons?domain=${cleanDomain}&sz=64`;\n}\n\n/**\n * Format a phone number with dashes for display\n */\nexport function formatPhoneDisplay(phone: string | null | undefined): string {\n if (!phone) return '';\n const cleaned = phone.replace(/\\D/g, '');\n if (cleaned.length === 10) {\n return `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;\n }\n if (cleaned.length === 11 && cleaned.startsWith('1')) {\n return `${cleaned[0]}-${cleaned.slice(1, 4)}-${cleaned.slice(4, 7)}-${cleaned.slice(7)}`;\n }\n return phone;\n}\n\n/**\n * Generate initials from a name\n */\nfunction getInitials(name: string): string {\n if (!name || typeof name !== 'string') return '??';\n const parts = name.split(' ').filter(Boolean);\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n}\n\n/**\n * Generate a consistent avatar color based on a name\n */\nfunction getAvatarColor(name: string): string {\n const colors = [\n 'bg-primary-600',\n 'bg-green-600',\n 'bg-orange-600',\n 'bg-secondary-600',\n 'bg-pink-600',\n 'bg-primary-700',\n 'bg-teal-600',\n 'bg-amber-600',\n ];\n if (!name || typeof name !== 'string') return colors[0];\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n return colors[Math.abs(hash) % colors.length];\n}\n\n/**\n * Custom comparison function for AG Grid cell renderers.\n */\nfunction cellRendererPropsAreEqual(\n prevProps: ICellRendererParams,\n nextProps: ICellRendererParams\n): boolean {\n if (prevProps.value !== nextProps.value) return false;\n if (prevProps.data !== nextProps.data) return false;\n if (prevProps.node?.rowIndex !== nextProps.node?.rowIndex) return false;\n return true;\n}\n\n// =============================================================================\n// Status Configuration Types\n// =============================================================================\n\nexport interface StatusConfig {\n label: string;\n bgClass: string;\n textClass: string;\n iconName?: string;\n}\n\n// =============================================================================\n// Default Status Colors\n// =============================================================================\n\nexport const statusColors: Record<string, StatusConfig> = {\n active: {\n label: 'Active',\n bgClass: 'bg-green-100 dark:bg-green-900/30',\n textClass: 'text-green-600 dark:text-green-400',\n },\n inactive: {\n label: 'Inactive',\n bgClass: 'bg-gray-200 dark:bg-gray-700',\n textClass: 'text-gray-600 dark:text-gray-400',\n },\n pending: {\n label: 'Pending',\n bgClass: 'bg-amber-100 dark:bg-amber-900/30',\n textClass: 'text-amber-600 dark:text-amber-400',\n },\n new: {\n label: 'New',\n bgClass: 'bg-primary-100 dark:bg-primary-900/30',\n textClass: 'text-primary-600 dark:text-primary-400',\n },\n verified: {\n label: 'Verified',\n bgClass: 'bg-green-100 dark:bg-green-900/30',\n textClass: 'text-green-600 dark:text-green-400',\n },\n flagged: {\n label: 'Flagged',\n bgClass: 'bg-red-100 dark:bg-red-900/30',\n textClass: 'text-red-600 dark:text-red-400',\n },\n};\n\n// =============================================================================\n// Avatar Name Renderer\n// =============================================================================\n\ninterface AvatarNameRendererProps extends ICellRendererParams {\n avatarField?: string;\n domainField?: string;\n}\n\n/**\n * Renders an avatar with name, suitable for contact/owner columns\n */\nexport function AvatarNameRenderer(\n props: AvatarNameRendererProps\n): React.ReactElement {\n const { data, value } = props;\n if (!data && !value) return <span className=\"text-muted-foreground\">--</span>;\n\n const displayName = typeof value === 'string' && value ? value : 'Unknown';\n const isSystemValue = ['Unknown', 'Unassigned', 'System'].includes(\n displayName\n );\n\n const avatarUrl =\n props.avatarField && data\n ? (getNestedValue(data, props.avatarField) as string | undefined)\n : data?.avatarUrl;\n\n const domain =\n props.domainField && data\n ? (getNestedValue(data, props.domainField) as string | undefined)\n : data?.company?.domain || data?.domain;\n\n const faviconUrl = getFaviconUrl(domain);\n const initials = getInitials(displayName);\n const imageUrl = avatarUrl || faviconUrl;\n\n if (isSystemValue) {\n return (\n <div className=\"flex items-center gap-2 py-1\">\n <div className=\"flex h-7 w-7 items-center justify-center rounded-full bg-gray-200 text-xs font-semibold text-gray-400 dark:bg-gray-700 dark:text-gray-500\">\n {displayName === 'Unassigned' ? '—' : '??'}\n </div>\n <span className=\"truncate text-gray-400 italic dark:text-gray-500\">\n {displayName}\n </span>\n </div>\n );\n }\n\n return (\n <div className=\"flex items-center gap-2 py-1\">\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={displayName}\n className=\"h-7 w-7 rounded-full bg-white object-cover ring-2 ring-white dark:ring-gray-700\"\n onError={(e) => {\n const target = e.target as HTMLImageElement;\n target.style.display = 'none';\n const sibling = target.nextElementSibling as HTMLElement;\n if (sibling) sibling.style.display = 'flex';\n }}\n />\n ) : null}\n <div\n className={cn(\n 'flex h-7 w-7 items-center justify-center rounded-full text-xs font-semibold text-white',\n getAvatarColor(displayName)\n )}\n style={{ display: imageUrl ? 'none' : 'flex' }}\n >\n {initials}\n </div>\n <span className=\"text-foreground truncate font-medium\">\n {displayName}\n </span>\n </div>\n );\n}\n\n// =============================================================================\n// Status Badge Renderer\n// =============================================================================\n\nexport interface StatusBadgeRendererProps extends ICellRendererParams {\n /** Custom status color configuration */\n statusConfig?: Record<string, StatusConfig>;\n}\n\n/**\n * Renders a colorful status badge\n */\nexport function StatusBadgeRenderer(\n props: StatusBadgeRendererProps\n): React.ReactElement {\n const { value, statusConfig = statusColors } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const normalizedValue = String(value).toLowerCase().replace(/\\s+/g, '_');\n const config = statusConfig[normalizedValue] || {\n label: value,\n bgClass: 'bg-gray-200 dark:bg-gray-700',\n textClass: 'text-gray-600 dark:text-gray-400',\n };\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium',\n config.bgClass,\n config.textClass\n )}\n >\n {config.label}\n </span>\n );\n}\n\n// =============================================================================\n// Engagement Score Renderer\n// =============================================================================\n\n/**\n * Get engagement score colors based on threshold\n */\nfunction getEngagementScoreColors(score: number): {\n barColor: string;\n textColor: string;\n} {\n if (score >= 70)\n return {\n barColor: 'bg-green-500',\n textColor: 'text-green-600 dark:text-green-400',\n };\n if (score >= 40)\n return {\n barColor: 'bg-amber-500',\n textColor: 'text-amber-600 dark:text-amber-400',\n };\n if (score >= 20)\n return {\n barColor: 'bg-orange-500',\n textColor: 'text-orange-600 dark:text-orange-400',\n };\n return {\n barColor: 'bg-gray-400',\n textColor: 'text-gray-600 dark:text-gray-400',\n };\n}\n\n/**\n * Renders engagement score with color-coded progress bar\n */\nexport function EngagementScoreRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const score = Number(value);\n const percentage = Math.min(100, Math.max(0, score));\n const { barColor, textColor } = getEngagementScoreColors(score);\n\n return (\n <div className=\"flex items-center gap-2 py-1\">\n <div className=\"h-1.5 w-16 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700\">\n <div\n className={cn('h-full rounded-full transition-all', barColor)}\n style={{ width: `${percentage}%` }}\n />\n </div>\n <span className={cn('text-sm font-medium', textColor)}>{score}</span>\n </div>\n );\n}\n\n// =============================================================================\n// Email Renderer\n// =============================================================================\n\n/**\n * Renders email with mailto link\n */\nexport function EmailRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n return (\n <a\n href={`mailto:${value}`}\n className=\"text-primary-600 dark:text-primary-400 inline-flex items-center gap-1.5 hover:underline\"\n onClick={(e) => e.stopPropagation()}\n >\n <MailIcon className=\"h-3 w-3 opacity-60\" />\n <span className=\"truncate\">{value}</span>\n </a>\n );\n}\n\n// =============================================================================\n// Phone Renderer\n// =============================================================================\n\n/**\n * Renders phone with click-to-call\n */\nexport function PhoneRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const displayValue = formatPhoneDisplay(value);\n\n return (\n <a\n href={`tel:${value}`}\n className=\"text-foreground hover:text-primary-600 dark:hover:text-primary-400 inline-flex items-center gap-1.5\"\n onClick={(e) => e.stopPropagation()}\n >\n <PhoneIcon className=\"h-3 w-3 text-green-500 opacity-70\" />\n <span>{displayValue}</span>\n </a>\n );\n}\n\n// =============================================================================\n// Link Renderers\n// =============================================================================\n\n/**\n * Renders a domain/website URL with icon\n */\nexport function DomainRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const url = value.startsWith('http') ? value : `https://${value}`;\n const displayDomain = value.replace(/^https?:\\/\\//, '').replace(/\\/$/, '');\n\n return (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary-600 dark:text-primary-400 inline-flex items-center gap-1.5 hover:underline\"\n onClick={(e) => e.stopPropagation()}\n >\n <GlobeIcon className=\"h-3 w-3 opacity-60\" />\n <span className=\"truncate\">{displayDomain}</span>\n </a>\n );\n}\n\n/**\n * Renders a LinkedIn URL with icon\n */\nexport function LinkedInRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n return (\n <a\n href={value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 text-[#0A66C2] hover:underline\"\n onClick={(e) => e.stopPropagation()}\n >\n <Linkedin className=\"h-4 w-4\" />\n <span className=\"truncate text-sm\">LinkedIn</span>\n </a>\n );\n}\n\n// =============================================================================\n// Currency Renderer\n// =============================================================================\n\n/**\n * Renders currency with proper formatting\n */\nexport function CurrencyRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(value);\n\n return (\n <span className=\"text-foreground font-medium tabular-nums\">\n {formatted}\n </span>\n );\n}\n\n// =============================================================================\n// Number Renderer\n// =============================================================================\n\n/**\n * Renders number with comma formatting\n */\nexport function NumberRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const formatted = Number(value).toLocaleString();\n\n return <span className=\"text-foreground tabular-nums\">{formatted}</span>;\n}\n\n// =============================================================================\n// Date Renderer\n// =============================================================================\n\nexport interface DateRendererProps extends ICellRendererParams {\n format?: 'short' | 'medium' | 'long' | 'relative' | 'datetime';\n}\n\n/**\n * Renders date with formatting options\n */\nexport function DateRenderer(props: DateRendererProps): React.ReactElement {\n const { value, format = 'medium' } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const date = value instanceof Date ? value : new Date(value);\n\n if (isNaN(date.getTime())) {\n return <span className=\"text-muted-foreground\">--</span>;\n }\n\n if (format === 'relative') {\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n\n let relativeText: string;\n if (days === 0) {\n relativeText = 'Today';\n } else if (days === 1) {\n relativeText = 'Yesterday';\n } else if (days < 7) {\n relativeText = `${days} days ago`;\n } else if (days < 30) {\n const weeks = Math.floor(days / 7);\n relativeText = `${weeks} week${weeks > 1 ? 's' : ''} ago`;\n } else if (days < 365) {\n const months = Math.floor(days / 30);\n relativeText = `${months} month${months > 1 ? 's' : ''} ago`;\n } else {\n const years = Math.floor(days / 365);\n relativeText = `${years} year${years > 1 ? 's' : ''} ago`;\n }\n\n return <span className=\"text-muted-foreground\">{relativeText}</span>;\n }\n\n const dateOptions: Intl.DateTimeFormatOptions =\n format === 'short'\n ? { month: 'numeric', day: 'numeric' }\n : format === 'long'\n ? { month: 'long', day: 'numeric', year: 'numeric' }\n : { month: 'short', day: 'numeric', year: 'numeric' };\n\n if (format === 'datetime') {\n const formatted = date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n });\n return <span className=\"text-foreground\">{formatted}</span>;\n }\n\n const formatted = date.toLocaleDateString('en-US', dateOptions);\n\n return <span className=\"text-foreground\">{formatted}</span>;\n}\n\n// =============================================================================\n// Boolean/Yes-No Renderer\n// =============================================================================\n\n/**\n * Renders boolean as styled Yes/No badge\n */\nexport function BooleanRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const isTrue = Boolean(value);\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium',\n isTrue\n ? 'bg-green-100 text-green-600 dark:bg-green-900/30 dark:text-green-400'\n : 'bg-gray-200 text-gray-600 dark:bg-gray-700 dark:text-gray-400'\n )}\n >\n {isTrue ? (\n <CheckCircleIcon className=\"h-3 w-3\" />\n ) : (\n <ClockIcon className=\"h-3 w-3\" />\n )}\n {isTrue ? 'Yes' : 'No'}\n </span>\n );\n}\n\n// =============================================================================\n// Company Renderer\n// =============================================================================\n\ninterface CompanyRendererProps extends ICellRendererParams {\n companyIdField?: string;\n domainField?: string;\n}\n\n/**\n * Renders company name with favicon\n */\nexport function CompanyRenderer(\n props: CompanyRendererProps\n): React.ReactElement {\n const { data, value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const domain =\n props.domainField && data\n ? (getNestedValue(data, props.domainField) as string | undefined)\n : data?.company?.domain || data?.domain;\n\n const faviconUrl = getFaviconUrl(domain);\n\n return (\n <div className=\"flex items-center gap-2 py-0.5\">\n {faviconUrl ? (\n <img\n src={faviconUrl}\n alt={value}\n className=\"h-5 w-5 rounded bg-white object-contain\"\n onError={(e) => {\n const target = e.target as HTMLImageElement;\n target.style.display = 'none';\n const sibling = target.nextElementSibling as HTMLElement;\n if (sibling) sibling.style.display = 'flex';\n }}\n />\n ) : null}\n <div\n className=\"bg-primary-100 text-primary-600 dark:bg-primary-900/30 dark:text-primary-400 flex h-5 w-5 items-center justify-center rounded text-[9px] font-semibold\"\n style={{ display: faviconUrl ? 'none' : 'flex' }}\n >\n {getInitials(value)}\n </div>\n <span className=\"truncate font-medium\">{value}</span>\n </div>\n );\n}\n\n// =============================================================================\n// Progress Renderer\n// =============================================================================\n\nexport interface ProgressRendererProps extends ICellRendererParams {\n /** Color of the progress bar */\n barColor?: string;\n /** Maximum value (default 100) */\n max?: number;\n}\n\n/**\n * Renders a progress bar\n */\nexport function ProgressRenderer(\n props: ProgressRendererProps\n): React.ReactElement {\n const { value, barColor = 'bg-primary-500', max = 100 } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const percentage = Math.min(100, Math.max(0, (Number(value) / max) * 100));\n\n return (\n <div className=\"flex items-center gap-2 py-1\">\n <div className=\"h-2 w-20 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700\">\n <div\n className={cn('h-full rounded-full transition-all', barColor)}\n style={{ width: `${percentage}%` }}\n />\n </div>\n <span className=\"text-muted-foreground text-xs font-medium\">\n {Math.round(percentage)}%\n </span>\n </div>\n );\n}\n\n// =============================================================================\n// Tags Renderer\n// =============================================================================\n\n/**\n * Renders an array of tags as badges\n */\nexport function TagsRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value || !Array.isArray(value) || value.length === 0) {\n return <span className=\"text-muted-foreground\">--</span>;\n }\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {value.slice(0, 3).map((tag: string, index: number) => (\n <span\n key={index}\n className=\"inline-flex items-center rounded-full bg-gray-100 px-2 py-0.5 text-xs font-medium text-gray-600 dark:bg-gray-800 dark:text-gray-400\"\n >\n {tag}\n </span>\n ))}\n {value.length > 3 && (\n <span className=\"text-muted-foreground text-xs\">\n +{value.length - 3}\n </span>\n )}\n </div>\n );\n}\n\n// =============================================================================\n// Memoized Renderer Exports (for performance)\n// =============================================================================\n\nexport const MemoizedAvatarNameRenderer = memo(\n AvatarNameRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedStatusBadgeRenderer = memo(\n StatusBadgeRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedEngagementScoreRenderer = memo(\n EngagementScoreRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedEmailRenderer = memo(\n EmailRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedPhoneRenderer = memo(\n PhoneRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedLinkedInRenderer = memo(\n LinkedInRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedDomainRenderer = memo(\n DomainRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedCurrencyRenderer = memo(\n CurrencyRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedNumberRenderer = memo(\n NumberRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedDateRenderer = memo(\n DateRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedBooleanRenderer = memo(\n BooleanRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedCompanyRenderer = memo(\n CompanyRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedProgressRenderer = memo(\n ProgressRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedTagsRenderer = memo(\n TagsRenderer,\n cellRendererPropsAreEqual\n);\n\n// =============================================================================\n// Default Export\n// =============================================================================\n\nexport const CellRenderers = {\n // Original renderers\n AvatarNameRenderer,\n StatusBadgeRenderer,\n EngagementScoreRenderer,\n EmailRenderer,\n PhoneRenderer,\n LinkedInRenderer,\n DomainRenderer,\n CurrencyRenderer,\n NumberRenderer,\n DateRenderer,\n BooleanRenderer,\n CompanyRenderer,\n ProgressRenderer,\n TagsRenderer,\n\n // Memoized renderers (recommended for performance)\n MemoizedAvatarNameRenderer,\n MemoizedStatusBadgeRenderer,\n MemoizedEngagementScoreRenderer,\n MemoizedEmailRenderer,\n MemoizedPhoneRenderer,\n MemoizedLinkedInRenderer,\n MemoizedDomainRenderer,\n MemoizedCurrencyRenderer,\n MemoizedNumberRenderer,\n MemoizedDateRenderer,\n MemoizedBooleanRenderer,\n MemoizedCompanyRenderer,\n MemoizedProgressRenderer,\n MemoizedTagsRenderer,\n\n // Utility functions\n formatPhoneDisplay,\n};\n\nexport default CellRenderers;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/AGGrid/AGGrid.tsx","../src/components/AGGrid/CellRenderers.tsx"],"names":["jsx","formatted"],"mappings":"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","file":"ag-grid.js","sourcesContent":["import * as React from 'react';\nimport { AgGridReact, AgGridReactProps } from 'ag-grid-react';\nimport {\n ModuleRegistry,\n AllCommunityModule,\n type GridApi,\n type GridReadyEvent,\n type ColDef as AGColDef,\n type RowClickedEvent,\n type RowSelectionOptions,\n} from 'ag-grid-community';\nimport { cn } from '../../utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type { BrandConfig } from '../../brands/types';\n\n// Register AG Grid Community modules\nModuleRegistry.registerModules([AllCommunityModule]);\n\n// ============================================================================\n// AG Grid Wrapper Styles\n// ============================================================================\n\nconst agGridVariants = cva('ag-theme-custom w-full', {\n variants: {\n /**\n * Visual variant of the grid\n */\n variant: {\n default: '',\n bordered:\n '[&_.ag-root-wrapper]:border [&_.ag-root-wrapper]:border-border [&_.ag-root-wrapper]:rounded-lg',\n striped: '[&_.ag-row-odd]:bg-muted/50',\n card: '[&_.ag-root-wrapper]:shadow-card [&_.ag-root-wrapper]:rounded-lg [&_.ag-root-wrapper]:border-0',\n },\n /**\n * Size/density of the grid rows\n */\n size: {\n xs: '[&_.ag-row]:h-7 [&_.ag-header-row]:h-7 text-xs [&_.ag-cell]:px-2',\n sm: '[&_.ag-row]:h-8 [&_.ag-header-row]:h-8 text-xs [&_.ag-cell]:px-3',\n md: '[&_.ag-row]:h-10 [&_.ag-header-row]:h-10 text-sm [&_.ag-cell]:px-4',\n lg: '[&_.ag-row]:h-12 [&_.ag-header-row]:h-12 text-base [&_.ag-cell]:px-4',\n xl: '[&_.ag-row]:h-14 [&_.ag-header-row]:h-14 text-base [&_.ag-cell]:px-6',\n },\n /**\n * Brand theme variant\n */\n brand: {\n default: '',\n mieweb: 'ag-brand-mieweb',\n bluehive: 'ag-brand-bluehive',\n waggleline: 'ag-brand-waggleline',\n webchart: 'ag-brand-webchart',\n 'enterprise-health': 'ag-brand-enterprise-health',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n brand: 'default',\n },\n});\n\n// ============================================================================\n// AG Grid Component Types\n// ============================================================================\n\nexport interface AGGridProps<TData = unknown>\n extends\n Omit<AgGridReactProps<TData>, 'className' | 'rowSelection'>,\n VariantProps<typeof agGridVariants> {\n /** Additional CSS classes for the grid container */\n className?: string;\n /** Height of the grid container */\n height?: string | number;\n /** Loading state */\n loading?: boolean;\n /** Callback when a row is clicked */\n onRowClick?: (event: RowClickedEvent<TData>) => void;\n /** Reference to access the grid API */\n gridRef?: React.RefObject<AgGridReact<TData> | null>;\n /** Row selection configuration (v35+ object format or legacy string) */\n rowSelection?: RowSelectionOptions | 'single' | 'multiple';\n /** Brand configuration for theming */\n brandConfig?: BrandConfig;\n /** Show pagination controls */\n pagination?: boolean;\n /** Enable column resizing */\n resizable?: boolean;\n /** Enable sorting */\n sortable?: boolean;\n /** Enable filtering */\n filterable?: boolean;\n /** Custom empty state message */\n noDataMessage?: string;\n /** Custom loading message */\n loadingMessage?: string;\n}\n\n// ============================================================================\n// Default Column Definitions\n// ============================================================================\n\n// Size to pixel height mapping for AG Grid (row heights + default container heights)\nconst sizeToRowHeight: Record<\n string,\n { rowHeight: number; headerHeight: number; containerHeight: number }\n> = {\n xs: { rowHeight: 28, headerHeight: 28, containerHeight: 280 },\n sm: { rowHeight: 32, headerHeight: 32, containerHeight: 320 },\n md: { rowHeight: 40, headerHeight: 40, containerHeight: 400 },\n lg: { rowHeight: 48, headerHeight: 48, containerHeight: 480 },\n xl: { rowHeight: 56, headerHeight: 56, containerHeight: 560 },\n};\n\n// Enhanced default column definitions with brand awareness\nconst getDefaultColDef = (\n sortable: boolean,\n filterable: boolean,\n resizable: boolean\n): AGColDef => ({\n sortable,\n filter: filterable,\n resizable,\n minWidth: 100,\n flex: 1,\n suppressMovable: false,\n headerClass: 'ag-header-cell-custom',\n cellClass: 'ag-cell-custom',\n});\n\n// ============================================================================\n// AG Grid Component\n// ============================================================================\n\n/**\n * A themed AG Grid wrapper component that integrates with the MIE Web UI design system.\n *\n * This component wraps AG Grid Community Edition and provides:\n * - Consistent theming with CSS variables\n * - Size variants (sm, md, lg)\n * - Visual variants (default, bordered, striped)\n * - Loading states\n * - Simplified API while maintaining full AG Grid capabilities\n *\n * @example\n * ```tsx\n * const columnDefs = [\n * { field: 'name', headerName: 'Name' },\n * { field: 'email', headerName: 'Email' },\n * { field: 'status', headerName: 'Status' },\n * ];\n *\n * const rowData = [\n * { name: 'John Doe', email: 'john@example.com', status: 'Active' },\n * { name: 'Jane Smith', email: 'jane@example.com', status: 'Pending' },\n * ];\n *\n * <AGGrid\n * columnDefs={columnDefs}\n * rowData={rowData}\n * variant=\"bordered\"\n * size=\"md\"\n * />\n * ```\n */\nfunction AGGridInner<TData = unknown>(\n {\n className,\n variant,\n size,\n brand,\n height,\n loading = false,\n columnDefs,\n rowData,\n defaultColDef: userDefaultColDef,\n onGridReady,\n onRowClick,\n gridRef,\n rowSelection,\n brandConfig,\n pagination = false,\n resizable = true,\n sortable = true,\n filterable = true,\n noDataMessage = 'No data to display',\n loadingMessage = 'Loading...',\n ...props\n }: AGGridProps<TData>,\n ref: React.ForwardedRef<AgGridReact<TData>>\n) {\n const internalRef = React.useRef<AgGridReact<TData>>(null);\n const gridApiRef = React.useRef<GridApi<TData> | null>(null);\n\n // Use provided ref or internal ref\n const resolvedRef = gridRef || ref || internalRef;\n\n // Handle grid ready\n const handleGridReady = React.useCallback(\n (event: GridReadyEvent<TData>) => {\n gridApiRef.current = event.api;\n onGridReady?.(event);\n },\n [onGridReady]\n );\n\n // Handle row click\n const handleRowClicked = React.useCallback(\n (event: RowClickedEvent<TData>) => {\n onRowClick?.(event);\n },\n [onRowClick]\n );\n\n // Merge default column definitions with feature toggles\n const mergedDefaultColDef = React.useMemo(\n () =>\n ({\n ...getDefaultColDef(sortable, filterable, resizable),\n ...userDefaultColDef,\n }) as AGColDef<TData>,\n [userDefaultColDef, sortable, filterable, resizable]\n );\n\n // Convert legacy rowSelection string to v35+ object format\n const resolvedRowSelection = React.useMemo(():\n | RowSelectionOptions\n | undefined => {\n if (!rowSelection) return undefined;\n\n // If already in object format, use as-is\n if (typeof rowSelection === 'object') {\n return rowSelection;\n }\n\n // Convert legacy string format to v35+ object format\n if (rowSelection === 'multiple') {\n return {\n mode: 'multiRow',\n enableClickSelection: true,\n };\n }\n\n if (rowSelection === 'single') {\n return {\n mode: 'singleRow',\n enableClickSelection: true,\n };\n }\n\n return undefined;\n }, [rowSelection]);\n\n // Show loading overlay when loading prop changes\n React.useEffect(() => {\n if (gridApiRef.current) {\n if (loading) {\n gridApiRef.current.showLoadingOverlay();\n } else {\n gridApiRef.current.hideOverlay();\n }\n }\n }, [loading]);\n\n // Get row/header heights based on size prop\n const sizeConfig = sizeToRowHeight[size || 'md'];\n\n // Use provided height or default based on size\n const resolvedHeight = height ?? sizeConfig.containerHeight;\n\n return (\n <div\n data-slot=\"ag-grid\"\n className={cn(agGridVariants({ variant, size, brand }), className)}\n style={{\n height:\n typeof resolvedHeight === 'number'\n ? `${resolvedHeight}px`\n : resolvedHeight,\n ...(brandConfig &&\n ({\n '--ag-primary-color': brandConfig.colors.primary[600],\n '--ag-font-family':\n brandConfig.typography.fontFamily.sans.join(', '),\n } as React.CSSProperties)),\n }}\n data-brand={brand}\n >\n <AgGridReact<TData>\n ref={resolvedRef as React.RefObject<AgGridReact<TData>>}\n columnDefs={columnDefs}\n rowData={rowData}\n defaultColDef={mergedDefaultColDef}\n onGridReady={handleGridReady}\n onRowClicked={handleRowClicked}\n animateRows={true}\n enableBrowserTooltips={true}\n rowSelection={resolvedRowSelection}\n pagination={pagination}\n paginationPageSize={pagination ? 50 : undefined}\n paginationPageSizeSelector={pagination ? [25, 50, 100, 200] : undefined}\n rowHeight={sizeConfig.rowHeight}\n headerHeight={sizeConfig.headerHeight}\n noRowsOverlayComponent={() => (\n <div className=\"text-muted-foreground py-8 text-center\">\n {noDataMessage}\n </div>\n )}\n loadingOverlayComponent={() => (\n <div className=\"text-muted-foreground py-8 text-center\">\n {loadingMessage}\n </div>\n )}\n theme=\"legacy\"\n {...props}\n />\n </div>\n );\n}\n\n// Forward ref with generic support\nexport const AGGrid = React.forwardRef(AGGridInner) as <TData = unknown>(\n props: AGGridProps<TData> & { ref?: React.ForwardedRef<AgGridReact<TData>> }\n) => React.ReactElement;\n\n// Display name for debugging\n(AGGrid as React.FC).displayName = 'AGGrid';\n\n// ============================================================================\n// Re-export AG Grid types for convenience\n// ============================================================================\n\n// Export ColDef with the original name for external use\nexport type { ColDef as AGColDef } from 'ag-grid-community';\n\n// Also export as ColDef for convenience\nexport type ColDef<TData = unknown, TValue = unknown> = AGColDef<TData, TValue>;\n\nexport type {\n GridApi,\n GridReadyEvent,\n RowClickedEvent,\n CellClickedEvent,\n CellValueChangedEvent,\n SelectionChangedEvent,\n FilterChangedEvent,\n SortChangedEvent,\n RowSelectedEvent,\n FirstDataRenderedEvent,\n} from 'ag-grid-community';\n\nexport { AgGridReact } from 'ag-grid-react';\n","/**\n * AG Grid Cell Renderers\n *\n * Rich, visually appealing cell renderers for AG Grid tables.\n * Based on Waggleline's production-tested implementations with\n * full dark mode support and design system integration.\n *\n * All renderers are memoized with React.memo for performance optimization.\n */\n\nimport * as React from 'react';\nimport { memo } from 'react';\nimport type { ICellRendererParams } from 'ag-grid-community';\nimport { cn } from '../../utils/cn';\nimport {\n MailIcon,\n PhoneIcon,\n GlobeIcon,\n CheckCircleIcon,\n ClockIcon,\n} from '../Icons';\nimport { Linkedin } from 'lucide-react';\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Get a nested value from an object using dot notation (e.g., 'company.domain')\n */\nfunction getNestedValue(\n obj: Record<string, unknown> | undefined | null,\n path: string\n): unknown {\n if (!obj || !path) return undefined;\n const parts = path.split('.');\n let current: unknown = obj;\n for (const part of parts) {\n if (current === null || current === undefined) return undefined;\n if (typeof current === 'object') {\n current = (current as Record<string, unknown>)[part];\n } else {\n return undefined;\n }\n }\n return current;\n}\n\n/**\n * Get favicon URL from a domain using Google's favicon service\n */\nfunction getFaviconUrl(domain: string | null | undefined): string | null {\n if (!domain || typeof domain !== 'string') return null;\n const cleanDomain = domain\n .replace(/^https?:\\/\\//, '')\n .replace(/\\/.*$/, '')\n .trim();\n if (!cleanDomain) return null;\n return `https://www.google.com/s2/favicons?domain=${cleanDomain}&sz=64`;\n}\n\n/**\n * Format a phone number with dashes for display\n */\nexport function formatPhoneDisplay(phone: string | null | undefined): string {\n if (!phone) return '';\n const cleaned = phone.replace(/\\D/g, '');\n if (cleaned.length === 10) {\n return `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;\n }\n if (cleaned.length === 11 && cleaned.startsWith('1')) {\n return `${cleaned[0]}-${cleaned.slice(1, 4)}-${cleaned.slice(4, 7)}-${cleaned.slice(7)}`;\n }\n return phone;\n}\n\n/**\n * Generate initials from a name\n */\nfunction getInitials(name: string): string {\n if (!name || typeof name !== 'string') return '??';\n const parts = name.split(' ').filter(Boolean);\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n}\n\n/**\n * Generate a consistent avatar color based on a name\n */\nfunction getAvatarColor(name: string): string {\n const colors = [\n 'bg-primary-800',\n 'bg-green-600',\n 'bg-orange-600',\n 'bg-secondary-600',\n 'bg-pink-600',\n 'bg-primary-700',\n 'bg-teal-600',\n 'bg-amber-600',\n ];\n if (!name || typeof name !== 'string') return colors[0];\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n return colors[Math.abs(hash) % colors.length];\n}\n\n/**\n * Custom comparison function for AG Grid cell renderers.\n */\nfunction cellRendererPropsAreEqual(\n prevProps: ICellRendererParams,\n nextProps: ICellRendererParams\n): boolean {\n if (prevProps.value !== nextProps.value) return false;\n if (prevProps.data !== nextProps.data) return false;\n if (prevProps.node?.rowIndex !== nextProps.node?.rowIndex) return false;\n return true;\n}\n\n// =============================================================================\n// Status Configuration Types\n// =============================================================================\n\nexport interface StatusConfig {\n label: string;\n bgClass: string;\n textClass: string;\n iconName?: string;\n}\n\n// =============================================================================\n// Default Status Colors\n// =============================================================================\n\nexport const statusColors: Record<string, StatusConfig> = {\n active: {\n label: 'Active',\n bgClass: 'bg-green-100 dark:bg-green-900/30',\n textClass: 'text-green-700 dark:text-green-400',\n },\n inactive: {\n label: 'Inactive',\n bgClass: 'bg-gray-200 dark:bg-gray-700',\n textClass: 'text-gray-600 dark:text-gray-300',\n },\n closed_won: {\n label: 'Closed Won',\n bgClass: 'bg-green-100 dark:bg-green-900/30',\n textClass: 'text-green-700 dark:text-green-400',\n },\n closed_lost: {\n label: 'Closed Lost',\n bgClass: 'bg-red-100 dark:bg-red-900/30',\n textClass: 'text-red-700 dark:text-red-400',\n },\n pending: {\n label: 'Pending',\n bgClass: 'bg-amber-100 dark:bg-amber-900/30',\n textClass: 'text-amber-700 dark:text-amber-400',\n },\n new: {\n label: 'New',\n bgClass: 'bg-primary-100 dark:bg-primary-900/30',\n textClass: 'text-green-700 dark:text-green-400',\n },\n verified: {\n label: 'Verified',\n bgClass: 'bg-green-100 dark:bg-green-900/30',\n textClass: 'text-green-700 dark:text-green-400',\n },\n flagged: {\n label: 'Flagged',\n bgClass: 'bg-red-100 dark:bg-red-900/30',\n textClass: 'text-red-700 dark:text-red-400',\n },\n};\n\n// =============================================================================\n// Avatar Name Renderer\n// =============================================================================\n\ninterface AvatarNameRendererProps extends ICellRendererParams {\n avatarField?: string;\n domainField?: string;\n}\n\n/**\n * Renders an avatar with name, suitable for contact/owner columns\n */\nexport function AvatarNameRenderer(\n props: AvatarNameRendererProps\n): React.ReactElement {\n const { data, value } = props;\n if (!data && !value) return <span className=\"text-muted-foreground\">--</span>;\n\n const displayName = typeof value === 'string' && value ? value : 'Unknown';\n const isSystemValue = ['Unknown', 'Unassigned', 'System'].includes(\n displayName\n );\n\n const avatarUrl =\n props.avatarField && data\n ? (getNestedValue(data, props.avatarField) as string | undefined)\n : data?.avatarUrl;\n\n const domain =\n props.domainField && data\n ? (getNestedValue(data, props.domainField) as string | undefined)\n : data?.company?.domain || data?.domain;\n\n const faviconUrl = getFaviconUrl(domain);\n const initials = getInitials(displayName);\n const imageUrl = avatarUrl || faviconUrl;\n\n if (isSystemValue) {\n return (\n <div className=\"flex items-center gap-2 py-1\">\n <div className=\"dark:text-muted-foreground flex h-7 w-7 items-center justify-center rounded-full bg-gray-200 text-xs font-semibold text-gray-400 dark:bg-gray-700\">\n {displayName === 'Unassigned' ? '—' : '??'}\n </div>\n <span className=\"dark:text-muted-foreground truncate text-gray-400 italic\">\n {displayName}\n </span>\n </div>\n );\n }\n\n return (\n <div className=\"flex items-center gap-2 py-1\">\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={displayName}\n className=\"h-7 w-7 rounded-full bg-white object-cover ring-2 ring-white dark:ring-gray-700\"\n onError={(e) => {\n const target = e.target as HTMLImageElement;\n target.style.display = 'none';\n const sibling = target.nextElementSibling as HTMLElement;\n if (sibling) sibling.style.display = 'flex';\n }}\n />\n ) : null}\n <div\n className={cn(\n 'flex h-7 w-7 items-center justify-center rounded-full text-xs font-semibold text-white',\n getAvatarColor(displayName)\n )}\n style={{ display: imageUrl ? 'none' : 'flex' }}\n >\n {initials}\n </div>\n <span className=\"text-foreground truncate font-medium\">\n {displayName}\n </span>\n </div>\n );\n}\n\n// =============================================================================\n// Status Badge Renderer\n// =============================================================================\n\nexport interface StatusBadgeRendererProps extends ICellRendererParams {\n /** Custom status color configuration */\n statusConfig?: Record<string, StatusConfig>;\n}\n\n/**\n * Renders a colorful status badge\n */\nexport function StatusBadgeRenderer(\n props: StatusBadgeRendererProps\n): React.ReactElement {\n const { value, statusConfig = statusColors } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const normalizedValue = String(value).toLowerCase().replace(/\\s+/g, '_');\n const config = statusConfig[normalizedValue] || {\n label: value,\n bgClass: 'bg-gray-200 dark:bg-gray-700',\n textClass: 'text-gray-600 dark:text-gray-300',\n };\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium',\n config.bgClass,\n config.textClass\n )}\n >\n {config.label}\n </span>\n );\n}\n\n// =============================================================================\n// Engagement Score Renderer\n// =============================================================================\n\n/**\n * Get engagement score colors based on threshold\n */\nfunction getEngagementScoreColors(score: number): {\n barColor: string;\n textColor: string;\n} {\n if (score >= 70)\n return {\n barColor: 'bg-green-500',\n textColor: 'text-green-700 dark:text-green-400',\n };\n if (score >= 40)\n return {\n barColor: 'bg-amber-500',\n textColor: 'text-amber-700 dark:text-amber-400',\n };\n if (score >= 20)\n return {\n barColor: 'bg-orange-500',\n textColor: 'text-orange-700 dark:text-orange-400',\n };\n return {\n barColor: 'bg-gray-400',\n textColor: 'text-muted-foreground',\n };\n}\n\n/**\n * Renders engagement score with color-coded progress bar\n */\nexport function EngagementScoreRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const score = Number(value);\n const percentage = Math.min(100, Math.max(0, score));\n const { barColor, textColor } = getEngagementScoreColors(score);\n\n return (\n <div className=\"flex items-center gap-2 py-1\">\n <div className=\"h-1.5 w-16 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700\">\n <div\n className={cn('h-full rounded-full transition-all', barColor)}\n style={{ width: `${percentage}%` }}\n />\n </div>\n <span className={cn('text-sm font-medium', textColor)}>{score}</span>\n </div>\n );\n}\n\n// =============================================================================\n// Email Renderer\n// =============================================================================\n\n/**\n * Renders email with mailto link\n */\nexport function EmailRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n return (\n <a\n href={`mailto:${value}`}\n className=\"text-primary-800 dark:text-primary-400 inline-flex items-center gap-1.5 hover:underline\"\n onClick={(e) => e.stopPropagation()}\n >\n <MailIcon className=\"h-3 w-3 opacity-60\" />\n <span className=\"truncate\">{value}</span>\n </a>\n );\n}\n\n// =============================================================================\n// Phone Renderer\n// =============================================================================\n\n/**\n * Renders phone with click-to-call\n */\nexport function PhoneRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const displayValue = formatPhoneDisplay(value);\n\n return (\n <a\n href={`tel:${value}`}\n className=\"text-foreground hover:text-primary-800 dark:hover:text-primary-400 inline-flex items-center gap-1.5\"\n onClick={(e) => e.stopPropagation()}\n >\n <PhoneIcon className=\"h-3 w-3 text-green-500 opacity-70\" />\n <span>{displayValue}</span>\n </a>\n );\n}\n\n// =============================================================================\n// Link Renderers\n// =============================================================================\n\n/**\n * Renders a domain/website URL with icon\n */\nexport function DomainRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const url = value.startsWith('http') ? value : `https://${value}`;\n const displayDomain = value.replace(/^https?:\\/\\//, '').replace(/\\/$/, '');\n\n return (\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary-800 dark:text-primary-400 inline-flex items-center gap-1.5 hover:underline\"\n onClick={(e) => e.stopPropagation()}\n >\n <GlobeIcon className=\"h-3 w-3 opacity-60\" />\n <span className=\"truncate\">{displayDomain}</span>\n </a>\n );\n}\n\n/**\n * Renders a LinkedIn URL with icon\n */\nexport function LinkedInRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n return (\n <a\n href={value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 text-[#0A66C2] hover:underline\"\n onClick={(e) => e.stopPropagation()}\n >\n <Linkedin className=\"h-4 w-4\" />\n <span className=\"truncate text-sm\">LinkedIn</span>\n </a>\n );\n}\n\n// =============================================================================\n// Currency Renderer\n// =============================================================================\n\n/**\n * Renders currency with proper formatting\n */\nexport function CurrencyRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(value);\n\n return (\n <span className=\"text-foreground font-medium tabular-nums\">\n {formatted}\n </span>\n );\n}\n\n// =============================================================================\n// Number Renderer\n// =============================================================================\n\n/**\n * Renders number with comma formatting\n */\nexport function NumberRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const formatted = Number(value).toLocaleString();\n\n return <span className=\"text-foreground tabular-nums\">{formatted}</span>;\n}\n\n// =============================================================================\n// Date Renderer\n// =============================================================================\n\nexport interface DateRendererProps extends ICellRendererParams {\n format?: 'short' | 'medium' | 'long' | 'relative' | 'datetime';\n}\n\n/**\n * Renders date with formatting options\n */\nexport function DateRenderer(props: DateRendererProps): React.ReactElement {\n const { value, format = 'medium' } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const date = value instanceof Date ? value : new Date(value);\n\n if (isNaN(date.getTime())) {\n return <span className=\"text-muted-foreground\">--</span>;\n }\n\n if (format === 'relative') {\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n\n let relativeText: string;\n if (days === 0) {\n relativeText = 'Today';\n } else if (days === 1) {\n relativeText = 'Yesterday';\n } else if (days < 7) {\n relativeText = `${days} days ago`;\n } else if (days < 30) {\n const weeks = Math.floor(days / 7);\n relativeText = `${weeks} week${weeks > 1 ? 's' : ''} ago`;\n } else if (days < 365) {\n const months = Math.floor(days / 30);\n relativeText = `${months} month${months > 1 ? 's' : ''} ago`;\n } else {\n const years = Math.floor(days / 365);\n relativeText = `${years} year${years > 1 ? 's' : ''} ago`;\n }\n\n return <span className=\"text-muted-foreground\">{relativeText}</span>;\n }\n\n const dateOptions: Intl.DateTimeFormatOptions =\n format === 'short'\n ? { month: 'numeric', day: 'numeric' }\n : format === 'long'\n ? { month: 'long', day: 'numeric', year: 'numeric' }\n : { month: 'short', day: 'numeric', year: 'numeric' };\n\n if (format === 'datetime') {\n const formatted = date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n });\n return <span className=\"text-foreground\">{formatted}</span>;\n }\n\n const formatted = date.toLocaleDateString('en-US', dateOptions);\n\n return <span className=\"text-foreground\">{formatted}</span>;\n}\n\n// =============================================================================\n// Boolean/Yes-No Renderer\n// =============================================================================\n\n/**\n * Renders boolean as styled Yes/No badge\n */\nexport function BooleanRenderer(\n props: ICellRendererParams\n): React.ReactElement {\n const { value } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const isTrue = Boolean(value);\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium',\n isTrue\n ? 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400'\n : 'bg-gray-200 text-gray-600 dark:bg-gray-700 dark:text-gray-300'\n )}\n >\n {isTrue ? (\n <CheckCircleIcon className=\"h-3 w-3\" />\n ) : (\n <ClockIcon className=\"h-3 w-3\" />\n )}\n {isTrue ? 'Yes' : 'No'}\n </span>\n );\n}\n\n// =============================================================================\n// Company Renderer\n// =============================================================================\n\ninterface CompanyRendererProps extends ICellRendererParams {\n companyIdField?: string;\n domainField?: string;\n}\n\n/**\n * Renders company name with favicon\n */\nexport function CompanyRenderer(\n props: CompanyRendererProps\n): React.ReactElement {\n const { data, value } = props;\n if (!value) return <span className=\"text-muted-foreground\">--</span>;\n\n const domain =\n props.domainField && data\n ? (getNestedValue(data, props.domainField) as string | undefined)\n : data?.company?.domain || data?.domain;\n\n const faviconUrl = getFaviconUrl(domain);\n\n return (\n <div className=\"flex items-center gap-2 py-0.5\">\n {faviconUrl ? (\n <img\n src={faviconUrl}\n alt={value}\n className=\"h-5 w-5 rounded bg-white object-contain\"\n onError={(e) => {\n const target = e.target as HTMLImageElement;\n target.style.display = 'none';\n const sibling = target.nextElementSibling as HTMLElement;\n if (sibling) sibling.style.display = 'flex';\n }}\n />\n ) : null}\n <div\n className=\"bg-primary-100 text-primary-800 dark:bg-primary-900/30 dark:text-primary-400 flex h-5 w-5 items-center justify-center rounded text-[9px] font-semibold\"\n style={{ display: faviconUrl ? 'none' : 'flex' }}\n >\n {getInitials(value)}\n </div>\n <span className=\"truncate font-medium\">{value}</span>\n </div>\n );\n}\n\n// =============================================================================\n// Progress Renderer\n// =============================================================================\n\nexport interface ProgressRendererProps extends ICellRendererParams {\n /** Color of the progress bar */\n barColor?: string;\n /** Maximum value (default 100) */\n max?: number;\n}\n\n/**\n * Renders a progress bar\n */\nexport function ProgressRenderer(\n props: ProgressRendererProps\n): React.ReactElement {\n const { value, barColor = 'bg-primary-800', max = 100 } = props;\n if (value == null) return <span className=\"text-muted-foreground\">--</span>;\n\n const percentage = Math.min(100, Math.max(0, (Number(value) / max) * 100));\n\n return (\n <div className=\"flex items-center gap-2 py-1\">\n <div className=\"h-2 w-20 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700\">\n <div\n className={cn('h-full rounded-full transition-all', barColor)}\n style={{ width: `${percentage}%` }}\n />\n </div>\n <span className=\"text-muted-foreground text-xs font-medium\">\n {Math.round(percentage)}%\n </span>\n </div>\n );\n}\n\n// =============================================================================\n// Tags Renderer\n// =============================================================================\n\n/**\n * Renders an array of tags as badges\n */\nexport function TagsRenderer(props: ICellRendererParams): React.ReactElement {\n const { value } = props;\n if (!value || !Array.isArray(value) || value.length === 0) {\n return <span className=\"text-muted-foreground\">--</span>;\n }\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {value.slice(0, 3).map((tag: string, index: number) => (\n <span\n key={index}\n className=\"text-foreground inline-flex items-center rounded-full bg-gray-100 px-2 py-0.5 text-xs font-medium dark:bg-gray-800\"\n >\n {tag}\n </span>\n ))}\n {value.length > 3 && (\n <span className=\"text-muted-foreground text-xs\">\n +{value.length - 3}\n </span>\n )}\n </div>\n );\n}\n\n// =============================================================================\n// Memoized Renderer Exports (for performance)\n// =============================================================================\n\nexport const MemoizedAvatarNameRenderer = memo(\n AvatarNameRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedStatusBadgeRenderer = memo(\n StatusBadgeRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedEngagementScoreRenderer = memo(\n EngagementScoreRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedEmailRenderer = memo(\n EmailRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedPhoneRenderer = memo(\n PhoneRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedLinkedInRenderer = memo(\n LinkedInRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedDomainRenderer = memo(\n DomainRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedCurrencyRenderer = memo(\n CurrencyRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedNumberRenderer = memo(\n NumberRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedDateRenderer = memo(\n DateRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedBooleanRenderer = memo(\n BooleanRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedCompanyRenderer = memo(\n CompanyRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedProgressRenderer = memo(\n ProgressRenderer,\n cellRendererPropsAreEqual\n);\nexport const MemoizedTagsRenderer = memo(\n TagsRenderer,\n cellRendererPropsAreEqual\n);\n\n// =============================================================================\n// Default Export\n// =============================================================================\n\nexport const CellRenderers = {\n // Original renderers\n AvatarNameRenderer,\n StatusBadgeRenderer,\n EngagementScoreRenderer,\n EmailRenderer,\n PhoneRenderer,\n LinkedInRenderer,\n DomainRenderer,\n CurrencyRenderer,\n NumberRenderer,\n DateRenderer,\n BooleanRenderer,\n CompanyRenderer,\n ProgressRenderer,\n TagsRenderer,\n\n // Memoized renderers (recommended for performance)\n MemoizedAvatarNameRenderer,\n MemoizedStatusBadgeRenderer,\n MemoizedEngagementScoreRenderer,\n MemoizedEmailRenderer,\n MemoizedPhoneRenderer,\n MemoizedLinkedInRenderer,\n MemoizedDomainRenderer,\n MemoizedCurrencyRenderer,\n MemoizedNumberRenderer,\n MemoizedDateRenderer,\n MemoizedBooleanRenderer,\n MemoizedCompanyRenderer,\n MemoizedProgressRenderer,\n MemoizedTagsRenderer,\n\n // Utility functions\n formatPhoneDisplay,\n};\n\nexport default CellRenderers;\n"]}
|
package/dist/brands/bluehive.cjs
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var chunkQITBJX4A_cjs = require('../chunk-QITBJX4A.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "bluehiveBrand", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunkQITBJX4A_cjs.bluehiveBrand; }
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "default", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunkQITBJX4A_cjs.bluehiveBrand; }
|
|
16
16
|
});
|
|
17
17
|
//# sourceMappingURL=bluehive.cjs.map
|
|
18
18
|
//# sourceMappingURL=bluehive.cjs.map
|
package/dist/brands/bluehive.css
CHANGED
|
@@ -34,16 +34,16 @@
|
|
|
34
34
|
--mieweb-card: #ffffff;
|
|
35
35
|
--mieweb-card-foreground: #171717;
|
|
36
36
|
--mieweb-muted: #f5f5f5;
|
|
37
|
-
--mieweb-muted-foreground: #
|
|
37
|
+
--mieweb-muted-foreground: #494949;
|
|
38
38
|
--mieweb-border: #e5e7eb;
|
|
39
39
|
--mieweb-input: #e5e7eb;
|
|
40
40
|
--mieweb-ring: #27aae1;
|
|
41
|
-
--mieweb-destructive: #
|
|
41
|
+
--mieweb-destructive: #dc2626;
|
|
42
42
|
--mieweb-destructive-foreground: #ffffff;
|
|
43
|
-
--mieweb-success: #
|
|
43
|
+
--mieweb-success: #15803d;
|
|
44
44
|
--mieweb-success-foreground: #ffffff;
|
|
45
45
|
--mieweb-warning: #f59e0b;
|
|
46
|
-
--mieweb-warning-foreground: #
|
|
46
|
+
--mieweb-warning-foreground: #451a03;
|
|
47
47
|
--mieweb-info: #0ea5e9;
|
|
48
48
|
--mieweb-info-foreground: #ffffff;
|
|
49
49
|
--mieweb-secondary-foreground: #ffffff;
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
--mieweb-success: #16a34a;
|
|
95
95
|
--mieweb-success-foreground: #fafafa;
|
|
96
96
|
--mieweb-warning: #d97706;
|
|
97
|
-
--mieweb-warning-foreground: #
|
|
97
|
+
--mieweb-warning-foreground: #451a03;
|
|
98
98
|
--mieweb-info: #0284c7;
|
|
99
99
|
--mieweb-info-foreground: #fafafa;
|
|
100
100
|
--mieweb-secondary-foreground: #fafafa;
|
package/dist/brands/bluehive.js
CHANGED
package/dist/brands/index.cjs
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkEAXY5X33_cjs = require('../chunk-EAXY5X33.cjs');
|
|
4
|
+
var chunkGXQFRLTN_cjs = require('../chunk-GXQFRLTN.cjs');
|
|
5
|
+
var chunkJ644FU54_cjs = require('../chunk-J644FU54.cjs');
|
|
6
|
+
var chunkQITBJX4A_cjs = require('../chunk-QITBJX4A.cjs');
|
|
7
|
+
var chunkQO6U5VOT_cjs = require('../chunk-QO6U5VOT.cjs');
|
|
8
|
+
var chunkX7S76WB7_cjs = require('../chunk-X7S76WB7.cjs');
|
|
6
9
|
var chunkP52GA3GJ_cjs = require('../chunk-P52GA3GJ.cjs');
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var chunkZ3TFPXVN_cjs = require('../chunk-Z3TFPXVN.cjs');
|
|
10
|
-
var chunkFFJVCQ5R_cjs = require('../chunk-FFJVCQ5R.cjs');
|
|
11
|
-
var chunk4LNS5QDP_cjs = require('../chunk-4LNS5QDP.cjs');
|
|
10
|
+
var chunk66S4PT6C_cjs = require('../chunk-66S4PT6C.cjs');
|
|
11
|
+
var chunkZ5J4NTPL_cjs = require('../chunk-Z5J4NTPL.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
Object.defineProperty(exports, "brands", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkEAXY5X33_cjs.brands; }
|
|
18
18
|
});
|
|
19
|
-
Object.defineProperty(exports, "
|
|
19
|
+
Object.defineProperty(exports, "webchartBrand", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkGXQFRLTN_cjs.webchartBrand; }
|
|
22
22
|
});
|
|
23
|
-
Object.defineProperty(exports, "
|
|
23
|
+
Object.defineProperty(exports, "createBrandPreset", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkJ644FU54_cjs.createBrandPreset; }
|
|
26
26
|
});
|
|
27
|
-
Object.defineProperty(exports, "
|
|
27
|
+
Object.defineProperty(exports, "generateBrandCSS", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkJ644FU54_cjs.generateBrandCSS; }
|
|
30
30
|
});
|
|
31
|
-
Object.defineProperty(exports, "
|
|
31
|
+
Object.defineProperty(exports, "generateTailwindTheme", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkJ644FU54_cjs.generateTailwindTheme; }
|
|
34
34
|
});
|
|
35
|
-
Object.defineProperty(exports, "
|
|
35
|
+
Object.defineProperty(exports, "bluehiveBrand", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkQITBJX4A_cjs.bluehiveBrand; }
|
|
38
38
|
});
|
|
39
|
-
Object.defineProperty(exports, "
|
|
39
|
+
Object.defineProperty(exports, "ozwellBrand", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkQO6U5VOT_cjs.ozwellBrand; }
|
|
42
42
|
});
|
|
43
|
-
Object.defineProperty(exports, "
|
|
43
|
+
Object.defineProperty(exports, "defaultBrand", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkX7S76WB7_cjs.defaultBrand; }
|
|
46
46
|
});
|
|
47
|
-
Object.defineProperty(exports, "
|
|
47
|
+
Object.defineProperty(exports, "enterpriseHealthBrand", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkP52GA3GJ_cjs.enterpriseHealthBrand; }
|
|
50
50
|
});
|
|
51
|
-
Object.defineProperty(exports, "
|
|
51
|
+
Object.defineProperty(exports, "miewebBrand", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunk66S4PT6C_cjs.miewebBrand; }
|
|
54
54
|
});
|
|
55
|
-
Object.defineProperty(exports, "
|
|
55
|
+
Object.defineProperty(exports, "wagglelineBrand", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkZ5J4NTPL_cjs.wagglelineBrand; }
|
|
58
58
|
});
|
|
59
59
|
//# sourceMappingURL=index.cjs.map
|
|
60
60
|
//# sourceMappingURL=index.cjs.map
|