@omnifyjp/ui 0.1.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-XKVHX75G.js → chunk-2C2HRGM7.js} +3 -3
- package/dist/chunk-2C2HRGM7.js.map +1 -0
- package/dist/{chunk-CF2MMEOS.js → chunk-2TUWDXAC.js} +3 -3
- package/dist/chunk-2TUWDXAC.js.map +1 -0
- package/dist/{chunk-DZENMCRL.js → chunk-34ARZSNP.js} +2 -2
- package/dist/chunk-34ARZSNP.js.map +1 -0
- package/dist/{chunk-DIS42JLG.js → chunk-35DNN46W.js} +2 -2
- package/dist/chunk-35DNN46W.js.map +1 -0
- package/dist/{chunk-UCEUTKTQ.js → chunk-35U6QG4P.js} +5 -5
- package/dist/chunk-35U6QG4P.js.map +1 -0
- package/dist/{chunk-74K7VSEO.js → chunk-36YYHIJU.js} +4 -4
- package/dist/chunk-36YYHIJU.js.map +1 -0
- package/dist/{chunk-ANTYNEUU.js → chunk-3EOHW4QN.js} +2 -2
- package/dist/chunk-3EOHW4QN.js.map +1 -0
- package/dist/{chunk-EMHO6GT6.js → chunk-4MHIUUAW.js} +3 -3
- package/dist/chunk-4MHIUUAW.js.map +1 -0
- package/dist/chunk-55E7D2HR.js +99 -0
- package/dist/chunk-55E7D2HR.js.map +1 -0
- package/dist/{chunk-Z47W426M.js → chunk-67YUL2ZS.js} +2 -2
- package/dist/chunk-67YUL2ZS.js.map +1 -0
- package/dist/{chunk-XRGGZOD5.js → chunk-6DIDQ4TB.js} +10 -10
- package/dist/chunk-6DIDQ4TB.js.map +1 -0
- package/dist/{chunk-7ZFYPC74.js → chunk-6GWVQB3Q.js} +3 -3
- package/dist/chunk-6GWVQB3Q.js.map +1 -0
- package/dist/{chunk-DR4GGX45.js → chunk-75WZR6HF.js} +3 -3
- package/dist/chunk-75WZR6HF.js.map +1 -0
- package/dist/{chunk-QMABUSSD.js → chunk-7IRLBU2I.js} +3 -3
- package/dist/chunk-7IRLBU2I.js.map +1 -0
- package/dist/{chunk-WAPGZIAL.js → chunk-7RMTPT6O.js} +2 -2
- package/dist/chunk-7RMTPT6O.js.map +1 -0
- package/dist/{chunk-JPTN62BV.js → chunk-7XH3MGBR.js} +2 -2
- package/dist/chunk-7XH3MGBR.js.map +1 -0
- package/dist/chunk-A3BB5ZOC.js +77 -0
- package/dist/chunk-A3BB5ZOC.js.map +1 -0
- package/dist/{chunk-NFAXCC73.js → chunk-B434PORR.js} +2 -2
- package/dist/chunk-B434PORR.js.map +1 -0
- package/dist/{chunk-MNAT3ZF6.js → chunk-BAQWGQJG.js} +3 -3
- package/dist/chunk-BAQWGQJG.js.map +1 -0
- package/dist/{chunk-6GCAG5FH.js → chunk-BRSM3SZP.js} +2 -2
- package/dist/chunk-BRSM3SZP.js.map +1 -0
- package/dist/{chunk-AZARDPXB.js → chunk-C34KSTWA.js} +2 -2
- package/dist/chunk-C34KSTWA.js.map +1 -0
- package/dist/{chunk-4CT5SCAH.js → chunk-C5NZAOA7.js} +2 -2
- package/dist/chunk-C5NZAOA7.js.map +1 -0
- package/dist/{chunk-4Q2FLTAW.js → chunk-CUZR4JWM.js} +2 -2
- package/dist/chunk-CUZR4JWM.js.map +1 -0
- package/dist/{chunk-QMAMDYRD.js → chunk-EWBCV7VA.js} +2 -2
- package/dist/chunk-EWBCV7VA.js.map +1 -0
- package/dist/{chunk-4N357E44.js → chunk-F2ZJLKDP.js} +2 -2
- package/dist/chunk-F2ZJLKDP.js.map +1 -0
- package/dist/{chunk-KABLXGWK.js → chunk-FLWMT4DB.js} +2 -2
- package/dist/chunk-FLWMT4DB.js.map +1 -0
- package/dist/{chunk-IJIGJGL5.js → chunk-FRKG7JQY.js} +2 -2
- package/dist/chunk-FRKG7JQY.js.map +1 -0
- package/dist/{chunk-KRDWVQZ6.js → chunk-G7HTZBUR.js} +13 -13
- package/dist/chunk-G7HTZBUR.js.map +1 -0
- package/dist/{chunk-23SALQ3G.js → chunk-IAWKX5W4.js} +2 -2
- package/dist/chunk-IAWKX5W4.js.map +1 -0
- package/dist/{chunk-SABAKV4J.js → chunk-INLM7UJC.js} +2 -2
- package/dist/chunk-INLM7UJC.js.map +1 -0
- package/dist/{chunk-TEYOLOZY.js → chunk-JAJMM32I.js} +3 -3
- package/dist/chunk-JAJMM32I.js.map +1 -0
- package/dist/{chunk-TMFQJ7E3.js → chunk-JJSVA3TH.js} +2 -2
- package/dist/chunk-JJSVA3TH.js.map +1 -0
- package/dist/{chunk-KOGOYUEE.js → chunk-JLTBUACL.js} +2 -2
- package/dist/chunk-JLTBUACL.js.map +1 -0
- package/dist/{chunk-EIF6WZAZ.js → chunk-JRU2QX7T.js} +2 -2
- package/dist/chunk-JRU2QX7T.js.map +1 -0
- package/dist/{chunk-VGQC333M.js → chunk-JXGRW2MR.js} +2 -2
- package/dist/chunk-JXGRW2MR.js.map +1 -0
- package/dist/{chunk-CESZTYQQ.js → chunk-KTBOZ4NE.js} +4 -4
- package/dist/chunk-KTBOZ4NE.js.map +1 -0
- package/dist/{chunk-7ALADSN3.js → chunk-LMT327XH.js} +4 -4
- package/dist/chunk-LMT327XH.js.map +1 -0
- package/dist/{chunk-ZPWGR4CM.js → chunk-LTTNCAAA.js} +3 -3
- package/dist/chunk-LTTNCAAA.js.map +1 -0
- package/dist/{chunk-BJO5JCFB.js → chunk-LVZNNIK4.js} +3 -3
- package/dist/chunk-LVZNNIK4.js.map +1 -0
- package/dist/{chunk-YMZJ2RYW.js → chunk-MJLFJPUG.js} +9 -9
- package/dist/chunk-MJLFJPUG.js.map +1 -0
- package/dist/{chunk-3TV2IR7L.js → chunk-MZ2P566X.js} +4 -4
- package/dist/chunk-MZ2P566X.js.map +1 -0
- package/dist/{chunk-4D6FDXCG.js → chunk-N47H4MHX.js} +3 -3
- package/dist/chunk-N47H4MHX.js.map +1 -0
- package/dist/{chunk-BOYSXIM3.js → chunk-NNJTKHCE.js} +2 -2
- package/dist/chunk-NNJTKHCE.js.map +1 -0
- package/dist/{chunk-4OQTTPY4.js → chunk-NPL2R5LD.js} +5 -5
- package/dist/chunk-NPL2R5LD.js.map +1 -0
- package/dist/{chunk-725ICC47.js → chunk-NU56GKGM.js} +2 -2
- package/dist/{chunk-725ICC47.js.map → chunk-NU56GKGM.js.map} +1 -1
- package/dist/{chunk-KXZ7IND6.js → chunk-P3M5TZD2.js} +2 -2
- package/dist/chunk-P3M5TZD2.js.map +1 -0
- package/dist/{chunk-ONAUEREV.js → chunk-PGWNOZDX.js} +2 -2
- package/dist/chunk-PGWNOZDX.js.map +1 -0
- package/dist/{chunk-L46XUK4O.js → chunk-R2CDE5DO.js} +2 -2
- package/dist/chunk-R2CDE5DO.js.map +1 -0
- package/dist/{chunk-LI7CKURD.js → chunk-RQNZDWY3.js} +2 -2
- package/dist/chunk-RQNZDWY3.js.map +1 -0
- package/dist/{chunk-YKJZV2JK.js → chunk-S6PDRGR5.js} +2 -2
- package/dist/chunk-S6PDRGR5.js.map +1 -0
- package/dist/chunk-TGYQ3AKH.js +95 -0
- package/dist/chunk-TGYQ3AKH.js.map +1 -0
- package/dist/{chunk-RIIADVOV.js → chunk-THQUH6WX.js} +6 -6
- package/dist/chunk-THQUH6WX.js.map +1 -0
- package/dist/{chunk-RVJDDGQW.js → chunk-TJMK2KBE.js} +3 -3
- package/dist/chunk-TJMK2KBE.js.map +1 -0
- package/dist/{chunk-5WCL47ZW.js → chunk-TTH7TWVX.js} +2 -2
- package/dist/chunk-TTH7TWVX.js.map +1 -0
- package/dist/{chunk-LW5PTU7D.js → chunk-USIHM7FV.js} +2 -2
- package/dist/chunk-USIHM7FV.js.map +1 -0
- package/dist/{chunk-PCQSHXOQ.js → chunk-VVYSAGB3.js} +6 -6
- package/dist/chunk-VVYSAGB3.js.map +1 -0
- package/dist/{chunk-CDARHMTL.js → chunk-WD5KZE25.js} +2 -2
- package/dist/chunk-WD5KZE25.js.map +1 -0
- package/dist/{chunk-PPZSGU2L.js → chunk-WL4ZO2H3.js} +2 -2
- package/dist/chunk-WL4ZO2H3.js.map +1 -0
- package/dist/{chunk-5M67ZEPM.js → chunk-XOJJBNDX.js} +2 -2
- package/dist/chunk-XOJJBNDX.js.map +1 -0
- package/dist/{chunk-JJHKFW6P.js → chunk-XUVLD65E.js} +7 -7
- package/dist/chunk-XUVLD65E.js.map +1 -0
- package/dist/{chunk-KXT75MXF.js → chunk-YBMEQZX7.js} +2 -2
- package/dist/chunk-YBMEQZX7.js.map +1 -0
- package/dist/{chunk-GJCHZAJO.js → chunk-YS3PMGYC.js} +5 -5
- package/dist/chunk-YS3PMGYC.js.map +1 -0
- package/dist/{chunk-OXQNDQJW.js → chunk-Z2QAABLM.js} +2 -2
- package/dist/chunk-Z2QAABLM.js.map +1 -0
- package/dist/{chunk-YF6WRCTG.js → chunk-ZHEKDP5X.js} +3 -3
- package/dist/chunk-ZHEKDP5X.js.map +1 -0
- package/dist/{chunk-OHBCYKNT.js → chunk-ZPMXRW2A.js} +3 -3
- package/dist/chunk-ZPMXRW2A.js.map +1 -0
- package/dist/{chunk-QCGYYBDZ.js → chunk-ZYEGBF7G.js} +3 -3
- package/dist/chunk-ZYEGBF7G.js.map +1 -0
- package/dist/components/accordion.d.ts +27 -0
- package/dist/components/accordion.js +1 -1
- package/dist/components/alert-dialog.d.ts +39 -0
- package/dist/components/alert-dialog.js +2 -2
- package/dist/components/alert.d.ts +57 -2
- package/dist/components/alert.js +1 -1
- package/dist/components/aspect-ratio.d.ts +17 -0
- package/dist/components/aspect-ratio.js +1 -1
- package/dist/components/avatar.d.ts +43 -4
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.d.ts +43 -4
- package/dist/components/badge.js +1 -1
- package/dist/components/breadcrumb.d.ts +36 -0
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/button.d.ts +43 -19
- package/dist/components/button.js +1 -1
- package/dist/components/calendar-category-badge.d.ts +14 -0
- package/dist/components/calendar-category-badge.js +2 -2
- package/dist/components/calendar-event-chip.d.ts +23 -0
- package/dist/components/calendar-event-chip.js +1 -1
- package/dist/components/calendar-event-sheet.d.ts +37 -0
- package/dist/components/calendar-event-sheet.js +6 -6
- package/dist/components/calendar-mini.d.ts +36 -0
- package/dist/components/calendar-mini.js +3 -3
- package/dist/components/calendar-toolbar.d.ts +34 -1
- package/dist/components/calendar-toolbar.js +4 -4
- package/dist/components/calendar.d.ts +12 -0
- package/dist/components/calendar.js +2 -2
- package/dist/components/card.d.ts +31 -0
- package/dist/components/card.js +1 -1
- package/dist/components/carousel.d.ts +29 -0
- package/dist/components/carousel.js +2 -2
- package/dist/components/chart.d.ts +61 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/checkbox.d.ts +19 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collapsible.d.ts +20 -0
- package/dist/components/collapsible.js +1 -1
- package/dist/components/color-picker.d.ts +22 -0
- package/dist/components/color-picker.js +3 -3
- package/dist/components/combobox.d.ts +65 -0
- package/dist/components/combobox.js +5 -5
- package/dist/components/command.d.ts +43 -0
- package/dist/components/command.js +2 -2
- package/dist/components/context-menu.d.ts +42 -0
- package/dist/components/context-menu.js +1 -1
- package/dist/components/date-picker.d.ts +42 -2
- package/dist/components/date-picker.js +4 -4
- package/dist/components/dialog.d.ts +42 -0
- package/dist/components/dialog.js +1 -1
- package/dist/components/drawer.d.ts +43 -0
- package/dist/components/drawer.js +1 -1
- package/dist/components/dropdown-menu.d.ts +48 -0
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/file-upload.d.ts +27 -0
- package/dist/components/file-upload.js +2 -2
- package/dist/components/form.d.ts +39 -0
- package/dist/components/form.js +2 -2
- package/dist/components/hover-card.d.ts +34 -0
- package/dist/components/hover-card.js +1 -1
- package/dist/components/input-otp.d.ts +24 -0
- package/dist/components/input-otp.js +1 -1
- package/dist/components/label.d.ts +15 -1
- package/dist/components/label.js +1 -1
- package/dist/components/menubar.d.ts +53 -0
- package/dist/components/menubar.js +1 -1
- package/dist/components/navigation-menu.d.ts +46 -0
- package/dist/components/navigation-menu.js +1 -1
- package/dist/components/pagination.d.ts +41 -0
- package/dist/components/pagination.js +2 -2
- package/dist/components/permission-grid.d.ts +37 -0
- package/dist/components/permission-grid.js +2 -2
- package/dist/components/popover.d.ts +27 -0
- package/dist/components/popover.js +1 -1
- package/dist/components/progress.d.ts +15 -2
- package/dist/components/progress.js +1 -1
- package/dist/components/radio-group.d.ts +33 -3
- package/dist/components/radio-group.js +1 -1
- package/dist/components/rating.d.ts +21 -0
- package/dist/components/rating.js +1 -1
- package/dist/components/resizable.d.ts +25 -0
- package/dist/components/resizable.js +1 -1
- package/dist/components/scope-tree.d.ts +45 -2
- package/dist/components/scope-tree.js +2 -2
- package/dist/components/scope-type-badge.d.ts +15 -0
- package/dist/components/scope-type-badge.js +2 -2
- package/dist/components/scroll-area.d.ts +21 -0
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/select.d.ts +34 -0
- package/dist/components/select.js +1 -1
- package/dist/components/separator.d.ts +19 -2
- package/dist/components/separator.js +1 -1
- package/dist/components/sheet.d.ts +35 -0
- package/dist/components/sheet.js +1 -1
- package/dist/components/sidebar.d.ts +94 -0
- package/dist/components/sidebar.js +6 -6
- package/dist/components/skeleton.d.ts +22 -2
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.d.ts +19 -2
- package/dist/components/slider.js +1 -1
- package/dist/components/slug-input.d.ts +28 -0
- package/dist/components/slug-input.js +2 -2
- package/dist/components/sonner.d.ts +16 -0
- package/dist/components/sonner.js +1 -1
- package/dist/components/stage-type-badge.d.ts +6 -0
- package/dist/components/stage-type-badge.js +2 -2
- package/dist/components/switch.d.ts +21 -2
- package/dist/components/switch.js +1 -1
- package/dist/components/table.d.ts +44 -0
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.d.ts +29 -0
- package/dist/components/tabs.js +1 -1
- package/dist/components/tag-input.d.ts +25 -0
- package/dist/components/tag-input.js +2 -2
- package/dist/components/textarea.d.ts +17 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/time-picker.d.ts +37 -0
- package/dist/components/time-picker.js +4 -4
- package/dist/components/toggle-group.d.ts +36 -3
- package/dist/components/toggle-group.js +2 -2
- package/dist/components/toggle.d.ts +20 -2
- package/dist/components/toggle.js +1 -1
- package/dist/components/tooltip.d.ts +24 -0
- package/dist/components/tooltip.js +1 -1
- package/dist/components/workflow-category-badge.d.ts +6 -0
- package/dist/components/workflow-category-badge.js +2 -2
- package/dist/components/workflow-diagram.d.ts +21 -1
- package/dist/components/workflow-diagram.js +2 -2
- package/dist/components/workflow-status-badge.d.ts +6 -0
- package/dist/components/workflow-status-badge.js +2 -2
- package/dist/components/workflow-stepper.d.ts +18 -0
- package/dist/components/workflow-stepper.js +1 -1
- package/dist/index.d.ts +14 -13
- package/dist/index.js +66 -66
- package/dist/types-CBVkScfB.d.ts +84 -0
- package/package.json +23 -13
- package/src/styles/theme.css +10 -0
- package/dist/chunk-23SALQ3G.js.map +0 -1
- package/dist/chunk-3TGN2DFB.js +0 -41
- package/dist/chunk-3TGN2DFB.js.map +0 -1
- package/dist/chunk-3TV2IR7L.js.map +0 -1
- package/dist/chunk-4CT5SCAH.js.map +0 -1
- package/dist/chunk-4D6FDXCG.js.map +0 -1
- package/dist/chunk-4N357E44.js.map +0 -1
- package/dist/chunk-4OQTTPY4.js.map +0 -1
- package/dist/chunk-4Q2FLTAW.js.map +0 -1
- package/dist/chunk-5M67ZEPM.js.map +0 -1
- package/dist/chunk-5WCL47ZW.js.map +0 -1
- package/dist/chunk-6GCAG5FH.js.map +0 -1
- package/dist/chunk-74K7VSEO.js.map +0 -1
- package/dist/chunk-7ALADSN3.js.map +0 -1
- package/dist/chunk-7ZFYPC74.js.map +0 -1
- package/dist/chunk-ANTYNEUU.js.map +0 -1
- package/dist/chunk-AZARDPXB.js.map +0 -1
- package/dist/chunk-BJO5JCFB.js.map +0 -1
- package/dist/chunk-BOYSXIM3.js.map +0 -1
- package/dist/chunk-CDARHMTL.js.map +0 -1
- package/dist/chunk-CESZTYQQ.js.map +0 -1
- package/dist/chunk-CF2MMEOS.js.map +0 -1
- package/dist/chunk-DIS42JLG.js.map +0 -1
- package/dist/chunk-DR4GGX45.js.map +0 -1
- package/dist/chunk-DZENMCRL.js.map +0 -1
- package/dist/chunk-EIF6WZAZ.js.map +0 -1
- package/dist/chunk-EMHO6GT6.js.map +0 -1
- package/dist/chunk-FBNG2KGO.js +0 -66
- package/dist/chunk-FBNG2KGO.js.map +0 -1
- package/dist/chunk-GJCHZAJO.js.map +0 -1
- package/dist/chunk-IJIGJGL5.js.map +0 -1
- package/dist/chunk-JJHKFW6P.js.map +0 -1
- package/dist/chunk-JPTN62BV.js.map +0 -1
- package/dist/chunk-KABLXGWK.js.map +0 -1
- package/dist/chunk-KOGOYUEE.js.map +0 -1
- package/dist/chunk-KRDWVQZ6.js.map +0 -1
- package/dist/chunk-KXT75MXF.js.map +0 -1
- package/dist/chunk-KXZ7IND6.js.map +0 -1
- package/dist/chunk-L46XUK4O.js.map +0 -1
- package/dist/chunk-LI7CKURD.js.map +0 -1
- package/dist/chunk-LW5PTU7D.js.map +0 -1
- package/dist/chunk-MNAT3ZF6.js.map +0 -1
- package/dist/chunk-NFAXCC73.js.map +0 -1
- package/dist/chunk-OHBCYKNT.js.map +0 -1
- package/dist/chunk-ONAUEREV.js.map +0 -1
- package/dist/chunk-OXQNDQJW.js.map +0 -1
- package/dist/chunk-PCQSHXOQ.js.map +0 -1
- package/dist/chunk-PPZSGU2L.js.map +0 -1
- package/dist/chunk-QCGYYBDZ.js.map +0 -1
- package/dist/chunk-QMABUSSD.js.map +0 -1
- package/dist/chunk-QMAMDYRD.js.map +0 -1
- package/dist/chunk-RIIADVOV.js.map +0 -1
- package/dist/chunk-RVJDDGQW.js.map +0 -1
- package/dist/chunk-SABAKV4J.js.map +0 -1
- package/dist/chunk-TEYOLOZY.js.map +0 -1
- package/dist/chunk-TMFQJ7E3.js.map +0 -1
- package/dist/chunk-UCEUTKTQ.js.map +0 -1
- package/dist/chunk-VGQC333M.js.map +0 -1
- package/dist/chunk-WAPGZIAL.js.map +0 -1
- package/dist/chunk-XKVHX75G.js.map +0 -1
- package/dist/chunk-XRGGZOD5.js.map +0 -1
- package/dist/chunk-Y65FNGEE.js +0 -52
- package/dist/chunk-Y65FNGEE.js.map +0 -1
- package/dist/chunk-YF6WRCTG.js.map +0 -1
- package/dist/chunk-YKJZV2JK.js.map +0 -1
- package/dist/chunk-YMZJ2RYW.js.map +0 -1
- package/dist/chunk-Z47W426M.js.map +0 -1
- package/dist/chunk-ZPWGR4CM.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/sidebar.tsx"],"names":["open"],"mappings":"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","file":"chunk-XUVLD65E.js","sourcesContent":["import * as React from \"react\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { useIsMobile } from \"../hooks/use-mobile\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Separator } from \"./separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"./sheet\";\nimport { Skeleton } from \"./skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n /** Current sidebar state: \"expanded\" or \"collapsed\". */\n state: \"expanded\" | \"collapsed\";\n /** Whether the sidebar is open (desktop). */\n open: boolean;\n /** Set the sidebar open state (desktop). */\n setOpen: (open: boolean) => void;\n /** Whether the sidebar is open (mobile). */\n openMobile: boolean;\n /** Set the sidebar open state (mobile). */\n setOpenMobile: (open: boolean) => void;\n /** Whether the current viewport is mobile-sized. */\n isMobile: boolean;\n /** Toggle the sidebar open/closed. */\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\n/**\n * Hook to access sidebar state and controls.\n * Must be used within a {@link SidebarProvider}.\n *\n * @returns The sidebar context value including `state`, `open`, `toggleSidebar`, etc.\n * @throws If used outside of a SidebarProvider.\n */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\n/**\n * Context provider that manages sidebar open/collapsed state, mobile detection,\n * keyboard shortcut (Cmd/Ctrl+B), and cookie persistence.\n * Wrap your layout with this provider before using any Sidebar components.\n *\n * @param defaultOpen - Initial open state for uncontrolled mode. Defaults to `true`.\n * @param open - Controlled open state.\n * @param onOpenChange - Callback when open state changes (controlled mode).\n */\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Initial open state for uncontrolled usage. Defaults to `true`. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Callback fired when the sidebar open state changes. */\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/**\n * Application sidebar with collapsible groups, menus, and responsive behavior.\n * Built on top of Sheet for mobile and native sidebar for desktop.\n *\n * @param side - Which side of the viewport the sidebar appears on. Defaults to `\"left\"`.\n * @param variant - Visual variant: `\"sidebar\"` (default), `\"floating\"`, or `\"inset\"`.\n * @param collapsible - Collapse behavior: `\"offcanvas\"` (default), `\"icon\"`, or `\"none\"`.\n *\n * @example\n * ```tsx\n * <SidebarProvider>\n * <Sidebar>\n * <SidebarHeader>Logo</SidebarHeader>\n * <SidebarContent>\n * <SidebarGroup>\n * <SidebarGroupLabel>Menu</SidebarGroupLabel>\n * <SidebarMenu>\n * <SidebarMenuItem>\n * <SidebarMenuButton>Dashboard</SidebarMenuButton>\n * </SidebarMenuItem>\n * </SidebarMenu>\n * </SidebarGroup>\n * </SidebarContent>\n * <SidebarFooter>Footer</SidebarFooter>\n * </Sidebar>\n * </SidebarProvider>\n * ```\n */\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Which side the sidebar appears on. Defaults to `\"left\"`. */\n side?: \"left\" | \"right\";\n /** Visual variant. Defaults to `\"sidebar\"`. */\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n /** Collapse behavior. Defaults to `\"offcanvas\"`. */\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/** Button that toggles the sidebar open/closed. Renders a `PanelLeftIcon` ghost button. */\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/** Thin vertical rail on the sidebar edge that toggles the sidebar on click. */\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Main content area that sits beside the sidebar. Use with `variant=\"inset\"`. */\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Search input styled for use inside the sidebar. */\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n}\n\n/** Container for the top section of the sidebar (logo, org selector, etc.). */\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Container for the bottom section of the sidebar (user menu, settings, etc.). */\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Horizontal separator styled with sidebar border color. */\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n {...props}\n />\n );\n}\n\n/** Scrollable content area between SidebarHeader and SidebarFooter. Houses SidebarGroup components. */\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Logical grouping of sidebar items. Typically contains a SidebarGroupLabel and SidebarMenu. */\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Small heading label for a SidebarGroup (e.g. \"Navigation\", \"Projects\"). */\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Action button positioned at the top-right of a SidebarGroup (e.g. \"Add\" button). */\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Wrapper for content inside a SidebarGroup, below the label. */\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Unordered list container for SidebarMenuItem components. */\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** List item wrapper for a single sidebar menu entry. Contains a SidebarMenuButton. */\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\n/**\n * Clickable button inside a SidebarMenuItem. Supports size/variant variants,\n * active state highlighting, and an optional tooltip shown when collapsed to icon mode.\n *\n * @param isActive - Whether this item is the current active route.\n * @param tooltip - Tooltip text or TooltipContent props shown in collapsed icon mode.\n * @param asChild - Merge props onto the child element instead of rendering a button.\n */\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n /** Render as child element via Radix Slot. */\n asChild?: boolean;\n /** Whether this menu item represents the active route. */\n isActive?: boolean;\n /** Tooltip shown when sidebar is collapsed to icon mode. */\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\n/** Action button that appears to the right of a SidebarMenuButton (e.g. \"more\" or \"delete\"). */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n /** When true, only shows on hover/focus of the parent menu item. */\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Small count or status badge displayed to the right of a SidebarMenuButton. */\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Loading skeleton placeholder for a sidebar menu item. */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Whether to show an icon skeleton alongside the text skeleton. */\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\n/** Nested sub-menu list with a left border, used for collapsible sub-navigation. */\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** List item wrapper for a single sub-menu entry inside SidebarMenuSub. */\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\n/** Clickable link/button inside a SidebarMenuSubItem. Renders as an anchor by default. */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n /** Render as child element via Radix Slot. */\n asChild?: boolean;\n /** Text size: `\"sm\"` (12px) or `\"md\"` (14px). Defaults to `\"md\"`. */\n size?: \"sm\" | \"md\";\n /** Whether this sub-menu item represents the active route. */\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};"]}
|
|
@@ -160,5 +160,5 @@ function NavigationMenuIndicator({
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
|
|
163
|
-
//# sourceMappingURL=chunk-
|
|
164
|
-
//# sourceMappingURL=chunk-
|
|
163
|
+
//# sourceMappingURL=chunk-YBMEQZX7.js.map
|
|
164
|
+
//# sourceMappingURL=chunk-YBMEQZX7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation-menu.tsx"],"names":[],"mappings":"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","file":"chunk-YBMEQZX7.js","sourcesContent":["import * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/**\n * Accessible navigation menu built on Radix UI NavigationMenu.\n *\n * Provides a horizontal navigation bar with dropdown content panels,\n * suitable for site-wide navigation with rich sub-menus. Set `viewport={false}`\n * to render content inline instead of in a shared viewport container.\n *\n * @example\n * ```tsx\n * <NavigationMenu>\n * <NavigationMenuList>\n * <NavigationMenuItem>\n * <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n * <NavigationMenuContent>\n * <ul className=\"grid gap-3 p-4 w-[400px]\">\n * <li>\n * <NavigationMenuLink href=\"/docs\">\n * <div className=\"font-medium\">Introduction</div>\n * <p className=\"text-muted-foreground\">\n * Learn the basics of the component library.\n * </p>\n * </NavigationMenuLink>\n * </li>\n * </ul>\n * </NavigationMenuContent>\n * </NavigationMenuItem>\n * <NavigationMenuItem>\n * <NavigationMenuLink\n * className={navigationMenuTriggerStyle()}\n * href=\"/docs\"\n * >\n * Documentation\n * </NavigationMenuLink>\n * </NavigationMenuItem>\n * </NavigationMenuList>\n * </NavigationMenu>\n * ```\n */\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/** Horizontal list container for navigation menu items. */\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center gap-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Individual navigation menu item that can contain a trigger and content or a direct link. */\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\n/** Shared style variant for navigation menu trigger buttons and standalone links. Apply with `className={navigationMenuTriggerStyle()}`. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1\",\n);\n\n/** Button that opens the associated NavigationMenuContent dropdown. Displays a chevron indicator. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/** Dropdown content panel revealed when a NavigationMenuTrigger is activated. */\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Shared viewport container that displays the active NavigationMenuContent with animated transitions. */\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div\n className={cn(\n \"absolute top-full left-0 isolate z-50 flex justify-center\",\n )}\n >\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\n/** Accessible link element within navigation menu content. Supports `data-[active=true]` styling. */\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Animated arrow indicator that tracks the active menu trigger position. */\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div className=\"bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Popover, PopoverTrigger, PopoverContent } from './chunk-
|
|
2
|
-
import { Calendar as Calendar$1 } from './chunk-
|
|
3
|
-
import { Button } from './chunk-
|
|
1
|
+
import { Popover, PopoverTrigger, PopoverContent } from './chunk-C34KSTWA.js';
|
|
2
|
+
import { Calendar as Calendar$1 } from './chunk-4MHIUUAW.js';
|
|
3
|
+
import { Button } from './chunk-55E7D2HR.js';
|
|
4
4
|
import { cn } from './chunk-DGPY4WP3.js';
|
|
5
5
|
import { format } from 'date-fns';
|
|
6
6
|
import { Calendar } from 'lucide-react';
|
|
@@ -86,5 +86,5 @@ function DateRangePicker({
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
export { DatePicker, DateRangePicker };
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-YS3PMGYC.js.map
|
|
90
|
+
//# sourceMappingURL=chunk-YS3PMGYC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/date-picker.tsx"],"names":["CalendarIcon","Calendar"],"mappings":"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","file":"chunk-YS3PMGYC.js","sourcesContent":["import { format } from \"date-fns\";\nimport { Calendar as CalendarIcon } from \"lucide-react\";\nimport type { Locale } from \"date-fns\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Calendar } from \"./calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\n\ninterface DatePickerProps {\n /** Currently selected date. */\n value?: Date;\n /** Callback fired when a date is selected or cleared. */\n onChange?: (date: Date | undefined) => void;\n /** Placeholder text shown when no date is selected. */\n placeholder?: string;\n /** Additional CSS class for the trigger button. */\n className?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** date-fns Locale object for date formatting (e.g., `ja` for Japanese). */\n locale?: Locale;\n}\n\n/**\n * Single date picker with a calendar popover.\n * Displays the selected date formatted with date-fns and opens a calendar on click.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState<Date>();\n *\n * <DatePicker\n * value={date}\n * onChange={setDate}\n * placeholder=\"Pick a date\"\n * />\n * ```\n */\nexport function DatePicker({\n value,\n onChange,\n placeholder = \"Select date\",\n className,\n disabled,\n locale,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value ? format(value, \"PPP\", locale ? { locale } : undefined) : <span>{placeholder}</span>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={value}\n onSelect={onChange}\n initialFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n\ninterface DateRangePickerProps {\n /** Currently selected date range with `from` and optional `to`. */\n value?: { from: Date | undefined; to?: Date | undefined };\n /** Callback fired when the date range changes. */\n onChange?: (range: { from: Date | undefined; to?: Date | undefined } | undefined) => void;\n /** Placeholder text shown when no range is selected. */\n placeholder?: string;\n /** Additional CSS class for the trigger button. */\n className?: string;\n /** Whether the date range picker is disabled. */\n disabled?: boolean;\n /** date-fns Locale object for date formatting (e.g., `ja` for Japanese). */\n locale?: Locale;\n}\n\n/**\n * Date range picker with a two-month calendar popover.\n * Allows selecting a start and end date displayed as a range string.\n *\n * @example\n * ```tsx\n * const [range, setRange] = useState<{ from: Date | undefined; to?: Date }>();\n *\n * <DateRangePicker\n * value={range}\n * onChange={setRange}\n * placeholder=\"Select date range\"\n * />\n * ```\n */\nexport function DateRangePicker({\n value,\n onChange,\n placeholder = \"Select date range\",\n className,\n disabled,\n locale,\n}: DateRangePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value?.from ? (\n value.to ? (\n <>\n {format(value.from, \"PPP\", locale ? { locale } : undefined)} -{\" \"}\n {format(value.to, \"PPP\", locale ? { locale } : undefined)}\n </>\n ) : (\n format(value.from, \"PPP\", locale ? { locale } : undefined)\n )\n ) : (\n <span>{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={value}\n onSelect={onChange}\n numberOfMonths={2}\n initialFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n"]}
|
|
@@ -82,5 +82,5 @@ function CardFooter({ className, ...props }) {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|
|
85
|
-
//# sourceMappingURL=chunk-
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
85
|
+
//# sourceMappingURL=chunk-Z2QAABLM.js.map
|
|
86
|
+
//# sourceMappingURL=chunk-Z2QAABLM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/card.tsx"],"names":[],"mappings":";;;AA6BA,SAAS,IAAA,CAAK,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAClE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,0KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,SAAA,CAAU,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACvE,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,SAAS,CAAA;AAAA,MACtC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC7E,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS,CAAA;AAAA,MAC/C,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,gEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACxD,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uDAAA,EAAyD,SAAS,CAAA;AAAA,MAC/E,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-Z2QAABLM.js","sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\n/**\n * Styled card container with header, title, description, action, content, and footer sub-components.\n *\n * Uses density tokens (`px-card`, `pt-card`, `pb-card`, `gap-card`) for consistent\n * internal spacing that adapts to the design system.\n *\n * @example\n * ```tsx\n * <Card>\n * <CardHeader>\n * <CardTitle>Notifications</CardTitle>\n * <CardDescription>You have 3 unread messages.</CardDescription>\n * <CardAction>\n * <Button variant=\"outline\">Mark all read</Button>\n * </CardAction>\n * </CardHeader>\n * <CardContent>\n * <p>Your recent activity will appear here.</p>\n * </CardContent>\n * <CardFooter>\n * <Button>View all</Button>\n * </CardFooter>\n * </Card>\n * ```\n */\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-card rounded-lg border\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Card header section. Lays out title, description, and optional action in a grid. */\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-card pt-card has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-card\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Card title rendered as an `<h4>` element. */\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <h4\n data-slot=\"card-title\"\n className={cn(\"leading-none\", className)}\n {...props}\n />\n );\n}\n\n/** Card description text displayed in muted foreground color. */\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <p\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\n/** Card action slot positioned at the top-right of `CardHeader`. Place buttons or menus here. */\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Card content area with horizontal padding. Bottom padding applied when last child. */\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-card [&:last-child]:pb-card\", className)}\n {...props}\n />\n );\n}\n\n/** Card footer with horizontal layout. Typically used for action buttons. */\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-card pb-card [.border-t]:pt-card\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Badge } from './chunk-
|
|
1
|
+
import { Badge } from './chunk-A3BB5ZOC.js';
|
|
2
2
|
import { cn } from './chunk-DGPY4WP3.js';
|
|
3
3
|
import { GitBranch, Bell, Eye, CheckCircle } from 'lucide-react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -37,5 +37,5 @@ function StageTypeBadge({ type, label, className }) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export { StageTypeBadge };
|
|
40
|
-
//# sourceMappingURL=chunk-
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
40
|
+
//# sourceMappingURL=chunk-ZHEKDP5X.js.map
|
|
41
|
+
//# sourceMappingURL=chunk-ZHEKDP5X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/stage-type-badge.tsx"],"names":[],"mappings":";;;;;AAgBA,IAAM,WAAA,GAA8E;AAAA,EAClF,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EACE;AAAA,GACJ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,GAAA;AAAA,IACN,KAAA,EACE;AAAA,GACJ;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EACE;AAAA,GACJ;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,aAAA,GAA2C;AAAA,EAC/C,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,YAAA,EAAc,cAAA;AAAA,EACd,WAAA,EAAa;AACf,CAAA;AAiBO,SAAS,cAAA,CAAe,EAAE,IAAA,EAAM,KAAA,EAAO,WAAU,EAAwB;AAC9E,EAAA,MAAM,MAAA,GAAS,YAAY,IAAI,CAAA;AAC/B,EAAA,MAAM,OAAO,MAAA,CAAO,IAAA;AAEpB,EAAA,uBACE,IAAA,CAAC,SAAM,OAAA,EAAQ,SAAA,EAAU,WAAW,EAAA,CAAG,MAAA,CAAO,KAAA,EAAO,SAAS,CAAA,EAC5D,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,WAAU,cAAA,EAAe,CAAA;AAAA,IAC9B,KAAA,IAAS,cAAc,IAAI;AAAA,GAAA,EAC9B,CAAA;AAEJ","file":"chunk-ZHEKDP5X.js","sourcesContent":["import { CheckCircle, Eye, Bell, GitBranch } from 'lucide-react';\nimport { cn } from '../lib/utils';\nimport { Badge } from './badge';\n\n/** Supported stage types with built-in icon and color mappings. */\nexport type StageType = 'approval' | 'review' | 'notification' | 'conditional';\n\nexport interface StageTypeBadgeProps {\n /** The stage type key. Determines the icon and color. */\n type: StageType;\n /** The displayed label text. Defaults to a capitalized version of the type. */\n label?: string;\n /** Optional additional className. */\n className?: string;\n}\n\nconst stageConfig: Record<StageType, { icon: typeof CheckCircle; style: string }> = {\n approval: {\n icon: CheckCircle,\n style:\n 'bg-green-50 dark:bg-green-500/15 text-green-600 dark:text-green-400 border-green-200 dark:border-green-500/30',\n },\n review: {\n icon: Eye,\n style:\n 'bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-500/30',\n },\n notification: {\n icon: Bell,\n style:\n 'bg-amber-50 dark:bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-200 dark:border-amber-500/30',\n },\n conditional: {\n icon: GitBranch,\n style:\n 'bg-purple-50 dark:bg-purple-500/15 text-purple-600 dark:text-purple-400 border-purple-200 dark:border-purple-500/30',\n },\n};\n\nconst defaultLabels: Record<StageType, string> = {\n approval: 'Approval',\n review: 'Review',\n notification: 'Notification',\n conditional: 'Conditional',\n};\n\n/**\n * StageTypeBadge renders a badge with an icon and color for a workflow stage type.\n *\n * Each type has a dedicated icon and color scheme:\n * - approval: CheckCircle (green)\n * - review: Eye (blue)\n * - notification: Bell (amber)\n * - conditional: GitBranch (purple)\n *\n * @example\n * ```tsx\n * <StageTypeBadge type=\"approval\" />\n * <StageTypeBadge type=\"review\" label=\"Peer Review\" />\n * ```\n */\nexport function StageTypeBadge({ type, label, className }: StageTypeBadgeProps) {\n const config = stageConfig[type];\n const Icon = config.icon;\n\n return (\n <Badge variant=\"outline\" className={cn(config.style, className)}>\n <Icon className=\"w-3 h-3 mr-1\" />\n {label ?? defaultLabels[type]}\n </Badge>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { toggleVariants } from './chunk-
|
|
1
|
+
import { toggleVariants } from './chunk-NU56GKGM.js';
|
|
2
2
|
import { cn } from './chunk-DGPY4WP3.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
@@ -59,5 +59,5 @@ function ToggleGroupItem({
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export { ToggleGroup, ToggleGroupItem };
|
|
62
|
-
//# sourceMappingURL=chunk-
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
62
|
+
//# sourceMappingURL=chunk-ZPMXRW2A.js.map
|
|
63
|
+
//# sourceMappingURL=chunk-ZPMXRW2A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/toggle-group.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,qBAA2B,KAAA,CAAA,aAAA,CAE/B;AAAA,EACA,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC,CAAA;AAyBD,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACT,wFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,mBAAmB,QAAA,EAAnB,EAA4B,OAAO,EAAE,OAAA,EAAS,IAAA,EAAK,EACjD,QAAA,EACH;AAAA;AAAA,GACF;AAEJ;AAgBA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,OAAA,GAAgB,iBAAW,kBAAkB,CAAA;AAEnD,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,cAAA,EAAc,QAAQ,OAAA,IAAW,OAAA;AAAA,MACjC,WAAA,EAAW,QAAQ,IAAA,IAAQ,IAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,cAAA,CAAe;AAAA,UACb,OAAA,EAAS,QAAQ,OAAA,IAAW,OAAA;AAAA,UAC5B,IAAA,EAAM,QAAQ,IAAA,IAAQ;AAAA,SACvB,CAAA;AAAA,QACD,6LAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"chunk-ZPMXRW2A.js","sourcesContent":["import * as React from \"react\";\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\";\nimport { type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n});\n\ntype ToggleGroupProps = React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * Group of toggle buttons where one or multiple items can be active.\n * Provides shared `variant` and `size` context to child {@link ToggleGroupItem} components.\n *\n * @example\n * ```tsx\n * // Single selection\n * <ToggleGroup type=\"single\" defaultValue=\"center\">\n * <ToggleGroupItem value=\"left\"><AlignLeftIcon /></ToggleGroupItem>\n * <ToggleGroupItem value=\"center\"><AlignCenterIcon /></ToggleGroupItem>\n * <ToggleGroupItem value=\"right\"><AlignRightIcon /></ToggleGroupItem>\n * </ToggleGroup>\n *\n * // Multiple selection with outline variant\n * <ToggleGroup type=\"multiple\" variant=\"outline\" size=\"sm\">\n * <ToggleGroupItem value=\"bold\"><BoldIcon /></ToggleGroupItem>\n * <ToggleGroupItem value=\"italic\"><ItalicIcon /></ToggleGroupItem>\n * </ToggleGroup>\n * ```\n */\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: ToggleGroupProps) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n className={cn(\n \"group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\ntype ToggleGroupItemProps = React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * Individual toggle item within a {@link ToggleGroup}.\n * Inherits `variant` and `size` from the parent group context unless overridden.\n *\n * @example\n * ```tsx\n * <ToggleGroupItem value=\"bold\" aria-label=\"Toggle bold\">\n * <BoldIcon className=\"size-4\" />\n * </ToggleGroupItem>\n * ```\n */\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: ToggleGroupItemProps) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l\",\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\nexport type { ToggleGroupProps, ToggleGroupItemProps };"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Badge } from './chunk-
|
|
1
|
+
import { Badge } from './chunk-A3BB5ZOC.js';
|
|
2
2
|
import { cn } from './chunk-DGPY4WP3.js';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -21,5 +21,5 @@ function WorkflowStatusBadge({ status, label, className }) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export { WorkflowStatusBadge };
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-ZYEGBF7G.js.map
|
|
25
|
+
//# sourceMappingURL=chunk-ZYEGBF7G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/workflow-status-badge.tsx"],"names":[],"mappings":";;;;AAoBA,IAAM,YAAA,GAA+C;AAAA,EACnD,OAAA,EACE,yGAAA;AAAA,EACF,aAAA,EACE,+GAAA;AAAA,EACF,QAAA,EACE,+GAAA;AAAA,EACF,QAAA,EACE,mGAAA;AAAA,EACF,SAAA,EAAW;AACb,CAAA;AAEA,IAAM,aAAA,GAAgD;AAAA,EACpD,OAAA,EAAS,SAAA;AAAA,EACT,aAAA,EAAe,aAAA;AAAA,EACf,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,SAAA,EAAW;AACb,CAAA;AAiBO,SAAS,mBAAA,CAAoB,EAAE,MAAA,EAAQ,KAAA,EAAO,WAAU,EAA6B;AAC1F,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAQ,SAAA,EAAU,WAAW,EAAA,CAAG,YAAA,CAAa,MAAM,CAAA,EAAG,SAAS,CAAA,EACnE,QAAA,EAAA,KAAA,IAAS,aAAA,CAAc,MAAM,CAAA,EAChC,CAAA;AAEJ","file":"chunk-ZYEGBF7G.js","sourcesContent":["import { cn } from '../lib/utils';\nimport { Badge } from './badge';\n\n/** Common workflow instance statuses with built-in styling. */\nexport type WorkflowStatus =\n | 'pending'\n | 'in-progress'\n | 'approved'\n | 'rejected'\n | 'cancelled';\n\nexport interface WorkflowStatusBadgeProps {\n /** The status key. Must be one of the predefined statuses. */\n status: WorkflowStatus;\n /** The displayed label text. Defaults to a capitalized version of the status. */\n label?: string;\n /** Optional additional className. */\n className?: string;\n}\n\nconst statusStyles: Record<WorkflowStatus, string> = {\n pending:\n 'bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-500/30',\n 'in-progress':\n 'bg-amber-50 dark:bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-200 dark:border-amber-500/30',\n approved:\n 'bg-green-50 dark:bg-green-500/15 text-green-600 dark:text-green-400 border-green-200 dark:border-green-500/30',\n rejected:\n 'bg-red-50 dark:bg-red-500/15 text-red-600 dark:text-red-400 border-red-200 dark:border-red-500/30',\n cancelled: 'bg-muted text-muted-foreground',\n};\n\nconst defaultLabels: Record<WorkflowStatus, string> = {\n pending: 'Pending',\n 'in-progress': 'In Progress',\n approved: 'Approved',\n rejected: 'Rejected',\n cancelled: 'Cancelled',\n};\n\n/**\n * WorkflowStatusBadge renders a color-coded badge for a workflow instance status.\n *\n * - pending: blue\n * - in-progress: amber\n * - approved: green\n * - rejected: red\n * - cancelled: muted\n *\n * @example\n * ```tsx\n * <WorkflowStatusBadge status=\"approved\" />\n * <WorkflowStatusBadge status=\"in-progress\" label=\"In Review\" />\n * ```\n */\nexport function WorkflowStatusBadge({ status, label, className }: WorkflowStatusBadgeProps) {\n return (\n <Badge variant=\"outline\" className={cn(statusStyles[status], className)}>\n {label ?? defaultLabels[status]}\n </Badge>\n );\n}\n"]}
|
|
@@ -2,9 +2,36 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Vertically collapsible content sections built on Radix Accordion.
|
|
7
|
+
*
|
|
8
|
+
* Supports `"single"` (one panel open at a time) and `"multiple"` (any number open)
|
|
9
|
+
* modes via the `type` prop. Each section animates open/closed with a chevron indicator.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <Accordion type="single" collapsible>
|
|
14
|
+
* <AccordionItem value="item-1">
|
|
15
|
+
* <AccordionTrigger>Is it accessible?</AccordionTrigger>
|
|
16
|
+
* <AccordionContent>
|
|
17
|
+
* Yes. It adheres to the WAI-ARIA Accordion pattern.
|
|
18
|
+
* </AccordionContent>
|
|
19
|
+
* </AccordionItem>
|
|
20
|
+
* <AccordionItem value="item-2">
|
|
21
|
+
* <AccordionTrigger>Is it styled?</AccordionTrigger>
|
|
22
|
+
* <AccordionContent>
|
|
23
|
+
* Yes. It ships with default styles via Tailwind CSS.
|
|
24
|
+
* </AccordionContent>
|
|
25
|
+
* </AccordionItem>
|
|
26
|
+
* </Accordion>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
5
29
|
declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
30
|
+
/** Individual accordion section. Requires a unique `value` prop. */
|
|
6
31
|
declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime.JSX.Element;
|
|
32
|
+
/** Clickable trigger that toggles its parent `AccordionItem`. Renders a chevron icon that rotates on open. */
|
|
7
33
|
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
34
|
+
/** Animated collapsible content area within an `AccordionItem`. */
|
|
8
35
|
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
9
36
|
|
|
10
37
|
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../chunk-
|
|
1
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../chunk-34ARZSNP.js';
|
|
2
2
|
import '../chunk-DGPY4WP3.js';
|
|
3
3
|
//# sourceMappingURL=accordion.js.map
|
|
4
4
|
//# sourceMappingURL=accordion.js.map
|
|
@@ -2,16 +2,55 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Confirmation dialog built on Radix UI AlertDialog.
|
|
7
|
+
*
|
|
8
|
+
* Unlike `Dialog`, an alert dialog requires an explicit user action to dismiss
|
|
9
|
+
* (no click-outside or Escape by default). Use it for destructive actions or
|
|
10
|
+
* important confirmations.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <AlertDialog open={open} onOpenChange={setOpen}>
|
|
15
|
+
* <AlertDialogTrigger asChild>
|
|
16
|
+
* <Button variant="destructive">Delete Item</Button>
|
|
17
|
+
* </AlertDialogTrigger>
|
|
18
|
+
* <AlertDialogContent>
|
|
19
|
+
* <AlertDialogHeader>
|
|
20
|
+
* <AlertDialogTitle>Are you sure?</AlertDialogTitle>
|
|
21
|
+
* <AlertDialogDescription>
|
|
22
|
+
* This action cannot be undone. This will permanently delete
|
|
23
|
+
* your item and remove it from our servers.
|
|
24
|
+
* </AlertDialogDescription>
|
|
25
|
+
* </AlertDialogHeader>
|
|
26
|
+
* <AlertDialogFooter>
|
|
27
|
+
* <AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
28
|
+
* <AlertDialogAction>Delete</AlertDialogAction>
|
|
29
|
+
* </AlertDialogFooter>
|
|
30
|
+
* </AlertDialogContent>
|
|
31
|
+
* </AlertDialog>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
5
34
|
declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
35
|
+
/** Element that opens the alert dialog when clicked. Use `asChild` to merge into your own button. */
|
|
6
36
|
declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
37
|
+
/** Portal that renders alert dialog content outside the DOM hierarchy. */
|
|
7
38
|
declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
39
|
+
/** Semi-transparent backdrop rendered behind the alert dialog content. */
|
|
8
40
|
declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
|
|
41
|
+
/** Alert dialog content panel with overlay backdrop. */
|
|
9
42
|
declare function AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
43
|
+
/** Container for AlertDialogTitle and AlertDialogDescription. */
|
|
10
44
|
declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
45
|
+
/** Container for AlertDialogAction and AlertDialogCancel buttons. */
|
|
11
46
|
declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
47
|
+
/** Accessible title for the alert dialog. */
|
|
12
48
|
declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
|
|
49
|
+
/** Accessible description explaining the consequences of the action. */
|
|
13
50
|
declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
|
|
51
|
+
/** Primary action button that confirms and closes the alert dialog. */
|
|
14
52
|
declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime.JSX.Element;
|
|
53
|
+
/** Cancel button that dismisses the alert dialog without taking action. Styled as outline variant. */
|
|
15
54
|
declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime.JSX.Element;
|
|
16
55
|
|
|
17
56
|
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from '../chunk-LTTNCAAA.js';
|
|
2
|
+
import '../chunk-55E7D2HR.js';
|
|
3
3
|
import '../chunk-DGPY4WP3.js';
|
|
4
4
|
//# sourceMappingURL=alert-dialog.js.map
|
|
5
5
|
//# sourceMappingURL=alert-dialog.js.map
|
|
@@ -2,12 +2,67 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
import { U as UIColor } from '../types-CBVkScfB.js';
|
|
5
6
|
|
|
6
7
|
declare const alertVariants: (props?: ({
|
|
7
|
-
variant?: "default" | "
|
|
8
|
+
variant?: "destructive" | "default" | "soft" | null | undefined;
|
|
9
|
+
color?: "primary" | "destructive" | "success" | "warning" | "info" | null | undefined;
|
|
8
10
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
-
|
|
11
|
+
interface AlertProps extends React.ComponentProps<"div">, Omit<VariantProps<typeof alertVariants>, "color"> {
|
|
12
|
+
/**
|
|
13
|
+
* Semantic color intent.
|
|
14
|
+
*
|
|
15
|
+
* @default "primary"
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <Alert color="success">Operation completed</Alert>
|
|
19
|
+
* <Alert color="warning">Check your input</Alert>
|
|
20
|
+
* <Alert variant="soft" color="info">Tip</Alert>
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
color?: UIColor;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Static alert banner for displaying important messages.
|
|
27
|
+
*
|
|
28
|
+
* Supports semantic colors via `color` prop and two visual styles: `default` (bordered)
|
|
29
|
+
* and `soft` (filled background). All existing `variant="destructive"` usage continues to work.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* // Default (bordered)
|
|
34
|
+
* <Alert>
|
|
35
|
+
* <InfoIcon className="size-4" />
|
|
36
|
+
* <AlertTitle>Heads up!</AlertTitle>
|
|
37
|
+
* <AlertDescription>You can add components using the CLI.</AlertDescription>
|
|
38
|
+
* </Alert>
|
|
39
|
+
*
|
|
40
|
+
* // Semantic colors
|
|
41
|
+
* <Alert color="success">
|
|
42
|
+
* <CheckIcon className="size-4" />
|
|
43
|
+
* <AlertTitle>Success</AlertTitle>
|
|
44
|
+
* <AlertDescription>Changes saved successfully.</AlertDescription>
|
|
45
|
+
* </Alert>
|
|
46
|
+
*
|
|
47
|
+
* // Soft variant (filled background)
|
|
48
|
+
* <Alert variant="soft" color="warning">
|
|
49
|
+
* <AlertTriangleIcon className="size-4" />
|
|
50
|
+
* <AlertTitle>Warning</AlertTitle>
|
|
51
|
+
* <AlertDescription>This action cannot be undone.</AlertDescription>
|
|
52
|
+
* </Alert>
|
|
53
|
+
*
|
|
54
|
+
* // Legacy (still works)
|
|
55
|
+
* <Alert variant="destructive">
|
|
56
|
+
* <AlertCircleIcon className="size-4" />
|
|
57
|
+
* <AlertTitle>Error</AlertTitle>
|
|
58
|
+
* <AlertDescription>Session expired.</AlertDescription>
|
|
59
|
+
* </Alert>
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
declare function Alert({ className, variant, color, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
|
|
63
|
+
/** Bold title text within an Alert. Rendered in the second grid column when an icon is present. */
|
|
10
64
|
declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
65
|
+
/** Descriptive body text within an Alert, rendered below the title. */
|
|
11
66
|
declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
12
67
|
|
|
13
68
|
export { Alert, AlertDescription, AlertTitle };
|
package/dist/components/alert.js
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Maintains a consistent width-to-height ratio for its content.
|
|
6
|
+
*
|
|
7
|
+
* Useful for images, videos, and maps that need to preserve their aspect ratio
|
|
8
|
+
* across different viewport sizes. Built on Radix AspectRatio.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <AspectRatio ratio={16 / 9}>
|
|
13
|
+
* <img
|
|
14
|
+
* src="/hero.jpg"
|
|
15
|
+
* alt="Hero image"
|
|
16
|
+
* className="h-full w-full rounded-md object-cover"
|
|
17
|
+
* />
|
|
18
|
+
* </AspectRatio>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
4
21
|
declare function AspectRatio({ ...props }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
5
22
|
|
|
6
23
|
export { AspectRatio };
|
|
@@ -2,8 +2,47 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
type AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root>;
|
|
6
|
+
/**
|
|
7
|
+
* Circular container for user profile images or initials.
|
|
8
|
+
* Use with {@link AvatarImage} and {@link AvatarFallback} for graceful loading.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <Avatar>
|
|
13
|
+
* <AvatarImage src="/avatar.jpg" alt="User" />
|
|
14
|
+
* <AvatarFallback>JD</AvatarFallback>
|
|
15
|
+
* </Avatar>
|
|
16
|
+
*
|
|
17
|
+
* // Custom size
|
|
18
|
+
* <Avatar className="size-8">
|
|
19
|
+
* <AvatarImage src="/small.jpg" alt="User" />
|
|
20
|
+
* <AvatarFallback>U</AvatarFallback>
|
|
21
|
+
* </Avatar>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
declare function Avatar({ className, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
|
|
25
|
+
type AvatarImageProps = React.ComponentProps<typeof AvatarPrimitive.Image>;
|
|
26
|
+
/**
|
|
27
|
+
* Image element rendered inside an {@link Avatar}. Falls back to
|
|
28
|
+
* {@link AvatarFallback} when the image fails to load.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* <AvatarImage src="/photo.jpg" alt="Jane Doe" />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare function AvatarImage({ className, ...props }: AvatarImageProps): react_jsx_runtime.JSX.Element;
|
|
36
|
+
type AvatarFallbackProps = React.ComponentProps<typeof AvatarPrimitive.Fallback>;
|
|
37
|
+
/**
|
|
38
|
+
* Fallback content displayed while the {@link AvatarImage} is loading or
|
|
39
|
+
* if it fails. Typically shows user initials (max 2 characters).
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* <AvatarFallback>JD</AvatarFallback>
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
declare function AvatarFallback({ className, ...props }: AvatarFallbackProps): react_jsx_runtime.JSX.Element;
|
|
8
47
|
|
|
9
|
-
export { Avatar, AvatarFallback, AvatarImage };
|
|
48
|
+
export { Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps };
|