@alfadocs/ui-kit 0.1.4 → 0.1.5
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/_chunks/{agenda-card-C_hQGErS.js → agenda-card-DIWDvWum.js} +10 -10
- package/dist/_chunks/agenda-card-DIWDvWum.js.map +1 -0
- package/dist/_chunks/{agenda-tray-CBaVMJLO.js → agenda-tray-BqQZwiHc.js} +5 -5
- package/dist/_chunks/{agenda-tray-CBaVMJLO.js.map → agenda-tray-BqQZwiHc.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-K94oVLG2.js → ai-prompt-input-CI27KmZ1.js} +4 -4
- package/dist/_chunks/ai-prompt-input-CI27KmZ1.js.map +1 -0
- package/dist/_chunks/{alert-rOM4EG0P.js → alert-BlOUMkXj.js} +39 -39
- package/dist/_chunks/alert-BlOUMkXj.js.map +1 -0
- package/dist/_chunks/{audio-recorder-Cn8z2zC9.js → audio-recorder-B-8SKgKn.js} +5 -5
- package/dist/_chunks/{audio-recorder-Cn8z2zC9.js.map → audio-recorder-B-8SKgKn.js.map} +1 -1
- package/dist/_chunks/{autocomplete.agent-DRrp-Rsx.js → autocomplete.agent-DqOy0_1P.js} +31 -31
- package/dist/_chunks/autocomplete.agent-DqOy0_1P.js.map +1 -0
- package/dist/_chunks/{avatar-Biffh-_H.js → avatar-Dcr6XuDQ.js} +19 -19
- package/dist/_chunks/avatar-Dcr6XuDQ.js.map +1 -0
- package/dist/_chunks/{balance-cell-renderer-CiyezQhi.js → balance-cell-renderer-BRWt3neo.js} +166 -166
- package/dist/_chunks/balance-cell-renderer-BRWt3neo.js.map +1 -0
- package/dist/_chunks/breadcrumb-D6xpsP7n.js +293 -0
- package/dist/_chunks/breadcrumb-D6xpsP7n.js.map +1 -0
- package/dist/_chunks/{button-7dTew-IV.js → button-7mLWcMp_.js} +9 -9
- package/dist/_chunks/{button-7dTew-IV.js.map → button-7mLWcMp_.js.map} +1 -1
- package/dist/_chunks/{calendar-BkDeDTaX.js → calendar-nGEgelJs.js} +100 -100
- package/dist/_chunks/calendar-nGEgelJs.js.map +1 -0
- package/dist/_chunks/{chat-input-xiBIujMv.js → chat-input-DsIrWM4f.js} +2 -2
- package/dist/_chunks/{chat-input-xiBIujMv.js.map → chat-input-DsIrWM4f.js.map} +1 -1
- package/dist/_chunks/{chat-message-BtxUyugB.js → chat-message-ByouZpPP.js} +3 -3
- package/dist/_chunks/{chat-message-BtxUyugB.js.map → chat-message-ByouZpPP.js.map} +1 -1
- package/dist/_chunks/{checkbox-Ni6C_KJg.js → checkbox-DNK4qS2_.js} +13 -13
- package/dist/_chunks/checkbox-DNK4qS2_.js.map +1 -0
- package/dist/_chunks/{checkbox-group-BFZ4oN5t.js → checkbox-group-CWpGZEF6.js} +13 -13
- package/dist/_chunks/checkbox-group-CWpGZEF6.js.map +1 -0
- package/dist/_chunks/{collapsible-fFMqzpdL.js → collapsible-D4LOdLxp.js} +18 -18
- package/dist/_chunks/collapsible-D4LOdLxp.js.map +1 -0
- package/dist/_chunks/{color-picker-Cl3KdjJd.js → color-picker-e9PmpaGH.js} +161 -161
- package/dist/_chunks/color-picker-e9PmpaGH.js.map +1 -0
- package/dist/_chunks/{combobox.agent-DjdivI3X.js → combobox.agent-ByobCLJ_.js} +28 -28
- package/dist/_chunks/combobox.agent-ByobCLJ_.js.map +1 -0
- package/dist/_chunks/{command-palette.agent-BUjzr2ET.js → command-palette.agent-js2rxgeR.js} +117 -117
- package/dist/_chunks/command-palette.agent-js2rxgeR.js.map +1 -0
- package/dist/_chunks/{description-list-C_1NX8P3.js → description-list-DvJbp6Yg.js} +2 -2
- package/dist/_chunks/{description-list-C_1NX8P3.js.map → description-list-DvJbp6Yg.js.map} +1 -1
- package/dist/_chunks/{dialog.agent-C2lP9H0h.js → dialog.agent-DEG_fVzG.js} +42 -42
- package/dist/_chunks/dialog.agent-DEG_fVzG.js.map +1 -0
- package/dist/_chunks/{dropdown-menu-2HgU1Emf.js → dropdown-menu-JNo66A-j.js} +2 -2
- package/dist/_chunks/dropdown-menu-JNo66A-j.js.map +1 -0
- package/dist/_chunks/{empty-state-BHrItOiE.js → empty-state-DQPtRp2b.js} +2 -2
- package/dist/_chunks/{empty-state-BHrItOiE.js.map → empty-state-DQPtRp2b.js.map} +1 -1
- package/dist/_chunks/{file-upload.agent-LlC0W468.js → file-upload.agent-B9AN82LA.js} +2 -2
- package/dist/_chunks/{file-upload.agent-LlC0W468.js.map → file-upload.agent-B9AN82LA.js.map} +1 -1
- package/dist/_chunks/{freemium-paywall-Dr9aOtOC.js → freemium-paywall-CkefGLM_.js} +4 -4
- package/dist/_chunks/{freemium-paywall-Dr9aOtOC.js.map → freemium-paywall-CkefGLM_.js.map} +1 -1
- package/dist/_chunks/{header-BpU9U-1X.js → header-BGn1mRp8.js} +2 -2
- package/dist/_chunks/{header-BpU9U-1X.js.map → header-BGn1mRp8.js.map} +1 -1
- package/dist/_chunks/{icon-button-CNjWCD1X.js → icon-button-Wnnde5lc.js} +6 -6
- package/dist/_chunks/icon-button-Wnnde5lc.js.map +1 -0
- package/dist/_chunks/input-surface-u4QB0lxe.js +32 -0
- package/dist/_chunks/input-surface-u4QB0lxe.js.map +1 -0
- package/dist/_chunks/{key-value-pair-C9hpjC_B.js → key-value-pair-JRFS9Xrh.js} +10 -10
- package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +1 -0
- package/dist/_chunks/{leo-sidebar-CNjZqljo.js → leo-sidebar-BzN4pJ7j.js} +16 -16
- package/dist/_chunks/leo-sidebar-BzN4pJ7j.js.map +1 -0
- package/dist/_chunks/{message-card-CZzNO4ov.js → message-card-qAp2-WQK.js} +12 -12
- package/dist/_chunks/message-card-qAp2-WQK.js.map +1 -0
- package/dist/_chunks/{message-tray-BWbjXW3F.js → message-tray-VaLpQU5t.js} +5 -5
- package/dist/_chunks/{message-tray-BWbjXW3F.js.map → message-tray-VaLpQU5t.js.map} +1 -1
- package/dist/_chunks/{multi-select.agent-BSGEW10d.js → multi-select.agent-CNsyW3n9.js} +66 -66
- package/dist/_chunks/multi-select.agent-CNsyW3n9.js.map +1 -0
- package/dist/_chunks/navigation-menu-EVFau1O2.js +180 -0
- package/dist/_chunks/navigation-menu-EVFau1O2.js.map +1 -0
- package/dist/_chunks/{notification-card-DgW-vVg-.js → notification-card-BF2_veHy.js} +11 -11
- package/dist/_chunks/notification-card-BF2_veHy.js.map +1 -0
- package/dist/_chunks/{notification-tray-CKUgl2jc.js → notification-tray-Bq-08ReD.js} +5 -5
- package/dist/_chunks/{notification-tray-CKUgl2jc.js.map → notification-tray-Bq-08ReD.js.map} +1 -1
- package/dist/_chunks/{number-input-BPPhekLu.js → number-input-DjpT_RXJ.js} +46 -46
- package/dist/_chunks/number-input-DjpT_RXJ.js.map +1 -0
- package/dist/_chunks/pagination.agent-oEaqmtx5.js +380 -0
- package/dist/_chunks/pagination.agent-oEaqmtx5.js.map +1 -0
- package/dist/_chunks/{password-input-DAT5HQth.js → password-input-DJDVznWH.js} +5 -5
- package/dist/_chunks/password-input-DJDVznWH.js.map +1 -0
- package/dist/_chunks/{patient-shell-BzHhg6uA.js → patient-shell-DP54y6rc.js} +5 -5
- package/dist/_chunks/{patient-shell-BzHhg6uA.js.map → patient-shell-DP54y6rc.js.map} +1 -1
- package/dist/_chunks/{payment-form-YlxrCpZQ.js → payment-form-hcl-gGrp.js} +2 -2
- package/dist/_chunks/{payment-form-YlxrCpZQ.js.map → payment-form-hcl-gGrp.js.map} +1 -1
- package/dist/_chunks/{pdf-viewer.agent-sMned5Xn.js → pdf-viewer.agent-CfIHhcHx.js} +3 -3
- package/dist/_chunks/{pdf-viewer.agent-sMned5Xn.js.map → pdf-viewer.agent-CfIHhcHx.js.map} +1 -1
- package/dist/_chunks/{phone-input-BuRe5PyI.js → phone-input-DE_39q65.js} +103 -103
- package/dist/_chunks/phone-input-DE_39q65.js.map +1 -0
- package/dist/_chunks/{popover-Ds1iOdiv.js → popover-DvAtFOi-.js} +2 -2
- package/dist/_chunks/{popover-Ds1iOdiv.js.map → popover-DvAtFOi-.js.map} +1 -1
- package/dist/_chunks/{privacy-lock-up2ervfF.js → privacy-lock-DS6QRo2N.js} +3 -3
- package/dist/_chunks/{privacy-lock-up2ervfF.js.map → privacy-lock-DS6QRo2N.js.map} +1 -1
- package/dist/_chunks/{progress-D4ELgHG3.js → progress-B4Of_pzz.js} +57 -57
- package/dist/_chunks/progress-B4Of_pzz.js.map +1 -0
- package/dist/_chunks/{radio-XSSNX3Af.js → radio-cs8N1wJi.js} +29 -29
- package/dist/_chunks/radio-cs8N1wJi.js.map +1 -0
- package/dist/_chunks/{radio-group-DBrUOPcy.js → radio-group-BIUbpWml.js} +3 -3
- package/dist/_chunks/radio-group-BIUbpWml.js.map +1 -0
- package/dist/_chunks/{scroll-area-HIq0hJyJ.js → scroll-area-DLr5w9Dd.js} +9 -9
- package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +1 -0
- package/dist/_chunks/{search-bar-9Zbew4yM.js → search-bar-fcGqDFW3.js} +30 -30
- package/dist/_chunks/{search-bar-9Zbew4yM.js.map → search-bar-fcGqDFW3.js.map} +1 -1
- package/dist/_chunks/{search-input-CtkWITO2.js → search-input-BVMCONyN.js} +2 -2
- package/dist/_chunks/{search-input-CtkWITO2.js.map → search-input-BVMCONyN.js.map} +1 -1
- package/dist/_chunks/{select-DdAOtomN.js → select-IY_JQa-F.js} +50 -50
- package/dist/_chunks/select-IY_JQa-F.js.map +1 -0
- package/dist/_chunks/{sheet-D7GRhnWw.js → sheet-BhNpLHc9.js} +8 -8
- package/dist/_chunks/sheet-BhNpLHc9.js.map +1 -0
- package/dist/_chunks/{sidebar-Dc2ffrbf.js → sidebar-OVzwN3jE.js} +294 -294
- package/dist/_chunks/sidebar-OVzwN3jE.js.map +1 -0
- package/dist/_chunks/{sign-in-with-alfadocs-button-BotwPDcW.js → sign-in-with-alfadocs-button-BN_FPGHT.js} +2 -2
- package/dist/_chunks/{sign-in-with-alfadocs-button-BotwPDcW.js.map → sign-in-with-alfadocs-button-BN_FPGHT.js.map} +1 -1
- package/dist/_chunks/{skeleton-DAdPFx9d.js → skeleton-dtqyF09N.js} +8 -8
- package/dist/_chunks/skeleton-dtqyF09N.js.map +1 -0
- package/dist/_chunks/{slot-grid-WHc5A8-z.js → slot-grid-D_l5VsHG.js} +5 -5
- package/dist/_chunks/{slot-grid-WHc5A8-z.js.map → slot-grid-D_l5VsHG.js.map} +1 -1
- package/dist/_chunks/{stepper-accordion-2_7Pw0tC.js → stepper-accordion-CGog0JSF.js} +64 -64
- package/dist/_chunks/stepper-accordion-CGog0JSF.js.map +1 -0
- package/dist/_chunks/{stepper-calendar-CWZcFgt_.js → stepper-calendar-_fLOAjus.js} +7 -7
- package/dist/_chunks/{stepper-calendar-CWZcFgt_.js.map → stepper-calendar-_fLOAjus.js.map} +1 -1
- package/dist/_chunks/{switch-DhSORO9C.js → switch-aN2EYxHh.js} +4 -4
- package/dist/_chunks/switch-aN2EYxHh.js.map +1 -0
- package/dist/_chunks/{tabs.agent-BtaNGxRh.js → tabs.agent-BpbVA-Zh.js} +55 -55
- package/dist/_chunks/tabs.agent-BpbVA-Zh.js.map +1 -0
- package/dist/_chunks/{tag--uLKOb9f.js → tag-BqidXKo3.js} +2 -2
- package/dist/_chunks/tag-BqidXKo3.js.map +1 -0
- package/dist/_chunks/{task-card-BeSuntXP.js → task-card-yW7tKlG4.js} +17 -17
- package/dist/_chunks/task-card-yW7tKlG4.js.map +1 -0
- package/dist/_chunks/{task-tray-pRk6u8Ik.js → task-tray-BzahI5FQ.js} +5 -5
- package/dist/_chunks/{task-tray-pRk6u8Ik.js.map → task-tray-BzahI5FQ.js.map} +1 -1
- package/dist/_chunks/{text-area-xf9-6iDf.js → text-area-DmKSd2DG.js} +2 -2
- package/dist/_chunks/text-area-DmKSd2DG.js.map +1 -0
- package/dist/_chunks/{text-input-exh7VD7D.js → text-input-CRHvl5zk.js} +19 -19
- package/dist/_chunks/text-input-CRHvl5zk.js.map +1 -0
- package/dist/_chunks/{theme-toggle-CJgA6G24.js → theme-toggle-COHFwO2H.js} +4 -4
- package/dist/_chunks/{theme-toggle-CJgA6G24.js.map → theme-toggle-COHFwO2H.js.map} +1 -1
- package/dist/_chunks/{timeline-DIueH4TJ.js → timeline-RgAIzpMd.js} +2 -2
- package/dist/_chunks/{timeline-DIueH4TJ.js.map → timeline-RgAIzpMd.js.map} +1 -1
- package/dist/_chunks/{toast-q0SlabGr.js → toast-lOhJDKOH.js} +12 -12
- package/dist/_chunks/{toast-q0SlabGr.js.map → toast-lOhJDKOH.js.map} +1 -1
- package/dist/_chunks/{transcript-panel-DFnhbrlQ.js → transcript-panel-CNbVGG9L.js} +59 -59
- package/dist/_chunks/transcript-panel-CNbVGG9L.js.map +1 -0
- package/dist/_chunks/{visually-hidden-BlkhaZWe.js → visually-hidden-Bw7vBHLm.js} +6 -6
- package/dist/_chunks/{visually-hidden-BlkhaZWe.js.map → visually-hidden-Bw7vBHLm.js.map} +1 -1
- package/dist/_chunks/{warning-stack-DCmO0R07.js → warning-stack-8Pa3pekh.js} +24 -24
- package/dist/_chunks/warning-stack-8Pa3pekh.js.map +1 -0
- package/dist/_chunks/{workflow-map-CAM6Uy_J.js → workflow-map-DGJwVcO-.js} +106 -106
- package/dist/_chunks/workflow-map-DGJwVcO-.js.map +1 -0
- package/dist/agent-catalog.json +1 -1
- package/dist/components/_shared/input-surface.d.ts +11 -11
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox-group/index.js +1 -1
- package/dist/components/collapsible/index.js +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/empty-state/index.js +1 -1
- package/dist/components/file-upload/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/icon-button/index.js +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/navigation-menu/index.js +1 -1
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/number-input/index.js +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/password-input/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/phone-input/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/progress/index.js +1 -1
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio-group/index.js +2 -2
- package/dist/components/scroll-area/index.js +1 -1
- package/dist/components/search-bar/index.js +1 -1
- package/dist/components/search-input/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/stepper-accordion/index.js +1 -1
- package/dist/components/stepper-calendar/index.js +1 -1
- package/dist/components/switch/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tag/index.js +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/text-area/index.js +1 -1
- package/dist/components/text-input/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/visually-hidden/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/index.js +72 -72
- package/dist/patterns/leo-assistant/index.js +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/agenda-card-C_hQGErS.js.map +0 -1
- package/dist/_chunks/ai-prompt-input-K94oVLG2.js.map +0 -1
- package/dist/_chunks/alert-rOM4EG0P.js.map +0 -1
- package/dist/_chunks/autocomplete.agent-DRrp-Rsx.js.map +0 -1
- package/dist/_chunks/avatar-Biffh-_H.js.map +0 -1
- package/dist/_chunks/balance-cell-renderer-CiyezQhi.js.map +0 -1
- package/dist/_chunks/breadcrumb-CcZovmIq.js +0 -293
- package/dist/_chunks/breadcrumb-CcZovmIq.js.map +0 -1
- package/dist/_chunks/calendar-BkDeDTaX.js.map +0 -1
- package/dist/_chunks/checkbox-Ni6C_KJg.js.map +0 -1
- package/dist/_chunks/checkbox-group-BFZ4oN5t.js.map +0 -1
- package/dist/_chunks/collapsible-fFMqzpdL.js.map +0 -1
- package/dist/_chunks/color-picker-Cl3KdjJd.js.map +0 -1
- package/dist/_chunks/combobox.agent-DjdivI3X.js.map +0 -1
- package/dist/_chunks/command-palette.agent-BUjzr2ET.js.map +0 -1
- package/dist/_chunks/dialog.agent-C2lP9H0h.js.map +0 -1
- package/dist/_chunks/dropdown-menu-2HgU1Emf.js.map +0 -1
- package/dist/_chunks/icon-button-CNjWCD1X.js.map +0 -1
- package/dist/_chunks/input-surface-D5OMCB1W.js +0 -32
- package/dist/_chunks/input-surface-D5OMCB1W.js.map +0 -1
- package/dist/_chunks/key-value-pair-C9hpjC_B.js.map +0 -1
- package/dist/_chunks/leo-sidebar-CNjZqljo.js.map +0 -1
- package/dist/_chunks/message-card-CZzNO4ov.js.map +0 -1
- package/dist/_chunks/multi-select.agent-BSGEW10d.js.map +0 -1
- package/dist/_chunks/navigation-menu-DxOMvrKM.js +0 -180
- package/dist/_chunks/navigation-menu-DxOMvrKM.js.map +0 -1
- package/dist/_chunks/notification-card-DgW-vVg-.js.map +0 -1
- package/dist/_chunks/number-input-BPPhekLu.js.map +0 -1
- package/dist/_chunks/pagination.agent-CmA0Ocr5.js +0 -380
- package/dist/_chunks/pagination.agent-CmA0Ocr5.js.map +0 -1
- package/dist/_chunks/password-input-DAT5HQth.js.map +0 -1
- package/dist/_chunks/phone-input-BuRe5PyI.js.map +0 -1
- package/dist/_chunks/progress-D4ELgHG3.js.map +0 -1
- package/dist/_chunks/radio-XSSNX3Af.js.map +0 -1
- package/dist/_chunks/radio-group-DBrUOPcy.js.map +0 -1
- package/dist/_chunks/scroll-area-HIq0hJyJ.js.map +0 -1
- package/dist/_chunks/select-DdAOtomN.js.map +0 -1
- package/dist/_chunks/sheet-D7GRhnWw.js.map +0 -1
- package/dist/_chunks/sidebar-Dc2ffrbf.js.map +0 -1
- package/dist/_chunks/skeleton-DAdPFx9d.js.map +0 -1
- package/dist/_chunks/stepper-accordion-2_7Pw0tC.js.map +0 -1
- package/dist/_chunks/switch-DhSORO9C.js.map +0 -1
- package/dist/_chunks/tabs.agent-BtaNGxRh.js.map +0 -1
- package/dist/_chunks/tag--uLKOb9f.js.map +0 -1
- package/dist/_chunks/task-card-BeSuntXP.js.map +0 -1
- package/dist/_chunks/text-area-xf9-6iDf.js.map +0 -1
- package/dist/_chunks/text-input-exh7VD7D.js.map +0 -1
- package/dist/_chunks/transcript-panel-DFnhbrlQ.js.map +0 -1
- package/dist/_chunks/warning-stack-DCmO0R07.js.map +0 -1
- package/dist/_chunks/workflow-map-CAM6Uy_J.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as r, jsxs as w } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as Fe, useContext as Ve, useState as T, useRef as M, useMemo as j, useLayoutEffect as De } from "react";
|
|
3
3
|
import * as E from "@radix-ui/react-popover";
|
|
4
|
-
import { _ as
|
|
4
|
+
import { _ as l } from "./index-4xgbg-sn.js";
|
|
5
5
|
import { c as re } from "./index-D2ZczOXr.js";
|
|
6
6
|
import { useTranslation as Le } from "react-i18next";
|
|
7
7
|
import { u as ze, F as Oe } from "./form-field-context-94LwgYTQ.js";
|
|
8
8
|
import { T as ee } from "./tooltip-DHik5yRI.js";
|
|
9
9
|
import { c as Me } from "./compose-refs-C0k0tdqF.js";
|
|
10
10
|
import { g as je } from "./group-options-BvKhQ3xb.js";
|
|
11
|
-
import { b as P, c as Pe } from "./input-surface-
|
|
11
|
+
import { b as P, c as Pe } from "./input-surface-u4QB0lxe.js";
|
|
12
12
|
import { X as $e } from "./x-CCcI3eJp.js";
|
|
13
13
|
import { C as qe } from "./check-DPdL_Sm7.js";
|
|
14
14
|
const Be = re(
|
|
@@ -49,37 +49,37 @@ const Be = re(
|
|
|
49
49
|
defaultVariants: { size: "md" }
|
|
50
50
|
}
|
|
51
51
|
), Ke = [
|
|
52
|
-
"inline-flex items-center justify-center shrink-0",
|
|
53
|
-
"rounded-[var(--radius-sm)]",
|
|
54
|
-
"text-muted-foreground hover:text-foreground",
|
|
55
|
-
"transition-colors duration-[var(--animation-duration)] motion-reduce:transition-none",
|
|
56
|
-
"focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid",
|
|
57
|
-
"focus-visible:outline-ring focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
58
|
-
"size-4",
|
|
59
|
-
'relative before:absolute before:inset-[calc((var(--min-target-size)-100%)/-2)] before:content-[""]'
|
|
52
|
+
"ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
|
|
53
|
+
"ds:rounded-[var(--radius-sm)]",
|
|
54
|
+
"ds:text-muted-foreground ds:hover:text-foreground",
|
|
55
|
+
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
|
|
56
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
57
|
+
"ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
58
|
+
"ds:size-4",
|
|
59
|
+
'ds:relative ds:before:absolute ds:before:inset-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""]'
|
|
60
60
|
].join(" "), Ue = [
|
|
61
|
-
"z-[var(--z-dropdown)] overflow-hidden",
|
|
62
|
-
"min-w-[var(--radix-popover-trigger-width)]",
|
|
63
|
-
"rounded-[var(--radius-md)] border border-border bg-background text-foreground",
|
|
64
|
-
"shadow-[var(--shadow-lg)]",
|
|
65
|
-
"animate-in fade-in zoom-in-95",
|
|
66
|
-
"data-[state=closed]:animate-out data-[state=closed]:fade-out",
|
|
67
|
-
"data-[state=closed]:zoom-out-95",
|
|
68
|
-
"data-[side=bottom]:slide-in-from-top-2",
|
|
69
|
-
"data-[side=top]:slide-in-from-bottom-2",
|
|
70
|
-
"motion-reduce:animate-none"
|
|
61
|
+
"ds:z-[var(--z-dropdown)] ds:overflow-hidden",
|
|
62
|
+
"ds:min-w-[var(--radix-popover-trigger-width)]",
|
|
63
|
+
"ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background ds:text-foreground",
|
|
64
|
+
"ds:shadow-[var(--shadow-lg)]",
|
|
65
|
+
"ds:animate-in ds:fade-in ds:zoom-in-95",
|
|
66
|
+
"ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out",
|
|
67
|
+
"ds:data-[state=closed]:zoom-out-95",
|
|
68
|
+
"ds:data-[side=bottom]:slide-in-from-top-2",
|
|
69
|
+
"ds:data-[side=top]:slide-in-from-bottom-2",
|
|
70
|
+
"ds:motion-reduce:animate-none"
|
|
71
71
|
].join(" "), Ye = [
|
|
72
|
-
"relative flex cursor-pointer items-center",
|
|
73
|
-
"rounded-[var(--radius-sm)] ps-2 pe-2 py-1.5",
|
|
74
|
-
"text-[var(--font-size-sm)] text-foreground outline-none select-none",
|
|
75
|
-
"data-[selected=true]:bg-muted data-[selected=true]:text-foreground",
|
|
76
|
-
"aria-[disabled=true]:pointer-events-none aria-[disabled=true]:opacity-50",
|
|
77
|
-
"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50"
|
|
72
|
+
"ds:relative ds:flex ds:cursor-pointer ds:items-center",
|
|
73
|
+
"ds:rounded-[var(--radius-sm)] ds:ps-2 ds:pe-2 ds:py-1.5",
|
|
74
|
+
"ds:text-[var(--font-size-sm)] ds:text-foreground ds:outline-none ds:select-none",
|
|
75
|
+
"ds:data-[selected=true]:bg-muted ds:data-[selected=true]:text-foreground",
|
|
76
|
+
"ds:aria-[disabled=true]:pointer-events-none ds:aria-[disabled=true]:opacity-50",
|
|
77
|
+
"ds:data-[disabled=true]:pointer-events-none ds:data-[disabled=true]:opacity-50"
|
|
78
78
|
].join(" "), se = [
|
|
79
|
-
"relative flex cursor-pointer items-center",
|
|
80
|
-
"rounded-[var(--radius-sm)] ps-2 pe-2 py-1.5",
|
|
81
|
-
"text-[var(--font-size-sm)] font-medium text-primary outline-none select-none",
|
|
82
|
-
"data-[selected=true]:bg-muted"
|
|
79
|
+
"ds:relative ds:flex ds:cursor-pointer ds:items-center",
|
|
80
|
+
"ds:rounded-[var(--radius-sm)] ds:ps-2 ds:pe-2 ds:py-1.5",
|
|
81
|
+
"ds:text-[var(--font-size-sm)] ds:font-medium ds:text-primary ds:outline-none ds:select-none",
|
|
82
|
+
"ds:data-[selected=true]:bg-muted"
|
|
83
83
|
].join(" "), Ge = "__ui-multiselect-select-all__", He = "__ui-multiselect-clear-all__", ne = Fe(
|
|
84
84
|
function({
|
|
85
85
|
options: p,
|
|
@@ -93,14 +93,14 @@ const Be = re(
|
|
|
93
93
|
allowClear: B = !1,
|
|
94
94
|
filter: D,
|
|
95
95
|
size: C = "md",
|
|
96
|
-
disabled:
|
|
97
|
-
className:
|
|
98
|
-
id:
|
|
96
|
+
disabled: de,
|
|
97
|
+
className: ae,
|
|
98
|
+
id: le,
|
|
99
99
|
...ue
|
|
100
100
|
}, ce) {
|
|
101
101
|
const { t: u } = Le(), b = ze(), x = Ve(Oe) !== null, [me, fe] = T(
|
|
102
102
|
oe ?? []
|
|
103
|
-
), K = $ !== void 0, n = K ? $ : me, [U, m] = T(!1), [g, Y] = T(""), v = M(null), y = M([]), G = M(null), pe = Me(ce, G), f = x && b.disabled || !!
|
|
103
|
+
), K = $ !== void 0, n = K ? $ : me, [U, m] = T(!1), [g, Y] = T(""), v = M(null), y = M([]), G = M(null), pe = Me(ce, G), f = x && b.disabled || !!de, he = x && b.required, H = x && b.invalid, be = x && b.describedBy ? b.describedBy : void 0, ge = le ?? (x ? b.id : void 0), ve = j(() => {
|
|
104
104
|
const e = /* @__PURE__ */ new Map();
|
|
105
105
|
for (const t of p) e.set(t.value, t.label);
|
|
106
106
|
return e;
|
|
@@ -132,10 +132,10 @@ const Be = re(
|
|
|
132
132
|
const t = e.currentTarget;
|
|
133
133
|
if (e.key === "Backspace" && g === "" && n.length > 0) {
|
|
134
134
|
e.preventDefault();
|
|
135
|
-
const i = n.length - 1,
|
|
136
|
-
|
|
135
|
+
const i = n.length - 1, a = L(i).length - 1;
|
|
136
|
+
a >= 0 && requestAnimationFrame(() => {
|
|
137
137
|
var c;
|
|
138
|
-
(c = y.current[
|
|
138
|
+
(c = y.current[a]) == null || c.focus();
|
|
139
139
|
});
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
@@ -144,8 +144,8 @@ const Be = re(
|
|
|
144
144
|
const i = document.dir === "rtl" || t.dir === "rtl";
|
|
145
145
|
if (i && e.key === "ArrowRight" || !i && e.key === "ArrowLeft") {
|
|
146
146
|
e.preventDefault();
|
|
147
|
-
const
|
|
148
|
-
(o = y.current[
|
|
147
|
+
const a = n.length - 1;
|
|
148
|
+
(o = y.current[a]) == null || o.focus();
|
|
149
149
|
}
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
@@ -155,7 +155,7 @@ const Be = re(
|
|
|
155
155
|
}
|
|
156
156
|
!U && (e.key === "ArrowDown" || e.key === "Enter") && m(!0);
|
|
157
157
|
}, Ae = (e) => (t) => {
|
|
158
|
-
var
|
|
158
|
+
var d, a, c, A;
|
|
159
159
|
if (t.key === "Backspace" || t.key === "Delete" || t.key === "Enter" || t.key === " ") {
|
|
160
160
|
t.preventDefault(), t.stopPropagation();
|
|
161
161
|
const R = L(e);
|
|
@@ -177,11 +177,11 @@ const Be = re(
|
|
|
177
177
|
if (t.key === o) {
|
|
178
178
|
t.preventDefault();
|
|
179
179
|
const R = Math.max(0, e - 1);
|
|
180
|
-
(
|
|
180
|
+
(d = y.current[R]) == null || d.focus();
|
|
181
181
|
return;
|
|
182
182
|
}
|
|
183
183
|
if (t.key === i) {
|
|
184
|
-
t.preventDefault(), e < n.length - 1 ? (
|
|
184
|
+
t.preventDefault(), e < n.length - 1 ? (a = y.current[e + 1]) == null || a.focus() : (c = v.current) == null || c.focus();
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
187
|
t.key === "Escape" && (m(!1), (A = v.current) == null || A.focus());
|
|
@@ -200,11 +200,11 @@ const Be = re(
|
|
|
200
200
|
return;
|
|
201
201
|
}
|
|
202
202
|
const i = o[0].offsetTop;
|
|
203
|
-
let
|
|
204
|
-
for (const
|
|
205
|
-
if (
|
|
203
|
+
let d = 0;
|
|
204
|
+
for (const a of o)
|
|
205
|
+
if (a.offsetTop === i) d++;
|
|
206
206
|
else break;
|
|
207
|
-
|
|
207
|
+
d === o.length ? z(Number.POSITIVE_INFINITY) : z(Math.max(1, d - 1));
|
|
208
208
|
};
|
|
209
209
|
t();
|
|
210
210
|
const s = new ResizeObserver(t);
|
|
@@ -228,12 +228,12 @@ const Be = re(
|
|
|
228
228
|
count: n.length,
|
|
229
229
|
defaultValue: `${n.length} selected`
|
|
230
230
|
}), { onClick: O, ...Te } = ue;
|
|
231
|
-
return /* @__PURE__ */ r(
|
|
231
|
+
return /* @__PURE__ */ r(l, { shouldFilter: !1, label: Re, children: /* @__PURE__ */ w(E.Root, { open: U, onOpenChange: _e, children: [
|
|
232
232
|
/* @__PURE__ */ r(E.Anchor, { asChild: !0, children: /* @__PURE__ */ w(
|
|
233
233
|
"div",
|
|
234
234
|
{
|
|
235
235
|
ref: pe,
|
|
236
|
-
className: Be({ size: C, className:
|
|
236
|
+
className: Be({ size: C, className: ae }),
|
|
237
237
|
"aria-disabled": f || void 0,
|
|
238
238
|
"aria-invalid": H || void 0,
|
|
239
239
|
"data-component": "multi-select",
|
|
@@ -304,7 +304,7 @@ const Be = re(
|
|
|
304
304
|
}
|
|
305
305
|
) : null,
|
|
306
306
|
/* @__PURE__ */ r(
|
|
307
|
-
|
|
307
|
+
l.Input,
|
|
308
308
|
{
|
|
309
309
|
ref: v,
|
|
310
310
|
value: g,
|
|
@@ -338,16 +338,16 @@ const Be = re(
|
|
|
338
338
|
sideOffset: 4,
|
|
339
339
|
className: Ue,
|
|
340
340
|
children: /* @__PURE__ */ w(
|
|
341
|
-
|
|
341
|
+
l.List,
|
|
342
342
|
{
|
|
343
343
|
role: "listbox",
|
|
344
344
|
"aria-multiselectable": "true",
|
|
345
345
|
"aria-label": Q,
|
|
346
346
|
className: "ds:max-h-[20rem] ds:overflow-y-auto ds:p-1",
|
|
347
347
|
children: [
|
|
348
|
-
Se ? /* @__PURE__ */ w(
|
|
348
|
+
Se ? /* @__PURE__ */ w(l.Group, { children: [
|
|
349
349
|
q ? /* @__PURE__ */ r(
|
|
350
|
-
|
|
350
|
+
l.Item,
|
|
351
351
|
{
|
|
352
352
|
value: Ge,
|
|
353
353
|
onSelect: we,
|
|
@@ -356,7 +356,7 @@ const Be = re(
|
|
|
356
356
|
}
|
|
357
357
|
) : null,
|
|
358
358
|
B ? /* @__PURE__ */ r(
|
|
359
|
-
|
|
359
|
+
l.Item,
|
|
360
360
|
{
|
|
361
361
|
value: He,
|
|
362
362
|
onSelect: xe,
|
|
@@ -365,18 +365,18 @@ const Be = re(
|
|
|
365
365
|
}
|
|
366
366
|
) : null
|
|
367
367
|
] }) : null,
|
|
368
|
-
/* @__PURE__ */ r(
|
|
368
|
+
/* @__PURE__ */ r(l.Empty, { className: "ds:ps-2 ds:pe-2 ds:py-2 type-body-sm ds:text-muted-foreground", children: u("ui.inputs.multiSelect.noOptions", "No options found") }),
|
|
369
369
|
Ie.map(({ group: e, items: t }, s) => {
|
|
370
370
|
const o = t.map((i) => {
|
|
371
|
-
const
|
|
372
|
-
|
|
371
|
+
const d = n.includes(i.value), a = !d && X, c = !!i.disabled || a, A = /* @__PURE__ */ w(
|
|
372
|
+
l.Item,
|
|
373
373
|
{
|
|
374
374
|
value: i.value,
|
|
375
375
|
disabled: c,
|
|
376
376
|
onSelect: () => {
|
|
377
377
|
c || ye(i.value);
|
|
378
378
|
},
|
|
379
|
-
"aria-selected":
|
|
379
|
+
"aria-selected": d,
|
|
380
380
|
"aria-disabled": c || void 0,
|
|
381
381
|
className: Ye,
|
|
382
382
|
children: [
|
|
@@ -386,10 +386,10 @@ const Be = re(
|
|
|
386
386
|
className: [
|
|
387
387
|
"ds:inline-flex ds:items-center ds:justify-center ds:me-2 ds:shrink-0",
|
|
388
388
|
"ds:size-4 ds:rounded-[var(--radius-sm)] ds:border ds:border-border",
|
|
389
|
-
|
|
389
|
+
d ? "ds:bg-primary ds:border-primary ds:text-primary-foreground" : "ds:bg-background"
|
|
390
390
|
].join(" "),
|
|
391
391
|
"aria-hidden": "true",
|
|
392
|
-
children:
|
|
392
|
+
children: d ? /* @__PURE__ */ r(qe, { className: "ds:size-3.5" }) : null
|
|
393
393
|
}
|
|
394
394
|
),
|
|
395
395
|
/* @__PURE__ */ r("span", { className: "ds:flex-1 ds:text-start", children: i.label })
|
|
@@ -397,7 +397,7 @@ const Be = re(
|
|
|
397
397
|
},
|
|
398
398
|
i.value
|
|
399
399
|
);
|
|
400
|
-
return
|
|
400
|
+
return a ? /* @__PURE__ */ r(
|
|
401
401
|
ee,
|
|
402
402
|
{
|
|
403
403
|
label: u("ui.inputs.multiSelect.maxReached", {
|
|
@@ -411,14 +411,14 @@ const Be = re(
|
|
|
411
411
|
) : A;
|
|
412
412
|
});
|
|
413
413
|
return e ? /* @__PURE__ */ r(
|
|
414
|
-
|
|
414
|
+
l.Group,
|
|
415
415
|
{
|
|
416
416
|
heading: e,
|
|
417
417
|
className: "ds:[&_[cmdk-group-heading]]:ps-2 ds:[&_[cmdk-group-heading]]:pe-2 ds:[&_[cmdk-group-heading]]:py-1 ds:[&_[cmdk-group-heading]]:type-eyebrow ds:[&_[cmdk-group-heading]]:text-muted-foreground",
|
|
418
418
|
children: o
|
|
419
419
|
},
|
|
420
420
|
`group-${e}`
|
|
421
|
-
) : /* @__PURE__ */ r(
|
|
421
|
+
) : /* @__PURE__ */ r(l.Group, { children: o }, `group-${s}`);
|
|
422
422
|
})
|
|
423
423
|
]
|
|
424
424
|
}
|
|
@@ -429,7 +429,7 @@ const Be = re(
|
|
|
429
429
|
}
|
|
430
430
|
);
|
|
431
431
|
ne.displayName = "MultiSelect";
|
|
432
|
-
const
|
|
432
|
+
const at = ne, lt = {
|
|
433
433
|
id: "multi-select",
|
|
434
434
|
capabilities: ["select_multiple", "filter", "open", "close"],
|
|
435
435
|
state: {},
|
|
@@ -443,8 +443,8 @@ const lt = ne, dt = {
|
|
|
443
443
|
}
|
|
444
444
|
};
|
|
445
445
|
export {
|
|
446
|
-
|
|
446
|
+
at as M,
|
|
447
447
|
Be as a,
|
|
448
|
-
|
|
448
|
+
lt as m
|
|
449
449
|
};
|
|
450
|
-
//# sourceMappingURL=multi-select.agent-
|
|
450
|
+
//# sourceMappingURL=multi-select.agent-CNsyW3n9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-select.agent-CNsyW3n9.js","sources":["../../src/components/multi-select/multi-select.tsx","../../src/components/multi-select/multi-select.agent.ts"],"sourcesContent":["import {\n forwardRef,\n useContext,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type Ref,\n} from 'react';\nimport * as Popover from '@radix-ui/react-popover';\nimport { Command } from 'cmdk';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Check, X } from 'lucide-react';\nimport {\n FormFieldContext,\n useFormField,\n} from '../form-field/form-field-context';\nimport { Tooltip } from '../tooltip';\nimport type { OptionShape } from '../_shared/option';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { groupOptions } from '../_shared/group-options';\nimport {\n INPUT_SURFACE_CHROME,\n INPUT_SURFACE_TEXT,\n} from '../_shared/input-surface';\n\n// MultiSelect uses `min-h-*` (not `h-*`) because the wrapper grows vertically\n// as chips wrap to additional lines. The height floor per size mirrors the\n// other inputs' fixed heights in _shared/input-surface.ts.\nconst multiSelectVariants = cva(\n [\n 'ds:inline-flex ds:flex-wrap ds:items-center ds:gap-1 ds:w-full',\n INPUT_SURFACE_CHROME,\n 'ds:aria-[invalid=true]:border-destructive',\n 'ds:aria-disabled:cursor-not-allowed ds:aria-disabled:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: `ds:min-h-8 ds:ps-2 ds:pe-2 ds:py-1 ${INPUT_SURFACE_TEXT.sm}`,\n md: `ds:min-h-[var(--min-target-size)] ds:ps-3 ds:pe-3 ds:py-1.5 ${INPUT_SURFACE_TEXT.md}`,\n lg: `ds:min-h-12 ds:ps-4 ds:pe-4 ds:py-2 ${INPUT_SURFACE_TEXT.lg}`,\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst chipVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-1',\n 'ds:rounded-[var(--radius-sm)] ds:border ds:border-border ds:bg-muted',\n 'ds:text-foreground ds:select-none',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ],\n {\n variants: {\n size: {\n sm: 'ds:ps-2 ds:pe-1 ds:py-0.5 ds:text-[length:var(--font-size-xs)]',\n md: 'ds:ps-2 ds:pe-1 ds:py-0.5 ds:text-[length:var(--font-size-sm)]',\n lg: 'ds:ps-3 ds:pe-1.5 ds:py-1 ds:text-[length:var(--font-size-base)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst chipDismissClasses = [\n 'ds:inline-flex ds:items-center ds:justify-center ds:shrink-0',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-muted-foreground ds:hover:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:size-4',\n 'ds:relative ds:before:absolute ds:before:inset-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"]',\n].join(' ');\n\nconst popoverContentClasses = [\n 'ds:z-[var(--z-dropdown)] ds:overflow-hidden',\n 'ds:min-w-[var(--radix-popover-trigger-width)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background ds:text-foreground',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95',\n 'ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out',\n 'ds:data-[state=closed]:zoom-out-95',\n 'ds:data-[side=bottom]:slide-in-from-top-2',\n 'ds:data-[side=top]:slide-in-from-bottom-2',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst commandItemClasses = [\n 'ds:relative ds:flex ds:cursor-pointer ds:items-center',\n 'ds:rounded-[var(--radius-sm)] ds:ps-2 ds:pe-2 ds:py-1.5',\n 'ds:text-[var(--font-size-sm)] ds:text-foreground ds:outline-none ds:select-none',\n 'ds:data-[selected=true]:bg-muted ds:data-[selected=true]:text-foreground',\n 'ds:aria-[disabled=true]:pointer-events-none ds:aria-[disabled=true]:opacity-50',\n 'ds:data-[disabled=true]:pointer-events-none ds:data-[disabled=true]:opacity-50',\n].join(' ');\n\nconst actionItemClasses = [\n 'ds:relative ds:flex ds:cursor-pointer ds:items-center',\n 'ds:rounded-[var(--radius-sm)] ds:ps-2 ds:pe-2 ds:py-1.5',\n 'ds:text-[var(--font-size-sm)] ds:font-medium ds:text-primary ds:outline-none ds:select-none',\n 'ds:data-[selected=true]:bg-muted',\n].join(' ');\n\nconst SELECT_ALL_VALUE = '__ui-multiselect-select-all__';\nconst CLEAR_ALL_VALUE = '__ui-multiselect-clear-all__';\n\ntype HTMLDivAttributes = HTMLAttributes<HTMLDivElement>;\n\nexport interface MultiSelectProps<T extends string = string>\n extends Omit<HTMLDivAttributes, 'onChange'>,\n VariantProps<typeof multiSelectVariants> {\n options: OptionShape<T>[];\n value?: T[];\n defaultValue?: T[];\n onChange?: (next: T[]) => void;\n onComplete?: (values: T[]) => void;\n placeholder?: string;\n maxSelections?: number;\n allowSelectAll?: boolean;\n allowClear?: boolean;\n filter?: (query: string, option: OptionShape<T>) => boolean;\n size?: 'sm' | 'md' | 'lg';\n disabled?: boolean;\n}\n\nconst MultiSelectImpl = forwardRef<HTMLDivElement, MultiSelectProps>(\n function MultiSelect(\n {\n options,\n value,\n defaultValue,\n onChange,\n onComplete,\n placeholder,\n maxSelections,\n allowSelectAll = false,\n allowClear = false,\n filter,\n size = 'md',\n disabled,\n className,\n id,\n ...divProps\n },\n ref,\n ) {\n const { t } = useTranslation();\n const ctx = useFormField();\n const inFormField = useContext(FormFieldContext) !== null;\n\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? [],\n );\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n\n const inputRef = useRef<HTMLInputElement>(null);\n const chipRefs = useRef<Array<HTMLSpanElement | null>>([]);\n const triggerRef = useRef<HTMLDivElement>(null);\n const composedRef = composeRefs<HTMLDivElement>(ref, triggerRef);\n\n const effectiveDisabled =\n (inFormField && ctx.disabled) || Boolean(disabled);\n const effectiveRequired = inFormField && ctx.required;\n const effectiveInvalid = inFormField && ctx.invalid;\n const describedBy =\n inFormField && ctx.describedBy ? ctx.describedBy : undefined;\n const triggerId = id ?? (inFormField ? ctx.id : undefined);\n\n const labelByValue = useMemo(() => {\n const map = new Map<string, string>();\n for (const option of options) map.set(option.value, option.label);\n return map;\n }, [options]);\n\n const atCap =\n typeof maxSelections === 'number' && currentValue.length >= maxSelections;\n\n const commit = (next: string[]): void => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n };\n\n const toggle = (val: string): void => {\n if (currentValue.includes(val)) {\n commit(currentValue.filter((v) => v !== val));\n return;\n }\n if (atCap) return;\n commit([...currentValue, val]);\n };\n\n const removeAt = (index: number): string[] => {\n const next = currentValue.filter((_, i) => i !== index);\n commit(next);\n return next;\n };\n\n const handleSelectAll = (): void => {\n const selectable = options\n .filter((o) => !o.disabled)\n .map((o) => o.value);\n const cap =\n typeof maxSelections === 'number' ? maxSelections : selectable.length;\n commit(selectable.slice(0, cap));\n };\n\n const handleClearAll = (): void => {\n commit([]);\n };\n\n const resolvedPlaceholder =\n placeholder ?? t('ui.inputs.multiSelect.placeholder', 'Select…');\n\n const filteredOptions = useMemo(() => {\n if (!query) return options;\n const needle = query.toLowerCase();\n return options.filter((option) => {\n if (filter) return filter(query, option);\n return option.label.toLowerCase().includes(needle);\n });\n }, [options, query, filter]);\n\n const groups = useMemo(\n () => groupOptions(filteredOptions),\n [filteredOptions],\n );\n\n const handleInputKeyDown = (\n e: KeyboardEvent<HTMLInputElement>,\n ): void => {\n const target = e.currentTarget;\n if (e.key === 'Backspace' && query === '' && currentValue.length > 0) {\n e.preventDefault();\n const removedIndex = currentValue.length - 1;\n const next = removeAt(removedIndex);\n const newLast = next.length - 1;\n if (newLast >= 0) {\n requestAnimationFrame(() => {\n chipRefs.current[newLast]?.focus();\n });\n }\n return;\n }\n const caretAtStart =\n target.selectionStart === 0 && target.selectionEnd === 0;\n if (\n (e.key === 'ArrowLeft' || e.key === 'ArrowRight') &&\n caretAtStart &&\n currentValue.length > 0\n ) {\n const isRTL = document.dir === 'rtl' || target.dir === 'rtl';\n const shouldNavigate =\n (isRTL && e.key === 'ArrowRight') ||\n (!isRTL && e.key === 'ArrowLeft');\n if (shouldNavigate) {\n e.preventDefault();\n const lastIdx = currentValue.length - 1;\n chipRefs.current[lastIdx]?.focus();\n }\n return;\n }\n if (e.key === 'Escape') {\n setOpen(false);\n return;\n }\n if (!open && (e.key === 'ArrowDown' || e.key === 'Enter')) {\n setOpen(true);\n }\n };\n\n const handleChipKeyDown =\n (index: number) =>\n (e: KeyboardEvent<HTMLSpanElement>): void => {\n if (\n e.key === 'Backspace' ||\n e.key === 'Delete' ||\n e.key === 'Enter' ||\n e.key === ' '\n ) {\n e.preventDefault();\n e.stopPropagation();\n const next = removeAt(index);\n if (next.length === 0) {\n requestAnimationFrame(() => inputRef.current?.focus());\n return;\n }\n const focusIdx = Math.min(index, next.length - 1);\n requestAnimationFrame(() => {\n chipRefs.current[focusIdx]?.focus();\n });\n return;\n }\n const isRTL = document.dir === 'rtl';\n const prevKey = isRTL ? 'ArrowRight' : 'ArrowLeft';\n const nextKey = isRTL ? 'ArrowLeft' : 'ArrowRight';\n if (e.key === prevKey) {\n e.preventDefault();\n const newIdx = Math.max(0, index - 1);\n chipRefs.current[newIdx]?.focus();\n return;\n }\n if (e.key === nextKey) {\n e.preventDefault();\n if (index < currentValue.length - 1) {\n chipRefs.current[index + 1]?.focus();\n } else {\n inputRef.current?.focus();\n }\n return;\n }\n if (e.key === 'Escape') {\n setOpen(false);\n inputRef.current?.focus();\n }\n };\n\n // ----- Chip overflow measurement -----\n const [visibleCount, setVisibleCount] = useState<number>(\n Number.POSITIVE_INFINITY,\n );\n\n useLayoutEffect(() => {\n const el = triggerRef.current;\n if (!el) return;\n\n const measure = (): void => {\n const chipEls = Array.from(\n el.querySelectorAll<HTMLElement>('[data-ui-chip=\"true\"]'),\n );\n if (chipEls.length === 0) {\n setVisibleCount(Number.POSITIVE_INFINITY);\n return;\n }\n const firstTop = chipEls[0].offsetTop;\n let firstRowCount = 0;\n for (const chip of chipEls) {\n if (chip.offsetTop === firstTop) firstRowCount++;\n else break;\n }\n if (firstRowCount === chipEls.length) {\n setVisibleCount(Number.POSITIVE_INFINITY);\n } else {\n setVisibleCount(Math.max(1, firstRowCount - 1));\n }\n };\n\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, [currentValue.length, size]);\n\n const chips = currentValue.map((val) => ({\n value: val,\n label: labelByValue.get(val) ?? val,\n }));\n\n const showAllChips =\n visibleCount === Number.POSITIVE_INFINITY ||\n visibleCount >= chips.length;\n const visibleChips = showAllChips ? chips : chips.slice(0, visibleCount);\n const overflowChips = showAllChips ? [] : chips.slice(visibleCount);\n const overflowCount = overflowChips.length;\n\n const handleTriggerClick = (event: MouseEvent<HTMLDivElement>): void => {\n if (effectiveDisabled) return;\n // Ignore clicks on chips/buttons so they can manage their own focus.\n const target = event.target as HTMLElement;\n if (target.closest('[data-ui-chip=\"true\"]')) return;\n if (target.closest('[data-ui-chip-dismiss=\"true\"]')) return;\n setOpen(true);\n inputRef.current?.focus();\n };\n\n const handleOpenChange = (next: boolean): void => {\n if (effectiveDisabled) {\n setOpen(false);\n return;\n }\n setOpen(next);\n if (!next) {\n setQuery('');\n onComplete?.(currentValue);\n }\n };\n\n const hasActionRow = allowSelectAll || allowClear;\n\n const counterMessage = t('ui.inputs.multiSelect.selected', {\n count: currentValue.length,\n defaultValue: `${currentValue.length} selected`,\n });\n\n const { onClick: onClickProp, ...restDivProps } = divProps;\n\n return (\n <Command shouldFilter={false} label={counterMessage}>\n <Popover.Root open={open} onOpenChange={handleOpenChange}>\n <Popover.Anchor asChild>\n <div\n ref={composedRef}\n className={multiSelectVariants({ size, className })}\n aria-disabled={effectiveDisabled || undefined}\n aria-invalid={effectiveInvalid || undefined}\n data-component=\"multi-select\"\n onClick={(event) => {\n onClickProp?.(event);\n handleTriggerClick(event);\n }}\n {...restDivProps}\n >\n {visibleChips.map((chip, idx) => (\n <span\n key={chip.value}\n ref={(el) => {\n chipRefs.current[idx] = el;\n }}\n tabIndex={effectiveDisabled ? -1 : 0}\n data-ui-chip=\"true\"\n className={chipVariants({ size })}\n onKeyDown={handleChipKeyDown(idx)}\n aria-label={chip.label}\n >\n <span>{chip.label}</span>\n <button\n type=\"button\"\n tabIndex={-1}\n data-ui-chip-dismiss=\"true\"\n aria-label={t('ui.inputs.multiSelect.remove', {\n label: chip.label,\n defaultValue: `Remove ${chip.label}`,\n })}\n disabled={effectiveDisabled}\n onClick={(event) => {\n event.stopPropagation();\n removeAt(idx);\n requestAnimationFrame(() => inputRef.current?.focus());\n }}\n className={chipDismissClasses}\n >\n <X aria-hidden=\"true\" className=\"ds:size-3.5\" />\n </button>\n </span>\n ))}\n {overflowCount > 0 ? (\n <Tooltip\n label={overflowChips.map((c) => c.label).join(', ')}\n delayDuration={200}\n >\n <span\n className={chipVariants({ size })}\n tabIndex={0}\n role=\"button\"\n aria-label={t('ui.inputs.multiSelect.overflow', {\n count: overflowCount,\n defaultValue: `+${overflowCount} more`,\n })}\n >\n <span>\n {t('ui.inputs.multiSelect.overflow', {\n count: overflowCount,\n defaultValue: `+${overflowCount} more`,\n })}\n </span>\n </span>\n </Tooltip>\n ) : null}\n <Command.Input\n ref={inputRef}\n value={query}\n onValueChange={setQuery}\n onKeyDown={handleInputKeyDown}\n onFocus={() => {\n if (!effectiveDisabled) setOpen(true);\n }}\n placeholder={\n currentValue.length === 0 ? resolvedPlaceholder : ''\n }\n id={triggerId}\n aria-describedby={describedBy}\n aria-invalid={effectiveInvalid || undefined}\n aria-required={effectiveRequired || undefined}\n disabled={effectiveDisabled}\n className={[\n 'ds:flex-1 ds:min-w-[6rem] ds:bg-transparent ds:outline-none',\n 'ds:placeholder:text-muted-foreground ds:text-start',\n 'ds:disabled:cursor-not-allowed',\n ].join(' ')}\n />\n </div>\n </Popover.Anchor>\n <Popover.Portal>\n <Popover.Content\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n align=\"start\"\n sideOffset={4}\n className={popoverContentClasses}\n >\n <Command.List\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-label={resolvedPlaceholder}\n className=\"ds:max-h-[20rem] ds:overflow-y-auto ds:p-1\"\n >\n {hasActionRow ? (\n <Command.Group>\n {allowSelectAll ? (\n <Command.Item\n value={SELECT_ALL_VALUE}\n onSelect={handleSelectAll}\n className={actionItemClasses}\n >\n {t('ui.inputs.multiSelect.selectAll', 'Select all')}\n </Command.Item>\n ) : null}\n {allowClear ? (\n <Command.Item\n value={CLEAR_ALL_VALUE}\n onSelect={handleClearAll}\n className={actionItemClasses}\n >\n {t('ui.inputs.multiSelect.clearAll', 'Clear all')}\n </Command.Item>\n ) : null}\n </Command.Group>\n ) : null}\n <Command.Empty className=\"ds:ps-2 ds:pe-2 ds:py-2 type-body-sm ds:text-muted-foreground\">\n {t('ui.inputs.multiSelect.noOptions', 'No options found')}\n </Command.Empty>\n {groups.map(({ group, items }, gi) => {\n const body = items.map((option) => {\n const isSelected = currentValue.includes(option.value);\n const isCapped = !isSelected && atCap;\n const isDisabled =\n Boolean(option.disabled) || isCapped;\n const item = (\n <Command.Item\n key={option.value}\n value={option.value}\n disabled={isDisabled}\n onSelect={() => {\n if (isDisabled) return;\n toggle(option.value);\n }}\n aria-selected={isSelected}\n aria-disabled={isDisabled || undefined}\n className={commandItemClasses}\n >\n <span\n className={[\n 'ds:inline-flex ds:items-center ds:justify-center ds:me-2 ds:shrink-0',\n 'ds:size-4 ds:rounded-[var(--radius-sm)] ds:border ds:border-border',\n isSelected\n ? 'ds:bg-primary ds:border-primary ds:text-primary-foreground'\n : 'ds:bg-background',\n ].join(' ')}\n aria-hidden=\"true\"\n >\n {isSelected ? <Check className=\"ds:size-3.5\" /> : null}\n </span>\n <span className=\"ds:flex-1 ds:text-start\">{option.label}</span>\n </Command.Item>\n );\n if (isCapped) {\n return (\n <Tooltip\n key={option.value}\n label={t('ui.inputs.multiSelect.maxReached', {\n count: maxSelections,\n defaultValue: `Maximum ${maxSelections} selections`,\n })}\n delayDuration={200}\n >\n {item}\n </Tooltip>\n );\n }\n return item;\n });\n if (!group) {\n return (\n <Command.Group key={`group-${gi}`}>{body}</Command.Group>\n );\n }\n return (\n <Command.Group\n key={`group-${group}`}\n heading={group}\n className=\"ds:[&_[cmdk-group-heading]]:ps-2 ds:[&_[cmdk-group-heading]]:pe-2 ds:[&_[cmdk-group-heading]]:py-1 ds:[&_[cmdk-group-heading]]:type-eyebrow ds:[&_[cmdk-group-heading]]:text-muted-foreground\"\n >\n {body}\n </Command.Group>\n );\n })}\n </Command.List>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </Command>\n );\n },\n);\nMultiSelectImpl.displayName = 'MultiSelect';\n\ninterface MultiSelectComponent {\n <T extends string = string>(\n props: MultiSelectProps<T> & { ref?: Ref<HTMLDivElement> },\n ): ReactElement | null;\n displayName?: string;\n}\n\nexport const MultiSelect = MultiSelectImpl as unknown as MultiSelectComponent;\n\nexport { multiSelectVariants };\n","import type { AgentAdapter } from '../../agent/types';\n\nexport const multiSelectAgent: AgentAdapter<unknown> = {\n id: 'multi-select',\n capabilities: ['select_multiple', 'filter', 'open', 'close'],\n state: {},\n actions: {},\n domHooks: {\n root: { attr: 'data-component', value: 'multi-select' },\n item: {\n attr: 'data-option-id',\n description: 'Each option emits its value as data-option-id.',\n },\n },\n};\n"],"names":["multiSelectVariants","cva","INPUT_SURFACE_CHROME","INPUT_SURFACE_TEXT","chipVariants","chipDismissClasses","popoverContentClasses","commandItemClasses","actionItemClasses","SELECT_ALL_VALUE","CLEAR_ALL_VALUE","MultiSelectImpl","forwardRef","options","value","defaultValue","onChange","onComplete","placeholder","maxSelections","allowSelectAll","allowClear","filter","size","disabled","className","id","divProps","ref","t","useTranslation","ctx","useFormField","inFormField","useContext","FormFieldContext","internalValue","setInternalValue","useState","isControlled","currentValue","open","setOpen","query","setQuery","inputRef","useRef","chipRefs","triggerRef","composedRef","composeRefs","effectiveDisabled","effectiveRequired","effectiveInvalid","describedBy","triggerId","labelByValue","useMemo","map","option","atCap","commit","next","toggle","val","v","removeAt","index","_","i","handleSelectAll","selectable","o","cap","handleClearAll","resolvedPlaceholder","filteredOptions","needle","groups","groupOptions","handleInputKeyDown","target","removedIndex","newLast","_a","caretAtStart","isRTL","lastIdx","handleChipKeyDown","e","focusIdx","prevKey","nextKey","newIdx","_b","_c","_d","visibleCount","setVisibleCount","useLayoutEffect","el","measure","chipEls","firstTop","firstRowCount","chip","ro","chips","showAllChips","visibleChips","overflowChips","overflowCount","handleTriggerClick","event","handleOpenChange","hasActionRow","counterMessage","onClickProp","restDivProps","jsx","Command","jsxs","Popover","idx","X","Tooltip","c","group","items","gi","body","isSelected","isCapped","isDisabled","item","Check","MultiSelect","multiSelectAgent"],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { jsxs as m, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as n, useRef as g } from "react";
|
|
3
|
+
import * as e from "@radix-ui/react-navigation-menu";
|
|
4
|
+
import { Slot as p } from "@radix-ui/react-slot";
|
|
5
|
+
import { c as b } from "./index-D2ZczOXr.js";
|
|
6
|
+
import { useTranslation as h } from "react-i18next";
|
|
7
|
+
import { u as N } from "./use-direction-D6rvvG9G.js";
|
|
8
|
+
import { c as w } from "./compose-refs-C0k0tdqF.js";
|
|
9
|
+
import { C as x } from "./chevron-down-BX_NP2Yh.js";
|
|
10
|
+
const j = [
|
|
11
|
+
"ds:relative ds:z-[var(--z-dropdown)]",
|
|
12
|
+
"ds:flex ds:max-w-max ds:items-center ds:justify-center"
|
|
13
|
+
].join(" "), y = n(({ "aria-label": s, className: a, children: t, ...i }, d) => {
|
|
14
|
+
const { t: c } = h(), r = g(null), f = w(d, r), v = N(r);
|
|
15
|
+
return /* @__PURE__ */ m(
|
|
16
|
+
e.Root,
|
|
17
|
+
{
|
|
18
|
+
ref: f,
|
|
19
|
+
dir: v,
|
|
20
|
+
"aria-label": s ?? c("ui.navigation.nav.label"),
|
|
21
|
+
className: [j, a].filter(Boolean).join(" "),
|
|
22
|
+
"data-component": "navigation-menu",
|
|
23
|
+
...i,
|
|
24
|
+
children: [
|
|
25
|
+
t,
|
|
26
|
+
/* @__PURE__ */ o(u, {})
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
y.displayName = "NavigationMenu";
|
|
32
|
+
const M = [
|
|
33
|
+
"ds:group ds:flex ds:flex-1",
|
|
34
|
+
"ds:list-none ds:items-center ds:justify-center",
|
|
35
|
+
"ds:gap-[var(--spacing-xs)]",
|
|
36
|
+
"ds:m-0 ds:ps-0"
|
|
37
|
+
].join(" "), z = n(({ className: s, ...a }, t) => /* @__PURE__ */ o(
|
|
38
|
+
e.List,
|
|
39
|
+
{
|
|
40
|
+
ref: t,
|
|
41
|
+
className: [M, s].filter(Boolean).join(" "),
|
|
42
|
+
...a
|
|
43
|
+
}
|
|
44
|
+
));
|
|
45
|
+
z.displayName = "NavigationMenuList";
|
|
46
|
+
const O = e.Item, C = [
|
|
47
|
+
"ds:group ds:inline-flex ds:items-center ds:justify-center",
|
|
48
|
+
"ds:min-h-[var(--min-target-size)]",
|
|
49
|
+
"ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-sm)]",
|
|
50
|
+
"ds:rounded-[var(--radius-sm)]",
|
|
51
|
+
"ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-medium)]",
|
|
52
|
+
"ds:text-[var(--foreground)]",
|
|
53
|
+
"ds:hover:bg-[var(--muted)]/20",
|
|
54
|
+
"ds:data-[state=open]:bg-[var(--muted)]/20",
|
|
55
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
56
|
+
"ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
57
|
+
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
|
|
58
|
+
"ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
|
|
59
|
+
"ds:gap-[var(--spacing-xs)]"
|
|
60
|
+
].join(" "), B = [
|
|
61
|
+
"ds:size-3 ds:transition-transform ds:duration-[var(--animation-duration)]",
|
|
62
|
+
"ds:group-data-[state=open]:rotate-180",
|
|
63
|
+
"ds:rtl:-scale-x-100 ds:motion-reduce:transition-none"
|
|
64
|
+
].join(" "), k = n(({ className: s, children: a, ...t }, i) => /* @__PURE__ */ m(
|
|
65
|
+
e.Trigger,
|
|
66
|
+
{
|
|
67
|
+
ref: i,
|
|
68
|
+
className: [C, s].filter(Boolean).join(" "),
|
|
69
|
+
...t,
|
|
70
|
+
children: [
|
|
71
|
+
a,
|
|
72
|
+
/* @__PURE__ */ o(x, { "aria-hidden": "true", className: B })
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
));
|
|
76
|
+
k.displayName = "NavigationMenuTrigger";
|
|
77
|
+
const R = [
|
|
78
|
+
"ds:absolute ds:start-0 ds:top-0 ds:w-full",
|
|
79
|
+
"ds:md:w-auto",
|
|
80
|
+
"ds:bg-[var(--background)] ds:text-[var(--foreground)]",
|
|
81
|
+
"ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]",
|
|
82
|
+
"ds:shadow-[var(--shadow-lg)]",
|
|
83
|
+
"ds:p-[var(--spacing-md)]",
|
|
84
|
+
"ds:data-[motion^=from-]:animate-in ds:data-[motion^=to-]:animate-out",
|
|
85
|
+
// Logical start/end motion mapped onto physical Tailwind animation utilities.
|
|
86
|
+
// The `rtl:` variants mirror the slide direction so `from-start` enters from
|
|
87
|
+
// the inline-start edge in both LTR and RTL.
|
|
88
|
+
"ds:data-[motion=from-start]:slide-in-from-left-52 ds:rtl:data-[motion=from-start]:slide-in-from-right-52",
|
|
89
|
+
"ds:data-[motion=from-end]:slide-in-from-right-52 ds:rtl:data-[motion=from-end]:slide-in-from-left-52",
|
|
90
|
+
"ds:data-[motion=to-start]:slide-out-to-left-52 ds:rtl:data-[motion=to-start]:slide-out-to-right-52",
|
|
91
|
+
"ds:data-[motion=to-end]:slide-out-to-right-52 ds:rtl:data-[motion=to-end]:slide-out-to-left-52",
|
|
92
|
+
"ds:motion-reduce:animate-none"
|
|
93
|
+
].join(" "), L = b(R, {
|
|
94
|
+
variants: {
|
|
95
|
+
layout: {
|
|
96
|
+
simple: "ds:min-w-[16rem]",
|
|
97
|
+
mega: "ds:grid ds:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))] ds:gap-[var(--spacing-md)] ds:min-w-[32rem]"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
defaultVariants: { layout: "simple" }
|
|
101
|
+
}), I = n(({ layout: s, className: a, ...t }, i) => /* @__PURE__ */ o(
|
|
102
|
+
e.Content,
|
|
103
|
+
{
|
|
104
|
+
ref: i,
|
|
105
|
+
className: L({ layout: s, className: a }),
|
|
106
|
+
...t
|
|
107
|
+
}
|
|
108
|
+
));
|
|
109
|
+
I.displayName = "NavigationMenuContent";
|
|
110
|
+
const l = [
|
|
111
|
+
"ds:block ds:rounded-[var(--radius-sm)]",
|
|
112
|
+
"ds:min-h-[var(--min-target-size)]",
|
|
113
|
+
"ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
|
|
114
|
+
"ds:py-[var(--spacing-xs)]",
|
|
115
|
+
"ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-medium)]",
|
|
116
|
+
"ds:text-[var(--foreground)]",
|
|
117
|
+
"ds:no-underline",
|
|
118
|
+
"ds:hover:bg-[var(--muted)]/20",
|
|
119
|
+
"ds:data-[active]:underline ds:data-[active]:underline-offset-[var(--spacing-xs)]",
|
|
120
|
+
"ds:aria-[current=page]:underline ds:aria-[current=page]:underline-offset-[var(--spacing-xs)]",
|
|
121
|
+
"ds:aria-[current=page]:font-[var(--font-weight-semibold)]",
|
|
122
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
123
|
+
"ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
124
|
+
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
|
|
125
|
+
].join(" "), V = n(({ asChild: s = !1, className: a, children: t, ...i }, d) => /* @__PURE__ */ o(
|
|
126
|
+
e.Link,
|
|
127
|
+
{
|
|
128
|
+
ref: d,
|
|
129
|
+
asChild: s,
|
|
130
|
+
className: s ? void 0 : [l, a].filter(Boolean).join(" "),
|
|
131
|
+
...i,
|
|
132
|
+
children: s ? /* @__PURE__ */ o(p, { className: [l, a].filter(Boolean).join(" "), children: t }) : t
|
|
133
|
+
}
|
|
134
|
+
));
|
|
135
|
+
V.displayName = "NavigationMenuLink";
|
|
136
|
+
const T = [
|
|
137
|
+
"ds:top-full ds:z-[1] ds:flex ds:h-2 ds:items-end ds:justify-center ds:overflow-hidden",
|
|
138
|
+
"ds:data-[state=visible]:animate-in ds:data-[state=hidden]:animate-out",
|
|
139
|
+
"ds:data-[state=visible]:fade-in ds:data-[state=hidden]:fade-out",
|
|
140
|
+
"ds:motion-reduce:animate-none"
|
|
141
|
+
].join(" "), D = n(({ className: s, ...a }, t) => /* @__PURE__ */ o(
|
|
142
|
+
e.Indicator,
|
|
143
|
+
{
|
|
144
|
+
ref: t,
|
|
145
|
+
className: [T, s].filter(Boolean).join(" "),
|
|
146
|
+
...a,
|
|
147
|
+
children: /* @__PURE__ */ o("span", { className: "ds:relative ds:top-[60%] ds:h-2 ds:w-2 ds:rotate-45 ds:rounded-tl-sm ds:bg-[var(--border)]" })
|
|
148
|
+
}
|
|
149
|
+
));
|
|
150
|
+
D.displayName = "NavigationMenuIndicator";
|
|
151
|
+
const S = [
|
|
152
|
+
"ds:origin-top-center ds:relative ds:mt-[var(--spacing-xs)]",
|
|
153
|
+
"ds:h-[var(--radix-navigation-menu-viewport-height)]",
|
|
154
|
+
"ds:w-full ds:overflow-hidden",
|
|
155
|
+
"ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]",
|
|
156
|
+
"ds:bg-[var(--background)] ds:text-[var(--foreground)]",
|
|
157
|
+
"ds:shadow-[var(--shadow-lg)]",
|
|
158
|
+
"ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
|
|
159
|
+
"ds:data-[state=open]:zoom-in-90 ds:data-[state=closed]:zoom-out-95",
|
|
160
|
+
"ds:motion-reduce:animate-none"
|
|
161
|
+
].join(" "), u = n(({ className: s, ...a }, t) => /* @__PURE__ */ o("div", { className: "ds:absolute ds:start-0 ds:top-full ds:flex ds:justify-center", children: /* @__PURE__ */ o(
|
|
162
|
+
e.Viewport,
|
|
163
|
+
{
|
|
164
|
+
ref: t,
|
|
165
|
+
className: [S, s].filter(Boolean).join(" "),
|
|
166
|
+
...a
|
|
167
|
+
}
|
|
168
|
+
) }));
|
|
169
|
+
u.displayName = "NavigationMenuViewport";
|
|
170
|
+
export {
|
|
171
|
+
y as N,
|
|
172
|
+
I as a,
|
|
173
|
+
D as b,
|
|
174
|
+
O as c,
|
|
175
|
+
V as d,
|
|
176
|
+
z as e,
|
|
177
|
+
k as f,
|
|
178
|
+
u as g
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=navigation-menu-EVFau1O2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-menu-EVFau1O2.js","sources":["../../src/components/navigation-menu/navigation-menu.tsx"],"sourcesContent":["import {\n forwardRef,\n useRef,\n type ComponentPropsWithoutRef,\n type ElementRef,\n} from 'react';\nimport * as RadixNavigationMenu from '@radix-ui/react-navigation-menu';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronDown } from 'lucide-react';\nimport { useDirection } from '../_shared/use-direction';\nimport { composeRefs } from '../_shared/compose-refs';\n// SkipLink moved to its own module — re-imported for the navigation-menu\n// barrel's backwards-compat re-export. New consumers should import it\n// directly from `@alfadocs/ui-kit`.\nimport { SkipLink } from '../skip-link';\n\n/* -------------------------------------------------------------------- */\n/* Root */\n/* -------------------------------------------------------------------- */\n\nconst rootClasses = [\n 'ds:relative ds:z-[var(--z-dropdown)]',\n 'ds:flex ds:max-w-max ds:items-center ds:justify-center',\n].join(' ');\n\nexport interface NavigationMenuProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Root> {\n 'aria-label'?: string;\n}\n\nconst NavigationMenu = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Root>,\n NavigationMenuProps\n>(({ 'aria-label': ariaLabel, className, children, ...rest }, ref) => {\n const { t } = useTranslation();\n const rootRef = useRef<ElementRef<typeof RadixNavigationMenu.Root>>(null);\n const composedRef = composeRefs(ref, rootRef);\n const dir = useDirection(rootRef);\n return (\n <RadixNavigationMenu.Root\n ref={composedRef}\n dir={dir}\n aria-label={ariaLabel ?? t('ui.navigation.nav.label')}\n className={[rootClasses, className].filter(Boolean).join(' ')}\n data-component=\"navigation-menu\"\n {...rest}\n >\n {children}\n <NavigationMenuViewport />\n </RadixNavigationMenu.Root>\n );\n});\nNavigationMenu.displayName = 'NavigationMenu';\n\n/* -------------------------------------------------------------------- */\n/* List + Item */\n/* -------------------------------------------------------------------- */\n\nconst listClasses = [\n 'ds:group ds:flex ds:flex-1',\n 'ds:list-none ds:items-center ds:justify-center',\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:m-0 ds:ps-0',\n].join(' ');\n\nconst NavigationMenuList = forwardRef<\n ElementRef<typeof RadixNavigationMenu.List>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.List>\n>(({ className, ...rest }, ref) => (\n <RadixNavigationMenu.List\n ref={ref}\n className={[listClasses, className].filter(Boolean).join(' ')}\n {...rest}\n />\n));\nNavigationMenuList.displayName = 'NavigationMenuList';\n\nconst NavigationMenuItem = RadixNavigationMenu.Item;\n\n/* -------------------------------------------------------------------- */\n/* Trigger */\n/* -------------------------------------------------------------------- */\n\nconst triggerClasses = [\n 'ds:group ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-medium)]',\n 'ds:text-[var(--foreground)]',\n 'ds:hover:bg-[var(--muted)]/20',\n 'ds:data-[state=open]:bg-[var(--muted)]/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:gap-[var(--spacing-xs)]',\n].join(' ');\n\nconst chevronClasses = [\n 'ds:size-3 ds:transition-transform ds:duration-[var(--animation-duration)]',\n 'ds:group-data-[state=open]:rotate-180',\n 'ds:rtl:-scale-x-100 ds:motion-reduce:transition-none',\n].join(' ');\n\nconst NavigationMenuTrigger = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Trigger>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.Trigger>\n>(({ className, children, ...rest }, ref) => (\n <RadixNavigationMenu.Trigger\n ref={ref}\n className={[triggerClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n <ChevronDown aria-hidden=\"true\" className={chevronClasses} />\n </RadixNavigationMenu.Trigger>\n));\nNavigationMenuTrigger.displayName = 'NavigationMenuTrigger';\n\n/* -------------------------------------------------------------------- */\n/* Content */\n/* -------------------------------------------------------------------- */\n\nconst contentBase = [\n 'ds:absolute ds:start-0 ds:top-0 ds:w-full',\n 'ds:md:w-auto',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:p-[var(--spacing-md)]',\n 'ds:data-[motion^=from-]:animate-in ds:data-[motion^=to-]:animate-out',\n // Logical start/end motion mapped onto physical Tailwind animation utilities.\n // The `rtl:` variants mirror the slide direction so `from-start` enters from\n // the inline-start edge in both LTR and RTL.\n 'ds:data-[motion=from-start]:slide-in-from-left-52 ds:rtl:data-[motion=from-start]:slide-in-from-right-52',\n 'ds:data-[motion=from-end]:slide-in-from-right-52 ds:rtl:data-[motion=from-end]:slide-in-from-left-52',\n 'ds:data-[motion=to-start]:slide-out-to-left-52 ds:rtl:data-[motion=to-start]:slide-out-to-right-52',\n 'ds:data-[motion=to-end]:slide-out-to-right-52 ds:rtl:data-[motion=to-end]:slide-out-to-left-52',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst contentVariants = cva(contentBase, {\n variants: {\n layout: {\n simple: 'ds:min-w-[16rem]',\n mega: 'ds:grid ds:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))] ds:gap-[var(--spacing-md)] ds:min-w-[32rem]',\n },\n },\n defaultVariants: { layout: 'simple' },\n});\n\nexport interface NavigationMenuContentProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Content>,\n VariantProps<typeof contentVariants> {}\n\nconst NavigationMenuContent = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Content>,\n NavigationMenuContentProps\n>(({ layout, className, ...rest }, ref) => (\n <RadixNavigationMenu.Content\n ref={ref}\n className={contentVariants({ layout, className })}\n {...rest}\n />\n));\nNavigationMenuContent.displayName = 'NavigationMenuContent';\n\n/* -------------------------------------------------------------------- */\n/* Link */\n/* -------------------------------------------------------------------- */\n\nconst linkClasses = [\n 'ds:block ds:rounded-[var(--radius-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:py-[var(--spacing-xs)]',\n 'ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-medium)]',\n 'ds:text-[var(--foreground)]',\n 'ds:no-underline',\n 'ds:hover:bg-[var(--muted)]/20',\n 'ds:data-[active]:underline ds:data-[active]:underline-offset-[var(--spacing-xs)]',\n 'ds:aria-[current=page]:underline ds:aria-[current=page]:underline-offset-[var(--spacing-xs)]',\n 'ds:aria-[current=page]:font-[var(--font-weight-semibold)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\nexport interface NavigationMenuLinkProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Link> {\n /** Render through Radix Slot so routers can inject their own link element. */\n asChild?: boolean;\n}\n\nconst NavigationMenuLink = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Link>,\n NavigationMenuLinkProps\n>(({ asChild = false, className, children, ...rest }, ref) => (\n <RadixNavigationMenu.Link\n ref={ref}\n asChild={asChild}\n className={asChild ? undefined : [linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {asChild ? (\n <Slot className={[linkClasses, className].filter(Boolean).join(' ')}>\n {children}\n </Slot>\n ) : (\n children\n )}\n </RadixNavigationMenu.Link>\n));\nNavigationMenuLink.displayName = 'NavigationMenuLink';\n\n/* -------------------------------------------------------------------- */\n/* Indicator + Viewport */\n/* -------------------------------------------------------------------- */\n\nconst indicatorClasses = [\n 'ds:top-full ds:z-[1] ds:flex ds:h-2 ds:items-end ds:justify-center ds:overflow-hidden',\n 'ds:data-[state=visible]:animate-in ds:data-[state=hidden]:animate-out',\n 'ds:data-[state=visible]:fade-in ds:data-[state=hidden]:fade-out',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst NavigationMenuIndicator = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Indicator>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.Indicator>\n>(({ className, ...rest }, ref) => (\n <RadixNavigationMenu.Indicator\n ref={ref}\n className={[indicatorClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n <span className=\"ds:relative ds:top-[60%] ds:h-2 ds:w-2 ds:rotate-45 ds:rounded-tl-sm ds:bg-[var(--border)]\" />\n </RadixNavigationMenu.Indicator>\n));\nNavigationMenuIndicator.displayName = 'NavigationMenuIndicator';\n\nconst viewportClasses = [\n 'ds:origin-top-center ds:relative ds:mt-[var(--spacing-xs)]',\n 'ds:h-[var(--radix-navigation-menu-viewport-height)]',\n 'ds:w-full ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=open]:zoom-in-90 ds:data-[state=closed]:zoom-out-95',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst NavigationMenuViewport = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Viewport>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.Viewport>\n>(({ className, ...rest }, ref) => (\n <div className=\"ds:absolute ds:start-0 ds:top-full ds:flex ds:justify-center\">\n <RadixNavigationMenu.Viewport\n ref={ref}\n className={[viewportClasses, className].filter(Boolean).join(' ')}\n {...rest}\n />\n </div>\n));\nNavigationMenuViewport.displayName = 'NavigationMenuViewport';\n\n/* -------------------------------------------------------------------- */\n/* Exports */\n/* -------------------------------------------------------------------- */\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuContent,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n SkipLink,\n};\n"],"names":["rootClasses","NavigationMenu","forwardRef","ariaLabel","className","children","rest","ref","t","useTranslation","rootRef","useRef","composedRef","composeRefs","dir","useDirection","jsxs","RadixNavigationMenu","NavigationMenuViewport","listClasses","NavigationMenuList","jsx","NavigationMenuItem","triggerClasses","chevronClasses","NavigationMenuTrigger","ChevronDown","contentBase","contentVariants","cva","NavigationMenuContent","layout","linkClasses","NavigationMenuLink","asChild","Slot","indicatorClasses","NavigationMenuIndicator","viewportClasses"],"mappings":"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"}
|