@mieweb/ui 0.10.0-dev.2 → 0.10.0-dev.20
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/agent/mieweb-ui.instructions.md +13 -1
- package/dist/CsvBlock-FX5YNGNE.cjs +17 -0
- package/dist/{CsvBlock-ROJCKJDP.cjs.map → CsvBlock-FX5YNGNE.cjs.map} +1 -1
- package/dist/CsvBlock-VLMG7GUO.js +8 -0
- package/dist/{CsvBlock-UWPMTLE2.js.map → CsvBlock-VLMG7GUO.js.map} +1 -1
- package/dist/HtmlPreviewBlock-5JE7L3GR.js +8 -0
- package/dist/{HtmlPreviewBlock-ME5U3XNS.js.map → HtmlPreviewBlock-5JE7L3GR.js.map} +1 -1
- package/dist/HtmlPreviewBlock-UO37JQ3K.cjs +17 -0
- package/dist/{HtmlPreviewBlock-DWFN6EUB.cjs.map → HtmlPreviewBlock-UO37JQ3K.cjs.map} +1 -1
- package/dist/Input-yN516s5_.d.cts +3 -0
- package/dist/Input-yN516s5_.d.ts +3 -0
- package/dist/MermaidBlock-3XHFBAMV.js +8 -0
- package/dist/{MermaidBlock-2B6CPD6Y.js.map → MermaidBlock-3XHFBAMV.js.map} +1 -1
- package/dist/MermaidBlock-RZ75RPZA.cjs +17 -0
- package/dist/{MermaidBlock-D2UC5M55.cjs.map → MermaidBlock-RZ75RPZA.cjs.map} +1 -1
- package/dist/SurveyBlock-MUVJ3JUI.js +8 -0
- package/dist/{SurveyBlock-4DO62RBT.js.map → SurveyBlock-MUVJ3JUI.js.map} +1 -1
- package/dist/SurveyBlock-VH47YXZC.cjs +17 -0
- package/dist/{SurveyBlock-4CD4AYMJ.cjs.map → SurveyBlock-VH47YXZC.cjs.map} +1 -1
- package/dist/ag-grid.d.cts +142 -1
- package/dist/ag-grid.d.ts +142 -1
- package/dist/{chunk-ACCAXVOG.js → chunk-2ABWFQQH.js} +133 -55
- package/dist/chunk-2ABWFQQH.js.map +1 -0
- package/dist/{chunk-Y5HFM7LO.js → chunk-2BARVD4C.js} +3 -3
- package/dist/{chunk-Y5HFM7LO.js.map → chunk-2BARVD4C.js.map} +1 -1
- package/dist/{chunk-G3JX3UAU.cjs → chunk-3KPDQG5O.cjs} +5 -5
- package/dist/{chunk-G3JX3UAU.cjs.map → chunk-3KPDQG5O.cjs.map} +1 -1
- package/dist/chunk-3YBS4WUQ.js +52 -0
- package/dist/chunk-3YBS4WUQ.js.map +1 -0
- package/dist/chunk-4HC2IBOX.js +258 -0
- package/dist/chunk-4HC2IBOX.js.map +1 -0
- package/dist/chunk-4IS3QCOQ.cjs +453 -0
- package/dist/chunk-4IS3QCOQ.cjs.map +1 -0
- package/dist/chunk-4NCDU5IG.cjs +56 -0
- package/dist/chunk-4NCDU5IG.cjs.map +1 -0
- package/dist/{chunk-E4IBHYJ7.cjs → chunk-6N6LIAUJ.cjs} +9 -9
- package/dist/{chunk-E4IBHYJ7.cjs.map → chunk-6N6LIAUJ.cjs.map} +1 -1
- package/dist/chunk-74ENCTIK.js +162 -0
- package/dist/chunk-74ENCTIK.js.map +1 -0
- package/dist/{chunk-GOALNQZ2.js → chunk-7YO7DNUV.js} +4 -83
- package/dist/chunk-7YO7DNUV.js.map +1 -0
- package/dist/{chunk-VILW53UZ.js → chunk-BIQ7GSO2.js} +3 -3
- package/dist/{chunk-VILW53UZ.js.map → chunk-BIQ7GSO2.js.map} +1 -1
- package/dist/chunk-BM35CACB.js +148 -0
- package/dist/chunk-BM35CACB.js.map +1 -0
- package/dist/{chunk-XI34EGK5.cjs → chunk-CPPUT74P.cjs} +9 -9
- package/dist/{chunk-XI34EGK5.cjs.map → chunk-CPPUT74P.cjs.map} +1 -1
- package/dist/{chunk-WNM7IZJ7.js → chunk-DSB4DKWG.js} +7 -7
- package/dist/{chunk-WNM7IZJ7.js.map → chunk-DSB4DKWG.js.map} +1 -1
- package/dist/chunk-DXEPYK3I.cjs +92 -0
- package/dist/chunk-DXEPYK3I.cjs.map +1 -0
- package/dist/{chunk-JI244Y7C.js → chunk-EK3BCET6.js} +57 -4
- package/dist/chunk-EK3BCET6.js.map +1 -0
- package/dist/{chunk-5JJ2DAE4.js → chunk-ENMXHZNE.js} +3 -3
- package/dist/{chunk-5JJ2DAE4.js.map → chunk-ENMXHZNE.js.map} +1 -1
- package/dist/{chunk-XCP454Q6.js → chunk-F4N67NAF.js} +12 -3
- package/dist/chunk-F4N67NAF.js.map +1 -0
- package/dist/{chunk-VKELAMAZ.js → chunk-FBLVPM2K.js} +3 -3
- package/dist/{chunk-VKELAMAZ.js.map → chunk-FBLVPM2K.js.map} +1 -1
- package/dist/{chunk-VU6UTJRM.js → chunk-FIKO4WR6.js} +3 -3
- package/dist/{chunk-VU6UTJRM.js.map → chunk-FIKO4WR6.js.map} +1 -1
- package/dist/{chunk-DEDN5HAG.js → chunk-FZURBQJ2.js} +3 -3
- package/dist/{chunk-DEDN5HAG.js.map → chunk-FZURBQJ2.js.map} +1 -1
- package/dist/{chunk-ENKFJJZX.js → chunk-G45FBKKV.js} +5 -5
- package/dist/{chunk-ENKFJJZX.js.map → chunk-G45FBKKV.js.map} +1 -1
- package/dist/{chunk-JHULS3EC.js → chunk-GBUVIGD5.js} +89 -3
- package/dist/chunk-GBUVIGD5.js.map +1 -0
- package/dist/chunk-GU5OS7JJ.cjs +281 -0
- package/dist/chunk-GU5OS7JJ.cjs.map +1 -0
- package/dist/{chunk-V7D3YGUV.js → chunk-GVLNXPJX.js} +4 -4
- package/dist/{chunk-V7D3YGUV.js.map → chunk-GVLNXPJX.js.map} +1 -1
- package/dist/chunk-GVM6DTR5.js +90 -0
- package/dist/chunk-GVM6DTR5.js.map +1 -0
- package/dist/{chunk-3QEVGSFG.cjs → chunk-GYXUS65N.cjs} +5 -5
- package/dist/{chunk-3QEVGSFG.cjs.map → chunk-GYXUS65N.cjs.map} +1 -1
- package/dist/{chunk-WGPLUCBD.js → chunk-H2IAMSHK.js} +3 -3
- package/dist/{chunk-WGPLUCBD.js.map → chunk-H2IAMSHK.js.map} +1 -1
- package/dist/{chunk-7ZXAQTV4.cjs → chunk-HIZWOAWY.cjs} +8 -8
- package/dist/{chunk-7ZXAQTV4.cjs.map → chunk-HIZWOAWY.cjs.map} +1 -1
- package/dist/{chunk-ELPW32ZI.cjs → chunk-HQ4CGVWX.cjs} +41 -41
- package/dist/{chunk-ELPW32ZI.cjs.map → chunk-HQ4CGVWX.cjs.map} +1 -1
- package/dist/{chunk-6EN3IQQI.cjs → chunk-I4LXSHKO.cjs} +4 -4
- package/dist/{chunk-6EN3IQQI.cjs.map → chunk-I4LXSHKO.cjs.map} +1 -1
- package/dist/{chunk-NV2CWBI2.cjs → chunk-IEY3ZJIT.cjs} +12 -3
- package/dist/chunk-IEY3ZJIT.cjs.map +1 -0
- package/dist/{chunk-2YCERQWC.js → chunk-IH55BEB3.js} +4 -4
- package/dist/{chunk-2YCERQWC.js.map → chunk-IH55BEB3.js.map} +1 -1
- package/dist/chunk-IT775BYG.js +179 -0
- package/dist/chunk-IT775BYG.js.map +1 -0
- package/dist/chunk-IYWG72DM.js +166 -0
- package/dist/chunk-IYWG72DM.js.map +1 -0
- package/dist/{chunk-IX6KFB3K.cjs → chunk-JELTRRR5.cjs} +9 -9
- package/dist/{chunk-IX6KFB3K.cjs.map → chunk-JELTRRR5.cjs.map} +1 -1
- package/dist/{chunk-FXO5ARBB.cjs → chunk-KDW6BD4O.cjs} +4 -4
- package/dist/{chunk-FXO5ARBB.cjs.map → chunk-KDW6BD4O.cjs.map} +1 -1
- package/dist/chunk-KHSFJTEX.js +1924 -0
- package/dist/chunk-KHSFJTEX.js.map +1 -0
- package/dist/{chunk-UV2FVNWT.cjs → chunk-LFPJ3OUM.cjs} +5 -5
- package/dist/{chunk-UV2FVNWT.cjs.map → chunk-LFPJ3OUM.cjs.map} +1 -1
- package/dist/{chunk-WNAA6CLE.cjs → chunk-LHBWRMNC.cjs} +94 -2
- package/dist/chunk-LHBWRMNC.cjs.map +1 -0
- package/dist/{chunk-X4XPNTCZ.cjs → chunk-LJZKEMAH.cjs} +135 -57
- package/dist/chunk-LJZKEMAH.cjs.map +1 -0
- package/dist/{chunk-2QKBTPUC.cjs → chunk-MQPG3KVK.cjs} +8 -8
- package/dist/{chunk-2QKBTPUC.cjs.map → chunk-MQPG3KVK.cjs.map} +1 -1
- package/dist/{chunk-WIAQQNFU.cjs → chunk-MYHV2ND3.cjs} +37 -3
- package/dist/chunk-MYHV2ND3.cjs.map +1 -0
- package/dist/{chunk-OE5CKRUC.js → chunk-MZNCLXXU.js} +4 -4
- package/dist/{chunk-OE5CKRUC.js.map → chunk-MZNCLXXU.js.map} +1 -1
- package/dist/{chunk-XEAT7XJG.cjs → chunk-N2CJJHHB.cjs} +4 -4
- package/dist/{chunk-XEAT7XJG.cjs.map → chunk-N2CJJHHB.cjs.map} +1 -1
- package/dist/chunk-N7C4OEP7.cjs +356 -0
- package/dist/chunk-N7C4OEP7.cjs.map +1 -0
- package/dist/chunk-OGNADPM4.cjs +170 -0
- package/dist/chunk-OGNADPM4.cjs.map +1 -0
- package/dist/{chunk-5GUOOLPR.cjs → chunk-P5CMZZRZ.cjs} +5 -5
- package/dist/{chunk-5GUOOLPR.cjs.map → chunk-P5CMZZRZ.cjs.map} +1 -1
- package/dist/{chunk-U42F3HLE.cjs → chunk-QNDP6PE5.cjs} +57 -4
- package/dist/chunk-QNDP6PE5.cjs.map +1 -0
- package/dist/{chunk-H4ZXMQQW.js → chunk-QOVJ6Z6R.js} +3 -3
- package/dist/{chunk-H4ZXMQQW.js.map → chunk-QOVJ6Z6R.js.map} +1 -1
- package/dist/{chunk-GD7EBGC4.cjs → chunk-R2O72G6Z.cjs} +19 -19
- package/dist/{chunk-GD7EBGC4.cjs.map → chunk-R2O72G6Z.cjs.map} +1 -1
- package/dist/{chunk-TMMVIUUN.js → chunk-R6KPWIGO.js} +4 -4
- package/dist/{chunk-TMMVIUUN.js.map → chunk-R6KPWIGO.js.map} +1 -1
- package/dist/{chunk-VPWJCJCX.cjs → chunk-S45EERW3.cjs} +5 -5
- package/dist/{chunk-VPWJCJCX.cjs.map → chunk-S45EERW3.cjs.map} +1 -1
- package/dist/{chunk-WNZAYBVB.cjs → chunk-SQ2D7AON.cjs} +45 -45
- package/dist/{chunk-WNZAYBVB.cjs.map → chunk-SQ2D7AON.cjs.map} +1 -1
- package/dist/{chunk-P2CA3XGI.js → chunk-SYRLCTDV.js} +3 -3
- package/dist/{chunk-P2CA3XGI.js.map → chunk-SYRLCTDV.js.map} +1 -1
- package/dist/{chunk-7ZDPD5ZX.cjs → chunk-T4L7Q5FA.cjs} +7 -7
- package/dist/{chunk-7ZDPD5ZX.cjs.map → chunk-T4L7Q5FA.cjs.map} +1 -1
- package/dist/{chunk-ZGRCSNPK.js → chunk-TF7YWJHU.js} +3 -3
- package/dist/{chunk-ZGRCSNPK.js.map → chunk-TF7YWJHU.js.map} +1 -1
- package/dist/{chunk-2IZLKPUW.js → chunk-THLIL6PY.js} +3 -3
- package/dist/{chunk-2IZLKPUW.js.map → chunk-THLIL6PY.js.map} +1 -1
- package/dist/{chunk-N6IY47YA.cjs → chunk-TTSSUOEV.cjs} +8 -8
- package/dist/{chunk-N6IY47YA.cjs.map → chunk-TTSSUOEV.cjs.map} +1 -1
- package/dist/{chunk-5MCBWTIF.cjs → chunk-TYE5K5WV.cjs} +4 -4
- package/dist/{chunk-5MCBWTIF.cjs.map → chunk-TYE5K5WV.cjs.map} +1 -1
- package/dist/{chunk-22CYDCXA.js → chunk-TZJQB4P2.js} +37 -4
- package/dist/chunk-TZJQB4P2.js.map +1 -0
- package/dist/{chunk-VOKVG3ER.js → chunk-UBSH27C2.js} +4 -4
- package/dist/{chunk-VOKVG3ER.js.map → chunk-UBSH27C2.js.map} +1 -1
- package/dist/chunk-VINZZQBD.cjs +323 -0
- package/dist/chunk-VINZZQBD.cjs.map +1 -0
- package/dist/chunk-VPTASZ2O.cjs +171 -0
- package/dist/chunk-VPTASZ2O.cjs.map +1 -0
- package/dist/{chunk-SGFYA22I.cjs → chunk-VYPPQPSZ.cjs} +7 -7
- package/dist/{chunk-SGFYA22I.cjs.map → chunk-VYPPQPSZ.cjs.map} +1 -1
- package/dist/chunk-WCDJFMZO.cjs +1967 -0
- package/dist/chunk-WCDJFMZO.cjs.map +1 -0
- package/dist/{chunk-VNYW4C4J.cjs → chunk-X6A27RGO.cjs} +4 -84
- package/dist/chunk-X6A27RGO.cjs.map +1 -0
- package/dist/chunk-XBTKZCZF.js +333 -0
- package/dist/chunk-XBTKZCZF.js.map +1 -0
- package/dist/chunk-XDIMTPZU.cjs +202 -0
- package/dist/chunk-XDIMTPZU.cjs.map +1 -0
- package/dist/chunk-XVW5DPPP.js +429 -0
- package/dist/chunk-XVW5DPPP.js.map +1 -0
- package/dist/chunk-Y4E2WRUR.cjs +188 -0
- package/dist/chunk-Y4E2WRUR.cjs.map +1 -0
- package/dist/chunk-Y4QNLW7W.js +300 -0
- package/dist/chunk-Y4QNLW7W.js.map +1 -0
- package/dist/{chunk-KZFBQ7GY.js → chunk-YU55JD35.js} +3 -3
- package/dist/{chunk-KZFBQ7GY.js.map → chunk-YU55JD35.js.map} +1 -1
- package/dist/{chunk-OD47TTAW.cjs → chunk-Z4JR23IB.cjs} +9 -9
- package/dist/{chunk-OD47TTAW.cjs.map → chunk-Z4JR23IB.cjs.map} +1 -1
- package/dist/{chunk-3M7TAXNR.js → chunk-ZTW4KODY.js} +3 -3
- package/dist/{chunk-3M7TAXNR.js.map → chunk-ZTW4KODY.js.map} +1 -1
- package/dist/{chunk-3QGS6CXD.js → chunk-ZYL4SNOR.js} +3 -3
- package/dist/{chunk-3QGS6CXD.js.map → chunk-ZYL4SNOR.js.map} +1 -1
- package/dist/components/Alert/index.d.cts +1 -1
- package/dist/components/Alert/index.d.ts +1 -1
- package/dist/components/AlertDialog/index.cjs +6 -5
- package/dist/components/AlertDialog/index.d.cts +28 -3
- package/dist/components/AlertDialog/index.d.ts +28 -3
- package/dist/components/AlertDialog/index.js +5 -4
- package/dist/components/AudioRecorder/index.d.cts +2 -2
- package/dist/components/AudioRecorder/index.d.ts +2 -2
- package/dist/components/Autocomplete/index.d.cts +8 -2
- package/dist/components/Autocomplete/index.d.ts +8 -2
- package/dist/components/Avatar/index.d.cts +1 -1
- package/dist/components/Avatar/index.d.ts +1 -1
- package/dist/components/Badge/index.d.cts +1 -1
- package/dist/components/Badge/index.d.ts +1 -1
- package/dist/components/BoardView/index.cjs +24 -0
- package/dist/components/BoardView/index.cjs.map +1 -0
- package/dist/components/BoardView/index.d.cts +129 -0
- package/dist/components/BoardView/index.d.ts +129 -0
- package/dist/components/BoardView/index.js +7 -0
- package/dist/components/BoardView/index.js.map +1 -0
- package/dist/components/Button/index.cjs +4 -3
- package/dist/components/Button/index.d.cts +2 -1
- package/dist/components/Button/index.d.ts +2 -1
- package/dist/components/Button/index.js +2 -1
- package/dist/components/CalendarView/index.cjs +23 -0
- package/dist/components/CalendarView/index.cjs.map +1 -0
- package/dist/components/CalendarView/index.d.cts +39 -0
- package/dist/components/CalendarView/index.d.ts +39 -0
- package/dist/components/CalendarView/index.js +10 -0
- package/dist/components/CalendarView/index.js.map +1 -0
- package/dist/components/Card/index.d.cts +3 -3
- package/dist/components/Card/index.d.ts +3 -3
- package/dist/components/Collapsible/index.cjs +5 -5
- package/dist/components/Collapsible/index.js +2 -2
- package/dist/components/CustomizableDashboard/index.cjs +10 -9
- package/dist/components/CustomizableDashboard/index.js +3 -2
- package/dist/components/Dropdown/index.cjs +9 -9
- package/dist/components/Dropdown/index.d.cts +2 -1
- package/dist/components/Dropdown/index.d.ts +2 -1
- package/dist/components/Dropdown/index.js +2 -2
- package/dist/components/FloatingWindow/index.cjs +5 -4
- package/dist/components/FloatingWindow/index.js +3 -2
- package/dist/components/GanttView/index.cjs +20 -0
- package/dist/components/GanttView/index.cjs.map +1 -0
- package/dist/components/GanttView/index.d.cts +36 -0
- package/dist/components/GanttView/index.d.ts +36 -0
- package/dist/components/GanttView/index.js +7 -0
- package/dist/components/GanttView/index.js.map +1 -0
- package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
- package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
- package/dist/components/ListView/index.cjs +23 -0
- package/dist/components/ListView/index.cjs.map +1 -0
- package/dist/components/ListView/index.d.cts +124 -0
- package/dist/components/ListView/index.d.ts +124 -0
- package/dist/components/ListView/index.js +10 -0
- package/dist/components/ListView/index.js.map +1 -0
- package/dist/components/Markdown/index.cjs +20 -19
- package/dist/components/Markdown/index.js +8 -7
- package/dist/components/MediaEditor/index.cjs +11 -10
- package/dist/components/MediaEditor/index.d.cts +91 -2
- package/dist/components/MediaEditor/index.d.ts +91 -2
- package/dist/components/MediaEditor/index.js +6 -5
- package/dist/components/MediaPlayer/index.cjs +6 -5
- package/dist/components/MediaPlayer/index.d.cts +1 -1
- package/dist/components/MediaPlayer/index.d.ts +1 -1
- package/dist/components/MediaPlayer/index.js +3 -2
- package/dist/components/MegaMenu/index.cjs +6 -5
- package/dist/components/MegaMenu/index.js +3 -2
- package/dist/components/Modal/index.cjs +10 -10
- package/dist/components/Modal/index.js +2 -2
- package/dist/components/Pagination/index.d.cts +1 -1
- package/dist/components/Pagination/index.d.ts +1 -1
- package/dist/components/PhoneInput/index.d.cts +36 -3
- package/dist/components/PhoneInput/index.d.ts +36 -3
- package/dist/components/Progress/index.d.cts +1 -1
- package/dist/components/Progress/index.d.ts +1 -1
- package/dist/components/Q/index.d.cts +2 -2
- package/dist/components/Q/index.d.ts +2 -2
- package/dist/components/QuickAction/index.d.cts +1 -1
- package/dist/components/QuickAction/index.d.ts +1 -1
- package/dist/components/RadialExplorer/index.cjs +4 -3
- package/dist/components/RadialExplorer/index.js +3 -2
- package/dist/components/RecordButton/index.d.cts +1 -1
- package/dist/components/RecordButton/index.d.ts +1 -1
- package/dist/components/RichTextEditor/index.cjs +8 -7
- package/dist/components/RichTextEditor/index.d.cts +7 -2
- package/dist/components/RichTextEditor/index.d.ts +7 -2
- package/dist/components/RichTextEditor/index.js +5 -4
- package/dist/components/ScrollArea/index.d.cts +1 -1
- package/dist/components/ScrollArea/index.d.ts +1 -1
- package/dist/components/SectionSpyNav/index.cjs +4 -3
- package/dist/components/SectionSpyNav/index.js +3 -2
- package/dist/components/Select/index.d.cts +1 -2
- package/dist/components/Select/index.d.ts +1 -2
- package/dist/components/Skeleton/index.d.cts +1 -1
- package/dist/components/Skeleton/index.d.ts +1 -1
- package/dist/components/Slider/index.d.cts +2 -2
- package/dist/components/Slider/index.d.ts +2 -2
- package/dist/components/Spinner/index.d.cts +2 -2
- package/dist/components/Spinner/index.d.ts +2 -2
- package/dist/components/SuperChat/index.cjs +478 -281
- package/dist/components/SuperChat/index.cjs.map +1 -1
- package/dist/components/SuperChat/index.d.cts +2 -4
- package/dist/components/SuperChat/index.d.ts +2 -4
- package/dist/components/SuperChat/index.js +468 -271
- package/dist/components/SuperChat/index.js.map +1 -1
- package/dist/components/SuperChat/plugins/index.cjs +5 -5
- package/dist/components/SuperChat/plugins/index.d.cts +2 -3
- package/dist/components/SuperChat/plugins/index.d.ts +2 -3
- package/dist/components/SuperChat/plugins/index.js +4 -4
- package/dist/components/Text/index.d.cts +3 -3
- package/dist/components/Text/index.d.ts +3 -3
- package/dist/components/Textarea/index.d.cts +1 -2
- package/dist/components/Textarea/index.d.ts +1 -2
- package/dist/components/ThemeProvider/index.d.cts +3 -1
- package/dist/components/ThemeProvider/index.d.ts +3 -1
- package/dist/components/TranscriptView/index.d.cts +85 -4
- package/dist/components/TranscriptView/index.d.ts +85 -4
- package/dist/components/ViewSet/index.cjs +24 -0
- package/dist/components/ViewSet/index.cjs.map +1 -0
- package/dist/components/ViewSet/index.d.cts +300 -0
- package/dist/components/ViewSet/index.d.ts +300 -0
- package/dist/components/ViewSet/index.js +15 -0
- package/dist/components/ViewSet/index.js.map +1 -0
- package/dist/components/ViewSwitcher/index.cjs +20 -0
- package/dist/components/ViewSwitcher/index.cjs.map +1 -0
- package/dist/components/ViewSwitcher/index.d.cts +57 -0
- package/dist/components/ViewSwitcher/index.d.ts +57 -0
- package/dist/components/ViewSwitcher/index.js +7 -0
- package/dist/components/ViewSwitcher/index.js.map +1 -0
- package/dist/datavis.cjs +3 -2
- package/dist/datavis.cjs.map +1 -1
- package/dist/datavis.d.cts +167 -13
- package/dist/datavis.d.ts +167 -13
- package/dist/datavis.js +2 -1
- package/dist/datavis.js.map +1 -1
- package/dist/esheet.cjs +9 -8
- package/dist/esheet.cjs.map +1 -1
- package/dist/esheet.d.cts +183 -1
- package/dist/esheet.d.ts +183 -1
- package/dist/esheet.js +6 -5
- package/dist/esheet.js.map +1 -1
- package/dist/hooks/index.cjs +49 -16
- package/dist/hooks/index.d.cts +590 -31
- package/dist/hooks/index.d.ts +590 -31
- package/dist/hooks/index.js +3 -2
- package/dist/index.cjs +1375 -1088
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8596 -683
- package/dist/index.d.ts +8596 -683
- package/dist/index.js +433 -340
- package/dist/index.js.map +1 -1
- package/dist/kerebron.cjs +58 -19
- package/dist/kerebron.cjs.map +1 -1
- package/dist/kerebron.d.cts +37 -0
- package/dist/kerebron.d.ts +37 -0
- package/dist/kerebron.js +58 -19
- package/dist/kerebron.js.map +1 -1
- package/dist/motion.cjs +7 -7
- package/dist/motion.d.cts +186 -2
- package/dist/motion.d.ts +186 -2
- package/dist/motion.js +2 -2
- package/dist/q.d.cts +25 -3
- package/dist/q.d.ts +25 -3
- package/dist/{speaker-verify-5GTWAN5Y.cjs → speaker-verify-4NEJAK6C.cjs} +57 -90
- package/dist/speaker-verify-4NEJAK6C.cjs.map +1 -0
- package/dist/{speaker-verify-R67P433H.js → speaker-verify-AWSKI6DI.js} +57 -90
- package/dist/speaker-verify-AWSKI6DI.js.map +1 -0
- package/dist/styles/effects.css +33 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/dist/templates.cjs +103 -0
- package/dist/templates.cjs.map +1 -0
- package/dist/templates.d.cts +560 -0
- package/dist/templates.d.ts +560 -0
- package/dist/templates.js +10 -0
- package/dist/templates.js.map +1 -0
- package/dist/types-C3HQe74F.d.cts +86 -0
- package/dist/types-C3HQe74F.d.ts +86 -0
- package/dist/{types-B97JNRNQ.d.cts → types-DOxdTwmq.d.cts} +170 -2
- package/dist/{types-gZXrfLj6.d.ts → types-DOxdTwmq.d.ts} +170 -2
- package/dist/utils/index.d.cts +13 -2
- package/dist/utils/index.d.ts +13 -2
- package/package.json +21 -4
- package/dist/Animated-XmH6k8pZ.d.cts +0 -188
- package/dist/Animated-XmH6k8pZ.d.ts +0 -188
- package/dist/CsvBlock-ROJCKJDP.cjs +0 -16
- package/dist/CsvBlock-UWPMTLE2.js +0 -7
- package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +0 -16
- package/dist/HtmlPreviewBlock-ME5U3XNS.js +0 -7
- package/dist/MedicationEditor-Bp4NLy7y.d.cts +0 -352
- package/dist/MedicationEditor-Bp4NLy7y.d.ts +0 -352
- package/dist/MermaidBlock-2B6CPD6Y.js +0 -7
- package/dist/MermaidBlock-D2UC5M55.cjs +0 -16
- package/dist/SurveyBlock-4CD4AYMJ.cjs +0 -16
- package/dist/SurveyBlock-4DO62RBT.js +0 -7
- package/dist/chunk-22CYDCXA.js.map +0 -1
- package/dist/chunk-ACCAXVOG.js.map +0 -1
- package/dist/chunk-GOALNQZ2.js.map +0 -1
- package/dist/chunk-JHULS3EC.js.map +0 -1
- package/dist/chunk-JI244Y7C.js.map +0 -1
- package/dist/chunk-NV2CWBI2.cjs.map +0 -1
- package/dist/chunk-U42F3HLE.cjs.map +0 -1
- package/dist/chunk-VNYW4C4J.cjs.map +0 -1
- package/dist/chunk-WIAQQNFU.cjs.map +0 -1
- package/dist/chunk-WNAA6CLE.cjs.map +0 -1
- package/dist/chunk-X4XPNTCZ.cjs.map +0 -1
- package/dist/chunk-XCP454Q6.js.map +0 -1
- package/dist/html-MdxqSzjD.d.cts +0 -13
- package/dist/html-MdxqSzjD.d.ts +0 -13
- package/dist/orderRows-BUJYgSc7.d.cts +0 -221
- package/dist/orderRows-BUJYgSc7.d.ts +0 -221
- package/dist/speaker-verify-5GTWAN5Y.cjs.map +0 -1
- package/dist/speaker-verify-R67P433H.js.map +0 -1
- package/dist/transcript-Cg7uSW-C.d.cts +0 -84
- package/dist/transcript-Cg7uSW-C.d.ts +0 -84
- package/dist/types-CnPEwzlp.d.cts +0 -254
- package/dist/types-CnPEwzlp.d.ts +0 -254
- package/dist/useAnchoredPosition-CKwLSQW8.d.cts +0 -76
- package/dist/useAnchoredPosition-CKwLSQW8.d.ts +0 -76
- package/dist/useTheme-B9SWu6ui.d.cts +0 -24
- package/dist/useTheme-B9SWu6ui.d.ts +0 -24
- package/dist/useTranscriptEdits-CGzlemHT.d.cts +0 -182
- package/dist/useTranscriptEdits-D32bLs0l.d.ts +0 -182
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { defaultViewLabels, toDateTime, accentClasses } from './chunk-3YBS4WUQ.js';
|
|
2
|
+
import { Spinner } from './chunk-UA7E7PDS.js';
|
|
3
|
+
import { ChevronLeft, ChevronRight } from './chunk-BKSPDTX4.js';
|
|
4
|
+
import { Button } from './chunk-7YO7DNUV.js';
|
|
5
|
+
import { cn } from './chunk-TQONQSJO.js';
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import { DateTime, Info } from 'luxon';
|
|
8
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var defaultCalendarLabels = {
|
|
11
|
+
...defaultViewLabels,
|
|
12
|
+
empty: "Nothing this month",
|
|
13
|
+
previousMonth: "Previous month",
|
|
14
|
+
nextMonth: "Next month",
|
|
15
|
+
today: "Today",
|
|
16
|
+
more: "{count} more"
|
|
17
|
+
};
|
|
18
|
+
function CalendarView({
|
|
19
|
+
items,
|
|
20
|
+
accessors,
|
|
21
|
+
loading = false,
|
|
22
|
+
error = null,
|
|
23
|
+
selectedId = null,
|
|
24
|
+
onOpen,
|
|
25
|
+
getHref,
|
|
26
|
+
renderItem,
|
|
27
|
+
emptyState,
|
|
28
|
+
labels,
|
|
29
|
+
month,
|
|
30
|
+
defaultMonth,
|
|
31
|
+
onMonthChange,
|
|
32
|
+
timeZone,
|
|
33
|
+
weekStartsOn = 1,
|
|
34
|
+
locale,
|
|
35
|
+
maxPerDay = 3,
|
|
36
|
+
now,
|
|
37
|
+
className,
|
|
38
|
+
classNames,
|
|
39
|
+
hideToolbar = false
|
|
40
|
+
}) {
|
|
41
|
+
const text = { ...defaultCalendarLabels, ...labels };
|
|
42
|
+
const zone = timeZone ?? DateTime.local().zoneName;
|
|
43
|
+
const today = React.useMemo(
|
|
44
|
+
() => DateTime.fromJSDate(now ?? /* @__PURE__ */ new Date(), { zone }).startOf("day"),
|
|
45
|
+
[now, zone]
|
|
46
|
+
);
|
|
47
|
+
const [internalMonth, setInternalMonth] = React.useState(
|
|
48
|
+
() => defaultMonth ? DateTime.fromJSDate(defaultMonth, { zone }).startOf("month") : today.startOf("month")
|
|
49
|
+
);
|
|
50
|
+
const current = React.useMemo(() => {
|
|
51
|
+
const source = month ? DateTime.fromJSDate(month, { zone }) : internalMonth;
|
|
52
|
+
return DateTime.fromObject(
|
|
53
|
+
{ year: source.year, month: source.month, day: 1 },
|
|
54
|
+
{ zone }
|
|
55
|
+
);
|
|
56
|
+
}, [month, internalMonth, zone]);
|
|
57
|
+
const goToMonth = (next) => {
|
|
58
|
+
if (!month) setInternalMonth(next);
|
|
59
|
+
onMonthChange?.(next.toJSDate());
|
|
60
|
+
};
|
|
61
|
+
const gridStart = React.useMemo(() => {
|
|
62
|
+
const first = current.startOf("month");
|
|
63
|
+
const offset = (first.weekday - weekStartsOn + 7) % 7;
|
|
64
|
+
return first.minus({ days: offset });
|
|
65
|
+
}, [current, weekStartsOn]);
|
|
66
|
+
const days = React.useMemo(
|
|
67
|
+
() => Array.from({ length: 42 }, (_, i) => gridStart.plus({ days: i })),
|
|
68
|
+
[gridStart]
|
|
69
|
+
);
|
|
70
|
+
const weeks = React.useMemo(
|
|
71
|
+
() => Array.from({ length: 6 }, (_, i) => days.slice(i * 7, i * 7 + 7)),
|
|
72
|
+
[days]
|
|
73
|
+
);
|
|
74
|
+
const placed = React.useMemo(() => {
|
|
75
|
+
const out = [];
|
|
76
|
+
for (const item of items) {
|
|
77
|
+
const start = toDateTime(accessors.getStart?.(item), zone)?.startOf(
|
|
78
|
+
"day"
|
|
79
|
+
);
|
|
80
|
+
if (!start) continue;
|
|
81
|
+
const rawEnd = toDateTime(accessors.getEnd?.(item), zone)?.startOf("day");
|
|
82
|
+
const end = rawEnd ?? start;
|
|
83
|
+
out.push({
|
|
84
|
+
id: accessors.getId(item),
|
|
85
|
+
item,
|
|
86
|
+
start,
|
|
87
|
+
// A backwards range is data, not a crash: clamp it to one day.
|
|
88
|
+
end: end < start ? start : end
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}, [items, accessors, zone]);
|
|
93
|
+
const byDay = React.useMemo(() => {
|
|
94
|
+
const map = /* @__PURE__ */ new Map();
|
|
95
|
+
for (const day of days) {
|
|
96
|
+
const key = day.toISODate() ?? "";
|
|
97
|
+
map.set(
|
|
98
|
+
key,
|
|
99
|
+
placed.filter((p) => p.start <= day && day <= p.end)
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
return map;
|
|
103
|
+
}, [days, placed]);
|
|
104
|
+
const weekdayNames = React.useMemo(() => {
|
|
105
|
+
const names = Info.weekdays("short", { locale });
|
|
106
|
+
return Array.from(
|
|
107
|
+
{ length: 7 },
|
|
108
|
+
(_, i) => names[(weekStartsOn - 1 + i) % 7]
|
|
109
|
+
);
|
|
110
|
+
}, [locale, weekStartsOn]);
|
|
111
|
+
const state = (content) => /* @__PURE__ */ jsx(
|
|
112
|
+
"div",
|
|
113
|
+
{
|
|
114
|
+
"data-slot": "calendar-view-state",
|
|
115
|
+
className: cn(
|
|
116
|
+
"border-border bg-card text-muted-foreground flex flex-col items-center justify-center gap-2 rounded-lg border px-4 py-10 text-center text-sm",
|
|
117
|
+
classNames?.state
|
|
118
|
+
),
|
|
119
|
+
children: content
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
if (error) {
|
|
123
|
+
return state(
|
|
124
|
+
/* @__PURE__ */ jsx("p", { role: "alert", className: "text-destructive", children: text.error })
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
if (loading) {
|
|
128
|
+
return state(
|
|
129
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
|
|
130
|
+
/* @__PURE__ */ jsx(Spinner, { size: "sm", label: text.loading }),
|
|
131
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, children: text.loading })
|
|
132
|
+
] })
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
const monthLabel = current.setLocale(locale ?? current.locale ?? "en").toFormat("LLLL yyyy");
|
|
136
|
+
const nothingPlaced = placed.length === 0;
|
|
137
|
+
return /* @__PURE__ */ jsxs(
|
|
138
|
+
"div",
|
|
139
|
+
{
|
|
140
|
+
"data-slot": "calendar-view",
|
|
141
|
+
className: cn(
|
|
142
|
+
"border-border bg-card overflow-hidden rounded-lg border",
|
|
143
|
+
className
|
|
144
|
+
),
|
|
145
|
+
children: [
|
|
146
|
+
!hideToolbar && /* @__PURE__ */ jsxs(
|
|
147
|
+
"div",
|
|
148
|
+
{
|
|
149
|
+
"data-slot": "calendar-view-toolbar",
|
|
150
|
+
className: cn(
|
|
151
|
+
"border-border flex items-center gap-2 border-b px-3 py-2",
|
|
152
|
+
classNames?.toolbar
|
|
153
|
+
),
|
|
154
|
+
children: [
|
|
155
|
+
/* @__PURE__ */ jsx("h3", { "aria-live": "polite", className: "text-sm font-semibold", children: monthLabel }),
|
|
156
|
+
/* @__PURE__ */ jsxs("div", { className: "ms-auto flex items-center gap-1", children: [
|
|
157
|
+
/* @__PURE__ */ jsx(
|
|
158
|
+
Button,
|
|
159
|
+
{
|
|
160
|
+
variant: "ghost",
|
|
161
|
+
size: "sm",
|
|
162
|
+
"aria-label": text.previousMonth,
|
|
163
|
+
onClick: () => goToMonth(current.minus({ months: 1 })),
|
|
164
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4 rtl:rotate-180", "aria-hidden": true })
|
|
165
|
+
}
|
|
166
|
+
),
|
|
167
|
+
/* @__PURE__ */ jsx(
|
|
168
|
+
Button,
|
|
169
|
+
{
|
|
170
|
+
variant: "ghost",
|
|
171
|
+
size: "sm",
|
|
172
|
+
onClick: () => goToMonth(today.startOf("month")),
|
|
173
|
+
children: text.today
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
/* @__PURE__ */ jsx(
|
|
177
|
+
Button,
|
|
178
|
+
{
|
|
179
|
+
variant: "ghost",
|
|
180
|
+
size: "sm",
|
|
181
|
+
"aria-label": text.nextMonth,
|
|
182
|
+
onClick: () => goToMonth(current.plus({ months: 1 })),
|
|
183
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { className: "size-4 rtl:rotate-180", "aria-hidden": true })
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
] })
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
),
|
|
190
|
+
nothingPlaced && emptyState ? emptyState : (
|
|
191
|
+
// `table`, not `grid`: a grid promises arrow-key navigation between
|
|
192
|
+
// cells, which this does not implement. Rows are explicit because a
|
|
193
|
+
// columnheader or cell outside one is invalid ARIA, not just untidy.
|
|
194
|
+
/* @__PURE__ */ jsxs("div", { role: "table", "aria-label": monthLabel, children: [
|
|
195
|
+
/* @__PURE__ */ jsx("div", { role: "rowgroup", children: /* @__PURE__ */ jsx("div", { role: "row", className: "border-border grid grid-cols-7 border-b", children: weekdayNames.map((name) => /* @__PURE__ */ jsx(
|
|
196
|
+
"div",
|
|
197
|
+
{
|
|
198
|
+
role: "columnheader",
|
|
199
|
+
"data-slot": "calendar-view-weekday",
|
|
200
|
+
className: cn(
|
|
201
|
+
"text-muted-foreground px-2 py-1.5 text-center text-xs font-medium tracking-wide uppercase",
|
|
202
|
+
classNames?.weekday
|
|
203
|
+
),
|
|
204
|
+
children: name
|
|
205
|
+
},
|
|
206
|
+
name
|
|
207
|
+
)) }) }),
|
|
208
|
+
/* @__PURE__ */ jsx("div", { role: "rowgroup", children: weeks.map((week) => /* @__PURE__ */ jsx(
|
|
209
|
+
"div",
|
|
210
|
+
{
|
|
211
|
+
role: "row",
|
|
212
|
+
className: "grid grid-cols-7",
|
|
213
|
+
children: week.map((day) => {
|
|
214
|
+
const key = day.toISODate() ?? "";
|
|
215
|
+
const entries = byDay.get(key) ?? [];
|
|
216
|
+
const outside = day.month !== current.month;
|
|
217
|
+
const isToday = day.hasSame(today, "day");
|
|
218
|
+
const visible = entries.slice(0, maxPerDay);
|
|
219
|
+
const overflow = entries.length - visible.length;
|
|
220
|
+
return /* @__PURE__ */ jsxs(
|
|
221
|
+
"div",
|
|
222
|
+
{
|
|
223
|
+
role: "cell",
|
|
224
|
+
"data-slot": "calendar-view-day",
|
|
225
|
+
"data-outside": outside || void 0,
|
|
226
|
+
"data-today": isToday || void 0,
|
|
227
|
+
className: cn(
|
|
228
|
+
"border-border min-h-24 border-e border-b p-1 last:border-e-0",
|
|
229
|
+
outside && cn("bg-muted/30", classNames?.outsideDay),
|
|
230
|
+
isToday && classNames?.today,
|
|
231
|
+
classNames?.day
|
|
232
|
+
),
|
|
233
|
+
children: [
|
|
234
|
+
/* @__PURE__ */ jsxs(
|
|
235
|
+
"div",
|
|
236
|
+
{
|
|
237
|
+
className: cn(
|
|
238
|
+
"mb-1 flex h-5 w-5 items-center justify-center rounded-full text-xs tabular-nums",
|
|
239
|
+
outside ? "text-muted-foreground" : "text-foreground",
|
|
240
|
+
// primary-800, not 500: white on the mid scale is
|
|
241
|
+
// about 2:1 and fails AA. Same pair Button uses.
|
|
242
|
+
isToday && "bg-primary-800 font-semibold text-white"
|
|
243
|
+
),
|
|
244
|
+
children: [
|
|
245
|
+
/* @__PURE__ */ jsx("time", { dateTime: key, children: day.day }),
|
|
246
|
+
isToday && /* @__PURE__ */ jsx("span", { className: "sr-only", children: text.today })
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
),
|
|
250
|
+
/* @__PURE__ */ jsxs("ul", { className: "space-y-0.5", children: [
|
|
251
|
+
visible.map(({ id, item, start, end }) => {
|
|
252
|
+
const accent = accessors.getAccent?.(item) ?? "primary";
|
|
253
|
+
const selected = id === selectedId;
|
|
254
|
+
const body = renderItem?.(item, {
|
|
255
|
+
view: "calendar"
|
|
256
|
+
}) ?? /* @__PURE__ */ jsx("span", { className: "block truncate", children: accessors.getTitle(item) });
|
|
257
|
+
const classes = cn(
|
|
258
|
+
"block w-full rounded px-1 py-0.5 text-start text-xs text-foreground",
|
|
259
|
+
accentClasses[accent].tint,
|
|
260
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
261
|
+
classNames?.entry,
|
|
262
|
+
selected && cn(
|
|
263
|
+
"ring-1",
|
|
264
|
+
accentClasses[accent].border,
|
|
265
|
+
classNames?.selectedEntry
|
|
266
|
+
)
|
|
267
|
+
);
|
|
268
|
+
const spanLabel = start.hasSame(end, "day") ? void 0 : `${accessors.getTitle(item)}, ${start.toISODate()} to ${end.toISODate()}`;
|
|
269
|
+
const href = getHref?.(id, item);
|
|
270
|
+
return /* @__PURE__ */ jsx("li", { children: href ? /* @__PURE__ */ jsx(
|
|
271
|
+
"a",
|
|
272
|
+
{
|
|
273
|
+
href,
|
|
274
|
+
"aria-label": spanLabel,
|
|
275
|
+
"aria-current": selected ? "true" : void 0,
|
|
276
|
+
"data-slot": "calendar-view-entry",
|
|
277
|
+
className: classes,
|
|
278
|
+
onClick: (event) => {
|
|
279
|
+
if (!onOpen || event.defaultPrevented || event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0)
|
|
280
|
+
return;
|
|
281
|
+
event.preventDefault();
|
|
282
|
+
onOpen(id, item);
|
|
283
|
+
},
|
|
284
|
+
children: body
|
|
285
|
+
}
|
|
286
|
+
) : onOpen ? /* @__PURE__ */ jsx(
|
|
287
|
+
"button",
|
|
288
|
+
{
|
|
289
|
+
type: "button",
|
|
290
|
+
"aria-label": spanLabel,
|
|
291
|
+
"aria-current": selected ? "true" : void 0,
|
|
292
|
+
"data-slot": "calendar-view-entry",
|
|
293
|
+
className: classes,
|
|
294
|
+
onClick: () => onOpen(id, item),
|
|
295
|
+
children: body
|
|
296
|
+
}
|
|
297
|
+
) : (
|
|
298
|
+
// `aria-label` is prohibited on role `generic`,
|
|
299
|
+
// so the range rides along as hidden text here.
|
|
300
|
+
/* @__PURE__ */ jsxs(
|
|
301
|
+
"span",
|
|
302
|
+
{
|
|
303
|
+
"data-slot": "calendar-view-entry",
|
|
304
|
+
className: classes,
|
|
305
|
+
children: [
|
|
306
|
+
body,
|
|
307
|
+
spanLabel && /* @__PURE__ */ jsx("span", { className: "sr-only", children: `, ${start.toISODate()} to ${end.toISODate()}` })
|
|
308
|
+
]
|
|
309
|
+
}
|
|
310
|
+
)
|
|
311
|
+
) }, id);
|
|
312
|
+
}),
|
|
313
|
+
overflow > 0 && /* @__PURE__ */ jsx("li", { className: "text-muted-foreground px-1 text-xs", children: text.more.replace("{count}", String(overflow)) })
|
|
314
|
+
] })
|
|
315
|
+
]
|
|
316
|
+
},
|
|
317
|
+
key
|
|
318
|
+
);
|
|
319
|
+
})
|
|
320
|
+
},
|
|
321
|
+
week[0].toISODate()
|
|
322
|
+
)) }),
|
|
323
|
+
nothingPlaced && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground px-3 py-2 text-center text-sm", children: text.empty })
|
|
324
|
+
] })
|
|
325
|
+
)
|
|
326
|
+
]
|
|
327
|
+
}
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
export { CalendarView, defaultCalendarLabels };
|
|
332
|
+
//# sourceMappingURL=chunk-XBTKZCZF.js.map
|
|
333
|
+
//# sourceMappingURL=chunk-XBTKZCZF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarView/CalendarView.tsx"],"names":[],"mappings":";;;;;;;;;AAsCO,IAAM,qBAAA,GAAwC;AAAA,EACnD,GAAG,iBAAA;AAAA,EACH,KAAA,EAAO,oBAAA;AAAA,EACP,aAAA,EAAe,gBAAA;AAAA,EACf,SAAA,EAAW,YAAA;AAAA,EACX,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR;AAqCO,SAAS,YAAA,CAAgB;AAAA,EAC9B,KAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,KAAA,GAAQ,IAAA;AAAA,EACR,UAAA,GAAa,IAAA;AAAA,EACb,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,GAAe,CAAA;AAAA,EACf,MAAA;AAAA,EACA,SAAA,GAAY,CAAA;AAAA,EACZ,GAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA,GAAc;AAChB,CAAA,EAAyB;AACvB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,qBAAA,EAAuB,GAAG,MAAA,EAAO;AACnD,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,QAAA,CAAS,KAAA,EAAM,CAAE,QAAA;AAC1C,EAAA,MAAM,KAAA,GAAc,KAAA,CAAA,OAAA;AAAA,IAClB,MAAM,QAAA,CAAS,UAAA,CAAW,GAAA,oBAAO,IAAI,IAAA,EAAK,EAAG,EAAE,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,IACpE,CAAC,KAAK,IAAI;AAAA,GACZ;AAEA,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAU,KAAA,CAAA,QAAA;AAAA,IAAS,MACvD,YAAA,GACI,QAAA,CAAS,UAAA,CAAW,cAAc,EAAE,IAAA,EAAM,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA,GAC3D,KAAA,CAAM,QAAQ,OAAO;AAAA,GAC3B;AAGA,EAAA,MAAM,OAAA,GAAgB,cAAQ,MAAM;AAClC,IAAA,MAAM,MAAA,GAAS,QAAQ,QAAA,CAAS,UAAA,CAAW,OAAO,EAAE,IAAA,EAAM,CAAA,GAAI,aAAA;AAC9D,IAAA,OAAO,QAAA,CAAS,UAAA;AAAA,MACd,EAAE,MAAM,MAAA,CAAO,IAAA,EAAM,OAAO,MAAA,CAAO,KAAA,EAAO,KAAK,CAAA,EAAE;AAAA,MACjD,EAAE,IAAA;AAAK,KACT;AAAA,EACF,CAAA,EAAG,CAAC,KAAA,EAAO,aAAA,EAAe,IAAI,CAAC,CAAA;AAE/B,EAAA,MAAM,SAAA,GAAY,CAAC,IAAA,KAAmB;AACpC,IAAA,IAAI,CAAC,KAAA,EAAO,gBAAA,CAAiB,IAAI,CAAA;AACjC,IAAA,aAAA,GAAgB,IAAA,CAAK,UAAU,CAAA;AAAA,EACjC,CAAA;AAGA,EAAA,MAAM,SAAA,GAAkB,cAAQ,MAAM;AACpC,IAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA;AACrC,IAAA,MAAM,MAAA,GAAA,CAAU,KAAA,CAAM,OAAA,GAAU,YAAA,GAAe,CAAA,IAAK,CAAA;AACpD,IAAA,OAAO,KAAA,CAAM,KAAA,CAAM,EAAE,IAAA,EAAM,QAAQ,CAAA;AAAA,EACrC,CAAA,EAAG,CAAC,OAAA,EAAS,YAAY,CAAC,CAAA;AAE1B,EAAA,MAAM,IAAA,GAAa,KAAA,CAAA,OAAA;AAAA,IACjB,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,UAAU,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,EAAG,CAAC,CAAA;AAAA,IACtE,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,MAAM,KAAA,GAAc,KAAA,CAAA,OAAA;AAAA,IAClB,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,GAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,KAAK,KAAA,CAAM,CAAA,GAAI,GAAG,CAAA,GAAI,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,IACtE,CAAC,IAAI;AAAA,GACP;AAEA,EAAA,MAAM,MAAA,GAAe,cAAqB,MAAM;AAC9C,IAAA,MAAM,MAAmB,EAAC;AAC1B,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,MAAM,QAAQ,UAAA,CAAW,SAAA,CAAU,WAAW,IAAI,CAAA,EAAG,IAAI,CAAA,EAAG,OAAA;AAAA,QAC1D;AAAA,OACF;AACA,MAAA,IAAI,CAAC,KAAA,EAAO;AACZ,MAAA,MAAM,MAAA,GAAS,WAAW,SAAA,CAAU,MAAA,GAAS,IAAI,CAAA,EAAG,IAAI,CAAA,EAAG,OAAA,CAAQ,KAAK,CAAA;AACxE,MAAA,MAAM,MAAM,MAAA,IAAU,KAAA;AACtB,MAAA,GAAA,CAAI,IAAA,CAAK;AAAA,QACP,EAAA,EAAI,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA;AAAA,QACxB,IAAA;AAAA,QACA,KAAA;AAAA;AAAA,QAEA,GAAA,EAAK,GAAA,GAAM,KAAA,GAAQ,KAAA,GAAQ;AAAA,OAC5B,CAAA;AAAA,IACH;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAA,EAAO,SAAA,EAAW,IAAI,CAAC,CAAA;AAE3B,EAAA,MAAM,KAAA,GAAc,cAAQ,MAAM;AAChC,IAAA,MAAM,GAAA,uBAAU,GAAA,EAAyB;AACzC,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAU,IAAK,EAAA;AAC/B,MAAA,GAAA,CAAI,GAAA;AAAA,QACF,GAAA;AAAA,QACA,MAAA,CAAO,OAAO,CAAC,CAAA,KAAM,EAAE,KAAA,IAAS,GAAA,IAAO,GAAA,IAAO,CAAA,CAAE,GAAG;AAAA,OACrD;AAAA,IACF;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,IAAA,EAAM,MAAM,CAAC,CAAA;AAEjB,EAAA,MAAM,YAAA,GAAqB,cAAQ,MAAM;AACvC,IAAA,MAAM,QAAQ,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAE,QAAQ,CAAA;AAC/C,IAAA,OAAO,KAAA,CAAM,IAAA;AAAA,MACX,EAAE,QAAQ,CAAA,EAAE;AAAA,MACZ,CAAC,CAAA,EAAG,CAAA,KAAM,OAAO,YAAA,GAAe,CAAA,GAAI,KAAK,CAAC;AAAA,KAC5C;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAEzB,EAAA,MAAM,KAAA,GAAQ,CAAC,OAAA,qBACb,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8IAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO,KAAA;AAAA,0BACJ,GAAA,EAAA,EAAE,IAAA,EAAK,SAAQ,SAAA,EAAU,kBAAA,EACvB,eAAK,KAAA,EACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,KAAA;AAAA,sBACL,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EACd,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,KAAA,EAAO,KAAK,OAAA,EAAS,CAAA;AAAA,wBACxC,GAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAE,eAAK,OAAA,EAAQ;AAAA,OAAA,EAClC;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,QAChB,SAAA,CAAU,MAAA,IAAU,QAAQ,MAAA,IAAU,IAAI,CAAA,CAC1C,QAAA,CAAS,WAAW,CAAA;AACvB,EAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,KAAW,CAAA;AAExC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yDAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,CAAC,WAAA,oBACA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,uBAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,0DAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,WAAA,EAAU,QAAA,EAAS,SAAA,EAAU,yBAC9B,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,8BACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACb,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,OAAA;AAAA,oBACR,IAAA,EAAK,IAAA;AAAA,oBACL,cAAY,IAAA,CAAK,aAAA;AAAA,oBACjB,OAAA,EAAS,MAAM,SAAA,CAAU,OAAA,CAAQ,MAAM,EAAE,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,oBAErD,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAgB,SAAA,EAAU,uBAAA,EAAwB,eAAW,IAAA,EAAC;AAAA;AAAA,iBACjE;AAAA,gCACA,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,OAAA;AAAA,oBACR,IAAA,EAAK,IAAA;AAAA,oBACL,SAAS,MAAM,SAAA,CAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,oBAE9C,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,iBACR;AAAA,gCACA,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,OAAA;AAAA,oBACR,IAAA,EAAK,IAAA;AAAA,oBACL,cAAY,IAAA,CAAK,SAAA;AAAA,oBACjB,OAAA,EAAS,MAAM,SAAA,CAAU,OAAA,CAAQ,KAAK,EAAE,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,oBAEpD,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAiB,SAAA,EAAU,uBAAA,EAAwB,eAAW,IAAA,EAAC;AAAA;AAAA;AAClE,eAAA,EACF;AAAA;AAAA;AAAA,SACF;AAAA,QAGD,iBAAiB,UAAA,GAChB,UAAA;AAAA;AAAA;AAAA;AAAA,0BAKA,IAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,cAAY,UAAA,EAC5B,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,UAAA,EACR,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,KAAA,EAAM,SAAA,EAAU,yCAAA,EACvB,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,qBACjB,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,cAAA;AAAA,gBACL,WAAA,EAAU,uBAAA;AAAA,gBACV,SAAA,EAAW,EAAA;AAAA,kBACT,2FAAA;AAAA,kBACA,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA,eAAA;AAAA,cARI;AAAA,aAUR,GACH,CAAA,EACF,CAAA;AAAA,gCACC,KAAA,EAAA,EAAI,IAAA,EAAK,YACP,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACV,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,KAAA;AAAA,gBACL,SAAA,EAAU,kBAAA;AAAA,gBAET,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,KAAQ;AACjB,kBAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAU,IAAK,EAAA;AAC/B,kBAAA,MAAM,OAAA,GAAU,KAAA,CAAM,GAAA,CAAI,GAAG,KAAK,EAAC;AACnC,kBAAA,MAAM,OAAA,GAAU,GAAA,CAAI,KAAA,KAAU,OAAA,CAAQ,KAAA;AACtC,kBAAA,MAAM,OAAA,GAAU,GAAA,CAAI,OAAA,CAAQ,KAAA,EAAO,KAAK,CAAA;AACxC,kBAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,SAAS,CAAA;AAC1C,kBAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,MAAA,GAAS,OAAA,CAAQ,MAAA;AAC1C,kBAAA,uBACE,IAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBAEC,IAAA,EAAK,MAAA;AAAA,sBACL,WAAA,EAAU,mBAAA;AAAA,sBACV,gBAAc,OAAA,IAAW,MAAA;AAAA,sBACzB,cAAY,OAAA,IAAW,MAAA;AAAA,sBACvB,SAAA,EAAW,EAAA;AAAA,wBACT,8DAAA;AAAA,wBACA,OAAA,IAAW,EAAA,CAAG,aAAA,EAAe,UAAA,EAAY,UAAU,CAAA;AAAA,wBACnD,WAAW,UAAA,EAAY,KAAA;AAAA,wBACvB,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEA,QAAA,EAAA;AAAA,wCAAA,IAAA;AAAA,0BAAC,KAAA;AAAA,0BAAA;AAAA,4BACC,SAAA,EAAW,EAAA;AAAA,8BACT,iFAAA;AAAA,8BACA,UAAU,uBAAA,GAA0B,iBAAA;AAAA;AAAA;AAAA,8BAGpC,OAAA,IAAW;AAAA,6BACb;AAAA,4BAEA,QAAA,EAAA;AAAA,8CAAA,GAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,GAAA,EAAM,QAAA,EAAA,GAAA,CAAI,GAAA,EAAI,CAAA;AAAA,8BAC7B,2BACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,eAAK,KAAA,EAAM;AAAA;AAAA;AAAA,yBAE1C;AAAA,wCACA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,aAAA,EACX,QAAA,EAAA;AAAA,0BAAA,OAAA,CAAQ,IAAI,CAAC,EAAE,IAAI,IAAA,EAAM,KAAA,EAAO,KAAI,KAAM;AACzC,4BAAA,MAAM,MAAA,GACJ,SAAA,CAAU,SAAA,GAAY,IAAI,CAAA,IAAK,SAAA;AACjC,4BAAA,MAAM,WAAW,EAAA,KAAO,UAAA;AACxB,4BAAA,MAAM,IAAA,GAAO,aAAa,IAAA,EAAM;AAAA,8BAC9B,IAAA,EAAM;AAAA,6BACP,qBACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAU,gBAAA,EACb,QAAA,EAAA,SAAA,CAAU,QAAA,CAAS,IAAI,CAAA,EAC1B,CAAA;AAEF,4BAAA,MAAM,OAAA,GAAU,EAAA;AAAA,8BACd,qEAAA;AAAA,8BACA,aAAA,CAAc,MAAM,CAAA,CAAE,IAAA;AAAA,8BACtB,yEAAA;AAAA,8BACA,UAAA,EAAY,KAAA;AAAA,8BACZ,QAAA,IACE,EAAA;AAAA,gCACE,QAAA;AAAA,gCACA,aAAA,CAAc,MAAM,CAAA,CAAE,MAAA;AAAA,gCACtB,UAAA,EAAY;AAAA;AACd,6BACJ;AAGA,4BAAA,MAAM,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,KAAK,CAAA,GACtC,SACA,CAAA,EAAG,SAAA,CAAU,SAAS,IAAI,CAAC,KAAK,KAAA,CAAM,SAAA,EAAW,CAAA,IAAA,EAAO,GAAA,CAAI,WAAW,CAAA,CAAA;AAC3E,4BAAA,MAAM,IAAA,GAAO,OAAA,GAAU,EAAA,EAAI,IAAI,CAAA;AAC/B,4BAAA,uBACE,GAAA,CAAC,QACE,QAAA,EAAA,IAAA,mBACC,GAAA;AAAA,8BAAC,GAAA;AAAA,8BAAA;AAAA,gCACC,IAAA;AAAA,gCACA,YAAA,EAAY,SAAA;AAAA,gCACZ,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,gCAClC,WAAA,EAAU,qBAAA;AAAA,gCACV,SAAA,EAAW,OAAA;AAAA,gCACX,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,kCAAA,IACE,CAAC,MAAA,IACD,KAAA,CAAM,gBAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,QAAA,IACN,KAAA,CAAM,MAAA,KAAW,CAAA;AAEjB,oCAAA;AACF,kCAAA,KAAA,CAAM,cAAA,EAAe;AACrB,kCAAA,MAAA,CAAO,IAAI,IAAI,CAAA;AAAA,gCACjB,CAAA;AAAA,gCAEC,QAAA,EAAA;AAAA;AAAA,gCAED,MAAA,mBACF,GAAA;AAAA,8BAAC,QAAA;AAAA,8BAAA;AAAA,gCACC,IAAA,EAAK,QAAA;AAAA,gCACL,YAAA,EAAY,SAAA;AAAA,gCACZ,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,gCAClC,WAAA,EAAU,qBAAA;AAAA,gCACV,SAAA,EAAW,OAAA;AAAA,gCACX,OAAA,EAAS,MAAM,MAAA,CAAO,EAAA,EAAI,IAAI,CAAA;AAAA,gCAE7B,QAAA,EAAA;AAAA;AAAA,6BACH;AAAA;AAAA;AAAA,8CAIA,IAAA;AAAA,gCAAC,MAAA;AAAA,gCAAA;AAAA,kCACC,WAAA,EAAU,qBAAA;AAAA,kCACV,SAAA,EAAW,OAAA;AAAA,kCAEV,QAAA,EAAA;AAAA,oCAAA,IAAA;AAAA,oCACA,SAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EACb,QAAA,EAAA,CAAA,EAAA,EAAK,KAAA,CAAM,SAAA,EAAW,CAAA,IAAA,EAAO,GAAA,CAAI,SAAA,EAAW,CAAA,CAAA,EAC/C;AAAA;AAAA;AAAA;AAEJ,6BAAA,EAAA,EAhDK,EAkDT,CAAA;AAAA,0BAEJ,CAAC,CAAA;AAAA,0BACA,QAAA,GAAW,CAAA,oBACV,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oCAAA,EACX,QAAA,EAAA,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAW,MAAA,CAAO,QAAQ,CAAC,CAAA,EAChD;AAAA,yBAAA,EAEJ;AAAA;AAAA,qBAAA;AAAA,oBAnHK;AAAA,mBAoHP;AAAA,gBAEJ,CAAC;AAAA,eAAA;AAAA,cAnII,IAAA,CAAK,CAAC,CAAA,CAAE,SAAA;AAAU,aAqI1B,CAAA,EACH,CAAA;AAAA,YACC,iCACC,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qDAAA,EACV,eAAK,KAAA,EACR;AAAA,WAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-XBTKZCZF.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { DateTime, Info } from 'luxon';\nimport { cn } from '../../utils/cn';\nimport { Spinner } from '../Spinner';\nimport { Button } from '../Button';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../Icons';\nimport {\n accentClasses,\n defaultViewLabels,\n toDateTime,\n type ViewBaseProps,\n type ViewLabels,\n} from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type CalendarViewSlot =\n | 'toolbar'\n | 'weekday'\n | 'day'\n | 'outsideDay'\n | 'today'\n | 'entry'\n | 'selectedEntry'\n | 'state';\n\nexport interface CalendarLabels extends ViewLabels {\n previousMonth: string;\n nextMonth: string;\n today: string;\n /** Overflow affordance. `{count}` is substituted. */\n more: string;\n}\n\nexport const defaultCalendarLabels: CalendarLabels = {\n ...defaultViewLabels,\n empty: 'Nothing this month',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n today: 'Today',\n more: '{count} more',\n};\n\nexport interface CalendarViewProps<T> extends ViewBaseProps<T> {\n /** Controlled month. Any date inside the month works. */\n month?: Date;\n /** Starting month when uncontrolled. Defaults to the month containing `now`. */\n defaultMonth?: Date;\n onMonthChange?: (month: Date) => void;\n /**\n * IANA zone the grid is drawn in, e.g. `America/New_York`. Defaults to the\n * runtime's. A day boundary is a business fact, so state it explicitly when\n * the collection belongs to somewhere other than the viewer.\n */\n timeZone?: string;\n /** 1 = Monday … 7 = Sunday. Defaults to Monday. */\n weekStartsOn?: number;\n /** Locale for month, weekday and day-number formatting. */\n locale?: string;\n /** Entries to show per day before collapsing into \"{count} more\". */\n maxPerDay?: number;\n labels?: Partial<CalendarLabels>;\n classNames?: Partial<Record<CalendarViewSlot, string>>;\n /** Hide the month toolbar when the host renders its own. */\n hideToolbar?: boolean;\n}\n\ninterface Placed<T> {\n id: string;\n item: T;\n start: DateTime;\n end: DateTime;\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\nexport function CalendarView<T>({\n items,\n accessors,\n loading = false,\n error = null,\n selectedId = null,\n onOpen,\n getHref,\n renderItem,\n emptyState,\n labels,\n month,\n defaultMonth,\n onMonthChange,\n timeZone,\n weekStartsOn = 1,\n locale,\n maxPerDay = 3,\n now,\n className,\n classNames,\n hideToolbar = false,\n}: CalendarViewProps<T>) {\n const text = { ...defaultCalendarLabels, ...labels };\n const zone = timeZone ?? DateTime.local().zoneName;\n const today = React.useMemo(\n () => DateTime.fromJSDate(now ?? new Date(), { zone }).startOf('day'),\n [now, zone]\n );\n\n const [internalMonth, setInternalMonth] = React.useState(() =>\n defaultMonth\n ? DateTime.fromJSDate(defaultMonth, { zone }).startOf('month')\n : today.startOf('month')\n );\n // Re-anchor from the calendar year and month rather than the instant: an\n // instant on the 1st shifted into a behind-UTC zone lands in the month before.\n const current = React.useMemo(() => {\n const source = month ? DateTime.fromJSDate(month, { zone }) : internalMonth;\n return DateTime.fromObject(\n { year: source.year, month: source.month, day: 1 },\n { zone }\n );\n }, [month, internalMonth, zone]);\n\n const goToMonth = (next: DateTime) => {\n if (!month) setInternalMonth(next);\n onMonthChange?.(next.toJSDate());\n };\n\n // Six weeks always, so the grid does not change height between months.\n const gridStart = React.useMemo(() => {\n const first = current.startOf('month');\n const offset = (first.weekday - weekStartsOn + 7) % 7;\n return first.minus({ days: offset });\n }, [current, weekStartsOn]);\n\n const days = React.useMemo(\n () => Array.from({ length: 42 }, (_, i) => gridStart.plus({ days: i })),\n [gridStart]\n );\n\n const weeks = React.useMemo(\n () => Array.from({ length: 6 }, (_, i) => days.slice(i * 7, i * 7 + 7)),\n [days]\n );\n\n const placed = React.useMemo<Placed<T>[]>(() => {\n const out: Placed<T>[] = [];\n for (const item of items) {\n const start = toDateTime(accessors.getStart?.(item), zone)?.startOf(\n 'day'\n );\n if (!start) continue;\n const rawEnd = toDateTime(accessors.getEnd?.(item), zone)?.startOf('day');\n const end = rawEnd ?? start;\n out.push({\n id: accessors.getId(item),\n item,\n start,\n // A backwards range is data, not a crash: clamp it to one day.\n end: end < start ? start : end,\n });\n }\n return out;\n }, [items, accessors, zone]);\n\n const byDay = React.useMemo(() => {\n const map = new Map<string, Placed<T>[]>();\n for (const day of days) {\n const key = day.toISODate() ?? '';\n map.set(\n key,\n placed.filter((p) => p.start <= day && day <= p.end)\n );\n }\n return map;\n }, [days, placed]);\n\n const weekdayNames = React.useMemo(() => {\n const names = Info.weekdays('short', { locale });\n return Array.from(\n { length: 7 },\n (_, i) => names[(weekStartsOn - 1 + i) % 7]\n );\n }, [locale, weekStartsOn]);\n\n const state = (content: React.ReactNode) => (\n <div\n data-slot=\"calendar-view-state\"\n className={cn(\n 'border-border bg-card text-muted-foreground flex flex-col items-center justify-center gap-2 rounded-lg border px-4 py-10 text-center text-sm',\n classNames?.state\n )}\n >\n {content}\n </div>\n );\n\n if (error) {\n return state(\n <p role=\"alert\" className=\"text-destructive\">\n {text.error}\n </p>\n );\n }\n if (loading) {\n return state(\n <span className=\"flex items-center gap-2\">\n <Spinner size=\"sm\" label={text.loading} />\n <span aria-hidden>{text.loading}</span>\n </span>\n );\n }\n\n const monthLabel = current\n .setLocale(locale ?? current.locale ?? 'en')\n .toFormat('LLLL yyyy');\n const nothingPlaced = placed.length === 0;\n\n return (\n <div\n data-slot=\"calendar-view\"\n className={cn(\n 'border-border bg-card overflow-hidden rounded-lg border',\n className\n )}\n >\n {!hideToolbar && (\n <div\n data-slot=\"calendar-view-toolbar\"\n className={cn(\n 'border-border flex items-center gap-2 border-b px-3 py-2',\n classNames?.toolbar\n )}\n >\n <h3 aria-live=\"polite\" className=\"text-sm font-semibold\">\n {monthLabel}\n </h3>\n <div className=\"ms-auto flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={text.previousMonth}\n onClick={() => goToMonth(current.minus({ months: 1 }))}\n >\n <ChevronLeftIcon className=\"size-4 rtl:rotate-180\" aria-hidden />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => goToMonth(today.startOf('month'))}\n >\n {text.today}\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n aria-label={text.nextMonth}\n onClick={() => goToMonth(current.plus({ months: 1 }))}\n >\n <ChevronRightIcon className=\"size-4 rtl:rotate-180\" aria-hidden />\n </Button>\n </div>\n </div>\n )}\n\n {nothingPlaced && emptyState ? (\n emptyState\n ) : (\n // `table`, not `grid`: a grid promises arrow-key navigation between\n // cells, which this does not implement. Rows are explicit because a\n // columnheader or cell outside one is invalid ARIA, not just untidy.\n <div role=\"table\" aria-label={monthLabel}>\n <div role=\"rowgroup\">\n <div role=\"row\" className=\"border-border grid grid-cols-7 border-b\">\n {weekdayNames.map((name) => (\n <div\n key={name}\n role=\"columnheader\"\n data-slot=\"calendar-view-weekday\"\n className={cn(\n 'text-muted-foreground px-2 py-1.5 text-center text-xs font-medium tracking-wide uppercase',\n classNames?.weekday\n )}\n >\n {name}\n </div>\n ))}\n </div>\n </div>\n <div role=\"rowgroup\">\n {weeks.map((week) => (\n <div\n key={week[0].toISODate()}\n role=\"row\"\n className=\"grid grid-cols-7\"\n >\n {week.map((day) => {\n const key = day.toISODate() ?? '';\n const entries = byDay.get(key) ?? [];\n const outside = day.month !== current.month;\n const isToday = day.hasSame(today, 'day');\n const visible = entries.slice(0, maxPerDay);\n const overflow = entries.length - visible.length;\n return (\n <div\n key={key}\n role=\"cell\"\n data-slot=\"calendar-view-day\"\n data-outside={outside || undefined}\n data-today={isToday || undefined}\n className={cn(\n 'border-border min-h-24 border-e border-b p-1 last:border-e-0',\n outside && cn('bg-muted/30', classNames?.outsideDay),\n isToday && classNames?.today,\n classNames?.day\n )}\n >\n <div\n className={cn(\n 'mb-1 flex h-5 w-5 items-center justify-center rounded-full text-xs tabular-nums',\n outside ? 'text-muted-foreground' : 'text-foreground',\n // primary-800, not 500: white on the mid scale is\n // about 2:1 and fails AA. Same pair Button uses.\n isToday && 'bg-primary-800 font-semibold text-white'\n )}\n >\n <time dateTime={key}>{day.day}</time>\n {isToday && (\n <span className=\"sr-only\">{text.today}</span>\n )}\n </div>\n <ul className=\"space-y-0.5\">\n {visible.map(({ id, item, start, end }) => {\n const accent =\n accessors.getAccent?.(item) ?? 'primary';\n const selected = id === selectedId;\n const body = renderItem?.(item, {\n view: 'calendar',\n }) ?? (\n <span className=\"block truncate\">\n {accessors.getTitle(item)}\n </span>\n );\n const classes = cn(\n 'block w-full rounded px-1 py-0.5 text-start text-xs text-foreground',\n accentClasses[accent].tint,\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n classNames?.entry,\n selected &&\n cn(\n 'ring-1',\n accentClasses[accent].border,\n classNames?.selectedEntry\n )\n );\n // A multi-day item repeats on each day it covers; the\n // range is in the accessible name, not in the geometry.\n const spanLabel = start.hasSame(end, 'day')\n ? undefined\n : `${accessors.getTitle(item)}, ${start.toISODate()} to ${end.toISODate()}`;\n const href = getHref?.(id, item);\n return (\n <li key={id}>\n {href ? (\n <a\n href={href}\n aria-label={spanLabel}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"calendar-view-entry\"\n className={classes}\n onClick={(event) => {\n if (\n !onOpen ||\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n event.preventDefault();\n onOpen(id, item);\n }}\n >\n {body}\n </a>\n ) : onOpen ? (\n <button\n type=\"button\"\n aria-label={spanLabel}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"calendar-view-entry\"\n className={classes}\n onClick={() => onOpen(id, item)}\n >\n {body}\n </button>\n ) : (\n // `aria-label` is prohibited on role `generic`,\n // so the range rides along as hidden text here.\n <span\n data-slot=\"calendar-view-entry\"\n className={classes}\n >\n {body}\n {spanLabel && (\n <span className=\"sr-only\">\n {`, ${start.toISODate()} to ${end.toISODate()}`}\n </span>\n )}\n </span>\n )}\n </li>\n );\n })}\n {overflow > 0 && (\n <li className=\"text-muted-foreground px-1 text-xs\">\n {text.more.replace('{count}', String(overflow))}\n </li>\n )}\n </ul>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n {nothingPlaced && (\n <p className=\"text-muted-foreground px-3 py-2 text-center text-sm\">\n {text.empty}\n </p>\n )}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4NCDU5IG_cjs = require('./chunk-4NCDU5IG.cjs');
|
|
4
|
+
var chunkL7L5S2HO_cjs = require('./chunk-L7L5S2HO.cjs');
|
|
5
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
|
+
|
|
30
|
+
var VIEW_META = {
|
|
31
|
+
overview: { label: "Overview", icon: chunkL7L5S2HO_cjs.LayoutGrid },
|
|
32
|
+
list: { label: "List", icon: chunkL7L5S2HO_cjs.List },
|
|
33
|
+
board: { label: "Board", icon: chunkL7L5S2HO_cjs.Columns },
|
|
34
|
+
calendar: { label: "Calendar", icon: chunkL7L5S2HO_cjs.Calendar },
|
|
35
|
+
gantt: { label: "Gantt", icon: chunkL7L5S2HO_cjs.BarChart3 },
|
|
36
|
+
roadmap: { label: "Roadmap", icon: chunkL7L5S2HO_cjs.BarChart3 },
|
|
37
|
+
table: { label: "Table", icon: chunkL7L5S2HO_cjs.Table }
|
|
38
|
+
};
|
|
39
|
+
var viewSwitcherVariants = classVarianceAuthority.cva(
|
|
40
|
+
[
|
|
41
|
+
"inline-flex items-center gap-0.5",
|
|
42
|
+
"rounded-lg border border-border bg-muted p-0.5",
|
|
43
|
+
"overflow-x-auto"
|
|
44
|
+
],
|
|
45
|
+
{
|
|
46
|
+
variants: {
|
|
47
|
+
size: {
|
|
48
|
+
sm: "text-xs",
|
|
49
|
+
md: "text-sm"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
defaultVariants: { size: "md" }
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
var optionVariants = classVarianceAuthority.cva(
|
|
56
|
+
[
|
|
57
|
+
"inline-flex shrink-0 items-center gap-1.5 rounded-md font-medium",
|
|
58
|
+
"transition-colors",
|
|
59
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background",
|
|
60
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
61
|
+
],
|
|
62
|
+
{
|
|
63
|
+
variants: {
|
|
64
|
+
size: {
|
|
65
|
+
// 40px tall on touch, tighter once a pointer is likely.
|
|
66
|
+
sm: "min-h-10 px-2 py-2 sm:min-h-0 sm:px-2 sm:py-1",
|
|
67
|
+
md: "min-h-10 px-2.5 py-2 sm:min-h-0 sm:px-3 sm:py-1.5"
|
|
68
|
+
},
|
|
69
|
+
active: {
|
|
70
|
+
// A raised surface rather than tinted ink: an accent colour as text on
|
|
71
|
+
// its own wash fails AA contrast. Same treatment as Tabs' pills.
|
|
72
|
+
true: "bg-background text-foreground shadow-sm",
|
|
73
|
+
false: "text-muted-foreground hover:text-foreground"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
defaultVariants: { size: "md", active: false }
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
var ViewSwitcher = React__namespace.forwardRef(
|
|
80
|
+
function ViewSwitcher2({
|
|
81
|
+
views,
|
|
82
|
+
value,
|
|
83
|
+
onValueChange,
|
|
84
|
+
label = chunk4NCDU5IG_cjs.defaultViewLabels.viewSwitcher,
|
|
85
|
+
showLabels = "responsive",
|
|
86
|
+
size,
|
|
87
|
+
className,
|
|
88
|
+
classNames,
|
|
89
|
+
...rest
|
|
90
|
+
}, ref) {
|
|
91
|
+
const options = React__namespace.useMemo(
|
|
92
|
+
() => views.map((v) => typeof v === "string" ? { id: v } : v),
|
|
93
|
+
[views]
|
|
94
|
+
);
|
|
95
|
+
const refs = React__namespace.useRef({});
|
|
96
|
+
const select = (next) => {
|
|
97
|
+
if (!next || next.id === value) return;
|
|
98
|
+
onValueChange(next.id);
|
|
99
|
+
requestAnimationFrame(
|
|
100
|
+
() => refs.current[next.id]?.focus({ preventScroll: true })
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
const step = (delta) => {
|
|
104
|
+
const enabled = options.filter((o) => !o.disabled);
|
|
105
|
+
if (enabled.length === 0) return;
|
|
106
|
+
const current = enabled.findIndex((o) => o.id === value);
|
|
107
|
+
const from = current === -1 ? delta > 0 ? -1 : 0 : current;
|
|
108
|
+
select(enabled[(from + delta + enabled.length) % enabled.length]);
|
|
109
|
+
};
|
|
110
|
+
const onKeyDown = (event) => {
|
|
111
|
+
const enabled = options.filter((o) => !o.disabled);
|
|
112
|
+
const forward = getComputedStyle(event.currentTarget).direction === "rtl" ? -1 : 1;
|
|
113
|
+
switch (event.key) {
|
|
114
|
+
case "ArrowRight":
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
step(forward);
|
|
117
|
+
break;
|
|
118
|
+
case "ArrowLeft":
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
step(-forward);
|
|
121
|
+
break;
|
|
122
|
+
case "ArrowDown":
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
step(1);
|
|
125
|
+
break;
|
|
126
|
+
case "ArrowUp":
|
|
127
|
+
event.preventDefault();
|
|
128
|
+
step(-1);
|
|
129
|
+
break;
|
|
130
|
+
case "Home":
|
|
131
|
+
event.preventDefault();
|
|
132
|
+
select(enabled[0]);
|
|
133
|
+
break;
|
|
134
|
+
case "End":
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
select(enabled[enabled.length - 1]);
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const tabStopId = options.find((o) => o.id === value && !o.disabled)?.id ?? options.find((o) => !o.disabled)?.id;
|
|
141
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
142
|
+
"div",
|
|
143
|
+
{
|
|
144
|
+
ref,
|
|
145
|
+
role: "radiogroup",
|
|
146
|
+
"aria-label": label,
|
|
147
|
+
"data-slot": "view-switcher",
|
|
148
|
+
className: chunkS5RVSXDV_cjs.cn(viewSwitcherVariants({ size }), className),
|
|
149
|
+
...rest,
|
|
150
|
+
children: options.map((option) => {
|
|
151
|
+
const meta = VIEW_META[option.id];
|
|
152
|
+
const Icon = option.icon ?? meta.icon;
|
|
153
|
+
const text = option.label ?? meta.label;
|
|
154
|
+
const active = option.id === value;
|
|
155
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
156
|
+
"button",
|
|
157
|
+
{
|
|
158
|
+
ref: (node) => {
|
|
159
|
+
refs.current[option.id] = node;
|
|
160
|
+
},
|
|
161
|
+
type: "button",
|
|
162
|
+
role: "radio",
|
|
163
|
+
"aria-checked": active,
|
|
164
|
+
"aria-label": showLabels === true ? void 0 : text,
|
|
165
|
+
title: text,
|
|
166
|
+
disabled: option.disabled,
|
|
167
|
+
tabIndex: option.id === tabStopId ? 0 : -1,
|
|
168
|
+
"data-slot": "view-switcher-option",
|
|
169
|
+
"data-view": option.id,
|
|
170
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
171
|
+
optionVariants({ size, active }),
|
|
172
|
+
classNames?.option,
|
|
173
|
+
active && classNames?.activeOption
|
|
174
|
+
),
|
|
175
|
+
onClick: () => onValueChange(option.id),
|
|
176
|
+
onKeyDown,
|
|
177
|
+
children: [
|
|
178
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-4 shrink-0", "aria-hidden": true }),
|
|
179
|
+
showLabels !== false && /* @__PURE__ */ jsxRuntime.jsx(
|
|
180
|
+
"span",
|
|
181
|
+
{
|
|
182
|
+
"data-slot": "view-switcher-label",
|
|
183
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
184
|
+
showLabels === "responsive" && "hidden sm:inline"
|
|
185
|
+
),
|
|
186
|
+
children: text
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
option.id
|
|
192
|
+
);
|
|
193
|
+
})
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
exports.ViewSwitcher = ViewSwitcher;
|
|
200
|
+
exports.viewSwitcherVariants = viewSwitcherVariants;
|
|
201
|
+
//# sourceMappingURL=chunk-XDIMTPZU.cjs.map
|
|
202
|
+
//# sourceMappingURL=chunk-XDIMTPZU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ViewSwitcher/ViewSwitcher.tsx"],"names":["LayoutGrid","List","Columns","Calendar","BarChart3","Table","cva","React","ViewSwitcher","defaultViewLabels","jsx","cn","jsxs"],"mappings":"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","file":"chunk-XDIMTPZU.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport {\n CalendarIcon,\n ChartIcon,\n ColumnsIcon,\n GridIcon,\n ListIcon,\n TableIcon,\n} from '../Icons';\nimport { defaultViewLabels, type ViewId } from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface ViewOption {\n id: ViewId;\n /** Overrides the built-in English label. */\n label?: string;\n /** Overrides the built-in icon. */\n icon?: React.ComponentType<{ className?: string; 'aria-hidden'?: boolean }>;\n disabled?: boolean;\n}\n\nexport interface ViewSwitcherProps extends VariantProps<\n typeof viewSwitcherVariants\n> {\n /** Views to offer, in order. Accepts bare ids or `ViewOption`s. */\n views: readonly (ViewId | ViewOption)[];\n value: ViewId;\n onValueChange: (view: ViewId) => void;\n /** Accessible name of the group. */\n label?: string;\n /** Show labels beside the icons. `responsive` hides them below `sm`. */\n showLabels?: boolean | 'responsive';\n className?: string;\n classNames?: Partial<Record<'option' | 'activeOption', string>>;\n}\n\n// =============================================================================\n// Defaults\n// =============================================================================\n\nconst VIEW_META: Record<\n ViewId,\n {\n label: string;\n icon: React.ComponentType<{ className?: string; 'aria-hidden'?: boolean }>;\n }\n> = {\n overview: { label: 'Overview', icon: GridIcon },\n list: { label: 'List', icon: ListIcon },\n board: { label: 'Board', icon: ColumnsIcon },\n calendar: { label: 'Calendar', icon: CalendarIcon },\n gantt: { label: 'Gantt', icon: ChartIcon },\n roadmap: { label: 'Roadmap', icon: ChartIcon },\n table: { label: 'Table', icon: TableIcon },\n};\n\n// =============================================================================\n// Variants\n// =============================================================================\n\nconst viewSwitcherVariants = cva(\n [\n 'inline-flex items-center gap-0.5',\n 'rounded-lg border border-border bg-muted p-0.5',\n 'overflow-x-auto',\n ],\n {\n variants: {\n size: {\n sm: 'text-xs',\n md: 'text-sm',\n },\n },\n defaultVariants: { size: 'md' },\n }\n);\n\nconst optionVariants = cva(\n [\n 'inline-flex shrink-0 items-center gap-1.5 rounded-md font-medium',\n 'transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background',\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n {\n variants: {\n size: {\n // 40px tall on touch, tighter once a pointer is likely.\n sm: 'min-h-10 px-2 py-2 sm:min-h-0 sm:px-2 sm:py-1',\n md: 'min-h-10 px-2.5 py-2 sm:min-h-0 sm:px-3 sm:py-1.5',\n },\n active: {\n // A raised surface rather than tinted ink: an accent colour as text on\n // its own wash fails AA contrast. Same treatment as Tabs' pills.\n true: 'bg-background text-foreground shadow-sm',\n false: 'text-muted-foreground hover:text-foreground',\n },\n },\n defaultVariants: { size: 'md', active: false },\n }\n);\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * Keyboard model is a radio group: one tab stop, arrows move *and* select.\n * Every option is visible, so moving the selection is the whole interaction —\n * there is nothing to \"commit\" afterwards.\n */\nexport const ViewSwitcher = React.forwardRef<HTMLDivElement, ViewSwitcherProps>(\n function ViewSwitcher(\n {\n views,\n value,\n onValueChange,\n label = defaultViewLabels.viewSwitcher,\n showLabels = 'responsive',\n size,\n className,\n classNames,\n ...rest\n },\n ref\n ) {\n const options = React.useMemo<ViewOption[]>(\n () => views.map((v) => (typeof v === 'string' ? { id: v } : v)),\n [views]\n );\n const refs = React.useRef<Record<string, HTMLButtonElement | null>>({});\n\n const select = (next: ViewOption | undefined) => {\n if (!next || next.id === value) return;\n onValueChange(next.id);\n // The selection owns the tab stop, so focus has to follow it.\n requestAnimationFrame(() =>\n refs.current[next.id]?.focus({ preventScroll: true })\n );\n };\n\n // Stepping is relative to the selected view, not to whichever button received\n // the key: focus moves asynchronously, and the two would drift apart.\n const step = (delta: number) => {\n const enabled = options.filter((o) => !o.disabled);\n if (enabled.length === 0) return;\n const current = enabled.findIndex((o) => o.id === value);\n const from = current === -1 ? (delta > 0 ? -1 : 0) : current;\n select(enabled[(from + delta + enabled.length) % enabled.length]);\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const enabled = options.filter((o) => !o.disabled);\n // Logical, not physical: ArrowRight moves to the visually next option,\n // which is the previous one under RTL.\n const forward =\n getComputedStyle(event.currentTarget).direction === 'rtl' ? -1 : 1;\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n step(forward);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n step(-forward);\n break;\n case 'ArrowDown':\n event.preventDefault();\n step(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n step(-1);\n break;\n case 'Home':\n event.preventDefault();\n select(enabled[0]);\n break;\n case 'End':\n event.preventDefault();\n select(enabled[enabled.length - 1]);\n break;\n default:\n break;\n }\n };\n\n // The roving tab stop has to land on an option the browser will actually\n // focus. A disabled `<button>` is unfocusable, so if the active option is\n // also disabled — a controlled caller, or a `defaultView` that later got\n // disabled — putting the only `tabIndex={0}` on it leaves the radiogroup\n // with no keyboard entry point at all. Fall back to the first enabled\n // option; arrows then move from there.\n const tabStopId =\n options.find((o) => o.id === value && !o.disabled)?.id ??\n options.find((o) => !o.disabled)?.id;\n\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n aria-label={label}\n data-slot=\"view-switcher\"\n className={cn(viewSwitcherVariants({ size }), className)}\n {...rest}\n >\n {options.map((option) => {\n const meta = VIEW_META[option.id];\n const Icon = option.icon ?? meta.icon;\n const text = option.label ?? meta.label;\n const active = option.id === value;\n return (\n <button\n key={option.id}\n ref={(node) => {\n refs.current[option.id] = node;\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n aria-label={showLabels === true ? undefined : text}\n title={text}\n disabled={option.disabled}\n tabIndex={option.id === tabStopId ? 0 : -1}\n data-slot=\"view-switcher-option\"\n data-view={option.id}\n className={cn(\n optionVariants({ size, active }),\n classNames?.option,\n active && classNames?.activeOption\n )}\n onClick={() => onValueChange(option.id)}\n onKeyDown={onKeyDown}\n >\n <Icon className=\"size-4 shrink-0\" aria-hidden />\n {showLabels !== false && (\n <span\n data-slot=\"view-switcher-label\"\n className={cn(\n showLabels === 'responsive' && 'hidden sm:inline'\n )}\n >\n {text}\n </span>\n )}\n </button>\n );\n })}\n </div>\n );\n }\n);\n\nexport { viewSwitcherVariants };\n"]}
|