@alfadocs/ui-kit-debug 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/_chunks/accordion-DOmxGEWU.js +228 -0
- package/dist/_chunks/accordion-DOmxGEWU.js.map +1 -0
- package/dist/_chunks/{agenda-card-DwLIxgi7.js → agenda-card-CalZqycc.js} +12 -3
- package/dist/_chunks/agenda-card-CalZqycc.js.map +1 -0
- package/dist/_chunks/{agenda-tray-DUvengGQ.js → agenda-tray-3ffFDQZC.js} +54 -51
- package/dist/_chunks/agenda-tray-3ffFDQZC.js.map +1 -0
- package/dist/_chunks/{ai-prompt-input.agent-0NHYLTWD.js → ai-prompt-input-BBiDlEIS.js} +231 -231
- package/dist/_chunks/ai-prompt-input-BBiDlEIS.js.map +1 -0
- package/dist/_chunks/{alert-BlOUMkXj.js → alert-B1sj8Ss0.js} +24 -14
- package/dist/_chunks/alert-B1sj8Ss0.js.map +1 -0
- package/dist/_chunks/{apexcharts-theme-BkSShpEy.js → apexcharts-theme-BJigns_V.js} +7 -2
- package/dist/_chunks/{apexcharts-theme-BkSShpEy.js.map → apexcharts-theme-BJigns_V.js.map} +1 -1
- package/dist/_chunks/{app-frame-6d7Lu4ea.js → app-frame-CDJOgPXe.js} +7 -16
- package/dist/_chunks/app-frame-CDJOgPXe.js.map +1 -0
- package/dist/_chunks/aspect-ratio-DeSNzASA.js.map +1 -1
- package/dist/_chunks/{audio-recorder.agent--VKeykUp.js → audio-recorder-B4U1LuiQ.js} +161 -162
- package/dist/_chunks/audio-recorder-B4U1LuiQ.js.map +1 -0
- package/dist/_chunks/{audio-visualiser-CeMPCZkd.js → audio-visualiser-ByDEFLNm.js} +25 -19
- package/dist/_chunks/audio-visualiser-ByDEFLNm.js.map +1 -0
- package/dist/_chunks/autocomplete-D4oUZbsP.js +466 -0
- package/dist/_chunks/autocomplete-D4oUZbsP.js.map +1 -0
- package/dist/_chunks/avatar-Dcr6XuDQ.js.map +1 -1
- package/dist/_chunks/{badge-mrstWxve.js → badge-DKFbntoa.js} +16 -13
- package/dist/_chunks/badge-DKFbntoa.js.map +1 -0
- package/dist/_chunks/{balance-cell-renderer-5CA7zpAi.js → balance-cell-renderer-B8zgIM-m.js} +63 -44
- package/dist/_chunks/balance-cell-renderer-B8zgIM-m.js.map +1 -0
- package/dist/_chunks/{breadcrumb.agent-GM2hAKFX.js → breadcrumb-D1snXjPb.js} +165 -157
- package/dist/_chunks/breadcrumb-D1snXjPb.js.map +1 -0
- package/dist/_chunks/{button-7mLWcMp_.js → button-DD_0Xdmr.js} +12 -2
- package/dist/_chunks/button-DD_0Xdmr.js.map +1 -0
- package/dist/_chunks/button-group-CONver7M.js.map +1 -1
- package/dist/_chunks/button.agent-BuGZBktn.js.map +1 -1
- package/dist/_chunks/{calendar-nGEgelJs.js → calendar-zy0tUUVG.js} +13 -18
- package/dist/_chunks/calendar-zy0tUUVG.js.map +1 -0
- package/dist/_chunks/{card-BEy58ZKp.js → card-CWzuTLYE.js} +40 -34
- package/dist/_chunks/card-CWzuTLYE.js.map +1 -0
- package/dist/_chunks/{chart.agent-_pRYS17d.js → chart-BLvFl169.js} +147 -131
- package/dist/_chunks/chart-BLvFl169.js.map +1 -0
- package/dist/_chunks/chat-container-ClzsWXp2.js +220 -0
- package/dist/_chunks/chat-container-ClzsWXp2.js.map +1 -0
- package/dist/_chunks/chat-input-DOlsB1fm.js +333 -0
- package/dist/_chunks/chat-input-DOlsB1fm.js.map +1 -0
- package/dist/_chunks/{chat-message-ByouZpPP.js → chat-message-DoAhgUTj.js} +23 -13
- package/dist/_chunks/chat-message-DoAhgUTj.js.map +1 -0
- package/dist/_chunks/checkbox-CtPM6Rup.js.map +1 -1
- package/dist/_chunks/checkbox-group-BTdEB6Yo.js.map +1 -1
- package/dist/_chunks/{collapsible.agent-DkS1jVyn.js → collapsible-CuxUBoHJ.js} +97 -99
- package/dist/_chunks/collapsible-CuxUBoHJ.js.map +1 -0
- package/dist/_chunks/{color-picker-94qcBZqZ.js → color-picker-CTIcHlDF.js} +111 -45
- package/dist/_chunks/color-picker-CTIcHlDF.js.map +1 -0
- package/dist/_chunks/combobox-DCNXqbC7.js +460 -0
- package/dist/_chunks/combobox-DCNXqbC7.js.map +1 -0
- package/dist/_chunks/command-palette-C_vgSgrI.js +441 -0
- package/dist/_chunks/command-palette-C_vgSgrI.js.map +1 -0
- package/dist/_chunks/{date-picker-BqPTn7bO.js → date-picker-B1PO1ZQP.js} +190 -181
- package/dist/_chunks/{date-picker-BqPTn7bO.js.map → date-picker-B1PO1ZQP.js.map} +1 -1
- package/dist/_chunks/{date-range-picker-B2hGsffw.js → date-range-picker-mix2nEVC.js} +21 -8
- package/dist/_chunks/date-range-picker-mix2nEVC.js.map +1 -0
- package/dist/_chunks/{date-time-picker-Bzt0S8yO.js → date-time-picker-Dnong_BY.js} +30 -15
- package/dist/_chunks/date-time-picker-Dnong_BY.js.map +1 -0
- package/dist/_chunks/{description-list-DvJbp6Yg.js → description-list-BYA77Yud.js} +26 -23
- package/dist/_chunks/description-list-BYA77Yud.js.map +1 -0
- package/dist/_chunks/dialog-BPD7wlGE.js +211 -0
- package/dist/_chunks/dialog-BPD7wlGE.js.map +1 -0
- package/dist/_chunks/dropdown-menu-CpiF6CPz.js +300 -0
- package/dist/_chunks/dropdown-menu-CpiF6CPz.js.map +1 -0
- package/dist/_chunks/{empty-state-DQPtRp2b.js → empty-state-3CLJIXSj.js} +132 -101
- package/dist/_chunks/empty-state-3CLJIXSj.js.map +1 -0
- package/dist/_chunks/file-upload-C947ACDK.js +829 -0
- package/dist/_chunks/file-upload-C947ACDK.js.map +1 -0
- package/dist/_chunks/flag-DZ6V7-hU.js.map +1 -1
- package/dist/_chunks/{floating-action-button-Cnw-f6AG.js → floating-action-button-C8OYj8mE.js} +9 -2
- package/dist/_chunks/floating-action-button-C8OYj8mE.js.map +1 -0
- package/dist/_chunks/{form-field-BfsPLTSc.js → form-field-Bmkeh7WY.js} +12 -11
- package/dist/_chunks/form-field-Bmkeh7WY.js.map +1 -0
- package/dist/_chunks/{form-field-context-94LwgYTQ.js → form-field-context-B3APVHKx.js} +4 -2
- package/dist/_chunks/form-field-context-B3APVHKx.js.map +1 -0
- package/dist/_chunks/{freemium-paywall.agent-_nQqLyRF.js → freemium-paywall-CnvceDav.js} +124 -117
- package/dist/_chunks/freemium-paywall-CnvceDav.js.map +1 -0
- package/dist/_chunks/{header-BGn1mRp8.js → header-D0ULgQl3.js} +69 -68
- package/dist/_chunks/header-D0ULgQl3.js.map +1 -0
- package/dist/_chunks/{icon-button-Wnnde5lc.js → icon-button-C4CGcYuz.js} +11 -3
- package/dist/_chunks/icon-button-C4CGcYuz.js.map +1 -0
- package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +1 -1
- package/dist/_chunks/{kbd-8baVw3KU.js → kbd-Cglkd7CY.js} +6 -2
- package/dist/_chunks/kbd-Cglkd7CY.js.map +1 -0
- package/dist/_chunks/{key-value-pair-JRFS9Xrh.js → key-value-pair-CgWvAIGb.js} +2 -2
- package/dist/_chunks/key-value-pair-CgWvAIGb.js.map +1 -0
- package/dist/_chunks/{leo-sidebar-BwINPdix.js → leo-sidebar-CfEY-xi2.js} +16 -20
- package/dist/_chunks/leo-sidebar-CfEY-xi2.js.map +1 -0
- package/dist/_chunks/{link-QheANk74.js → link-8QmFjIz2.js} +2 -5
- package/dist/_chunks/link-8QmFjIz2.js.map +1 -0
- package/dist/_chunks/list-qP6p0NTw.js +434 -0
- package/dist/_chunks/list-qP6p0NTw.js.map +1 -0
- package/dist/_chunks/live-region-C41SO3cA.js.map +1 -1
- package/dist/_chunks/{logo-BpFoCL-s.js → logo-_Z-jLq80.js} +155 -26
- package/dist/_chunks/logo-_Z-jLq80.js.map +1 -0
- package/dist/_chunks/{matrix-rain-BEkvux64.js → matrix-rain-CRPMXcVx.js} +8 -2
- package/dist/_chunks/matrix-rain-CRPMXcVx.js.map +1 -0
- package/dist/_chunks/{message-card-qhoGv947.js → message-card-ChCX9Iv6.js} +63 -60
- package/dist/_chunks/message-card-ChCX9Iv6.js.map +1 -0
- package/dist/_chunks/{message-tray-xHUCra-Y.js → message-tray-n8q9ITXI.js} +71 -76
- package/dist/_chunks/message-tray-n8q9ITXI.js.map +1 -0
- package/dist/_chunks/{multi-select.agent-Do6CeQUT.js → multi-select-wqqrgjUQ.js} +326 -291
- package/dist/_chunks/multi-select-wqqrgjUQ.js.map +1 -0
- package/dist/_chunks/{navigation-menu.agent-D69ND6Qq.js → navigation-menu-ClbHeawy.js} +136 -123
- package/dist/_chunks/navigation-menu-ClbHeawy.js.map +1 -0
- package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +1 -1
- package/dist/_chunks/{notification-card-CsVEYJE-.js → notification-card-hBlPN1-c.js} +3 -3
- package/dist/_chunks/notification-card-hBlPN1-c.js.map +1 -0
- package/dist/_chunks/{notification-tray-DTXMq42J.js → notification-tray-C5cnXbl9.js} +70 -66
- package/dist/_chunks/notification-tray-C5cnXbl9.js.map +1 -0
- package/dist/_chunks/{number-input-fvGmnRy9.js → number-input-Q7wkHnvQ.js} +7 -3
- package/dist/_chunks/number-input-Q7wkHnvQ.js.map +1 -0
- package/dist/_chunks/{otp-input-EglXOUue.js → otp-input-C9gUByF0.js} +6 -3
- package/dist/_chunks/otp-input-C9gUByF0.js.map +1 -0
- package/dist/_chunks/{pagination.agent-BkZQl45y.js → pagination-3AC4zTsi.js} +234 -194
- package/dist/_chunks/pagination-3AC4zTsi.js.map +1 -0
- package/dist/_chunks/{password-input-D6kuYXmr.js → password-input-C4LmjIH1.js} +6 -9
- package/dist/_chunks/password-input-C4LmjIH1.js.map +1 -0
- package/dist/_chunks/{patient-shell-BRmrrUUW.js → patient-shell-BlsEUKWB.js} +10 -15
- package/dist/_chunks/{patient-shell-BRmrrUUW.js.map → patient-shell-BlsEUKWB.js.map} +1 -1
- package/dist/_chunks/{payment-form-BWaXas8z.js → payment-form-C3vT_npe.js} +195 -186
- package/dist/_chunks/payment-form-C3vT_npe.js.map +1 -0
- package/dist/_chunks/{pdf-viewer.agent-BaGEDheA.js → pdf-viewer-CZIfY08H.js} +270 -241
- package/dist/_chunks/pdf-viewer-CZIfY08H.js.map +1 -0
- package/dist/_chunks/{phone-input-C8Op4sEc.js → phone-input-CSHJOJ13.js} +4 -9
- package/dist/_chunks/phone-input-CSHJOJ13.js.map +1 -0
- package/dist/_chunks/popover-DekUKNBk.js +293 -0
- package/dist/_chunks/popover-DekUKNBk.js.map +1 -0
- package/dist/_chunks/{privacy-lock.agent-C1i1-T58.js → privacy-lock-BKsI6ReN.js} +117 -109
- package/dist/_chunks/privacy-lock-BKsI6ReN.js.map +1 -0
- package/dist/_chunks/progress-C11tqhoI.js +298 -0
- package/dist/_chunks/progress-C11tqhoI.js.map +1 -0
- package/dist/_chunks/radio-DvF59ThA.js.map +1 -1
- package/dist/_chunks/radio-group-Cz1a4QCA.js.map +1 -1
- package/dist/_chunks/react-day-picker-C04L_28V.js.map +1 -1
- package/dist/_chunks/{recaptcha-widget.agent-BGHpU5zD.js → recaptcha-widget-NyfOfLII.js} +95 -86
- package/dist/_chunks/recaptcha-widget-NyfOfLII.js.map +1 -0
- package/dist/_chunks/resizable-mpXXyIsN.js +483 -0
- package/dist/_chunks/resizable-mpXXyIsN.js.map +1 -0
- package/dist/_chunks/{rich-text-editor.agent-DnE125Tz.js → rich-text-editor-C7TCIlQO.js} +298 -209
- package/dist/_chunks/rich-text-editor-C7TCIlQO.js.map +1 -0
- package/dist/_chunks/safe-image-src-DstKgCo7.js.map +1 -1
- package/dist/_chunks/{scroll-area-DLr5w9Dd.js → scroll-area-DEDU-lp-.js} +67 -54
- package/dist/_chunks/scroll-area-DEDU-lp-.js.map +1 -0
- package/dist/_chunks/{search-bar.agent-DxFAxctc.js → search-bar-BTDfgYtg.js} +291 -268
- package/dist/_chunks/search-bar-BTDfgYtg.js.map +1 -0
- package/dist/_chunks/{search-input-Xw3cdWXW.js → search-input-CdJIEjFo.js} +116 -107
- package/dist/_chunks/search-input-CdJIEjFo.js.map +1 -0
- package/dist/_chunks/search-input.agent-CfZvViOd.js.map +1 -1
- package/dist/_chunks/{select-DY1Cb2Tg.js → select-y6bXV1f1.js} +84 -83
- package/dist/_chunks/select-y6bXV1f1.js.map +1 -0
- package/dist/_chunks/{separator-B4wXDLNC.js → separator-CYU_bGFn.js} +2 -5
- package/dist/_chunks/separator-CYU_bGFn.js.map +1 -0
- package/dist/_chunks/{sheet-B9kH9pcI.js → sheet-4tgMFwj0.js} +135 -60
- package/dist/_chunks/sheet-4tgMFwj0.js.map +1 -0
- package/dist/_chunks/{sidebar-CHF5xr_P.js → sidebar-Bx3wCDyy.js} +546 -457
- package/dist/_chunks/sidebar-Bx3wCDyy.js.map +1 -0
- package/dist/_chunks/{sign-in-with-alfadocs-button-BN_FPGHT.js → sign-in-with-alfadocs-button-B9UrqOqH.js} +9 -5
- package/dist/_chunks/sign-in-with-alfadocs-button-B9UrqOqH.js.map +1 -0
- package/dist/_chunks/{signature-capture.agent-BpeDwFht.js → signature-capture-DjMlFOzS.js} +210 -212
- package/dist/_chunks/signature-capture-DjMlFOzS.js.map +1 -0
- package/dist/_chunks/{skeleton-dtqyF09N.js → skeleton-CZbwyJAA.js} +9 -3
- package/dist/_chunks/skeleton-CZbwyJAA.js.map +1 -0
- package/dist/_chunks/skip-link-DmZ3c6cb.js.map +1 -1
- package/dist/_chunks/{slider-CcsQTZTA.js → slider-BT2bZWsy.js} +138 -134
- package/dist/_chunks/slider-BT2bZWsy.js.map +1 -0
- package/dist/_chunks/{slot-grid-D_l5VsHG.js → slot-grid-CgpYgBkW.js} +105 -95
- package/dist/_chunks/slot-grid-CgpYgBkW.js.map +1 -0
- package/dist/_chunks/{sparkline.agent-56Sj7nOP.js → sparkline-_gy8aJDG.js} +107 -100
- package/dist/_chunks/sparkline-_gy8aJDG.js.map +1 -0
- package/dist/_chunks/{spinner-GCcv67vh.js → spinner-DLaYfLPl.js} +66 -14
- package/dist/_chunks/spinner-DLaYfLPl.js.map +1 -0
- package/dist/_chunks/{stat-DUB6g90R.js → stat-B9PHSPbN.js} +45 -27
- package/dist/_chunks/stat-B9PHSPbN.js.map +1 -0
- package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js.map +1 -1
- package/dist/_chunks/{stepper-calendar.agent-9iT3ClIB.js → stepper-calendar-BLOJUE0-.js} +189 -187
- package/dist/_chunks/stepper-calendar-BLOJUE0-.js.map +1 -0
- package/dist/_chunks/stepper-progress-jFY8BSf7.js +208 -0
- package/dist/_chunks/stepper-progress-jFY8BSf7.js.map +1 -0
- package/dist/_chunks/streaming-text-BgjCTVOw.js.map +1 -1
- package/dist/_chunks/{suggestion-chip-DhFrkRPj.js → suggestion-chip-C4Jz0LrM.js} +50 -52
- package/dist/_chunks/suggestion-chip-C4Jz0LrM.js.map +1 -0
- package/dist/_chunks/suggestion-chip.agent-6sNWFj7m.js.map +1 -1
- package/dist/_chunks/{switch-BYEH8I53.js → switch-C0psfIQF.js} +2 -2
- package/dist/_chunks/switch-C0psfIQF.js.map +1 -0
- package/dist/_chunks/{tabs.agent-h7NvsTR1.js → tabs-DaFA3Muo.js} +183 -155
- package/dist/_chunks/tabs-DaFA3Muo.js.map +1 -0
- package/dist/_chunks/{tag-BqidXKo3.js → tag-DuLMjRbF.js} +90 -32
- package/dist/_chunks/tag-DuLMjRbF.js.map +1 -0
- package/dist/_chunks/{task-card-CY5ztNkU.js → task-card-Dw_ZJDL8.js} +5 -2
- package/dist/_chunks/task-card-Dw_ZJDL8.js.map +1 -0
- package/dist/_chunks/{task-tray-CCoUdorl.js → task-tray-XlIW9ueh.js} +50 -49
- package/dist/_chunks/task-tray-XlIW9ueh.js.map +1 -0
- package/dist/_chunks/{text-area-C_M8wliK.js → text-area-CO9Dz0qX.js} +2 -2
- package/dist/_chunks/text-area-CO9Dz0qX.js.map +1 -0
- package/dist/_chunks/{text-input-BX39e6T6.js → text-input-DZwt9L8H.js} +65 -62
- package/dist/_chunks/text-input-DZwt9L8H.js.map +1 -0
- package/dist/_chunks/{theme-root-DDb0TJjd.js → theme-root-CSKD5ZRm.js} +9 -2
- package/dist/_chunks/{theme-root-DDb0TJjd.js.map → theme-root-CSKD5ZRm.js.map} +1 -1
- package/dist/_chunks/{theme-toggle.agent-btmXTWdW.js → theme-toggle-B9zzCnvl.js} +179 -177
- package/dist/_chunks/theme-toggle-B9zzCnvl.js.map +1 -0
- package/dist/_chunks/{time-picker-B8AMIrX7.js → time-picker-DvPUmHH-.js} +95 -93
- package/dist/_chunks/time-picker-DvPUmHH-.js.map +1 -0
- package/dist/_chunks/{timeline.agent-CRPza9wc.js → timeline-BvmnQadS.js} +96 -96
- package/dist/_chunks/timeline-BvmnQadS.js.map +1 -0
- package/dist/_chunks/timestamp-BV2lC-wV.js.map +1 -1
- package/dist/_chunks/{toast.agent-BjEGuq1Z.js → toast.agent-BwKXA0km.js} +46 -8
- package/dist/_chunks/{toast.agent-BjEGuq1Z.js.map → toast.agent-BwKXA0km.js.map} +1 -1
- package/dist/_chunks/{tooth-scheme.agent-CWrQBjJM.js → tooth-scheme-3mITSXiZ.js} +146 -162
- package/dist/_chunks/tooth-scheme-3mITSXiZ.js.map +1 -0
- package/dist/_chunks/{transcript-panel.agent-BXEYP6w-.js → transcript-panel-Bx5ANMsv.js} +110 -101
- package/dist/_chunks/transcript-panel-Bx5ANMsv.js.map +1 -0
- package/dist/_chunks/{typing-indicator-CbUBf-Dx.js → typing-indicator-BZ5jXZPn.js} +27 -5
- package/dist/_chunks/typing-indicator-BZ5jXZPn.js.map +1 -0
- package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +1 -1
- package/dist/_chunks/{use-theme-BMUhembX.js → use-theme-B1cwAXJR.js} +2 -5
- package/dist/_chunks/use-theme-B1cwAXJR.js.map +1 -0
- package/dist/_chunks/{visually-hidden-Bw7vBHLm.js → visually-hidden-BHxEUGyT.js} +11 -2
- package/dist/_chunks/{visually-hidden-Bw7vBHLm.js.map → visually-hidden-BHxEUGyT.js.map} +1 -1
- package/dist/_chunks/{warning-stack-8Pa3pekh.js → warning-stack-VygGHSqC.js} +11 -13
- package/dist/_chunks/warning-stack-VygGHSqC.js.map +1 -0
- package/dist/_chunks/{workflow-map-D2A7rTEG.js → workflow-map-C-nlogPC.js} +430 -452
- package/dist/_chunks/workflow-map-C-nlogPC.js.map +1 -0
- package/dist/agent-catalog.json +580 -15
- package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +1 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +1 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +1 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +1 -1
- package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +1 -1
- package/dist/components/_shared/date-locale.d.ts.map +1 -1
- package/dist/components/_shared/index.d.ts +2 -2
- package/dist/components/_shared/index.d.ts.map +1 -1
- package/dist/components/_shared/normalize-diacritics.d.ts.map +1 -1
- package/dist/components/_shared/safe-html.d.ts.map +1 -1
- package/dist/components/_shared/safe-image-src.d.ts.map +1 -1
- package/dist/components/_shared/use-focus-trap.d.ts.map +1 -1
- package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/accordion/index.d.ts +1 -1
- package/dist/components/accordion/index.d.ts.map +1 -1
- package/dist/components/accordion/index.js +5 -6
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/agenda-card/agenda-card.d.ts.map +1 -1
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
- package/dist/components/agenda-tray/agenda-tray.d.ts +1 -1
- package/dist/components/agenda-tray/agenda-tray.d.ts.map +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +1 -1
- package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/index.d.ts +1 -1
- package/dist/components/alert/index.d.ts.map +1 -1
- package/dist/components/alert/index.js +1 -1
- package/dist/components/app-frame/app-frame.d.ts.map +1 -1
- package/dist/components/app-frame/index.js +1 -1
- package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -1
- package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
- package/dist/components/audio-recorder/audio-recorder.d.ts.map +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +1 -1
- package/dist/components/audio-visualiser/index.js +1 -1
- package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
- package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/avatar/avatar.d.ts.map +1 -1
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/index.js +1 -1
- package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/button/button.agent.d.ts.map +1 -1
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/icon-button.d.ts.map +1 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/button-group/button-group.d.ts.map +1 -1
- package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
- package/dist/components/calendar/calendar.d.ts.map +1 -1
- package/dist/components/calendar/contrast-warning.d.ts.map +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/index.js +1 -1
- package/dist/components/chart/chart.agent.d.ts.map +1 -1
- package/dist/components/chart/chart.d.ts.map +1 -1
- package/dist/components/chart/index.d.ts +1 -1
- package/dist/components/chart/index.d.ts.map +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/chat-container/chat-container.d.ts +1 -1
- package/dist/components/chat-container/chat-container.d.ts.map +1 -1
- package/dist/components/chat-container/index.js +2 -3
- package/dist/components/chat-container/index.js.map +1 -1
- package/dist/components/chat-input/chat-input.d.ts +1 -1
- package/dist/components/chat-input/chat-input.d.ts.map +1 -1
- package/dist/components/chat-input/index.js +3 -4
- package/dist/components/chat-input/index.js.map +1 -1
- package/dist/components/chat-message/chat-message.d.ts.map +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.agent.d.ts.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/dist/components/checkbox-group/index.d.ts +1 -1
- package/dist/components/checkbox-group/index.d.ts.map +1 -1
- package/dist/components/collapsible/collapsible.d.ts +1 -1
- package/dist/components/collapsible/collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/index.d.ts +1 -1
- package/dist/components/collapsible/index.d.ts.map +1 -1
- package/dist/components/collapsible/index.js +1 -1
- package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/combobox/index.d.ts.map +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/command-palette.d.ts +46 -13
- package/dist/components/command-palette/command-palette.d.ts.map +1 -1
- package/dist/components/command-palette/index.js +1 -1
- package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +1 -1
- package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
- package/dist/components/data-table/data-table.d.ts +3 -1
- package/dist/components/data-table/data-table.d.ts.map +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/data-table/toolbar.d.ts +6 -5
- package/dist/components/data-table/toolbar.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +1 -1
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/index.d.ts +1 -1
- package/dist/components/date-picker/index.d.ts.map +1 -1
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
- package/dist/components/date-time-picker/index.d.ts +1 -1
- package/dist/components/date-time-picker/index.d.ts.map +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/description-list/description-list.d.ts +1 -2
- package/dist/components/description-list/description-list.d.ts.map +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
- package/dist/components/dialog/dialog.d.ts +2 -2
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +11 -16
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/index.js +3 -4
- package/dist/components/dropdown-menu/index.js.map +1 -1
- package/dist/components/empty-state/empty-state.d.ts.map +1 -1
- package/dist/components/empty-state/index.js +1 -1
- package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
- package/dist/components/file-upload/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/index.d.ts +1 -1
- package/dist/components/file-upload/index.d.ts.map +1 -1
- package/dist/components/file-upload/index.js +1 -1
- package/dist/components/flag/flag.d.ts.map +1 -1
- package/dist/components/floating-action-button/floating-action-button.d.ts.map +1 -1
- package/dist/components/floating-action-button/index.js +1 -1
- package/dist/components/form-field/form-field-context.d.ts.map +1 -1
- package/dist/components/form-field/form-field.d.ts.map +1 -1
- package/dist/components/form-field/index.js +2 -2
- package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
- package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
- package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/header/header.d.ts.map +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/icon-button/index.js +1 -1
- package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
- package/dist/components/kbd/index.js +1 -1
- package/dist/components/kbd/kbd.d.ts.map +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
- package/dist/components/link/index.js +1 -1
- package/dist/components/link/link.d.ts.map +1 -1
- package/dist/components/list/index.js +1 -1
- package/dist/components/list/list.agent.d.ts.map +1 -1
- package/dist/components/list/list.d.ts.map +1 -1
- package/dist/components/live-region/live-region.d.ts.map +1 -1
- package/dist/components/logo/index.js +1 -1
- package/dist/components/logo/logo.d.ts.map +1 -1
- package/dist/components/matrix-rain/index.js +1 -1
- package/dist/components/matrix-rain/matrix-rain.d.ts.map +1 -1
- package/dist/components/message-card/index.d.ts +1 -1
- package/dist/components/message-card/index.d.ts.map +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-card/message-card.d.ts.map +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
- package/dist/components/message-tray/message-tray.d.ts +1 -1
- package/dist/components/message-tray/message-tray.d.ts.map +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
- package/dist/components/multi-select/multi-select.d.ts.map +1 -1
- package/dist/components/navigation-menu/index.js +1 -1
- package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/notification-card/index.d.ts +1 -1
- package/dist/components/notification-card/index.d.ts.map +1 -1
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-card/notification-card.d.ts.map +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
- package/dist/components/notification-tray/notification-tray.d.ts +1 -1
- package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
- package/dist/components/number-input/index.js +1 -1
- package/dist/components/number-input/number-input.d.ts.map +1 -1
- package/dist/components/number-input/use-locale-number.d.ts.map +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
- package/dist/components/otp-input/otp-input.d.ts.map +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/pagination/pagination.d.ts +4 -6
- package/dist/components/pagination/pagination.d.ts.map +1 -1
- package/dist/components/password-input/index.js +1 -1
- package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
- package/dist/components/password-input/password-input.d.ts.map +1 -1
- package/dist/components/payment-form/index.js +7 -8
- package/dist/components/payment-form/index.js.map +1 -1
- package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
- package/dist/components/payment-form/payment-form.d.ts +1 -1
- package/dist/components/payment-form/payment-form.d.ts.map +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/components/phone-input/index.d.ts +1 -1
- package/dist/components/phone-input/index.d.ts.map +1 -1
- package/dist/components/phone-input/index.js +1 -1
- package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
- package/dist/components/phone-input/phone-input.d.ts.map +1 -1
- package/dist/components/popover/index.js +3 -4
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/privacy-lock/privacy-lock.d.ts +1 -1
- package/dist/components/privacy-lock/privacy-lock.d.ts.map +1 -1
- package/dist/components/progress/index.js +3 -4
- package/dist/components/progress/index.js.map +1 -1
- package/dist/components/progress/progress.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/radio.d.ts.map +1 -1
- package/dist/components/recaptcha-widget/index.js +1 -1
- package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
- package/dist/components/recaptcha-widget/recaptcha-widget.d.ts.map +1 -1
- package/dist/components/resizable/index.d.ts +1 -1
- package/dist/components/resizable/index.d.ts.map +1 -1
- package/dist/components/resizable/index.js +1 -1
- package/dist/components/resizable/resizable-context.d.ts.map +1 -1
- package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
- package/dist/components/resizable/resizable.d.ts.map +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
- package/dist/components/scroll-area/index.js +1 -1
- package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
- package/dist/components/search-bar/index.js +1 -1
- package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
- package/dist/components/search-bar/search-bar.d.ts +1 -1
- package/dist/components/search-bar/search-bar.d.ts.map +1 -1
- package/dist/components/search-input/index.js +1 -1
- package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
- package/dist/components/search-input/search-input.d.ts.map +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/select/select.agent.d.ts.map +1 -1
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/separator/index.js +1 -1
- package/dist/components/separator/separator.d.ts.map +1 -1
- package/dist/components/sheet/index.js +3 -4
- package/dist/components/sheet/index.js.map +1 -1
- package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
- package/dist/components/sheet/sheet.d.ts +2 -2
- package/dist/components/sheet/sheet.d.ts.map +1 -1
- package/dist/components/sidebar/index.js +7 -8
- package/dist/components/sidebar/index.js.map +1 -1
- package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
- package/dist/components/sidebar/sidebar.d.ts +0 -2
- package/dist/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +1 -1
- package/dist/components/signature-capture/index.js +1 -1
- package/dist/components/signature-capture/signature-capture.d.ts.map +1 -1
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skip-link/skip-link.d.ts.map +1 -1
- package/dist/components/slider/index.js +1 -1
- package/dist/components/slider/slider.agent.d.ts.map +1 -1
- package/dist/components/slider/slider.d.ts.map +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/slot-grid/slot-grid.d.ts.map +1 -1
- package/dist/components/sparkline/index.js +1 -1
- package/dist/components/sparkline/sparkline.d.ts.map +1 -1
- package/dist/components/sparkline/use-linear-trend.d.ts.map +1 -1
- package/dist/components/spinner/index.js +1 -1
- package/dist/components/spinner/spinner.d.ts.map +1 -1
- package/dist/components/stat/index.js +1 -1
- package/dist/components/stat/stat.d.ts.map +1 -1
- package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
- package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -1
- package/dist/components/stepper-calendar/index.js +1 -1
- package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts.map +1 -1
- package/dist/components/stepper-calendar/stepper-calendar.d.ts +1 -1
- package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +1 -1
- package/dist/components/stepper-progress/index.d.ts +1 -1
- package/dist/components/stepper-progress/index.d.ts.map +1 -1
- package/dist/components/stepper-progress/index.js +1 -2
- package/dist/components/stepper-progress/index.js.map +1 -1
- package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
- package/dist/components/stepper-progress/stepper-progress.d.ts +1 -1
- package/dist/components/stepper-progress/stepper-progress.d.ts.map +1 -1
- package/dist/components/streaming-text/streaming-text.d.ts.map +1 -1
- package/dist/components/suggestion-chip/index.js +1 -1
- package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
- package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +1 -1
- package/dist/components/switch/index.js +1 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/index.d.ts.map +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tag/index.js +1 -1
- package/dist/components/tag/tag.d.ts.map +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-card/task-card.d.ts.map +1 -1
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
- package/dist/components/task-tray/task-tray.d.ts +1 -1
- package/dist/components/task-tray/task-tray.d.ts.map +1 -1
- package/dist/components/text-area/index.js +1 -1
- package/dist/components/text-area/text-area.d.ts.map +1 -1
- package/dist/components/text-input/index.js +1 -1
- package/dist/components/text-input/text-input.d.ts.map +1 -1
- package/dist/components/theme-root/index.js +1 -1
- package/dist/components/theme-root/theme-root.d.ts.map +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/theme-toggle/theme-toggle.d.ts +1 -1
- package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
- package/dist/components/time-picker/index.js +1 -1
- package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +1 -1
- package/dist/components/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
- package/dist/components/timeline/timeline.d.ts +1 -1
- package/dist/components/timeline/timeline.d.ts.map +1 -1
- package/dist/components/timestamp/timestamp.d.ts.map +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/toast/toast.agent.d.ts.map +1 -1
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
- package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
- package/dist/components/tooth-scheme/tooth-scheme.d.ts +1 -1
- package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
- package/dist/components/transcript-panel/transcript-panel.d.ts +1 -1
- package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -1
- package/dist/components/typing-indicator/index.js +1 -1
- package/dist/components/typing-indicator/typing-indicator.d.ts.map +1 -1
- package/dist/components/visually-hidden/index.js +1 -1
- package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/components/workflow/workflow-card.d.ts.map +1 -1
- package/dist/components/workflow/workflow-editor.d.ts +1 -1
- package/dist/components/workflow/workflow-editor.d.ts.map +1 -1
- package/dist/components/workflow/workflow-map.d.ts.map +1 -1
- package/dist/components/workflow/workflow-types.d.ts.map +1 -1
- package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/use-prefers-reduced-motion.d.ts.map +1 -1
- package/dist/hooks/use-theme.d.ts.map +1 -1
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/i18n/config.js.map +1 -1
- package/dist/i18n/resources.d.ts.map +1 -1
- package/dist/index.js +392 -402
- package/dist/index.js.map +1 -1
- package/dist/patterns/leo-assistant/index.js +1 -1
- package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +1 -1
- package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/patterns/patient-shell/patient-shell.d.ts.map +1 -1
- package/dist/safe-html/index.js +20 -3
- package/dist/safe-html/index.js.map +1 -1
- package/dist/tokens/apexcharts-theme.d.ts.map +1 -1
- package/dist/tokens.css +2 -2
- package/package.json +12 -2
- package/dist/_chunks/accordion-BEnrZmAn.js +0 -120
- package/dist/_chunks/accordion-BEnrZmAn.js.map +0 -1
- package/dist/_chunks/accordion.agent-BTjeO1Sx.js +0 -52
- package/dist/_chunks/accordion.agent-BTjeO1Sx.js.map +0 -1
- package/dist/_chunks/agenda-card-DwLIxgi7.js.map +0 -1
- package/dist/_chunks/agenda-tray-DUvengGQ.js.map +0 -1
- package/dist/_chunks/ai-prompt-input.agent-0NHYLTWD.js.map +0 -1
- package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
- package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
- package/dist/_chunks/audio-recorder.agent--VKeykUp.js.map +0 -1
- package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
- package/dist/_chunks/autocomplete.agent-Dh7KioS6.js +0 -432
- package/dist/_chunks/autocomplete.agent-Dh7KioS6.js.map +0 -1
- package/dist/_chunks/badge-mrstWxve.js.map +0 -1
- package/dist/_chunks/balance-cell-renderer-5CA7zpAi.js.map +0 -1
- package/dist/_chunks/breadcrumb.agent-GM2hAKFX.js.map +0 -1
- package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
- package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
- package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
- package/dist/_chunks/chart.agent-_pRYS17d.js.map +0 -1
- package/dist/_chunks/chat-container-Dl0Kfy5a.js +0 -175
- package/dist/_chunks/chat-container-Dl0Kfy5a.js.map +0 -1
- package/dist/_chunks/chat-container.agent-CM4WModE.js +0 -27
- package/dist/_chunks/chat-container.agent-CM4WModE.js.map +0 -1
- package/dist/_chunks/chat-input-C_tMQv92.js +0 -252
- package/dist/_chunks/chat-input-C_tMQv92.js.map +0 -1
- package/dist/_chunks/chat-input.agent-Bsz3ckGa.js +0 -69
- package/dist/_chunks/chat-input.agent-Bsz3ckGa.js.map +0 -1
- package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
- package/dist/_chunks/collapsible.agent-DkS1jVyn.js.map +0 -1
- package/dist/_chunks/color-picker-94qcBZqZ.js.map +0 -1
- package/dist/_chunks/combobox.agent-CAvUkkIe.js +0 -410
- package/dist/_chunks/combobox.agent-CAvUkkIe.js.map +0 -1
- package/dist/_chunks/command-palette.agent-HatEt_EM.js +0 -391
- package/dist/_chunks/command-palette.agent-HatEt_EM.js.map +0 -1
- package/dist/_chunks/date-range-picker-B2hGsffw.js.map +0 -1
- package/dist/_chunks/date-time-picker-Bzt0S8yO.js.map +0 -1
- package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
- package/dist/_chunks/dialog.agent-Daf1TTko.js +0 -179
- package/dist/_chunks/dialog.agent-Daf1TTko.js.map +0 -1
- package/dist/_chunks/dropdown-menu-C7AZipNz.js +0 -219
- package/dist/_chunks/dropdown-menu-C7AZipNz.js.map +0 -1
- package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js +0 -43
- package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js.map +0 -1
- package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
- package/dist/_chunks/file-upload.agent-DJaH2dHg.js +0 -681
- package/dist/_chunks/file-upload.agent-DJaH2dHg.js.map +0 -1
- package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
- package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
- package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
- package/dist/_chunks/freemium-paywall.agent-_nQqLyRF.js.map +0 -1
- package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
- package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
- package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
- package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
- package/dist/_chunks/leo-sidebar-BwINPdix.js.map +0 -1
- package/dist/_chunks/link-QheANk74.js.map +0 -1
- package/dist/_chunks/list.agent-D0iWt4VI.js +0 -420
- package/dist/_chunks/list.agent-D0iWt4VI.js.map +0 -1
- package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
- package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
- package/dist/_chunks/message-card-qhoGv947.js.map +0 -1
- package/dist/_chunks/message-tray-xHUCra-Y.js.map +0 -1
- package/dist/_chunks/multi-select.agent-Do6CeQUT.js.map +0 -1
- package/dist/_chunks/navigation-menu.agent-D69ND6Qq.js.map +0 -1
- package/dist/_chunks/notification-card-CsVEYJE-.js.map +0 -1
- package/dist/_chunks/notification-tray-DTXMq42J.js.map +0 -1
- package/dist/_chunks/number-input-fvGmnRy9.js.map +0 -1
- package/dist/_chunks/otp-input-EglXOUue.js.map +0 -1
- package/dist/_chunks/pagination.agent-BkZQl45y.js.map +0 -1
- package/dist/_chunks/password-input-D6kuYXmr.js.map +0 -1
- package/dist/_chunks/payment-form-BWaXas8z.js.map +0 -1
- package/dist/_chunks/payment-form.agent-kuIfodCj.js +0 -31
- package/dist/_chunks/payment-form.agent-kuIfodCj.js.map +0 -1
- package/dist/_chunks/pdf-viewer.agent-BaGEDheA.js.map +0 -1
- package/dist/_chunks/phone-input-C8Op4sEc.js.map +0 -1
- package/dist/_chunks/popover-kFN8s84V.js +0 -229
- package/dist/_chunks/popover-kFN8s84V.js.map +0 -1
- package/dist/_chunks/popover.agent-K_d1cfbj.js +0 -39
- package/dist/_chunks/popover.agent-K_d1cfbj.js.map +0 -1
- package/dist/_chunks/privacy-lock.agent-C1i1-T58.js.map +0 -1
- package/dist/_chunks/progress-wNsqkw8I.js +0 -253
- package/dist/_chunks/progress-wNsqkw8I.js.map +0 -1
- package/dist/_chunks/progress.agent-C68rDOXL.js +0 -27
- package/dist/_chunks/progress.agent-C68rDOXL.js.map +0 -1
- package/dist/_chunks/recaptcha-widget.agent-BGHpU5zD.js.map +0 -1
- package/dist/_chunks/resizable.agent-CMwZzvsi.js +0 -456
- package/dist/_chunks/resizable.agent-CMwZzvsi.js.map +0 -1
- package/dist/_chunks/rich-text-editor.agent-DnE125Tz.js.map +0 -1
- package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
- package/dist/_chunks/search-bar.agent-DxFAxctc.js.map +0 -1
- package/dist/_chunks/search-input-Xw3cdWXW.js.map +0 -1
- package/dist/_chunks/select-DY1Cb2Tg.js.map +0 -1
- package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
- package/dist/_chunks/sheet-B9kH9pcI.js.map +0 -1
- package/dist/_chunks/sheet.agent-QAyTOxgk.js +0 -46
- package/dist/_chunks/sheet.agent-QAyTOxgk.js.map +0 -1
- package/dist/_chunks/sidebar-CHF5xr_P.js.map +0 -1
- package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js +0 -49
- package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js.map +0 -1
- package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
- package/dist/_chunks/signature-capture.agent-BpeDwFht.js.map +0 -1
- package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
- package/dist/_chunks/slider-CcsQTZTA.js.map +0 -1
- package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
- package/dist/_chunks/sparkline.agent-56Sj7nOP.js.map +0 -1
- package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
- package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
- package/dist/_chunks/stepper-calendar.agent-9iT3ClIB.js.map +0 -1
- package/dist/_chunks/stepper-progress-Bmen-YXB.js +0 -149
- package/dist/_chunks/stepper-progress-Bmen-YXB.js.map +0 -1
- package/dist/_chunks/stepper-progress.agent-q9InWca4.js +0 -61
- package/dist/_chunks/stepper-progress.agent-q9InWca4.js.map +0 -1
- package/dist/_chunks/suggestion-chip-DhFrkRPj.js.map +0 -1
- package/dist/_chunks/switch-BYEH8I53.js.map +0 -1
- package/dist/_chunks/tabs.agent-h7NvsTR1.js.map +0 -1
- package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
- package/dist/_chunks/task-card-CY5ztNkU.js.map +0 -1
- package/dist/_chunks/task-tray-CCoUdorl.js.map +0 -1
- package/dist/_chunks/text-area-C_M8wliK.js.map +0 -1
- package/dist/_chunks/text-input-BX39e6T6.js.map +0 -1
- package/dist/_chunks/theme-toggle.agent-btmXTWdW.js.map +0 -1
- package/dist/_chunks/time-picker-B8AMIrX7.js.map +0 -1
- package/dist/_chunks/timeline.agent-CRPza9wc.js.map +0 -1
- package/dist/_chunks/tooth-scheme.agent-CWrQBjJM.js.map +0 -1
- package/dist/_chunks/transcript-panel.agent-BXEYP6w-.js.map +0 -1
- package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
- package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
- package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
- package/dist/_chunks/workflow-map-D2A7rTEG.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-select-wqqrgjUQ.js","sources":["../../src/components/multi-select/multi-select.agent.ts","../../src/components/multi-select/multi-select.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { MultiSelectHandle } from './multi-select';\n\nexport const multiSelectAgent: AgentAdapter<MultiSelectHandle> = {\n id: 'multi-select',\n capabilities: ['select_multiple', 'filter', 'open', 'close'],\n state: {\n selection: {\n type: 'string[]',\n description: 'Values of currently-selected options.',\n read: (handle) => handle.getSelection(),\n },\n query: {\n type: 'string',\n description: 'Current filter query.',\n read: (handle) => handle.getQuery(),\n },\n isOpen: {\n type: 'boolean',\n description: 'True when the option list is visible.',\n read: (handle) => handle.getIsOpen(),\n },\n },\n actions: {\n set_selection: {\n safety: 'read',\n argsType: '{ values: string[] }',\n description:\n 'Replace the current selection with the given list of values.',\n invoke: (handle, args: { values: string[] }) => {\n handle.setSelection(args.values);\n },\n },\n clear_selection: {\n safety: 'read',\n description: 'Clear the current selection.',\n invoke: (handle) => {\n handle.clearSelection();\n },\n },\n apply_filter: {\n safety: 'read',\n argsType: '{ query: string }',\n description: 'Set the filter query for the option list.',\n invoke: (handle, args: { query: string }) => {\n handle.setQuery(args.query);\n },\n },\n open: {\n safety: 'read',\n description: 'Open the option list.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n description: 'Close the option list.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'multi-select' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description: 'Each option emits its value as data-option-id.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useContext,\n useEffect,\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';\nimport { useAgentRegistration } from '../../agent';\nimport { multiSelectAgent } from './multi-select.agent';\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\n// Curated agent-readiness handle — see multi-select.agent.ts.\nexport interface MultiSelectHandle {\n getSelection: () => string[];\n getQuery: () => string;\n getIsOpen: () => boolean;\n setSelection: (values: string[]) => void;\n clearSelection: () => void;\n setQuery: (query: string) => void;\n open: () => void;\n close: () => void;\n}\n\nexport interface MultiSelectProps<T extends string = string>\n extends\n 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.filter((o) => !o.disabled).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 // Agent handle — refs for fresh reads from the memoized handle.\n const valueRef = useRef<string[]>(currentValue);\n useEffect(() => {\n valueRef.current = currentValue;\n }, [currentValue]);\n const queryRef = useRef<string>(query);\n useEffect(() => {\n queryRef.current = query;\n }, [query]);\n const openRef = useRef<boolean>(open);\n useEffect(() => {\n openRef.current = open;\n }, [open]);\n\n const commitStable = useCallback(\n (next: string[]) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const agentHandle = useMemo<MultiSelectHandle>(\n () => ({\n getSelection: () => [...valueRef.current],\n getQuery: () => queryRef.current,\n getIsOpen: () => openRef.current,\n setSelection: (values) => commitStable(values),\n clearSelection: () => commitStable([]),\n setQuery: (next) => setQuery(next),\n open: () => setOpen(true),\n close: () => setOpen(false),\n }),\n [commitStable],\n );\n useAgentRegistration(multiSelectAgent, agentHandle, id);\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 = (e: KeyboardEvent<HTMLInputElement>): 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 || 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 {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -- compound input shell; keyboard handling lives on the inner searchable input which is always rendered */}\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 data-component-id={id}\n onClick={(event) => {\n onClickProp?.(event);\n handleTriggerClick(event);\n }}\n {...restDivProps}\n >\n {visibleChips.map((chip, idx) => (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- chip pill receives focus via roving tabindex; chip removal uses an inner button\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 = 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 ? (\n <Check className=\"ds:size-3.5\" />\n ) : null}\n </span>\n <span className=\"ds:flex-1 ds:text-start\">\n {option.label}\n </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"],"names":["multiSelectAgent","handle","args","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","valueRef","useEffect","queryRef","openRef","commitStable","useCallback","agentHandle","values","useAgentRegistration","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"],"mappings":"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"}
|
|
@@ -1,24 +1,95 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as p, jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as n, useRef as I, useState as k, useCallback as z, useMemo as C, useImperativeHandle as B } from "react";
|
|
3
3
|
import * as o from "@radix-ui/react-navigation-menu";
|
|
4
|
-
import { Slot as
|
|
5
|
-
import { c as
|
|
4
|
+
import { Slot as R } from "@radix-ui/react-slot";
|
|
5
|
+
import { c as L } from "./index-D2ZczOXr.js";
|
|
6
6
|
import { useTranslation as T } from "react-i18next";
|
|
7
|
-
import { u as
|
|
7
|
+
import { u as A } from "./use-direction-D6rvvG9G.js";
|
|
8
|
+
import { u as K } from "./registry-C9nwlNyL.js";
|
|
8
9
|
import { C as O } from "./chevron-down-BX_NP2Yh.js";
|
|
9
|
-
const S =
|
|
10
|
+
const S = {
|
|
11
|
+
id: "navigation-menu",
|
|
12
|
+
capabilities: ["select_single", "navigate", "open", "close"],
|
|
13
|
+
state: {
|
|
14
|
+
activeItem: {
|
|
15
|
+
type: "string | null",
|
|
16
|
+
descriptionKey: "ui.agent.navigationMenu.state.activeItem",
|
|
17
|
+
description: "Id of the currently-active top-level navigation item, or null when none is active.",
|
|
18
|
+
read: (e) => e.getActiveItem() ?? null
|
|
19
|
+
},
|
|
20
|
+
isOpen: {
|
|
21
|
+
type: "boolean",
|
|
22
|
+
descriptionKey: "ui.agent.navigationMenu.state.isOpen",
|
|
23
|
+
description: "Whether a dropdown / mega-menu panel is currently open.",
|
|
24
|
+
read: (e) => e.getIsOpen()
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
actions: {
|
|
28
|
+
select_item: {
|
|
29
|
+
safety: "read",
|
|
30
|
+
argsType: "{ id: string }",
|
|
31
|
+
descriptionKey: "ui.agent.navigationMenu.actions.selectItem",
|
|
32
|
+
description: "Activate (open) the top-level item with the given id.",
|
|
33
|
+
invoke: (e, t) => {
|
|
34
|
+
e.selectItem(t.id);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
open: {
|
|
38
|
+
safety: "read",
|
|
39
|
+
argsType: "{ id: string }",
|
|
40
|
+
descriptionKey: "ui.agent.navigationMenu.actions.open",
|
|
41
|
+
description: "Open the dropdown / mega-menu panel for the given top-level item id.",
|
|
42
|
+
invoke: (e, t) => {
|
|
43
|
+
e.open(t.id);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
close: {
|
|
47
|
+
safety: "read",
|
|
48
|
+
descriptionKey: "ui.agent.navigationMenu.actions.close",
|
|
49
|
+
description: "Close any open dropdown / mega-menu panel.",
|
|
50
|
+
invoke: (e) => {
|
|
51
|
+
e.close();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
domHooks: {
|
|
56
|
+
root: {
|
|
57
|
+
attr: "data-component",
|
|
58
|
+
value: "navigation-menu",
|
|
59
|
+
description: "Marks the NavigationMenu root."
|
|
60
|
+
},
|
|
61
|
+
instanceId: {
|
|
62
|
+
attr: "data-component-id",
|
|
63
|
+
sourceProp: "id",
|
|
64
|
+
description: "Sourced from the id prop. Required to address a specific menu from the agent."
|
|
65
|
+
},
|
|
66
|
+
item: {
|
|
67
|
+
attr: "data-nav-id",
|
|
68
|
+
description: "Stable opaque id of a top-level navigation item. Selection / open targets this attribute."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, V = [
|
|
10
72
|
"ds:relative ds:z-[var(--z-dropdown)]",
|
|
11
73
|
"ds:flex ds:max-w-max ds:items-center ds:justify-center"
|
|
12
|
-
].join(" "),
|
|
13
|
-
({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
74
|
+
].join(" "), q = n(
|
|
75
|
+
({
|
|
76
|
+
"aria-label": e,
|
|
77
|
+
className: t,
|
|
78
|
+
children: a,
|
|
79
|
+
id: i,
|
|
80
|
+
value: c,
|
|
81
|
+
defaultValue: h,
|
|
82
|
+
onValueChange: m,
|
|
83
|
+
...b
|
|
84
|
+
}, N) => {
|
|
85
|
+
const { t: w } = T(), u = I(null), y = A(u), v = c !== void 0, [x, M] = k(
|
|
86
|
+
h ?? ""
|
|
87
|
+
), r = v ? c : x, l = z(
|
|
17
88
|
(d) => {
|
|
18
|
-
|
|
89
|
+
v || M(d), m == null || m(d);
|
|
19
90
|
},
|
|
20
|
-
[
|
|
21
|
-
),
|
|
91
|
+
[v, m]
|
|
92
|
+
), j = C(
|
|
22
93
|
() => ({
|
|
23
94
|
getActiveItem: () => r || null,
|
|
24
95
|
getIsOpen: () => !!r,
|
|
@@ -28,45 +99,49 @@ const S = [
|
|
|
28
99
|
}),
|
|
29
100
|
[r, l]
|
|
30
101
|
);
|
|
31
|
-
return B(
|
|
102
|
+
return B(
|
|
103
|
+
N,
|
|
104
|
+
() => u.current,
|
|
105
|
+
[]
|
|
106
|
+
), K(S, j, i), /* @__PURE__ */ p(
|
|
32
107
|
o.Root,
|
|
33
108
|
{
|
|
34
|
-
ref:
|
|
35
|
-
dir:
|
|
36
|
-
"aria-label": e ??
|
|
37
|
-
className: [
|
|
109
|
+
ref: u,
|
|
110
|
+
dir: y,
|
|
111
|
+
"aria-label": e ?? w("ui.navigation.nav.label"),
|
|
112
|
+
className: [V, t].filter(Boolean).join(" "),
|
|
38
113
|
id: i,
|
|
39
114
|
"data-component": "navigation-menu",
|
|
40
115
|
"data-component-id": i,
|
|
41
116
|
value: r,
|
|
42
117
|
onValueChange: l,
|
|
43
|
-
...
|
|
118
|
+
...b,
|
|
44
119
|
children: [
|
|
45
120
|
a,
|
|
46
|
-
/* @__PURE__ */ s(
|
|
121
|
+
/* @__PURE__ */ s(f, {})
|
|
47
122
|
]
|
|
48
123
|
}
|
|
49
124
|
);
|
|
50
125
|
}
|
|
51
126
|
);
|
|
52
|
-
|
|
53
|
-
const
|
|
127
|
+
q.displayName = "NavigationMenu";
|
|
128
|
+
const D = [
|
|
54
129
|
"ds:group ds:flex ds:flex-1",
|
|
55
130
|
"ds:list-none ds:items-center ds:justify-center",
|
|
56
131
|
"ds:gap-[var(--spacing-xs)]",
|
|
57
132
|
"ds:m-0 ds:ps-0"
|
|
58
|
-
].join(" "),
|
|
133
|
+
].join(" "), H = n(({ className: e, ...t }, a) => /* @__PURE__ */ s(
|
|
59
134
|
o.List,
|
|
60
135
|
{
|
|
61
136
|
ref: a,
|
|
62
|
-
className: [
|
|
137
|
+
className: [D, e].filter(Boolean).join(" "),
|
|
63
138
|
...t
|
|
64
139
|
}
|
|
65
140
|
));
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
const
|
|
141
|
+
H.displayName = "NavigationMenuList";
|
|
142
|
+
const _ = n(({ navId: e, ...t }, a) => /* @__PURE__ */ s(o.Item, { ref: a, "data-nav-id": e, ...t }));
|
|
143
|
+
_.displayName = "NavigationMenuItem";
|
|
144
|
+
const P = [
|
|
70
145
|
"ds:group ds:inline-flex ds:items-center ds:justify-center",
|
|
71
146
|
"ds:min-h-[var(--min-target-size)]",
|
|
72
147
|
"ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-sm)]",
|
|
@@ -80,24 +155,24 @@ const H = [
|
|
|
80
155
|
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
|
|
81
156
|
"ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
|
|
82
157
|
"ds:gap-[var(--spacing-xs)]"
|
|
83
|
-
].join(" "),
|
|
158
|
+
].join(" "), W = [
|
|
84
159
|
"ds:size-3 ds:transition-transform ds:duration-[var(--animation-duration)]",
|
|
85
160
|
"ds:group-data-[state=open]:rotate-180",
|
|
86
161
|
"ds:rtl:-scale-x-100 ds:motion-reduce:transition-none"
|
|
87
|
-
].join(" "),
|
|
162
|
+
].join(" "), E = n(({ className: e, children: t, ...a }, i) => /* @__PURE__ */ p(
|
|
88
163
|
o.Trigger,
|
|
89
164
|
{
|
|
90
165
|
ref: i,
|
|
91
|
-
className: [
|
|
166
|
+
className: [P, e].filter(Boolean).join(" "),
|
|
92
167
|
...a,
|
|
93
168
|
children: [
|
|
94
169
|
t,
|
|
95
|
-
/* @__PURE__ */ s(O, { "aria-hidden": "true", className:
|
|
170
|
+
/* @__PURE__ */ s(O, { "aria-hidden": "true", className: W })
|
|
96
171
|
]
|
|
97
172
|
}
|
|
98
173
|
));
|
|
99
|
-
|
|
100
|
-
const
|
|
174
|
+
E.displayName = "NavigationMenuTrigger";
|
|
175
|
+
const F = [
|
|
101
176
|
"ds:absolute ds:start-0 ds:top-0 ds:w-full",
|
|
102
177
|
"ds:md:w-auto",
|
|
103
178
|
"ds:bg-[var(--background)] ds:text-[var(--foreground)]",
|
|
@@ -113,7 +188,7 @@ const W = [
|
|
|
113
188
|
"ds:data-[motion=to-start]:slide-out-to-left-52 ds:rtl:data-[motion=to-start]:slide-out-to-right-52",
|
|
114
189
|
"ds:data-[motion=to-end]:slide-out-to-right-52 ds:rtl:data-[motion=to-end]:slide-out-to-left-52",
|
|
115
190
|
"ds:motion-reduce:animate-none"
|
|
116
|
-
].join(" "),
|
|
191
|
+
].join(" "), G = L(F, {
|
|
117
192
|
variants: {
|
|
118
193
|
layout: {
|
|
119
194
|
simple: "ds:min-w-[16rem]",
|
|
@@ -121,16 +196,16 @@ const W = [
|
|
|
121
196
|
}
|
|
122
197
|
},
|
|
123
198
|
defaultVariants: { layout: "simple" }
|
|
124
|
-
}),
|
|
199
|
+
}), J = n(({ layout: e, className: t, ...a }, i) => /* @__PURE__ */ s(
|
|
125
200
|
o.Content,
|
|
126
201
|
{
|
|
127
202
|
ref: i,
|
|
128
|
-
className:
|
|
203
|
+
className: G({ layout: e, className: t }),
|
|
129
204
|
...a
|
|
130
205
|
}
|
|
131
206
|
));
|
|
132
|
-
|
|
133
|
-
const
|
|
207
|
+
J.displayName = "NavigationMenuContent";
|
|
208
|
+
const g = [
|
|
134
209
|
"ds:block ds:rounded-[var(--radius-sm)]",
|
|
135
210
|
"ds:min-h-[var(--min-target-size)]",
|
|
136
211
|
"ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
|
|
@@ -145,33 +220,33 @@ const p = [
|
|
|
145
220
|
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
146
221
|
"ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
147
222
|
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
|
|
148
|
-
].join(" "),
|
|
223
|
+
].join(" "), Q = n(({ asChild: e = !1, className: t, children: a, ...i }, c) => /* @__PURE__ */ s(
|
|
149
224
|
o.Link,
|
|
150
225
|
{
|
|
151
226
|
ref: c,
|
|
152
227
|
asChild: e,
|
|
153
|
-
className: e ? void 0 : [
|
|
228
|
+
className: e ? void 0 : [g, t].filter(Boolean).join(" "),
|
|
154
229
|
...i,
|
|
155
|
-
children: e ? /* @__PURE__ */ s(
|
|
230
|
+
children: e ? /* @__PURE__ */ s(R, { className: [g, t].filter(Boolean).join(" "), children: a }) : a
|
|
156
231
|
}
|
|
157
232
|
));
|
|
158
|
-
|
|
159
|
-
const
|
|
233
|
+
Q.displayName = "NavigationMenuLink";
|
|
234
|
+
const U = [
|
|
160
235
|
"ds:top-full ds:z-[1] ds:flex ds:h-2 ds:items-end ds:justify-center ds:overflow-hidden",
|
|
161
236
|
"ds:data-[state=visible]:animate-in ds:data-[state=hidden]:animate-out",
|
|
162
237
|
"ds:data-[state=visible]:fade-in ds:data-[state=hidden]:fade-out",
|
|
163
238
|
"ds:motion-reduce:animate-none"
|
|
164
|
-
].join(" "),
|
|
239
|
+
].join(" "), X = n(({ className: e, ...t }, a) => /* @__PURE__ */ s(
|
|
165
240
|
o.Indicator,
|
|
166
241
|
{
|
|
167
242
|
ref: a,
|
|
168
|
-
className: [
|
|
243
|
+
className: [U, e].filter(Boolean).join(" "),
|
|
169
244
|
...t,
|
|
170
245
|
children: /* @__PURE__ */ s("span", { className: "ds:relative ds:top-[60%] ds:h-2 ds:w-2 ds:rotate-45 ds:rounded-tl-sm ds:bg-[var(--border)]" })
|
|
171
246
|
}
|
|
172
247
|
));
|
|
173
|
-
|
|
174
|
-
const
|
|
248
|
+
X.displayName = "NavigationMenuIndicator";
|
|
249
|
+
const Y = [
|
|
175
250
|
"ds:origin-top-center ds:relative ds:mt-[var(--spacing-xs)]",
|
|
176
251
|
"ds:h-[var(--radix-navigation-menu-viewport-height)]",
|
|
177
252
|
"ds:w-full ds:overflow-hidden",
|
|
@@ -181,86 +256,24 @@ const U = [
|
|
|
181
256
|
"ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
|
|
182
257
|
"ds:data-[state=open]:zoom-in-90 ds:data-[state=closed]:zoom-out-95",
|
|
183
258
|
"ds:motion-reduce:animate-none"
|
|
184
|
-
].join(" "),
|
|
259
|
+
].join(" "), f = n(({ className: e, ...t }, a) => /* @__PURE__ */ s("div", { className: "ds:absolute ds:start-0 ds:top-full ds:flex ds:justify-center", children: /* @__PURE__ */ s(
|
|
185
260
|
o.Viewport,
|
|
186
261
|
{
|
|
187
262
|
ref: a,
|
|
188
|
-
className: [
|
|
263
|
+
className: [Y, e].filter(Boolean).join(" "),
|
|
189
264
|
...t
|
|
190
265
|
}
|
|
191
266
|
) }));
|
|
192
|
-
|
|
193
|
-
const se = {
|
|
194
|
-
id: "navigation-menu",
|
|
195
|
-
capabilities: ["select_single", "navigate", "open", "close"],
|
|
196
|
-
state: {
|
|
197
|
-
activeItem: {
|
|
198
|
-
type: "string | null",
|
|
199
|
-
descriptionKey: "ui.agent.navigationMenu.state.activeItem",
|
|
200
|
-
description: "Id of the currently-active top-level navigation item, or null when none is active.",
|
|
201
|
-
read: (e) => e.getActiveItem() ?? null
|
|
202
|
-
},
|
|
203
|
-
isOpen: {
|
|
204
|
-
type: "boolean",
|
|
205
|
-
descriptionKey: "ui.agent.navigationMenu.state.isOpen",
|
|
206
|
-
description: "Whether a dropdown / mega-menu panel is currently open.",
|
|
207
|
-
read: (e) => e.getIsOpen()
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
actions: {
|
|
211
|
-
select_item: {
|
|
212
|
-
safety: "read",
|
|
213
|
-
argsType: "{ id: string }",
|
|
214
|
-
descriptionKey: "ui.agent.navigationMenu.actions.selectItem",
|
|
215
|
-
description: "Activate (open) the top-level item with the given id.",
|
|
216
|
-
invoke: (e, t) => {
|
|
217
|
-
e.selectItem(t.id);
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
open: {
|
|
221
|
-
safety: "read",
|
|
222
|
-
argsType: "{ id: string }",
|
|
223
|
-
descriptionKey: "ui.agent.navigationMenu.actions.open",
|
|
224
|
-
description: "Open the dropdown / mega-menu panel for the given top-level item id.",
|
|
225
|
-
invoke: (e, t) => {
|
|
226
|
-
e.open(t.id);
|
|
227
|
-
}
|
|
228
|
-
},
|
|
229
|
-
close: {
|
|
230
|
-
safety: "read",
|
|
231
|
-
descriptionKey: "ui.agent.navigationMenu.actions.close",
|
|
232
|
-
description: "Close any open dropdown / mega-menu panel.",
|
|
233
|
-
invoke: (e) => {
|
|
234
|
-
e.close();
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
},
|
|
238
|
-
domHooks: {
|
|
239
|
-
root: {
|
|
240
|
-
attr: "data-component",
|
|
241
|
-
value: "navigation-menu",
|
|
242
|
-
description: "Marks the NavigationMenu root."
|
|
243
|
-
},
|
|
244
|
-
instanceId: {
|
|
245
|
-
attr: "data-component-id",
|
|
246
|
-
sourceProp: "id",
|
|
247
|
-
description: "Sourced from the id prop. Required to address a specific menu from the agent."
|
|
248
|
-
},
|
|
249
|
-
item: {
|
|
250
|
-
attr: "data-nav-id",
|
|
251
|
-
description: "Stable opaque id of a top-level navigation item. Selection / open targets this attribute."
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
};
|
|
267
|
+
f.displayName = "NavigationMenuViewport";
|
|
255
268
|
export {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
269
|
+
q as N,
|
|
270
|
+
J as a,
|
|
271
|
+
X as b,
|
|
272
|
+
_ as c,
|
|
273
|
+
Q as d,
|
|
274
|
+
H as e,
|
|
275
|
+
E as f,
|
|
276
|
+
f as g,
|
|
277
|
+
S as n
|
|
265
278
|
};
|
|
266
|
-
//# sourceMappingURL=navigation-menu
|
|
279
|
+
//# sourceMappingURL=navigation-menu-ClbHeawy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-menu-ClbHeawy.js","sources":["../../src/components/navigation-menu/navigation-menu.agent.ts","../../src/components/navigation-menu/navigation-menu.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — NavigationMenu. */\n/* */\n/* NavigationMenu is the primary top-bar navigation. It exposes the */\n/* currently-active item id (when the consumer routes through the kit), */\n/* the open/closed state of its dropdown, and lets an agent open, close, */\n/* or select a top-level item by id. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the full contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { NavigationMenuHandle } from './navigation-menu';\n\nexport const navigationMenuAgent: AgentAdapter<NavigationMenuHandle> = {\n id: 'navigation-menu',\n capabilities: ['select_single', 'navigate', 'open', 'close'],\n state: {\n activeItem: {\n type: 'string | null',\n descriptionKey: 'ui.agent.navigationMenu.state.activeItem',\n description:\n 'Id of the currently-active top-level navigation item, or null when none is active.',\n read: (handle) => handle.getActiveItem() ?? null,\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.navigationMenu.state.isOpen',\n description: 'Whether a dropdown / mega-menu panel is currently open.',\n read: (handle) => handle.getIsOpen(),\n },\n },\n actions: {\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.navigationMenu.actions.selectItem',\n description: 'Activate (open) the top-level item with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n open: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.navigationMenu.actions.open',\n description:\n 'Open the dropdown / mega-menu panel for the given top-level item id.',\n invoke: (handle, args: { id: string }) => {\n handle.open(args.id);\n },\n },\n close: {\n safety: 'read',\n descriptionKey: 'ui.agent.navigationMenu.actions.close',\n description: 'Close any open dropdown / mega-menu panel.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'navigation-menu',\n description: 'Marks the NavigationMenu root.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific menu from the agent.',\n },\n item: {\n attr: 'data-nav-id',\n description:\n 'Stable opaque id of a top-level navigation item. Selection / open targets this attribute.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\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';\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';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { navigationMenuAgent } from './navigation-menu.agent';\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 extends ComponentPropsWithoutRef<\n typeof RadixNavigationMenu.Root\n> {\n 'aria-label'?: string;\n /**\n * Consumer-supplied instance id, surfaced as `data-component-id` so an\n * agent / UI bridge can address this instance.\n */\n id?: string;\n}\n\n/**\n * Imperative handle for agent-readiness. Exposes the active top-level\n * item id + open/closed state, and lets external drivers select / open /\n * close panels by item id.\n */\nexport interface NavigationMenuHandle {\n getActiveItem: () => string | null;\n getIsOpen: () => boolean;\n selectItem: (id: string) => void;\n open: (id: string) => void;\n close: () => void;\n}\n\ntype NavigationMenuRootElement = ElementRef<typeof RadixNavigationMenu.Root>;\n\nconst NavigationMenu = forwardRef<\n NavigationMenuRootElement,\n NavigationMenuProps\n>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n children,\n id,\n value,\n defaultValue,\n onValueChange,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const rootRef = useRef<ElementRef<typeof RadixNavigationMenu.Root>>(null);\n const dir = useDirection(rootRef);\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? '',\n );\n const activeValue = isControlled ? value : internalValue;\n\n const handleValueChange = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n const handle = useMemo<NavigationMenuHandle>(\n () => ({\n getActiveItem: () => (activeValue ? activeValue : null),\n getIsOpen: () => Boolean(activeValue),\n selectItem: (nextId: string) => handleValueChange(nextId),\n open: (nextId: string) => handleValueChange(nextId),\n close: () => handleValueChange(''),\n }),\n [activeValue, handleValueChange],\n );\n useImperativeHandle(\n ref,\n () => rootRef.current as NavigationMenuRootElement,\n [],\n );\n useAgentRegistration(navigationMenuAgent, handle, id);\n\n return (\n <RadixNavigationMenu.Root\n ref={rootRef}\n dir={dir}\n aria-label={ariaLabel ?? t('ui.navigation.nav.label')}\n className={[rootClasses, className].filter(Boolean).join(' ')}\n id={id}\n data-component=\"navigation-menu\"\n data-component-id={id}\n value={activeValue}\n onValueChange={handleValueChange}\n {...rest}\n >\n {children}\n <NavigationMenuViewport />\n </RadixNavigationMenu.Root>\n );\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\nexport interface NavigationMenuItemProps extends ComponentPropsWithoutRef<\n typeof RadixNavigationMenu.Item\n> {\n /**\n * Stable opaque id of this top-level item. When provided, emitted as\n * `data-nav-id` so an agent / UI bridge can target the item. Distinct\n * from Radix's internal `value`, which controls open-state matching;\n * pass the same string to both if you want them aligned.\n */\n navId?: string;\n}\n\nconst NavigationMenuItem = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Item>,\n NavigationMenuItemProps\n>(({ navId, ...rest }, ref) => (\n <RadixNavigationMenu.Item ref={ref} data-nav-id={navId} {...rest} />\n));\nNavigationMenuItem.displayName = 'NavigationMenuItem';\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\n 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 extends ComponentPropsWithoutRef<\n typeof RadixNavigationMenu.Link\n> {\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={\n asChild ? undefined : [linkClasses, className].filter(Boolean).join(' ')\n }\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":["navigationMenuAgent","handle","args","rootClasses","NavigationMenu","forwardRef","ariaLabel","className","children","id","value","defaultValue","onValueChange","rest","ref","t","useTranslation","rootRef","useRef","dir","useDirection","isControlled","internalValue","setInternalValue","useState","activeValue","handleValueChange","useCallback","next","useMemo","nextId","useImperativeHandle","useAgentRegistration","jsxs","RadixNavigationMenu","NavigationMenuViewport","listClasses","NavigationMenuList","jsx","NavigationMenuItem","navId","triggerClasses","chevronClasses","NavigationMenuTrigger","ChevronDown","contentBase","contentVariants","cva","NavigationMenuContent","layout","linkClasses","NavigationMenuLink","asChild","Slot","indicatorClasses","NavigationMenuIndicator","viewportClasses"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-diacritics-BNGbFNlJ.js","sources":["../../src/components/_shared/normalize-diacritics.ts"],"sourcesContent":["export function normalizeDiacritics(input: string): string {\n return input.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').toLowerCase();\n}\n"],"names":["normalizeDiacritics","input"],"mappings":"AAAO,SAASA,EAAoBC,GAAuB;AACzD,SAAOA,
|
|
1
|
+
{"version":3,"file":"normalize-diacritics-BNGbFNlJ.js","sources":["../../src/components/_shared/normalize-diacritics.ts"],"sourcesContent":["export function normalizeDiacritics(input: string): string {\n return input\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n}\n"],"names":["normalizeDiacritics","input"],"mappings":"AAAO,SAASA,EAAoBC,GAAuB;AACzD,SAAOA,EACJ,UAAU,KAAK,EACf,QAAQ,oBAAoB,EAAE,EAC9B,YAAA;AACL;"}
|
|
@@ -2,8 +2,8 @@ import { jsx as a, jsxs as n } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef as M, useMemo as P, useState as R, useRef as B, useCallback as L } from "react";
|
|
3
3
|
import { c as U } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as W } from "react-i18next";
|
|
5
|
-
import { I as E } from "./icon-button-
|
|
6
|
-
import { B as N } from "./button-
|
|
5
|
+
import { I as E } from "./icon-button-C4CGcYuz.js";
|
|
6
|
+
import { B as N } from "./button-DD_0Xdmr.js";
|
|
7
7
|
import { T as H } from "./timestamp-BV2lC-wV.js";
|
|
8
8
|
import { X } from "./x-CCcI3eJp.js";
|
|
9
9
|
const q = U(
|
|
@@ -254,4 +254,4 @@ export {
|
|
|
254
254
|
J as N,
|
|
255
255
|
G as i
|
|
256
256
|
};
|
|
257
|
-
//# sourceMappingURL=notification-card-
|
|
257
|
+
//# sourceMappingURL=notification-card-hBlPN1-c.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-card-hBlPN1-c.js","sources":["../../src/components/notification-card/notification-card.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { X } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Button } from '../button/button';\nimport { Timestamp } from '../timestamp';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface NotificationItem {\n /** Unique identifier for the notification. */\n id: string;\n /** Notification title — rendered on the first line. */\n title: string;\n /** Notification body — rendered as plain text. */\n description?: string;\n /** Optional leading glyph — a React node (usually a Lucide icon). */\n icon?: ReactNode;\n /** Optional action URL — when present the card title is an anchor. */\n url?: string;\n /** ISO-8601 timestamp of when the notification was created. */\n createdAt: string;\n /** Whether the notification has been seen. Unread items get accent styling. */\n read?: boolean;\n}\n\nexport interface NotificationCardProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'role' | 'title'>,\n VariantProps<typeof cardVariants> {\n /** The notification to render. */\n item: NotificationItem;\n /**\n * Layout shape.\n * - `compact` — single-line row with the whole card clickable (used by\n * NotificationTray).\n * - `dashboard` — alert-style block with explicit CTA and mark-as-read\n * controls (used by dashboards / sidebars).\n */\n variant?: 'compact' | 'dashboard';\n /** Visual density. */\n size?: 'sm' | 'md';\n /** Fires when the card title / body is activated. */\n onActivate?: (item: NotificationItem) => void;\n /** Fires when the dismiss control is activated. */\n onDismiss?: (item: NotificationItem) => void;\n /**\n * Label for the dashboard-variant CTA. Only rendered when `variant` is\n * `'dashboard'` and the item has a `url`.\n */\n ctaLabel?: string;\n /**\n * Label for the dashboard-variant mark-as-read link. Only rendered when\n * `variant` is `'dashboard'` and `onDismiss` is supplied.\n */\n dismissLabel?: string;\n /**\n * External exit-animation control. When supplied the card plays its\n * fade-out when this turns `true` and the consumer owns the subsequent\n * unmount (see NotificationTray). If omitted, the card self-manages the\n * exit on internal dismiss.\n */\n leaving?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst cardVariants = cva(\n [\n 'ds:relative ds:flex ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors',\n // Mount: fade + slide-down so a fresh notification reads as arriving.\n // `data-leaving=true` plays the matching exit, driven by the owning\n // tray's AnimatePresence loop.\n 'ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:slide-in-from-top-2 ds:motion-safe:duration-[var(--animation-duration)]',\n 'ds:data-[leaving=true]:motion-safe:animate-out ds:data-[leaving=true]:motion-safe:fade-out-0 ds:data-[leaving=true]:motion-safe:slide-out-to-top-2',\n // Pin the exit's end-state until React unmounts. Without `fill-mode-forwards`\n // tw-animate-css leaves the element at opacity:1 for one paint frame after\n // the animation ends — the \"flicker before it animates away\" bug.\n 'ds:data-[leaving=true]:motion-safe:fill-mode-forwards',\n 'ds:data-[leaving=true]:pointer-events-none',\n 'ds:motion-reduce:transition-none',\n 'ds:text-start',\n 'ds:forced-colors:border ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n variant: {\n compact: 'ds:items-start',\n dashboard:\n 'ds:flex-col ds:sm:flex-row ds:items-stretch ds:sm:items-start ds:shadow-[var(--shadow-md)] ds:bg-[color:var(--card)]',\n },\n size: {\n sm: 'ds:p-[var(--spacing-sm)]',\n md: 'ds:p-[var(--spacing-md)]',\n },\n state: {\n unread: '',\n read: 'ds:bg-transparent',\n },\n },\n compoundVariants: [\n {\n variant: 'compact',\n state: 'unread',\n class: 'ds:bg-[color:var(--accent)]/5',\n },\n {\n variant: 'compact',\n state: 'read',\n class: 'ds:hover:bg-[color:var(--muted)]/40',\n },\n {\n variant: 'dashboard',\n state: 'unread',\n class: 'ds:bg-[color:var(--accent)]/5',\n },\n ],\n defaultVariants: {\n variant: 'compact',\n size: 'sm',\n state: 'read',\n },\n },\n);\n\nconst stretchedLinkClass = [\n 'ds:focus-visible:outline-none',\n \"ds:after:content-[''] ds:after:absolute ds:after:inset-0 ds:after:rounded-[var(--radius-sm)]\",\n 'ds:after:pointer-events-auto',\n 'ds:focus-visible:after:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:after:outline-solid',\n 'ds:focus-visible:after:outline-[color:var(--ring)]',\n 'ds:focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:after:outline-[CanvasText]',\n].join(' ');\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nexport function isSafeNotificationUrl(url: string): boolean {\n // Reject protocol-relative (//host), javascript:, data:, mailto: etc.\n // Only http(s), same-origin absolute paths (/), and hash (#) anchors pass.\n return /^(https?:\\/\\/(?!\\/)|\\/(?!\\/)|#)/.test(url);\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const NotificationCard = forwardRef<\n HTMLDivElement,\n NotificationCardProps\n>(\n (\n {\n item,\n variant = 'compact',\n size = 'sm',\n onActivate,\n onDismiss,\n ctaLabel,\n dismissLabel,\n leaving,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n // Screen-reader time context — absolute & unambiguous rather than the\n // visible relative phrase, which drifts and reads less clearly aloud.\n const accessibleTime = useMemo(() => {\n const date = new Date(item.createdAt);\n if (Number.isNaN(date.getTime())) return '';\n return new Intl.DateTimeFormat(i18n.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(date);\n }, [item.createdAt, i18n.language]);\n\n /* Exit animation.\n * - When `leaving` is undefined (uncontrolled): the card owns the\n * fade-out — dismiss click flips `isLeaving`, waits for\n * --animation-duration, then fires onDismiss.\n * - When `leaving` is boolean (controlled, e.g. NotificationTray): the\n * parent owns the lifecycle — dismiss click fires onDismiss\n * immediately and the parent schedules unmount after the animation. */\n const isControlledLeaving = leaving !== undefined;\n const [isLeaving, setIsLeaving] = useState(false);\n const dismissTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const effectiveLeaving = isControlledLeaving ? leaving : isLeaving;\n\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n const handleDismiss = useCallback(() => {\n if (!onDismiss) return;\n if (isControlledLeaving || prefersReducedMotion) {\n onDismiss(item);\n return;\n }\n setIsLeaving(true);\n if (dismissTimerRef.current) clearTimeout(dismissTimerRef.current);\n const raw =\n (typeof window !== 'undefined' &&\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--animation-duration')) ||\n '200ms';\n const ms = raw.trim().endsWith('ms')\n ? parseFloat(raw)\n : parseFloat(raw) * 1000;\n dismissTimerRef.current = setTimeout(\n () => onDismiss(item),\n Number.isFinite(ms) ? ms : 200,\n );\n }, [onDismiss, item, isControlledLeaving, prefersReducedMotion]);\n\n const state = item.read ? 'read' : 'unread';\n\n const unreadSuffix = item.read\n ? ''\n : t('ui.notificationCard.unreadSuffix', ', unread');\n const ariaLabel = t('ui.notificationCard.itemLabel', {\n title: item.title,\n time: accessibleTime,\n unreadSuffix,\n defaultValue: '{{title}}, {{time}}{{unreadSuffix}}',\n });\n\n const hasSafeUrl = !!item.url && isSafeNotificationUrl(item.url);\n\n /* ------- Title rendering (stretched link in compact mode) ------- */\n\n const titleText = (\n <span\n className={[\n 'ds:flex-1 ds:min-w-0 ds:truncate',\n item.read ? 'ds:font-normal' : 'ds:font-semibold',\n ].join(' ')}\n >\n {item.title}\n </span>\n );\n\n let titleNode: ReactNode;\n if (variant === 'compact' && hasSafeUrl && onActivate) {\n titleNode = (\n <a\n href={item.url}\n aria-label={ariaLabel}\n className={stretchedLinkClass + ' ds:contents'}\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n onActivate(item);\n }}\n >\n {titleText}\n </a>\n );\n } else if (variant === 'compact' && onActivate) {\n titleNode = (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={\n stretchedLinkClass +\n ' ds:contents ds:bg-transparent ds:border-0 ds:p-0'\n }\n onClick={() => onActivate(item)}\n >\n {titleText}\n </button>\n );\n } else if (variant === 'dashboard' && hasSafeUrl && onActivate) {\n titleNode = (\n <a\n href={item.url}\n className=\"ds:text-[color:var(--foreground)] ds:no-underline ds:hover:underline ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]\"\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n onActivate(item);\n }}\n >\n {titleText}\n </a>\n );\n } else {\n titleNode = titleText;\n }\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n data-component=\"notification-card\"\n data-component-id={item.id}\n data-read={item.read ? 'true' : 'false'}\n data-leaving={effectiveLeaving ? 'true' : undefined}\n aria-hidden={effectiveLeaving || undefined}\n className={cardVariants({ variant, size, state, className })}\n {...rest}\n >\n {item.icon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center ds:size-8 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--accent)]/10 ds:text-[color:var(--accent)] ds:[&>svg]:size-4\"\n >\n {item.icon}\n </span>\n ) : null}\n\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {!item.read ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-block ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)] ds:forced-colors:bg-[Highlight]\"\n />\n ) : null}\n {variant === 'dashboard' ? (\n // `h3` keeps the dashboard heading ladder continuous:\n // h1 (page) → h2 (WarningStack + NotificationsPanel) → h3 (notification title).\n <h3 className=\"ds:m-0 ds:flex-1 ds:min-w-0 type-title-item\">\n {titleNode}\n </h3>\n ) : (\n <span className=\"ds:flex-1 ds:min-w-0 type-title-item ds:text-[color:var(--foreground)]\">\n {titleNode}\n </span>\n )}\n </div>\n\n {item.description ? (\n <p className=\"ds:m-0 type-body-sm ds:text-[color:var(--muted-foreground)] ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:2] ds:break-words\">\n {item.description}\n </p>\n ) : null}\n\n <Timestamp\n value={item.createdAt}\n shape=\"chip\"\n size=\"sm\"\n relativeWindow={12 * 60 * 60 * 1000}\n />\n\n {variant === 'dashboard' && (ctaLabel || dismissLabel) ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n {ctaLabel && hasSafeUrl ? (\n <Button\n intent=\"outline\"\n size=\"sm\"\n asChild\n className=\"ds:relative ds:z-[1]\"\n >\n <a\n href={item.url}\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n onActivate?.(item);\n }}\n >\n {ctaLabel}\n </a>\n </Button>\n ) : null}\n {dismissLabel && onDismiss ? (\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={handleDismiss}\n className=\"ds:relative ds:z-[1]\"\n >\n {dismissLabel}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {variant === 'compact' && onDismiss ? (\n <span className=\"ds:relative ds:z-[1] ds:opacity-0 ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:transition-opacity ds:motion-reduce:transition-none\">\n <IconButton\n icon={<X />}\n intent=\"ghost\"\n size=\"sm\"\n aria-label={t(\n 'ui.notificationCard.dismiss',\n 'Dismiss notification',\n )}\n onClick={handleDismiss}\n />\n </span>\n ) : null}\n </div>\n );\n },\n);\n\nNotificationCard.displayName = 'NotificationCard';\n"],"names":["cardVariants","cva","stretchedLinkClass","isSafeNotificationUrl","url","NotificationCard","forwardRef","item","variant","size","onActivate","onDismiss","ctaLabel","dismissLabel","leaving","className","rest","ref","t","i18n","useTranslation","accessibleTime","useMemo","date","isControlledLeaving","isLeaving","setIsLeaving","useState","dismissTimerRef","useRef","effectiveLeaving","prefersReducedMotion","handleDismiss","useCallback","raw","ms","state","unreadSuffix","ariaLabel","hasSafeUrl","titleText","jsx","titleNode","event","jsxs","Timestamp","Button","IconButton"],"mappings":"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"}
|