@senitix/ui 0.4.0 → 0.4.2
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/accordion-BcwB0wwz.cjs +2 -0
- package/dist/accordion-BcwB0wwz.cjs.map +1 -0
- package/dist/accordion-BwnJKrKm.js +360 -0
- package/dist/accordion-BwnJKrKm.js.map +1 -0
- package/dist/appointment-scheduler-BoQQO51F.cjs +2 -0
- package/dist/appointment-scheduler-BoQQO51F.cjs.map +1 -0
- package/dist/appointment-scheduler-DHAs-mF_.js +192 -0
- package/dist/appointment-scheduler-DHAs-mF_.js.map +1 -0
- package/dist/arrow-right-CM3nmiZe.js +15 -0
- package/dist/arrow-right-CM3nmiZe.js.map +1 -0
- package/dist/arrow-right-vDxRZOfm.cjs +7 -0
- package/dist/arrow-right-vDxRZOfm.cjs.map +1 -0
- package/dist/avatar-BlEcWE7T.js +191 -0
- package/dist/avatar-BlEcWE7T.js.map +1 -0
- package/dist/avatar-Cl38Ye4J.cjs +2 -0
- package/dist/avatar-Cl38Ye4J.cjs.map +1 -0
- package/dist/badge-BZcdBG5J.cjs +23 -0
- package/dist/badge-BZcdBG5J.cjs.map +1 -0
- package/dist/badge-D0C_rP2l.js +157 -0
- package/dist/badge-D0C_rP2l.js.map +1 -0
- package/dist/button-BP_ug5gP.js +126 -0
- package/dist/button-BP_ug5gP.js.map +1 -0
- package/dist/button-CPuCii0R.cjs +2 -0
- package/dist/button-CPuCii0R.cjs.map +1 -0
- package/dist/{calendar-BFWc4IB7.js → calendar-86qoSnO7.js} +411 -462
- package/dist/calendar-86qoSnO7.js.map +1 -0
- package/dist/calendar-BH-AuyiB.cjs +7 -0
- package/dist/{calendar-SwL5isYC.cjs.map → calendar-BH-AuyiB.cjs.map} +1 -1
- package/dist/calendar-CSJ060ym.cjs +2 -0
- package/dist/calendar-CSJ060ym.cjs.map +1 -0
- package/dist/calendar-JUSWONQ0.js +17 -0
- package/dist/{calendar-ChJkFXXr.js.map → calendar-JUSWONQ0.js.map} +1 -1
- package/dist/{card-tMkUxpmW.cjs → card-CToWUN1K.cjs} +2 -2
- package/dist/{card-tMkUxpmW.cjs.map → card-CToWUN1K.cjs.map} +1 -1
- package/dist/{card-K4fxyYwE.js → card-yxbWFvZ1.js} +2 -2
- package/dist/{card-K4fxyYwE.js.map → card-yxbWFvZ1.js.map} +1 -1
- package/dist/checkbox-BmugT50K.cjs +2 -0
- package/dist/checkbox-BmugT50K.cjs.map +1 -0
- package/dist/{checkbox-CpOq5hkT.js → checkbox-CTa9e4SG.js} +95 -97
- package/dist/checkbox-CTa9e4SG.js.map +1 -0
- package/dist/chevron-left-5h87iFo_.cjs +7 -0
- package/dist/chevron-left-5h87iFo_.cjs.map +1 -0
- package/dist/chevron-left-DD5mQuvf.js +14 -0
- package/dist/chevron-left-DD5mQuvf.js.map +1 -0
- package/dist/chevron-right-D-TdAZ7l.cjs +7 -0
- package/dist/{chevron-right-Dvyd11q0.cjs.map → chevron-right-D-TdAZ7l.cjs.map} +1 -1
- package/dist/chevron-right-Di90aqSn.js +14 -0
- package/dist/{chevron-right-B3bovvh0.js.map → chevron-right-Di90aqSn.js.map} +1 -1
- package/dist/chevron-up-Bq55Db6X.cjs +7 -0
- package/dist/{chevron-up-B9fuiZhc.cjs.map → chevron-up-Bq55Db6X.cjs.map} +1 -1
- package/dist/chevron-up-Dr7EIn9V.js +12 -0
- package/dist/{chevron-up-CGtXOr51.js.map → chevron-up-Dr7EIn9V.js.map} +1 -1
- package/dist/clock-BjJE8PGr.js +15 -0
- package/dist/clock-BjJE8PGr.js.map +1 -0
- package/dist/clock-CnxBAA_O.cjs +7 -0
- package/dist/clock-CnxBAA_O.cjs.map +1 -0
- package/dist/command-BPtg-XK3.cjs +2 -0
- package/dist/command-BPtg-XK3.cjs.map +1 -0
- package/dist/command-VraXPLVI.js +404 -0
- package/dist/command-VraXPLVI.js.map +1 -0
- package/dist/components/builders/index.cjs.js +2 -0
- package/dist/components/builders/index.cjs.js.map +1 -0
- package/dist/components/builders/index.es.js +42 -0
- package/dist/components/builders/index.es.js.map +1 -0
- package/dist/components/charts/index.cjs.js +1 -1
- package/dist/components/charts/index.es.js +7 -6
- package/dist/components/charts/index.es.js.map +1 -1
- package/dist/components/data-display/index.cjs.js +1 -1
- package/dist/components/data-display/index.es.js +43 -20
- package/dist/components/dnd/index.cjs.js +1 -1
- package/dist/components/dnd/index.es.js +1 -1
- package/dist/components/feedback/index.cjs.js +1 -1
- package/dist/components/feedback/index.es.js +1 -1
- package/dist/components/forms/index.cjs.js +1 -1
- package/dist/components/forms/index.es.js +24 -23
- package/dist/components/forms/index.es.js.map +1 -1
- package/dist/components/layouts/index.cjs.js +1 -1
- package/dist/components/layouts/index.es.js +45 -21
- package/dist/components/messaging/index.cjs.js +2 -0
- package/dist/components/messaging/index.cjs.js.map +1 -0
- package/dist/components/messaging/index.es.js +15 -0
- package/dist/components/messaging/index.es.js.map +1 -0
- package/dist/components/navigation/index.cjs.js +1 -1
- package/dist/components/navigation/index.es.js +1 -1
- package/dist/components/scheduling/index.cjs.js +2 -0
- package/dist/components/scheduling/index.cjs.js.map +1 -0
- package/dist/components/scheduling/index.es.js +6 -0
- package/dist/components/scheduling/index.es.js.map +1 -0
- package/dist/components/ui/index.cjs.js +1 -1
- package/dist/components/ui/index.es.js +168 -158
- package/dist/components/ui/index.es.js.map +1 -1
- package/dist/dialog-BFBDL8_i.js +382 -0
- package/dist/dialog-BFBDL8_i.js.map +1 -0
- package/dist/dialog-DO5i1PED.cjs +6 -0
- package/dist/dialog-DO5i1PED.cjs.map +1 -0
- package/dist/dropdown-menu-CkCCV_tw.js +969 -0
- package/dist/dropdown-menu-CkCCV_tw.js.map +1 -0
- package/dist/dropdown-menu-ejikFvg2.cjs +7 -0
- package/dist/dropdown-menu-ejikFvg2.cjs.map +1 -0
- package/dist/ellipsis-CKhpjj5H.js +16 -0
- package/dist/{ellipsis-CiKEaUNP.js.map → ellipsis-CKhpjj5H.js.map} +1 -1
- package/dist/ellipsis-Dk7Wfc4i.cjs +7 -0
- package/dist/{ellipsis-BW2gWki8.cjs.map → ellipsis-Dk7Wfc4i.cjs.map} +1 -1
- package/dist/external-link-CGBqsrbm.cjs +7 -0
- package/dist/external-link-CGBqsrbm.cjs.map +1 -0
- package/dist/external-link-UeWW0ty3.js +16 -0
- package/dist/external-link-UeWW0ty3.js.map +1 -0
- package/dist/eye-Cved4eAo.cjs +7 -0
- package/dist/eye-Cved4eAo.cjs.map +1 -0
- package/dist/eye-KdCUpmO8.js +21 -0
- package/dist/eye-KdCUpmO8.js.map +1 -0
- package/dist/file-CHbdXCWO.js +15 -0
- package/dist/{file-wzTXnWqz.js.map → file-CHbdXCWO.js.map} +1 -1
- package/dist/file-CqYRamm8.cjs +7 -0
- package/dist/{file-V_hhCUhr.cjs.map → file-CqYRamm8.cjs.map} +1 -1
- package/dist/file-spreadsheet-CpySxI0-.cjs +7 -0
- package/dist/file-spreadsheet-CpySxI0-.cjs.map +1 -0
- package/dist/file-spreadsheet-EqZMR-mM.js +19 -0
- package/dist/file-spreadsheet-EqZMR-mM.js.map +1 -0
- package/dist/form-preview-BGdea5K7.cjs +111 -0
- package/dist/form-preview-BGdea5K7.cjs.map +1 -0
- package/dist/form-preview-C6WfeXyD.js +12075 -0
- package/dist/form-preview-C6WfeXyD.js.map +1 -0
- package/dist/full-calendar-CZMK_rPy.cjs +18 -0
- package/dist/full-calendar-CZMK_rPy.cjs.map +1 -0
- package/dist/full-calendar-CjaDgutS.js +2631 -0
- package/dist/full-calendar-CjaDgutS.js.map +1 -0
- package/dist/funnel-chart-Dfj1pOyV.cjs +6 -0
- package/dist/funnel-chart-Dfj1pOyV.cjs.map +1 -0
- package/dist/funnel-chart-o9qcEMgg.js +2952 -0
- package/dist/funnel-chart-o9qcEMgg.js.map +1 -0
- package/dist/global-search-Dhv8goH8.js +1331 -0
- package/dist/global-search-Dhv8goH8.js.map +1 -0
- package/dist/global-search-msFICB8l.cjs +22 -0
- package/dist/global-search-msFICB8l.cjs.map +1 -0
- package/dist/hooks/index.cjs.js +1 -1
- package/dist/hooks/index.es.js +9 -7
- package/dist/hooks/index.es.js.map +1 -1
- package/dist/{index-CwJPJKOE.js → index-BGUveO6l.js} +1077 -573
- package/dist/index-BGUveO6l.js.map +1 -0
- package/dist/{index-lT9bLt9X.cjs → index-Bhee6XHk.cjs} +2 -2
- package/dist/{index-lT9bLt9X.cjs.map → index-Bhee6XHk.cjs.map} +1 -1
- package/dist/index-CrSlyWAA.js +1090 -0
- package/dist/index-CrSlyWAA.js.map +1 -0
- package/dist/{index-Co9o9StL.js → index-D8-pHJim.js} +2 -2
- package/dist/{index-Co9o9StL.js.map → index-D8-pHJim.js.map} +1 -1
- package/dist/index-Dy_9oyP3.cjs +2 -0
- package/dist/index-Dy_9oyP3.cjs.map +1 -0
- package/dist/index-hnbbvGmb.cjs +21 -0
- package/dist/index-hnbbvGmb.cjs.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +434 -319
- package/dist/index.es.js.map +1 -1
- package/dist/input-Pfq8fkiV.js +2718 -0
- package/dist/input-Pfq8fkiV.js.map +1 -0
- package/dist/input-UBp7V7li.cjs +52 -0
- package/dist/input-UBp7V7li.cjs.map +1 -0
- package/dist/label-CExiitfO.js +50 -0
- package/dist/label-CExiitfO.js.map +1 -0
- package/dist/label-F0zGAiI2.cjs +2 -0
- package/dist/label-F0zGAiI2.cjs.map +1 -0
- package/dist/loader-circle-CBVYGIRp.js +14 -0
- package/dist/loader-circle-CBVYGIRp.js.map +1 -0
- package/dist/loader-circle-IaJKvYsP.cjs +7 -0
- package/dist/loader-circle-IaJKvYsP.cjs.map +1 -0
- package/dist/locale-provider-BHGNO4j7.js +1786 -0
- package/dist/locale-provider-BHGNO4j7.js.map +1 -0
- package/dist/locale-provider-BScpm-eC.cjs +2 -0
- package/dist/locale-provider-BScpm-eC.cjs.map +1 -0
- package/dist/locale-selector-D0jV4-90.cjs +12 -0
- package/dist/locale-selector-D0jV4-90.cjs.map +1 -0
- package/dist/locale-selector-n75sM9qA.js +1740 -0
- package/dist/locale-selector-n75sM9qA.js.map +1 -0
- package/dist/map-pin-CHh0xl6i.js +46 -0
- package/dist/map-pin-CHh0xl6i.js.map +1 -0
- package/dist/map-pin-DGObSZ40.cjs +17 -0
- package/dist/map-pin-DGObSZ40.cjs.map +1 -0
- package/dist/message-square-B_xLey5D.js +14 -0
- package/dist/message-square-B_xLey5D.js.map +1 -0
- package/dist/message-square-_69ua8rH.cjs +7 -0
- package/dist/message-square-_69ua8rH.cjs.map +1 -0
- package/dist/minus-BUFkTM0k.cjs +7 -0
- package/dist/{minus-BXBFZSZs.cjs.map → minus-BUFkTM0k.cjs.map} +1 -1
- package/dist/minus-DJ0tmymW.js +12 -0
- package/dist/{minus-DvlYtl96.js.map → minus-DJ0tmymW.js.map} +1 -1
- package/dist/multi-container-CytCGxsc.cjs +7 -0
- package/dist/multi-container-CytCGxsc.cjs.map +1 -0
- package/dist/multi-container-DmkgnCJN.js +799 -0
- package/dist/multi-container-DmkgnCJN.js.map +1 -0
- package/dist/multi-select-D9akBt7B.js +224 -0
- package/dist/multi-select-D9akBt7B.js.map +1 -0
- package/dist/multi-select-DxN_LuXC.cjs +7 -0
- package/dist/multi-select-DxN_LuXC.cjs.map +1 -0
- package/dist/pencil-BJULwaDl.cjs +12 -0
- package/dist/pencil-BJULwaDl.cjs.map +1 -0
- package/dist/pencil-HL0trGIs.js +31 -0
- package/dist/pencil-HL0trGIs.js.map +1 -0
- package/dist/permission-matrix-CTQ1OiTO.js +6128 -0
- package/dist/permission-matrix-CTQ1OiTO.js.map +1 -0
- package/dist/permission-matrix-DRu-cV44.cjs +93 -0
- package/dist/permission-matrix-DRu-cV44.cjs.map +1 -0
- package/dist/phone-B0J1dGIE.js +31 -0
- package/dist/phone-B0J1dGIE.js.map +1 -0
- package/dist/phone-DPA6vucM.cjs +12 -0
- package/dist/phone-DPA6vucM.cjs.map +1 -0
- package/dist/plus-Bcuujcqd.cjs +7 -0
- package/dist/{plus-8wKRkVu-.cjs.map → plus-Bcuujcqd.cjs.map} +1 -1
- package/dist/plus-D7DMDKb8.js +15 -0
- package/dist/{plus-CJD68KQD.js.map → plus-D7DMDKb8.js.map} +1 -1
- package/dist/popover-Bba1ELMX.cjs +2 -0
- package/dist/popover-Bba1ELMX.cjs.map +1 -0
- package/dist/popover-CZWAuYUL.js +281 -0
- package/dist/popover-CZWAuYUL.js.map +1 -0
- package/dist/progress-BPpsmZ48.js +218 -0
- package/dist/progress-BPpsmZ48.js.map +1 -0
- package/dist/progress-BrzjVhWG.cjs +22 -0
- package/dist/progress-BrzjVhWG.cjs.map +1 -0
- package/dist/providers/index.cjs.js +1 -1
- package/dist/providers/index.es.js +1 -1
- package/dist/radio-group-B9RM_c7e.js +244 -0
- package/dist/radio-group-B9RM_c7e.js.map +1 -0
- package/dist/radio-group-_n8TTqNQ.cjs +2 -0
- package/dist/radio-group-_n8TTqNQ.cjs.map +1 -0
- package/dist/record-dialog-footer-CQPnqhfv.js +2577 -0
- package/dist/record-dialog-footer-CQPnqhfv.js.map +1 -0
- package/dist/record-dialog-footer-DLH96eAV.cjs +37 -0
- package/dist/record-dialog-footer-DLH96eAV.cjs.map +1 -0
- package/dist/scroll-area-CGNbDUBQ.js +889 -0
- package/dist/scroll-area-CGNbDUBQ.js.map +1 -0
- package/dist/scroll-area-HsTSI_58.cjs +22 -0
- package/dist/scroll-area-HsTSI_58.cjs.map +1 -0
- package/dist/select-CEsYpjPi.cjs +2 -0
- package/dist/select-CEsYpjPi.cjs.map +1 -0
- package/dist/select-Ce2C2acZ.js +994 -0
- package/dist/select-Ce2C2acZ.js.map +1 -0
- package/dist/send-DIkOd-pu.js +21 -0
- package/dist/send-DIkOd-pu.js.map +1 -0
- package/dist/send-H6HC-rS8.cjs +7 -0
- package/dist/send-H6HC-rS8.cjs.map +1 -0
- package/dist/shared-inbox-Bv0AgLew.js +702 -0
- package/dist/shared-inbox-Bv0AgLew.js.map +1 -0
- package/dist/shared-inbox-DWEKfDX3.cjs +22 -0
- package/dist/shared-inbox-DWEKfDX3.cjs.map +1 -0
- package/dist/sheet-C0-aBGln.cjs +2 -0
- package/dist/sheet-C0-aBGln.cjs.map +1 -0
- package/dist/sheet-Cyq_eDFW.js +147 -0
- package/dist/sheet-Cyq_eDFW.js.map +1 -0
- package/dist/{skeleton-BmGbfJw3.js → skeleton-C_dwS3_6.js} +2 -2
- package/dist/{skeleton-BmGbfJw3.js.map → skeleton-C_dwS3_6.js.map} +1 -1
- package/dist/{skeleton-BSwwYaQU.cjs → skeleton-D3YsjVWD.cjs} +2 -2
- package/dist/{skeleton-BSwwYaQU.cjs.map → skeleton-D3YsjVWD.cjs.map} +1 -1
- package/dist/sortable.esm-5DsiICDg.cjs +6 -0
- package/dist/{sortable.esm-DcQYlXi3.cjs.map → sortable.esm-5DsiICDg.cjs.map} +1 -1
- package/dist/{sortable.esm-Blhf_jh1.js → sortable.esm-Cb8oRBzU.js} +42 -42
- package/dist/{sortable.esm-Blhf_jh1.js.map → sortable.esm-Cb8oRBzU.js.map} +1 -1
- package/dist/sparkline-chart-BP4bk24J.js +15881 -0
- package/dist/sparkline-chart-BP4bk24J.js.map +1 -0
- package/dist/sparkline-chart-D6SLZVjp.cjs +79 -0
- package/dist/sparkline-chart-D6SLZVjp.cjs.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/switch-AEZvZSRV.cjs +2 -0
- package/dist/switch-AEZvZSRV.cjs.map +1 -0
- package/dist/switch-BF4LLvaU.js +147 -0
- package/dist/switch-BF4LLvaU.js.map +1 -0
- package/dist/table-2-Bn-YjZ9s.cjs +17 -0
- package/dist/table-2-Bn-YjZ9s.cjs.map +1 -0
- package/dist/table-2-C7E_N72K.js +52 -0
- package/dist/table-2-C7E_N72K.js.map +1 -0
- package/dist/textarea-4qZDuQ-C.js +206 -0
- package/dist/textarea-4qZDuQ-C.js.map +1 -0
- package/dist/textarea-Bq_zyt0L.cjs +2 -0
- package/dist/textarea-Bq_zyt0L.cjs.map +1 -0
- package/dist/tooltip-Dd7le9EO.cjs +2 -0
- package/dist/tooltip-Dd7le9EO.cjs.map +1 -0
- package/dist/tooltip-Dee-pNPI.js +338 -0
- package/dist/tooltip-Dee-pNPI.js.map +1 -0
- package/dist/trash-2-B3EP3JfM.js +18 -0
- package/dist/trash-2-B3EP3JfM.js.map +1 -0
- package/dist/trash-2-DWEeKlWT.cjs +7 -0
- package/dist/trash-2-DWEeKlWT.cjs.map +1 -0
- package/dist/trending-up-ljWtN4pj.js +15 -0
- package/dist/{trending-up-DPwlYzQb.js.map → trending-up-ljWtN4pj.js.map} +1 -1
- package/dist/trending-up-mLgmkp--.cjs +7 -0
- package/dist/{trending-up-D3Nfrhi3.cjs.map → trending-up-mLgmkp--.cjs.map} +1 -1
- package/dist/upload-2tm-XihE.cjs +7 -0
- package/dist/upload-2tm-XihE.cjs.map +1 -0
- package/dist/upload-C_JDP8O0.js +16 -0
- package/dist/upload-C_JDP8O0.js.map +1 -0
- package/dist/use-controllable-state-3ATd6Fqd.cjs +2 -0
- package/dist/use-controllable-state-3ATd6Fqd.cjs.map +1 -0
- package/dist/use-controllable-state-CEa-Zlq6.js +23 -0
- package/dist/use-controllable-state-CEa-Zlq6.js.map +1 -0
- package/dist/use-formatters-Bb0fX1lW.cjs +2 -0
- package/dist/{use-formatters-d97RVcmg.cjs.map → use-formatters-Bb0fX1lW.cjs.map} +1 -1
- package/dist/{use-formatters-l1_2c8z0.js → use-formatters-xeMS4gdV.js} +1317 -1337
- package/dist/{use-formatters-l1_2c8z0.js.map → use-formatters-xeMS4gdV.js.map} +1 -1
- package/dist/utils/index.cjs.js +1 -1
- package/dist/utils/index.es.js +1 -1
- package/dist/welcome-card-Ccbl_miQ.js +1007 -0
- package/dist/welcome-card-Ccbl_miQ.js.map +1 -0
- package/dist/welcome-card-D-ShMkaS.cjs +37 -0
- package/dist/welcome-card-D-ShMkaS.cjs.map +1 -0
- package/dist/x-BBkgEhUv.js +15 -0
- package/dist/x-BBkgEhUv.js.map +1 -0
- package/dist/x-D-El5XAY.cjs +7 -0
- package/dist/x-D-El5XAY.cjs.map +1 -0
- package/package.json +33 -13
- package/dist/avatar-C0aVNCG9.cjs +0 -2
- package/dist/avatar-C0aVNCG9.cjs.map +0 -1
- package/dist/avatar-CN6wcrqY.js +0 -288
- package/dist/avatar-CN6wcrqY.js.map +0 -1
- package/dist/calendar-BFWc4IB7.js.map +0 -1
- package/dist/calendar-BUm7YrNf.cjs +0 -2
- package/dist/calendar-BUm7YrNf.cjs.map +0 -1
- package/dist/calendar-ChJkFXXr.js +0 -11
- package/dist/calendar-SwL5isYC.cjs +0 -2
- package/dist/checkbox-CpOq5hkT.js.map +0 -1
- package/dist/checkbox-D7-LQyCl.cjs +0 -2
- package/dist/checkbox-D7-LQyCl.cjs.map +0 -1
- package/dist/chevron-down-DHdXqOqK.cjs +0 -2
- package/dist/chevron-down-DHdXqOqK.cjs.map +0 -1
- package/dist/chevron-down-DJ1_YIFu.js +0 -8
- package/dist/chevron-down-DJ1_YIFu.js.map +0 -1
- package/dist/chevron-right-B3bovvh0.js +0 -8
- package/dist/chevron-right-Dvyd11q0.cjs +0 -2
- package/dist/chevron-up-B9fuiZhc.cjs +0 -2
- package/dist/chevron-up-CGtXOr51.js +0 -6
- package/dist/createLucideIcon-BbeNo6vq.js +0 -56
- package/dist/createLucideIcon-BbeNo6vq.js.map +0 -1
- package/dist/createLucideIcon-i5GEhNMV.cjs +0 -2
- package/dist/createLucideIcon-i5GEhNMV.cjs.map +0 -1
- package/dist/ellipsis-BW2gWki8.cjs +0 -2
- package/dist/ellipsis-CiKEaUNP.js +0 -10
- package/dist/file-V_hhCUhr.cjs +0 -2
- package/dist/file-wzTXnWqz.js +0 -9
- package/dist/filter-tags-DjUaNXHR.cjs +0 -5
- package/dist/filter-tags-DjUaNXHR.cjs.map +0 -1
- package/dist/filter-tags-i_I8qV1N.js +0 -2658
- package/dist/filter-tags-i_I8qV1N.js.map +0 -1
- package/dist/full-calendar-7ac2FFU6.js +0 -3518
- package/dist/full-calendar-7ac2FFU6.js.map +0 -1
- package/dist/full-calendar-Cpeh5xMP.cjs +0 -8
- package/dist/full-calendar-Cpeh5xMP.cjs.map +0 -1
- package/dist/global-search-UNXjoFlI.cjs +0 -2
- package/dist/global-search-UNXjoFlI.cjs.map +0 -1
- package/dist/global-search-h1rVbP2q.js +0 -1188
- package/dist/global-search-h1rVbP2q.js.map +0 -1
- package/dist/index-CwJPJKOE.js.map +0 -1
- package/dist/index-CzVK9Zyb.cjs +0 -6
- package/dist/index-CzVK9Zyb.cjs.map +0 -1
- package/dist/index-l828OqQN.js +0 -288
- package/dist/index-l828OqQN.js.map +0 -1
- package/dist/index-lGzB9daF.cjs +0 -2
- package/dist/index-lGzB9daF.cjs.map +0 -1
- package/dist/input-CZrckPLk.cjs +0 -42
- package/dist/input-CZrckPLk.cjs.map +0 -1
- package/dist/input-D4AoiWxo.js +0 -3629
- package/dist/input-D4AoiWxo.js.map +0 -1
- package/dist/locale-provider-DHMwuneF.cjs +0 -2
- package/dist/locale-provider-DHMwuneF.cjs.map +0 -1
- package/dist/locale-provider-DanG6RRG.js +0 -1012
- package/dist/locale-provider-DanG6RRG.js.map +0 -1
- package/dist/locale-selector-Ppe0KTi-.cjs +0 -2
- package/dist/locale-selector-Ppe0KTi-.cjs.map +0 -1
- package/dist/locale-selector-xn2GpdP9.js +0 -1745
- package/dist/locale-selector-xn2GpdP9.js.map +0 -1
- package/dist/minus-BXBFZSZs.cjs +0 -2
- package/dist/minus-DvlYtl96.js +0 -6
- package/dist/multi-container-C2UpSw5f.js +0 -731
- package/dist/multi-container-C2UpSw5f.js.map +0 -1
- package/dist/multi-container-DMKL8c9B.cjs +0 -2
- package/dist/multi-container-DMKL8c9B.cjs.map +0 -1
- package/dist/pipeline-By5_8AFg.cjs +0 -2
- package/dist/pipeline-By5_8AFg.cjs.map +0 -1
- package/dist/pipeline-D-QNSU0U.js +0 -1036
- package/dist/pipeline-D-QNSU0U.js.map +0 -1
- package/dist/plus-8wKRkVu-.cjs +0 -2
- package/dist/plus-CJD68KQD.js +0 -9
- package/dist/popover-4V4sGe1U.js +0 -765
- package/dist/popover-4V4sGe1U.js.map +0 -1
- package/dist/popover-ivh-plLc.cjs +0 -2
- package/dist/popover-ivh-plLc.cjs.map +0 -1
- package/dist/progress-CFnuLqnS.cjs +0 -7
- package/dist/progress-CFnuLqnS.cjs.map +0 -1
- package/dist/progress-D5AsrWa6.js +0 -222
- package/dist/progress-D5AsrWa6.js.map +0 -1
- package/dist/scroll-area-DQeqDp3Y.js +0 -952
- package/dist/scroll-area-DQeqDp3Y.js.map +0 -1
- package/dist/scroll-area-DYOiJMXh.cjs +0 -2
- package/dist/scroll-area-DYOiJMXh.cjs.map +0 -1
- package/dist/select-C1rNBi6c.js +0 -974
- package/dist/select-C1rNBi6c.js.map +0 -1
- package/dist/select-m-Mqwxu3.cjs +0 -2
- package/dist/select-m-Mqwxu3.cjs.map +0 -1
- package/dist/separator-DBUivkHq.cjs +0 -2
- package/dist/separator-DBUivkHq.cjs.map +0 -1
- package/dist/separator-DsfoJx-2.js +0 -395
- package/dist/separator-DsfoJx-2.js.map +0 -1
- package/dist/sheet-BVWCpq7E.js +0 -84
- package/dist/sheet-BVWCpq7E.js.map +0 -1
- package/dist/sheet-mKiFLVnK.cjs +0 -2
- package/dist/sheet-mKiFLVnK.cjs.map +0 -1
- package/dist/sortable.esm-DcQYlXi3.cjs +0 -6
- package/dist/sparkline-chart-Da-ehDGv.js +0 -21082
- package/dist/sparkline-chart-Da-ehDGv.js.map +0 -1
- package/dist/sparkline-chart-ca3uTzVK.cjs +0 -68
- package/dist/sparkline-chart-ca3uTzVK.cjs.map +0 -1
- package/dist/trending-up-D3Nfrhi3.cjs +0 -2
- package/dist/trending-up-DPwlYzQb.js +0 -9
- package/dist/ui.css +0 -1
- package/dist/use-formatters-d97RVcmg.cjs +0 -2
- package/dist/welcome-card-CPolYl1D.cjs +0 -2
- package/dist/welcome-card-CPolYl1D.cjs.map +0 -1
- package/dist/welcome-card-CxMJZ8bv.js +0 -963
- package/dist/welcome-card-CxMJZ8bv.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),Ce=require("react"),N=require("./scroll-area-DYOiJMXh.cjs"),d=require("./index-lGzB9daF.cjs"),R=require("./separator-DBUivkHq.cjs"),z=require("./sheet-mKiFLVnK.cjs"),q=require("./skeleton-BSwwYaQU.cjs"),Re=require("./use-mobile-DY7TJ5lx.cjs"),D=require("./createLucideIcon-i5GEhNMV.cjs"),Be=require("./chevron-right-Dvyd11q0.cjs"),De=require("./ellipsis-BW2gWki8.cjs"),f=require("./input-CZrckPLk.cjs"),T=require("./avatar-C0aVNCG9.cjs"),_=require("./index-CzVK9Zyb.cjs"),A=require("./chevron-down-DHdXqOqK.cjs"),Ie=require("./plus-8wKRkVu-.cjs"),S=require("./popover-ivh-plLc.cjs"),Te=require("./trending-up-D3Nfrhi3.cjs");function _e(r){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(a,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return a.default=r,Object.freeze(a)}const s=_e(Ce);const Le=D.createLucideIcon("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);const Ee=D.createLucideIcon("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);const ze=D.createLucideIcon("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);const qe=D.createLucideIcon("PanelLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Ae="sidebar:state",Ge=3600*24*7,Pe="16rem",Oe="18rem",Ke="3rem",He="b",G=s.createContext(null);function B(){const r=s.useContext(G);if(!r)throw new Error("useSidebar must be used within a SidebarProvider.");return r}const P=s.forwardRef(({defaultOpen:r=!0,open:a,onOpenChange:t,className:n,style:i,children:p,...u},g)=>{const b=Re.useIsMobile(),[x,v]=s.useState(!1),[l,h]=s.useState(r),m=a??l,j=s.useCallback(M=>{const k=typeof M=="function"?M(m):M;t?t(k):h(k),document.cookie=`${Ae}=${k}; path=/; max-age=${Ge}`},[t,m]),y=s.useCallback(()=>b?v(M=>!M):j(M=>!M),[b,j,v]);s.useEffect(()=>{const M=k=>{k.key===He&&(k.metaKey||k.ctrlKey)&&(k.preventDefault(),y())};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[y]);const o=m?"expanded":"collapsed",w=s.useMemo(()=>({state:o,open:m,setOpen:j,isMobile:b,openMobile:x,setOpenMobile:v,toggleSidebar:y}),[o,m,j,b,x,v,y]);return e.jsx(G.Provider,{value:w,children:e.jsx(R.TooltipProvider,{delayDuration:0,children:e.jsx("div",{style:{"--sidebar-width":Pe,"--sidebar-width-icon":Ke,...i},className:d.cn("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",n),ref:g,...u,children:p})})})});P.displayName="SidebarProvider";const O=s.forwardRef(({side:r="left",variant:a="sidebar",collapsible:t="offcanvas",className:n,children:i,...p},u)=>{const{isMobile:g,state:b,openMobile:x,setOpenMobile:v}=B();return t==="none"?e.jsx("div",{className:d.cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",n),ref:u,...p,children:i}):g?e.jsx(z.Sheet,{open:x,onOpenChange:v,...p,children:e.jsx(z.SheetContent,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":Oe},side:r,children:e.jsx("div",{className:"flex h-full w-full flex-col",children:i})})}):e.jsxs("div",{ref:u,className:"group peer hidden md:block text-sidebar-foreground","data-state":b,"data-collapsible":b==="collapsed"?t:"","data-variant":a,"data-side":r,children:[e.jsx("div",{className:d.cn("duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",a==="floating"||a==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon]")}),e.jsx("div",{className:d.cn("duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex",r==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",a==="floating"||a==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",n),...p,children:e.jsx("div",{"data-sidebar":"sidebar",className:d.cn("flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow"),children:i})})]})});O.displayName="Sidebar";const K=s.forwardRef(({className:r,onClick:a,...t},n)=>{const{toggleSidebar:i}=B();return e.jsxs(N.Button,{ref:n,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:d.cn("h-7 w-7",r),onClick:p=>{a?.(p),i()},...t,children:[e.jsx(qe,{}),e.jsx("span",{className:"sr-only",children:"Toggle Sidebar"})]})});K.displayName="SidebarTrigger";const H=s.forwardRef(({className:r,...a},t)=>{const{toggleSidebar:n}=B();return e.jsx("button",{ref:t,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:n,title:"Toggle Sidebar",className:d.cn("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",r),...a})});H.displayName="SidebarRail";const F=s.forwardRef(({className:r,...a},t)=>e.jsx("main",{ref:t,className:d.cn("relative flex min-h-svh flex-1 flex-col bg-background","peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",r),...a}));F.displayName="SidebarInset";const V=s.forwardRef(({className:r,...a},t)=>e.jsx("input",{ref:t,"data-sidebar":"input",className:d.cn("h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",r),...a}));V.displayName="SidebarInput";const $=s.forwardRef(({className:r,...a},t)=>e.jsx("div",{ref:t,"data-sidebar":"header",className:d.cn("flex flex-col gap-2 p-2",r),...a}));$.displayName="SidebarHeader";const U=s.forwardRef(({className:r,...a},t)=>e.jsx("div",{ref:t,"data-sidebar":"footer",className:d.cn("flex flex-col gap-2 p-2",r),...a}));U.displayName="SidebarFooter";const W=s.forwardRef(({className:r,...a},t)=>e.jsx(R.Separator,{ref:t,"data-sidebar":"separator",className:d.cn("mx-2 w-auto bg-sidebar-border",r),...a}));W.displayName="SidebarSeparator";const X=s.forwardRef(({className:r,...a},t)=>e.jsx("div",{ref:t,"data-sidebar":"content",className:d.cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",r),...a}));X.displayName="SidebarContent";const Y=s.forwardRef(({className:r,...a},t)=>e.jsx("div",{ref:t,"data-sidebar":"group",className:d.cn("relative flex w-full min-w-0 flex-col p-2",r),...a}));Y.displayName="SidebarGroup";const J=s.forwardRef(({className:r,asChild:a=!1,...t},n)=>{const i=a?N.Slot:"div";return e.jsx(i,{ref:n,"data-sidebar":"group-label",className:d.cn("duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",r),...t})});J.displayName="SidebarGroupLabel";const Q=s.forwardRef(({className:r,asChild:a=!1,...t},n)=>{const i=a?N.Slot:"button";return e.jsx(i,{ref:n,"data-sidebar":"group-action",className:d.cn("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",r),...t})});Q.displayName="SidebarGroupAction";const Z=s.forwardRef(({className:r,...a},t)=>e.jsx("div",{ref:t,"data-sidebar":"group-content",className:d.cn("w-full text-sm",r),...a}));Z.displayName="SidebarGroupContent";const ee=s.forwardRef(({className:r,...a},t)=>e.jsx("ul",{ref:t,"data-sidebar":"menu",className:d.cn("flex w-full min-w-0 flex-col gap-1",r),...a}));ee.displayName="SidebarMenu";const ae=s.forwardRef(({className:r,...a},t)=>e.jsx("li",{ref:t,"data-sidebar":"menu-item",className:d.cn("group/menu-item relative",r),...a}));ae.displayName="SidebarMenuItem";const Fe=N.cva("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none 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",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"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))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),re=s.forwardRef(({asChild:r=!1,isActive:a=!1,variant:t="default",size:n="default",tooltip:i,className:p,...u},g)=>{const b=r?N.Slot:"button",{isMobile:x,state:v}=B(),l=e.jsx(b,{ref:g,"data-sidebar":"menu-button","data-size":n,"data-active":a,className:d.cn(Fe({variant:t,size:n}),p),...u});return i?(typeof i=="string"&&(i={children:i}),e.jsxs(R.Tooltip,{children:[e.jsx(R.TooltipTrigger,{asChild:!0,children:l}),e.jsx(R.TooltipContent,{side:"right",align:"center",hidden:v!=="collapsed"||x,...i})]})):l});re.displayName="SidebarMenuButton";const te=s.forwardRef(({className:r,asChild:a=!1,showOnHover:t=!1,...n},i)=>{const p=a?N.Slot:"button";return e.jsx(p,{ref:i,"data-sidebar":"menu-action",className:d.cn("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",t&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",r),...n})});te.displayName="SidebarMenuAction";const se=s.forwardRef(({className:r,...a},t)=>e.jsx("div",{ref:t,"data-sidebar":"menu-badge",className:d.cn("absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",r),...a}));se.displayName="SidebarMenuBadge";const ne=s.forwardRef(({className:r,showIcon:a=!1,...t},n)=>{const i=s.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return e.jsxs("div",{ref:n,"data-sidebar":"menu-skeleton",className:d.cn("rounded-md h-8 flex gap-2 px-2 items-center",r),...t,children:[a&&e.jsx(q.Skeleton,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),e.jsx(q.Skeleton,{className:"h-4 flex-1 max-w-[--skeleton-width]","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":i}})]})});ne.displayName="SidebarMenuSkeleton";const de=s.forwardRef(({className:r,...a},t)=>e.jsx("ul",{ref:t,"data-sidebar":"menu-sub",className:d.cn("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",r),...a}));de.displayName="SidebarMenuSub";const oe=s.forwardRef(({...r},a)=>e.jsx("li",{ref:a,...r}));oe.displayName="SidebarMenuSubItem";const ie=s.forwardRef(({asChild:r=!1,size:a="md",isActive:t,className:n,...i},p)=>{const u=r?N.Slot:"a";return e.jsx(u,{ref:p,"data-sidebar":"menu-sub-button","data-size":a,"data-active":t,className:d.cn("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring 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 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",a==="sm"&&"text-xs",a==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",n),...i})});ie.displayName="SidebarMenuSubButton";const le=s.forwardRef(({...r},a)=>e.jsx("nav",{ref:a,"aria-label":"breadcrumb",...r}));le.displayName="Breadcrumb";const ce=s.forwardRef(({className:r,...a},t)=>e.jsx("ol",{ref:t,className:d.cn("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",r),...a}));ce.displayName="BreadcrumbList";const ue=s.forwardRef(({className:r,...a},t)=>e.jsx("li",{ref:t,className:d.cn("inline-flex items-center gap-1.5",r),...a}));ue.displayName="BreadcrumbItem";const me=s.forwardRef(({asChild:r,className:a,...t},n)=>{const i=r?N.Slot:"a";return e.jsx(i,{ref:n,className:d.cn("transition-colors hover:text-foreground",a),...t})});me.displayName="BreadcrumbLink";const pe=s.forwardRef(({className:r,...a},t)=>e.jsx("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:d.cn("font-normal text-foreground",r),...a}));pe.displayName="BreadcrumbPage";const be=({children:r,className:a,...t})=>e.jsx("li",{role:"presentation","aria-hidden":"true",className:d.cn("[&>svg]:size-3.5",a),...t,children:r??e.jsx(Be.ChevronRight,{})});be.displayName="BreadcrumbSeparator";const xe=({className:r,...a})=>e.jsxs("span",{role:"presentation","aria-hidden":"true",className:d.cn("flex h-9 w-9 items-center justify-center",r),...a,children:[e.jsx(De.Ellipsis,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"More"})]});xe.displayName="BreadcrumbEllipsis";const fe=s.forwardRef(({className:r,logo:a,onMenuClick:t,showSearch:n=!0,searchPlaceholder:i="Search...",onSearch:p,user:u,userMenuItems:g=[],notificationCount:b,onNotificationClick:x,rightContent:v,...l},h)=>{const[m,j]=s.useState(""),y=o=>{o.preventDefault(),p?.(m)};return e.jsxs("header",{ref:h,className:d.cn("sticky top-0 z-50 flex h-16 items-center gap-4 border-b bg-background px-4 md:px-6",r),...l,children:[t&&e.jsxs(N.Button,{variant:"ghost",size:"icon",className:"shrink-0 md:hidden",onClick:t,children:[e.jsx(ze,{className:"h-5 w-5"}),e.jsx("span",{className:"sr-only",children:"Toggle navigation menu"})]}),a&&e.jsx("div",{className:"flex items-center gap-2",children:a}),n&&e.jsx("form",{onSubmit:y,className:"flex-1 md:flex-initial",children:e.jsxs("div",{className:"relative",children:[e.jsx(_.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(f.Input,{type:"search",placeholder:i,className:"w-full pl-8 md:w-[200px] lg:w-[300px]",value:m,onChange:o=>j(o.target.value)})]})}),e.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[v,x&&e.jsxs(N.Button,{variant:"ghost",size:"icon",className:"relative",onClick:x,children:[e.jsx(Le,{className:"h-5 w-5"}),b!==void 0&&b>0&&e.jsx("span",{className:"absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-destructive text-xs text-destructive-foreground",children:b>99?"99+":b}),e.jsx("span",{className:"sr-only",children:"Notifications"})]}),u&&e.jsxs(f.DropdownMenu,{children:[e.jsx(f.DropdownMenuTrigger,{asChild:!0,children:e.jsx(N.Button,{variant:"ghost",className:"relative h-8 w-8 rounded-full",children:e.jsxs(T.Avatar,{className:"h-8 w-8",children:[u.avatar&&e.jsx(T.AvatarImage,{src:u.avatar,alt:u.name}),e.jsx(T.AvatarFallback,{children:u.initials||u.name.charAt(0).toUpperCase()})]})})}),e.jsxs(f.DropdownMenuContent,{className:"w-56",align:"end",forceMount:!0,children:[e.jsx(f.DropdownMenuLabel,{className:"font-normal",children:e.jsxs("div",{className:"flex flex-col space-y-1",children:[e.jsx("p",{className:"text-sm font-medium leading-none",children:u.name}),e.jsx("p",{className:"text-xs leading-none text-muted-foreground",children:u.email})]})}),g.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(f.DropdownMenuSeparator,{}),g.map((o,w)=>e.jsxs(f.DropdownMenuItem,{onClick:o.onClick,children:[o.icon&&e.jsx("span",{className:"mr-2",children:o.icon}),o.label]},w))]})]})]})]})]})});fe.displayName="TopNav";const he=s.forwardRef(({className:r,items:a,logo:t,rightContent:n,...i},p)=>{const[u,g]=s.useState(null),b=s.useRef(null),x=l=>{b.current&&clearTimeout(b.current),g(l)},v=()=>{b.current=setTimeout(()=>{g(null)},150)};return e.jsx("nav",{ref:p,className:d.cn("relative z-50 w-full border-b bg-background",r),...i,children:e.jsxs("div",{className:"mx-auto flex h-16 max-w-7xl items-center justify-between px-4",children:[t&&e.jsx("div",{className:"flex-shrink-0",children:t}),e.jsx("ul",{className:"hidden items-center gap-1 md:flex",children:a.map(l=>e.jsxs("li",{onMouseEnter:()=>l.columns&&x(l.label),onMouseLeave:v,children:[l.href&&!l.columns?e.jsx("a",{href:l.href,className:"flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground",children:l.label}):e.jsxs(N.Button,{variant:"ghost",className:d.cn("flex items-center gap-1",u===l.label&&"bg-accent text-accent-foreground"),children:[l.label,l.columns&&e.jsx(A.ChevronDown,{className:d.cn("h-4 w-4 transition-transform",u===l.label&&"rotate-180")})]}),l.columns&&u===l.label&&e.jsx("div",{className:"absolute left-0 right-0 top-full border-b bg-background shadow-lg",onMouseEnter:()=>x(l.label),onMouseLeave:v,children:e.jsx("div",{className:"mx-auto max-w-7xl p-6",children:e.jsx("div",{className:"grid gap-8",style:{gridTemplateColumns:`repeat(${l.columns.length}, minmax(0, 1fr))`},children:l.columns.map((h,m)=>e.jsxs("div",{children:[h.title&&e.jsx("h3",{className:"mb-4 text-sm font-semibold text-foreground",children:h.title}),h.sections.map((j,y)=>e.jsxs("div",{className:"mb-4",children:[j.title&&e.jsx("h4",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-muted-foreground",children:j.title}),e.jsx("ul",{className:"space-y-1",children:j.links.map((o,w)=>e.jsx("li",{children:e.jsxs("a",{href:o.href,className:"group flex items-start gap-3 rounded-md p-2 transition-colors hover:bg-accent",children:[o.icon&&e.jsx("span",{className:"mt-0.5 text-muted-foreground group-hover:text-foreground",children:o.icon}),e.jsxs("div",{children:[e.jsx("span",{className:"block text-sm font-medium",children:o.label}),o.description&&e.jsx("span",{className:"block text-xs text-muted-foreground",children:o.description})]})]})},w))})]},y)),h.featured&&e.jsx("div",{className:"mt-4 rounded-lg bg-muted p-4",children:h.featured})]},m))})})})]},l.label))}),n&&e.jsx("div",{className:"flex items-center gap-2",children:n})]})})});he.displayName="MegaMenu";function ge(r){return r.map((a,t)=>{if(a.separator)return e.jsx(f.DropdownMenuSeparator,{},`separator-${t}`);if(a.children&&a.children.length>0)return e.jsxs(f.DropdownMenuSub,{children:[e.jsxs(f.DropdownMenuSubTrigger,{disabled:a.disabled,className:"flex items-center gap-2",children:[a.icon&&e.jsx("span",{className:"h-4 w-4",children:a.icon}),a.label]}),e.jsx(f.DropdownMenuSubContent,{children:ge(a.children)})]},a.label);const n=()=>{a.onClick&&a.onClick()};return a.href?e.jsx(f.DropdownMenuItem,{disabled:a.disabled,asChild:!0,children:e.jsxs("a",{href:a.href,className:"flex items-center gap-2",children:[a.icon&&e.jsx("span",{className:"h-4 w-4",children:a.icon}),a.label]})},a.label):e.jsxs(f.DropdownMenuItem,{disabled:a.disabled,onClick:n,className:"flex items-center gap-2",children:[a.icon&&e.jsx("span",{className:"h-4 w-4",children:a.icon}),a.label]},a.label)})}const ve=s.forwardRef(({trigger:r,items:a,align:t="start",side:n="bottom",className:i},p)=>e.jsxs(f.DropdownMenu,{children:[e.jsx(f.DropdownMenuTrigger,{asChild:!0,children:r}),e.jsx(f.DropdownMenuContent,{ref:p,align:t,side:n,className:d.cn("w-56",i),children:ge(a)})]}));ve.displayName="MultiLevelDropdown";const we=s.forwardRef(({className:r,tabs:a,activeTab:t,onTabChange:n,variant:i="default",size:p="md",fullWidth:u=!1,...g},b)=>{const[x,v]=s.useState(a[0]?.id),l=t??x,h=o=>{n?n(o):v(o)},m={sm:"text-xs py-1 px-2",md:"text-sm py-2 px-3",lg:"text-base py-3 px-4"},j=o=>{const w="flex items-center gap-2 font-medium transition-colors";switch(i){case"pills":return d.cn(w,"rounded-full",o?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground");case"underline":return d.cn(w,"border-b-2 rounded-none",o?"border-primary text-primary":"border-transparent text-muted-foreground hover:border-border hover:text-foreground");case"boxed":return d.cn(w,"rounded-lg border",o?"border-primary bg-primary/10 text-primary":"border-transparent text-muted-foreground hover:bg-muted hover:text-foreground");default:return d.cn(w,"rounded-md",o?"bg-muted text-foreground":"text-muted-foreground hover:bg-muted/50 hover:text-foreground")}},y=d.cn("flex items-center gap-1",i==="underline"&&"border-b",u&&"w-full",r);return e.jsx("div",{ref:b,className:y,role:"tablist",...g,children:a.map(o=>{const w=l===o.id;return e.jsxs("button",{role:"tab","aria-selected":w,"aria-disabled":o.disabled,disabled:o.disabled,onClick:()=>h(o.id),className:d.cn(j(w),m[p],u&&"flex-1 justify-center",o.disabled&&"cursor-not-allowed opacity-50"),children:[o.icon&&e.jsx("span",{className:"h-4 w-4",children:o.icon}),e.jsx("span",{children:o.label}),o.badge!==void 0&&e.jsx(N.Badge,{variant:w?"default":"secondary",className:"ml-1 h-5 min-w-5 rounded-full px-1.5 text-xs",children:o.badge})]},o.id)})})});we.displayName="TabNavigation";const je=s.forwardRef(({groups:r,label:a="Create",variant:t="default",size:n="default",className:i,align:p="end"},u)=>e.jsxs(f.DropdownMenu,{children:[e.jsx(f.DropdownMenuTrigger,{asChild:!0,children:e.jsxs(N.Button,{ref:u,variant:t,size:n,className:d.cn("gap-1",i),children:[e.jsx(Ie.Plus,{className:"h-4 w-4"}),n!=="icon"&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:a}),e.jsx(A.ChevronDown,{className:"h-3 w-3 opacity-50"})]})]})}),e.jsx(f.DropdownMenuContent,{align:p,className:"w-64",children:r.map((g,b)=>e.jsxs(s.Fragment,{children:[b>0&&e.jsx(f.DropdownMenuSeparator,{}),g.label&&e.jsx(f.DropdownMenuLabel,{children:g.label}),e.jsx(f.DropdownMenuGroup,{children:g.items.map(x=>e.jsxs(f.DropdownMenuItem,{onClick:x.onClick,className:"flex items-start gap-3 py-2",children:[x.icon&&e.jsx("span",{className:"mt-0.5 flex h-5 w-5 items-center justify-center text-muted-foreground",children:x.icon}),e.jsxs("div",{className:"flex flex-1 flex-col gap-0.5",children:[e.jsx("span",{className:"font-medium",children:x.label}),x.description&&e.jsx("span",{className:"text-xs text-muted-foreground",children:x.description})]}),x.shortcut&&e.jsx("kbd",{className:"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100",children:x.shortcut})]},x.id))})]},b))})]}));je.displayName="QuickCreateMenu";const Ne=s.forwardRef(({open:r,onOpenChange:a,groups:t,placeholder:n="Type a command or search...",emptyMessage:i="No results found.",loading:p=!1,onSearch:u},g)=>{const[b,x]=s.useState("");s.useEffect(()=>{const l=h=>{h.key==="k"&&(h.metaKey||h.ctrlKey)&&(h.preventDefault(),a(!r))};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[r,a]);const v=l=>{x(l),u?.(l)};return e.jsx(S.CommandDialog,{open:r,onOpenChange:a,children:e.jsxs(S.Command,{ref:g,className:"rounded-lg border shadow-md",children:[e.jsxs("div",{className:"flex items-center border-b px-3",children:[p?e.jsx(S.LoaderCircle,{className:"mr-2 h-4 w-4 shrink-0 animate-spin opacity-50"}):e.jsx(_.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(S.CommandInput,{placeholder:n,value:b,onValueChange:v,className:"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"})]}),e.jsxs(S.CommandList,{children:[e.jsx(S.CommandEmpty,{children:i}),t.map((l,h)=>e.jsxs(s.Fragment,{children:[h>0&&e.jsx(S.CommandSeparator,{}),e.jsx(S.CommandGroup,{heading:l.heading,children:l.actions.map(m=>e.jsxs(S.CommandItem,{value:m.id,keywords:m.keywords,onSelect:()=>{m.onSelect(),a(!1)},disabled:m.disabled,className:"flex items-center gap-2",children:[m.icon&&e.jsx("span",{className:"flex h-5 w-5 items-center justify-center",children:m.icon}),e.jsx("span",{children:m.label}),m.shortcut&&e.jsx(S.CommandShortcut,{children:m.shortcut})]},m.id))})]},l.heading))]})]})})});Ne.displayName="CommandPalette";const ye=s.forwardRef(({className:r,onSearch:a,recentSearches:t=[],onRecentSearchClick:n,onClearRecent:i,trendingSearches:p=[],placeholder:u="Search...",shortcut:g="⌘K",debounceMs:b=300,...x},v)=>{const[l,h]=s.useState(!1),[m,j]=s.useState(""),[y,o]=s.useState([]),[w,M]=s.useState(!1),k=s.useRef(null),I=s.useRef(null);s.useEffect(()=>{const c=C=>{C.key==="k"&&(C.metaKey||C.ctrlKey)&&(C.preventDefault(),h(!0),setTimeout(()=>k.current?.focus(),0))};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[]);const L=s.useCallback(async c=>{if(j(c),I.current&&clearTimeout(I.current),!c.trim()){o([]);return}I.current=setTimeout(async()=>{M(!0);try{const C=await a(c);o(C)}catch{o([])}finally{M(!1)}},b)},[a,b]),Se=c=>{c.onClick&&c.onClick(),h(!1),j(""),o([])},E=c=>{n?.(c),j(c),L(c)},Me=!m&&t.length>0,ke=!m&&p.length>0;return e.jsx("div",{ref:v,className:d.cn("relative",r),...x,children:e.jsxs(S.Popover,{open:l,onOpenChange:h,children:[e.jsx(S.PopoverTrigger,{asChild:!0,children:e.jsxs("div",{className:"relative cursor-pointer",onClick:()=>h(!0),children:[e.jsx(_.Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(f.Input,{ref:k,type:"text",placeholder:u,value:m,onChange:c=>L(c.target.value),className:"w-full pl-10 pr-16"}),e.jsx("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded border bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:g})]})}),e.jsx(S.PopoverContent,{className:"w-[var(--radix-popover-trigger-width)] p-0",align:"start",onOpenAutoFocus:c=>c.preventDefault(),children:e.jsxs(N.ScrollArea,{className:"max-h-80",children:[w&&e.jsx("div",{className:"flex items-center justify-center p-4",children:e.jsx(S.LoaderCircle,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!w&&y.length>0&&e.jsxs("div",{className:"p-2",children:[e.jsx("p",{className:"px-2 py-1.5 text-xs font-medium text-muted-foreground",children:"Results"}),y.map(c=>e.jsxs("button",{onClick:()=>Se(c),className:"flex w-full items-center gap-3 rounded-md p-2 text-left transition-colors hover:bg-accent",children:[c.icon&&e.jsx("span",{className:"flex h-8 w-8 items-center justify-center rounded-md bg-muted",children:c.icon}),e.jsxs("div",{className:"flex-1 overflow-hidden",children:[e.jsx("p",{className:"truncate font-medium",children:c.title}),c.description&&e.jsx("p",{className:"truncate text-xs text-muted-foreground",children:c.description})]}),c.type&&e.jsx("span",{className:"text-xs text-muted-foreground",children:c.type})]},c.id))]}),!w&&m&&y.length===0&&e.jsxs("div",{className:"p-4 text-center text-sm text-muted-foreground",children:['No results found for "',m,'"']}),Me&&e.jsxs("div",{className:"p-2",children:[e.jsxs("div",{className:"flex items-center justify-between px-2 py-1.5",children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"Recent"}),i&&e.jsx(N.Button,{variant:"ghost",size:"sm",className:"h-auto p-0 text-xs",onClick:i,children:"Clear"})]}),t.map((c,C)=>e.jsxs("button",{onClick:()=>E(c),className:"flex w-full items-center gap-2 rounded-md p-2 text-left text-sm transition-colors hover:bg-accent",children:[e.jsx(Ee,{className:"h-4 w-4 text-muted-foreground"}),c]},C))]}),ke&&e.jsxs("div",{className:"border-t p-2",children:[e.jsx("p",{className:"px-2 py-1.5 text-xs font-medium text-muted-foreground",children:"Trending"}),p.map((c,C)=>e.jsxs("button",{onClick:()=>E(c),className:"flex w-full items-center gap-2 rounded-md p-2 text-left text-sm transition-colors hover:bg-accent",children:[e.jsx(Te.TrendingUp,{className:"h-4 w-4 text-muted-foreground"}),c]},C))]})]})})]})})});ye.displayName="GlobalSearch";exports.Breadcrumb=le;exports.BreadcrumbEllipsis=xe;exports.BreadcrumbItem=ue;exports.BreadcrumbLink=me;exports.BreadcrumbList=ce;exports.BreadcrumbPage=pe;exports.BreadcrumbSeparator=be;exports.CommandPalette=Ne;exports.GlobalSearch=ye;exports.MegaMenu=he;exports.MultiLevelDropdown=ve;exports.QuickCreateMenu=je;exports.Sidebar=O;exports.SidebarContent=X;exports.SidebarFooter=U;exports.SidebarGroup=Y;exports.SidebarGroupAction=Q;exports.SidebarGroupContent=Z;exports.SidebarGroupLabel=J;exports.SidebarHeader=$;exports.SidebarInput=V;exports.SidebarInset=F;exports.SidebarMenu=ee;exports.SidebarMenuAction=te;exports.SidebarMenuBadge=se;exports.SidebarMenuButton=re;exports.SidebarMenuItem=ae;exports.SidebarMenuSkeleton=ne;exports.SidebarMenuSub=de;exports.SidebarMenuSubButton=ie;exports.SidebarMenuSubItem=oe;exports.SidebarProvider=P;exports.SidebarRail=H;exports.SidebarSeparator=W;exports.SidebarTrigger=K;exports.TabNavigation=we;exports.TopNav=fe;exports.useSidebar=B;
|
|
2
|
-
//# sourceMappingURL=global-search-UNXjoFlI.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"global-search-UNXjoFlI.cjs","sources":["../node_modules/lucide-react/dist/esm/icons/bell.js","../node_modules/lucide-react/dist/esm/icons/history.js","../node_modules/lucide-react/dist/esm/icons/menu.js","../node_modules/lucide-react/dist/esm/icons/panel-left.js","../src/components/navigation/sidebar.tsx","../src/components/navigation/breadcrumb.tsx","../src/components/navigation/top-nav.tsx","../src/components/navigation/mega-menu.tsx","../src/components/navigation/multi-level-dropdown.tsx","../src/components/navigation/tab-navigation.tsx","../src/components/navigation/quick-create-menu.tsx","../src/components/navigation/command-palette.tsx","../src/components/navigation/global-search.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Bell = createLucideIcon(\"Bell\", [\n [\"path\", { d: \"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\", key: \"1qo2s2\" }],\n [\"path\", { d: \"M10.3 21a1.94 1.94 0 0 0 3.4 0\", key: \"qgo35s\" }]\n]);\n\nexport { Bell as default };\n//# sourceMappingURL=bell.js.map\n","/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst History = createLucideIcon(\"History\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }],\n [\"path\", { d: \"M12 7v5l4 2\", key: \"1fdv2h\" }]\n]);\n\nexport { History as default };\n//# sourceMappingURL=history.js.map\n","/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Menu = createLucideIcon(\"Menu\", [\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"12\", y2: \"12\", key: \"1e0a9i\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"6\", y2: \"6\", key: \"1owob3\" }],\n [\"line\", { x1: \"4\", x2: \"20\", y1: \"18\", y2: \"18\", key: \"yk5zj1\" }]\n]);\n\nexport { Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.441.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { PanelLeft } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Separator } from '@/components/ui/separator'\nimport { Sheet, SheetContent } from '@/components/ui/sheet'\nimport { Skeleton } from '@/components/ui/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\nimport { useIsMobile } from '@/hooks/use-mobile'\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 SidebarContext = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null)\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 return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n\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 document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = React.useMemo<SidebarContext>(\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 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 flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = 'SidebarProvider'\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n }\n>(\n (\n {\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn(\n 'flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground',\n className\n )}\n ref={ref}\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-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n <div\n className={cn(\n 'duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] 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)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]'\n )}\n />\n <div\n className={cn(\n 'duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] 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 variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(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 className={cn(\n 'flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow'\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = 'Sidebar'\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = 'SidebarTrigger'\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[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 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\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)\nSidebarRail.displayName = 'SidebarRail'\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarInset.displayName = 'SidebarInset'\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<'input'>,\n React.ComponentProps<'input'>\n>(({ className, ...props }, ref) => {\n return (\n <input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = 'SidebarInput'\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n }\n)\nSidebarHeader.displayName = 'SidebarHeader'\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n }\n)\nSidebarFooter.displayName = 'SidebarFooter'\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = 'SidebarSeparator'\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\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)\nSidebarContent.displayName = 'SidebarContent'\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\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)\nSidebarGroup.displayName = 'SidebarGroup'\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] 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})\nSidebarGroupLabel.displayName = 'SidebarGroupLabel'\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = 'SidebarGroupAction'\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n)\nSidebarGroupContent.displayName = 'SidebarGroupContent'\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n )\n)\nSidebarMenu.displayName = 'SidebarMenu'\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n)\nSidebarMenuItem.displayName = 'SidebarMenuItem'\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-none 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\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : 'button'\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\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)\nSidebarMenuButton.displayName = 'SidebarMenuButton'\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 after:md: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 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = 'SidebarMenuAction'\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n 'absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-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)\nSidebarMenuBadge.displayName = 'SidebarMenuBadge'\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('rounded-md h-8 flex gap-2 px-2 items-center', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton'\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n )\n)\nSidebarMenuSub.displayName = 'SidebarMenuSub'\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(\n ({ ...props }, ref) => <li ref={ref} {...props} />\n)\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem'\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring 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 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\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})\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton'\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}\n","import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\nimport { cn } from '@/utils/cn'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5',\n className\n )}\n {...props}\n />\n )\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n )\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn('transition-colors hover:text-foreground', className)}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-normal text-foreground', className)}\n {...props}\n />\n )\n)\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn('[&>svg]:size-3.5', className)} {...props}>\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from 'react'\nimport { Menu, Bell, Search } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'\n\nexport interface TopNavProps extends React.HTMLAttributes<HTMLElement> {\n logo?: React.ReactNode\n onMenuClick?: () => void\n showSearch?: boolean\n searchPlaceholder?: string\n onSearch?: (value: string) => void\n user?: {\n name: string\n email: string\n avatar?: string\n initials?: string\n }\n userMenuItems?: {\n label: string\n onClick: () => void\n icon?: React.ReactNode\n }[]\n notificationCount?: number\n onNotificationClick?: () => void\n rightContent?: React.ReactNode\n}\n\nconst TopNav = React.forwardRef<HTMLElement, TopNavProps>(\n (\n {\n className,\n logo,\n onMenuClick,\n showSearch = true,\n searchPlaceholder = 'Search...',\n onSearch,\n user,\n userMenuItems = [],\n notificationCount,\n onNotificationClick,\n rightContent,\n ...props\n },\n ref\n ) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const handleSearchSubmit = (e: React.FormEvent) => {\n e.preventDefault()\n onSearch?.(searchValue)\n }\n\n return (\n <header\n ref={ref}\n className={cn(\n 'sticky top-0 z-50 flex h-16 items-center gap-4 border-b bg-background px-4 md:px-6',\n className\n )}\n {...props}\n >\n {onMenuClick && (\n <Button variant=\"ghost\" size=\"icon\" className=\"shrink-0 md:hidden\" onClick={onMenuClick}>\n <Menu className=\"h-5 w-5\" />\n <span className=\"sr-only\">Toggle navigation menu</span>\n </Button>\n )}\n\n {logo && <div className=\"flex items-center gap-2\">{logo}</div>}\n\n {showSearch && (\n <form onSubmit={handleSearchSubmit} className=\"flex-1 md:flex-initial\">\n <div className=\"relative\">\n <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n type=\"search\"\n placeholder={searchPlaceholder}\n className=\"w-full pl-8 md:w-[200px] lg:w-[300px]\"\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n />\n </div>\n </form>\n )}\n\n <div className=\"ml-auto flex items-center gap-2\">\n {rightContent}\n\n {onNotificationClick && (\n <Button variant=\"ghost\" size=\"icon\" className=\"relative\" onClick={onNotificationClick}>\n <Bell className=\"h-5 w-5\" />\n {notificationCount !== undefined && notificationCount > 0 && (\n <span className=\"absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-destructive text-xs text-destructive-foreground\">\n {notificationCount > 99 ? '99+' : notificationCount}\n </span>\n )}\n <span className=\"sr-only\">Notifications</span>\n </Button>\n )}\n\n {user && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"ghost\" className=\"relative h-8 w-8 rounded-full\">\n <Avatar className=\"h-8 w-8\">\n {user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n <AvatarFallback>{user.initials || user.name.charAt(0).toUpperCase()}</AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\" align=\"end\" forceMount>\n <DropdownMenuLabel className=\"font-normal\">\n <div className=\"flex flex-col space-y-1\">\n <p className=\"text-sm font-medium leading-none\">{user.name}</p>\n <p className=\"text-xs leading-none text-muted-foreground\">{user.email}</p>\n </div>\n </DropdownMenuLabel>\n {userMenuItems.length > 0 && (\n <>\n <DropdownMenuSeparator />\n {userMenuItems.map((item, index) => (\n <DropdownMenuItem key={index} onClick={item.onClick}>\n {item.icon && <span className=\"mr-2\">{item.icon}</span>}\n {item.label}\n </DropdownMenuItem>\n ))}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n </header>\n )\n }\n)\nTopNav.displayName = 'TopNav'\n\nexport { TopNav }\n","import * as React from 'react'\nimport { ChevronDown } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\n\nexport interface MegaMenuLink {\n label: string\n href: string\n description?: string\n icon?: React.ReactNode\n}\n\nexport interface MegaMenuSection {\n title?: string\n links: MegaMenuLink[]\n}\n\nexport interface MegaMenuColumn {\n title?: string\n sections: MegaMenuSection[]\n featured?: React.ReactNode\n}\n\nexport interface MegaMenuItem {\n label: string\n href?: string\n columns?: MegaMenuColumn[]\n}\n\nexport interface MegaMenuProps extends React.HTMLAttributes<HTMLElement> {\n items: MegaMenuItem[]\n logo?: React.ReactNode\n rightContent?: React.ReactNode\n}\n\nconst MegaMenu = React.forwardRef<HTMLElement, MegaMenuProps>(\n ({ className, items, logo, rightContent, ...props }, ref) => {\n const [activeItem, setActiveItem] = React.useState<string | null>(null)\n const timeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const handleMouseEnter = (label: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n setActiveItem(label)\n }\n\n const handleMouseLeave = () => {\n timeoutRef.current = setTimeout(() => {\n setActiveItem(null)\n }, 150)\n }\n\n return (\n <nav\n ref={ref}\n className={cn('relative z-50 w-full border-b bg-background', className)}\n {...props}\n >\n <div className=\"mx-auto flex h-16 max-w-7xl items-center justify-between px-4\">\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n <ul className=\"hidden items-center gap-1 md:flex\">\n {items.map((item) => (\n <li\n key={item.label}\n onMouseEnter={() => item.columns && handleMouseEnter(item.label)}\n onMouseLeave={handleMouseLeave}\n >\n {item.href && !item.columns ? (\n <a\n href={item.href}\n className=\"flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground\"\n >\n {item.label}\n </a>\n ) : (\n <Button\n variant=\"ghost\"\n className={cn(\n 'flex items-center gap-1',\n activeItem === item.label && 'bg-accent text-accent-foreground'\n )}\n >\n {item.label}\n {item.columns && (\n <ChevronDown\n className={cn(\n 'h-4 w-4 transition-transform',\n activeItem === item.label && 'rotate-180'\n )}\n />\n )}\n </Button>\n )}\n\n {item.columns && activeItem === item.label && (\n <div\n className=\"absolute left-0 right-0 top-full border-b bg-background shadow-lg\"\n onMouseEnter={() => handleMouseEnter(item.label)}\n onMouseLeave={handleMouseLeave}\n >\n <div className=\"mx-auto max-w-7xl p-6\">\n <div\n className=\"grid gap-8\"\n style={{\n gridTemplateColumns: `repeat(${item.columns.length}, minmax(0, 1fr))`,\n }}\n >\n {item.columns.map((column, colIndex) => (\n <div key={colIndex}>\n {column.title && (\n <h3 className=\"mb-4 text-sm font-semibold text-foreground\">\n {column.title}\n </h3>\n )}\n {column.sections.map((section, secIndex) => (\n <div key={secIndex} className=\"mb-4\">\n {section.title && (\n <h4 className=\"mb-2 text-xs font-medium uppercase tracking-wider text-muted-foreground\">\n {section.title}\n </h4>\n )}\n <ul className=\"space-y-1\">\n {section.links.map((link, linkIndex) => (\n <li key={linkIndex}>\n <a\n href={link.href}\n className=\"group flex items-start gap-3 rounded-md p-2 transition-colors hover:bg-accent\"\n >\n {link.icon && (\n <span className=\"mt-0.5 text-muted-foreground group-hover:text-foreground\">\n {link.icon}\n </span>\n )}\n <div>\n <span className=\"block text-sm font-medium\">\n {link.label}\n </span>\n {link.description && (\n <span className=\"block text-xs text-muted-foreground\">\n {link.description}\n </span>\n )}\n </div>\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n {column.featured && (\n <div className=\"mt-4 rounded-lg bg-muted p-4\">\n {column.featured}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n )}\n </li>\n ))}\n </ul>\n\n {rightContent && <div className=\"flex items-center gap-2\">{rightContent}</div>}\n </div>\n </nav>\n )\n }\n)\nMegaMenu.displayName = 'MegaMenu'\n\nexport { MegaMenu }\n","import * as React from 'react'\nimport { cn } from '@/utils/cn'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\n\nexport interface MultiLevelDropdownItem {\n label: string\n icon?: React.ReactNode\n href?: string\n onClick?: () => void\n disabled?: boolean\n children?: MultiLevelDropdownItem[]\n separator?: boolean\n}\n\nexport interface MultiLevelDropdownProps {\n trigger: React.ReactNode\n items: MultiLevelDropdownItem[]\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'right' | 'bottom' | 'left'\n className?: string\n}\n\nfunction renderDropdownItems(items: MultiLevelDropdownItem[]) {\n return items.map((item, index) => {\n if (item.separator) {\n return <DropdownMenuSeparator key={`separator-${index}`} />\n }\n\n if (item.children && item.children.length > 0) {\n return (\n <DropdownMenuSub key={item.label}>\n <DropdownMenuSubTrigger disabled={item.disabled} className=\"flex items-center gap-2\">\n {item.icon && <span className=\"h-4 w-4\">{item.icon}</span>}\n {item.label}\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n {renderDropdownItems(item.children)}\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n )\n }\n\n const handleClick = () => {\n if (item.onClick) {\n item.onClick()\n }\n }\n\n if (item.href) {\n return (\n <DropdownMenuItem key={item.label} disabled={item.disabled} asChild>\n <a href={item.href} className=\"flex items-center gap-2\">\n {item.icon && <span className=\"h-4 w-4\">{item.icon}</span>}\n {item.label}\n </a>\n </DropdownMenuItem>\n )\n }\n\n return (\n <DropdownMenuItem\n key={item.label}\n disabled={item.disabled}\n onClick={handleClick}\n className=\"flex items-center gap-2\"\n >\n {item.icon && <span className=\"h-4 w-4\">{item.icon}</span>}\n {item.label}\n </DropdownMenuItem>\n )\n })\n}\n\nconst MultiLevelDropdown = React.forwardRef<HTMLDivElement, MultiLevelDropdownProps>(\n ({ trigger, items, align = 'start', side = 'bottom', className }, ref) => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent ref={ref} align={align} side={side} className={cn('w-56', className)}>\n {renderDropdownItems(items)}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n }\n)\nMultiLevelDropdown.displayName = 'MultiLevelDropdown'\n\nexport { MultiLevelDropdown }\n","import * as React from 'react'\nimport { cn } from '@/utils/cn'\nimport { Badge } from '@/components/ui/badge'\n\nexport interface TabItem {\n id: string\n label: string\n icon?: React.ReactNode\n badge?: string | number\n disabled?: boolean\n}\n\nexport interface TabNavigationProps extends React.HTMLAttributes<HTMLDivElement> {\n tabs: TabItem[]\n activeTab?: string\n onTabChange?: (tabId: string) => void\n variant?: 'default' | 'pills' | 'underline' | 'boxed'\n size?: 'sm' | 'md' | 'lg'\n fullWidth?: boolean\n}\n\nconst TabNavigation = React.forwardRef<HTMLDivElement, TabNavigationProps>(\n (\n {\n className,\n tabs,\n activeTab,\n onTabChange,\n variant = 'default',\n size = 'md',\n fullWidth = false,\n ...props\n },\n ref\n ) => {\n const [internalActiveTab, setInternalActiveTab] = React.useState(tabs[0]?.id)\n const currentTab = activeTab ?? internalActiveTab\n\n const handleTabClick = (tabId: string) => {\n if (onTabChange) {\n onTabChange(tabId)\n } else {\n setInternalActiveTab(tabId)\n }\n }\n\n const sizeClasses = {\n sm: 'text-xs py-1 px-2',\n md: 'text-sm py-2 px-3',\n lg: 'text-base py-3 px-4',\n }\n\n const getVariantClasses = (isActive: boolean) => {\n const baseClasses = 'flex items-center gap-2 font-medium transition-colors'\n\n switch (variant) {\n case 'pills':\n return cn(\n baseClasses,\n 'rounded-full',\n isActive\n ? 'bg-primary text-primary-foreground'\n : 'text-muted-foreground hover:bg-muted hover:text-foreground'\n )\n case 'underline':\n return cn(\n baseClasses,\n 'border-b-2 rounded-none',\n isActive\n ? 'border-primary text-primary'\n : 'border-transparent text-muted-foreground hover:border-border hover:text-foreground'\n )\n case 'boxed':\n return cn(\n baseClasses,\n 'rounded-lg border',\n isActive\n ? 'border-primary bg-primary/10 text-primary'\n : 'border-transparent text-muted-foreground hover:bg-muted hover:text-foreground'\n )\n default:\n return cn(\n baseClasses,\n 'rounded-md',\n isActive\n ? 'bg-muted text-foreground'\n : 'text-muted-foreground hover:bg-muted/50 hover:text-foreground'\n )\n }\n }\n\n const containerClasses = cn(\n 'flex items-center gap-1',\n variant === 'underline' && 'border-b',\n fullWidth && 'w-full',\n className\n )\n\n return (\n <div ref={ref} className={containerClasses} role=\"tablist\" {...props}>\n {tabs.map((tab) => {\n const isActive = currentTab === tab.id\n\n return (\n <button\n key={tab.id}\n role=\"tab\"\n aria-selected={isActive}\n aria-disabled={tab.disabled}\n disabled={tab.disabled}\n onClick={() => handleTabClick(tab.id)}\n className={cn(\n getVariantClasses(isActive),\n sizeClasses[size],\n fullWidth && 'flex-1 justify-center',\n tab.disabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {tab.icon && <span className=\"h-4 w-4\">{tab.icon}</span>}\n <span>{tab.label}</span>\n {tab.badge !== undefined && (\n <Badge\n variant={isActive ? 'default' : 'secondary'}\n className=\"ml-1 h-5 min-w-5 rounded-full px-1.5 text-xs\"\n >\n {tab.badge}\n </Badge>\n )}\n </button>\n )\n })}\n </div>\n )\n }\n)\nTabNavigation.displayName = 'TabNavigation'\n\nexport { TabNavigation }\n","import * as React from 'react'\nimport { Plus, ChevronDown } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n DropdownMenuGroup,\n} from '@/components/ui/dropdown-menu'\n\nexport interface QuickCreateItem {\n id: string\n label: string\n icon?: React.ReactNode\n description?: string\n onClick: () => void\n shortcut?: string\n}\n\nexport interface QuickCreateGroup {\n label?: string\n items: QuickCreateItem[]\n}\n\nexport interface QuickCreateMenuProps {\n groups: QuickCreateGroup[]\n label?: string\n variant?: 'default' | 'outline' | 'ghost'\n size?: 'default' | 'sm' | 'lg' | 'icon'\n className?: string\n align?: 'start' | 'center' | 'end'\n}\n\nconst QuickCreateMenu = React.forwardRef<HTMLButtonElement, QuickCreateMenuProps>(\n (\n {\n groups,\n label = 'Create',\n variant = 'default',\n size = 'default',\n className,\n align = 'end',\n },\n ref\n ) => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button ref={ref} variant={variant} size={size} className={cn('gap-1', className)}>\n <Plus className=\"h-4 w-4\" />\n {size !== 'icon' && (\n <>\n <span>{label}</span>\n <ChevronDown className=\"h-3 w-3 opacity-50\" />\n </>\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align={align} className=\"w-64\">\n {groups.map((group, groupIndex) => (\n <React.Fragment key={groupIndex}>\n {groupIndex > 0 && <DropdownMenuSeparator />}\n {group.label && <DropdownMenuLabel>{group.label}</DropdownMenuLabel>}\n <DropdownMenuGroup>\n {group.items.map((item) => (\n <DropdownMenuItem\n key={item.id}\n onClick={item.onClick}\n className=\"flex items-start gap-3 py-2\"\n >\n {item.icon && (\n <span className=\"mt-0.5 flex h-5 w-5 items-center justify-center text-muted-foreground\">\n {item.icon}\n </span>\n )}\n <div className=\"flex flex-1 flex-col gap-0.5\">\n <span className=\"font-medium\">{item.label}</span>\n {item.description && (\n <span className=\"text-xs text-muted-foreground\">{item.description}</span>\n )}\n </div>\n {item.shortcut && (\n <kbd className=\"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100\">\n {item.shortcut}\n </kbd>\n )}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n </React.Fragment>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n }\n)\nQuickCreateMenu.displayName = 'QuickCreateMenu'\n\nexport { QuickCreateMenu }\n","import * as React from 'react'\nimport { Search, Loader2 } from 'lucide-react'\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from '@/components/ui/command'\n\nexport interface CommandAction {\n id: string\n label: string\n icon?: React.ReactNode\n shortcut?: string\n keywords?: string[]\n onSelect: () => void\n disabled?: boolean\n}\n\nexport interface CommandPaletteGroup {\n heading: string\n actions: CommandAction[]\n}\n\nexport interface CommandPaletteProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n groups: CommandPaletteGroup[]\n placeholder?: string\n emptyMessage?: string\n loading?: boolean\n onSearch?: (query: string) => void\n}\n\nconst CommandPalette = React.forwardRef<HTMLDivElement, CommandPaletteProps>(\n (\n {\n open,\n onOpenChange,\n groups,\n placeholder = 'Type a command or search...',\n emptyMessage = 'No results found.',\n loading = false,\n onSearch,\n },\n ref\n ) => {\n const [search, setSearch] = React.useState('')\n\n React.useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n onOpenChange(!open)\n }\n }\n\n document.addEventListener('keydown', down)\n return () => document.removeEventListener('keydown', down)\n }, [open, onOpenChange])\n\n const handleValueChange = (value: string) => {\n setSearch(value)\n onSearch?.(value)\n }\n\n return (\n <CommandDialog open={open} onOpenChange={onOpenChange}>\n <Command ref={ref} className=\"rounded-lg border shadow-md\">\n <div className=\"flex items-center border-b px-3\">\n {loading ? (\n <Loader2 className=\"mr-2 h-4 w-4 shrink-0 animate-spin opacity-50\" />\n ) : (\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n )}\n <CommandInput\n placeholder={placeholder}\n value={search}\n onValueChange={handleValueChange}\n className=\"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n />\n </div>\n <CommandList>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n {groups.map((group, groupIndex) => (\n <React.Fragment key={group.heading}>\n {groupIndex > 0 && <CommandSeparator />}\n <CommandGroup heading={group.heading}>\n {group.actions.map((action) => (\n <CommandItem\n key={action.id}\n value={action.id}\n keywords={action.keywords}\n onSelect={() => {\n action.onSelect()\n onOpenChange(false)\n }}\n disabled={action.disabled}\n className=\"flex items-center gap-2\"\n >\n {action.icon && (\n <span className=\"flex h-5 w-5 items-center justify-center\">\n {action.icon}\n </span>\n )}\n <span>{action.label}</span>\n {action.shortcut && (\n <CommandShortcut>{action.shortcut}</CommandShortcut>\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n </React.Fragment>\n ))}\n </CommandList>\n </Command>\n </CommandDialog>\n )\n }\n)\nCommandPalette.displayName = 'CommandPalette'\n\nexport { CommandPalette }\n","import * as React from 'react'\nimport { Search, Loader2, History, TrendingUp } from 'lucide-react'\nimport { cn } from '@/utils/cn'\nimport { Input } from '@/components/ui/input'\nimport { Button } from '@/components/ui/button'\nimport { ScrollArea } from '@/components/ui/scroll-area'\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@/components/ui/popover'\n\nexport interface SearchResult {\n id: string\n title: string\n description?: string\n type?: string\n icon?: React.ReactNode\n href?: string\n onClick?: () => void\n}\n\nexport interface GlobalSearchProps extends React.HTMLAttributes<HTMLDivElement> {\n onSearch: (query: string) => Promise<SearchResult[]> | SearchResult[]\n recentSearches?: string[]\n onRecentSearchClick?: (query: string) => void\n onClearRecent?: () => void\n trendingSearches?: string[]\n placeholder?: string\n shortcut?: string\n debounceMs?: number\n}\n\nconst GlobalSearch = React.forwardRef<HTMLDivElement, GlobalSearchProps>(\n (\n {\n className,\n onSearch,\n recentSearches = [],\n onRecentSearchClick,\n onClearRecent,\n trendingSearches = [],\n placeholder = 'Search...',\n shortcut = '⌘K',\n debounceMs = 300,\n ...props\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const [query, setQuery] = React.useState('')\n const [results, setResults] = React.useState<SearchResult[]>([])\n const [loading, setLoading] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const debounceRef = React.useRef<NodeJS.Timeout | null>(null)\n\n React.useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n setOpen(true)\n setTimeout(() => inputRef.current?.focus(), 0)\n }\n }\n\n document.addEventListener('keydown', down)\n return () => document.removeEventListener('keydown', down)\n }, [])\n\n const handleSearch = React.useCallback(\n async (searchQuery: string) => {\n setQuery(searchQuery)\n\n if (debounceRef.current) {\n clearTimeout(debounceRef.current)\n }\n\n if (!searchQuery.trim()) {\n setResults([])\n return\n }\n\n debounceRef.current = setTimeout(async () => {\n setLoading(true)\n try {\n const searchResults = await onSearch(searchQuery)\n setResults(searchResults)\n } catch {\n setResults([])\n } finally {\n setLoading(false)\n }\n }, debounceMs)\n },\n [onSearch, debounceMs]\n )\n\n const handleResultClick = (result: SearchResult) => {\n if (result.onClick) {\n result.onClick()\n }\n setOpen(false)\n setQuery('')\n setResults([])\n }\n\n const handleRecentClick = (recentQuery: string) => {\n onRecentSearchClick?.(recentQuery)\n setQuery(recentQuery)\n handleSearch(recentQuery)\n }\n\n const showRecent = !query && recentSearches.length > 0\n const showTrending = !query && trendingSearches.length > 0\n\n return (\n <div ref={ref} className={cn('relative', className)} {...props}>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <div className=\"relative cursor-pointer\" onClick={() => setOpen(true)}>\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n ref={inputRef}\n type=\"text\"\n placeholder={placeholder}\n value={query}\n onChange={(e) => handleSearch(e.target.value)}\n className=\"w-full pl-10 pr-16\"\n />\n <kbd className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded border bg-muted px-1.5 py-0.5 text-xs text-muted-foreground\">\n {shortcut}\n </kbd>\n </div>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <ScrollArea className=\"max-h-80\">\n {loading && (\n <div className=\"flex items-center justify-center p-4\">\n <Loader2 className=\"h-5 w-5 animate-spin text-muted-foreground\" />\n </div>\n )}\n\n {!loading && results.length > 0 && (\n <div className=\"p-2\">\n <p className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">\n Results\n </p>\n {results.map((result) => (\n <button\n key={result.id}\n onClick={() => handleResultClick(result)}\n className=\"flex w-full items-center gap-3 rounded-md p-2 text-left transition-colors hover:bg-accent\"\n >\n {result.icon && (\n <span className=\"flex h-8 w-8 items-center justify-center rounded-md bg-muted\">\n {result.icon}\n </span>\n )}\n <div className=\"flex-1 overflow-hidden\">\n <p className=\"truncate font-medium\">{result.title}</p>\n {result.description && (\n <p className=\"truncate text-xs text-muted-foreground\">\n {result.description}\n </p>\n )}\n </div>\n {result.type && (\n <span className=\"text-xs text-muted-foreground\">{result.type}</span>\n )}\n </button>\n ))}\n </div>\n )}\n\n {!loading && query && results.length === 0 && (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n No results found for "{query}"\n </div>\n )}\n\n {showRecent && (\n <div className=\"p-2\">\n <div className=\"flex items-center justify-between px-2 py-1.5\">\n <p className=\"text-xs font-medium text-muted-foreground\">Recent</p>\n {onClearRecent && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-auto p-0 text-xs\"\n onClick={onClearRecent}\n >\n Clear\n </Button>\n )}\n </div>\n {recentSearches.map((recent, index) => (\n <button\n key={index}\n onClick={() => handleRecentClick(recent)}\n className=\"flex w-full items-center gap-2 rounded-md p-2 text-left text-sm transition-colors hover:bg-accent\"\n >\n <History className=\"h-4 w-4 text-muted-foreground\" />\n {recent}\n </button>\n ))}\n </div>\n )}\n\n {showTrending && (\n <div className=\"border-t p-2\">\n <p className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">\n Trending\n </p>\n {trendingSearches.map((trending, index) => (\n <button\n key={index}\n onClick={() => handleRecentClick(trending)}\n className=\"flex w-full items-center gap-2 rounded-md p-2 text-left text-sm transition-colors hover:bg-accent\"\n >\n <TrendingUp className=\"h-4 w-4 text-muted-foreground\" />\n {trending}\n </button>\n ))}\n </div>\n )}\n </ScrollArea>\n </PopoverContent>\n </Popover>\n </div>\n )\n }\n)\nGlobalSearch.displayName = 'GlobalSearch'\n\nexport { GlobalSearch }\n"],"names":["Bell","createLucideIcon","History","Menu","PanelLeft","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","jsxs","SidebarTrigger","onClick","Button","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbPage","BreadcrumbSeparator","ChevronRight","BreadcrumbEllipsis","MoreHorizontal","TopNav","logo","onMenuClick","showSearch","searchPlaceholder","onSearch","user","userMenuItems","notificationCount","onNotificationClick","rightContent","searchValue","setSearchValue","handleSearchSubmit","e","Search","Input","DropdownMenu","DropdownMenuTrigger","Avatar","AvatarImage","AvatarFallback","DropdownMenuContent","DropdownMenuLabel","Fragment","DropdownMenuSeparator","item","index","DropdownMenuItem","MegaMenu","items","activeItem","setActiveItem","timeoutRef","handleMouseEnter","label","handleMouseLeave","ChevronDown","column","colIndex","section","secIndex","link","linkIndex","renderDropdownItems","DropdownMenuSub","DropdownMenuSubTrigger","DropdownMenuSubContent","handleClick","MultiLevelDropdown","trigger","align","TabNavigation","tabs","activeTab","onTabChange","fullWidth","internalActiveTab","setInternalActiveTab","currentTab","handleTabClick","tabId","sizeClasses","getVariantClasses","baseClasses","containerClasses","tab","Badge","QuickCreateMenu","groups","Plus","group","groupIndex","DropdownMenuGroup","CommandPalette","onOpenChange","placeholder","emptyMessage","loading","search","setSearch","down","handleValueChange","CommandDialog","Command","Loader2","CommandInput","CommandList","CommandEmpty","CommandSeparator","CommandGroup","action","CommandItem","CommandShortcut","GlobalSearch","recentSearches","onRecentSearchClick","onClearRecent","trendingSearches","shortcut","debounceMs","query","setQuery","results","setResults","setLoading","inputRef","debounceRef","handleSearch","searchQuery","searchResults","handleResultClick","result","handleRecentClick","recentQuery","showRecent","showTrending","Popover","PopoverTrigger","PopoverContent","ScrollArea","recent","trending","TrendingUp"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|