@alfadocs/ui-kit 0.0.19 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/accordion-BJD1aM67.js +117 -0
- package/dist/_chunks/accordion-BJD1aM67.js.map +1 -0
- package/dist/_chunks/agenda-card-Bld47Eul.js +130 -0
- package/dist/_chunks/agenda-card-Bld47Eul.js.map +1 -0
- package/dist/_chunks/agenda-tray-D86cNIJ0.js +119 -0
- package/dist/_chunks/agenda-tray-D86cNIJ0.js.map +1 -0
- package/dist/_chunks/ai-prompt-input-CdYwt2VP.js +379 -0
- package/dist/_chunks/ai-prompt-input-CdYwt2VP.js.map +1 -0
- package/dist/_chunks/{alert-C5ud6CfE.js → alert-ETrF7Q8J.js} +51 -51
- package/dist/_chunks/alert-ETrF7Q8J.js.map +1 -0
- package/dist/_chunks/apexcharts-theme-BkSShpEy.js +48 -0
- package/dist/_chunks/apexcharts-theme-BkSShpEy.js.map +1 -0
- package/dist/_chunks/{app-frame-CmIUp9BD.js → app-frame-uq2Gy0vs.js} +37 -37
- package/dist/_chunks/app-frame-uq2Gy0vs.js.map +1 -0
- package/dist/_chunks/aspect-ratio-BqU4itGW.js +56 -0
- package/dist/_chunks/aspect-ratio-BqU4itGW.js.map +1 -0
- package/dist/_chunks/{audio-recorder-GkGNtW2X.js → audio-recorder-D2UEBF9B.js} +98 -98
- package/dist/_chunks/audio-recorder-D2UEBF9B.js.map +1 -0
- package/dist/_chunks/{audio-visualiser-CIO3yy23.js → audio-visualiser-B4u4goV5.js} +46 -46
- package/dist/_chunks/audio-visualiser-B4u4goV5.js.map +1 -0
- package/dist/_chunks/{autocomplete.agent-kb0nmr6F.js → autocomplete.agent-Bi6CiRKa.js} +111 -111
- package/dist/_chunks/autocomplete.agent-Bi6CiRKa.js.map +1 -0
- package/dist/_chunks/{avatar-BsV7vRA6.js → avatar-BAhxbDEu.js} +38 -38
- package/dist/_chunks/avatar-BAhxbDEu.js.map +1 -0
- package/dist/_chunks/badge-zDghajh8.js +104 -0
- package/dist/_chunks/badge-zDghajh8.js.map +1 -0
- package/dist/_chunks/{balance-cell-renderer-BQwN51rT.js → balance-cell-renderer-BGyvZWjB.js} +123 -124
- package/dist/_chunks/balance-cell-renderer-BGyvZWjB.js.map +1 -0
- package/dist/_chunks/{breadcrumb-DnO6eHSS.js → breadcrumb-pdUacgm1.js} +40 -40
- package/dist/_chunks/breadcrumb-pdUacgm1.js.map +1 -0
- package/dist/_chunks/button-DmiGFnNA.js +119 -0
- package/dist/_chunks/button-DmiGFnNA.js.map +1 -0
- package/dist/_chunks/{button-group-CI7LFxt3.js → button-group-BtTHSyU0.js} +24 -24
- package/dist/_chunks/button-group-BtTHSyU0.js.map +1 -0
- package/dist/_chunks/{calendar-BIXVzhkL.js → calendar-BkDeDTaX.js} +333 -290
- package/dist/_chunks/calendar-BkDeDTaX.js.map +1 -0
- package/dist/_chunks/card-DeItIBcV.js +158 -0
- package/dist/_chunks/card-DeItIBcV.js.map +1 -0
- package/dist/_chunks/{chart.agent-DkmVXNsI.js → chart.agent-BdS-_8MO.js} +66 -64
- package/dist/_chunks/chart.agent-BdS-_8MO.js.map +1 -0
- package/dist/_chunks/chat-container-Co8HpB64.js +174 -0
- package/dist/_chunks/chat-container-Co8HpB64.js.map +1 -0
- package/dist/_chunks/{chat-input-aphxDjZL.js → chat-input-3rstZhHR.js} +57 -57
- package/dist/_chunks/chat-input-3rstZhHR.js.map +1 -0
- package/dist/_chunks/{chat-message-CdJSD18D.js → chat-message-dDMVSYBs.js} +66 -66
- package/dist/_chunks/chat-message-dDMVSYBs.js.map +1 -0
- package/dist/_chunks/checkbox-DMzgtnqw.js +116 -0
- package/dist/_chunks/checkbox-DMzgtnqw.js.map +1 -0
- package/dist/_chunks/{checkbox-group-D1aqVI0-.js → checkbox-group-DBnIBRT_.js} +34 -34
- package/dist/_chunks/checkbox-group-DBnIBRT_.js.map +1 -0
- package/dist/_chunks/{collapsible-jBFm7Ah8.js → collapsible-DPGQnHZh.js} +16 -16
- package/dist/_chunks/collapsible-DPGQnHZh.js.map +1 -0
- package/dist/_chunks/{color-picker-CiotzQJF.js → color-picker-OKKF3Dww.js} +158 -158
- package/dist/_chunks/color-picker-OKKF3Dww.js.map +1 -0
- package/dist/_chunks/{combobox.agent-B6RwDSct.js → combobox.agent-CfeB-IZ1.js} +107 -107
- package/dist/_chunks/combobox.agent-CfeB-IZ1.js.map +1 -0
- package/dist/_chunks/{command-palette.agent-B87_OkmC.js → command-palette.agent-XLfSGHCL.js} +27 -27
- package/dist/_chunks/command-palette.agent-XLfSGHCL.js.map +1 -0
- package/dist/_chunks/{date-picker-CdPuI3dK.js → date-picker-DXx8oSJb.js} +5 -5
- package/dist/_chunks/{date-picker-CdPuI3dK.js.map → date-picker-DXx8oSJb.js.map} +1 -1
- package/dist/_chunks/{date-range-picker-DfK4cjln.js → date-range-picker-C3CbY__H.js} +29 -29
- package/dist/_chunks/{date-range-picker-DfK4cjln.js.map → date-range-picker-C3CbY__H.js.map} +1 -1
- package/dist/_chunks/{date-time-picker-CX_FMsLG.js → date-time-picker-Bn3FPeAc.js} +58 -58
- package/dist/_chunks/date-time-picker-Bn3FPeAc.js.map +1 -0
- package/dist/_chunks/description-list-B1CL3RTG.js +187 -0
- package/dist/_chunks/description-list-B1CL3RTG.js.map +1 -0
- package/dist/_chunks/{dialog.agent-B276rAQF.js → dialog.agent-D9WeIWi2.js} +39 -39
- package/dist/_chunks/dialog.agent-D9WeIWi2.js.map +1 -0
- package/dist/_chunks/dropdown-menu-BnVUeVG3.js +210 -0
- package/dist/_chunks/dropdown-menu-BnVUeVG3.js.map +1 -0
- package/dist/_chunks/{empty-state-DiG7vYBM.js → empty-state-DV96gCnp.js} +37 -37
- package/dist/_chunks/empty-state-DV96gCnp.js.map +1 -0
- package/dist/_chunks/{file-upload.agent-BMow5yDY.js → file-upload.agent-DYFnqdxw.js} +185 -185
- package/dist/_chunks/file-upload.agent-DYFnqdxw.js.map +1 -0
- package/dist/_chunks/{flag-ChP784EM.js → flag-C3BUEwHH.js} +14 -14
- package/dist/_chunks/{flag-ChP784EM.js.map → flag-C3BUEwHH.js.map} +1 -1
- package/dist/_chunks/floating-action-button-RigP2E7o.js +95 -0
- package/dist/_chunks/floating-action-button-RigP2E7o.js.map +1 -0
- package/dist/_chunks/form-field-DI5LY5aG.js +121 -0
- package/dist/_chunks/form-field-DI5LY5aG.js.map +1 -0
- package/dist/_chunks/freemium-paywall-D0GiUFOe.js +197 -0
- package/dist/_chunks/freemium-paywall-D0GiUFOe.js.map +1 -0
- package/dist/_chunks/{header-BpKaSL_v.js → header-CW2oRd5H.js} +111 -111
- package/dist/_chunks/header-CW2oRd5H.js.map +1 -0
- package/dist/_chunks/icon-button-C482ii4y.js +45 -0
- package/dist/_chunks/icon-button-C482ii4y.js.map +1 -0
- package/dist/_chunks/{icon-button-group-tERESY-n.js → icon-button-group-BnhkUWUg.js} +56 -56
- package/dist/_chunks/icon-button-group-BnhkUWUg.js.map +1 -0
- package/dist/_chunks/{kbd-0iPlQjgC.js → kbd-DTcIjYA7.js} +52 -52
- package/dist/_chunks/kbd-DTcIjYA7.js.map +1 -0
- package/dist/_chunks/{key-value-pair--Je59tAF.js → key-value-pair-DDhSYdDL.js} +26 -26
- package/dist/_chunks/key-value-pair-DDhSYdDL.js.map +1 -0
- package/dist/_chunks/leo-sidebar-gXXcGPKk.js +755 -0
- package/dist/_chunks/leo-sidebar-gXXcGPKk.js.map +1 -0
- package/dist/_chunks/{list-n8vI8Yvn.js → list-Cwe8mcmh.js} +96 -96
- package/dist/_chunks/list-Cwe8mcmh.js.map +1 -0
- package/dist/_chunks/live-region-COggO6x6.js +57 -0
- package/dist/_chunks/live-region-COggO6x6.js.map +1 -0
- package/dist/_chunks/{logo-UNWYb9p7.js → logo-3wrZGpwg.js} +29 -29
- package/dist/_chunks/logo-3wrZGpwg.js.map +1 -0
- package/dist/_chunks/{matrix-rain-Q7xTEpKu.js → matrix-rain-gsHqSvW7.js} +75 -75
- package/dist/_chunks/matrix-rain-gsHqSvW7.js.map +1 -0
- package/dist/_chunks/message-card-DID3cXUW.js +275 -0
- package/dist/_chunks/message-card-DID3cXUW.js.map +1 -0
- package/dist/_chunks/message-tray-CVMLBnVp.js +302 -0
- package/dist/_chunks/message-tray-CVMLBnVp.js.map +1 -0
- package/dist/_chunks/{multi-select.agent-Cf4pU636.js → multi-select.agent-BUKYZJfp.js} +126 -126
- package/dist/_chunks/multi-select.agent-BUKYZJfp.js.map +1 -0
- package/dist/_chunks/{navigation-menu-DBDsAmXc.js → navigation-menu-NjwxyshT.js} +68 -97
- package/dist/_chunks/navigation-menu-NjwxyshT.js.map +1 -0
- package/dist/_chunks/notification-card-BZ33fq8H.js +255 -0
- package/dist/_chunks/notification-card-BZ33fq8H.js.map +1 -0
- package/dist/_chunks/{notification-tray-CNWPuPZp.js → notification-tray-CnEd7B2q.js} +96 -96
- package/dist/_chunks/notification-tray-CnEd7B2q.js.map +1 -0
- package/dist/_chunks/{number-input-B1Th0DdC.js → number-input-D7rSa_ef.js} +73 -73
- package/dist/_chunks/number-input-D7rSa_ef.js.map +1 -0
- package/dist/_chunks/{otp-input-CmoBuZ4K.js → otp-input-C9R9sC74.js} +42 -42
- package/dist/_chunks/otp-input-C9R9sC74.js.map +1 -0
- package/dist/_chunks/{pagination.agent-B5KLDCMN.js → pagination.agent-D75FB6XP.js} +106 -106
- package/dist/_chunks/pagination.agent-D75FB6XP.js.map +1 -0
- package/dist/_chunks/{password-input-DnjNh-hQ.js → password-input-C6PvKyQV.js} +59 -59
- package/dist/_chunks/password-input-C6PvKyQV.js.map +1 -0
- package/dist/_chunks/{patient-shell-D0RaWDMR.js → patient-shell-CGsmI5LJ.js} +9 -9
- package/dist/_chunks/{patient-shell-D0RaWDMR.js.map → patient-shell-CGsmI5LJ.js.map} +1 -1
- package/dist/_chunks/{payment-form-Cf7U6r5L.js → payment-form-l3j-gA-t.js} +108 -108
- package/dist/_chunks/payment-form-l3j-gA-t.js.map +1 -0
- package/dist/_chunks/{pdf-viewer.agent-DXjgDItg.js → pdf-viewer.agent-DuGfSoep.js} +234 -233
- package/dist/_chunks/pdf-viewer.agent-DuGfSoep.js.map +1 -0
- package/dist/_chunks/{phone-input-C2dtIuxW.js → phone-input-ZWa_FU4R.js} +112 -112
- package/dist/_chunks/phone-input-ZWa_FU4R.js.map +1 -0
- package/dist/_chunks/{popover-D1woU9mP.js → popover-CMr1pTPO.js} +58 -58
- package/dist/_chunks/popover-CMr1pTPO.js.map +1 -0
- package/dist/_chunks/{privacy-lock-C1X42Sit.js → privacy-lock-Br5k7Rul.js} +36 -36
- package/dist/_chunks/privacy-lock-Br5k7Rul.js.map +1 -0
- package/dist/_chunks/{progress-DL3-izuO.js → progress-D4ELgHG3.js} +43 -43
- package/dist/_chunks/progress-D4ELgHG3.js.map +1 -0
- package/dist/_chunks/radio-B_gvGU29.js +106 -0
- package/dist/_chunks/radio-B_gvGU29.js.map +1 -0
- package/dist/_chunks/radio-group-Bn8Wt0yc.js +88 -0
- package/dist/_chunks/radio-group-Bn8Wt0yc.js.map +1 -0
- package/dist/_chunks/{react-day-picker-DQKDiJ37.js → react-day-picker-d0MHsyCj.js} +174 -174
- package/dist/_chunks/{react-day-picker-DQKDiJ37.js.map → react-day-picker-d0MHsyCj.js.map} +1 -1
- package/dist/_chunks/{resizable.agent-DVk_jJur.js → resizable.agent-DBpPGNdy.js} +122 -122
- package/dist/_chunks/resizable.agent-DBpPGNdy.js.map +1 -0
- package/dist/_chunks/{rich-text-editor.agent-BOjF4Xao.js → rich-text-editor.agent-C1_E7_7t.js} +225 -225
- package/dist/_chunks/rich-text-editor.agent-C1_E7_7t.js.map +1 -0
- package/dist/_chunks/scroll-area-Ba99pJ_R.js +144 -0
- package/dist/_chunks/scroll-area-Ba99pJ_R.js.map +1 -0
- package/dist/_chunks/{search-bar-DgSOAajC.js → search-bar-VoTqJhRp.js} +131 -131
- package/dist/_chunks/search-bar-VoTqJhRp.js.map +1 -0
- package/dist/_chunks/search-input-D6rarD0_.js +197 -0
- package/dist/_chunks/search-input-D6rarD0_.js.map +1 -0
- package/dist/_chunks/select-DbxWF3O_.js +320 -0
- package/dist/_chunks/select-DbxWF3O_.js.map +1 -0
- package/dist/_chunks/{separator-DExI4amU.js → separator-BRQHi8s0.js} +17 -17
- package/dist/_chunks/separator-BRQHi8s0.js.map +1 -0
- package/dist/_chunks/sheet-DyWqluiS.js +188 -0
- package/dist/_chunks/sheet-DyWqluiS.js.map +1 -0
- package/dist/_chunks/sidebar-B52iGGNV.js +1076 -0
- package/dist/_chunks/sidebar-B52iGGNV.js.map +1 -0
- package/dist/_chunks/sign-in-with-alfadocs-button-BU7MP5Hg.js +44 -0
- package/dist/_chunks/sign-in-with-alfadocs-button-BU7MP5Hg.js.map +1 -0
- package/dist/_chunks/{signature-capture.agent-L_1_-zVR.js → signature-capture.agent-4htVctJ2.js} +163 -163
- package/dist/_chunks/signature-capture.agent-4htVctJ2.js.map +1 -0
- package/dist/_chunks/skeleton-ClO1v5GE.js +95 -0
- package/dist/_chunks/skeleton-ClO1v5GE.js.map +1 -0
- package/dist/_chunks/skip-link-CASJkBOe.js +68 -0
- package/dist/_chunks/skip-link-CASJkBOe.js.map +1 -0
- package/dist/_chunks/slider-n8JWpJvT.js +273 -0
- package/dist/_chunks/slider-n8JWpJvT.js.map +1 -0
- package/dist/_chunks/slot-grid-BRAkqChA.js +491 -0
- package/dist/_chunks/slot-grid-BRAkqChA.js.map +1 -0
- package/dist/_chunks/{sparkline.agent-BDTXzTy9.js → sparkline.agent-BLY1IMyW.js} +45 -45
- package/dist/_chunks/sparkline.agent-BLY1IMyW.js.map +1 -0
- package/dist/_chunks/{spinner-77xUGpuX.js → spinner-CoAOGcDa.js} +40 -40
- package/dist/_chunks/spinner-CoAOGcDa.js.map +1 -0
- package/dist/_chunks/stat-D76MNHzK.js +208 -0
- package/dist/_chunks/stat-D76MNHzK.js.map +1 -0
- package/dist/_chunks/{stepper-accordion-BkvqQWPI.js → stepper-accordion-DHQ80A4v.js} +33 -33
- package/dist/_chunks/stepper-accordion-DHQ80A4v.js.map +1 -0
- package/dist/_chunks/{stepper-calendar-BQMjrwzo.js → stepper-calendar-vtWwa2bY.js} +159 -159
- package/dist/_chunks/stepper-calendar-vtWwa2bY.js.map +1 -0
- package/dist/_chunks/stepper-progress-DMZ5w5VR.js +128 -0
- package/dist/_chunks/stepper-progress-DMZ5w5VR.js.map +1 -0
- package/dist/_chunks/streaming-text-D0cW8pwq.js +104 -0
- package/dist/_chunks/streaming-text-D0cW8pwq.js.map +1 -0
- package/dist/_chunks/suggestion-chip-BgNFpPEE.js +157 -0
- package/dist/_chunks/suggestion-chip-BgNFpPEE.js.map +1 -0
- package/dist/_chunks/switch-DtLPKO0p.js +137 -0
- package/dist/_chunks/switch-DtLPKO0p.js.map +1 -0
- package/dist/_chunks/{tabs.agent-FsGU3sZL.js → tabs.agent-BDUlyPbJ.js} +101 -101
- package/dist/_chunks/tabs.agent-BDUlyPbJ.js.map +1 -0
- package/dist/_chunks/tag-CfSZZN2f.js +194 -0
- package/dist/_chunks/tag-CfSZZN2f.js.map +1 -0
- package/dist/_chunks/task-card-B5xfiFg5.js +112 -0
- package/dist/_chunks/task-card-B5xfiFg5.js.map +1 -0
- package/dist/_chunks/task-tray-BnpiodZ4.js +99 -0
- package/dist/_chunks/task-tray-BnpiodZ4.js.map +1 -0
- package/dist/_chunks/text-area-BqbruBWx.js +152 -0
- package/dist/_chunks/text-area-BqbruBWx.js.map +1 -0
- package/dist/_chunks/text-input-lh6kRXZS.js +187 -0
- package/dist/_chunks/text-input-lh6kRXZS.js.map +1 -0
- package/dist/_chunks/theme-toggle-BHKMiORD.js +326 -0
- package/dist/_chunks/theme-toggle-BHKMiORD.js.map +1 -0
- package/dist/_chunks/{time-picker-BapZq0OY.js → time-picker-DbpAmPux.js} +102 -102
- package/dist/_chunks/time-picker-DbpAmPux.js.map +1 -0
- package/dist/_chunks/timeline-vjsUeuq1.js +219 -0
- package/dist/_chunks/timeline-vjsUeuq1.js.map +1 -0
- package/dist/_chunks/{timestamp-BLM-jjdw.js → timestamp-DmSt92P1.js} +30 -30
- package/dist/_chunks/timestamp-DmSt92P1.js.map +1 -0
- package/dist/_chunks/{toast-DSCqnDRl.js → toast-DllSITLf.js} +151 -151
- package/dist/_chunks/{toast-DSCqnDRl.js.map → toast-DllSITLf.js.map} +1 -1
- package/dist/_chunks/{tooltip-DF6WjD1r.js → tooltip-Dp3u8jGz.js} +30 -30
- package/dist/_chunks/tooltip-Dp3u8jGz.js.map +1 -0
- package/dist/_chunks/{tooth-scheme.agent-CFKl3iQr.js → tooth-scheme.agent-BRqxWa1D.js} +75 -75
- package/dist/_chunks/tooth-scheme.agent-BRqxWa1D.js.map +1 -0
- package/dist/_chunks/transcript-panel-Bg1BTMSr.js +265 -0
- package/dist/_chunks/transcript-panel-Bg1BTMSr.js.map +1 -0
- package/dist/_chunks/typing-indicator-BRg22Rqr.js +81 -0
- package/dist/_chunks/typing-indicator-BRg22Rqr.js.map +1 -0
- package/dist/_chunks/use-locale-BuXR_Zl9.js +32 -0
- package/dist/_chunks/use-locale-BuXR_Zl9.js.map +1 -0
- package/dist/_chunks/visually-hidden-Y3jcdCv-.js +21 -0
- package/dist/_chunks/visually-hidden-Y3jcdCv-.js.map +1 -0
- package/dist/_chunks/{warning-stack-Cyf_81SL.js → warning-stack-B9N9yWet.js} +38 -38
- package/dist/_chunks/warning-stack-B9N9yWet.js.map +1 -0
- package/dist/_chunks/{workflow-map-Uf-hHAO3.js → workflow-map-gBhL_Wrs.js} +385 -385
- package/dist/_chunks/workflow-map-gBhL_Wrs.js.map +1 -0
- package/dist/agent-catalog.json +1 -1
- package/dist/components/_shared/index.d.ts +2 -0
- package/dist/components/_shared/index.d.ts.map +1 -1
- package/dist/components/_shared/use-focus-trap.d.ts +32 -0
- package/dist/components/_shared/use-focus-trap.d.ts.map +1 -0
- package/dist/components/_shared/use-neutralize-hidden-focus.d.ts +3 -0
- package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +1 -0
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/index.js +1 -1
- package/dist/components/app-frame/index.js +1 -1
- package/dist/components/aspect-ratio/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/audio-visualiser/index.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/badge/index.js +1 -1
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts.map +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/card/index.js +1 -1
- package/dist/components/chart/chart.d.ts.map +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/chat-container/index.js +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox-group/index.js +1 -1
- package/dist/components/collapsible/index.js +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/data-table/toolbar.d.ts.map +1 -1
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/empty-state/index.js +1 -1
- package/dist/components/file-upload/index.js +1 -1
- package/dist/components/flag/index.js +1 -1
- package/dist/components/floating-action-button/index.js +1 -1
- package/dist/components/form-field/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/icon-button/index.d.ts +3 -0
- package/dist/components/icon-button/index.d.ts.map +1 -0
- package/dist/components/icon-button/index.js +5 -0
- package/dist/components/icon-button/index.js.map +1 -0
- package/dist/components/icon-button-group/index.js +1 -1
- package/dist/components/index.d.ts +8 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/kbd/index.js +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/list/index.js +1 -1
- package/dist/components/live-region/index.d.ts +3 -0
- package/dist/components/live-region/index.d.ts.map +1 -0
- package/dist/components/live-region/index.js +5 -0
- package/dist/components/live-region/index.js.map +1 -0
- package/dist/components/live-region/live-region.d.ts +49 -0
- package/dist/components/live-region/live-region.d.ts.map +1 -0
- package/dist/components/logo/index.js +1 -1
- package/dist/components/matrix-rain/index.js +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/navigation-menu/index.d.ts +4 -2
- package/dist/components/navigation-menu/index.d.ts.map +1 -1
- package/dist/components/navigation-menu/index.js +3 -2
- package/dist/components/navigation-menu/index.js.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.d.ts +2 -6
- package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/number-input/index.js +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/password-input/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/components/phone-input/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/progress/index.js +1 -1
- package/dist/components/radio/index.d.ts +3 -0
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/index.js +5 -0
- package/dist/components/radio/index.js.map +1 -0
- package/dist/components/radio-group/index.js +4 -3
- package/dist/components/radio-group/index.js.map +1 -1
- package/dist/components/resizable/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/scroll-area/index.js +1 -1
- package/dist/components/search-bar/index.js +1 -1
- package/dist/components/search-input/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/separator/index.js +1 -1
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts +20 -0
- 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/skeleton/index.js +1 -1
- package/dist/components/skip-link/index.d.ts +2 -0
- package/dist/components/skip-link/index.d.ts.map +1 -0
- package/dist/components/skip-link/index.js +5 -0
- package/dist/components/skip-link/index.js.map +1 -0
- package/dist/components/skip-link/skip-link.d.ts +34 -0
- package/dist/components/skip-link/skip-link.d.ts.map +1 -0
- package/dist/components/slider/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/sparkline/index.js +1 -1
- package/dist/components/sparkline/sparkline.d.ts.map +1 -1
- package/dist/components/spinner/index.js +1 -1
- package/dist/components/stat/index.js +1 -1
- package/dist/components/stepper-accordion/index.js +1 -1
- package/dist/components/stepper-calendar/index.js +1 -1
- package/dist/components/stepper-progress/index.js +1 -1
- package/dist/components/streaming-text/index.js +1 -1
- package/dist/components/suggestion-chip/index.js +1 -1
- package/dist/components/switch/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tag/index.js +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/text-area/index.js +1 -1
- package/dist/components/text-input/index.js +1 -1
- package/dist/components/theme-toggle/index.d.ts +3 -0
- package/dist/components/theme-toggle/index.d.ts.map +1 -0
- package/dist/components/theme-toggle/index.js +5 -0
- package/dist/components/theme-toggle/index.js.map +1 -0
- package/dist/components/theme-toggle/theme-toggle.d.ts +34 -0
- package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -0
- package/dist/components/time-picker/index.js +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/timestamp/index.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/tooltip/index.js +1 -1
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/typing-indicator/index.js +1 -1
- package/dist/components/visually-hidden/index.d.ts +2 -0
- package/dist/components/visually-hidden/index.d.ts.map +1 -0
- package/dist/components/visually-hidden/index.js +5 -0
- package/dist/components/visually-hidden/index.js.map +1 -0
- package/dist/components/visually-hidden/visually-hidden.d.ts +11 -0
- package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -0
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +10 -7
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-locale.d.ts +27 -0
- package/dist/hooks/use-locale.d.ts.map +1 -0
- package/dist/hooks/use-media-query.d.ts +17 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/i18n/config.js +59 -2
- package/dist/i18n/config.js.map +1 -1
- package/dist/i18n/resources.d.ts +57 -0
- package/dist/i18n/resources.d.ts.map +1 -1
- package/dist/index.js +442 -431
- package/dist/index.js.map +1 -1
- package/dist/locales/de.json +19 -0
- package/dist/locales/en.json +19 -0
- package/dist/locales/it.json +19 -0
- package/dist/patterns/leo-assistant/index.js +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +2 -2
- package/package.json +4 -2
- package/dist/_chunks/accordion-Dgcd38U_.js +0 -117
- package/dist/_chunks/accordion-Dgcd38U_.js.map +0 -1
- package/dist/_chunks/agenda-card-B2gq-gTq.js +0 -130
- package/dist/_chunks/agenda-card-B2gq-gTq.js.map +0 -1
- package/dist/_chunks/agenda-tray-twa8g_87.js +0 -119
- package/dist/_chunks/agenda-tray-twa8g_87.js.map +0 -1
- package/dist/_chunks/ai-prompt-input-C6IY_Eds.js +0 -379
- package/dist/_chunks/ai-prompt-input-C6IY_Eds.js.map +0 -1
- package/dist/_chunks/alert-C5ud6CfE.js.map +0 -1
- package/dist/_chunks/apexcharts-theme-cpBYmCcr.js +0 -17
- package/dist/_chunks/apexcharts-theme-cpBYmCcr.js.map +0 -1
- package/dist/_chunks/app-frame-CmIUp9BD.js.map +0 -1
- package/dist/_chunks/aspect-ratio-Bo3cZXmR.js +0 -56
- package/dist/_chunks/aspect-ratio-Bo3cZXmR.js.map +0 -1
- package/dist/_chunks/audio-recorder-GkGNtW2X.js.map +0 -1
- package/dist/_chunks/audio-visualiser-CIO3yy23.js.map +0 -1
- package/dist/_chunks/autocomplete.agent-kb0nmr6F.js.map +0 -1
- package/dist/_chunks/avatar-BsV7vRA6.js.map +0 -1
- package/dist/_chunks/badge--CmSr7ok.js +0 -104
- package/dist/_chunks/badge--CmSr7ok.js.map +0 -1
- package/dist/_chunks/balance-cell-renderer-BQwN51rT.js.map +0 -1
- package/dist/_chunks/breadcrumb-DnO6eHSS.js.map +0 -1
- package/dist/_chunks/button-CXL8bA8G.js +0 -119
- package/dist/_chunks/button-CXL8bA8G.js.map +0 -1
- package/dist/_chunks/button-group-CI7LFxt3.js.map +0 -1
- package/dist/_chunks/calendar-BIXVzhkL.js.map +0 -1
- package/dist/_chunks/card-n97MNPP2.js +0 -158
- package/dist/_chunks/card-n97MNPP2.js.map +0 -1
- package/dist/_chunks/chart.agent-DkmVXNsI.js.map +0 -1
- package/dist/_chunks/chat-container-SR3UWxbL.js +0 -174
- package/dist/_chunks/chat-container-SR3UWxbL.js.map +0 -1
- package/dist/_chunks/chat-input-aphxDjZL.js.map +0 -1
- package/dist/_chunks/chat-message-CdJSD18D.js.map +0 -1
- package/dist/_chunks/checkbox-CfiZ0FZc.js +0 -116
- package/dist/_chunks/checkbox-CfiZ0FZc.js.map +0 -1
- package/dist/_chunks/checkbox-group-D1aqVI0-.js.map +0 -1
- package/dist/_chunks/collapsible-jBFm7Ah8.js.map +0 -1
- package/dist/_chunks/color-picker-CiotzQJF.js.map +0 -1
- package/dist/_chunks/combobox.agent-B6RwDSct.js.map +0 -1
- package/dist/_chunks/command-palette.agent-B87_OkmC.js.map +0 -1
- package/dist/_chunks/date-time-picker-CX_FMsLG.js.map +0 -1
- package/dist/_chunks/description-list-C5UPZgX6.js +0 -187
- package/dist/_chunks/description-list-C5UPZgX6.js.map +0 -1
- package/dist/_chunks/dialog.agent-B276rAQF.js.map +0 -1
- package/dist/_chunks/dropdown-menu-CJKvK7VG.js +0 -210
- package/dist/_chunks/dropdown-menu-CJKvK7VG.js.map +0 -1
- package/dist/_chunks/empty-state-DiG7vYBM.js.map +0 -1
- package/dist/_chunks/file-upload.agent-BMow5yDY.js.map +0 -1
- package/dist/_chunks/floating-action-button-BM9ib-Wf.js +0 -95
- package/dist/_chunks/floating-action-button-BM9ib-Wf.js.map +0 -1
- package/dist/_chunks/form-field-B4bwrccN.js +0 -121
- package/dist/_chunks/form-field-B4bwrccN.js.map +0 -1
- package/dist/_chunks/freemium-paywall-DVyNsQHS.js +0 -197
- package/dist/_chunks/freemium-paywall-DVyNsQHS.js.map +0 -1
- package/dist/_chunks/header-BpKaSL_v.js.map +0 -1
- package/dist/_chunks/icon-button-C1vpylg3.js +0 -45
- package/dist/_chunks/icon-button-C1vpylg3.js.map +0 -1
- package/dist/_chunks/icon-button-group-tERESY-n.js.map +0 -1
- package/dist/_chunks/kbd-0iPlQjgC.js.map +0 -1
- package/dist/_chunks/key-value-pair--Je59tAF.js.map +0 -1
- package/dist/_chunks/leo-sidebar-9A9AWBxX.js +0 -755
- package/dist/_chunks/leo-sidebar-9A9AWBxX.js.map +0 -1
- package/dist/_chunks/list-n8vI8Yvn.js.map +0 -1
- package/dist/_chunks/logo-UNWYb9p7.js.map +0 -1
- package/dist/_chunks/matrix-rain-Q7xTEpKu.js.map +0 -1
- package/dist/_chunks/message-card-g5VS5Q80.js +0 -275
- package/dist/_chunks/message-card-g5VS5Q80.js.map +0 -1
- package/dist/_chunks/message-tray-CAk-iibU.js +0 -302
- package/dist/_chunks/message-tray-CAk-iibU.js.map +0 -1
- package/dist/_chunks/multi-select.agent-Cf4pU636.js.map +0 -1
- package/dist/_chunks/navigation-menu-DBDsAmXc.js.map +0 -1
- package/dist/_chunks/notification-card-CQxJporb.js +0 -255
- package/dist/_chunks/notification-card-CQxJporb.js.map +0 -1
- package/dist/_chunks/notification-tray-CNWPuPZp.js.map +0 -1
- package/dist/_chunks/number-input-B1Th0DdC.js.map +0 -1
- package/dist/_chunks/otp-input-CmoBuZ4K.js.map +0 -1
- package/dist/_chunks/pagination.agent-B5KLDCMN.js.map +0 -1
- package/dist/_chunks/password-input-DnjNh-hQ.js.map +0 -1
- package/dist/_chunks/payment-form-Cf7U6r5L.js.map +0 -1
- package/dist/_chunks/pdf-viewer.agent-DXjgDItg.js.map +0 -1
- package/dist/_chunks/phone-input-C2dtIuxW.js.map +0 -1
- package/dist/_chunks/popover-D1woU9mP.js.map +0 -1
- package/dist/_chunks/privacy-lock-C1X42Sit.js.map +0 -1
- package/dist/_chunks/progress-DL3-izuO.js.map +0 -1
- package/dist/_chunks/radio-group-CXN9qNPe.js +0 -185
- package/dist/_chunks/radio-group-CXN9qNPe.js.map +0 -1
- package/dist/_chunks/resizable.agent-DVk_jJur.js.map +0 -1
- package/dist/_chunks/rich-text-editor.agent-BOjF4Xao.js.map +0 -1
- package/dist/_chunks/scroll-area-DXn-YWHY.js +0 -144
- package/dist/_chunks/scroll-area-DXn-YWHY.js.map +0 -1
- package/dist/_chunks/search-bar-DgSOAajC.js.map +0 -1
- package/dist/_chunks/search-input-D4tC_Prn.js +0 -197
- package/dist/_chunks/search-input-D4tC_Prn.js.map +0 -1
- package/dist/_chunks/select-B4m4upMg.js +0 -320
- package/dist/_chunks/select-B4m4upMg.js.map +0 -1
- package/dist/_chunks/separator-DExI4amU.js.map +0 -1
- package/dist/_chunks/sheet-D6XOx0fK.js +0 -188
- package/dist/_chunks/sheet-D6XOx0fK.js.map +0 -1
- package/dist/_chunks/sidebar-r645O-k9.js +0 -1076
- package/dist/_chunks/sidebar-r645O-k9.js.map +0 -1
- package/dist/_chunks/sign-in-with-alfadocs-button-y3gy-W-D.js +0 -38
- package/dist/_chunks/sign-in-with-alfadocs-button-y3gy-W-D.js.map +0 -1
- package/dist/_chunks/signature-capture.agent-L_1_-zVR.js.map +0 -1
- package/dist/_chunks/skeleton-vbTWUntB.js +0 -95
- package/dist/_chunks/skeleton-vbTWUntB.js.map +0 -1
- package/dist/_chunks/slider-B3DBwmcm.js +0 -273
- package/dist/_chunks/slider-B3DBwmcm.js.map +0 -1
- package/dist/_chunks/slot-grid-DL_Tuj0p.js +0 -491
- package/dist/_chunks/slot-grid-DL_Tuj0p.js.map +0 -1
- package/dist/_chunks/sparkline.agent-BDTXzTy9.js.map +0 -1
- package/dist/_chunks/spinner-77xUGpuX.js.map +0 -1
- package/dist/_chunks/stat-CrumvZWf.js +0 -208
- package/dist/_chunks/stat-CrumvZWf.js.map +0 -1
- package/dist/_chunks/stepper-accordion-BkvqQWPI.js.map +0 -1
- package/dist/_chunks/stepper-calendar-BQMjrwzo.js.map +0 -1
- package/dist/_chunks/stepper-progress-Bwfl-0rV.js +0 -128
- package/dist/_chunks/stepper-progress-Bwfl-0rV.js.map +0 -1
- package/dist/_chunks/streaming-text-Cu9YQe_1.js +0 -104
- package/dist/_chunks/streaming-text-Cu9YQe_1.js.map +0 -1
- package/dist/_chunks/suggestion-chip-XkxDJiPW.js +0 -157
- package/dist/_chunks/suggestion-chip-XkxDJiPW.js.map +0 -1
- package/dist/_chunks/switch-DyC0ThNT.js +0 -137
- package/dist/_chunks/switch-DyC0ThNT.js.map +0 -1
- package/dist/_chunks/tabs.agent-FsGU3sZL.js.map +0 -1
- package/dist/_chunks/tag-BucAvfTX.js +0 -194
- package/dist/_chunks/tag-BucAvfTX.js.map +0 -1
- package/dist/_chunks/task-card-uxjApfcg.js +0 -112
- package/dist/_chunks/task-card-uxjApfcg.js.map +0 -1
- package/dist/_chunks/task-tray-BdfM3p8N.js +0 -99
- package/dist/_chunks/task-tray-BdfM3p8N.js.map +0 -1
- package/dist/_chunks/text-area-CKxZ7cS3.js +0 -152
- package/dist/_chunks/text-area-CKxZ7cS3.js.map +0 -1
- package/dist/_chunks/text-input-D16CcMlL.js +0 -187
- package/dist/_chunks/text-input-D16CcMlL.js.map +0 -1
- package/dist/_chunks/time-picker-BapZq0OY.js.map +0 -1
- package/dist/_chunks/timeline-D3VOf4RT.js +0 -219
- package/dist/_chunks/timeline-D3VOf4RT.js.map +0 -1
- package/dist/_chunks/timestamp-BLM-jjdw.js.map +0 -1
- package/dist/_chunks/tooltip-DF6WjD1r.js.map +0 -1
- package/dist/_chunks/tooth-scheme.agent-CFKl3iQr.js.map +0 -1
- package/dist/_chunks/transcript-panel-aI14fHYA.js +0 -265
- package/dist/_chunks/transcript-panel-aI14fHYA.js.map +0 -1
- package/dist/_chunks/typing-indicator-BTVDEpnd.js +0 -81
- package/dist/_chunks/typing-indicator-BTVDEpnd.js.map +0 -1
- package/dist/_chunks/warning-stack-Cyf_81SL.js.map +0 -1
- package/dist/_chunks/workflow-map-Uf-hHAO3.js.map +0 -1
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { jsx as e, jsxs as i } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as t } from "react";
|
|
3
|
-
import * as n from "@radix-ui/react-dropdown-menu";
|
|
4
|
-
import { c as d } from "./index-D2ZczOXr.js";
|
|
5
|
-
import { S as M } from "./separator-DExI4amU.js";
|
|
6
|
-
import { K as m } from "./kbd-0iPlQjgC.js";
|
|
7
|
-
import { a as j } from "./use-direction-D6rvvG9G.js";
|
|
8
|
-
import { C as k } from "./chevron-right-BrpYejk0.js";
|
|
9
|
-
import { C as p } from "./check-DPdL_Sm7.js";
|
|
10
|
-
const u = d(
|
|
11
|
-
[
|
|
12
|
-
"z-[var(--z-dropdown)]",
|
|
13
|
-
"min-w-[8rem]",
|
|
14
|
-
"rounded-[var(--radius-md)]",
|
|
15
|
-
"border border-[color:var(--border)]",
|
|
16
|
-
"bg-[var(--popover)] text-[color:var(--popover-foreground)]",
|
|
17
|
-
"shadow-[var(--shadow-lg)]",
|
|
18
|
-
"p-[var(--spacing-xs)]",
|
|
19
|
-
// Motion — gated on --animation-duration via Tailwind's animate-in
|
|
20
|
-
// preset. motion-reduce disables via the no-preference query.
|
|
21
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
22
|
-
"data-[state=open]:fade-in data-[state=closed]:fade-out",
|
|
23
|
-
"data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
|
|
24
|
-
"motion-reduce:animate-none",
|
|
25
|
-
"forced-colors:border-[CanvasText]"
|
|
26
|
-
].join(" ")
|
|
27
|
-
), l = d(
|
|
28
|
-
[
|
|
29
|
-
"relative flex items-center gap-[var(--spacing-sm)]",
|
|
30
|
-
"ps-[var(--spacing-sm)] pe-[var(--spacing-sm)]",
|
|
31
|
-
"pt-[var(--spacing-xs)] pb-[var(--spacing-xs)]",
|
|
32
|
-
"rounded-[var(--radius-sm)]",
|
|
33
|
-
"min-h-[var(--min-target-size)]",
|
|
34
|
-
"text-[length:var(--font-size-sm)] text-[color:var(--foreground)]",
|
|
35
|
-
"cursor-pointer select-none outline-none",
|
|
36
|
-
// Highlighted + hover state
|
|
37
|
-
"data-[highlighted]:bg-[color:var(--muted)]/40",
|
|
38
|
-
"focus-visible:outline-[length:var(--focus-ring-width)]",
|
|
39
|
-
"focus-visible:outline-solid focus-visible:outline-[color:var(--ring)]",
|
|
40
|
-
"focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
41
|
-
"forced-colors:focus-visible:outline-[CanvasText]",
|
|
42
|
-
// Disabled
|
|
43
|
-
"data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed",
|
|
44
|
-
"data-[disabled]:pointer-events-none"
|
|
45
|
-
].join(" ")
|
|
46
|
-
), I = d(
|
|
47
|
-
[
|
|
48
|
-
"ps-[var(--spacing-sm)] pe-[var(--spacing-sm)]",
|
|
49
|
-
"pt-[var(--spacing-xs)] pb-[var(--spacing-xs)]",
|
|
50
|
-
"type-eyebrow text-[color:var(--muted-foreground)]",
|
|
51
|
-
"select-none"
|
|
52
|
-
].join(" ")
|
|
53
|
-
), f = "inline-flex items-center justify-center size-4 shrink-0", h = ({ dir: o, ...a }) => {
|
|
54
|
-
const s = j();
|
|
55
|
-
return /* @__PURE__ */ e(n.Root, { dir: o ?? s, ...a });
|
|
56
|
-
};
|
|
57
|
-
h.displayName = "DropdownMenu.Root";
|
|
58
|
-
const T = n.Trigger, G = n.Portal, P = n.Group, L = n.RadioGroup, v = t(({ className: o, sideOffset: a = 8, ...s }, r) => /* @__PURE__ */ e(n.Portal, { children: /* @__PURE__ */ e(
|
|
59
|
-
n.Content,
|
|
60
|
-
{
|
|
61
|
-
ref: r,
|
|
62
|
-
sideOffset: a,
|
|
63
|
-
className: u({ className: o }),
|
|
64
|
-
...s
|
|
65
|
-
}
|
|
66
|
-
) }));
|
|
67
|
-
v.displayName = "DropdownMenu.Content";
|
|
68
|
-
const g = t(
|
|
69
|
-
({ className: o, startIcon: a, endIcon: s, description: r, shortcut: c, children: D, ...z }, R) => /* @__PURE__ */ i(
|
|
70
|
-
n.Item,
|
|
71
|
-
{
|
|
72
|
-
ref: R,
|
|
73
|
-
className: l({ className: o }),
|
|
74
|
-
...z,
|
|
75
|
-
children: [
|
|
76
|
-
a ? /* @__PURE__ */ e(
|
|
77
|
-
"span",
|
|
78
|
-
{
|
|
79
|
-
"aria-hidden": "true",
|
|
80
|
-
className: "inline-flex size-4 shrink-0 items-center justify-center",
|
|
81
|
-
children: a
|
|
82
|
-
}
|
|
83
|
-
) : null,
|
|
84
|
-
/* @__PURE__ */ i("span", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
85
|
-
/* @__PURE__ */ e("span", { className: "truncate", children: D }),
|
|
86
|
-
r ? /* @__PURE__ */ e("span", { className: "type-meta text-[color:var(--muted-foreground)] truncate", children: r }) : null
|
|
87
|
-
] }),
|
|
88
|
-
c ? /* @__PURE__ */ e("span", { className: "ms-auto", children: /* @__PURE__ */ e(m, { keys: c, size: "sm" }) }) : s ? /* @__PURE__ */ e(
|
|
89
|
-
"span",
|
|
90
|
-
{
|
|
91
|
-
"aria-hidden": "true",
|
|
92
|
-
className: "ms-auto inline-flex size-4 shrink-0 items-center justify-center",
|
|
93
|
-
children: s
|
|
94
|
-
}
|
|
95
|
-
) : null
|
|
96
|
-
]
|
|
97
|
-
}
|
|
98
|
-
)
|
|
99
|
-
);
|
|
100
|
-
g.displayName = "DropdownMenu.Item";
|
|
101
|
-
const x = t(({ className: o, children: a, ...s }, r) => /* @__PURE__ */ i(
|
|
102
|
-
n.CheckboxItem,
|
|
103
|
-
{
|
|
104
|
-
ref: r,
|
|
105
|
-
className: l({ className: o }),
|
|
106
|
-
...s,
|
|
107
|
-
children: [
|
|
108
|
-
/* @__PURE__ */ e("span", { className: f, children: /* @__PURE__ */ e(n.ItemIndicator, { children: /* @__PURE__ */ e(p, { "aria-hidden": !0, className: "size-4" }) }) }),
|
|
109
|
-
/* @__PURE__ */ e("span", { className: "flex-1 truncate", children: a })
|
|
110
|
-
]
|
|
111
|
-
}
|
|
112
|
-
));
|
|
113
|
-
x.displayName = "DropdownMenu.CheckboxItem";
|
|
114
|
-
const K = L, N = t(({ className: o, children: a, ...s }, r) => /* @__PURE__ */ i(
|
|
115
|
-
n.RadioItem,
|
|
116
|
-
{
|
|
117
|
-
ref: r,
|
|
118
|
-
className: l({ className: o }),
|
|
119
|
-
...s,
|
|
120
|
-
children: [
|
|
121
|
-
/* @__PURE__ */ e("span", { className: f, children: /* @__PURE__ */ e(n.ItemIndicator, { children: /* @__PURE__ */ e(
|
|
122
|
-
p,
|
|
123
|
-
{
|
|
124
|
-
"aria-hidden": !0,
|
|
125
|
-
className: "size-4 text-[color:var(--accent)]"
|
|
126
|
-
}
|
|
127
|
-
) }) }),
|
|
128
|
-
/* @__PURE__ */ e("span", { className: "flex-1 truncate", children: a })
|
|
129
|
-
]
|
|
130
|
-
}
|
|
131
|
-
));
|
|
132
|
-
N.displayName = "DropdownMenu.RadioItem";
|
|
133
|
-
const b = t(({ className: o, ...a }, s) => /* @__PURE__ */ e(
|
|
134
|
-
n.Label,
|
|
135
|
-
{
|
|
136
|
-
ref: s,
|
|
137
|
-
className: I({ className: o }),
|
|
138
|
-
...a
|
|
139
|
-
}
|
|
140
|
-
));
|
|
141
|
-
b.displayName = "DropdownMenu.Label";
|
|
142
|
-
const w = t(({ className: o, ...a }, s) => /* @__PURE__ */ e(n.Separator, { ref: s, asChild: !0, ...a, children: /* @__PURE__ */ e(
|
|
143
|
-
M,
|
|
144
|
-
{
|
|
145
|
-
className: ["my-[calc(var(--spacing-xs)/2)]", o ?? ""].filter(Boolean).join(" ")
|
|
146
|
-
}
|
|
147
|
-
) }));
|
|
148
|
-
w.displayName = "DropdownMenu.Separator";
|
|
149
|
-
const y = t(
|
|
150
|
-
({ keys: o, separator: a = "none" }, s) => /* @__PURE__ */ e("span", { ref: s, className: "ms-auto ps-[var(--spacing-sm)]", children: /* @__PURE__ */ e(m, { keys: o, separator: a, size: "sm" }) })
|
|
151
|
-
);
|
|
152
|
-
y.displayName = "DropdownMenu.Shortcut";
|
|
153
|
-
const B = n.Sub, C = t(({ className: o, startIcon: a, children: s, ...r }, c) => /* @__PURE__ */ i(
|
|
154
|
-
n.SubTrigger,
|
|
155
|
-
{
|
|
156
|
-
ref: c,
|
|
157
|
-
className: l({ className: o }),
|
|
158
|
-
...r,
|
|
159
|
-
children: [
|
|
160
|
-
a ? /* @__PURE__ */ e(
|
|
161
|
-
"span",
|
|
162
|
-
{
|
|
163
|
-
"aria-hidden": "true",
|
|
164
|
-
className: "inline-flex size-4 shrink-0 items-center justify-center",
|
|
165
|
-
children: a
|
|
166
|
-
}
|
|
167
|
-
) : null,
|
|
168
|
-
/* @__PURE__ */ e("span", { className: "flex-1 truncate", children: s }),
|
|
169
|
-
/* @__PURE__ */ e(
|
|
170
|
-
k,
|
|
171
|
-
{
|
|
172
|
-
"aria-hidden": !0,
|
|
173
|
-
className: "ms-auto size-4 shrink-0 rtl:-scale-x-100"
|
|
174
|
-
}
|
|
175
|
-
)
|
|
176
|
-
]
|
|
177
|
-
}
|
|
178
|
-
));
|
|
179
|
-
C.displayName = "DropdownMenu.SubTrigger";
|
|
180
|
-
const S = t(({ className: o, ...a }, s) => /* @__PURE__ */ e(n.Portal, { children: /* @__PURE__ */ e(
|
|
181
|
-
n.SubContent,
|
|
182
|
-
{
|
|
183
|
-
ref: s,
|
|
184
|
-
sideOffset: 8,
|
|
185
|
-
className: u({ className: o }),
|
|
186
|
-
...a
|
|
187
|
-
}
|
|
188
|
-
) }));
|
|
189
|
-
S.displayName = "DropdownMenu.SubContent";
|
|
190
|
-
const Q = {
|
|
191
|
-
Root: h,
|
|
192
|
-
Trigger: T,
|
|
193
|
-
Portal: G,
|
|
194
|
-
Content: v,
|
|
195
|
-
Group: P,
|
|
196
|
-
Item: g,
|
|
197
|
-
CheckboxItem: x,
|
|
198
|
-
RadioGroup: K,
|
|
199
|
-
RadioItem: N,
|
|
200
|
-
Label: b,
|
|
201
|
-
Separator: w,
|
|
202
|
-
Shortcut: y,
|
|
203
|
-
Sub: B,
|
|
204
|
-
SubTrigger: C,
|
|
205
|
-
SubContent: S
|
|
206
|
-
};
|
|
207
|
-
export {
|
|
208
|
-
Q as D
|
|
209
|
-
};
|
|
210
|
-
//# sourceMappingURL=dropdown-menu-CJKvK7VG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu-CJKvK7VG.js","sources":["../../src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type ReactNode,\n} from 'react';\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Check, ChevronRight } from 'lucide-react';\nimport { Separator as DsSeparator } from '../separator/separator';\nimport { Kbd, type KbdNamedKey } from '../kbd/kbd';\nimport { useDocumentDirection } from '../_shared/use-direction';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst contentVariants = cva(\n [\n 'z-[var(--z-dropdown)]',\n 'min-w-[8rem]',\n 'rounded-[var(--radius-md)]',\n 'border border-[color:var(--border)]',\n 'bg-[var(--popover)] text-[color:var(--popover-foreground)]',\n 'shadow-[var(--shadow-lg)]',\n 'p-[var(--spacing-xs)]',\n // Motion — gated on --animation-duration via Tailwind's animate-in\n // preset. motion-reduce disables via the no-preference query.\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=open]:fade-in data-[state=closed]:fade-out',\n 'data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95',\n 'motion-reduce:animate-none',\n 'forced-colors:border-[CanvasText]',\n ].join(' '),\n);\n\nconst itemClasses = cva(\n [\n 'relative flex items-center gap-[var(--spacing-sm)]',\n 'ps-[var(--spacing-sm)] pe-[var(--spacing-sm)]',\n 'pt-[var(--spacing-xs)] pb-[var(--spacing-xs)]',\n 'rounded-[var(--radius-sm)]',\n 'min-h-[var(--min-target-size)]',\n 'text-[length:var(--font-size-sm)] text-[color:var(--foreground)]',\n 'cursor-pointer select-none outline-none',\n // Highlighted + hover state\n 'data-[highlighted]:bg-[color:var(--muted)]/40',\n 'focus-visible:outline-[length:var(--focus-ring-width)]',\n 'focus-visible:outline-solid focus-visible:outline-[color:var(--ring)]',\n 'focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'forced-colors:focus-visible:outline-[CanvasText]',\n // Disabled\n 'data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed',\n 'data-[disabled]:pointer-events-none',\n ].join(' '),\n);\n\nconst labelClasses = cva(\n [\n 'ps-[var(--spacing-sm)] pe-[var(--spacing-sm)]',\n 'pt-[var(--spacing-xs)] pb-[var(--spacing-xs)]',\n 'type-eyebrow text-[color:var(--muted-foreground)]',\n 'select-none',\n ].join(' '),\n);\n\nconst indicatorSlotClasses =\n 'inline-flex items-center justify-center size-4 shrink-0';\n\n/* ------------------------------------------------------------------ */\n/* Root / Trigger / Portal */\n/* ------------------------------------------------------------------ */\n\ntype DropdownMenuRootProps = ComponentPropsWithoutRef<typeof RadixDropdownMenu.Root>;\n\nconst Root = ({ dir, ...props }: DropdownMenuRootProps) => {\n const autoDir = useDocumentDirection();\n return <RadixDropdownMenu.Root dir={dir ?? autoDir} {...props} />;\n};\nRoot.displayName = 'DropdownMenu.Root';\n\nconst Trigger = RadixDropdownMenu.Trigger;\nconst Portal = RadixDropdownMenu.Portal;\nconst RadixGroup = RadixDropdownMenu.Group;\nconst RadixRadioGroup = RadixDropdownMenu.RadioGroup;\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuContentProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Content>,\n VariantProps<typeof contentVariants> {}\n\nconst Content = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 8, ...props }, ref) => (\n <RadixDropdownMenu.Portal>\n <RadixDropdownMenu.Content\n ref={ref}\n sideOffset={sideOffset}\n className={contentVariants({ className })}\n {...props}\n />\n </RadixDropdownMenu.Portal>\n));\nContent.displayName = 'DropdownMenu.Content';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuItemProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Item> {\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n description?: ReactNode;\n /** Convenience — renders a DS <Kbd keys={…}> on the inline-end. */\n shortcut?: Array<KbdNamedKey | string>;\n}\n\nconst Item = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Item>,\n DropdownMenuItemProps\n>(\n (\n { className, startIcon, endIcon, description, shortcut, children, ...props },\n ref,\n ) => (\n <RadixDropdownMenu.Item\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n {startIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex size-4 shrink-0 items-center justify-center\"\n >\n {startIcon}\n </span>\n ) : null}\n <span className=\"flex-1 flex flex-col min-w-0\">\n <span className=\"truncate\">{children}</span>\n {description ? (\n <span className=\"type-meta text-[color:var(--muted-foreground)] truncate\">\n {description}\n </span>\n ) : null}\n </span>\n {shortcut ? (\n <span className=\"ms-auto\">\n <Kbd keys={shortcut} size=\"sm\" />\n </span>\n ) : endIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ms-auto inline-flex size-4 shrink-0 items-center justify-center\"\n >\n {endIcon}\n </span>\n ) : null}\n </RadixDropdownMenu.Item>\n ),\n);\nItem.displayName = 'DropdownMenu.Item';\n\n/* ------------------------------------------------------------------ */\n/* CheckboxItem */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.CheckboxItem> {}\n\nconst CheckboxItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <RadixDropdownMenu.CheckboxItem\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n <span className={indicatorSlotClasses}>\n <RadixDropdownMenu.ItemIndicator>\n <Check aria-hidden className=\"size-4\" />\n </RadixDropdownMenu.ItemIndicator>\n </span>\n <span className=\"flex-1 truncate\">{children}</span>\n </RadixDropdownMenu.CheckboxItem>\n));\nCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\n/* ------------------------------------------------------------------ */\n/* RadioGroup / RadioItem */\n/* ------------------------------------------------------------------ */\n\nconst RadioGroup = RadixRadioGroup;\n\nexport interface DropdownMenuRadioItemProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.RadioItem> {}\n\nconst RadioItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.RadioItem>,\n DropdownMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <RadixDropdownMenu.RadioItem\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n <span className={indicatorSlotClasses}>\n <RadixDropdownMenu.ItemIndicator>\n <Check\n aria-hidden\n className=\"size-4 text-[color:var(--accent)]\"\n />\n </RadixDropdownMenu.ItemIndicator>\n </span>\n <span className=\"flex-1 truncate\">{children}</span>\n </RadixDropdownMenu.RadioItem>\n));\nRadioItem.displayName = 'DropdownMenu.RadioItem';\n\n/* ------------------------------------------------------------------ */\n/* Label */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuLabelProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Label> {}\n\nconst Label = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Label>,\n DropdownMenuLabelProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Label\n ref={ref}\n className={labelClasses({ className })}\n {...props}\n />\n));\nLabel.displayName = 'DropdownMenu.Label';\n\n/* ------------------------------------------------------------------ */\n/* Separator */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuSeparatorProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Separator> {}\n\nconst MenuSeparator = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Separator>,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Separator ref={ref} asChild {...props}>\n <DsSeparator\n className={['my-[calc(var(--spacing-xs)/2)]', className ?? '']\n .filter(Boolean)\n .join(' ')}\n />\n </RadixDropdownMenu.Separator>\n));\nMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/* ------------------------------------------------------------------ */\n/* Shortcut — thin wrapper over DS Kbd for the right side of an Item */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuShortcutProps {\n keys: Array<KbdNamedKey | string>;\n separator?: 'none' | 'plus' | 'then';\n}\n\nconst Shortcut = forwardRef<HTMLSpanElement, DropdownMenuShortcutProps>(\n ({ keys, separator = 'none' }, ref) => (\n <span ref={ref} className=\"ms-auto ps-[var(--spacing-sm)]\">\n <Kbd keys={keys} separator={separator} size=\"sm\" />\n </span>\n ),\n);\nShortcut.displayName = 'DropdownMenu.Shortcut';\n\n/* ------------------------------------------------------------------ */\n/* Sub-menu */\n/* ------------------------------------------------------------------ */\n\nconst Sub = RadixDropdownMenu.Sub;\n\nexport interface DropdownMenuSubTriggerProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.SubTrigger> {\n startIcon?: ReactNode;\n}\n\nconst SubTrigger = forwardRef<\n ElementRef<typeof RadixDropdownMenu.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(({ className, startIcon, children, ...props }, ref) => (\n <RadixDropdownMenu.SubTrigger\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n {startIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex size-4 shrink-0 items-center justify-center\"\n >\n {startIcon}\n </span>\n ) : null}\n <span className=\"flex-1 truncate\">{children}</span>\n <ChevronRight\n aria-hidden\n className=\"ms-auto size-4 shrink-0 rtl:-scale-x-100\"\n />\n </RadixDropdownMenu.SubTrigger>\n));\nSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nexport interface DropdownMenuSubContentProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.SubContent> {}\n\nconst SubContent = forwardRef<\n ElementRef<typeof RadixDropdownMenu.SubContent>,\n DropdownMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Portal>\n <RadixDropdownMenu.SubContent\n ref={ref}\n sideOffset={8}\n className={contentVariants({ className })}\n {...props}\n />\n </RadixDropdownMenu.Portal>\n));\nSubContent.displayName = 'DropdownMenu.SubContent';\n\n/* ------------------------------------------------------------------ */\n/* Assembled namespace export */\n/* ------------------------------------------------------------------ */\n\nexport const DropdownMenu = {\n Root,\n Trigger,\n Portal,\n Content,\n Group: RadixGroup,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Label,\n Separator: MenuSeparator,\n Shortcut,\n Sub,\n SubTrigger,\n SubContent,\n};\n"],"names":["contentVariants","cva","itemClasses","labelClasses","indicatorSlotClasses","Root","dir","props","autoDir","useDocumentDirection","jsx","RadixDropdownMenu","Trigger","Portal","RadixGroup","RadixRadioGroup","Content","forwardRef","className","sideOffset","ref","Item","startIcon","endIcon","description","shortcut","children","jsxs","Kbd","CheckboxItem","Check","RadioGroup","RadioItem","Label","MenuSeparator","DsSeparator","Shortcut","keys","separator","Sub","SubTrigger","ChevronRight","SubContent","DropdownMenu"],"mappings":";;;;;;;;;AAiBA,MAAMA,IAAkBC;AAAA,EACtB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ,GAEMC,IAAcD;AAAA,EAClB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ,GAEME,IAAeF;AAAA,EACnB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ,GAEMG,IACJ,2DAQIC,IAAO,CAAC,EAAE,KAAAC,GAAK,GAAGC,QAAmC;AACzD,QAAMC,IAAUC,EAAA;AAChB,SAAO,gBAAAC,EAACC,EAAkB,MAAlB,EAAuB,KAAKL,KAAOE,GAAU,GAAGD,GAAO;AACjE;AACAF,EAAK,cAAc;AAEnB,MAAMO,IAAUD,EAAkB,SAC5BE,IAASF,EAAkB,QAC3BG,IAAaH,EAAkB,OAC/BI,IAAkBJ,EAAkB,YAUpCK,IAAUC,EAGd,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,GAAGZ,EAAA,GAASa,MAC1C,gBAAAV,EAACC,EAAkB,QAAlB,EACC,UAAA,gBAAAD;AAAA,EAACC,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAS;AAAA,IACA,YAAAD;AAAA,IACA,WAAWnB,EAAgB,EAAE,WAAAkB,GAAW;AAAA,IACvC,GAAGX;AAAA,EAAA;AACN,EAAA,CACF,CACD;AACDS,EAAQ,cAAc;AAetB,MAAMK,IAAOJ;AAAA,EAIX,CACE,EAAE,WAAAC,GAAW,WAAAI,GAAW,SAAAC,GAAS,aAAAC,GAAa,UAAAC,GAAU,UAAAC,GAAU,GAAGnB,KACrEa,MAEA,gBAAAO;AAAA,IAAChB,EAAkB;AAAA,IAAlB;AAAA,MACC,KAAAS;AAAA,MACA,WAAWlB,EAAY,EAAE,WAAAgB,GAAW;AAAA,MACnC,GAAGX;AAAA,MAEH,UAAA;AAAA,QAAAe,IACC,gBAAAZ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,WAAU;AAAA,YAET,UAAAY;AAAA,UAAA;AAAA,QAAA,IAED;AAAA,QACJ,gBAAAK,EAAC,QAAA,EAAK,WAAU,gCACd,UAAA;AAAA,UAAA,gBAAAjB,EAAC,QAAA,EAAK,WAAU,YAAY,UAAAgB,EAAA,CAAS;AAAA,UACpCF,IACC,gBAAAd,EAAC,QAAA,EAAK,WAAU,2DACb,aACH,IACE;AAAA,QAAA,GACN;AAAA,QACCe,IACC,gBAAAf,EAAC,QAAA,EAAK,WAAU,WACd,UAAA,gBAAAA,EAACkB,GAAA,EAAI,MAAMH,GAAU,MAAK,KAAA,CAAK,EAAA,CACjC,IACEF,IACF,gBAAAb;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAY;AAAA,YACZ,WAAU;AAAA,YAET,UAAAa;AAAA,UAAA;AAAA,QAAA,IAED;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;AACAF,EAAK,cAAc;AASnB,MAAMQ,IAAeZ,EAGnB,CAAC,EAAE,WAAAC,GAAW,UAAAQ,GAAU,GAAGnB,EAAA,GAASa,MACpC,gBAAAO;AAAA,EAAChB,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAS;AAAA,IACA,WAAWlB,EAAY,EAAE,WAAAgB,GAAW;AAAA,IACnC,GAAGX;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAG,EAAC,QAAA,EAAK,WAAWN,GACf,UAAA,gBAAAM,EAACC,EAAkB,eAAlB,EACC,UAAA,gBAAAD,EAACoB,GAAA,EAAM,eAAW,IAAC,WAAU,SAAA,CAAS,GACxC,GACF;AAAA,MACA,gBAAApB,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAgB,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAC9C,CACD;AACDG,EAAa,cAAc;AAM3B,MAAME,IAAahB,GAKbiB,IAAYf,EAGhB,CAAC,EAAE,WAAAC,GAAW,UAAAQ,GAAU,GAAGnB,EAAA,GAASa,MACpC,gBAAAO;AAAA,EAAChB,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAS;AAAA,IACA,WAAWlB,EAAY,EAAE,WAAAgB,GAAW;AAAA,IACnC,GAAGX;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAG,EAAC,UAAK,WAAWN,GACf,UAAA,gBAAAM,EAACC,EAAkB,eAAlB,EACC,UAAA,gBAAAD;AAAA,QAACoB;AAAA,QAAA;AAAA,UACC,eAAW;AAAA,UACX,WAAU;AAAA,QAAA;AAAA,MAAA,GAEd,EAAA,CACF;AAAA,MACA,gBAAApB,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAgB,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAC9C,CACD;AACDM,EAAU,cAAc;AASxB,MAAMC,IAAQhB,EAGZ,CAAC,EAAE,WAAAC,GAAW,GAAGX,EAAA,GAASa,MAC1B,gBAAAV;AAAA,EAACC,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAS;AAAA,IACA,WAAWjB,EAAa,EAAE,WAAAe,GAAW;AAAA,IACpC,GAAGX;AAAA,EAAA;AACN,CACD;AACD0B,EAAM,cAAc;AASpB,MAAMC,IAAgBjB,EAGpB,CAAC,EAAE,WAAAC,GAAW,GAAGX,EAAA,GAASa,MAC1B,gBAAAV,EAACC,EAAkB,WAAlB,EAA4B,KAAAS,GAAU,SAAO,IAAE,GAAGb,GACjD,UAAA,gBAAAG;AAAA,EAACyB;AAAAA,EAAA;AAAA,IACC,WAAW,CAAC,kCAAkCjB,KAAa,EAAE,EAC1D,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,EAAA;AACb,EAAA,CACF,CACD;AACDgB,EAAc,cAAc;AAW5B,MAAME,IAAWnB;AAAA,EACf,CAAC,EAAE,MAAAoB,GAAM,WAAAC,IAAY,OAAA,GAAUlB,MAC7B,gBAAAV,EAAC,QAAA,EAAK,KAAAU,GAAU,WAAU,kCACxB,UAAA,gBAAAV,EAACkB,GAAA,EAAI,MAAAS,GAAY,WAAAC,GAAsB,MAAK,MAAK,EAAA,CACnD;AAEJ;AACAF,EAAS,cAAc;AAMvB,MAAMG,IAAM5B,EAAkB,KAOxB6B,IAAavB,EAGjB,CAAC,EAAE,WAAAC,GAAW,WAAAI,GAAW,UAAAI,GAAU,GAAGnB,KAASa,MAC/C,gBAAAO;AAAA,EAAChB,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAS;AAAA,IACA,WAAWlB,EAAY,EAAE,WAAAgB,GAAW;AAAA,IACnC,GAAGX;AAAA,IAEH,UAAA;AAAA,MAAAe,IACC,gBAAAZ;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,WAAU;AAAA,UAET,UAAAY;AAAA,QAAA;AAAA,MAAA,IAED;AAAA,MACJ,gBAAAZ,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAgB,EAAA,CAAS;AAAA,MAC5C,gBAAAhB;AAAA,QAAC+B;AAAA,QAAA;AAAA,UACC,eAAW;AAAA,UACX,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AACF,CACD;AACDD,EAAW,cAAc;AAKzB,MAAME,IAAazB,EAGjB,CAAC,EAAE,WAAAC,GAAW,GAAGX,EAAA,GAASa,MAC1B,gBAAAV,EAACC,EAAkB,QAAlB,EACC,UAAA,gBAAAD;AAAA,EAACC,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAS;AAAA,IACA,YAAY;AAAA,IACZ,WAAWpB,EAAgB,EAAE,WAAAkB,GAAW;AAAA,IACvC,GAAGX;AAAA,EAAA;AACN,EAAA,CACF,CACD;AACDmC,EAAW,cAAc;AAMlB,MAAMC,IAAe;AAAA,EAC1B,MAAAtC;AAAA,EACA,SAAAO;AAAA,EACA,QAAAC;AAAA,EACA,SAAAG;AAAA,EACA,OAAOF;AAAA,EACP,MAAAO;AAAA,EACA,cAAAQ;AAAA,EACA,YAAAE;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAWC;AAAA,EACX,UAAAE;AAAA,EACA,KAAAG;AAAA,EACA,YAAAC;AAAA,EACA,YAAAE;AACF;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty-state-DiG7vYBM.js","sources":["../../src/components/empty-state/empty-state.tsx"],"sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '../button/button';\n\n/* ------------------------------------------------------------------ */\n/* Ref helper */\n/* ------------------------------------------------------------------ */\n\nfunction setRef<T>(ref: Ref<T>, value: T | null) {\n if (!ref) return;\n if (typeof ref === 'function') ref(value);\n else (ref as { current: T | null }).current = value;\n}\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface EmptyStateContextValue {\n size: 'sm' | 'md' | 'lg';\n variant: 'first-use' | 'no-results' | 'error';\n titleId: string;\n registerTitle: () => void;\n}\n\nconst EmptyStateContext = createContext<EmptyStateContextValue>({\n size: 'md',\n variant: 'first-use',\n titleId: '',\n registerTitle: () => {},\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst emptyStateVariants = cva(\n 'flex flex-col items-center text-center max-w-md ms-auto me-auto w-full',\n {\n variants: {\n size: {\n sm: 'p-[var(--spacing-md)] gap-[var(--spacing-sm)]',\n md: 'p-[var(--spacing-lg)] gap-[var(--spacing-md)]',\n lg: 'p-[var(--spacing-lg)] gap-[var(--spacing-md)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst illustrationVariants = cva(\n 'flex items-center justify-center flex-shrink-0',\n {\n variants: {\n size: {\n sm: 'w-[80px] h-[80px]',\n md: 'w-[160px] h-[160px]',\n lg: 'w-[240px] h-[240px]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst titleVariants = cva('type-title-card text-[var(--foreground)]', {\n variants: {\n size: {\n sm: '[--type-title-card-size:var(--font-size-sm)]',\n md: '',\n lg: '[--type-title-card-size:var(--font-size-xl)]',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\nconst descriptionVariants = cva('type-body-sm text-[var(--muted-foreground)]', {\n variants: {\n size: {\n sm: '[--type-body-sm-size:var(--font-size-xs)]',\n md: '',\n lg: '[--type-body-sm-size:var(--font-size-base)]',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Built-in illustrations */\n/* ------------------------------------------------------------------ */\n\nfunction FirstUseIllustration() {\n return (\n <svg\n viewBox=\"0 0 120 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n className=\"w-full h-full\"\n >\n <circle\n cx=\"60\"\n cy=\"60\"\n r=\"50\"\n fill=\"var(--color-violet-50)\"\n stroke=\"var(--color-violet-200)\"\n strokeWidth=\"2\"\n />\n <rect x=\"55\" y=\"30\" width=\"10\" height=\"60\" rx=\"5\" fill=\"var(--color-violet-400)\" />\n <rect x=\"30\" y=\"55\" width=\"60\" height=\"10\" rx=\"5\" fill=\"var(--color-purple-400)\" />\n </svg>\n );\n}\n\nfunction NoResultsIllustration() {\n return (\n <svg\n viewBox=\"0 0 120 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n className=\"w-full h-full\"\n >\n <circle cx=\"52\" cy=\"52\" r=\"28\" stroke=\"var(--muted)\" strokeWidth=\"6\" />\n <line\n x1=\"72\"\n y1=\"72\"\n x2=\"92\"\n y2=\"92\"\n stroke=\"var(--muted)\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"42\"\n y1=\"52\"\n x2=\"62\"\n y2=\"52\"\n stroke=\"var(--muted-foreground)\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nfunction ErrorIllustration() {\n return (\n <svg\n viewBox=\"0 0 120 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n className=\"w-full h-full\"\n >\n <path\n d=\"M60 15 L110 95 H10 Z\"\n fill=\"var(--destructive)\"\n fillOpacity=\"0.1\"\n stroke=\"var(--destructive)\"\n strokeOpacity=\"0.4\"\n strokeWidth=\"3\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"56\"\n y=\"45\"\n width=\"8\"\n height=\"26\"\n rx=\"4\"\n fill=\"var(--destructive)\"\n fillOpacity=\"0.6\"\n />\n <circle cx=\"60\" cy=\"82\" r=\"5\" fill=\"var(--destructive)\" fillOpacity=\"0.6\" />\n </svg>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Subcomponents */\n/* ------------------------------------------------------------------ */\n\nconst EmptyStateIllustration = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ children, className, ...props }, ref) => {\n const { size } = useContext(EmptyStateContext);\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={illustrationVariants({ size, className })}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nEmptyStateIllustration.displayName = 'EmptyState.Illustration';\n\nconst EmptyStateTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ children, className, ...props }, ref) => {\n const { size, titleId, registerTitle } = useContext(EmptyStateContext);\n const callbackRef = useCallback(\n (node: HTMLHeadingElement | null) => {\n if (node) registerTitle();\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as { current: HTMLHeadingElement | null }).current = node;\n },\n [ref, registerTitle],\n );\n return (\n <h3\n ref={callbackRef}\n id={titleId}\n className={titleVariants({ size, className })}\n {...props}\n >\n {children}\n </h3>\n );\n },\n);\nEmptyStateTitle.displayName = 'EmptyState.Title';\n\nconst EmptyStateDescription = forwardRef<\n HTMLParagraphElement,\n HTMLAttributes<HTMLParagraphElement>\n>(({ children, className, ...props }, ref) => {\n const { size } = useContext(EmptyStateContext);\n return (\n <p\n ref={ref}\n className={descriptionVariants({ size, className })}\n {...props}\n >\n {children}\n </p>\n );\n});\nEmptyStateDescription.displayName = 'EmptyState.Description';\n\nconst actionsVariants = cva(\n 'flex flex-row flex-wrap items-center justify-center gap-[var(--spacing-md)]',\n);\n\nconst EmptyStateActions = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ children, className, ...props }, ref) => (\n <div\n ref={ref}\n className={actionsVariants({ className })}\n {...props}\n >\n {children}\n </div>\n ),\n);\nEmptyStateActions.displayName = 'EmptyState.Actions';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface EmptyStateProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'title'>,\n VariantProps<typeof emptyStateVariants> {\n variant: 'first-use' | 'no-results' | 'error';\n size?: 'sm' | 'md' | 'lg';\n title?: string;\n description?: string;\n primaryAction?: { label: string; onClick: () => void };\n secondaryAction?: { label: string; onClick: () => void; href?: string };\n autoFocus?: boolean;\n children?: ReactNode;\n}\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nconst EmptyStateRoot = forwardRef<HTMLDivElement, EmptyStateProps>(\n (\n {\n variant,\n size = 'md',\n title,\n description,\n primaryAction,\n secondaryAction,\n autoFocus = false,\n children,\n className,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const titleId = useId();\n const containerRef = useRef<HTMLDivElement | null>(null);\n const [hasTitle, setHasTitle] = useState(false);\n const registerTitle = useCallback(() => setHasTitle(true), []);\n\n useEffect(() => {\n if (!autoFocus) return;\n const firstBtn = containerRef.current?.querySelector<HTMLElement>(\n 'button:not([disabled]), a[href]',\n );\n firstBtn?.focus();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const roleProps =\n variant === 'no-results'\n ? ({ role: 'status' as const, 'aria-live': 'polite' as const })\n : ({ role: 'region' as const });\n\n const defaultTitle =\n variant === 'first-use'\n ? t('emptyState.firstUse.title')\n : variant === 'no-results'\n ? t('emptyState.noResults.title')\n : t('emptyState.error.title');\n\n const defaultDescription =\n variant === 'first-use'\n ? t('emptyState.firstUse.description')\n : variant === 'no-results'\n ? t('emptyState.noResults.description')\n : t('emptyState.error.description');\n\n const defaultCtaLabel =\n variant === 'first-use'\n ? t('emptyState.firstUse.cta')\n : variant === 'no-results'\n ? t('emptyState.noResults.cta')\n : t('emptyState.error.cta');\n\n const buttonSize = size === 'sm' ? ('sm' as const) : ('md' as const);\n\n const safeHref = (href: string) =>\n /^(https?:\\/\\/|\\/|#)/.test(href) ? href : '#';\n\n return (\n <EmptyStateContext.Provider value={{ size, variant, titleId, registerTitle }}>\n <div\n ref={(node) => {\n containerRef.current = node;\n setRef(ref, node);\n }}\n aria-labelledby={hasTitle || !children ? titleId : undefined}\n {...roleProps}\n className={emptyStateVariants({ size, className })}\n {...props}\n >\n {children ?? (\n <>\n <EmptyStateIllustration>\n {variant === 'first-use' && <FirstUseIllustration />}\n {variant === 'no-results' && <NoResultsIllustration />}\n {variant === 'error' && <ErrorIllustration />}\n </EmptyStateIllustration>\n <EmptyStateTitle>{title ?? defaultTitle}</EmptyStateTitle>\n <EmptyStateDescription>\n {description ?? defaultDescription}\n </EmptyStateDescription>\n {(primaryAction || secondaryAction) && (\n <EmptyStateActions>\n {primaryAction && (\n <Button\n intent=\"primary\"\n size={buttonSize}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label ?? defaultCtaLabel}\n </Button>\n )}\n {secondaryAction &&\n (secondaryAction.href ? (\n <Button intent=\"ghost\" size={buttonSize} asChild>\n <a href={safeHref(secondaryAction.href!)} onClick={secondaryAction.onClick}>\n {secondaryAction.label}\n </a>\n </Button>\n ) : (\n <Button\n intent=\"ghost\"\n size={buttonSize}\n onClick={secondaryAction.onClick}\n >\n {secondaryAction.label}\n </Button>\n ))}\n </EmptyStateActions>\n )}\n </>\n )}\n </div>\n </EmptyStateContext.Provider>\n );\n },\n);\nEmptyStateRoot.displayName = 'EmptyState';\n\n/* ------------------------------------------------------------------ */\n/* Compound export */\n/* ------------------------------------------------------------------ */\n\nexport const EmptyState = Object.assign(EmptyStateRoot, {\n Illustration: EmptyStateIllustration,\n Title: EmptyStateTitle,\n Description: EmptyStateDescription,\n Actions: EmptyStateActions,\n});\n"],"names":["setRef","ref","value","EmptyStateContext","createContext","emptyStateVariants","cva","illustrationVariants","titleVariants","descriptionVariants","FirstUseIllustration","jsxs","jsx","NoResultsIllustration","ErrorIllustration","EmptyStateIllustration","forwardRef","children","className","props","size","useContext","EmptyStateTitle","titleId","registerTitle","callbackRef","useCallback","node","EmptyStateDescription","actionsVariants","EmptyStateActions","EmptyStateRoot","variant","title","description","primaryAction","secondaryAction","autoFocus","t","useTranslation","useId","containerRef","useRef","hasTitle","setHasTitle","useState","useEffect","firstBtn","_a","roleProps","defaultTitle","defaultDescription","defaultCtaLabel","buttonSize","safeHref","href","Fragment","Button","EmptyState"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.agent-BMow5yDY.js","sources":["../../node_modules/lucide-react/dist/esm/icons/cloud-upload.js","../../node_modules/lucide-react/dist/esm/icons/file-archive.js","../../node_modules/lucide-react/dist/esm/icons/file-image.js","../../node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js","../../node_modules/lucide-react/dist/esm/icons/file.js","../../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../node_modules/lucide-react/dist/esm/icons/upload.js","../../src/components/file-upload/file-upload.tsx","../../src/components/file-upload/file-upload.agent.ts"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 13v8\", key: \"1l5pq0\" }],\n [\"path\", { d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\", key: \"1pljnt\" }],\n [\"path\", { d: \"m8 17 4-4 4 4\", key: \"1quai1\" }]\n];\nconst CloudUpload = createLucideIcon(\"cloud-upload\", __iconNode);\n\nexport { __iconNode, CloudUpload as default };\n//# sourceMappingURL=cloud-upload.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5\",\n key: \"4pqfef\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M8 12v-1\", key: \"1ej8lb\" }],\n [\"path\", { d: \"M8 18v-2\", key: \"qcmpov\" }],\n [\"path\", { d: \"M8 7V6\", key: \"1nbb54\" }],\n [\"circle\", { cx: \"8\", cy: \"20\", r: \"2\", key: \"ckkr5m\" }]\n];\nconst FileArchive = createLucideIcon(\"file-archive\", __iconNode);\n\nexport { __iconNode, FileArchive as default };\n//# sourceMappingURL=file-archive.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"circle\", { cx: \"10\", cy: \"12\", r: \"2\", key: \"737tya\" }],\n [\"path\", { d: \"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22\", key: \"wt3hpn\" }]\n];\nconst FileImage = createLucideIcon(\"file-image\", __iconNode);\n\nexport { __iconNode, FileImage as default };\n//# sourceMappingURL=file-image.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M8 13h2\", key: \"yr2amv\" }],\n [\"path\", { d: \"M14 13h2\", key: \"un5t4a\" }],\n [\"path\", { d: \"M8 17h2\", key: \"2yhykz\" }],\n [\"path\", { d: \"M14 17h2\", key: \"10kma7\" }]\n];\nconst FileSpreadsheet = createLucideIcon(\"file-spreadsheet\", __iconNode);\n\nexport { __iconNode, FileSpreadsheet as default };\n//# sourceMappingURL=file-spreadsheet.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }]\n];\nconst File = createLucideIcon(\"file\", __iconNode);\n\nexport { __iconNode, File as default };\n//# sourceMappingURL=file.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v12\", key: \"1x0j5s\" }],\n [\"path\", { d: \"m17 8-5-5-5 5\", key: \"7q97r8\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.js.map\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ClipboardEvent,\n type ReactNode,\n} from 'react';\nimport { useDropzone, type FileRejection } from 'react-dropzone';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n AlertCircle,\n CheckCircle2,\n CloudUpload,\n File as FileIcon,\n FileArchive,\n FileImage,\n FileSpreadsheet,\n FileText,\n Loader2,\n Upload,\n X,\n} from 'lucide-react';\nimport { useFormField } from '../form-field/form-field-context';\n\n/* -------------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------------- */\n\nexport interface FileUploadFile {\n file: File;\n id: string;\n status: 'pending' | 'uploading' | 'complete' | 'error';\n progress: number;\n preview?: string;\n error?: string;\n}\n\nexport interface FileUploadRejection {\n file: File;\n reason:\n | 'file-too-large'\n | 'file-too-small'\n | 'file-invalid-type'\n | 'too-many-files';\n}\n\nexport interface FileUploadProps {\n accept?: Record<string, string[]>;\n maxSize?: number;\n minSize?: number;\n maxFiles?: number;\n multiple?: boolean;\n disabled?: boolean;\n strictAccept?: boolean;\n onDrop?: (accepted: File[], rejected: FileUploadRejection[]) => void;\n onUpload?: (\n file: File,\n helpers: {\n signal: AbortSignal;\n onProgress: (percent: number) => void;\n },\n ) => Promise<void>;\n onRemove?: (file: FileUploadFile) => void;\n onReject?: (rejections: FileUploadRejection[]) => void;\n variant?: 'dropzone' | 'button' | 'both';\n showPreview?: boolean;\n className?: string;\n}\n\n/* -------------------------------------------------------------------------- */\n/* CVA */\n/* -------------------------------------------------------------------------- */\n\nconst dropzoneVariants = cva(\n [\n 'relative flex flex-col items-center justify-center',\n 'min-h-48 px-[var(--spacing-lg)] py-[var(--spacing-xl)]',\n 'rounded-[var(--radius-lg)] border-2 border-dashed',\n 'bg-background',\n 'transition-all duration-[var(--animation-duration)] motion-reduce:transition-none',\n 'focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid',\n 'focus-visible:outline-ring focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'cursor-pointer',\n 'group',\n ].join(' '),\n {\n variants: {\n isDragActive: {\n true: 'border-primary bg-primary/10 scale-[1.01]',\n false: 'border-border hover:border-muted-foreground/40 hover:bg-muted/5',\n },\n hasError: {\n true: 'border-destructive bg-destructive/5 hover:border-destructive',\n false: '',\n },\n isDisabled: {\n true: 'cursor-not-allowed opacity-50 hover:border-border hover:bg-background',\n false: '',\n },\n },\n defaultVariants: {\n isDragActive: false,\n hasError: false,\n isDisabled: false,\n },\n },\n);\n\nconst browseButtonVariants = cva(\n [\n 'inline-flex items-center justify-center gap-[var(--spacing-xs)]',\n 'min-h-[var(--min-target-size)] min-w-[var(--min-target-size)]',\n 'rounded-[var(--radius-md)] border border-primary/30 bg-primary/5',\n 'ps-[var(--spacing-md)] pe-[var(--spacing-md)] py-[var(--spacing-sm)]',\n 'text-primary text-[var(--font-size-sm)] font-medium',\n 'transition-all duration-[var(--animation-duration)] motion-reduce:transition-none',\n 'hover:bg-primary/10 hover:border-primary/50',\n 'focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid',\n 'focus-visible:outline-ring focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n ].join(' '),\n);\n\nconst fileItemVariants = cva(\n [\n 'flex items-center gap-[var(--spacing-md)]',\n 'rounded-[var(--radius-md)] border bg-background',\n 'p-[var(--spacing-md)]',\n 'text-[var(--font-size-sm)] text-foreground',\n 'transition-all duration-[var(--animation-duration)] motion-reduce:transition-none',\n ].join(' '),\n {\n variants: {\n status: {\n pending: 'border-border',\n uploading: 'border-primary/30 bg-primary/[0.02]',\n complete: 'border-[var(--success)]/30 bg-[var(--success)]/[0.02]',\n error: 'border-destructive/30 bg-destructive/[0.02]',\n },\n },\n defaultVariants: {\n status: 'pending',\n },\n },\n);\n\nconst actionButtonVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'min-h-[var(--min-target-size)] min-w-[var(--min-target-size)]',\n 'rounded-[var(--radius-sm)]',\n 'text-muted-foreground',\n 'transition-colors duration-[var(--animation-duration)] motion-reduce:transition-none',\n 'hover:text-foreground hover:bg-muted/40',\n 'focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid',\n 'focus-visible:outline-ring focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n ].join(' '),\n);\n\n/* -------------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------------- */\n\nfunction generateId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;\n}\n\nfunction isImageFile(file: File): boolean {\n return file.type.startsWith('image/');\n}\n\nfunction getFileIcon(file: File): ReactNode {\n const ext = file.name.split('.').pop()?.toLowerCase() ?? '';\n if (['pdf', 'doc', 'docx', 'txt', 'rtf'].includes(ext)) {\n return <FileText aria-hidden=\"true\" className=\"size-10 shrink-0 text-muted-foreground\" />;\n }\n if (['zip', 'rar', '7z', 'tar', 'gz'].includes(ext)) {\n return <FileArchive aria-hidden=\"true\" className=\"size-10 shrink-0 text-muted-foreground\" />;\n }\n if (['xls', 'xlsx', 'csv'].includes(ext)) {\n return <FileSpreadsheet aria-hidden=\"true\" className=\"size-10 shrink-0 text-muted-foreground\" />;\n }\n if (['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg', 'bmp'].includes(ext)) {\n return <FileImage aria-hidden=\"true\" className=\"size-10 shrink-0 text-muted-foreground\" />;\n }\n return <FileIcon aria-hidden=\"true\" className=\"size-10 shrink-0 text-muted-foreground\" />;\n}\n\nfunction getStatusIcon(status: FileUploadFile['status']): ReactNode {\n switch (status) {\n case 'uploading':\n return <Loader2 aria-hidden=\"true\" className=\"size-4 shrink-0 text-primary animate-spin\" />;\n case 'complete':\n return <CheckCircle2 aria-hidden=\"true\" className=\"size-4 shrink-0 text-[var(--success)]\" />;\n case 'error':\n return <AlertCircle aria-hidden=\"true\" className=\"size-4 shrink-0 text-destructive\" />;\n default:\n return null;\n }\n}\n\nconst UNIT_KEYS = [\n 'ui.inputs.fileUpload.units.bytes',\n 'ui.inputs.fileUpload.units.kilobytes',\n 'ui.inputs.fileUpload.units.megabytes',\n 'ui.inputs.fileUpload.units.gigabytes',\n] as const;\n\nconst UNIT_FALLBACKS = ['B', 'KB', 'MB', 'GB'] as const;\n\nfunction formatFileSize(\n bytes: number,\n locale: string,\n t: (key: string, fallback: string) => string,\n): string {\n let value = bytes;\n let unitIndex = 0;\n while (value >= 1024 && unitIndex < UNIT_FALLBACKS.length - 1) {\n value /= 1024;\n unitIndex++;\n }\n const formatted = new Intl.NumberFormat(locale, {\n maximumFractionDigits: unitIndex === 0 ? 0 : 1,\n }).format(value);\n const unit = t(UNIT_KEYS[unitIndex], UNIT_FALLBACKS[unitIndex]);\n return `${formatted} ${unit}`;\n}\n\nfunction mapRejectionCode(\n code: string,\n): FileUploadRejection['reason'] {\n switch (code) {\n case 'file-too-large':\n return 'file-too-large';\n case 'file-too-small':\n return 'file-too-small';\n case 'file-invalid-type':\n return 'file-invalid-type';\n case 'too-many-files':\n return 'too-many-files';\n default:\n return 'file-invalid-type';\n }\n}\n\nfunction getExtensionFromName(name: string): string {\n const parts = name.split('.');\n return parts.length > 1 ? `.${parts.pop()!.toLowerCase()}` : '';\n}\n\nfunction formatAcceptHint(accept: Record<string, string[]>): string {\n const extensions: string[] = [];\n for (const exts of Object.values(accept)) {\n for (const ext of exts) {\n extensions.push(ext.toUpperCase().replace('.', ''));\n }\n }\n if (extensions.length > 0) return extensions.join(', ');\n const mimeLabels: string[] = [];\n for (const mime of Object.keys(accept)) {\n if (mime.endsWith('/*')) {\n mimeLabels.push(mime.replace('/*', '').split('/').pop() ?? mime);\n } else {\n mimeLabels.push(mime.split('/').pop() ?? mime);\n }\n }\n return mimeLabels.join(', ');\n}\n\n/* -------------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------------- */\n\nexport const FileUpload = forwardRef<HTMLDivElement, FileUploadProps>(\n (\n {\n accept,\n maxSize,\n minSize,\n maxFiles = 1,\n multiple = false,\n disabled,\n strictAccept = false,\n onDrop: onDropProp,\n onUpload,\n onRemove,\n onReject,\n variant = 'both',\n showPreview = true,\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const ctx = useFormField();\n const fallbackId = useId();\n\n const effectiveDisabled = ctx.disabled || disabled;\n const hasError = ctx.invalid;\n const inputId = ctx.id || fallbackId;\n\n const [files, setFiles] = useState<FileUploadFile[]>([]);\n const [rejections, setRejections] = useState<FileUploadRejection[]>([]);\n const abortControllers = useRef<Map<string, AbortController>>(new Map());\n const statusRef = useRef<HTMLSpanElement>(null);\n const filesRef = useRef<FileUploadFile[]>(files);\n filesRef.current = files;\n\n const announceStatus = useCallback((message: string) => {\n if (statusRef.current) {\n statusRef.current.textContent = message;\n }\n }, []);\n\n const validateStrictAccept = useCallback(\n (file: File): boolean => {\n if (!strictAccept || !accept) return true;\n for (const [mime, extensions] of Object.entries(accept)) {\n const mimeMatch =\n mime === '*/*' ||\n (mime.endsWith('/*') && file.type.startsWith(mime.replace('/*', '/'))) ||\n file.type === mime;\n const fileExt = getExtensionFromName(file.name);\n const extMatch =\n extensions.length === 0 ||\n extensions.some((ext) => ext.toLowerCase() === fileExt);\n if (mimeMatch && extMatch) return true;\n }\n return false;\n },\n [strictAccept, accept],\n );\n\n const uploadFile = useCallback(\n async (uploadFileState: FileUploadFile) => {\n if (!onUpload) return;\n const controller = new AbortController();\n abortControllers.current.set(uploadFileState.id, controller);\n\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id ? { ...f, status: 'uploading', progress: 0 } : f,\n ),\n );\n announceStatus(t('ui.inputs.fileUpload.uploading', 'Uploading\\u2026'));\n\n try {\n await onUpload(uploadFileState.file, {\n signal: controller.signal,\n onProgress: (percent: number) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id ? { ...f, progress: percent } : f,\n ),\n );\n announceStatus(\n t('ui.inputs.fileUpload.progress', '{{percent}}% uploaded', {\n percent,\n }),\n );\n },\n });\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id\n ? { ...f, status: 'complete', progress: 100 }\n : f,\n ),\n );\n announceStatus(t('ui.inputs.fileUpload.complete', 'Upload complete'));\n } catch (err: unknown) {\n if (controller.signal.aborted) {\n setFiles((prev) => prev.filter((f) => f.id !== uploadFileState.id));\n return;\n }\n const errorMessage =\n err instanceof Error ? err.message : t('ui.inputs.fileUpload.errors.uploadFailed', 'Upload failed');\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id\n ? { ...f, status: 'error', error: errorMessage }\n : f,\n ),\n );\n } finally {\n abortControllers.current.delete(uploadFileState.id);\n }\n },\n [onUpload, announceStatus, t],\n );\n\n const handleDrop = useCallback(\n (accepted: File[], fileRejections: FileRejection[]) => {\n const mapped: FileUploadRejection[] = fileRejections.flatMap((r) =>\n r.errors.map((e) => ({\n file: r.file,\n reason: mapRejectionCode(e.code),\n })),\n );\n\n const strictRejected: FileUploadRejection[] = [];\n const strictAccepted: File[] = [];\n for (const file of accepted) {\n if (!validateStrictAccept(file)) {\n strictRejected.push({ file, reason: 'file-invalid-type' });\n } else {\n strictAccepted.push(file);\n }\n }\n\n const allRejections = [...mapped, ...strictRejected];\n setRejections(allRejections);\n\n if (allRejections.length > 0) {\n onReject?.(allRejections);\n }\n\n const newFiles: FileUploadFile[] = strictAccepted.map((file) => ({\n file,\n id: generateId(),\n status: 'pending' as const,\n progress: 0,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }));\n\n setFiles((prev) => {\n if (!multiple && maxFiles === 1) {\n for (const f of prev) {\n if (f.preview) URL.revokeObjectURL(f.preview);\n }\n return newFiles;\n }\n return [...prev, ...newFiles];\n });\n\n onDropProp?.(strictAccepted, allRejections);\n announceStatus(\n t('ui.inputs.fileUpload.filesSelected', '{{count}} file(s) selected', {\n count: strictAccepted.length,\n }),\n );\n\n for (const nf of newFiles) {\n void uploadFile(nf);\n }\n },\n [\n multiple,\n maxFiles,\n onDropProp,\n onReject,\n validateStrictAccept,\n announceStatus,\n uploadFile,\n t,\n ],\n );\n\n const { getRootProps, getInputProps, isDragActive, open } = useDropzone({\n accept,\n maxSize,\n minSize,\n maxFiles: multiple ? maxFiles : 1,\n multiple,\n disabled: effectiveDisabled,\n onDrop: handleDrop,\n noClick: variant === 'button',\n noKeyboard: variant === 'button',\n });\n\n const handleCancel = useCallback(\n (fileId: string) => {\n const controller = abortControllers.current.get(fileId);\n controller?.abort();\n setFiles((prev) => {\n const file = prev.find((f) => f.id === fileId);\n if (file?.preview) URL.revokeObjectURL(file.preview);\n return prev.filter((f) => f.id !== fileId);\n });\n },\n [],\n );\n\n const handleRemove = useCallback(\n (fileId: string) => {\n const removed = filesRef.current.find((f) => f.id === fileId);\n if (removed?.preview) URL.revokeObjectURL(removed.preview);\n setFiles((prev) => prev.filter((f) => f.id !== fileId));\n if (removed) {\n onRemove?.(removed);\n }\n },\n [onRemove],\n );\n\n const validatePastedFiles = useCallback(\n (pastedFiles: File[]): { accepted: File[]; rejected: FileUploadRejection[] } => {\n const accepted: File[] = [];\n const rejected: FileUploadRejection[] = [];\n const effectiveMaxFiles = multiple ? maxFiles : 1;\n\n for (const file of pastedFiles) {\n if (accepted.length >= effectiveMaxFiles) {\n rejected.push({ file, reason: 'too-many-files' });\n continue;\n }\n if (maxSize !== undefined && file.size > maxSize) {\n rejected.push({ file, reason: 'file-too-large' });\n continue;\n }\n if (minSize !== undefined && file.size < minSize) {\n rejected.push({ file, reason: 'file-too-small' });\n continue;\n }\n if (accept) {\n const fileExt = getExtensionFromName(file.name);\n const typeMatch = Object.entries(accept).some(([mime, extensions]) => {\n const mimeOk =\n mime === '*/*' ||\n (mime.endsWith('/*') && file.type.startsWith(mime.replace('/*', '/'))) ||\n file.type === mime;\n const extOk =\n extensions.length > 0 &&\n extensions.some((ext) => ext.toLowerCase() === fileExt);\n return mimeOk || extOk;\n });\n if (!typeMatch) {\n rejected.push({ file, reason: 'file-invalid-type' });\n continue;\n }\n }\n accepted.push(file);\n }\n return { accepted, rejected };\n },\n [accept, maxSize, minSize, maxFiles, multiple],\n );\n\n const handlePaste = useCallback(\n (event: ClipboardEvent<HTMLDivElement>) => {\n if (effectiveDisabled) return;\n const pastedFiles = Array.from(event.clipboardData.files);\n if (pastedFiles.length > 0) {\n event.preventDefault();\n const { accepted, rejected } = validatePastedFiles(pastedFiles);\n const fileRejections: FileRejection[] = rejected.map((r) => ({\n file: r.file,\n errors: [{ code: r.reason, message: r.reason }],\n }));\n handleDrop(accepted, fileRejections);\n }\n },\n [effectiveDisabled, handleDrop, validatePastedFiles],\n );\n\n useEffect(() => {\n return () => {\n for (const f of filesRef.current) {\n if (f.preview) URL.revokeObjectURL(f.preview);\n }\n };\n }, []);\n\n const constraintHints = useMemo(() => {\n const hints: string[] = [];\n if (accept) {\n hints.push(formatAcceptHint(accept));\n }\n if (maxSize) {\n hints.push(\n t('ui.inputs.fileUpload.maxSizeHint', 'Max {{size}}', {\n size: formatFileSize(maxSize, i18n.language, t),\n }),\n );\n }\n if (multiple && maxFiles > 1) {\n hints.push(\n t('ui.inputs.fileUpload.maxFilesHint', 'Up to {{count}} files', {\n count: maxFiles,\n }),\n );\n }\n return hints;\n }, [accept, maxSize, multiple, maxFiles, t, i18n.language]);\n\n const errorMessages = useMemo(() => {\n return rejections.map((r) => {\n switch (r.reason) {\n case 'file-too-large':\n return t('ui.inputs.fileUpload.errors.fileTooLarge', 'File exceeds {{maxSize}}', {\n maxSize: maxSize ? formatFileSize(maxSize, i18n.language, t) : '',\n });\n case 'file-too-small':\n return t('ui.inputs.fileUpload.errors.fileTooSmall', 'File is smaller than {{minSize}}', {\n minSize: minSize ? formatFileSize(minSize, i18n.language, t) : '',\n });\n case 'file-invalid-type':\n return t('ui.inputs.fileUpload.errors.fileInvalidType', 'File type not accepted');\n case 'too-many-files':\n return t('ui.inputs.fileUpload.errors.tooManyFiles', 'Maximum {{maxFiles}} files allowed', {\n maxFiles,\n });\n }\n });\n }, [rejections, t, maxSize, minSize, maxFiles, i18n.language]);\n\n const renderFileList = () => {\n if (files.length === 0) return null;\n\n return (\n <ul className=\"mt-[var(--spacing-md)] flex flex-col gap-[var(--spacing-sm)] list-none p-0 m-0\">\n {files.map((f) => (\n <li key={f.id} className={fileItemVariants({ status: f.status })}>\n {showPreview && f.preview ? (\n <img\n src={f.preview}\n alt=\"\"\n aria-hidden=\"true\"\n className=\"size-12 shrink-0 rounded-[var(--radius-md)] object-cover border border-border\"\n />\n ) : (\n getFileIcon(f.file)\n )}\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-[var(--spacing-xs)]\">\n <p className=\"truncate type-label m-0\">{f.file.name}</p>\n {getStatusIcon(f.status)}\n </div>\n <p className=\"type-meta text-muted-foreground m-0 mt-0.5\">\n {formatFileSize(f.file.size, i18n.language, t)}\n {f.status === 'uploading' && (\n <span className=\"ms-[var(--spacing-sm)] text-primary font-medium\">\n {f.progress}%\n </span>\n )}\n {f.status === 'complete' && (\n <span className=\"ms-[var(--spacing-sm)] text-[var(--success)] font-medium\">\n {t('ui.inputs.fileUpload.complete', 'Complete')}\n </span>\n )}\n </p>\n\n {f.status === 'uploading' && (\n <div\n role=\"progressbar\"\n aria-label={f.file.name}\n aria-valuenow={f.progress}\n aria-valuemin={0}\n aria-valuemax={100}\n className=\"mt-[var(--spacing-sm)] h-1.5 w-full rounded-[var(--radius-full)] bg-muted overflow-hidden\"\n >\n <div\n className=\"h-full rounded-[var(--radius-full)] bg-primary transition-[inline-size] duration-[var(--animation-duration)] motion-reduce:transition-none\"\n style={{ inlineSize: `${f.progress}%` }}\n />\n </div>\n )}\n\n {f.status === 'error' && f.error && (\n <p role=\"alert\" className=\"type-meta text-destructive m-0 mt-[var(--spacing-xs)]\">\n {f.error}\n </p>\n )}\n </div>\n\n {f.status === 'uploading' && (\n <button\n type=\"button\"\n onClick={() => handleCancel(f.id)}\n aria-label={t('ui.inputs.fileUpload.cancel', 'Cancel upload')}\n className={actionButtonVariants()}\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )}\n {(f.status === 'complete' || f.status === 'pending' || f.status === 'error') && (\n <button\n type=\"button\"\n onClick={() => handleRemove(f.id)}\n aria-label={t('ui.inputs.fileUpload.remove', 'Remove file')}\n className={actionButtonVariants()}\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </button>\n )}\n </li>\n ))}\n </ul>\n );\n };\n\n const renderDropzone = () => {\n if (variant === 'button') return null;\n\n const rootProps = getRootProps({\n className: dropzoneVariants({\n isDragActive,\n hasError: hasError ?? false,\n isDisabled: effectiveDisabled ?? false,\n className,\n }),\n tabIndex: effectiveDisabled ? -1 : 0,\n });\n\n return (\n <div\n {...rootProps}\n ref={ref}\n onPaste={handlePaste}\n id={inputId}\n aria-label={t('ui.inputs.fileUpload.dropHere', 'Drop files here or click to browse')}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n aria-required={ctx.required || undefined}\n data-testid=\"file-upload-dropzone\"\n >\n <input {...getInputProps()} />\n\n <div className=\"flex flex-col items-center gap-[var(--spacing-sm)]\">\n <div className=\"flex items-center justify-center size-14 rounded-[var(--radius-full)] bg-primary/10 text-primary transition-colors duration-[var(--animation-duration)] group-hover:bg-primary/15 motion-reduce:transition-none\">\n {isDragActive ? (\n <CloudUpload aria-hidden=\"true\" className=\"size-7\" />\n ) : (\n <Upload aria-hidden=\"true\" className=\"size-7\" />\n )}\n </div>\n\n <div className=\"flex flex-col items-center gap-[var(--spacing-xs)]\">\n <p className=\"type-label text-foreground text-center m-0\">\n {isDragActive\n ? t('ui.inputs.fileUpload.dropActive', 'Drop files here')\n : t('ui.inputs.fileUpload.dropHere', 'Drop files here or click to browse')}\n </p>\n\n {constraintHints.length > 0 && !isDragActive && (\n <p className=\"type-meta text-muted-foreground text-center m-0\">\n {constraintHints.join(' \\u00b7 ')}\n </p>\n )}\n </div>\n\n {variant === 'both' && !isDragActive && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n open();\n }}\n disabled={effectiveDisabled}\n className={browseButtonVariants({ className: 'mt-[var(--spacing-xs)]' })}\n >\n <Upload aria-hidden=\"true\" className=\"size-4\" />\n {t('ui.inputs.fileUpload.browse', 'Browse files')}\n </button>\n )}\n </div>\n </div>\n );\n };\n\n const renderButton = () => {\n if (variant === 'dropzone') return null;\n\n if (variant === 'button') {\n return (\n <div onPaste={handlePaste} ref={ref}>\n <input {...getInputProps()} />\n <button\n type=\"button\"\n onClick={open}\n disabled={effectiveDisabled}\n className={browseButtonVariants({ className })}\n id={variant === 'button' ? inputId : undefined}\n aria-describedby={variant === 'button' ? (ctx.describedBy || undefined) : undefined}\n aria-invalid={variant === 'button' ? (ctx.invalid || undefined) : undefined}\n aria-required={variant === 'button' ? (ctx.required || undefined) : undefined}\n >\n <Upload aria-hidden=\"true\" className=\"size-4\" />\n {t('ui.inputs.fileUpload.browse', 'Browse files')}\n </button>\n </div>\n );\n }\n\n return null;\n };\n\n return (\n <div>\n {renderDropzone()}\n {renderButton()}\n {renderFileList()}\n\n {errorMessages.length > 0 && (\n <div role=\"alert\" className=\"mt-[var(--spacing-sm)] flex flex-col gap-[var(--spacing-xs)]\">\n {errorMessages.map((msg, i) => (\n <div key={i} className=\"flex items-center gap-[var(--spacing-xs)]\">\n <AlertCircle aria-hidden=\"true\" className=\"size-3.5 shrink-0 text-destructive\" />\n <p className=\"type-meta text-destructive m-0\">{msg}</p>\n </div>\n ))}\n </div>\n )}\n\n <span\n ref={statusRef}\n role=\"status\"\n aria-live=\"polite\"\n className=\"sr-only\"\n />\n </div>\n );\n },\n);\n\nFileUpload.displayName = 'FileUpload';\n","import type { AgentAdapter } from '../../agent/types';\n\nexport const fileUploadAgent: AgentAdapter<unknown> = {\n id: 'file-upload',\n capabilities: ['submit', 'dismiss'],\n state: {},\n actions: {},\n domHooks: {\n root: { attr: 'data-component', value: 'file-upload' },\n },\n};\n"],"names":["__iconNode","CloudUpload","createLucideIcon","FileArchive","FileImage","FileSpreadsheet","File","LoaderCircle","Upload","dropzoneVariants","cva","browseButtonVariants","fileItemVariants","actionButtonVariants","generateId","isImageFile","file","getFileIcon","ext","_a","jsx","FileText","FileIcon","getStatusIcon","status","Loader2","CheckCircle2","AlertCircle","UNIT_KEYS","UNIT_FALLBACKS","formatFileSize","bytes","locale","t","value","unitIndex","formatted","unit","mapRejectionCode","code","getExtensionFromName","name","parts","formatAcceptHint","accept","extensions","exts","mimeLabels","mime","FileUpload","forwardRef","maxSize","minSize","maxFiles","multiple","disabled","strictAccept","onDropProp","onUpload","onRemove","onReject","variant","showPreview","className","ref","i18n","useTranslation","ctx","useFormField","fallbackId","useId","effectiveDisabled","hasError","inputId","files","setFiles","useState","rejections","setRejections","abortControllers","useRef","statusRef","filesRef","announceStatus","useCallback","message","validateStrictAccept","mimeMatch","fileExt","extMatch","uploadFile","uploadFileState","controller","prev","f","percent","err","errorMessage","handleDrop","accepted","fileRejections","mapped","r","e","strictRejected","strictAccepted","allRejections","newFiles","nf","getRootProps","getInputProps","isDragActive","open","useDropzone","handleCancel","fileId","handleRemove","removed","validatePastedFiles","pastedFiles","rejected","effectiveMaxFiles","mimeOk","extOk","handlePaste","event","useEffect","constraintHints","useMemo","hints","errorMessages","renderFileList","jsxs","X","renderDropzone","rootProps","renderButton","msg","i","fileUploadAgent"],"mappings":";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,4DAA4D,KAAK,SAAQ,CAAE;AAAA,EACzF,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAChD,GACMC,KAAcC,EAAiB,gBAAgBF,EAAU;ACd/D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,2BAA2B,KAAK,SAAQ,CAAE;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,UAAU,KAAK,SAAQ,CAAE;AAAA,EACvC,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,KAAK,SAAQ,CAAE;AACzD,GACMG,KAAcD,EAAiB,gBAAgBF,EAAU;ACvB/D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,2BAA2B,KAAK,SAAQ,CAAE;AAAA,EACxD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,mDAAmD,KAAK,SAAQ,CAAE;AAClF,GACMI,KAAYF,EAAiB,cAAcF,EAAU;ACrB3D;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,2BAA2B,KAAK,SAAQ,CAAE;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMK,KAAkBH,EAAiB,oBAAoBF,EAAU;ACvBvE;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,2BAA2B,KAAK,SAAQ,CAAE;AAC1D,GACMM,KAAOJ,EAAiB,QAAQF,EAAU;ACnBhD;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,+BAA+B,KAAK,SAAQ,CAAE,CAAC,GAC3EO,KAAeL,EAAiB,iBAAiBF,EAAU;ACVjE;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAAA,EAC9C,CAAC,QAAQ,EAAE,GAAG,6CAA6C,KAAK,SAAQ,CAAE;AAC5E,GACMQ,IAASN,EAAiB,UAAUF,EAAU,GCgE9CS,KAAmBC;AAAA,EACvB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,YAAY;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,cAAc;AAAA,MACd,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAAA,EACd;AAEJ,GAEMC,KAAuBD;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ,GAEME,KAAmBF;AAAA,EACvB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,QAAQ;AAAA,IAAA;AAAA,EACV;AAEJ,GAEMG,KAAuBH;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ;AAMA,SAASI,KAAqB;AAC5B,SAAI,OAAO,SAAW,OAAe,OAAO,aACnC,OAAO,WAAA,IAET,GAAG,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;AACjE;AAEA,SAASC,GAAYC,GAAqB;AACxC,SAAOA,EAAK,KAAK,WAAW,QAAQ;AACtC;AAEA,SAASC,GAAYD,GAAuB;;AAC1C,QAAME,MAAMC,IAAAH,EAAK,KAAK,MAAM,GAAG,EAAE,IAAA,MAArB,gBAAAG,EAA4B,kBAAiB;AACzD,SAAI,CAAC,OAAO,OAAO,QAAQ,OAAO,KAAK,EAAE,SAASD,CAAG,IAC5C,gBAAAE,EAACC,IAAA,EAAS,eAAY,QAAO,WAAU,0CAAyC,IAErF,CAAC,OAAO,OAAO,MAAM,OAAO,IAAI,EAAE,SAASH,CAAG,IACzC,gBAAAE,EAACjB,IAAA,EAAY,eAAY,QAAO,WAAU,0CAAyC,IAExF,CAAC,OAAO,QAAQ,KAAK,EAAE,SAASe,CAAG,IAC9B,gBAAAE,EAACf,IAAA,EAAgB,eAAY,QAAO,WAAU,0CAAyC,IAE5F,CAAC,OAAO,OAAO,QAAQ,OAAO,QAAQ,OAAO,KAAK,EAAE,SAASa,CAAG,IAC3D,gBAAAE,EAAChB,IAAA,EAAU,eAAY,QAAO,WAAU,0CAAyC,IAEnF,gBAAAgB,EAACE,IAAA,EAAS,eAAY,QAAO,WAAU,0CAAyC;AACzF;AAEA,SAASC,GAAcC,GAA6C;AAClE,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO,gBAAAJ,EAACK,IAAA,EAAQ,eAAY,QAAO,WAAU,6CAA4C;AAAA,IAC3F,KAAK;AACH,aAAO,gBAAAL,EAACM,IAAA,EAAa,eAAY,QAAO,WAAU,yCAAwC;AAAA,IAC5F,KAAK;AACH,aAAO,gBAAAN,EAACO,IAAA,EAAY,eAAY,QAAO,WAAU,oCAAmC;AAAA,IACtF;AACE,aAAO;AAAA,EAAA;AAEb;AAEA,MAAMC,KAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,KAAiB,CAAC,KAAK,MAAM,MAAM,IAAI;AAE7C,SAASC,EACPC,GACAC,GACAC,GACQ;AACR,MAAIC,IAAQH,GACRI,IAAY;AAChB,SAAOD,KAAS,QAAQC,IAAYN,GAAe,SAAS;AAC1D,IAAAK,KAAS,MACTC;AAEF,QAAMC,IAAY,IAAI,KAAK,aAAaJ,GAAQ;AAAA,IAC9C,uBAAuBG,MAAc,IAAI,IAAI;AAAA,EAAA,CAC9C,EAAE,OAAOD,CAAK,GACTG,IAAOJ,EAAEL,GAAUO,CAAS,GAAGN,GAAeM,CAAS,CAAC;AAC9D,SAAO,GAAGC,CAAS,IAAIC,CAAI;AAC7B;AAEA,SAASC,GACPC,GAC+B;AAC/B,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAEA,SAASC,GAAqBC,GAAsB;AAClD,QAAMC,IAAQD,EAAK,MAAM,GAAG;AAC5B,SAAOC,EAAM,SAAS,IAAI,IAAIA,EAAM,MAAO,aAAa,KAAK;AAC/D;AAEA,SAASC,GAAiBC,GAA0C;AAClE,QAAMC,IAAuB,CAAA;AAC7B,aAAWC,KAAQ,OAAO,OAAOF,CAAM;AACrC,eAAW1B,KAAO4B;AAChB,MAAAD,EAAW,KAAK3B,EAAI,YAAA,EAAc,QAAQ,KAAK,EAAE,CAAC;AAGtD,MAAI2B,EAAW,SAAS,EAAG,QAAOA,EAAW,KAAK,IAAI;AACtD,QAAME,IAAuB,CAAA;AAC7B,aAAWC,KAAQ,OAAO,KAAKJ,CAAM;AACnC,IAAII,EAAK,SAAS,IAAI,IACpBD,EAAW,KAAKC,EAAK,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,IAAA,KAASA,CAAI,IAE/DD,EAAW,KAAKC,EAAK,MAAM,GAAG,EAAE,IAAA,KAASA,CAAI;AAGjD,SAAOD,EAAW,KAAK,IAAI;AAC7B;AAMO,MAAME,KAAaC;AAAA,EACxB,CACE;AAAA,IACE,QAAAN;AAAA,IACA,SAAAO;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,UAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,QAAQC;AAAA,IACR,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,aAAAC,KAAc;AAAA,IACd,WAAAC;AAAA,EAAA,GAEFC,MACG;AACH,UAAM,EAAE,GAAA/B,GAAG,MAAAgC,EAAA,IAASC,GAAA,GACdC,IAAMC,GAAA,GACNC,KAAaC,GAAA,GAEbC,IAAoBJ,EAAI,YAAYZ,GACpCiB,KAAWL,EAAI,SACfM,IAAUN,EAAI,MAAME,IAEpB,CAACK,GAAOC,CAAQ,IAAIC,EAA2B,CAAA,CAAE,GACjD,CAACC,GAAYC,EAAa,IAAIF,EAAgC,CAAA,CAAE,GAChEG,IAAmBC,EAAqC,oBAAI,KAAK,GACjEC,IAAYD,EAAwB,IAAI,GACxCE,IAAWF,EAAyBN,CAAK;AAC/C,IAAAQ,EAAS,UAAUR;AAEnB,UAAMS,IAAiBC,EAAY,CAACC,MAAoB;AACtD,MAAIJ,EAAU,YACZA,EAAU,QAAQ,cAAcI;AAAA,IAEpC,GAAG,CAAA,CAAE,GAECC,IAAuBF;AAAA,MAC3B,CAACpE,MAAwB;AACvB,YAAI,CAACwC,KAAgB,CAACZ,EAAQ,QAAO;AACrC,mBAAW,CAACI,GAAMH,CAAU,KAAK,OAAO,QAAQD,CAAM,GAAG;AACvD,gBAAM2C,IACJvC,MAAS,SACRA,EAAK,SAAS,IAAI,KAAKhC,EAAK,KAAK,WAAWgC,EAAK,QAAQ,MAAM,GAAG,CAAC,KACpEhC,EAAK,SAASgC,GACVwC,IAAUhD,GAAqBxB,EAAK,IAAI,GACxCyE,IACJ5C,EAAW,WAAW,KACtBA,EAAW,KAAK,CAAC3B,MAAQA,EAAI,YAAA,MAAkBsE,CAAO;AACxD,cAAID,KAAaE,EAAU,QAAO;AAAA,QACpC;AACA,eAAO;AAAA,MACT;AAAA,MACA,CAACjC,GAAcZ,CAAM;AAAA,IAAA,GAGjB8C,IAAaN;AAAA,MACjB,OAAOO,MAAoC;AACzC,YAAI,CAACjC,EAAU;AACf,cAAMkC,IAAa,IAAI,gBAAA;AACvB,QAAAb,EAAiB,QAAQ,IAAIY,EAAgB,IAAIC,CAAU,GAE3DjB;AAAA,UAAS,CAACkB,MACRA,EAAK;AAAA,YAAI,CAACC,MACRA,EAAE,OAAOH,EAAgB,KAAK,EAAE,GAAGG,GAAG,QAAQ,aAAa,UAAU,MAAMA;AAAA,UAAA;AAAA,QAC7E,GAEFX,EAAelD,EAAE,kCAAkC,YAAiB,CAAC;AAErE,YAAI;AACF,gBAAMyB,EAASiC,EAAgB,MAAM;AAAA,YACnC,QAAQC,EAAW;AAAA,YACnB,YAAY,CAACG,MAAoB;AAC/B,cAAApB;AAAA,gBAAS,CAACkB,MACRA,EAAK;AAAA,kBAAI,CAACC,MACRA,EAAE,OAAOH,EAAgB,KAAK,EAAE,GAAGG,GAAG,UAAUC,MAAYD;AAAA,gBAAA;AAAA,cAC9D,GAEFX;AAAA,gBACElD,EAAE,iCAAiC,yBAAyB;AAAA,kBAC1D,SAAA8D;AAAA,gBAAA,CACD;AAAA,cAAA;AAAA,YAEL;AAAA,UAAA,CACD,GACDpB;AAAA,YAAS,CAACkB,MACRA,EAAK;AAAA,cAAI,CAACC,MACRA,EAAE,OAAOH,EAAgB,KACrB,EAAE,GAAGG,GAAG,QAAQ,YAAY,UAAU,QACtCA;AAAA,YAAA;AAAA,UACN,GAEFX,EAAelD,EAAE,iCAAiC,iBAAiB,CAAC;AAAA,QACtE,SAAS+D,GAAc;AACrB,cAAIJ,EAAW,OAAO,SAAS;AAC7B,YAAAjB,EAAS,CAACkB,MAASA,EAAK,OAAO,CAACC,MAAMA,EAAE,OAAOH,EAAgB,EAAE,CAAC;AAClE;AAAA,UACF;AACA,gBAAMM,IACJD,aAAe,QAAQA,EAAI,UAAU/D,EAAE,4CAA4C,eAAe;AACpG,UAAA0C;AAAA,YAAS,CAACkB,MACRA,EAAK;AAAA,cAAI,CAACC,MACRA,EAAE,OAAOH,EAAgB,KACrB,EAAE,GAAGG,GAAG,QAAQ,SAAS,OAAOG,MAChCH;AAAA,YAAA;AAAA,UACN;AAAA,QAEJ,UAAA;AACE,UAAAf,EAAiB,QAAQ,OAAOY,EAAgB,EAAE;AAAA,QACpD;AAAA,MACF;AAAA,MACA,CAACjC,GAAUyB,GAAgBlD,CAAC;AAAA,IAAA,GAGxBiE,IAAad;AAAA,MACjB,CAACe,GAAkBC,MAAoC;AACrD,cAAMC,IAAgCD,EAAe;AAAA,UAAQ,CAACE,MAC5DA,EAAE,OAAO,IAAI,CAACC,OAAO;AAAA,YACnB,MAAMD,EAAE;AAAA,YACR,QAAQhE,GAAiBiE,EAAE,IAAI;AAAA,UAAA,EAC/B;AAAA,QAAA,GAGEC,IAAwC,CAAA,GACxCC,IAAyB,CAAA;AAC/B,mBAAWzF,KAAQmF;AACjB,UAAKb,EAAqBtE,CAAI,IAG5ByF,EAAe,KAAKzF,CAAI,IAFxBwF,EAAe,KAAK,EAAE,MAAAxF,GAAM,QAAQ,qBAAqB;AAM7D,cAAM0F,IAAgB,CAAC,GAAGL,GAAQ,GAAGG,CAAc;AACnD,QAAA1B,GAAc4B,CAAa,GAEvBA,EAAc,SAAS,MACzB9C,KAAA,QAAAA,EAAW8C;AAGb,cAAMC,IAA6BF,EAAe,IAAI,CAACzF,OAAU;AAAA,UAC/D,MAAAA;AAAA,UACA,IAAIF,GAAA;AAAA,UACJ,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,SAASC,GAAYC,CAAI,IAAI,IAAI,gBAAgBA,CAAI,IAAI;AAAA,QAAA,EACzD;AAEF,QAAA2D,EAAS,CAACkB,MAAS;AACjB,cAAI,CAACvC,KAAYD,MAAa,GAAG;AAC/B,uBAAWyC,KAAKD;AACd,cAAIC,EAAE,WAAS,IAAI,gBAAgBA,EAAE,OAAO;AAE9C,mBAAOa;AAAA,UACT;AACA,iBAAO,CAAC,GAAGd,GAAM,GAAGc,CAAQ;AAAA,QAC9B,CAAC,GAEDlD,KAAA,QAAAA,EAAagD,GAAgBC,IAC7BvB;AAAA,UACElD,EAAE,sCAAsC,8BAA8B;AAAA,YACpE,OAAOwE,EAAe;AAAA,UAAA,CACvB;AAAA,QAAA;AAGH,mBAAWG,KAAMD;AACf,UAAKjB,EAAWkB,CAAE;AAAA,MAEtB;AAAA,MACA;AAAA,QACEtD;AAAA,QACAD;AAAA,QACAI;AAAA,QACAG;AAAA,QACA0B;AAAA,QACAH;AAAA,QACAO;AAAA,QACAzD;AAAA,MAAA;AAAA,IACF,GAGI,EAAE,cAAA4E,IAAc,eAAAC,GAAe,cAAAC,GAAc,MAAAC,EAAA,IAASC,GAAY;AAAA,MACtE,QAAArE;AAAA,MACA,SAAAO;AAAA,MACA,SAAAC;AAAA,MACA,UAAUE,IAAWD,IAAW;AAAA,MAChC,UAAAC;AAAA,MACA,UAAUiB;AAAA,MACV,QAAQ2B;AAAA,MACR,SAASrC,MAAY;AAAA,MACrB,YAAYA,MAAY;AAAA,IAAA,CACzB,GAEKqD,KAAe9B;AAAA,MACnB,CAAC+B,MAAmB;AAClB,cAAMvB,IAAab,EAAiB,QAAQ,IAAIoC,CAAM;AACtD,QAAAvB,KAAA,QAAAA,EAAY,SACZjB,EAAS,CAACkB,MAAS;AACjB,gBAAM7E,IAAO6E,EAAK,KAAK,CAACC,MAAMA,EAAE,OAAOqB,CAAM;AAC7C,iBAAInG,KAAA,QAAAA,EAAM,WAAS,IAAI,gBAAgBA,EAAK,OAAO,GAC5C6E,EAAK,OAAO,CAACC,MAAMA,EAAE,OAAOqB,CAAM;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,MACA,CAAA;AAAA,IAAC,GAGGC,KAAehC;AAAA,MACnB,CAAC+B,MAAmB;AAClB,cAAME,IAAUnC,EAAS,QAAQ,KAAK,CAACY,MAAMA,EAAE,OAAOqB,CAAM;AAC5D,QAAIE,KAAA,QAAAA,EAAS,WAAS,IAAI,gBAAgBA,EAAQ,OAAO,GACzD1C,EAAS,CAACkB,MAASA,EAAK,OAAO,CAACC,MAAMA,EAAE,OAAOqB,CAAM,CAAC,GAClDE,MACF1D,KAAA,QAAAA,EAAW0D;AAAA,MAEf;AAAA,MACA,CAAC1D,CAAQ;AAAA,IAAA,GAGL2D,IAAsBlC;AAAA,MAC1B,CAACmC,MAA+E;AAC9E,cAAMpB,IAAmB,CAAA,GACnBqB,IAAkC,CAAA,GAClCC,IAAoBnE,IAAWD,IAAW;AAEhD,mBAAWrC,KAAQuG,GAAa;AAC9B,cAAIpB,EAAS,UAAUsB,GAAmB;AACxC,YAAAD,EAAS,KAAK,EAAE,MAAAxG,GAAM,QAAQ,kBAAkB;AAChD;AAAA,UACF;AACA,cAAImC,MAAY,UAAanC,EAAK,OAAOmC,GAAS;AAChD,YAAAqE,EAAS,KAAK,EAAE,MAAAxG,GAAM,QAAQ,kBAAkB;AAChD;AAAA,UACF;AACA,cAAIoC,MAAY,UAAapC,EAAK,OAAOoC,GAAS;AAChD,YAAAoE,EAAS,KAAK,EAAE,MAAAxG,GAAM,QAAQ,kBAAkB;AAChD;AAAA,UACF;AACA,cAAI4B,GAAQ;AACV,kBAAM4C,IAAUhD,GAAqBxB,EAAK,IAAI;AAW9C,gBAAI,CAVc,OAAO,QAAQ4B,CAAM,EAAE,KAAK,CAAC,CAACI,GAAMH,CAAU,MAAM;AACpE,oBAAM6E,KACJ1E,MAAS,SACRA,EAAK,SAAS,IAAI,KAAKhC,EAAK,KAAK,WAAWgC,EAAK,QAAQ,MAAM,GAAG,CAAC,KACpEhC,EAAK,SAASgC,GACV2E,KACJ9E,EAAW,SAAS,KACpBA,EAAW,KAAK,CAAC3B,OAAQA,GAAI,YAAA,MAAkBsE,CAAO;AACxD,qBAAOkC,MAAUC;AAAA,YACnB,CAAC,GACe;AACd,cAAAH,EAAS,KAAK,EAAE,MAAAxG,GAAM,QAAQ,qBAAqB;AACnD;AAAA,YACF;AAAA,UACF;AACA,UAAAmF,EAAS,KAAKnF,CAAI;AAAA,QACpB;AACA,eAAO,EAAE,UAAAmF,GAAU,UAAAqB,EAAA;AAAA,MACrB;AAAA,MACA,CAAC5E,GAAQO,GAASC,GAASC,GAAUC,CAAQ;AAAA,IAAA,GAGzCsE,IAAcxC;AAAA,MAClB,CAACyC,MAA0C;AACzC,YAAItD,EAAmB;AACvB,cAAMgD,IAAc,MAAM,KAAKM,EAAM,cAAc,KAAK;AACxD,YAAIN,EAAY,SAAS,GAAG;AAC1B,UAAAM,EAAM,eAAA;AACN,gBAAM,EAAE,UAAA1B,GAAU,UAAAqB,MAAaF,EAAoBC,CAAW,GACxDnB,IAAkCoB,EAAS,IAAI,CAAClB,OAAO;AAAA,YAC3D,MAAMA,EAAE;AAAA,YACR,QAAQ,CAAC,EAAE,MAAMA,EAAE,QAAQ,SAASA,EAAE,OAAA,CAAQ;AAAA,UAAA,EAC9C;AACF,UAAAJ,EAAWC,GAAUC,CAAc;AAAA,QACrC;AAAA,MACF;AAAA,MACA,CAAC7B,GAAmB2B,GAAYoB,CAAmB;AAAA,IAAA;AAGrD,IAAAQ,GAAU,MACD,MAAM;AACX,iBAAWhC,KAAKZ,EAAS;AACvB,QAAIY,EAAE,WAAS,IAAI,gBAAgBA,EAAE,OAAO;AAAA,IAEhD,GACC,CAAA,CAAE;AAEL,UAAMiC,IAAkBC,GAAQ,MAAM;AACpC,YAAMC,IAAkB,CAAA;AACxB,aAAIrF,KACFqF,EAAM,KAAKtF,GAAiBC,CAAM,CAAC,GAEjCO,KACF8E,EAAM;AAAA,QACJhG,EAAE,oCAAoC,gBAAgB;AAAA,UACpD,MAAMH,EAAeqB,GAASc,EAAK,UAAUhC,CAAC;AAAA,QAAA,CAC/C;AAAA,MAAA,GAGDqB,KAAYD,IAAW,KACzB4E,EAAM;AAAA,QACJhG,EAAE,qCAAqC,yBAAyB;AAAA,UAC9D,OAAOoB;AAAA,QAAA,CACR;AAAA,MAAA,GAGE4E;AAAA,IACT,GAAG,CAACrF,GAAQO,GAASG,GAAUD,GAAUpB,GAAGgC,EAAK,QAAQ,CAAC,GAEpDiE,IAAgBF,GAAQ,MACrBnD,EAAW,IAAI,CAACyB,MAAM;AAC3B,cAAQA,EAAE,QAAA;AAAA,QACR,KAAK;AACH,iBAAOrE,EAAE,4CAA4C,4BAA4B;AAAA,YAC/E,SAASkB,IAAUrB,EAAeqB,GAASc,EAAK,UAAUhC,CAAC,IAAI;AAAA,UAAA,CAChE;AAAA,QACH,KAAK;AACH,iBAAOA,EAAE,4CAA4C,oCAAoC;AAAA,YACvF,SAASmB,IAAUtB,EAAesB,GAASa,EAAK,UAAUhC,CAAC,IAAI;AAAA,UAAA,CAChE;AAAA,QACH,KAAK;AACH,iBAAOA,EAAE,+CAA+C,wBAAwB;AAAA,QAClF,KAAK;AACH,iBAAOA,EAAE,4CAA4C,sCAAsC;AAAA,YACzF,UAAAoB;AAAA,UAAA,CACD;AAAA,MAAA;AAAA,IAEP,CAAC,GACA,CAACwB,GAAY5C,GAAGkB,GAASC,GAASC,GAAUY,EAAK,QAAQ,CAAC,GAEvDkE,KAAiB,MACjBzD,EAAM,WAAW,IAAU,yBAG5B,MAAA,EAAG,WAAU,kFACX,UAAAA,EAAM,IAAI,CAACoB,MACV,gBAAAsC,EAAC,MAAA,EAAc,WAAWxH,GAAiB,EAAE,QAAQkF,EAAE,QAAQ,GAC5D,UAAA;AAAA,MAAAhC,MAAegC,EAAE,UAChB,gBAAA1E;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK0E,EAAE;AAAA,UACP,KAAI;AAAA,UACJ,eAAY;AAAA,UACZ,WAAU;AAAA,QAAA;AAAA,MAAA,IAGZ7E,GAAY6E,EAAE,IAAI;AAAA,MAGpB,gBAAAsC,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,UAAA,gBAAAhH,EAAC,KAAA,EAAE,WAAU,2BAA2B,UAAA0E,EAAE,KAAK,MAAK;AAAA,UACnDvE,GAAcuE,EAAE,MAAM;AAAA,QAAA,GACzB;AAAA,QACA,gBAAAsC,EAAC,KAAA,EAAE,WAAU,8CACV,UAAA;AAAA,UAAAtG,EAAegE,EAAE,KAAK,MAAM7B,EAAK,UAAUhC,CAAC;AAAA,UAC5C6D,EAAE,WAAW,eACZ,gBAAAsC,EAAC,QAAA,EAAK,WAAU,mDACb,UAAA;AAAA,YAAAtC,EAAE;AAAA,YAAS;AAAA,UAAA,GACd;AAAA,UAEDA,EAAE,WAAW,cACZ,gBAAA1E,EAAC,QAAA,EAAK,WAAU,4DACb,UAAAa,EAAE,iCAAiC,UAAU,EAAA,CAChD;AAAA,QAAA,GAEJ;AAAA,QAEC6D,EAAE,WAAW,eACZ,gBAAA1E;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAY0E,EAAE,KAAK;AAAA,YACnB,iBAAeA,EAAE;AAAA,YACjB,iBAAe;AAAA,YACf,iBAAe;AAAA,YACf,WAAU;AAAA,YAEV,UAAA,gBAAA1E;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,YAAY,GAAG0E,EAAE,QAAQ,IAAA;AAAA,cAAI;AAAA,YAAA;AAAA,UACxC;AAAA,QAAA;AAAA,QAIHA,EAAE,WAAW,WAAWA,EAAE,SACzB,gBAAA1E,EAAC,KAAA,EAAE,MAAK,SAAQ,WAAU,yDACvB,UAAA0E,EAAE,MAAA,CACL;AAAA,MAAA,GAEJ;AAAA,MAECA,EAAE,WAAW,eACZ,gBAAA1E;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM8F,GAAapB,EAAE,EAAE;AAAA,UAChC,cAAY7D,EAAE,+BAA+B,eAAe;AAAA,UAC5D,WAAWpB,GAAA;AAAA,UAEX,UAAA,gBAAAO,EAACiH,IAAA,EAAE,eAAY,QAAO,WAAU,SAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,OAG3CvC,EAAE,WAAW,cAAcA,EAAE,WAAW,aAAaA,EAAE,WAAW,YAClE,gBAAA1E;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAMgG,GAAatB,EAAE,EAAE;AAAA,UAChC,cAAY7D,EAAE,+BAA+B,aAAa;AAAA,UAC1D,WAAWpB,GAAA;AAAA,UAEX,UAAA,gBAAAO,EAACiH,IAAA,EAAE,eAAY,QAAO,WAAU,SAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAC3C,EAAA,GAxEKvC,EAAE,EA0EX,CACD,GACH,GAIEwC,KAAiB,MAAM;AAC3B,UAAIzE,MAAY,SAAU,QAAO;AAEjC,YAAM0E,IAAY1B,GAAa;AAAA,QAC7B,WAAWpG,GAAiB;AAAA,UAC1B,cAAAsG;AAAA,UACA,UAAUvC,MAAY;AAAA,UACtB,YAAYD,KAAqB;AAAA,UACjC,WAAAR;AAAA,QAAA,CACD;AAAA,QACD,UAAUQ,IAAoB,KAAK;AAAA,MAAA,CACpC;AAED,aACE,gBAAA6D;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGG;AAAA,UACJ,KAAAvE;AAAA,UACA,SAAS4D;AAAA,UACT,IAAInD;AAAA,UACJ,cAAYxC,EAAE,iCAAiC,oCAAoC;AAAA,UACnF,oBAAkBkC,EAAI,eAAe;AAAA,UACrC,gBAAcA,EAAI,WAAW;AAAA,UAC7B,iBAAeA,EAAI,YAAY;AAAA,UAC/B,eAAY;AAAA,UAEZ,UAAA;AAAA,YAAA,gBAAA/C,EAAC,SAAA,EAAO,GAAG0F,EAAA,EAAc,CAAG;AAAA,YAE5B,gBAAAsB,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,cAAA,gBAAAhH,EAAC,SAAI,WAAU,mNACZ,UAAA2F,IACC,gBAAA3F,EAACnB,MAAY,eAAY,QAAO,WAAU,SAAA,CAAS,IAEnD,gBAAAmB,EAACZ,GAAA,EAAO,eAAY,QAAO,WAAU,UAAS,GAElD;AAAA,cAEA,gBAAA4H,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,gBAAA,gBAAAhH,EAAC,KAAA,EAAE,WAAU,8CACV,UAAA2F,IACG9E,EAAE,mCAAmC,iBAAiB,IACtDA,EAAE,iCAAiC,oCAAoC,EAAA,CAC7E;AAAA,gBAEC8F,EAAgB,SAAS,KAAK,CAAChB,KAC9B,gBAAA3F,EAAC,KAAA,EAAE,WAAU,mDACV,UAAA2G,EAAgB,KAAK,KAAU,EAAA,CAClC;AAAA,cAAA,GAEJ;AAAA,cAEClE,MAAY,UAAU,CAACkD,KACtB,gBAAAqB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,SAAS,CAAC7B,MAAM;AACd,oBAAAA,EAAE,gBAAA,GACFS,EAAA;AAAA,kBACF;AAAA,kBACA,UAAUzC;AAAA,kBACV,WAAW5D,GAAqB,EAAE,WAAW,0BAA0B;AAAA,kBAEvE,UAAA;AAAA,oBAAA,gBAAAS,EAACZ,GAAA,EAAO,eAAY,QAAO,WAAU,UAAS;AAAA,oBAC7CyB,EAAE,+BAA+B,cAAc;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAClD,EAAA,CAEJ;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAGN,GAEMuG,KAAe,MACf3E,MAAY,aAAmB,OAE/BA,MAAY,WAEZ,gBAAAuE,EAAC,OAAA,EAAI,SAASR,GAAa,KAAA5D,GACzB,UAAA;AAAA,MAAA,gBAAA5C,EAAC,SAAA,EAAO,GAAG0F,EAAA,EAAc,CAAG;AAAA,MAC5B,gBAAAsB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAASpB;AAAA,UACT,UAAUzC;AAAA,UACV,WAAW5D,GAAqB,EAAE,WAAAoD,GAAW;AAAA,UAC7C,IAAIF,MAAY,WAAWY,IAAU;AAAA,UACrC,oBAAkBZ,MAAY,YAAYM,EAAI,eAAe;AAAA,UAC7D,gBAAcN,MAAY,YAAYM,EAAI,WAAW;AAAA,UACrD,iBAAeN,MAAY,YAAYM,EAAI,YAAY;AAAA,UAEvD,UAAA;AAAA,YAAA,gBAAA/C,EAACZ,GAAA,EAAO,eAAY,QAAO,WAAU,UAAS;AAAA,YAC7CyB,EAAE,+BAA+B,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAClD,GACF,IAIG;AAGT,6BACG,OAAA,EACE,UAAA;AAAA,MAAAqG,GAAA;AAAA,MACAE,GAAA;AAAA,MACAL,GAAA;AAAA,MAEAD,EAAc,SAAS,KACtB,gBAAA9G,EAAC,OAAA,EAAI,MAAK,SAAQ,WAAU,gEACzB,UAAA8G,EAAc,IAAI,CAACO,GAAKC,MACvB,gBAAAN,EAAC,OAAA,EAAY,WAAU,6CACrB,UAAA;AAAA,QAAA,gBAAAhH,EAACO,IAAA,EAAY,eAAY,QAAO,WAAU,sCAAqC;AAAA,QAC/E,gBAAAP,EAAC,KAAA,EAAE,WAAU,kCAAkC,UAAAqH,EAAA,CAAI;AAAA,MAAA,KAF3CC,CAGV,CACD,GACH;AAAA,MAGF,gBAAAtH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK6D;AAAA,UACL,MAAK;AAAA,UACL,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ,GACF;AAAA,EAEJ;AACF;AAEAhC,GAAW,cAAc;ACtzBlB,MAAM0F,KAAyC;AAAA,EACpD,IAAI;AAAA,EACJ,cAAc,CAAC,UAAU,SAAS;AAAA,EAClC,OAAO,CAAA;AAAA,EACP,SAAS,CAAA;AAAA,EACT,UAAU;AAAA,IACR,MAAM,EAAE,MAAM,kBAAkB,OAAO,cAAA;AAAA,EAAc;AAEzD;","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { jsxs as m, jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as u } from "react";
|
|
3
|
-
import { c as g } from "./index-D2ZczOXr.js";
|
|
4
|
-
import { useTranslation as b } from "react-i18next";
|
|
5
|
-
const x = g(
|
|
6
|
-
[
|
|
7
|
-
// `relative` anchors the `::before` hit-target expansion on `sm`.
|
|
8
|
-
"relative inline-flex items-center justify-center",
|
|
9
|
-
"font-medium whitespace-nowrap",
|
|
10
|
-
"rounded-full",
|
|
11
|
-
"shadow-[var(--shadow-lg)] hover:shadow-[var(--shadow-xl)] active:shadow-[var(--shadow-md)]",
|
|
12
|
-
"transition-[box-shadow,background-color,transform]",
|
|
13
|
-
"duration-[var(--animation-duration)]",
|
|
14
|
-
"focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid",
|
|
15
|
-
"focus-visible:outline-ring focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
16
|
-
// Under Windows High Contrast Mode the `shadow-*` affordance is stripped.
|
|
17
|
-
// Repaint a solid edge + swap the focus ring to CanvasText so the FAB
|
|
18
|
-
// remains identifiable and its focus state stays visible.
|
|
19
|
-
"forced-colors:border forced-colors:border-[ButtonBorder] forced-colors:focus-visible:outline-[CanvasText]",
|
|
20
|
-
"disabled:opacity-50 disabled:cursor-not-allowed disabled:shadow-[var(--shadow-md)]",
|
|
21
|
-
"motion-reduce:transition-none"
|
|
22
|
-
].join(" "),
|
|
23
|
-
{
|
|
24
|
-
variants: {
|
|
25
|
-
variant: {
|
|
26
|
-
primary: "bg-primary text-primary-foreground hover:bg-primary-hover",
|
|
27
|
-
secondary: "bg-accent text-accent-foreground hover:bg-accent-hover"
|
|
28
|
-
},
|
|
29
|
-
size: {
|
|
30
|
-
// `sm` is 40x40 which sits below the 44/48 px WCAG 2.5.5 target.
|
|
31
|
-
// Mirror Button's pseudo-expansion pattern: below the `sm:` (640 px)
|
|
32
|
-
// breakpoint, a `::before` rectangle enlarges the hit area to
|
|
33
|
-
// `--min-target-size` (44 default, 48 accessible). Above the
|
|
34
|
-
// breakpoint (desktop / trackpad), the physical 40 px circle is
|
|
35
|
-
// enough — the pseudo hides.
|
|
36
|
-
sm: 'h-10 w-10 text-[var(--font-size-sm)] [&_svg]:size-5 before:absolute before:inset-x-[calc((var(--min-target-size)-100%)/-2)] before:inset-y-[calc((var(--min-target-size)-100%)/-2)] before:content-[""] sm:before:hidden',
|
|
37
|
-
md: "h-14 w-14 text-[var(--font-size-base)] [&_svg]:size-6",
|
|
38
|
-
lg: "h-16 w-16 text-[var(--font-size-lg)] [&_svg]:size-7"
|
|
39
|
-
},
|
|
40
|
-
extended: {
|
|
41
|
-
true: "w-auto gap-[var(--spacing-sm)]",
|
|
42
|
-
false: ""
|
|
43
|
-
},
|
|
44
|
-
position: {
|
|
45
|
-
"bottom-end": "fixed z-[var(--z-fixed)] bottom-[calc(var(--spacing-lg)+env(safe-area-inset-bottom,0px))] end-[var(--spacing-lg)]",
|
|
46
|
-
"bottom-start": "fixed z-[var(--z-fixed)] bottom-[calc(var(--spacing-lg)+env(safe-area-inset-bottom,0px))] start-[var(--spacing-lg)]",
|
|
47
|
-
"top-end": "fixed z-[var(--z-fixed)] top-[calc(var(--spacing-lg)+env(safe-area-inset-top,0px))] end-[var(--spacing-lg)]",
|
|
48
|
-
"top-start": "fixed z-[var(--z-fixed)] top-[calc(var(--spacing-lg)+env(safe-area-inset-top,0px))] start-[var(--spacing-lg)]",
|
|
49
|
-
static: ""
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
compoundVariants: [
|
|
53
|
-
{ extended: !0, size: "sm", class: "ps-3 pe-4" },
|
|
54
|
-
{ extended: !0, size: "md", class: "ps-4 pe-5" },
|
|
55
|
-
{ extended: !0, size: "lg", class: "ps-5 pe-6" }
|
|
56
|
-
],
|
|
57
|
-
defaultVariants: {
|
|
58
|
-
variant: "primary",
|
|
59
|
-
size: "md",
|
|
60
|
-
extended: !1,
|
|
61
|
-
position: "bottom-end"
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
), h = u((s, i) => {
|
|
65
|
-
const {
|
|
66
|
-
variant: r,
|
|
67
|
-
size: n,
|
|
68
|
-
extended: e,
|
|
69
|
-
position: d,
|
|
70
|
-
className: l,
|
|
71
|
-
icon: a,
|
|
72
|
-
children: c,
|
|
73
|
-
type: f,
|
|
74
|
-
...t
|
|
75
|
-
} = s, { t: v } = b(), p = t["aria-label"] ?? (e ? void 0 : v("ui.common.add", { defaultValue: "Add" }));
|
|
76
|
-
return /* @__PURE__ */ m(
|
|
77
|
-
"button",
|
|
78
|
-
{
|
|
79
|
-
ref: i,
|
|
80
|
-
type: f ?? "button",
|
|
81
|
-
className: x({ variant: r, size: n, extended: e, position: d, className: l }),
|
|
82
|
-
...t,
|
|
83
|
-
"aria-label": p,
|
|
84
|
-
children: [
|
|
85
|
-
a ? /* @__PURE__ */ o("span", { "aria-hidden": "true", className: "inline-flex items-center justify-center", children: a }) : null,
|
|
86
|
-
e ? /* @__PURE__ */ o("span", { className: "inline-flex", children: c }) : null
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
});
|
|
91
|
-
h.displayName = "FloatingActionButton";
|
|
92
|
-
export {
|
|
93
|
-
h as F
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=floating-action-button-BM9ib-Wf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"floating-action-button-BM9ib-Wf.js","sources":["../../src/components/floating-action-button/floating-action-button.tsx"],"sourcesContent":["import {\n forwardRef,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\nconst fabVariants = cva(\n [\n // `relative` anchors the `::before` hit-target expansion on `sm`.\n 'relative inline-flex items-center justify-center',\n 'font-medium whitespace-nowrap',\n 'rounded-full',\n 'shadow-[var(--shadow-lg)] hover:shadow-[var(--shadow-xl)] active:shadow-[var(--shadow-md)]',\n 'transition-[box-shadow,background-color,transform]',\n 'duration-[var(--animation-duration)]',\n 'focus-visible:outline-[length:var(--focus-ring-width)] focus-visible:outline-solid',\n 'focus-visible:outline-ring focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n // Under Windows High Contrast Mode the `shadow-*` affordance is stripped.\n // Repaint a solid edge + swap the focus ring to CanvasText so the FAB\n // remains identifiable and its focus state stays visible.\n 'forced-colors:border forced-colors:border-[ButtonBorder] forced-colors:focus-visible:outline-[CanvasText]',\n 'disabled:opacity-50 disabled:cursor-not-allowed disabled:shadow-[var(--shadow-md)]',\n 'motion-reduce:transition-none',\n ].join(' '),\n {\n variants: {\n variant: {\n primary:\n 'bg-primary text-primary-foreground hover:bg-primary-hover',\n secondary:\n 'bg-accent text-accent-foreground hover:bg-accent-hover',\n },\n size: {\n // `sm` is 40x40 which sits below the 44/48 px WCAG 2.5.5 target.\n // Mirror Button's pseudo-expansion pattern: below the `sm:` (640 px)\n // breakpoint, a `::before` rectangle enlarges the hit area to\n // `--min-target-size` (44 default, 48 accessible). Above the\n // breakpoint (desktop / trackpad), the physical 40 px circle is\n // enough — the pseudo hides.\n sm: 'h-10 w-10 text-[var(--font-size-sm)] [&_svg]:size-5 before:absolute before:inset-x-[calc((var(--min-target-size)-100%)/-2)] before:inset-y-[calc((var(--min-target-size)-100%)/-2)] before:content-[\"\"] sm:before:hidden',\n md: 'h-14 w-14 text-[var(--font-size-base)] [&_svg]:size-6',\n lg: 'h-16 w-16 text-[var(--font-size-lg)] [&_svg]:size-7',\n },\n extended: {\n true: 'w-auto gap-[var(--spacing-sm)]',\n false: '',\n },\n position: {\n 'bottom-end':\n 'fixed z-[var(--z-fixed)] bottom-[calc(var(--spacing-lg)+env(safe-area-inset-bottom,0px))] end-[var(--spacing-lg)]',\n 'bottom-start':\n 'fixed z-[var(--z-fixed)] bottom-[calc(var(--spacing-lg)+env(safe-area-inset-bottom,0px))] start-[var(--spacing-lg)]',\n 'top-end':\n 'fixed z-[var(--z-fixed)] top-[calc(var(--spacing-lg)+env(safe-area-inset-top,0px))] end-[var(--spacing-lg)]',\n 'top-start':\n 'fixed z-[var(--z-fixed)] top-[calc(var(--spacing-lg)+env(safe-area-inset-top,0px))] start-[var(--spacing-lg)]',\n static: '',\n },\n },\n compoundVariants: [\n { extended: true, size: 'sm', class: 'ps-3 pe-4' },\n { extended: true, size: 'md', class: 'ps-4 pe-5' },\n { extended: true, size: 'lg', class: 'ps-5 pe-6' },\n ],\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n extended: false,\n position: 'bottom-end',\n },\n },\n);\n\ntype FabBaseProps = ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof fabVariants>;\n\ninterface CircularFabProps extends FabBaseProps {\n extended?: false;\n icon: ReactNode;\n 'aria-label': string;\n children?: never;\n}\n\ninterface ExtendedFabProps extends FabBaseProps {\n extended: true;\n icon?: ReactNode;\n children: ReactNode;\n}\n\nexport type FloatingActionButtonProps = CircularFabProps | ExtendedFabProps;\n\nexport const FloatingActionButton = forwardRef<\n HTMLButtonElement,\n FloatingActionButtonProps\n>((props, ref) => {\n const {\n variant,\n size,\n extended,\n position,\n className,\n icon,\n children,\n type,\n ...rest\n } = props;\n const { t } = useTranslation();\n\n const ariaLabel =\n rest['aria-label'] ??\n (!extended ? t('ui.common.add', { defaultValue: 'Add' }) : undefined);\n\n return (\n <button\n ref={ref}\n type={type ?? 'button'}\n className={fabVariants({ variant, size, extended, position, className })}\n {...rest}\n aria-label={ariaLabel}\n >\n {icon ? (\n <span aria-hidden=\"true\" className=\"inline-flex items-center justify-center\">\n {icon}\n </span>\n ) : null}\n {extended ? <span className=\"inline-flex\">{children}</span> : null}\n </button>\n );\n});\n\nFloatingActionButton.displayName = 'FloatingActionButton';\n"],"names":["fabVariants","cva","FloatingActionButton","forwardRef","props","ref","variant","size","extended","position","className","icon","children","type","rest","t","useTranslation","ariaLabel","jsxs","jsx"],"mappings":";;;;AAQA,MAAMA,IAAcC;AAAA,EAClB;AAAA;AAAA,IAEE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,MAEJ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,UAAU;AAAA,QACR,cACE;AAAA,QACF,gBACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,IAEF,kBAAkB;AAAA,MAChB,EAAE,UAAU,IAAM,MAAM,MAAM,OAAO,YAAA;AAAA,MACrC,EAAE,UAAU,IAAM,MAAM,MAAM,OAAO,YAAA;AAAA,MACrC,EAAE,UAAU,IAAM,MAAM,MAAM,OAAO,YAAA;AAAA,IAAY;AAAA,IAEnD,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ,GAoBaC,IAAuBC,EAGlC,CAACC,GAAOC,MAAQ;AAChB,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDV,GACE,EAAE,GAAAW,EAAA,IAAMC,EAAA,GAERC,IACJH,EAAK,YAAY,MACfN,IAAyD,SAA9CO,EAAE,iBAAiB,EAAE,cAAc,MAAA,CAAO;AAEzD,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAb;AAAA,MACA,MAAMQ,KAAQ;AAAA,MACd,WAAWb,EAAY,EAAE,SAAAM,GAAS,MAAAC,GAAM,UAAAC,GAAU,UAAAC,GAAU,WAAAC,GAAW;AAAA,MACtE,GAAGI;AAAA,MACJ,cAAYG;AAAA,MAEX,UAAA;AAAA,QAAAN,sBACE,QAAA,EAAK,eAAY,QAAO,WAAU,2CAChC,aACH,IACE;AAAA,QACHH,IAAW,gBAAAW,EAAC,QAAA,EAAK,WAAU,eAAe,UAAAP,GAAS,IAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGpE,CAAC;AAEDV,EAAqB,cAAc;"}
|