@omnifyjp/ui 0.5.3 → 1.0.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/README.md +3 -6
- package/dist/chunk-2C2HRGM7.js +51 -0
- package/dist/chunk-2C2HRGM7.js.map +1 -0
- package/dist/chunk-2TUWDXAC.js +196 -0
- package/dist/chunk-2TUWDXAC.js.map +1 -0
- package/dist/chunk-34ARZSNP.js +63 -0
- package/dist/chunk-34ARZSNP.js.map +1 -0
- package/dist/chunk-35DNN46W.js +13 -0
- package/dist/chunk-35DNN46W.js.map +1 -0
- package/dist/chunk-35U6QG4P.js +116 -0
- package/dist/chunk-35U6QG4P.js.map +1 -0
- package/dist/chunk-36YYHIJU.js +52 -0
- package/dist/chunk-36YYHIJU.js.map +1 -0
- package/dist/chunk-3EOHW4QN.js +35 -0
- package/dist/chunk-3EOHW4QN.js.map +1 -0
- package/dist/chunk-3VU56V66.js +41 -0
- package/dist/chunk-3VU56V66.js.map +1 -0
- package/dist/chunk-55E7D2HR.js +99 -0
- package/dist/chunk-55E7D2HR.js.map +1 -0
- package/dist/chunk-67YUL2ZS.js +53 -0
- package/dist/chunk-67YUL2ZS.js.map +1 -0
- package/dist/chunk-6DIDQ4TB.js +131 -0
- package/dist/chunk-6DIDQ4TB.js.map +1 -0
- package/dist/chunk-6GWVQB3Q.js +155 -0
- package/dist/chunk-6GWVQB3Q.js.map +1 -0
- package/dist/chunk-75WZR6HF.js +44 -0
- package/dist/chunk-75WZR6HF.js.map +1 -0
- package/dist/chunk-7IRLBU2I.js +114 -0
- package/dist/chunk-7IRLBU2I.js.map +1 -0
- package/dist/chunk-7RMTPT6O.js +99 -0
- package/dist/chunk-7RMTPT6O.js.map +1 -0
- package/dist/chunk-7XH3MGBR.js +128 -0
- 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-BAQWGQJG.js +106 -0
- package/dist/chunk-BAQWGQJG.js.map +1 -0
- package/dist/chunk-BRSM3SZP.js +46 -0
- package/dist/chunk-BRSM3SZP.js.map +1 -0
- package/dist/chunk-C34KSTWA.js +43 -0
- package/dist/chunk-C34KSTWA.js.map +1 -0
- package/dist/chunk-C5NZAOA7.js +54 -0
- package/dist/chunk-C5NZAOA7.js.map +1 -0
- package/dist/chunk-CUZR4JWM.js +23 -0
- package/dist/chunk-CUZR4JWM.js.map +1 -0
- package/dist/chunk-DGPY4WP3.js +11 -0
- package/dist/chunk-DGPY4WP3.js.map +1 -0
- package/dist/chunk-DNCZOUNY.js +239 -0
- package/dist/chunk-DNCZOUNY.js.map +1 -0
- package/dist/chunk-EWBCV7VA.js +65 -0
- package/dist/chunk-EWBCV7VA.js.map +1 -0
- package/dist/chunk-F2ZJLKDP.js +119 -0
- package/dist/chunk-F2ZJLKDP.js.map +1 -0
- package/dist/chunk-FLWMT4DB.js +66 -0
- package/dist/chunk-FLWMT4DB.js.map +1 -0
- package/dist/chunk-FRKG7JQY.js +48 -0
- package/dist/chunk-FRKG7JQY.js.map +1 -0
- package/dist/chunk-G7HTZBUR.js +187 -0
- package/dist/chunk-G7HTZBUR.js.map +1 -0
- package/dist/chunk-HWTW64R5.js +90 -0
- package/dist/chunk-HWTW64R5.js.map +1 -0
- package/dist/chunk-IAWKX5W4.js +219 -0
- package/dist/chunk-IAWKX5W4.js.map +1 -0
- package/dist/chunk-INLM7UJC.js +238 -0
- package/dist/chunk-INLM7UJC.js.map +1 -0
- package/dist/chunk-JAJMM32I.js +18 -0
- package/dist/chunk-JAJMM32I.js.map +1 -0
- package/dist/chunk-JJSVA3TH.js +61 -0
- package/dist/chunk-JJSVA3TH.js.map +1 -0
- package/dist/chunk-JLTBUACL.js +121 -0
- package/dist/chunk-JLTBUACL.js.map +1 -0
- package/dist/chunk-JRU2QX7T.js +38 -0
- package/dist/chunk-JRU2QX7T.js.map +1 -0
- package/dist/chunk-JXGRW2MR.js +17 -0
- package/dist/chunk-JXGRW2MR.js.map +1 -0
- package/dist/chunk-KTBOZ4NE.js +93 -0
- package/dist/chunk-KTBOZ4NE.js.map +1 -0
- package/dist/chunk-LMT327XH.js +56 -0
- package/dist/chunk-LMT327XH.js.map +1 -0
- package/dist/chunk-LTTNCAAA.js +138 -0
- package/dist/chunk-LTTNCAAA.js.map +1 -0
- package/dist/chunk-LVZNNIK4.js +111 -0
- package/dist/chunk-LVZNNIK4.js.map +1 -0
- package/dist/chunk-MJLFJPUG.js +143 -0
- package/dist/chunk-MJLFJPUG.js.map +1 -0
- package/dist/chunk-MZ2P566X.js +65 -0
- package/dist/chunk-MZ2P566X.js.map +1 -0
- package/dist/chunk-N47H4MHX.js +41 -0
- package/dist/chunk-N47H4MHX.js.map +1 -0
- package/dist/chunk-NNJTKHCE.js +160 -0
- package/dist/chunk-NNJTKHCE.js.map +1 -0
- package/dist/chunk-NPL2R5LD.js +171 -0
- package/dist/chunk-NPL2R5LD.js.map +1 -0
- package/dist/chunk-NU56GKGM.js +44 -0
- package/dist/chunk-NU56GKGM.js.map +1 -0
- package/dist/chunk-P3M5TZD2.js +24 -0
- package/dist/chunk-P3M5TZD2.js.map +1 -0
- package/dist/chunk-PGWNOZDX.js +28 -0
- package/dist/chunk-PGWNOZDX.js.map +1 -0
- package/dist/chunk-QB3UWRZH.js +92 -0
- package/dist/chunk-QB3UWRZH.js.map +1 -0
- package/dist/chunk-R2CDE5DO.js +33 -0
- package/dist/chunk-R2CDE5DO.js.map +1 -0
- package/dist/chunk-RQNZDWY3.js +65 -0
- package/dist/chunk-RQNZDWY3.js.map +1 -0
- package/dist/chunk-S6PDRGR5.js +109 -0
- 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-THQUH6WX.js +81 -0
- package/dist/chunk-THQUH6WX.js.map +1 -0
- package/dist/chunk-TJMK2KBE.js +112 -0
- package/dist/chunk-TJMK2KBE.js.map +1 -0
- package/dist/chunk-TTH7TWVX.js +30 -0
- package/dist/chunk-TTH7TWVX.js.map +1 -0
- package/dist/chunk-USIHM7FV.js +211 -0
- package/dist/chunk-USIHM7FV.js.map +1 -0
- package/dist/chunk-VVYSAGB3.js +104 -0
- package/dist/chunk-VVYSAGB3.js.map +1 -0
- package/dist/chunk-WD5KZE25.js +25 -0
- package/dist/chunk-WD5KZE25.js.map +1 -0
- package/dist/chunk-WL4ZO2H3.js +33 -0
- package/dist/chunk-WL4ZO2H3.js.map +1 -0
- package/dist/chunk-WRCHR4AK.js +23 -0
- package/dist/chunk-WRCHR4AK.js.map +1 -0
- package/dist/chunk-WS6E7HBT.js +39 -0
- package/dist/chunk-WS6E7HBT.js.map +1 -0
- package/dist/chunk-XOJJBNDX.js +33 -0
- package/dist/chunk-XOJJBNDX.js.map +1 -0
- package/dist/chunk-YBMEQZX7.js +164 -0
- package/dist/chunk-YBMEQZX7.js.map +1 -0
- package/dist/chunk-Z2QAABLM.js +86 -0
- package/dist/chunk-Z2QAABLM.js.map +1 -0
- package/dist/chunk-ZHEKDP5X.js +41 -0
- package/dist/chunk-ZHEKDP5X.js.map +1 -0
- package/dist/chunk-ZPMXRW2A.js +63 -0
- package/dist/chunk-ZPMXRW2A.js.map +1 -0
- package/dist/chunk-ZYEGBF7G.js +25 -0
- package/dist/chunk-ZYEGBF7G.js.map +1 -0
- package/dist/components/accordion.d.ts +37 -0
- package/dist/components/accordion.js +4 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +56 -0
- package/dist/components/alert-dialog.js +5 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +68 -0
- package/dist/components/alert.js +4 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +23 -0
- package/dist/components/aspect-ratio.js +3 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar.d.ts +48 -0
- package/dist/components/avatar.js +4 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +52 -0
- package/dist/components/badge.js +4 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +50 -0
- package/dist/components/breadcrumb.js +4 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +81 -0
- package/dist/components/button.js +4 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar-category-badge.d.ts +24 -0
- package/dist/components/calendar-category-badge.js +5 -0
- package/dist/components/calendar-category-badge.js.map +1 -0
- package/dist/components/calendar-event-chip.d.ts +41 -0
- package/dist/components/calendar-event-chip.js +4 -0
- package/dist/components/calendar-event-chip.js.map +1 -0
- package/dist/components/calendar-event-sheet.d.ts +68 -0
- package/dist/components/calendar-event-sheet.js +9 -0
- package/dist/components/calendar-event-sheet.js.map +1 -0
- package/dist/components/calendar-mini.d.ts +65 -0
- package/dist/components/calendar-mini.js +6 -0
- package/dist/components/calendar-mini.js.map +1 -0
- package/dist/components/calendar-toolbar.d.ts +58 -0
- package/dist/components/calendar-toolbar.js +7 -0
- package/dist/components/calendar-toolbar.js.map +1 -0
- package/dist/components/calendar.d.ts +19 -0
- package/dist/components/calendar.js +5 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +43 -0
- package/dist/components/card.js +4 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +53 -0
- package/dist/components/carousel.js +5 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +125 -0
- package/dist/components/chart.js +4 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.d.ts +24 -0
- package/dist/components/checkbox.js +4 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.d.ts +28 -0
- package/dist/components/collapsible.js +3 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/color-picker.d.ts +35 -0
- package/dist/components/color-picker.js +7 -0
- package/dist/components/color-picker.js.map +1 -0
- package/dist/components/combobox.d.ts +98 -0
- package/dist/components/combobox.js +8 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command.d.ts +63 -0
- package/dist/components/command.js +5 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +70 -0
- package/dist/components/context-menu.js +4 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/date-picker.d.ts +71 -0
- package/dist/components/date-picker.js +7 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/dialog.d.ts +58 -0
- package/dist/components/dialog.js +4 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.d.ts +60 -0
- package/dist/components/drawer.js +4 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +76 -0
- package/dist/components/dropdown-menu.js +4 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/file-upload.d.ts +44 -0
- package/dist/components/file-upload.js +5 -0
- package/dist/components/file-upload.js.map +1 -0
- package/dist/components/form.d.ts +67 -0
- package/dist/components/form.js +5 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/hover-card.d.ts +43 -0
- package/dist/components/hover-card.js +4 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-otp.d.ts +38 -0
- package/dist/components/input-otp.js +4 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.d.ts +38 -0
- package/dist/components/input.js +4 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +20 -0
- package/dist/components/label.js +4 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menubar.d.ts +82 -0
- package/dist/components/menubar.js +4 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +64 -0
- package/dist/components/navigation-menu.js +4 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.d.ts +59 -0
- package/dist/components/pagination.js +5 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/password-input.d.ts +32 -0
- package/dist/components/password-input.js +5 -0
- package/dist/components/password-input.js.map +1 -0
- package/dist/components/permission-grid.d.ts +67 -0
- package/dist/components/permission-grid.js +5 -0
- package/dist/components/permission-grid.js.map +1 -0
- package/dist/components/popover.d.ts +37 -0
- package/dist/components/popover.js +4 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +20 -0
- package/dist/components/progress.js +4 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +38 -0
- package/dist/components/radio-group.js +4 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/rating.d.ts +35 -0
- package/dist/components/rating.js +4 -0
- package/dist/components/rating.js.map +1 -0
- package/dist/components/resizable.d.ts +36 -0
- package/dist/components/resizable.js +4 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scope-tree.d.ts +78 -0
- package/dist/components/scope-tree.js +5 -0
- package/dist/components/scope-tree.js.map +1 -0
- package/dist/components/scope-type-badge.d.ts +35 -0
- package/dist/components/scope-type-badge.js +5 -0
- package/dist/components/scope-type-badge.js.map +1 -0
- package/dist/components/scroll-area.d.ts +29 -0
- package/dist/components/scroll-area.js +4 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +52 -0
- package/dist/components/select.js +4 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +24 -0
- package/dist/components/separator.js +4 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +51 -0
- package/dist/components/sheet.js +4 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/skeleton.d.ts +25 -0
- package/dist/components/skeleton.js +4 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +24 -0
- package/dist/components/slider.js +4 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/slug-input.d.ts +50 -0
- package/dist/components/slug-input.js +6 -0
- package/dist/components/slug-input.js.map +1 -0
- package/dist/components/sonner.d.ts +22 -0
- package/dist/components/sonner.js +3 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/stage-type-badge.d.ts +30 -0
- package/dist/components/stage-type-badge.js +5 -0
- package/dist/components/stage-type-badge.js.map +1 -0
- package/dist/components/switch.d.ts +26 -0
- package/dist/components/switch.js +4 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +57 -0
- package/dist/components/table.js +4 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +39 -0
- package/dist/components/tabs.js +4 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tag-input.d.ts +40 -0
- package/dist/components/tag-input.js +5 -0
- package/dist/components/tag-input.js.map +1 -0
- package/dist/components/textarea.d.ts +21 -0
- package/dist/components/textarea.js +4 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/time-picker.d.ts +57 -0
- package/dist/components/time-picker.js +8 -0
- package/dist/components/time-picker.js.map +1 -0
- package/dist/components/toggle-group.d.ts +45 -0
- package/dist/components/toggle-group.js +5 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +31 -0
- package/dist/components/toggle.js +4 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/tooltip.d.ts +34 -0
- package/dist/components/tooltip.js +4 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/workflow-category-badge.d.ts +32 -0
- package/dist/components/workflow-category-badge.js +5 -0
- package/dist/components/workflow-category-badge.js.map +1 -0
- package/dist/components/workflow-diagram.d.ts +63 -0
- package/dist/components/workflow-diagram.js +5 -0
- package/dist/components/workflow-diagram.js.map +1 -0
- package/dist/components/workflow-status-badge.d.ts +30 -0
- package/dist/components/workflow-status-badge.js +5 -0
- package/dist/components/workflow-status-badge.js.map +1 -0
- package/dist/components/workflow-stepper.d.ts +52 -0
- package/dist/components/workflow-stepper.js +4 -0
- package/dist/components/workflow-stepper.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +3 -3
- package/dist/hooks/use-mobile.js +1 -1
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/index.d.ts +108 -15
- package/dist/index.js +69 -13
- package/dist/lib/types.d.ts +84 -1
- package/dist/lib/types.js +1 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/utils.d.ts +5 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/package.json +68 -31
- package/src/styles/fonts.css +0 -0
- package/src/styles/index.css +3 -1
- package/src/styles/tailwind.css +4 -0
- package/src/styles/theme.css +461 -0
- package/dist/chunk-2GN4WIOV.js +0 -240
- package/dist/chunk-2GN4WIOV.js.map +0 -1
- package/dist/chunk-5BL4VFRJ.js +0 -57
- package/dist/chunk-5BL4VFRJ.js.map +0 -1
- package/dist/chunk-735JNJJO.js +0 -27
- package/dist/chunk-735JNJJO.js.map +0 -1
- package/dist/chunk-EJEVW4RO.js +0 -49
- package/dist/chunk-EJEVW4RO.js.map +0 -1
- package/dist/chunk-FVOQZTHE.js +0 -191
- package/dist/chunk-FVOQZTHE.js.map +0 -1
- package/dist/chunk-ITXOZ4IR.js +0 -85
- package/dist/chunk-ITXOZ4IR.js.map +0 -1
- package/dist/chunk-NVPNMQSR.js +0 -30
- package/dist/chunk-NVPNMQSR.js.map +0 -1
- package/dist/chunk-O25D7DCP.js +0 -72
- package/dist/chunk-O25D7DCP.js.map +0 -1
- package/dist/chunk-O2ADW2GC.js +0 -224
- package/dist/chunk-O2ADW2GC.js.map +0 -1
- package/dist/chunk-OY3PSPA5.js +0 -661
- package/dist/chunk-OY3PSPA5.js.map +0 -1
- package/dist/chunk-UASABUQA.js +0 -39
- package/dist/chunk-UASABUQA.js.map +0 -1
- package/dist/chunk-UR2QLIS2.js +0 -93
- package/dist/chunk-UR2QLIS2.js.map +0 -1
- package/dist/chunk-XDXGUPCR.js +0 -123
- package/dist/chunk-XDXGUPCR.js.map +0 -1
- package/dist/components/AppShell.d.ts +0 -27
- package/dist/components/AppShell.js +0 -13
- package/dist/components/AppShell.js.map +0 -1
- package/dist/components/Header.d.ts +0 -11
- package/dist/components/Header.js +0 -9
- package/dist/components/Header.js.map +0 -1
- package/dist/components/LanguageSelector.d.ts +0 -11
- package/dist/components/LanguageSelector.js +0 -5
- package/dist/components/LanguageSelector.js.map +0 -1
- package/dist/components/OrganizationSelector.d.ts +0 -8
- package/dist/components/OrganizationSelector.js +0 -4
- package/dist/components/OrganizationSelector.js.map +0 -1
- package/dist/components/OrganizationSetupModal.d.ts +0 -5
- package/dist/components/OrganizationSetupModal.js +0 -4
- package/dist/components/OrganizationSetupModal.js.map +0 -1
- package/dist/components/PageContainer.d.ts +0 -105
- package/dist/components/PageContainer.js +0 -3
- package/dist/components/PageContainer.js.map +0 -1
- package/dist/components/ServiceMenu.d.ts +0 -11
- package/dist/components/ServiceMenu.js +0 -3
- package/dist/components/ServiceMenu.js.map +0 -1
- package/dist/components/Sidebar.d.ts +0 -11
- package/dist/components/Sidebar.js +0 -5
- package/dist/components/Sidebar.js.map +0 -1
- package/dist/contexts/LanguageContext.d.ts +0 -17
- package/dist/contexts/LanguageContext.js +0 -4
- package/dist/contexts/LanguageContext.js.map +0 -1
- package/dist/contexts/OrganizationContext.d.ts +0 -28
- package/dist/contexts/OrganizationContext.js +0 -3
- package/dist/contexts/OrganizationContext.js.map +0 -1
- package/dist/contexts/ThemeContext.d.ts +0 -14
- package/dist/contexts/ThemeContext.js +0 -3
- package/dist/contexts/ThemeContext.js.map +0 -1
- package/dist/hooks/useDateFormat.d.ts +0 -28
- package/dist/hooks/useDateFormat.js +0 -4
- package/dist/hooks/useDateFormat.js.map +0 -1
- package/dist/i18n.d.ts +0 -38
- package/dist/i18n.js +0 -3
- package/dist/i18n.js.map +0 -1
- package/dist/types.d.ts +0 -91
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { cn } from './chunk-DGPY4WP3.js';
|
|
2
|
+
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { ChevronDownIcon } from 'lucide-react';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function NavigationMenu({
|
|
8
|
+
className,
|
|
9
|
+
children,
|
|
10
|
+
viewport = true,
|
|
11
|
+
...props
|
|
12
|
+
}) {
|
|
13
|
+
return /* @__PURE__ */ jsxs(
|
|
14
|
+
NavigationMenuPrimitive.Root,
|
|
15
|
+
{
|
|
16
|
+
"data-slot": "navigation-menu",
|
|
17
|
+
"data-viewport": viewport,
|
|
18
|
+
className: cn(
|
|
19
|
+
"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
|
|
20
|
+
className
|
|
21
|
+
),
|
|
22
|
+
...props,
|
|
23
|
+
children: [
|
|
24
|
+
children,
|
|
25
|
+
viewport && /* @__PURE__ */ jsx(NavigationMenuViewport, {})
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
function NavigationMenuList({
|
|
31
|
+
className,
|
|
32
|
+
...props
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
NavigationMenuPrimitive.List,
|
|
36
|
+
{
|
|
37
|
+
"data-slot": "navigation-menu-list",
|
|
38
|
+
className: cn(
|
|
39
|
+
"group flex flex-1 list-none items-center justify-center gap-1",
|
|
40
|
+
className
|
|
41
|
+
),
|
|
42
|
+
...props
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
function NavigationMenuItem({
|
|
47
|
+
className,
|
|
48
|
+
...props
|
|
49
|
+
}) {
|
|
50
|
+
return /* @__PURE__ */ jsx(
|
|
51
|
+
NavigationMenuPrimitive.Item,
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "navigation-menu-item",
|
|
54
|
+
className: cn("relative", className),
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
var navigationMenuTriggerStyle = cva(
|
|
60
|
+
"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"
|
|
61
|
+
);
|
|
62
|
+
function NavigationMenuTrigger({
|
|
63
|
+
className,
|
|
64
|
+
children,
|
|
65
|
+
...props
|
|
66
|
+
}) {
|
|
67
|
+
return /* @__PURE__ */ jsxs(
|
|
68
|
+
NavigationMenuPrimitive.Trigger,
|
|
69
|
+
{
|
|
70
|
+
"data-slot": "navigation-menu-trigger",
|
|
71
|
+
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
72
|
+
...props,
|
|
73
|
+
children: [
|
|
74
|
+
children,
|
|
75
|
+
" ",
|
|
76
|
+
/* @__PURE__ */ jsx(
|
|
77
|
+
ChevronDownIcon,
|
|
78
|
+
{
|
|
79
|
+
className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
80
|
+
"aria-hidden": "true"
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
function NavigationMenuContent({
|
|
88
|
+
className,
|
|
89
|
+
...props
|
|
90
|
+
}) {
|
|
91
|
+
return /* @__PURE__ */ jsx(
|
|
92
|
+
NavigationMenuPrimitive.Content,
|
|
93
|
+
{
|
|
94
|
+
"data-slot": "navigation-menu-content",
|
|
95
|
+
className: cn(
|
|
96
|
+
"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",
|
|
97
|
+
"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",
|
|
98
|
+
className
|
|
99
|
+
),
|
|
100
|
+
...props
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
function NavigationMenuViewport({
|
|
105
|
+
className,
|
|
106
|
+
...props
|
|
107
|
+
}) {
|
|
108
|
+
return /* @__PURE__ */ jsx(
|
|
109
|
+
"div",
|
|
110
|
+
{
|
|
111
|
+
className: cn(
|
|
112
|
+
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
113
|
+
),
|
|
114
|
+
children: /* @__PURE__ */ jsx(
|
|
115
|
+
NavigationMenuPrimitive.Viewport,
|
|
116
|
+
{
|
|
117
|
+
"data-slot": "navigation-menu-viewport",
|
|
118
|
+
className: cn(
|
|
119
|
+
"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)]",
|
|
120
|
+
className
|
|
121
|
+
),
|
|
122
|
+
...props
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
function NavigationMenuLink({
|
|
129
|
+
className,
|
|
130
|
+
...props
|
|
131
|
+
}) {
|
|
132
|
+
return /* @__PURE__ */ jsx(
|
|
133
|
+
NavigationMenuPrimitive.Link,
|
|
134
|
+
{
|
|
135
|
+
"data-slot": "navigation-menu-link",
|
|
136
|
+
className: cn(
|
|
137
|
+
"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",
|
|
138
|
+
className
|
|
139
|
+
),
|
|
140
|
+
...props
|
|
141
|
+
}
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
function NavigationMenuIndicator({
|
|
145
|
+
className,
|
|
146
|
+
...props
|
|
147
|
+
}) {
|
|
148
|
+
return /* @__PURE__ */ jsx(
|
|
149
|
+
NavigationMenuPrimitive.Indicator,
|
|
150
|
+
{
|
|
151
|
+
"data-slot": "navigation-menu-indicator",
|
|
152
|
+
className: cn(
|
|
153
|
+
"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",
|
|
154
|
+
className
|
|
155
|
+
),
|
|
156
|
+
...props,
|
|
157
|
+
children: /* @__PURE__ */ jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
|
|
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":";;;;;;AA6CA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,GAAG;AACL,CAAA,EAEG;AACD,EAAA,uBACE,IAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,eAAA,EAAe,QAAA;AAAA,MACf,SAAA,EAAW,EAAA;AAAA,QACT,kFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,QAAA,wBAAa,sBAAA,EAAA,EAAuB;AAAA;AAAA;AAAA,GACvC;AAEJ;AAGA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8D;AAC5D,EAAA,uBACE,GAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,+DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8D;AAC5D,EAAA,uBACE,GAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,MAClC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,IAAM,0BAAA,GAA6B,GAAA;AAAA,EACjC;AACF;AAGA,SAAS,qBAAA,CAAsB;AAAA,EAC7B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiE;AAC/D,EAAA,uBACE,IAAA;AAAA,IAAyB,uBAAA,CAAA,OAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA2B,EAAG,SAAS,SAAS,CAAA;AAAA,MAC7D,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QAAU,GAAA;AAAA,wBACX,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,2FAAA;AAAA,YACV,aAAA,EAAY;AAAA;AAAA;AACd;AAAA;AAAA,GACF;AAEJ;AAGA,SAAS,qBAAA,CAAsB;AAAA,EAC7B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiE;AAC/D,EAAA,uBACE,GAAA;AAAA,IAAyB,uBAAA,CAAA,OAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,yBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,kWAAA;AAAA,QACA,2hCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,sBAAA,CAAuB;AAAA,EAC9B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkE;AAChE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT;AAAA,OACF;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAyB,uBAAA,CAAA,QAAA;AAAA,QAAxB;AAAA,UACC,WAAA,EAAU,0BAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,oVAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA,GACF;AAEJ;AAGA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8D;AAC5D,EAAA,uBACE,GAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,udAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAGA,SAAS,uBAAA,CAAwB;AAAA,EAC/B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmE;AACjE,EAAA,uBACE,GAAA;AAAA,IAAyB,uBAAA,CAAA,SAAA;AAAA,IAAxB;AAAA,MACC,WAAA,EAAU,2BAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8LAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wEAAA,EAAyE;AAAA;AAAA,GAC1F;AAEJ","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"]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { cn } from './chunk-DGPY4WP3.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function Card({ className, ...props }) {
|
|
5
|
+
return /* @__PURE__ */ jsx(
|
|
6
|
+
"div",
|
|
7
|
+
{
|
|
8
|
+
"data-slot": "card",
|
|
9
|
+
className: cn(
|
|
10
|
+
"bg-card text-card-foreground flex flex-col gap-card rounded-lg border",
|
|
11
|
+
className
|
|
12
|
+
),
|
|
13
|
+
...props
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
function CardHeader({ className, ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
"data-slot": "card-header",
|
|
22
|
+
className: cn(
|
|
23
|
+
"@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",
|
|
24
|
+
className
|
|
25
|
+
),
|
|
26
|
+
...props
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
function CardTitle({ className, ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
"h4",
|
|
33
|
+
{
|
|
34
|
+
"data-slot": "card-title",
|
|
35
|
+
className: cn("leading-none", className),
|
|
36
|
+
...props
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
function CardDescription({ className, ...props }) {
|
|
41
|
+
return /* @__PURE__ */ jsx(
|
|
42
|
+
"p",
|
|
43
|
+
{
|
|
44
|
+
"data-slot": "card-description",
|
|
45
|
+
className: cn("text-muted-foreground", className),
|
|
46
|
+
...props
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function CardAction({ className, ...props }) {
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
"data-slot": "card-action",
|
|
55
|
+
className: cn(
|
|
56
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
57
|
+
className
|
|
58
|
+
),
|
|
59
|
+
...props
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
function CardContent({ className, ...props }) {
|
|
64
|
+
return /* @__PURE__ */ jsx(
|
|
65
|
+
"div",
|
|
66
|
+
{
|
|
67
|
+
"data-slot": "card-content",
|
|
68
|
+
className: cn("px-card [&:last-child]:pb-card", className),
|
|
69
|
+
...props
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
function CardFooter({ className, ...props }) {
|
|
74
|
+
return /* @__PURE__ */ jsx(
|
|
75
|
+
"div",
|
|
76
|
+
{
|
|
77
|
+
"data-slot": "card-footer",
|
|
78
|
+
className: cn("flex items-center px-card pb-card [.border-t]:pt-card", className),
|
|
79
|
+
...props
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|
|
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"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Badge } from './chunk-A3BB5ZOC.js';
|
|
2
|
+
import { cn } from './chunk-DGPY4WP3.js';
|
|
3
|
+
import { GitBranch, Bell, Eye, CheckCircle } from 'lucide-react';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var stageConfig = {
|
|
7
|
+
approval: {
|
|
8
|
+
icon: CheckCircle,
|
|
9
|
+
style: "bg-green-50 dark:bg-green-500/15 text-green-600 dark:text-green-400 border-green-200 dark:border-green-500/30"
|
|
10
|
+
},
|
|
11
|
+
review: {
|
|
12
|
+
icon: Eye,
|
|
13
|
+
style: "bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-500/30"
|
|
14
|
+
},
|
|
15
|
+
notification: {
|
|
16
|
+
icon: Bell,
|
|
17
|
+
style: "bg-amber-50 dark:bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-200 dark:border-amber-500/30"
|
|
18
|
+
},
|
|
19
|
+
conditional: {
|
|
20
|
+
icon: GitBranch,
|
|
21
|
+
style: "bg-purple-50 dark:bg-purple-500/15 text-purple-600 dark:text-purple-400 border-purple-200 dark:border-purple-500/30"
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
var defaultLabels = {
|
|
25
|
+
approval: "Approval",
|
|
26
|
+
review: "Review",
|
|
27
|
+
notification: "Notification",
|
|
28
|
+
conditional: "Conditional"
|
|
29
|
+
};
|
|
30
|
+
function StageTypeBadge({ type, label, className }) {
|
|
31
|
+
const config = stageConfig[type];
|
|
32
|
+
const Icon = config.icon;
|
|
33
|
+
return /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: cn(config.style, className), children: [
|
|
34
|
+
/* @__PURE__ */ jsx(Icon, { className: "w-3 h-3 mr-1" }),
|
|
35
|
+
label ?? defaultLabels[type]
|
|
36
|
+
] });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { StageTypeBadge };
|
|
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"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { toggleVariants } from './chunk-NU56GKGM.js';
|
|
2
|
+
import { cn } from './chunk-DGPY4WP3.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var ToggleGroupContext = React.createContext({
|
|
8
|
+
size: "default",
|
|
9
|
+
variant: "default"
|
|
10
|
+
});
|
|
11
|
+
function ToggleGroup({
|
|
12
|
+
className,
|
|
13
|
+
variant,
|
|
14
|
+
size,
|
|
15
|
+
children,
|
|
16
|
+
...props
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ jsx(
|
|
19
|
+
ToggleGroupPrimitive.Root,
|
|
20
|
+
{
|
|
21
|
+
"data-slot": "toggle-group",
|
|
22
|
+
"data-variant": variant,
|
|
23
|
+
"data-size": size,
|
|
24
|
+
className: cn(
|
|
25
|
+
"group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs",
|
|
26
|
+
className
|
|
27
|
+
),
|
|
28
|
+
...props,
|
|
29
|
+
children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
function ToggleGroupItem({
|
|
34
|
+
className,
|
|
35
|
+
children,
|
|
36
|
+
variant,
|
|
37
|
+
size,
|
|
38
|
+
...props
|
|
39
|
+
}) {
|
|
40
|
+
const context = React.useContext(ToggleGroupContext);
|
|
41
|
+
return /* @__PURE__ */ jsx(
|
|
42
|
+
ToggleGroupPrimitive.Item,
|
|
43
|
+
{
|
|
44
|
+
"data-slot": "toggle-group-item",
|
|
45
|
+
"data-variant": context.variant || variant,
|
|
46
|
+
"data-size": context.size || size,
|
|
47
|
+
className: cn(
|
|
48
|
+
toggleVariants({
|
|
49
|
+
variant: context.variant || variant,
|
|
50
|
+
size: context.size || size
|
|
51
|
+
}),
|
|
52
|
+
"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",
|
|
53
|
+
className
|
|
54
|
+
),
|
|
55
|
+
...props,
|
|
56
|
+
children
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
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 };"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Badge } from './chunk-A3BB5ZOC.js';
|
|
2
|
+
import { cn } from './chunk-DGPY4WP3.js';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var statusStyles = {
|
|
6
|
+
pending: "bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-500/30",
|
|
7
|
+
"in-progress": "bg-amber-50 dark:bg-amber-500/15 text-amber-600 dark:text-amber-400 border-amber-200 dark:border-amber-500/30",
|
|
8
|
+
approved: "bg-green-50 dark:bg-green-500/15 text-green-600 dark:text-green-400 border-green-200 dark:border-green-500/30",
|
|
9
|
+
rejected: "bg-red-50 dark:bg-red-500/15 text-red-600 dark:text-red-400 border-red-200 dark:border-red-500/30",
|
|
10
|
+
cancelled: "bg-muted text-muted-foreground"
|
|
11
|
+
};
|
|
12
|
+
var defaultLabels = {
|
|
13
|
+
pending: "Pending",
|
|
14
|
+
"in-progress": "In Progress",
|
|
15
|
+
approved: "Approved",
|
|
16
|
+
rejected: "Rejected",
|
|
17
|
+
cancelled: "Cancelled"
|
|
18
|
+
};
|
|
19
|
+
function WorkflowStatusBadge({ status, label, className }) {
|
|
20
|
+
return /* @__PURE__ */ jsx(Badge, { variant: "outline", className: cn(statusStyles[status], className), children: label ?? defaultLabels[status] });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { WorkflowStatusBadge };
|
|
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"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
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
|
+
*/
|
|
29
|
+
declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
30
|
+
/** Individual accordion section. Requires a unique `value` prop. */
|
|
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. */
|
|
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`. */
|
|
35
|
+
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
36
|
+
|
|
37
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"accordion.js"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
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
|
+
*/
|
|
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. */
|
|
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. */
|
|
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. */
|
|
40
|
+
declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
|
|
41
|
+
/** Alert dialog content panel with overlay backdrop. */
|
|
42
|
+
declare function AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
43
|
+
/** Container for AlertDialogTitle and AlertDialogDescription. */
|
|
44
|
+
declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
45
|
+
/** Container for AlertDialogAction and AlertDialogCancel buttons. */
|
|
46
|
+
declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
47
|
+
/** Accessible title for the alert dialog. */
|
|
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. */
|
|
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. */
|
|
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. */
|
|
54
|
+
declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime.JSX.Element;
|
|
55
|
+
|
|
56
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from '../chunk-LTTNCAAA.js';
|
|
2
|
+
import '../chunk-55E7D2HR.js';
|
|
3
|
+
import '../chunk-DGPY4WP3.js';
|
|
4
|
+
//# sourceMappingURL=alert-dialog.js.map
|
|
5
|
+
//# sourceMappingURL=alert-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"alert-dialog.js"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
import { UIColor } from '../lib/types.js';
|
|
6
|
+
|
|
7
|
+
declare const alertVariants: (props?: ({
|
|
8
|
+
variant?: "destructive" | "default" | "soft" | null | undefined;
|
|
9
|
+
color?: "primary" | "destructive" | "success" | "warning" | "info" | null | undefined;
|
|
10
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
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. */
|
|
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. */
|
|
66
|
+
declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
67
|
+
|
|
68
|
+
export { Alert, AlertDescription, AlertTitle };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"alert.js"}
|