@alfadocs/ui-kit 0.0.20 → 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-BBL11-Rt.js → sign-in-with-alfadocs-button-BU7MP5Hg.js} +4 -4
- package/dist/_chunks/{sign-in-with-alfadocs-button-BBL11-Rt.js.map → sign-in-with-alfadocs-button-BU7MP5Hg.js.map} +1 -1
- 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/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/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/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
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { jsx as r, jsxs as f } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as q, useRef as F, useState as E, useEffect as G } from "react";
|
|
3
|
+
import { c as B } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as H } from "react-i18next";
|
|
5
|
+
import { T as v } from "./tooltip-Dp3u8jGz.js";
|
|
6
|
+
import { X as J } from "./x-CCcI3eJp.js";
|
|
7
|
+
const V = B(
|
|
8
|
+
[
|
|
9
|
+
"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
|
|
10
|
+
"ds:rounded-[var(--radius-full)]",
|
|
11
|
+
"type-eyebrow ds:whitespace-nowrap",
|
|
12
|
+
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
|
|
13
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
14
|
+
"ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
15
|
+
"ds:aria-disabled:cursor-not-allowed ds:aria-disabled:opacity-50",
|
|
16
|
+
"ds:disabled:cursor-not-allowed ds:disabled:opacity-50"
|
|
17
|
+
].join(" "),
|
|
18
|
+
{
|
|
19
|
+
variants: {
|
|
20
|
+
variant: {
|
|
21
|
+
neutral: "",
|
|
22
|
+
info: "",
|
|
23
|
+
success: "",
|
|
24
|
+
warning: "",
|
|
25
|
+
error: "",
|
|
26
|
+
brand: ""
|
|
27
|
+
},
|
|
28
|
+
fill: {
|
|
29
|
+
solid: "",
|
|
30
|
+
outline: "ds:border ds:bg-transparent"
|
|
31
|
+
},
|
|
32
|
+
size: {
|
|
33
|
+
// Symmetric start/end padding — close button uses negative margin to stay flush.
|
|
34
|
+
// Size is the only eyebrow-role axis that varies per Tag size; weight, transform,
|
|
35
|
+
// tracking, line-height, and features all come from `.type-eyebrow` on the base.
|
|
36
|
+
sm: "ds:h-[calc(var(--spacing)*4)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)] ds:[--type-eyebrow-size:var(--font-size-2xs)]",
|
|
37
|
+
md: "ds:h-[calc(var(--spacing)*5)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:[--type-eyebrow-size:var(--font-size-2xs)]",
|
|
38
|
+
lg: "ds:h-[calc(var(--spacing)*6)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:[--type-eyebrow-size:var(--font-size-xs)]"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
compoundVariants: [
|
|
42
|
+
// Solid fills — foreground tokens adapt per theme
|
|
43
|
+
{ fill: "solid", variant: "neutral", className: "ds:bg-muted/20 ds:text-muted-foreground" },
|
|
44
|
+
{ fill: "solid", variant: "info", className: "ds:bg-info ds:text-[color:var(--info-solid-foreground)]" },
|
|
45
|
+
{ fill: "solid", variant: "success", className: "ds:bg-success ds:text-[color:var(--success-solid-foreground)]" },
|
|
46
|
+
{ fill: "solid", variant: "warning", className: "ds:bg-warning ds:text-foreground" },
|
|
47
|
+
{ fill: "solid", variant: "error", className: "ds:bg-destructive ds:text-destructive-foreground" },
|
|
48
|
+
{ fill: "solid", variant: "brand", className: "ds:bg-primary ds:text-primary-foreground" },
|
|
49
|
+
// Outline fills
|
|
50
|
+
{ fill: "outline", variant: "neutral", className: "ds:border-muted ds:text-muted-foreground" },
|
|
51
|
+
{ fill: "outline", variant: "info", className: "ds:border-info ds:text-[var(--info-foreground)]" },
|
|
52
|
+
{ fill: "outline", variant: "success", className: "ds:border-success ds:text-[var(--success-foreground)]" },
|
|
53
|
+
{ fill: "outline", variant: "warning", className: "ds:border-warning ds:text-[var(--warning-foreground)]" },
|
|
54
|
+
{ fill: "outline", variant: "error", className: "ds:border-destructive ds:text-[var(--error-foreground)]" },
|
|
55
|
+
{ fill: "outline", variant: "brand", className: "ds:border-primary ds:text-primary" }
|
|
56
|
+
],
|
|
57
|
+
defaultVariants: {
|
|
58
|
+
variant: "neutral",
|
|
59
|
+
fill: "solid",
|
|
60
|
+
size: "md"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
), L = B(
|
|
64
|
+
[
|
|
65
|
+
"ds:inline-flex ds:items-center ds:justify-center ds:shrink-0 ds:rounded-full",
|
|
66
|
+
// Negative end margin keeps the button flush with the pill edge
|
|
67
|
+
"ds:-me-[var(--spacing-xs)]",
|
|
68
|
+
"ds:hover:bg-foreground/10",
|
|
69
|
+
"ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
|
|
70
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
71
|
+
"ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
72
|
+
"ds:disabled:cursor-not-allowed ds:disabled:opacity-50"
|
|
73
|
+
].join(" "),
|
|
74
|
+
{
|
|
75
|
+
variants: {
|
|
76
|
+
size: {
|
|
77
|
+
sm: "ds:p-1 ds:[&>svg]:size-3",
|
|
78
|
+
md: "ds:p-1 ds:[&>svg]:size-3.5",
|
|
79
|
+
lg: "ds:p-1.5 ds:[&>svg]:size-4"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
defaultVariants: { size: "md" }
|
|
83
|
+
}
|
|
84
|
+
), M = q(
|
|
85
|
+
({
|
|
86
|
+
label: n,
|
|
87
|
+
variant: g = "neutral",
|
|
88
|
+
fill: p = "solid",
|
|
89
|
+
size: t = "md",
|
|
90
|
+
leading: m,
|
|
91
|
+
onRemove: i,
|
|
92
|
+
onClick: b,
|
|
93
|
+
disabled: e = !1,
|
|
94
|
+
maxInlineSize: o = "none",
|
|
95
|
+
className: h
|
|
96
|
+
}, a) => {
|
|
97
|
+
const { t: w } = H(), y = F(null), [D, C] = E(!1), [O, R] = E("");
|
|
98
|
+
G(() => {
|
|
99
|
+
const s = y.current;
|
|
100
|
+
if (!s || o === "none") return;
|
|
101
|
+
const z = () => C(s.scrollWidth > s.clientWidth), j = new ResizeObserver(z);
|
|
102
|
+
return j.observe(s), z(), () => j.disconnect();
|
|
103
|
+
}, [o]);
|
|
104
|
+
const W = (s) => {
|
|
105
|
+
(s.key === "Backspace" || s.key === "Delete") && i && !e && (s.preventDefault(), x(), setTimeout(i, 100));
|
|
106
|
+
}, x = () => {
|
|
107
|
+
R(w("ui.tag.removed", { label: n }));
|
|
108
|
+
}, K = () => {
|
|
109
|
+
!e && i && (x(), setTimeout(i, 100));
|
|
110
|
+
}, d = !!i, N = !!b && !d, T = V({
|
|
111
|
+
variant: g,
|
|
112
|
+
fill: p,
|
|
113
|
+
size: t,
|
|
114
|
+
className: [
|
|
115
|
+
N && !e ? "hover:brightness-90 cursor-pointer" : "",
|
|
116
|
+
h ?? ""
|
|
117
|
+
].filter(Boolean).join(" ")
|
|
118
|
+
}), l = m ? /* @__PURE__ */ r("span", { "aria-hidden": "true", className: "ds:shrink-0 ds:inline-flex ds:items-center ds:[&>svg]:size-3.5", children: m }) : null, c = /* @__PURE__ */ r(
|
|
119
|
+
"span",
|
|
120
|
+
{
|
|
121
|
+
ref: y,
|
|
122
|
+
className: o !== "none" ? "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap" : void 0,
|
|
123
|
+
style: o !== "none" ? { maxInlineSize: o } : void 0,
|
|
124
|
+
children: n
|
|
125
|
+
}
|
|
126
|
+
), A = /* @__PURE__ */ r("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: O }), X = d ? /* @__PURE__ */ r(
|
|
127
|
+
"button",
|
|
128
|
+
{
|
|
129
|
+
type: "button",
|
|
130
|
+
"aria-label": w("ui.tag.remove", { label: n }),
|
|
131
|
+
onClick: K,
|
|
132
|
+
disabled: e,
|
|
133
|
+
tabIndex: -1,
|
|
134
|
+
className: L({ size: t }),
|
|
135
|
+
children: /* @__PURE__ */ r(J, { "aria-hidden": "true" })
|
|
136
|
+
}
|
|
137
|
+
) : null, u = o !== "none" && D;
|
|
138
|
+
if (N) {
|
|
139
|
+
const s = /* @__PURE__ */ f(
|
|
140
|
+
"button",
|
|
141
|
+
{
|
|
142
|
+
ref: a,
|
|
143
|
+
type: "button",
|
|
144
|
+
onClick: e ? void 0 : b,
|
|
145
|
+
disabled: e,
|
|
146
|
+
className: T,
|
|
147
|
+
children: [
|
|
148
|
+
l,
|
|
149
|
+
c
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
return u ? /* @__PURE__ */ r(v, { label: n, children: s }) : s;
|
|
154
|
+
}
|
|
155
|
+
if (d) {
|
|
156
|
+
const s = /* @__PURE__ */ f(
|
|
157
|
+
"span",
|
|
158
|
+
{
|
|
159
|
+
ref: a,
|
|
160
|
+
role: "group",
|
|
161
|
+
"aria-label": n,
|
|
162
|
+
tabIndex: e ? -1 : 0,
|
|
163
|
+
"aria-disabled": e || void 0,
|
|
164
|
+
onKeyDown: W,
|
|
165
|
+
className: T,
|
|
166
|
+
children: [
|
|
167
|
+
A,
|
|
168
|
+
l,
|
|
169
|
+
c,
|
|
170
|
+
X
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
);
|
|
174
|
+
return u ? /* @__PURE__ */ r(v, { label: n, children: s }) : s;
|
|
175
|
+
}
|
|
176
|
+
const k = /* @__PURE__ */ f(
|
|
177
|
+
"span",
|
|
178
|
+
{
|
|
179
|
+
ref: a,
|
|
180
|
+
className: V({ variant: g, fill: p, size: t, className: h }),
|
|
181
|
+
children: [
|
|
182
|
+
l,
|
|
183
|
+
c
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
);
|
|
187
|
+
return u ? /* @__PURE__ */ r(v, { label: n, children: k }) : k;
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
M.displayName = "Tag";
|
|
191
|
+
export {
|
|
192
|
+
M as T
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=tag-CfSZZN2f.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-CfSZZN2f.js","sources":["../../src/components/tag/tag.tsx"],"sourcesContent":["import {\n forwardRef,\n useRef,\n useState,\n useEffect,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { X } from 'lucide-react';\nimport { Tooltip } from '../tooltip';\n\n/* ------------------------------------------------------------------ */\n/* CVA — tag pill */\n/* ------------------------------------------------------------------ */\n\nconst tagVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-full)]',\n 'type-eyebrow ds:whitespace-nowrap',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:aria-disabled:cursor-not-allowed ds:aria-disabled:opacity-50',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n ].join(' '),\n {\n variants: {\n variant: {\n neutral: '',\n info: '',\n success: '',\n warning: '',\n error: '',\n brand: '',\n },\n fill: {\n solid: '',\n outline: 'ds:border ds:bg-transparent',\n },\n size: {\n // Symmetric start/end padding — close button uses negative margin to stay flush.\n // Size is the only eyebrow-role axis that varies per Tag size; weight, transform,\n // tracking, line-height, and features all come from `.type-eyebrow` on the base.\n sm: 'ds:h-[calc(var(--spacing)*4)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)] ds:[--type-eyebrow-size:var(--font-size-2xs)]',\n md: 'ds:h-[calc(var(--spacing)*5)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:[--type-eyebrow-size:var(--font-size-2xs)]',\n lg: 'ds:h-[calc(var(--spacing)*6)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:[--type-eyebrow-size:var(--font-size-xs)]',\n },\n },\n compoundVariants: [\n // Solid fills — foreground tokens adapt per theme\n { fill: 'solid', variant: 'neutral', className: 'ds:bg-muted/20 ds:text-muted-foreground' },\n { fill: 'solid', variant: 'info', className: 'ds:bg-info ds:text-[color:var(--info-solid-foreground)]' },\n { fill: 'solid', variant: 'success', className: 'ds:bg-success ds:text-[color:var(--success-solid-foreground)]' },\n { fill: 'solid', variant: 'warning', className: 'ds:bg-warning ds:text-foreground' },\n { fill: 'solid', variant: 'error', className: 'ds:bg-destructive ds:text-destructive-foreground' },\n { fill: 'solid', variant: 'brand', className: 'ds:bg-primary ds:text-primary-foreground' },\n // Outline fills\n { fill: 'outline', variant: 'neutral', className: 'ds:border-muted ds:text-muted-foreground' },\n { fill: 'outline', variant: 'info', className: 'ds:border-info ds:text-[var(--info-foreground)]' },\n { fill: 'outline', variant: 'success', className: 'ds:border-success ds:text-[var(--success-foreground)]' },\n { fill: 'outline', variant: 'warning', className: 'ds:border-warning ds:text-[var(--warning-foreground)]' },\n { fill: 'outline', variant: 'error', className: 'ds:border-destructive ds:text-[var(--error-foreground)]' },\n { fill: 'outline', variant: 'brand', className: 'ds:border-primary ds:text-primary' },\n ],\n defaultVariants: {\n variant: 'neutral',\n fill: 'solid',\n size: 'md',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — close button */\n/* ------------------------------------------------------------------ */\n\nconst closeButtonVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center ds:shrink-0 ds:rounded-full',\n // Negative end margin keeps the button flush with the pill edge\n 'ds:-me-[var(--spacing-xs)]',\n 'ds:hover:bg-foreground/10',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:p-1 ds:[&>svg]:size-3',\n md: 'ds:p-1 ds:[&>svg]:size-3.5',\n lg: 'ds:p-1.5 ds:[&>svg]:size-4',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* TagProps */\n/* ------------------------------------------------------------------ */\n\nexport interface TagProps {\n /** The visible label text */\n label: string;\n /** Semantic colour variant */\n variant?: 'neutral' | 'info' | 'success' | 'warning' | 'error' | 'brand';\n /** Visual fill style */\n fill?: 'solid' | 'outline';\n /** Size */\n size?: 'sm' | 'md' | 'lg';\n /** Leading slot — icon element or dot */\n leading?: ReactNode;\n /** Called when the tag is removed (enables close button + Backspace/Delete) */\n onRemove?: () => void;\n /** Called when the tag is clicked (non-removable interactive tag) */\n onClick?: () => void;\n /** Disabled state */\n disabled?: boolean;\n /** Max inline size before truncation with tooltip — default 'none' */\n maxInlineSize?: string | 'none';\n /** Additional class names */\n className?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Tag */\n/* ------------------------------------------------------------------ */\n\nexport const Tag = forwardRef<HTMLElement, TagProps>(\n (\n {\n label,\n variant = 'neutral',\n fill = 'solid',\n size = 'md',\n leading,\n onRemove,\n onClick,\n disabled = false,\n maxInlineSize = 'none',\n className,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const labelRef = useRef<HTMLSpanElement>(null);\n const [isOverflowing, setIsOverflowing] = useState(false);\n const [announcement, setAnnouncement] = useState('');\n\n useEffect(() => {\n const el = labelRef.current;\n if (!el || maxInlineSize === 'none') return;\n\n const check = () => setIsOverflowing(el.scrollWidth > el.clientWidth);\n const observer = new ResizeObserver(check);\n observer.observe(el);\n check();\n return () => observer.disconnect();\n }, [maxInlineSize]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === 'Backspace' || e.key === 'Delete') && onRemove && !disabled) {\n e.preventDefault();\n announce();\n // Delay gives the live region one render cycle before unmount\n setTimeout(onRemove, 100);\n }\n };\n\n const announce = () => {\n setAnnouncement(t('ui.tag.removed', { label }));\n };\n\n const handleRemove = () => {\n if (!disabled && onRemove) {\n announce();\n setTimeout(onRemove, 100);\n }\n };\n\n const isRemovable = !!onRemove;\n const isClickable = !!onClick && !isRemovable;\n\n const rootClasses = tagVariants({\n variant,\n fill,\n size,\n className: [\n isClickable && !disabled ? 'hover:brightness-90 cursor-pointer' : '',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' '),\n });\n\n const leadingEl = leading ? (\n <span aria-hidden=\"true\" className=\"ds:shrink-0 ds:inline-flex ds:items-center ds:[&>svg]:size-3.5\">\n {leading}\n </span>\n ) : null;\n\n // Consumer-controlled layout constraint — not a design token.\n // maxInlineSize is an arbitrary caller-supplied value that cannot be expressed\n // as a static Tailwind class; the style prop is the only cross-browser option.\n const labelEl = (\n <span\n ref={labelRef}\n className={\n maxInlineSize !== 'none'\n ? 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap'\n : undefined\n }\n // eslint-disable-next-line react/forbid-component-props\n style={maxInlineSize !== 'none' ? { maxInlineSize } : undefined}\n >\n {label}\n </span>\n );\n\n // Live region — only for removable tags; must be a sibling outside the button.\n const liveRegion = (\n <span role=\"status\" aria-live=\"polite\" className=\"ds:sr-only\">\n {announcement}\n </span>\n );\n\n const closeButton = isRemovable ? (\n <button\n type=\"button\"\n aria-label={t('ui.tag.remove', { label })}\n onClick={handleRemove}\n disabled={disabled}\n // Intentionally excluded from tab order: Backspace/Delete on the focused\n // group element provides the same keyboard action.\n tabIndex={-1}\n className={closeButtonVariants({ size })}\n >\n <X aria-hidden=\"true\" />\n </button>\n ) : null;\n\n const shouldWrapTooltip = maxInlineSize !== 'none' && isOverflowing;\n\n // Clickable tag — renders as <button>; live region is a sibling, not inside button\n if (isClickable) {\n const tagEl = (\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n onClick={!disabled ? onClick : undefined}\n disabled={disabled}\n className={rootClasses}\n >\n {leadingEl}\n {labelEl}\n </button>\n );\n return shouldWrapTooltip ? <Tooltip label={label}>{tagEl}</Tooltip> : tagEl;\n }\n\n // Removable tag — focusable <span> with embedded close button\n if (isRemovable) {\n const tagEl = (\n <span\n ref={ref as React.Ref<HTMLSpanElement>}\n role=\"group\"\n aria-label={label}\n tabIndex={disabled ? -1 : 0}\n aria-disabled={disabled || undefined}\n onKeyDown={handleKeyDown}\n className={rootClasses}\n >\n {liveRegion}\n {leadingEl}\n {labelEl}\n {closeButton}\n </span>\n );\n return shouldWrapTooltip ? <Tooltip label={label}>{tagEl}</Tooltip> : tagEl;\n }\n\n // Decorative tag — plain <span>, no interactive role\n const tagEl = (\n <span\n ref={ref as React.Ref<HTMLSpanElement>}\n className={tagVariants({ variant, fill, size, className })}\n >\n {leadingEl}\n {labelEl}\n </span>\n );\n return shouldWrapTooltip ? <Tooltip label={label}>{tagEl}</Tooltip> : tagEl;\n },\n);\n\nTag.displayName = 'Tag';\n"],"names":["tagVariants","cva","closeButtonVariants","Tag","forwardRef","label","variant","fill","size","leading","onRemove","onClick","disabled","maxInlineSize","className","ref","t","useTranslation","labelRef","useRef","isOverflowing","setIsOverflowing","useState","announcement","setAnnouncement","useEffect","el","check","observer","handleKeyDown","e","announce","handleRemove","isRemovable","isClickable","rootClasses","leadingEl","jsx","labelEl","liveRegion","closeButton","X","shouldWrapTooltip","tagEl","jsxs","Tooltip"],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as v } from "react";
|
|
3
|
+
import { c as g } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as b } from "react-i18next";
|
|
5
|
+
import { C as x } from "./chevron-right-BrpYejk0.js";
|
|
6
|
+
import { S as y } from "./square-check-big-Jr-0202D.js";
|
|
7
|
+
import { C } from "./circle-alert-ChA9opNA.js";
|
|
8
|
+
import { S as N } from "./square-CZoGU14v.js";
|
|
9
|
+
const k = g(
|
|
10
|
+
[
|
|
11
|
+
"ds:relative ds:flex ds:items-start ds:gap-[var(--spacing-sm)]",
|
|
12
|
+
"ds:rounded-[var(--radius-sm)]",
|
|
13
|
+
"ds:transition-colors",
|
|
14
|
+
"ds:motion-reduce:transition-none",
|
|
15
|
+
"ds:text-start ds:group",
|
|
16
|
+
"ds:forced-colors:border ds:forced-colors:border-[CanvasText]"
|
|
17
|
+
].join(" "),
|
|
18
|
+
{
|
|
19
|
+
variants: {
|
|
20
|
+
size: {
|
|
21
|
+
sm: "ds:p-[var(--spacing-sm)]",
|
|
22
|
+
md: "ds:p-[var(--spacing-md)]"
|
|
23
|
+
},
|
|
24
|
+
interactive: {
|
|
25
|
+
true: "ds:hover:bg-[color:var(--muted)]/40 ds:cursor-pointer",
|
|
26
|
+
false: ""
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
size: "sm",
|
|
31
|
+
interactive: !1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
), c = [
|
|
35
|
+
"focus-visible:outline-none",
|
|
36
|
+
"after:content-[''] after:absolute after:inset-0 after:rounded-[var(--radius-sm)]",
|
|
37
|
+
"after:pointer-events-auto",
|
|
38
|
+
"focus-visible:after:outline-[length:var(--focus-ring-width)]",
|
|
39
|
+
"focus-visible:after:outline-solid",
|
|
40
|
+
"focus-visible:after:outline-[color:var(--ring)]",
|
|
41
|
+
"focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]",
|
|
42
|
+
"forced-colors:focus-visible:after:outline-[CanvasText]"
|
|
43
|
+
].join(" ");
|
|
44
|
+
function S(s) {
|
|
45
|
+
return /^(https?:\/\/(?!\/)|\/(?!\/)|#)/.test(s);
|
|
46
|
+
}
|
|
47
|
+
function T({ status: s, priority: t }) {
|
|
48
|
+
const r = t === "high" ? "text-[color:var(--destructive)]" : "text-[color:var(--muted-foreground)]";
|
|
49
|
+
return s === "done" ? /* @__PURE__ */ e(y, { "aria-hidden": "true", className: `ds:size-4 ${r}` }) : t === "high" ? /* @__PURE__ */ e(C, { "aria-hidden": "true", className: `ds:size-4 ${r}` }) : /* @__PURE__ */ e(N, { "aria-hidden": "true", className: `ds:size-4 ${r}` });
|
|
50
|
+
}
|
|
51
|
+
const w = v(
|
|
52
|
+
({ item: s, size: t = "sm", onActivate: r, className: u, ...f }, p) => {
|
|
53
|
+
const { t: m } = b(), a = !!r, h = !!s.url && S(s.url), n = m("ui.taskCard.itemLabel", {
|
|
54
|
+
title: s.title,
|
|
55
|
+
due: s.dueLabel ?? "",
|
|
56
|
+
defaultValue: '{{title}}{{due, prepend, " · "}}'
|
|
57
|
+
}), i = /* @__PURE__ */ e("span", { className: "ds:flex-1 ds:min-w-0 ds:truncate type-body-sm ds:text-[color:var(--foreground)]", children: s.title });
|
|
58
|
+
let o;
|
|
59
|
+
return a && h ? o = /* @__PURE__ */ e(
|
|
60
|
+
"a",
|
|
61
|
+
{
|
|
62
|
+
href: s.url,
|
|
63
|
+
"aria-label": n,
|
|
64
|
+
className: c + " ds:contents",
|
|
65
|
+
onClick: (d) => {
|
|
66
|
+
d.defaultPrevented || d.metaKey || d.ctrlKey || d.shiftKey || r == null || r(s);
|
|
67
|
+
},
|
|
68
|
+
children: i
|
|
69
|
+
}
|
|
70
|
+
) : a ? o = /* @__PURE__ */ e(
|
|
71
|
+
"button",
|
|
72
|
+
{
|
|
73
|
+
type: "button",
|
|
74
|
+
"aria-label": n,
|
|
75
|
+
className: c + " ds:contents ds:bg-transparent ds:border-0 ds:p-0 ds:text-start",
|
|
76
|
+
onClick: () => r == null ? void 0 : r(s),
|
|
77
|
+
children: i
|
|
78
|
+
}
|
|
79
|
+
) : o = i, /* @__PURE__ */ l(
|
|
80
|
+
"div",
|
|
81
|
+
{
|
|
82
|
+
ref: p,
|
|
83
|
+
role: "listitem",
|
|
84
|
+
"data-status": s.status ?? "open",
|
|
85
|
+
"data-priority": s.priority ?? "normal",
|
|
86
|
+
className: k({ size: t, interactive: a, className: u }),
|
|
87
|
+
...f,
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ e("span", { className: "ds:mt-[var(--spacing-2xs)] ds:shrink-0", children: /* @__PURE__ */ e(T, { status: s.status, priority: s.priority }) }),
|
|
90
|
+
/* @__PURE__ */ l("div", { className: "ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
|
|
91
|
+
o,
|
|
92
|
+
s.description ? /* @__PURE__ */ e("span", { className: "type-body-sm ds:text-[color:var(--muted-foreground)] ds:truncate", children: s.description }) : null,
|
|
93
|
+
s.dueLabel ? /* @__PURE__ */ e("span", { className: "type-eyebrow ds:text-[color:var(--muted-foreground)]", children: s.dueLabel }) : null
|
|
94
|
+
] }),
|
|
95
|
+
a ? /* @__PURE__ */ e(
|
|
96
|
+
x,
|
|
97
|
+
{
|
|
98
|
+
"aria-hidden": "true",
|
|
99
|
+
className: "ds:mt-[var(--spacing-2xs)] ds:size-4 ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:opacity-0 ds:transition-opacity ds:motion-reduce:transition-none ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:rtl:rotate-180"
|
|
100
|
+
}
|
|
101
|
+
) : null
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
w.displayName = "TaskCard";
|
|
108
|
+
export {
|
|
109
|
+
w as T,
|
|
110
|
+
S as i
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=task-card-B5xfiFg5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-card-B5xfiFg5.js","sources":["../../src/components/task-card/task-card.tsx"],"sourcesContent":["import {\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { CheckSquare, Square, AlertCircle, ChevronRight } from 'lucide-react';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport type TaskStatus = 'open' | 'in-progress' | 'done';\nexport type TaskPriority = 'low' | 'normal' | 'high';\n\nexport interface TaskItem {\n /** Unique identifier for the task. */\n id: string;\n /** Title — single line, primary content. */\n title: string;\n /** Optional secondary line (e.g. \"Patient A · Due today\"). */\n description?: string;\n /**\n * Localised due-date hint (e.g. \"Due today\" / \"Tomorrow\"). Rendered as a\n * trailing eyebrow chip when set; consumers compute the bucket and pass\n * the localised string.\n */\n dueLabel?: string;\n /** Lifecycle state — drives the leading icon. */\n status?: TaskStatus;\n /** Priority — `high` colours the leading icon as `--destructive`. */\n priority?: TaskPriority;\n /** Optional deep link — when present the row is an anchor. */\n url?: string;\n}\n\nexport interface TaskCardProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'role' | 'title'>,\n VariantProps<typeof taskCardVariants> {\n /** The task to render. */\n item: TaskItem;\n /** Visual density. */\n size?: 'sm' | 'md';\n /** Fires when the row is activated (click / Enter / Space). */\n onActivate?: (item: TaskItem) => void;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst taskCardVariants = cva(\n [\n 'ds:relative ds:flex ds:items-start ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors',\n 'ds:motion-reduce:transition-none',\n 'ds:text-start ds:group',\n 'ds:forced-colors:border ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:p-[var(--spacing-sm)]',\n md: 'ds:p-[var(--spacing-md)]',\n },\n interactive: {\n true: 'ds:hover:bg-[color:var(--muted)]/40 ds:cursor-pointer',\n false: '',\n },\n },\n defaultVariants: {\n size: 'sm',\n interactive: false,\n },\n },\n);\n\nconst stretchedLinkClass = [\n 'focus-visible:outline-none',\n \"after:content-[''] after:absolute after:inset-0 after:rounded-[var(--radius-sm)]\",\n 'after:pointer-events-auto',\n 'focus-visible:after:outline-[length:var(--focus-ring-width)]',\n 'focus-visible:after:outline-solid',\n 'focus-visible:after:outline-[color:var(--ring)]',\n 'focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]',\n 'forced-colors:focus-visible:after:outline-[CanvasText]',\n].join(' ');\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nexport function isSafeTaskUrl(url: string): boolean {\n return /^(https?:\\/\\/(?!\\/)|\\/(?!\\/)|#)/.test(url);\n}\n\nfunction StatusIcon({ status, priority }: { status?: TaskStatus; priority?: TaskPriority }): ReactNode {\n const tone =\n priority === 'high'\n ? 'text-[color:var(--destructive)]'\n : 'text-[color:var(--muted-foreground)]';\n if (status === 'done') {\n return <CheckSquare aria-hidden=\"true\" className={`ds:size-4 ${tone}`} />;\n }\n if (priority === 'high') {\n return <AlertCircle aria-hidden=\"true\" className={`ds:size-4 ${tone}`} />;\n }\n return <Square aria-hidden=\"true\" className={`ds:size-4 ${tone}`} />;\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const TaskCard = forwardRef<HTMLDivElement, TaskCardProps>(\n ({ item, size = 'sm', onActivate, className, ...rest }, ref) => {\n const { t } = useTranslation();\n const interactive = !!onActivate;\n const hasSafeUrl = !!item.url && isSafeTaskUrl(item.url);\n const ariaLabel = t('ui.taskCard.itemLabel', {\n title: item.title,\n due: item.dueLabel ?? '',\n defaultValue: '{{title}}{{due, prepend, \" · \"}}',\n });\n\n const titleNode = (\n <span className=\"ds:flex-1 ds:min-w-0 ds:truncate type-body-sm ds:text-[color:var(--foreground)]\">\n {item.title}\n </span>\n );\n\n let activator: ReactNode;\n if (interactive && hasSafeUrl) {\n activator = (\n <a\n href={item.url}\n aria-label={ariaLabel}\n className={stretchedLinkClass + ' ds:contents'}\n onClick={(e) => {\n if (e.defaultPrevented || e.metaKey || e.ctrlKey || e.shiftKey) return;\n onActivate?.(item);\n }}\n >\n {titleNode}\n </a>\n );\n } else if (interactive) {\n activator = (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={stretchedLinkClass + ' ds:contents ds:bg-transparent ds:border-0 ds:p-0 ds:text-start'}\n onClick={() => onActivate?.(item)}\n >\n {titleNode}\n </button>\n );\n } else {\n activator = titleNode;\n }\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n data-status={item.status ?? 'open'}\n data-priority={item.priority ?? 'normal'}\n className={taskCardVariants({ size, interactive, className })}\n {...rest}\n >\n <span className=\"ds:mt-[var(--spacing-2xs)] ds:shrink-0\">\n <StatusIcon status={item.status} priority={item.priority} />\n </span>\n\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n {activator}\n {item.description ? (\n <span className=\"type-body-sm ds:text-[color:var(--muted-foreground)] ds:truncate\">\n {item.description}\n </span>\n ) : null}\n {item.dueLabel ? (\n <span className=\"type-eyebrow ds:text-[color:var(--muted-foreground)]\">\n {item.dueLabel}\n </span>\n ) : null}\n </div>\n\n {interactive ? (\n <ChevronRight\n aria-hidden=\"true\"\n className=\"ds:mt-[var(--spacing-2xs)] ds:size-4 ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:opacity-0 ds:transition-opacity ds:motion-reduce:transition-none ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:rtl:rotate-180\"\n />\n ) : null}\n </div>\n );\n },\n);\n\nTaskCard.displayName = 'TaskCard';\n"],"names":["taskCardVariants","cva","stretchedLinkClass","isSafeTaskUrl","url","StatusIcon","status","priority","tone","CheckSquare","AlertCircle","Square","TaskCard","forwardRef","item","size","onActivate","className","rest","ref","t","useTranslation","interactive","hasSafeUrl","ariaLabel","titleNode","jsx","activator","e","jsxs","ChevronRight"],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as s, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as x } from "react";
|
|
3
|
+
import { c as T } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as N } from "react-i18next";
|
|
5
|
+
import { I as w } from "./icon-button-C482ii4y.js";
|
|
6
|
+
import { S as b } from "./skeleton-ClO1v5GE.js";
|
|
7
|
+
import { E as j } from "./empty-state-DV96gCnp.js";
|
|
8
|
+
import { T as z } from "./task-card-B5xfiFg5.js";
|
|
9
|
+
import { c as E } from "./createLucideIcon-CrFbzy84.js";
|
|
10
|
+
import { P as I } from "./plus-CYKNmfuA.js";
|
|
11
|
+
/**
|
|
12
|
+
* @license lucide-react v1.8.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/
|
|
17
|
+
const L = [
|
|
18
|
+
["path", { d: "M13 5h8", key: "a7qcls" }],
|
|
19
|
+
["path", { d: "M13 12h8", key: "h98zly" }],
|
|
20
|
+
["path", { d: "M13 19h8", key: "c3s6r1" }],
|
|
21
|
+
["path", { d: "m3 17 2 2 4-4", key: "1jhpwq" }],
|
|
22
|
+
["rect", { x: "3", y: "4", width: "6", height: "6", rx: "1", key: "cif1o7" }]
|
|
23
|
+
], M = E("list-todo", L), S = T(
|
|
24
|
+
[
|
|
25
|
+
"ds:flex ds:flex-col",
|
|
26
|
+
"ds:rounded-[var(--radius-md)] ds:shadow-[var(--shadow-card)]",
|
|
27
|
+
"ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]",
|
|
28
|
+
"ds:overflow-hidden"
|
|
29
|
+
].join(" "),
|
|
30
|
+
{
|
|
31
|
+
variants: {
|
|
32
|
+
size: {
|
|
33
|
+
sm: "",
|
|
34
|
+
md: ""
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
size: "sm"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
), q = x(
|
|
42
|
+
({
|
|
43
|
+
items: i,
|
|
44
|
+
title: n,
|
|
45
|
+
size: d = "sm",
|
|
46
|
+
onOpenTask: m,
|
|
47
|
+
onAddTask: o,
|
|
48
|
+
addLabel: p,
|
|
49
|
+
loading: l = !1,
|
|
50
|
+
emptyTitle: f,
|
|
51
|
+
emptyDescription: h,
|
|
52
|
+
className: y,
|
|
53
|
+
...u
|
|
54
|
+
}, v) => {
|
|
55
|
+
const { t: a } = N(), c = n ?? a("ui.taskTray.title", "Tasks"), k = p ?? a("ui.taskTray.add", "Add task"), g = !l && i.length === 0;
|
|
56
|
+
let e;
|
|
57
|
+
return l ? e = /* @__PURE__ */ s("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]", children: [0, 1, 2].map((t) => /* @__PURE__ */ s(b, { variant: "rectangular", height: "2.5rem" }, t)) }) : g ? e = /* @__PURE__ */ s("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ s(
|
|
58
|
+
j,
|
|
59
|
+
{
|
|
60
|
+
variant: "first-use",
|
|
61
|
+
size: "sm",
|
|
62
|
+
title: f ?? a("ui.taskTray.empty.title", "No tasks yet"),
|
|
63
|
+
description: h ?? a("ui.taskTray.empty.description", "New tasks will appear here.")
|
|
64
|
+
}
|
|
65
|
+
) }) : e = /* @__PURE__ */ s("ul", { className: "ds:flex ds:list-none ds:flex-col", children: i.map((t) => /* @__PURE__ */ s(z, { item: t, size: d, onActivate: m }, t.id)) }), /* @__PURE__ */ r(
|
|
66
|
+
"section",
|
|
67
|
+
{
|
|
68
|
+
ref: v,
|
|
69
|
+
"aria-label": c,
|
|
70
|
+
className: S({ size: d, className: y }),
|
|
71
|
+
...u,
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ r("header", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]", children: [
|
|
74
|
+
/* @__PURE__ */ r("h3", { className: "ds:m-0 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-card", children: [
|
|
75
|
+
/* @__PURE__ */ s(M, { "aria-hidden": "true", className: "ds:size-4" }),
|
|
76
|
+
c
|
|
77
|
+
] }),
|
|
78
|
+
o ? /* @__PURE__ */ s(
|
|
79
|
+
w,
|
|
80
|
+
{
|
|
81
|
+
icon: /* @__PURE__ */ s(I, {}),
|
|
82
|
+
intent: "outline",
|
|
83
|
+
size: "sm",
|
|
84
|
+
"aria-label": k,
|
|
85
|
+
onClick: o
|
|
86
|
+
}
|
|
87
|
+
) : null
|
|
88
|
+
] }),
|
|
89
|
+
e
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
q.displayName = "TaskTray";
|
|
96
|
+
export {
|
|
97
|
+
q as T
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=task-tray-BnpiodZ4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tray-BnpiodZ4.js","sources":["../../node_modules/lucide-react/dist/esm/icons/list-todo.js","../../src/components/task-tray/task-tray.tsx"],"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: \"M13 5h8\", key: \"a7qcls\" }],\n [\"path\", { d: \"M13 12h8\", key: \"h98zly\" }],\n [\"path\", { d: \"M13 19h8\", key: \"c3s6r1\" }],\n [\"path\", { d: \"m3 17 2 2 4-4\", key: \"1jhpwq\" }],\n [\"rect\", { x: \"3\", y: \"4\", width: \"6\", height: \"6\", rx: \"1\", key: \"cif1o7\" }]\n];\nconst ListTodo = createLucideIcon(\"list-todo\", __iconNode);\n\nexport { __iconNode, ListTodo as default };\n//# sourceMappingURL=list-todo.js.map\n","import {\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ListTodo, Plus } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { TaskCard, type TaskItem } from '../task-card';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst taskTrayVariants = cva(\n [\n 'ds:flex ds:flex-col',\n 'ds:rounded-[var(--radius-md)] ds:shadow-[var(--shadow-card)]',\n 'ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]',\n 'ds:overflow-hidden',\n ].join(' '),\n {\n variants: {\n size: {\n sm: '',\n md: '',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface TaskTrayProps\n extends Omit<HTMLAttributes<HTMLElement>, 'onClick'>,\n VariantProps<typeof taskTrayVariants> {\n /** Tasks rendered inside the panel. */\n items: TaskItem[];\n /** Section title — rendered in the header. Localised by the consumer. */\n title?: string;\n /** Visual density forwarded to each TaskCard. */\n size?: 'sm' | 'md';\n /** Fires when the user activates a task (click / Enter / Space). */\n onOpenTask?: (item: TaskItem) => void;\n /** Fires when the user activates the header \"Add\" affordance. */\n onAddTask?: () => void;\n /** Localised label for the \"Add\" affordance. Defaults to `ui.taskTray.add`. */\n addLabel?: string;\n /** When true the panel renders skeleton placeholders. */\n loading?: boolean;\n /** Render an empty state when `items` is empty and `loading` is false. */\n emptyTitle?: string;\n emptyDescription?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const TaskTray = forwardRef<HTMLElement, TaskTrayProps>(\n (\n {\n items,\n title,\n size = 'sm',\n onOpenTask,\n onAddTask,\n addLabel,\n loading = false,\n emptyTitle,\n emptyDescription,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const heading = title ?? t('ui.taskTray.title', 'Tasks');\n const resolvedAddLabel = addLabel ?? t('ui.taskTray.add', 'Add task');\n const isEmpty = !loading && items.length === 0;\n\n let body: ReactNode;\n if (loading) {\n body = (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]\">\n {[0, 1, 2].map((i) => (\n <Skeleton key={i} variant=\"rectangular\" height=\"2.5rem\" />\n ))}\n </div>\n );\n } else if (isEmpty) {\n body = (\n <div className=\"ds:p-[var(--spacing-md)]\">\n <EmptyState\n variant=\"first-use\"\n size=\"sm\"\n title={emptyTitle ?? t('ui.taskTray.empty.title', 'No tasks yet')}\n description={\n emptyDescription ??\n t('ui.taskTray.empty.description', 'New tasks will appear here.')\n }\n />\n </div>\n );\n } else {\n body = (\n <ul className=\"ds:flex ds:list-none ds:flex-col\">\n {items.map((item) => (\n <TaskCard key={item.id} item={item} size={size} onActivate={onOpenTask} />\n ))}\n </ul>\n );\n }\n\n return (\n <section\n ref={ref}\n aria-label={heading}\n className={taskTrayVariants({ size, className })}\n {...rest}\n >\n <header className=\"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]\">\n <h3 className=\"ds:m-0 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-card\">\n <ListTodo aria-hidden=\"true\" className=\"ds:size-4\" />\n {heading}\n </h3>\n {onAddTask ? (\n <IconButton\n icon={<Plus />}\n intent=\"outline\"\n size=\"sm\"\n aria-label={resolvedAddLabel}\n onClick={onAddTask}\n />\n ) : null}\n </header>\n {body}\n </section>\n );\n },\n);\n\nTaskTray.displayName = 'TaskTray';\n"],"names":["__iconNode","ListTodo","createLucideIcon","taskTrayVariants","cva","TaskTray","forwardRef","items","title","size","onOpenTask","onAddTask","addLabel","loading","emptyTitle","emptyDescription","className","rest","ref","t","useTranslation","heading","resolvedAddLabel","isEmpty","body","jsx","i","Skeleton","EmptyState","item","TaskCard","jsxs","IconButton","Plus"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { jsxs as x, jsx as A } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as oe, useRef as j, useCallback as H, useState as k, useLayoutEffect as ae, useEffect as de } from "react";
|
|
3
|
+
import { c as ce } from "./index-D2ZczOXr.js";
|
|
4
|
+
import { useTranslation as le } from "react-i18next";
|
|
5
|
+
import { u as ue } from "./form-field-context-94LwgYTQ.js";
|
|
6
|
+
const fe = ce(
|
|
7
|
+
[
|
|
8
|
+
"ds:block ds:w-full ds:border ds:rounded-[var(--radius-sm)] ds:bg-background ds:text-foreground",
|
|
9
|
+
"ds:leading-[var(--line-height-base)]",
|
|
10
|
+
"ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]",
|
|
11
|
+
"ds:focus:outline-none",
|
|
12
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
13
|
+
"ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
14
|
+
"ds:forced-colors:focus-visible:outline-[CanvasText]",
|
|
15
|
+
"ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
|
|
16
|
+
"ds:read-only:bg-muted ds:read-only:cursor-default",
|
|
17
|
+
"ds:transition-[height,color,background-color,border-color] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
|
|
18
|
+
"ds:placeholder:text-muted-foreground"
|
|
19
|
+
].join(" "),
|
|
20
|
+
{
|
|
21
|
+
variants: {
|
|
22
|
+
size: {
|
|
23
|
+
sm: "ds:min-h-8 ds:text-[var(--font-size-sm)]",
|
|
24
|
+
md: "ds:min-h-[var(--min-target-size)] ds:text-[var(--font-size-base)]",
|
|
25
|
+
lg: "ds:min-h-[calc(var(--min-target-size)*1.5)] ds:text-[var(--font-size-lg)]"
|
|
26
|
+
},
|
|
27
|
+
tone: {
|
|
28
|
+
default: "ds:border-border",
|
|
29
|
+
error: "ds:border-destructive"
|
|
30
|
+
},
|
|
31
|
+
resize: {
|
|
32
|
+
auto: "ds:resize-none",
|
|
33
|
+
manual: "ds:resize-y"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
defaultVariants: { size: "md", tone: "default", resize: "manual" }
|
|
37
|
+
}
|
|
38
|
+
), me = (s) => s >= 1 ? "text-destructive" : s >= 0.9 ? "text-warning" : "text-muted-foreground", ve = (s) => [...s].length, be = oe(
|
|
39
|
+
({
|
|
40
|
+
size: s = "md",
|
|
41
|
+
tone: M = "default",
|
|
42
|
+
autoResize: r = !1,
|
|
43
|
+
minRows: f = 2,
|
|
44
|
+
maxRows: m,
|
|
45
|
+
showCounter: S,
|
|
46
|
+
className: q,
|
|
47
|
+
id: E,
|
|
48
|
+
disabled: P,
|
|
49
|
+
value: y,
|
|
50
|
+
defaultValue: T,
|
|
51
|
+
maxLength: n,
|
|
52
|
+
rows: W,
|
|
53
|
+
onChange: i,
|
|
54
|
+
onCompositionStart: v,
|
|
55
|
+
onCompositionEnd: b,
|
|
56
|
+
onInput: $,
|
|
57
|
+
...D
|
|
58
|
+
}, d) => {
|
|
59
|
+
const { t: N } = le(), o = ue(), F = E ?? o.id, O = o.disabled || P, Y = o.invalid ? "error" : M, w = j(null), _ = H(
|
|
60
|
+
(e) => {
|
|
61
|
+
w.current = e, typeof d == "function" ? d(e) : d && (d.current = e);
|
|
62
|
+
},
|
|
63
|
+
[d]
|
|
64
|
+
), c = y !== void 0, [G, z] = k(
|
|
65
|
+
String(T ?? "")
|
|
66
|
+
), p = c ? String(y) : G, l = j(!1), g = H(() => {
|
|
67
|
+
const e = w.current;
|
|
68
|
+
if (!e || !r) return;
|
|
69
|
+
const t = window.getComputedStyle(e), u = parseFloat(t.lineHeight), C = parseFloat(t.paddingTop), ee = parseFloat(t.paddingBottom), te = parseFloat(t.borderTopWidth), re = parseFloat(t.borderBottomWidth), B = C + ee + te + re, se = (Number.isFinite(u) ? u : 24) * f + B, ne = typeof m == "number" ? (Number.isFinite(u) ? u : 24) * m + B : Number.POSITIVE_INFINITY;
|
|
70
|
+
e.style.height = "auto";
|
|
71
|
+
const ie = Math.max(se, Math.min(e.scrollHeight, ne));
|
|
72
|
+
e.style.height = `${ie}px`;
|
|
73
|
+
}, [r, f, m]);
|
|
74
|
+
ae(() => {
|
|
75
|
+
r && g();
|
|
76
|
+
}, [r, g, p]);
|
|
77
|
+
const J = (e) => {
|
|
78
|
+
c || z(e.target.value), !l.current && (i == null || i(e));
|
|
79
|
+
}, K = (e) => {
|
|
80
|
+
l.current = !0, v == null || v(e);
|
|
81
|
+
}, Q = (e) => {
|
|
82
|
+
l.current = !1, b == null || b(e);
|
|
83
|
+
const t = e.currentTarget;
|
|
84
|
+
c || z(t.value), i == null || i({
|
|
85
|
+
...e,
|
|
86
|
+
target: t,
|
|
87
|
+
currentTarget: t
|
|
88
|
+
}), r && g();
|
|
89
|
+
}, a = typeof n == "number" && (S ?? !0) && n > 0, h = ve(p), I = a ? Math.max(0, n - h) : 0, U = a ? h / n : 0, [X, Z] = k("");
|
|
90
|
+
de(() => {
|
|
91
|
+
if (!a) return;
|
|
92
|
+
const e = window.setTimeout(() => {
|
|
93
|
+
l.current || Z(
|
|
94
|
+
N("ui.inputs.textarea.charactersRemaining", {
|
|
95
|
+
count: I,
|
|
96
|
+
defaultValue: "{{count}} characters remaining"
|
|
97
|
+
})
|
|
98
|
+
);
|
|
99
|
+
}, 500);
|
|
100
|
+
return () => window.clearTimeout(e);
|
|
101
|
+
}, [a, I, N]);
|
|
102
|
+
const V = a ? `${F}-counter` : void 0, L = [o.describedBy || void 0, V].filter(Boolean).join(" ") || void 0, R = r ? "auto" : "manual";
|
|
103
|
+
return /* @__PURE__ */ x("div", { className: "ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
|
|
104
|
+
/* @__PURE__ */ A(
|
|
105
|
+
"textarea",
|
|
106
|
+
{
|
|
107
|
+
ref: _,
|
|
108
|
+
id: F,
|
|
109
|
+
value: c ? p : void 0,
|
|
110
|
+
defaultValue: c ? void 0 : T,
|
|
111
|
+
disabled: O,
|
|
112
|
+
"aria-describedby": L,
|
|
113
|
+
"aria-invalid": o.invalid || void 0,
|
|
114
|
+
"aria-required": o.required || void 0,
|
|
115
|
+
maxLength: n,
|
|
116
|
+
rows: r ? f : W,
|
|
117
|
+
onChange: J,
|
|
118
|
+
onCompositionStart: K,
|
|
119
|
+
onCompositionEnd: Q,
|
|
120
|
+
onInput: $,
|
|
121
|
+
className: fe({
|
|
122
|
+
size: s,
|
|
123
|
+
tone: Y,
|
|
124
|
+
resize: R,
|
|
125
|
+
className: q
|
|
126
|
+
}),
|
|
127
|
+
...D
|
|
128
|
+
}
|
|
129
|
+
),
|
|
130
|
+
a ? /* @__PURE__ */ x(
|
|
131
|
+
"div",
|
|
132
|
+
{
|
|
133
|
+
id: V,
|
|
134
|
+
className: "ds:flex ds:justify-end type-meta ds:tabular-nums",
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ x("span", { "aria-hidden": "true", className: me(U), children: [
|
|
137
|
+
h,
|
|
138
|
+
" / ",
|
|
139
|
+
n
|
|
140
|
+
] }),
|
|
141
|
+
/* @__PURE__ */ A("span", { className: "ds:sr-only", "aria-live": "polite", children: X })
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
) : null
|
|
145
|
+
] });
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
be.displayName = "TextArea";
|
|
149
|
+
export {
|
|
150
|
+
be as T
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=text-area-BqbruBWx.js.map
|