@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.
Files changed (552) hide show
  1. package/dist/_chunks/accordion-BJD1aM67.js +117 -0
  2. package/dist/_chunks/accordion-BJD1aM67.js.map +1 -0
  3. package/dist/_chunks/agenda-card-Bld47Eul.js +130 -0
  4. package/dist/_chunks/agenda-card-Bld47Eul.js.map +1 -0
  5. package/dist/_chunks/agenda-tray-D86cNIJ0.js +119 -0
  6. package/dist/_chunks/agenda-tray-D86cNIJ0.js.map +1 -0
  7. package/dist/_chunks/ai-prompt-input-CdYwt2VP.js +379 -0
  8. package/dist/_chunks/ai-prompt-input-CdYwt2VP.js.map +1 -0
  9. package/dist/_chunks/{alert-C5ud6CfE.js → alert-ETrF7Q8J.js} +51 -51
  10. package/dist/_chunks/alert-ETrF7Q8J.js.map +1 -0
  11. package/dist/_chunks/apexcharts-theme-BkSShpEy.js +48 -0
  12. package/dist/_chunks/apexcharts-theme-BkSShpEy.js.map +1 -0
  13. package/dist/_chunks/{app-frame-CmIUp9BD.js → app-frame-uq2Gy0vs.js} +37 -37
  14. package/dist/_chunks/app-frame-uq2Gy0vs.js.map +1 -0
  15. package/dist/_chunks/aspect-ratio-BqU4itGW.js +56 -0
  16. package/dist/_chunks/aspect-ratio-BqU4itGW.js.map +1 -0
  17. package/dist/_chunks/{audio-recorder-GkGNtW2X.js → audio-recorder-D2UEBF9B.js} +98 -98
  18. package/dist/_chunks/audio-recorder-D2UEBF9B.js.map +1 -0
  19. package/dist/_chunks/{audio-visualiser-CIO3yy23.js → audio-visualiser-B4u4goV5.js} +46 -46
  20. package/dist/_chunks/audio-visualiser-B4u4goV5.js.map +1 -0
  21. package/dist/_chunks/{autocomplete.agent-kb0nmr6F.js → autocomplete.agent-Bi6CiRKa.js} +111 -111
  22. package/dist/_chunks/autocomplete.agent-Bi6CiRKa.js.map +1 -0
  23. package/dist/_chunks/{avatar-BsV7vRA6.js → avatar-BAhxbDEu.js} +38 -38
  24. package/dist/_chunks/avatar-BAhxbDEu.js.map +1 -0
  25. package/dist/_chunks/badge-zDghajh8.js +104 -0
  26. package/dist/_chunks/badge-zDghajh8.js.map +1 -0
  27. package/dist/_chunks/{balance-cell-renderer-BQwN51rT.js → balance-cell-renderer-BGyvZWjB.js} +123 -124
  28. package/dist/_chunks/balance-cell-renderer-BGyvZWjB.js.map +1 -0
  29. package/dist/_chunks/{breadcrumb-DnO6eHSS.js → breadcrumb-pdUacgm1.js} +40 -40
  30. package/dist/_chunks/breadcrumb-pdUacgm1.js.map +1 -0
  31. package/dist/_chunks/button-DmiGFnNA.js +119 -0
  32. package/dist/_chunks/button-DmiGFnNA.js.map +1 -0
  33. package/dist/_chunks/{button-group-CI7LFxt3.js → button-group-BtTHSyU0.js} +24 -24
  34. package/dist/_chunks/button-group-BtTHSyU0.js.map +1 -0
  35. package/dist/_chunks/{calendar-BIXVzhkL.js → calendar-BkDeDTaX.js} +333 -290
  36. package/dist/_chunks/calendar-BkDeDTaX.js.map +1 -0
  37. package/dist/_chunks/card-DeItIBcV.js +158 -0
  38. package/dist/_chunks/card-DeItIBcV.js.map +1 -0
  39. package/dist/_chunks/{chart.agent-DkmVXNsI.js → chart.agent-BdS-_8MO.js} +66 -64
  40. package/dist/_chunks/chart.agent-BdS-_8MO.js.map +1 -0
  41. package/dist/_chunks/chat-container-Co8HpB64.js +174 -0
  42. package/dist/_chunks/chat-container-Co8HpB64.js.map +1 -0
  43. package/dist/_chunks/{chat-input-aphxDjZL.js → chat-input-3rstZhHR.js} +57 -57
  44. package/dist/_chunks/chat-input-3rstZhHR.js.map +1 -0
  45. package/dist/_chunks/{chat-message-CdJSD18D.js → chat-message-dDMVSYBs.js} +66 -66
  46. package/dist/_chunks/chat-message-dDMVSYBs.js.map +1 -0
  47. package/dist/_chunks/checkbox-DMzgtnqw.js +116 -0
  48. package/dist/_chunks/checkbox-DMzgtnqw.js.map +1 -0
  49. package/dist/_chunks/{checkbox-group-D1aqVI0-.js → checkbox-group-DBnIBRT_.js} +34 -34
  50. package/dist/_chunks/checkbox-group-DBnIBRT_.js.map +1 -0
  51. package/dist/_chunks/{collapsible-jBFm7Ah8.js → collapsible-DPGQnHZh.js} +16 -16
  52. package/dist/_chunks/collapsible-DPGQnHZh.js.map +1 -0
  53. package/dist/_chunks/{color-picker-CiotzQJF.js → color-picker-OKKF3Dww.js} +158 -158
  54. package/dist/_chunks/color-picker-OKKF3Dww.js.map +1 -0
  55. package/dist/_chunks/{combobox.agent-B6RwDSct.js → combobox.agent-CfeB-IZ1.js} +107 -107
  56. package/dist/_chunks/combobox.agent-CfeB-IZ1.js.map +1 -0
  57. package/dist/_chunks/{command-palette.agent-B87_OkmC.js → command-palette.agent-XLfSGHCL.js} +27 -27
  58. package/dist/_chunks/command-palette.agent-XLfSGHCL.js.map +1 -0
  59. package/dist/_chunks/{date-picker-CdPuI3dK.js → date-picker-DXx8oSJb.js} +5 -5
  60. package/dist/_chunks/{date-picker-CdPuI3dK.js.map → date-picker-DXx8oSJb.js.map} +1 -1
  61. package/dist/_chunks/{date-range-picker-DfK4cjln.js → date-range-picker-C3CbY__H.js} +29 -29
  62. package/dist/_chunks/{date-range-picker-DfK4cjln.js.map → date-range-picker-C3CbY__H.js.map} +1 -1
  63. package/dist/_chunks/{date-time-picker-CX_FMsLG.js → date-time-picker-Bn3FPeAc.js} +58 -58
  64. package/dist/_chunks/date-time-picker-Bn3FPeAc.js.map +1 -0
  65. package/dist/_chunks/description-list-B1CL3RTG.js +187 -0
  66. package/dist/_chunks/description-list-B1CL3RTG.js.map +1 -0
  67. package/dist/_chunks/{dialog.agent-B276rAQF.js → dialog.agent-D9WeIWi2.js} +39 -39
  68. package/dist/_chunks/dialog.agent-D9WeIWi2.js.map +1 -0
  69. package/dist/_chunks/dropdown-menu-BnVUeVG3.js +210 -0
  70. package/dist/_chunks/dropdown-menu-BnVUeVG3.js.map +1 -0
  71. package/dist/_chunks/{empty-state-DiG7vYBM.js → empty-state-DV96gCnp.js} +37 -37
  72. package/dist/_chunks/empty-state-DV96gCnp.js.map +1 -0
  73. package/dist/_chunks/{file-upload.agent-BMow5yDY.js → file-upload.agent-DYFnqdxw.js} +185 -185
  74. package/dist/_chunks/file-upload.agent-DYFnqdxw.js.map +1 -0
  75. package/dist/_chunks/{flag-ChP784EM.js → flag-C3BUEwHH.js} +14 -14
  76. package/dist/_chunks/{flag-ChP784EM.js.map → flag-C3BUEwHH.js.map} +1 -1
  77. package/dist/_chunks/floating-action-button-RigP2E7o.js +95 -0
  78. package/dist/_chunks/floating-action-button-RigP2E7o.js.map +1 -0
  79. package/dist/_chunks/form-field-DI5LY5aG.js +121 -0
  80. package/dist/_chunks/form-field-DI5LY5aG.js.map +1 -0
  81. package/dist/_chunks/freemium-paywall-D0GiUFOe.js +197 -0
  82. package/dist/_chunks/freemium-paywall-D0GiUFOe.js.map +1 -0
  83. package/dist/_chunks/{header-BpKaSL_v.js → header-CW2oRd5H.js} +111 -111
  84. package/dist/_chunks/header-CW2oRd5H.js.map +1 -0
  85. package/dist/_chunks/icon-button-C482ii4y.js +45 -0
  86. package/dist/_chunks/icon-button-C482ii4y.js.map +1 -0
  87. package/dist/_chunks/{icon-button-group-tERESY-n.js → icon-button-group-BnhkUWUg.js} +56 -56
  88. package/dist/_chunks/icon-button-group-BnhkUWUg.js.map +1 -0
  89. package/dist/_chunks/{kbd-0iPlQjgC.js → kbd-DTcIjYA7.js} +52 -52
  90. package/dist/_chunks/kbd-DTcIjYA7.js.map +1 -0
  91. package/dist/_chunks/{key-value-pair--Je59tAF.js → key-value-pair-DDhSYdDL.js} +26 -26
  92. package/dist/_chunks/key-value-pair-DDhSYdDL.js.map +1 -0
  93. package/dist/_chunks/leo-sidebar-gXXcGPKk.js +755 -0
  94. package/dist/_chunks/leo-sidebar-gXXcGPKk.js.map +1 -0
  95. package/dist/_chunks/{list-n8vI8Yvn.js → list-Cwe8mcmh.js} +96 -96
  96. package/dist/_chunks/list-Cwe8mcmh.js.map +1 -0
  97. package/dist/_chunks/live-region-COggO6x6.js +57 -0
  98. package/dist/_chunks/live-region-COggO6x6.js.map +1 -0
  99. package/dist/_chunks/{logo-UNWYb9p7.js → logo-3wrZGpwg.js} +29 -29
  100. package/dist/_chunks/logo-3wrZGpwg.js.map +1 -0
  101. package/dist/_chunks/{matrix-rain-Q7xTEpKu.js → matrix-rain-gsHqSvW7.js} +75 -75
  102. package/dist/_chunks/matrix-rain-gsHqSvW7.js.map +1 -0
  103. package/dist/_chunks/message-card-DID3cXUW.js +275 -0
  104. package/dist/_chunks/message-card-DID3cXUW.js.map +1 -0
  105. package/dist/_chunks/message-tray-CVMLBnVp.js +302 -0
  106. package/dist/_chunks/message-tray-CVMLBnVp.js.map +1 -0
  107. package/dist/_chunks/{multi-select.agent-Cf4pU636.js → multi-select.agent-BUKYZJfp.js} +126 -126
  108. package/dist/_chunks/multi-select.agent-BUKYZJfp.js.map +1 -0
  109. package/dist/_chunks/{navigation-menu-DBDsAmXc.js → navigation-menu-NjwxyshT.js} +68 -97
  110. package/dist/_chunks/navigation-menu-NjwxyshT.js.map +1 -0
  111. package/dist/_chunks/notification-card-BZ33fq8H.js +255 -0
  112. package/dist/_chunks/notification-card-BZ33fq8H.js.map +1 -0
  113. package/dist/_chunks/{notification-tray-CNWPuPZp.js → notification-tray-CnEd7B2q.js} +96 -96
  114. package/dist/_chunks/notification-tray-CnEd7B2q.js.map +1 -0
  115. package/dist/_chunks/{number-input-B1Th0DdC.js → number-input-D7rSa_ef.js} +73 -73
  116. package/dist/_chunks/number-input-D7rSa_ef.js.map +1 -0
  117. package/dist/_chunks/{otp-input-CmoBuZ4K.js → otp-input-C9R9sC74.js} +42 -42
  118. package/dist/_chunks/otp-input-C9R9sC74.js.map +1 -0
  119. package/dist/_chunks/{pagination.agent-B5KLDCMN.js → pagination.agent-D75FB6XP.js} +106 -106
  120. package/dist/_chunks/pagination.agent-D75FB6XP.js.map +1 -0
  121. package/dist/_chunks/{password-input-DnjNh-hQ.js → password-input-C6PvKyQV.js} +59 -59
  122. package/dist/_chunks/password-input-C6PvKyQV.js.map +1 -0
  123. package/dist/_chunks/{patient-shell-D0RaWDMR.js → patient-shell-CGsmI5LJ.js} +9 -9
  124. package/dist/_chunks/{patient-shell-D0RaWDMR.js.map → patient-shell-CGsmI5LJ.js.map} +1 -1
  125. package/dist/_chunks/{payment-form-Cf7U6r5L.js → payment-form-l3j-gA-t.js} +108 -108
  126. package/dist/_chunks/payment-form-l3j-gA-t.js.map +1 -0
  127. package/dist/_chunks/{pdf-viewer.agent-DXjgDItg.js → pdf-viewer.agent-DuGfSoep.js} +234 -233
  128. package/dist/_chunks/pdf-viewer.agent-DuGfSoep.js.map +1 -0
  129. package/dist/_chunks/{phone-input-C2dtIuxW.js → phone-input-ZWa_FU4R.js} +112 -112
  130. package/dist/_chunks/phone-input-ZWa_FU4R.js.map +1 -0
  131. package/dist/_chunks/{popover-D1woU9mP.js → popover-CMr1pTPO.js} +58 -58
  132. package/dist/_chunks/popover-CMr1pTPO.js.map +1 -0
  133. package/dist/_chunks/{privacy-lock-C1X42Sit.js → privacy-lock-Br5k7Rul.js} +36 -36
  134. package/dist/_chunks/privacy-lock-Br5k7Rul.js.map +1 -0
  135. package/dist/_chunks/{progress-DL3-izuO.js → progress-D4ELgHG3.js} +43 -43
  136. package/dist/_chunks/progress-D4ELgHG3.js.map +1 -0
  137. package/dist/_chunks/radio-B_gvGU29.js +106 -0
  138. package/dist/_chunks/radio-B_gvGU29.js.map +1 -0
  139. package/dist/_chunks/radio-group-Bn8Wt0yc.js +88 -0
  140. package/dist/_chunks/radio-group-Bn8Wt0yc.js.map +1 -0
  141. package/dist/_chunks/{react-day-picker-DQKDiJ37.js → react-day-picker-d0MHsyCj.js} +174 -174
  142. package/dist/_chunks/{react-day-picker-DQKDiJ37.js.map → react-day-picker-d0MHsyCj.js.map} +1 -1
  143. package/dist/_chunks/{resizable.agent-DVk_jJur.js → resizable.agent-DBpPGNdy.js} +122 -122
  144. package/dist/_chunks/resizable.agent-DBpPGNdy.js.map +1 -0
  145. package/dist/_chunks/{rich-text-editor.agent-BOjF4Xao.js → rich-text-editor.agent-C1_E7_7t.js} +225 -225
  146. package/dist/_chunks/rich-text-editor.agent-C1_E7_7t.js.map +1 -0
  147. package/dist/_chunks/scroll-area-Ba99pJ_R.js +144 -0
  148. package/dist/_chunks/scroll-area-Ba99pJ_R.js.map +1 -0
  149. package/dist/_chunks/{search-bar-DgSOAajC.js → search-bar-VoTqJhRp.js} +131 -131
  150. package/dist/_chunks/search-bar-VoTqJhRp.js.map +1 -0
  151. package/dist/_chunks/search-input-D6rarD0_.js +197 -0
  152. package/dist/_chunks/search-input-D6rarD0_.js.map +1 -0
  153. package/dist/_chunks/select-DbxWF3O_.js +320 -0
  154. package/dist/_chunks/select-DbxWF3O_.js.map +1 -0
  155. package/dist/_chunks/{separator-DExI4amU.js → separator-BRQHi8s0.js} +17 -17
  156. package/dist/_chunks/separator-BRQHi8s0.js.map +1 -0
  157. package/dist/_chunks/sheet-DyWqluiS.js +188 -0
  158. package/dist/_chunks/sheet-DyWqluiS.js.map +1 -0
  159. package/dist/_chunks/sidebar-B52iGGNV.js +1076 -0
  160. package/dist/_chunks/sidebar-B52iGGNV.js.map +1 -0
  161. package/dist/_chunks/sign-in-with-alfadocs-button-BU7MP5Hg.js +44 -0
  162. package/dist/_chunks/sign-in-with-alfadocs-button-BU7MP5Hg.js.map +1 -0
  163. package/dist/_chunks/{signature-capture.agent-L_1_-zVR.js → signature-capture.agent-4htVctJ2.js} +163 -163
  164. package/dist/_chunks/signature-capture.agent-4htVctJ2.js.map +1 -0
  165. package/dist/_chunks/skeleton-ClO1v5GE.js +95 -0
  166. package/dist/_chunks/skeleton-ClO1v5GE.js.map +1 -0
  167. package/dist/_chunks/skip-link-CASJkBOe.js +68 -0
  168. package/dist/_chunks/skip-link-CASJkBOe.js.map +1 -0
  169. package/dist/_chunks/slider-n8JWpJvT.js +273 -0
  170. package/dist/_chunks/slider-n8JWpJvT.js.map +1 -0
  171. package/dist/_chunks/slot-grid-BRAkqChA.js +491 -0
  172. package/dist/_chunks/slot-grid-BRAkqChA.js.map +1 -0
  173. package/dist/_chunks/{sparkline.agent-BDTXzTy9.js → sparkline.agent-BLY1IMyW.js} +45 -45
  174. package/dist/_chunks/sparkline.agent-BLY1IMyW.js.map +1 -0
  175. package/dist/_chunks/{spinner-77xUGpuX.js → spinner-CoAOGcDa.js} +40 -40
  176. package/dist/_chunks/spinner-CoAOGcDa.js.map +1 -0
  177. package/dist/_chunks/stat-D76MNHzK.js +208 -0
  178. package/dist/_chunks/stat-D76MNHzK.js.map +1 -0
  179. package/dist/_chunks/{stepper-accordion-BkvqQWPI.js → stepper-accordion-DHQ80A4v.js} +33 -33
  180. package/dist/_chunks/stepper-accordion-DHQ80A4v.js.map +1 -0
  181. package/dist/_chunks/{stepper-calendar-BQMjrwzo.js → stepper-calendar-vtWwa2bY.js} +159 -159
  182. package/dist/_chunks/stepper-calendar-vtWwa2bY.js.map +1 -0
  183. package/dist/_chunks/stepper-progress-DMZ5w5VR.js +128 -0
  184. package/dist/_chunks/stepper-progress-DMZ5w5VR.js.map +1 -0
  185. package/dist/_chunks/streaming-text-D0cW8pwq.js +104 -0
  186. package/dist/_chunks/streaming-text-D0cW8pwq.js.map +1 -0
  187. package/dist/_chunks/suggestion-chip-BgNFpPEE.js +157 -0
  188. package/dist/_chunks/suggestion-chip-BgNFpPEE.js.map +1 -0
  189. package/dist/_chunks/switch-DtLPKO0p.js +137 -0
  190. package/dist/_chunks/switch-DtLPKO0p.js.map +1 -0
  191. package/dist/_chunks/{tabs.agent-FsGU3sZL.js → tabs.agent-BDUlyPbJ.js} +101 -101
  192. package/dist/_chunks/tabs.agent-BDUlyPbJ.js.map +1 -0
  193. package/dist/_chunks/tag-CfSZZN2f.js +194 -0
  194. package/dist/_chunks/tag-CfSZZN2f.js.map +1 -0
  195. package/dist/_chunks/task-card-B5xfiFg5.js +112 -0
  196. package/dist/_chunks/task-card-B5xfiFg5.js.map +1 -0
  197. package/dist/_chunks/task-tray-BnpiodZ4.js +99 -0
  198. package/dist/_chunks/task-tray-BnpiodZ4.js.map +1 -0
  199. package/dist/_chunks/text-area-BqbruBWx.js +152 -0
  200. package/dist/_chunks/text-area-BqbruBWx.js.map +1 -0
  201. package/dist/_chunks/text-input-lh6kRXZS.js +187 -0
  202. package/dist/_chunks/text-input-lh6kRXZS.js.map +1 -0
  203. package/dist/_chunks/theme-toggle-BHKMiORD.js +326 -0
  204. package/dist/_chunks/theme-toggle-BHKMiORD.js.map +1 -0
  205. package/dist/_chunks/{time-picker-BapZq0OY.js → time-picker-DbpAmPux.js} +102 -102
  206. package/dist/_chunks/time-picker-DbpAmPux.js.map +1 -0
  207. package/dist/_chunks/timeline-vjsUeuq1.js +219 -0
  208. package/dist/_chunks/timeline-vjsUeuq1.js.map +1 -0
  209. package/dist/_chunks/{timestamp-BLM-jjdw.js → timestamp-DmSt92P1.js} +30 -30
  210. package/dist/_chunks/timestamp-DmSt92P1.js.map +1 -0
  211. package/dist/_chunks/{toast-DSCqnDRl.js → toast-DllSITLf.js} +151 -151
  212. package/dist/_chunks/{toast-DSCqnDRl.js.map → toast-DllSITLf.js.map} +1 -1
  213. package/dist/_chunks/{tooltip-DF6WjD1r.js → tooltip-Dp3u8jGz.js} +30 -30
  214. package/dist/_chunks/tooltip-Dp3u8jGz.js.map +1 -0
  215. package/dist/_chunks/{tooth-scheme.agent-CFKl3iQr.js → tooth-scheme.agent-BRqxWa1D.js} +75 -75
  216. package/dist/_chunks/tooth-scheme.agent-BRqxWa1D.js.map +1 -0
  217. package/dist/_chunks/transcript-panel-Bg1BTMSr.js +265 -0
  218. package/dist/_chunks/transcript-panel-Bg1BTMSr.js.map +1 -0
  219. package/dist/_chunks/typing-indicator-BRg22Rqr.js +81 -0
  220. package/dist/_chunks/typing-indicator-BRg22Rqr.js.map +1 -0
  221. package/dist/_chunks/use-locale-BuXR_Zl9.js +32 -0
  222. package/dist/_chunks/use-locale-BuXR_Zl9.js.map +1 -0
  223. package/dist/_chunks/visually-hidden-Y3jcdCv-.js +21 -0
  224. package/dist/_chunks/visually-hidden-Y3jcdCv-.js.map +1 -0
  225. package/dist/_chunks/{warning-stack-Cyf_81SL.js → warning-stack-B9N9yWet.js} +38 -38
  226. package/dist/_chunks/warning-stack-B9N9yWet.js.map +1 -0
  227. package/dist/_chunks/{workflow-map-Uf-hHAO3.js → workflow-map-gBhL_Wrs.js} +385 -385
  228. package/dist/_chunks/workflow-map-gBhL_Wrs.js.map +1 -0
  229. package/dist/agent-catalog.json +1 -1
  230. package/dist/components/_shared/index.d.ts +2 -0
  231. package/dist/components/_shared/index.d.ts.map +1 -1
  232. package/dist/components/_shared/use-focus-trap.d.ts +32 -0
  233. package/dist/components/_shared/use-focus-trap.d.ts.map +1 -0
  234. package/dist/components/_shared/use-neutralize-hidden-focus.d.ts +3 -0
  235. package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +1 -0
  236. package/dist/components/accordion/index.js +1 -1
  237. package/dist/components/agenda-card/index.js +1 -1
  238. package/dist/components/agenda-tray/index.js +1 -1
  239. package/dist/components/ai-prompt-input/index.js +1 -1
  240. package/dist/components/alert/index.js +1 -1
  241. package/dist/components/app-frame/index.js +1 -1
  242. package/dist/components/aspect-ratio/index.js +1 -1
  243. package/dist/components/audio-recorder/index.js +1 -1
  244. package/dist/components/audio-visualiser/index.js +1 -1
  245. package/dist/components/autocomplete/index.js +1 -1
  246. package/dist/components/avatar/index.js +1 -1
  247. package/dist/components/badge/index.js +1 -1
  248. package/dist/components/breadcrumb/index.js +1 -1
  249. package/dist/components/button/index.js +2 -2
  250. package/dist/components/button-group/index.js +1 -1
  251. package/dist/components/calendar/calendar.d.ts.map +1 -1
  252. package/dist/components/calendar/index.js +1 -1
  253. package/dist/components/card/index.js +1 -1
  254. package/dist/components/chart/chart.d.ts.map +1 -1
  255. package/dist/components/chart/index.js +1 -1
  256. package/dist/components/chat-container/index.js +1 -1
  257. package/dist/components/chat-input/index.js +1 -1
  258. package/dist/components/chat-message/index.js +1 -1
  259. package/dist/components/checkbox/index.js +1 -1
  260. package/dist/components/checkbox-group/index.js +1 -1
  261. package/dist/components/collapsible/index.js +1 -1
  262. package/dist/components/color-picker/index.js +1 -1
  263. package/dist/components/combobox/index.js +1 -1
  264. package/dist/components/command-palette/index.js +1 -1
  265. package/dist/components/data-table/index.js +1 -1
  266. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  267. package/dist/components/date-picker/index.js +1 -1
  268. package/dist/components/date-range-picker/index.js +1 -1
  269. package/dist/components/date-time-picker/index.js +1 -1
  270. package/dist/components/description-list/index.js +1 -1
  271. package/dist/components/dialog/index.js +1 -1
  272. package/dist/components/dropdown-menu/index.js +1 -1
  273. package/dist/components/empty-state/index.js +1 -1
  274. package/dist/components/file-upload/index.js +1 -1
  275. package/dist/components/flag/index.js +1 -1
  276. package/dist/components/floating-action-button/index.js +1 -1
  277. package/dist/components/form-field/index.js +1 -1
  278. package/dist/components/freemium-paywall/index.js +1 -1
  279. package/dist/components/header/index.js +1 -1
  280. package/dist/components/icon-button/index.d.ts +3 -0
  281. package/dist/components/icon-button/index.d.ts.map +1 -0
  282. package/dist/components/icon-button/index.js +5 -0
  283. package/dist/components/icon-button/index.js.map +1 -0
  284. package/dist/components/icon-button-group/index.js +1 -1
  285. package/dist/components/index.d.ts +8 -2
  286. package/dist/components/index.d.ts.map +1 -1
  287. package/dist/components/kbd/index.js +1 -1
  288. package/dist/components/key-value-pair/index.js +1 -1
  289. package/dist/components/list/index.js +1 -1
  290. package/dist/components/live-region/index.d.ts +3 -0
  291. package/dist/components/live-region/index.d.ts.map +1 -0
  292. package/dist/components/live-region/index.js +5 -0
  293. package/dist/components/live-region/index.js.map +1 -0
  294. package/dist/components/live-region/live-region.d.ts +49 -0
  295. package/dist/components/live-region/live-region.d.ts.map +1 -0
  296. package/dist/components/logo/index.js +1 -1
  297. package/dist/components/matrix-rain/index.js +1 -1
  298. package/dist/components/message-card/index.js +1 -1
  299. package/dist/components/message-tray/index.js +1 -1
  300. package/dist/components/multi-select/index.js +1 -1
  301. package/dist/components/navigation-menu/index.d.ts +4 -2
  302. package/dist/components/navigation-menu/index.d.ts.map +1 -1
  303. package/dist/components/navigation-menu/index.js +3 -2
  304. package/dist/components/navigation-menu/index.js.map +1 -1
  305. package/dist/components/navigation-menu/navigation-menu.d.ts +2 -6
  306. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
  307. package/dist/components/notification-card/index.js +1 -1
  308. package/dist/components/notification-tray/index.js +1 -1
  309. package/dist/components/number-input/index.js +1 -1
  310. package/dist/components/otp-input/index.js +1 -1
  311. package/dist/components/pagination/index.js +1 -1
  312. package/dist/components/password-input/index.js +1 -1
  313. package/dist/components/payment-form/index.js +1 -1
  314. package/dist/components/pdf-viewer/index.js +1 -1
  315. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  316. package/dist/components/phone-input/index.js +1 -1
  317. package/dist/components/popover/index.js +1 -1
  318. package/dist/components/privacy-lock/index.js +1 -1
  319. package/dist/components/progress/index.js +1 -1
  320. package/dist/components/radio/index.d.ts +3 -0
  321. package/dist/components/radio/index.d.ts.map +1 -0
  322. package/dist/components/radio/index.js +5 -0
  323. package/dist/components/radio/index.js.map +1 -0
  324. package/dist/components/radio-group/index.js +4 -3
  325. package/dist/components/radio-group/index.js.map +1 -1
  326. package/dist/components/resizable/index.js +1 -1
  327. package/dist/components/rich-text-editor/index.js +1 -1
  328. package/dist/components/scroll-area/index.js +1 -1
  329. package/dist/components/search-bar/index.js +1 -1
  330. package/dist/components/search-input/index.js +1 -1
  331. package/dist/components/select/index.js +1 -1
  332. package/dist/components/separator/index.js +1 -1
  333. package/dist/components/sheet/index.js +1 -1
  334. package/dist/components/sidebar/index.js +1 -1
  335. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  336. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts +20 -0
  337. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +1 -1
  338. package/dist/components/signature-capture/index.js +1 -1
  339. package/dist/components/skeleton/index.js +1 -1
  340. package/dist/components/skip-link/index.d.ts +2 -0
  341. package/dist/components/skip-link/index.d.ts.map +1 -0
  342. package/dist/components/skip-link/index.js +5 -0
  343. package/dist/components/skip-link/index.js.map +1 -0
  344. package/dist/components/skip-link/skip-link.d.ts +34 -0
  345. package/dist/components/skip-link/skip-link.d.ts.map +1 -0
  346. package/dist/components/slider/index.js +1 -1
  347. package/dist/components/slot-grid/index.js +1 -1
  348. package/dist/components/sparkline/index.js +1 -1
  349. package/dist/components/sparkline/sparkline.d.ts.map +1 -1
  350. package/dist/components/spinner/index.js +1 -1
  351. package/dist/components/stat/index.js +1 -1
  352. package/dist/components/stepper-accordion/index.js +1 -1
  353. package/dist/components/stepper-calendar/index.js +1 -1
  354. package/dist/components/stepper-progress/index.js +1 -1
  355. package/dist/components/streaming-text/index.js +1 -1
  356. package/dist/components/suggestion-chip/index.js +1 -1
  357. package/dist/components/switch/index.js +1 -1
  358. package/dist/components/tabs/index.js +1 -1
  359. package/dist/components/tag/index.js +1 -1
  360. package/dist/components/task-card/index.js +1 -1
  361. package/dist/components/task-tray/index.js +1 -1
  362. package/dist/components/text-area/index.js +1 -1
  363. package/dist/components/text-input/index.js +1 -1
  364. package/dist/components/theme-toggle/index.d.ts +3 -0
  365. package/dist/components/theme-toggle/index.d.ts.map +1 -0
  366. package/dist/components/theme-toggle/index.js +5 -0
  367. package/dist/components/theme-toggle/index.js.map +1 -0
  368. package/dist/components/theme-toggle/theme-toggle.d.ts +34 -0
  369. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -0
  370. package/dist/components/time-picker/index.js +1 -1
  371. package/dist/components/timeline/index.js +1 -1
  372. package/dist/components/timestamp/index.js +1 -1
  373. package/dist/components/toast/index.js +1 -1
  374. package/dist/components/tooltip/index.js +1 -1
  375. package/dist/components/tooth-scheme/index.js +1 -1
  376. package/dist/components/transcript-panel/index.js +1 -1
  377. package/dist/components/typing-indicator/index.js +1 -1
  378. package/dist/components/visually-hidden/index.d.ts +2 -0
  379. package/dist/components/visually-hidden/index.d.ts.map +1 -0
  380. package/dist/components/visually-hidden/index.js +5 -0
  381. package/dist/components/visually-hidden/index.js.map +1 -0
  382. package/dist/components/visually-hidden/visually-hidden.d.ts +11 -0
  383. package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -0
  384. package/dist/components/warning-stack/index.js +1 -1
  385. package/dist/components/workflow/index.js +1 -1
  386. package/dist/hooks/index.d.ts +3 -0
  387. package/dist/hooks/index.d.ts.map +1 -1
  388. package/dist/hooks/index.js +10 -7
  389. package/dist/hooks/index.js.map +1 -1
  390. package/dist/hooks/use-locale.d.ts +27 -0
  391. package/dist/hooks/use-locale.d.ts.map +1 -0
  392. package/dist/hooks/use-media-query.d.ts +17 -0
  393. package/dist/hooks/use-media-query.d.ts.map +1 -0
  394. package/dist/i18n/config.js +59 -2
  395. package/dist/i18n/config.js.map +1 -1
  396. package/dist/i18n/resources.d.ts +57 -0
  397. package/dist/i18n/resources.d.ts.map +1 -1
  398. package/dist/index.js +442 -431
  399. package/dist/index.js.map +1 -1
  400. package/dist/locales/de.json +19 -0
  401. package/dist/locales/en.json +19 -0
  402. package/dist/locales/it.json +19 -0
  403. package/dist/patterns/leo-assistant/index.js +1 -1
  404. package/dist/patterns/patient-shell/index.js +1 -1
  405. package/dist/tokens.css +2 -2
  406. package/package.json +4 -2
  407. package/dist/_chunks/accordion-Dgcd38U_.js +0 -117
  408. package/dist/_chunks/accordion-Dgcd38U_.js.map +0 -1
  409. package/dist/_chunks/agenda-card-B2gq-gTq.js +0 -130
  410. package/dist/_chunks/agenda-card-B2gq-gTq.js.map +0 -1
  411. package/dist/_chunks/agenda-tray-twa8g_87.js +0 -119
  412. package/dist/_chunks/agenda-tray-twa8g_87.js.map +0 -1
  413. package/dist/_chunks/ai-prompt-input-C6IY_Eds.js +0 -379
  414. package/dist/_chunks/ai-prompt-input-C6IY_Eds.js.map +0 -1
  415. package/dist/_chunks/alert-C5ud6CfE.js.map +0 -1
  416. package/dist/_chunks/apexcharts-theme-cpBYmCcr.js +0 -17
  417. package/dist/_chunks/apexcharts-theme-cpBYmCcr.js.map +0 -1
  418. package/dist/_chunks/app-frame-CmIUp9BD.js.map +0 -1
  419. package/dist/_chunks/aspect-ratio-Bo3cZXmR.js +0 -56
  420. package/dist/_chunks/aspect-ratio-Bo3cZXmR.js.map +0 -1
  421. package/dist/_chunks/audio-recorder-GkGNtW2X.js.map +0 -1
  422. package/dist/_chunks/audio-visualiser-CIO3yy23.js.map +0 -1
  423. package/dist/_chunks/autocomplete.agent-kb0nmr6F.js.map +0 -1
  424. package/dist/_chunks/avatar-BsV7vRA6.js.map +0 -1
  425. package/dist/_chunks/badge--CmSr7ok.js +0 -104
  426. package/dist/_chunks/badge--CmSr7ok.js.map +0 -1
  427. package/dist/_chunks/balance-cell-renderer-BQwN51rT.js.map +0 -1
  428. package/dist/_chunks/breadcrumb-DnO6eHSS.js.map +0 -1
  429. package/dist/_chunks/button-CXL8bA8G.js +0 -119
  430. package/dist/_chunks/button-CXL8bA8G.js.map +0 -1
  431. package/dist/_chunks/button-group-CI7LFxt3.js.map +0 -1
  432. package/dist/_chunks/calendar-BIXVzhkL.js.map +0 -1
  433. package/dist/_chunks/card-n97MNPP2.js +0 -158
  434. package/dist/_chunks/card-n97MNPP2.js.map +0 -1
  435. package/dist/_chunks/chart.agent-DkmVXNsI.js.map +0 -1
  436. package/dist/_chunks/chat-container-SR3UWxbL.js +0 -174
  437. package/dist/_chunks/chat-container-SR3UWxbL.js.map +0 -1
  438. package/dist/_chunks/chat-input-aphxDjZL.js.map +0 -1
  439. package/dist/_chunks/chat-message-CdJSD18D.js.map +0 -1
  440. package/dist/_chunks/checkbox-CfiZ0FZc.js +0 -116
  441. package/dist/_chunks/checkbox-CfiZ0FZc.js.map +0 -1
  442. package/dist/_chunks/checkbox-group-D1aqVI0-.js.map +0 -1
  443. package/dist/_chunks/collapsible-jBFm7Ah8.js.map +0 -1
  444. package/dist/_chunks/color-picker-CiotzQJF.js.map +0 -1
  445. package/dist/_chunks/combobox.agent-B6RwDSct.js.map +0 -1
  446. package/dist/_chunks/command-palette.agent-B87_OkmC.js.map +0 -1
  447. package/dist/_chunks/date-time-picker-CX_FMsLG.js.map +0 -1
  448. package/dist/_chunks/description-list-C5UPZgX6.js +0 -187
  449. package/dist/_chunks/description-list-C5UPZgX6.js.map +0 -1
  450. package/dist/_chunks/dialog.agent-B276rAQF.js.map +0 -1
  451. package/dist/_chunks/dropdown-menu-CJKvK7VG.js +0 -210
  452. package/dist/_chunks/dropdown-menu-CJKvK7VG.js.map +0 -1
  453. package/dist/_chunks/empty-state-DiG7vYBM.js.map +0 -1
  454. package/dist/_chunks/file-upload.agent-BMow5yDY.js.map +0 -1
  455. package/dist/_chunks/floating-action-button-BM9ib-Wf.js +0 -95
  456. package/dist/_chunks/floating-action-button-BM9ib-Wf.js.map +0 -1
  457. package/dist/_chunks/form-field-B4bwrccN.js +0 -121
  458. package/dist/_chunks/form-field-B4bwrccN.js.map +0 -1
  459. package/dist/_chunks/freemium-paywall-DVyNsQHS.js +0 -197
  460. package/dist/_chunks/freemium-paywall-DVyNsQHS.js.map +0 -1
  461. package/dist/_chunks/header-BpKaSL_v.js.map +0 -1
  462. package/dist/_chunks/icon-button-C1vpylg3.js +0 -45
  463. package/dist/_chunks/icon-button-C1vpylg3.js.map +0 -1
  464. package/dist/_chunks/icon-button-group-tERESY-n.js.map +0 -1
  465. package/dist/_chunks/kbd-0iPlQjgC.js.map +0 -1
  466. package/dist/_chunks/key-value-pair--Je59tAF.js.map +0 -1
  467. package/dist/_chunks/leo-sidebar-9A9AWBxX.js +0 -755
  468. package/dist/_chunks/leo-sidebar-9A9AWBxX.js.map +0 -1
  469. package/dist/_chunks/list-n8vI8Yvn.js.map +0 -1
  470. package/dist/_chunks/logo-UNWYb9p7.js.map +0 -1
  471. package/dist/_chunks/matrix-rain-Q7xTEpKu.js.map +0 -1
  472. package/dist/_chunks/message-card-g5VS5Q80.js +0 -275
  473. package/dist/_chunks/message-card-g5VS5Q80.js.map +0 -1
  474. package/dist/_chunks/message-tray-CAk-iibU.js +0 -302
  475. package/dist/_chunks/message-tray-CAk-iibU.js.map +0 -1
  476. package/dist/_chunks/multi-select.agent-Cf4pU636.js.map +0 -1
  477. package/dist/_chunks/navigation-menu-DBDsAmXc.js.map +0 -1
  478. package/dist/_chunks/notification-card-CQxJporb.js +0 -255
  479. package/dist/_chunks/notification-card-CQxJporb.js.map +0 -1
  480. package/dist/_chunks/notification-tray-CNWPuPZp.js.map +0 -1
  481. package/dist/_chunks/number-input-B1Th0DdC.js.map +0 -1
  482. package/dist/_chunks/otp-input-CmoBuZ4K.js.map +0 -1
  483. package/dist/_chunks/pagination.agent-B5KLDCMN.js.map +0 -1
  484. package/dist/_chunks/password-input-DnjNh-hQ.js.map +0 -1
  485. package/dist/_chunks/payment-form-Cf7U6r5L.js.map +0 -1
  486. package/dist/_chunks/pdf-viewer.agent-DXjgDItg.js.map +0 -1
  487. package/dist/_chunks/phone-input-C2dtIuxW.js.map +0 -1
  488. package/dist/_chunks/popover-D1woU9mP.js.map +0 -1
  489. package/dist/_chunks/privacy-lock-C1X42Sit.js.map +0 -1
  490. package/dist/_chunks/progress-DL3-izuO.js.map +0 -1
  491. package/dist/_chunks/radio-group-CXN9qNPe.js +0 -185
  492. package/dist/_chunks/radio-group-CXN9qNPe.js.map +0 -1
  493. package/dist/_chunks/resizable.agent-DVk_jJur.js.map +0 -1
  494. package/dist/_chunks/rich-text-editor.agent-BOjF4Xao.js.map +0 -1
  495. package/dist/_chunks/scroll-area-DXn-YWHY.js +0 -144
  496. package/dist/_chunks/scroll-area-DXn-YWHY.js.map +0 -1
  497. package/dist/_chunks/search-bar-DgSOAajC.js.map +0 -1
  498. package/dist/_chunks/search-input-D4tC_Prn.js +0 -197
  499. package/dist/_chunks/search-input-D4tC_Prn.js.map +0 -1
  500. package/dist/_chunks/select-B4m4upMg.js +0 -320
  501. package/dist/_chunks/select-B4m4upMg.js.map +0 -1
  502. package/dist/_chunks/separator-DExI4amU.js.map +0 -1
  503. package/dist/_chunks/sheet-D6XOx0fK.js +0 -188
  504. package/dist/_chunks/sheet-D6XOx0fK.js.map +0 -1
  505. package/dist/_chunks/sidebar-r645O-k9.js +0 -1076
  506. package/dist/_chunks/sidebar-r645O-k9.js.map +0 -1
  507. package/dist/_chunks/sign-in-with-alfadocs-button-y3gy-W-D.js +0 -38
  508. package/dist/_chunks/sign-in-with-alfadocs-button-y3gy-W-D.js.map +0 -1
  509. package/dist/_chunks/signature-capture.agent-L_1_-zVR.js.map +0 -1
  510. package/dist/_chunks/skeleton-vbTWUntB.js +0 -95
  511. package/dist/_chunks/skeleton-vbTWUntB.js.map +0 -1
  512. package/dist/_chunks/slider-B3DBwmcm.js +0 -273
  513. package/dist/_chunks/slider-B3DBwmcm.js.map +0 -1
  514. package/dist/_chunks/slot-grid-DL_Tuj0p.js +0 -491
  515. package/dist/_chunks/slot-grid-DL_Tuj0p.js.map +0 -1
  516. package/dist/_chunks/sparkline.agent-BDTXzTy9.js.map +0 -1
  517. package/dist/_chunks/spinner-77xUGpuX.js.map +0 -1
  518. package/dist/_chunks/stat-CrumvZWf.js +0 -208
  519. package/dist/_chunks/stat-CrumvZWf.js.map +0 -1
  520. package/dist/_chunks/stepper-accordion-BkvqQWPI.js.map +0 -1
  521. package/dist/_chunks/stepper-calendar-BQMjrwzo.js.map +0 -1
  522. package/dist/_chunks/stepper-progress-Bwfl-0rV.js +0 -128
  523. package/dist/_chunks/stepper-progress-Bwfl-0rV.js.map +0 -1
  524. package/dist/_chunks/streaming-text-Cu9YQe_1.js +0 -104
  525. package/dist/_chunks/streaming-text-Cu9YQe_1.js.map +0 -1
  526. package/dist/_chunks/suggestion-chip-XkxDJiPW.js +0 -157
  527. package/dist/_chunks/suggestion-chip-XkxDJiPW.js.map +0 -1
  528. package/dist/_chunks/switch-DyC0ThNT.js +0 -137
  529. package/dist/_chunks/switch-DyC0ThNT.js.map +0 -1
  530. package/dist/_chunks/tabs.agent-FsGU3sZL.js.map +0 -1
  531. package/dist/_chunks/tag-BucAvfTX.js +0 -194
  532. package/dist/_chunks/tag-BucAvfTX.js.map +0 -1
  533. package/dist/_chunks/task-card-uxjApfcg.js +0 -112
  534. package/dist/_chunks/task-card-uxjApfcg.js.map +0 -1
  535. package/dist/_chunks/task-tray-BdfM3p8N.js +0 -99
  536. package/dist/_chunks/task-tray-BdfM3p8N.js.map +0 -1
  537. package/dist/_chunks/text-area-CKxZ7cS3.js +0 -152
  538. package/dist/_chunks/text-area-CKxZ7cS3.js.map +0 -1
  539. package/dist/_chunks/text-input-D16CcMlL.js +0 -187
  540. package/dist/_chunks/text-input-D16CcMlL.js.map +0 -1
  541. package/dist/_chunks/time-picker-BapZq0OY.js.map +0 -1
  542. package/dist/_chunks/timeline-D3VOf4RT.js +0 -219
  543. package/dist/_chunks/timeline-D3VOf4RT.js.map +0 -1
  544. package/dist/_chunks/timestamp-BLM-jjdw.js.map +0 -1
  545. package/dist/_chunks/tooltip-DF6WjD1r.js.map +0 -1
  546. package/dist/_chunks/tooth-scheme.agent-CFKl3iQr.js.map +0 -1
  547. package/dist/_chunks/transcript-panel-aI14fHYA.js +0 -265
  548. package/dist/_chunks/transcript-panel-aI14fHYA.js.map +0 -1
  549. package/dist/_chunks/typing-indicator-BTVDEpnd.js +0 -81
  550. package/dist/_chunks/typing-indicator-BTVDEpnd.js.map +0 -1
  551. package/dist/_chunks/warning-stack-Cyf_81SL.js.map +0 -1
  552. package/dist/_chunks/workflow-map-Uf-hHAO3.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-area-BqbruBWx.js","sources":["../../src/components/text-area/text-area.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type ChangeEvent,\n type CompositionEvent,\n type TextareaHTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useFormField } from '../form-field/form-field-context';\n\nconst textAreaVariants = cva(\n [\n 'ds:block ds:w-full ds:border ds:rounded-[var(--radius-sm)] ds:bg-background ds:text-foreground',\n 'ds:leading-[var(--line-height-base)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]',\n 'ds:focus:outline-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:read-only:bg-muted ds:read-only:cursor-default',\n 'ds:transition-[height,color,background-color,border-color] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:placeholder:text-muted-foreground',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:min-h-8 ds:text-[var(--font-size-sm)]',\n md: 'ds:min-h-[var(--min-target-size)] ds:text-[var(--font-size-base)]',\n lg: 'ds:min-h-[calc(var(--min-target-size)*1.5)] ds:text-[var(--font-size-lg)]',\n },\n tone: {\n default: 'ds:border-border',\n error: 'ds:border-destructive',\n },\n resize: {\n auto: 'ds:resize-none',\n manual: 'ds:resize-y',\n },\n },\n defaultVariants: { size: 'md', tone: 'default', resize: 'manual' },\n },\n);\n\nconst counterToneClass = (ratio: number): string => {\n if (ratio >= 1) return 'text-destructive';\n if (ratio >= 0.9) return 'text-warning';\n return 'text-muted-foreground';\n};\n\ntype NativeTextareaProps = Omit<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n 'children' | 'size'\n>;\n\nexport interface TextAreaProps\n extends NativeTextareaProps,\n Pick<VariantProps<typeof textAreaVariants>, 'size' | 'tone'> {\n size?: 'sm' | 'md' | 'lg';\n tone?: 'default' | 'error';\n autoResize?: boolean;\n minRows?: number;\n maxRows?: number;\n showCounter?: boolean;\n}\n\nconst codePointLength = (value: string): number => [...value].length;\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n size = 'md',\n tone = 'default',\n autoResize = false,\n minRows = 2,\n maxRows,\n showCounter,\n className,\n id,\n disabled,\n value,\n defaultValue,\n maxLength,\n rows,\n onChange,\n onCompositionStart,\n onCompositionEnd,\n onInput,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const ctx = useFormField();\n const textAreaId = id ?? ctx.id;\n const effectiveDisabled = ctx.disabled || disabled;\n const effectiveTone: 'default' | 'error' = ctx.invalid ? 'error' : tone;\n\n const innerRef = useRef<HTMLTextAreaElement | null>(null);\n const setRefs = useCallback(\n (node: HTMLTextAreaElement | null) => {\n innerRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [ref],\n );\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n String(defaultValue ?? ''),\n );\n const currentValue = isControlled ? String(value) : internalValue;\n\n const composingRef = useRef(false);\n\n const resizeTextArea = useCallback(() => {\n const el = innerRef.current;\n if (!el || !autoResize) return;\n\n const styles = window.getComputedStyle(el);\n const lineHeight = parseFloat(styles.lineHeight);\n const paddingTop = parseFloat(styles.paddingTop);\n const paddingBottom = parseFloat(styles.paddingBottom);\n const borderTop = parseFloat(styles.borderTopWidth);\n const borderBottom = parseFloat(styles.borderBottomWidth);\n const verticalChrome =\n paddingTop + paddingBottom + borderTop + borderBottom;\n\n const minH =\n (Number.isFinite(lineHeight) ? lineHeight : 24) * minRows +\n verticalChrome;\n const maxH =\n typeof maxRows === 'number'\n ? (Number.isFinite(lineHeight) ? lineHeight : 24) * maxRows +\n verticalChrome\n : Number.POSITIVE_INFINITY;\n\n // EXCEPTION to constraint #4 (no inline styles): height is computed from\n // runtime scrollHeight and cannot be expressed as a static Tailwind class.\n el.style.height = 'auto';\n const next = Math.max(minH, Math.min(el.scrollHeight, maxH));\n el.style.height = `${next}px`;\n }, [autoResize, minRows, maxRows]);\n\n useLayoutEffect(() => {\n if (!autoResize) return;\n resizeTextArea();\n }, [autoResize, resizeTextArea, currentValue]);\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n if (composingRef.current) return;\n onChange?.(event);\n };\n\n const handleCompositionStart = (\n event: CompositionEvent<HTMLTextAreaElement>,\n ) => {\n composingRef.current = true;\n onCompositionStart?.(event);\n };\n\n const handleCompositionEnd = (\n event: CompositionEvent<HTMLTextAreaElement>,\n ) => {\n composingRef.current = false;\n onCompositionEnd?.(event);\n const target = event.currentTarget;\n if (!isControlled) {\n setInternalValue(target.value);\n }\n // Synthesise a ChangeEvent from the CompositionEvent so consumers receive\n // a single post-IME change. nativeEvent is still the CompositionEvent, so\n // consumers inspecting `nativeEvent.inputType` will not find the usual\n // \"insertCompositionText\" value — documented as a known limitation.\n onChange?.({\n ...event,\n target,\n currentTarget: target,\n } as unknown as ChangeEvent<HTMLTextAreaElement>);\n if (autoResize) resizeTextArea();\n };\n\n const counterEnabled =\n typeof maxLength === 'number' &&\n (showCounter ?? true) &&\n maxLength > 0;\n\n const current = codePointLength(currentValue);\n const remaining = counterEnabled\n ? Math.max(0, (maxLength as number) - current)\n : 0;\n const ratio = counterEnabled ? current / (maxLength as number) : 0;\n\n const [announced, setAnnounced] = useState<string>('');\n useEffect(() => {\n if (!counterEnabled) return;\n const handle = window.setTimeout(() => {\n if (composingRef.current) return;\n setAnnounced(\n t('ui.inputs.textarea.charactersRemaining', {\n count: remaining,\n defaultValue: '{{count}} characters remaining',\n }),\n );\n }, 500);\n return () => window.clearTimeout(handle);\n }, [counterEnabled, remaining, t]);\n\n const counterId = counterEnabled ? `${textAreaId}-counter` : undefined;\n const describedBy =\n [ctx.describedBy || undefined, counterId].filter(Boolean).join(' ') ||\n undefined;\n\n const resizeVariant: 'auto' | 'manual' = autoResize ? 'auto' : 'manual';\n\n return (\n <div className=\"ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <textarea\n ref={setRefs}\n id={textAreaId}\n value={isControlled ? currentValue : undefined}\n defaultValue={!isControlled ? defaultValue : undefined}\n disabled={effectiveDisabled}\n aria-describedby={describedBy}\n aria-invalid={ctx.invalid || undefined}\n aria-required={ctx.required || undefined}\n maxLength={maxLength}\n rows={autoResize ? minRows : rows}\n onChange={handleChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onInput={onInput}\n className={textAreaVariants({\n size,\n tone: effectiveTone,\n resize: resizeVariant,\n className,\n })}\n {...props}\n />\n {counterEnabled ? (\n <div\n id={counterId}\n className=\"ds:flex ds:justify-end type-meta ds:tabular-nums\"\n >\n <span aria-hidden=\"true\" className={counterToneClass(ratio)}>\n {current} / {maxLength}\n </span>\n <span className=\"ds:sr-only\" aria-live=\"polite\">\n {announced}\n </span>\n </div>\n ) : null}\n </div>\n );\n },\n);\n\nTextArea.displayName = 'TextArea';\n"],"names":["textAreaVariants","cva","counterToneClass","ratio","codePointLength","value","TextArea","forwardRef","size","tone","autoResize","minRows","maxRows","showCounter","className","id","disabled","defaultValue","maxLength","rows","onChange","onCompositionStart","onCompositionEnd","onInput","props","ref","t","useTranslation","ctx","useFormField","textAreaId","effectiveDisabled","effectiveTone","innerRef","useRef","setRefs","useCallback","node","isControlled","internalValue","setInternalValue","useState","currentValue","composingRef","resizeTextArea","el","styles","lineHeight","paddingTop","paddingBottom","borderTop","borderBottom","verticalChrome","minH","maxH","next","useLayoutEffect","handleChange","event","handleCompositionStart","handleCompositionEnd","target","counterEnabled","current","remaining","announced","setAnnounced","useEffect","handle","counterId","describedBy","resizeVariant","jsxs","jsx"],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import { jsxs as Y, jsx as i } from "react/jsx-runtime";
2
+ import { forwardRef as Z, useState as E, useRef as z, useCallback as A } from "react";
3
+ import { c as I } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as C } from "react-i18next";
5
+ import { u as ss } from "./form-field-context-94LwgYTQ.js";
6
+ import { I as es, a as h, b as v } from "./input-surface-D5OMCB1W.js";
7
+ import { X as ts } from "./x-CCcI3eJp.js";
8
+ const as = I(
9
+ [
10
+ "ds:relative ds:flex ds:items-center ds:w-full",
11
+ "ds:rounded-[var(--radius-sm)]",
12
+ "ds:focus-within:outline-[length:var(--focus-ring-width)] ds:focus-within:outline-solid",
13
+ "ds:focus-within:outline-ring ds:focus-within:outline-offset-[length:var(--focus-ring-offset)]",
14
+ "ds:forced-colors:focus-within:outline-[CanvasText]",
15
+ "ds:has-[:disabled]:cursor-not-allowed"
16
+ ].join(" ")
17
+ ), rs = I(
18
+ [
19
+ "ds:w-full ds:rounded-[var(--radius-sm)] ds:border ds:bg-background ds:text-foreground",
20
+ "ds:placeholder:text-muted-foreground",
21
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
22
+ "ds:focus:outline-none ds:focus-visible:outline-none",
23
+ "ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
24
+ "ds:read-only:bg-muted ds:read-only:cursor-default"
25
+ ].join(" "),
26
+ {
27
+ variants: {
28
+ size: {
29
+ sm: `${h.sm} ${v.sm}`,
30
+ md: `${h.md} ${v.md}`,
31
+ lg: `${h.lg} ${v.lg}`
32
+ },
33
+ tone: es,
34
+ hasStart: {
35
+ true: "ds:ps-10",
36
+ false: ""
37
+ },
38
+ hasEnd: {
39
+ true: "ds:pe-10",
40
+ false: ""
41
+ }
42
+ },
43
+ compoundVariants: [
44
+ { size: "sm", hasStart: !1, class: "ds:ps-3" },
45
+ { size: "md", hasStart: !1, class: "ds:ps-3" },
46
+ { size: "lg", hasStart: !1, class: "ds:ps-4" },
47
+ { size: "sm", hasEnd: !1, class: "ds:pe-3" },
48
+ { size: "md", hasEnd: !1, class: "ds:pe-3" },
49
+ { size: "lg", hasEnd: !1, class: "ds:pe-4" }
50
+ ],
51
+ defaultVariants: {
52
+ size: "md",
53
+ tone: "default",
54
+ hasStart: !1,
55
+ hasEnd: !1
56
+ }
57
+ }
58
+ ), N = "absolute inset-y-0 flex items-center pointer-events-none text-muted-foreground", is = Z(
59
+ ({
60
+ size: P = "md",
61
+ tone: R = "default",
62
+ startAdornment: o,
63
+ endAdornment: l,
64
+ clearable: V = !1,
65
+ onClear: u,
66
+ className: _,
67
+ id: $,
68
+ disabled: j,
69
+ value: b,
70
+ defaultValue: O,
71
+ onChange: t,
72
+ onCompositionStart: c,
73
+ onCompositionEnd: f,
74
+ ...x
75
+ }, r) => {
76
+ const { t: U } = C(), a = ss(), k = $ ?? a.id, y = a.disabled || j, F = a.invalid ? "error" : R, d = b !== void 0, [B, p] = E(
77
+ String(O ?? "")
78
+ ), T = d ? String(b) : B, D = T.length > 0, m = z(!1), [q, w] = E(!1), n = z(null), H = A(
79
+ (s) => {
80
+ n.current = s, typeof r == "function" ? r(s) : r && (r.current = s);
81
+ },
82
+ [r]
83
+ ), X = !!o, S = V && D && !y && !x.readOnly, G = !!l || S, W = (s) => {
84
+ d || p(s.target.value), !m.current && (t == null || t(s));
85
+ }, J = (s) => {
86
+ m.current = !0, w(!0), c == null || c(s);
87
+ }, K = (s) => {
88
+ m.current = !1, w(!1), f == null || f(s);
89
+ const e = s.currentTarget;
90
+ d || p(e.value), t == null || t({
91
+ ...s,
92
+ target: e,
93
+ currentTarget: e
94
+ });
95
+ }, L = () => {
96
+ var e;
97
+ d || p("");
98
+ const s = n.current;
99
+ if (s && t) {
100
+ const Q = Object.getPrototypeOf(s), g = (e = Object.getOwnPropertyDescriptor(Q, "value")) == null ? void 0 : e.set;
101
+ g == null || g.call(s, ""), t({
102
+ target: s,
103
+ currentTarget: s,
104
+ bubbles: !0,
105
+ type: "change",
106
+ nativeEvent: new Event("change", { bubbles: !0 }),
107
+ preventDefault: () => {
108
+ },
109
+ stopPropagation: () => {
110
+ },
111
+ isDefaultPrevented: () => !1,
112
+ isPropagationStopped: () => !1,
113
+ persist: () => {
114
+ }
115
+ });
116
+ }
117
+ u == null || u(), s == null || s.focus();
118
+ }, M = (s) => {
119
+ var e;
120
+ s.target !== n.current && (s.target.closest("button") || (e = n.current) == null || e.focus());
121
+ };
122
+ return /* @__PURE__ */ Y(
123
+ "div",
124
+ {
125
+ className: as(),
126
+ onClick: M,
127
+ "data-composing": q ? "true" : void 0,
128
+ children: [
129
+ o ? /* @__PURE__ */ i(
130
+ "span",
131
+ {
132
+ "aria-hidden": "true",
133
+ className: `${N} ds:start-0 ds:ps-3 ds:[&_svg]:size-4`,
134
+ children: o
135
+ }
136
+ ) : null,
137
+ /* @__PURE__ */ i(
138
+ "input",
139
+ {
140
+ ref: H,
141
+ id: k,
142
+ type: "text",
143
+ value: T,
144
+ disabled: y,
145
+ "aria-describedby": a.describedBy || void 0,
146
+ "aria-invalid": a.invalid || void 0,
147
+ "aria-required": a.required || void 0,
148
+ onChange: W,
149
+ onCompositionStart: J,
150
+ onCompositionEnd: K,
151
+ className: rs({
152
+ size: P,
153
+ tone: F,
154
+ hasStart: X,
155
+ hasEnd: G,
156
+ className: _
157
+ }),
158
+ ...x
159
+ }
160
+ ),
161
+ S ? /* @__PURE__ */ i(
162
+ "button",
163
+ {
164
+ type: "button",
165
+ "aria-label": U("ui.inputs.text.clear", "Clear input"),
166
+ onClick: L,
167
+ className: "ds:absolute ds:inset-y-0 ds:end-0 ds:pe-3 ds:flex ds:items-center ds:pointer-events-auto ds:text-muted-foreground ds:hover:text-foreground ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
168
+ children: /* @__PURE__ */ i(ts, { "aria-hidden": "true", className: "ds:size-4" })
169
+ }
170
+ ) : l ? /* @__PURE__ */ i(
171
+ "span",
172
+ {
173
+ "aria-hidden": "true",
174
+ className: `${N} ds:end-0 ds:pe-3 ds:[&_svg]:size-4`,
175
+ children: l
176
+ }
177
+ ) : null
178
+ ]
179
+ }
180
+ );
181
+ }
182
+ );
183
+ is.displayName = "TextInput";
184
+ export {
185
+ is as T
186
+ };
187
+ //# sourceMappingURL=text-input-lh6kRXZS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-input-lh6kRXZS.js","sources":["../../src/components/text-input/text-input.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useRef,\n useState,\n type ChangeEvent,\n type CompositionEvent,\n type InputHTMLAttributes,\n type MouseEvent,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { X } from 'lucide-react';\nimport { useFormField } from '../form-field/form-field-context';\nimport {\n INPUT_SURFACE_HEIGHT,\n INPUT_SURFACE_TEXT,\n INPUT_SURFACE_TONE,\n} from '../_shared/input-surface';\n\nconst wrapperVariants = cva(\n [\n 'ds:relative ds:flex ds:items-center ds:w-full',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:focus-within:outline-[length:var(--focus-ring-width)] ds:focus-within:outline-solid',\n 'ds:focus-within:outline-ring ds:focus-within:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-within:outline-[CanvasText]',\n 'ds:has-[:disabled]:cursor-not-allowed',\n ].join(' '),\n);\n\nconst inputVariants = cva(\n [\n 'ds:w-full ds:rounded-[var(--radius-sm)] ds:border ds:bg-background ds:text-foreground',\n 'ds:placeholder:text-muted-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus:outline-none ds:focus-visible:outline-none',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:read-only:bg-muted ds:read-only:cursor-default',\n ].join(' '),\n {\n variants: {\n size: {\n sm: `${INPUT_SURFACE_HEIGHT.sm} ${INPUT_SURFACE_TEXT.sm}`,\n md: `${INPUT_SURFACE_HEIGHT.md} ${INPUT_SURFACE_TEXT.md}`,\n lg: `${INPUT_SURFACE_HEIGHT.lg} ${INPUT_SURFACE_TEXT.lg}`,\n },\n tone: INPUT_SURFACE_TONE,\n hasStart: {\n true: 'ds:ps-10',\n false: '',\n },\n hasEnd: {\n true: 'ds:pe-10',\n false: '',\n },\n },\n compoundVariants: [\n { size: 'sm', hasStart: false, class: 'ds:ps-3' },\n { size: 'md', hasStart: false, class: 'ds:ps-3' },\n { size: 'lg', hasStart: false, class: 'ds:ps-4' },\n { size: 'sm', hasEnd: false, class: 'ds:pe-3' },\n { size: 'md', hasEnd: false, class: 'ds:pe-3' },\n { size: 'lg', hasEnd: false, class: 'ds:pe-4' },\n ],\n defaultVariants: {\n size: 'md',\n tone: 'default',\n hasStart: false,\n hasEnd: false,\n },\n },\n);\n\nconst adornmentBase =\n 'absolute inset-y-0 flex items-center pointer-events-none text-muted-foreground';\n\nexport interface TextInputProps\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'onChange' | 'onCompositionStart' | 'onCompositionEnd'\n >,\n Pick<VariantProps<typeof inputVariants>, 'size' | 'tone'> {\n size?: 'sm' | 'md' | 'lg';\n tone?: 'default' | 'error';\n startAdornment?: ReactNode;\n endAdornment?: ReactNode;\n clearable?: boolean;\n onClear?: () => void;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n onCompositionStart?: (event: CompositionEvent<HTMLInputElement>) => void;\n onCompositionEnd?: (event: CompositionEvent<HTMLInputElement>) => void;\n}\n\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n size = 'md',\n tone = 'default',\n startAdornment,\n endAdornment,\n clearable = false,\n onClear,\n className,\n id,\n disabled,\n value,\n defaultValue,\n onChange,\n onCompositionStart,\n onCompositionEnd,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const ctx = useFormField();\n const inputId = id ?? ctx.id;\n const effectiveDisabled = ctx.disabled || disabled;\n const effectiveTone = ctx.invalid ? 'error' : tone;\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n String(defaultValue ?? ''),\n );\n const currentValue = isControlled ? String(value) : internalValue;\n const hasValue = currentValue.length > 0;\n\n const composingRef = useRef(false);\n const [composingState, setComposingState] = useState(false);\n\n const innerRef = useRef<HTMLInputElement | null>(null);\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n innerRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [ref],\n );\n\n const hasStart = Boolean(startAdornment);\n const showClear = clearable && hasValue && !effectiveDisabled && !props.readOnly;\n const hasEnd = Boolean(endAdornment) || showClear;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n if (composingRef.current) return;\n onChange?.(event);\n };\n\n const handleCompositionStart = (event: CompositionEvent<HTMLInputElement>) => {\n composingRef.current = true;\n setComposingState(true);\n onCompositionStart?.(event);\n };\n\n const handleCompositionEnd = (event: CompositionEvent<HTMLInputElement>) => {\n composingRef.current = false;\n setComposingState(false);\n onCompositionEnd?.(event);\n const target = event.currentTarget;\n if (!isControlled) {\n setInternalValue(target.value);\n }\n // Synthesise a ChangeEvent from the CompositionEvent so consumers receive\n // a single post-IME change. nativeEvent is still the CompositionEvent, so\n // consumers inspecting `nativeEvent.inputType` will not find the usual\n // \"insertCompositionText\" value — documented as a known limitation.\n onChange?.({\n ...event,\n target,\n currentTarget: target,\n } as unknown as ChangeEvent<HTMLInputElement>);\n };\n\n const handleClear = () => {\n if (!isControlled) {\n setInternalValue('');\n }\n const node = innerRef.current;\n if (node && onChange) {\n // Drive the DOM value to '' via the prototype setter so downstream\n // reads of event.target.value see the cleared value, then forward a\n // synthesised ChangeEvent to consumers (form libraries drive state\n // from onChange, not onClear).\n const prototype = Object.getPrototypeOf(node) as HTMLInputElement;\n const setter = Object.getOwnPropertyDescriptor(prototype, 'value')?.set;\n setter?.call(node, '');\n onChange({\n target: node,\n currentTarget: node,\n bubbles: true,\n type: 'change',\n nativeEvent: new Event('change', { bubbles: true }),\n preventDefault: () => {},\n stopPropagation: () => {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist: () => {},\n } as unknown as ChangeEvent<HTMLInputElement>);\n }\n onClear?.();\n node?.focus();\n };\n\n const handleWrapperClick = (event: MouseEvent<HTMLDivElement>) => {\n if (event.target === innerRef.current) return;\n if ((event.target as HTMLElement).closest('button')) return;\n innerRef.current?.focus();\n };\n\n return (\n <div\n className={wrapperVariants()}\n onClick={handleWrapperClick}\n data-composing={composingState ? 'true' : undefined}\n >\n {startAdornment ? (\n <span\n aria-hidden=\"true\"\n className={`${adornmentBase} ds:start-0 ds:ps-3 ds:[&_svg]:size-4`}\n >\n {startAdornment}\n </span>\n ) : null}\n <input\n ref={setRefs}\n id={inputId}\n type=\"text\"\n value={currentValue}\n disabled={effectiveDisabled}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n aria-required={ctx.required || undefined}\n onChange={handleChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n className={inputVariants({\n size,\n tone: effectiveTone,\n hasStart,\n hasEnd,\n className,\n })}\n {...props}\n />\n {showClear ? (\n <button\n type=\"button\"\n aria-label={t('ui.inputs.text.clear', 'Clear input')}\n onClick={handleClear}\n className=\"ds:absolute ds:inset-y-0 ds:end-0 ds:pe-3 ds:flex ds:items-center ds:pointer-events-auto ds:text-muted-foreground ds:hover:text-foreground ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none\"\n >\n <X aria-hidden=\"true\" className=\"ds:size-4\" />\n </button>\n ) : endAdornment ? (\n <span\n aria-hidden=\"true\"\n className={`${adornmentBase} ds:end-0 ds:pe-3 ds:[&_svg]:size-4`}\n >\n {endAdornment}\n </span>\n ) : null}\n </div>\n );\n },\n);\n\nTextInput.displayName = 'TextInput';\n"],"names":["wrapperVariants","cva","inputVariants","INPUT_SURFACE_HEIGHT","INPUT_SURFACE_TEXT","INPUT_SURFACE_TONE","adornmentBase","TextInput","forwardRef","size","tone","startAdornment","endAdornment","clearable","onClear","className","id","disabled","value","defaultValue","onChange","onCompositionStart","onCompositionEnd","props","ref","t","useTranslation","ctx","useFormField","inputId","effectiveDisabled","effectiveTone","isControlled","internalValue","setInternalValue","useState","currentValue","hasValue","composingRef","useRef","composingState","setComposingState","innerRef","setRefs","useCallback","node","hasStart","showClear","hasEnd","handleChange","event","handleCompositionStart","handleCompositionEnd","target","handleClear","prototype","setter","_a","handleWrapperClick","jsxs","jsx","X"],"mappings":";;;;;;;AAqBA,MAAMA,KAAkBC;AAAA,EACtB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AACZ,GAEMC,KAAgBD;AAAA,EACpB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI,GAAGE,EAAqB,EAAE,IAAIC,EAAmB,EAAE;AAAA,QACvD,IAAI,GAAGD,EAAqB,EAAE,IAAIC,EAAmB,EAAE;AAAA,QACvD,IAAI,GAAGD,EAAqB,EAAE,IAAIC,EAAmB,EAAE;AAAA,MAAA;AAAA,MAEzD,MAAMC;AAAA,MACN,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,kBAAkB;AAAA,MAChB,EAAE,MAAM,MAAM,UAAU,IAAO,OAAO,UAAA;AAAA,MACtC,EAAE,MAAM,MAAM,UAAU,IAAO,OAAO,UAAA;AAAA,MACtC,EAAE,MAAM,MAAM,UAAU,IAAO,OAAO,UAAA;AAAA,MACtC,EAAE,MAAM,MAAM,QAAQ,IAAO,OAAO,UAAA;AAAA,MACpC,EAAE,MAAM,MAAM,QAAQ,IAAO,OAAO,UAAA;AAAA,MACpC,EAAE,MAAM,MAAM,QAAQ,IAAO,OAAO,UAAA;AAAA,IAAU;AAAA,IAEhD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,IAAA;AAAA,EACV;AAEJ,GAEMC,IACJ,kFAmBWC,KAAYC;AAAA,EACvB,CACE;AAAA,IACE,MAAAC,IAAO;AAAA,IACP,MAAAC,IAAO;AAAA,IACP,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAMC,GAAA,GACNC,IAAUb,KAAMW,EAAI,IACpBG,IAAoBH,EAAI,YAAYV,GACpCc,IAAgBJ,EAAI,UAAU,UAAUjB,GAExCsB,IAAed,MAAU,QACzB,CAACe,GAAeC,CAAgB,IAAIC;AAAA,MACxC,OAAOhB,KAAgB,EAAE;AAAA,IAAA,GAErBiB,IAAeJ,IAAe,OAAOd,CAAK,IAAIe,GAC9CI,IAAWD,EAAa,SAAS,GAEjCE,IAAeC,EAAO,EAAK,GAC3B,CAACC,GAAgBC,CAAiB,IAAIN,EAAS,EAAK,GAEpDO,IAAWH,EAAgC,IAAI,GAC/CI,IAAUC;AAAA,MACd,CAACC,MAAkC;AACjC,QAAAH,EAAS,UAAUG,GACf,OAAOrB,KAAQ,aACjBA,EAAIqB,CAAI,IACCrB,MACTA,EAAI,UAAUqB;AAAA,MAElB;AAAA,MACA,CAACrB,CAAG;AAAA,IAAA,GAGAsB,IAAW,EAAQnC,GACnBoC,IAAYlC,KAAawB,KAAY,CAACP,KAAqB,CAACP,EAAM,UAClEyB,IAAS,EAAQpC,KAAiBmC,GAElCE,IAAe,CAACC,MAAyC;AAI7D,MAHKlB,KACHE,EAAiBgB,EAAM,OAAO,KAAK,GAEjC,CAAAZ,EAAa,YACjBlB,KAAA,QAAAA,EAAW8B;AAAA,IACb,GAEMC,IAAyB,CAACD,MAA8C;AAC5E,MAAAZ,EAAa,UAAU,IACvBG,EAAkB,EAAI,GACtBpB,KAAA,QAAAA,EAAqB6B;AAAA,IACvB,GAEME,IAAuB,CAACF,MAA8C;AAC1E,MAAAZ,EAAa,UAAU,IACvBG,EAAkB,EAAK,GACvBnB,KAAA,QAAAA,EAAmB4B;AACnB,YAAMG,IAASH,EAAM;AACrB,MAAKlB,KACHE,EAAiBmB,EAAO,KAAK,GAM/BjC,KAAA,QAAAA,EAAW;AAAA,QACT,GAAG8B;AAAA,QACH,QAAAG;AAAA,QACA,eAAeA;AAAA,MAAA;AAAA,IAEnB,GAEMC,IAAc,MAAM;;AACxB,MAAKtB,KACHE,EAAiB,EAAE;AAErB,YAAMW,IAAOH,EAAS;AACtB,UAAIG,KAAQzB,GAAU;AAKpB,cAAMmC,IAAY,OAAO,eAAeV,CAAI,GACtCW,KAASC,IAAA,OAAO,yBAAyBF,GAAW,OAAO,MAAlD,gBAAAE,EAAqD;AACpE,QAAAD,KAAA,QAAAA,EAAQ,KAAKX,GAAM,KACnBzB,EAAS;AAAA,UACP,QAAQyB;AAAA,UACR,eAAeA;AAAA,UACf,SAAS;AAAA,UACT,MAAM;AAAA,UACN,aAAa,IAAI,MAAM,UAAU,EAAE,SAAS,IAAM;AAAA,UAClD,gBAAgB,MAAM;AAAA,UAAC;AAAA,UACvB,iBAAiB,MAAM;AAAA,UAAC;AAAA,UACxB,oBAAoB,MAAM;AAAA,UAC1B,sBAAsB,MAAM;AAAA,UAC5B,SAAS,MAAM;AAAA,UAAC;AAAA,QAAA,CAC2B;AAAA,MAC/C;AACA,MAAA/B,KAAA,QAAAA,KACA+B,KAAA,QAAAA,EAAM;AAAA,IACR,GAEMa,IAAqB,CAACR,MAAsC;;AAChE,MAAIA,EAAM,WAAWR,EAAS,YACzBQ,EAAM,OAAuB,QAAQ,QAAQ,MAClDO,IAAAf,EAAS,YAAT,QAAAe,EAAkB;AAAA,IACpB;AAEA,WACE,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW3D,GAAA;AAAA,QACX,SAAS0D;AAAA,QACT,kBAAgBlB,IAAiB,SAAS;AAAA,QAEzC,UAAA;AAAA,UAAA7B,IACC,gBAAAiD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,WAAW,GAAGtD,CAAa;AAAA,cAE1B,UAAAK;AAAA,YAAA;AAAA,UAAA,IAED;AAAA,UACJ,gBAAAiD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKjB;AAAA,cACL,IAAId;AAAA,cACJ,MAAK;AAAA,cACL,OAAOO;AAAA,cACP,UAAUN;AAAA,cACV,oBAAkBH,EAAI,eAAe;AAAA,cACrC,gBAAcA,EAAI,WAAW;AAAA,cAC7B,iBAAeA,EAAI,YAAY;AAAA,cAC/B,UAAUsB;AAAA,cACV,oBAAoBE;AAAA,cACpB,kBAAkBC;AAAA,cAClB,WAAWlD,GAAc;AAAA,gBACvB,MAAAO;AAAA,gBACA,MAAMsB;AAAA,gBACN,UAAAe;AAAA,gBACA,QAAAE;AAAA,gBACA,WAAAjC;AAAA,cAAA,CACD;AAAA,cACA,GAAGQ;AAAA,YAAA;AAAA,UAAA;AAAA,UAELwB,IACC,gBAAAa;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,cAAYnC,EAAE,wBAAwB,aAAa;AAAA,cACnD,SAAS6B;AAAA,cACT,WAAU;AAAA,cAEV,UAAA,gBAAAM,EAACC,IAAA,EAAE,eAAY,QAAO,WAAU,YAAA,CAAY;AAAA,YAAA;AAAA,UAAA,IAE5CjD,IACF,gBAAAgD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAY;AAAA,cACZ,WAAW,GAAGtD,CAAa;AAAA,cAE1B,UAAAM;AAAA,YAAA;AAAA,UAAA,IAED;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AAEAL,GAAU,cAAc;"}
@@ -0,0 +1,326 @@
1
+ import { jsx as e, jsxs as l, Fragment as A } from "react/jsx-runtime";
2
+ import { forwardRef as N, useCallback as k } from "react";
3
+ import { c as S } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as u } from "react-i18next";
5
+ import { I as v } from "./icon-button-C482ii4y.js";
6
+ import { I } from "./icon-button-group-BnhkUWUg.js";
7
+ import { S as R } from "./switch-DtLPKO0p.js";
8
+ import { D as o } from "./dropdown-menu-BnVUeVG3.js";
9
+ import { u as V } from "./use-theme-BMUhembX.js";
10
+ import { c as f } from "./createLucideIcon-CrFbzy84.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 _ = [
18
+ ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
19
+ ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
20
+ ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
21
+ ], C = f("monitor", _);
22
+ /**
23
+ * @license lucide-react v1.8.0 - ISC
24
+ *
25
+ * This source code is licensed under the ISC license.
26
+ * See the LICENSE file in the root directory of this source tree.
27
+ */
28
+ const M = [
29
+ [
30
+ "path",
31
+ {
32
+ d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
33
+ key: "kfwtm"
34
+ }
35
+ ]
36
+ ], b = f("moon", M);
37
+ /**
38
+ * @license lucide-react v1.8.0 - ISC
39
+ *
40
+ * This source code is licensed under the ISC license.
41
+ * See the LICENSE file in the root directory of this source tree.
42
+ */
43
+ const z = [
44
+ ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
45
+ ["path", { d: "M12 2v2", key: "tus03m" }],
46
+ ["path", { d: "M12 20v2", key: "1lh1kg" }],
47
+ ["path", { d: "m4.93 4.93 1.41 1.41", key: "149t6j" }],
48
+ ["path", { d: "m17.66 17.66 1.41 1.41", key: "ptbguv" }],
49
+ ["path", { d: "M2 12h2", key: "1t8f8n" }],
50
+ ["path", { d: "M20 12h2", key: "1q8mjw" }],
51
+ ["path", { d: "m6.34 17.66-1.41 1.41", key: "1m8zz5" }],
52
+ ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }]
53
+ ], y = f("sun", z), T = S("ds:inline-flex ds:items-center", {
54
+ variants: {
55
+ variant: {
56
+ menu: "",
57
+ compact: "",
58
+ split: "ds:gap-[var(--spacing-md)]"
59
+ }
60
+ },
61
+ defaultVariants: { variant: "menu" }
62
+ });
63
+ function j(a) {
64
+ const {
65
+ theme: c,
66
+ accessibility: r,
67
+ onThemeChange: n,
68
+ onAccessibilityChange: i
69
+ } = a, t = V(), g = c ?? t.theme, p = r ?? t.accessibility, s = t.setTheme, h = t.setAccessibility, m = k(
70
+ (d) => {
71
+ if (n) {
72
+ n(d);
73
+ return;
74
+ }
75
+ s(d);
76
+ },
77
+ [n, s]
78
+ ), x = k(
79
+ (d) => {
80
+ if (i) {
81
+ i(d);
82
+ return;
83
+ }
84
+ h(d);
85
+ },
86
+ [i, h]
87
+ );
88
+ return {
89
+ theme: g,
90
+ accessibility: p,
91
+ resolvedTheme: t.resolvedTheme,
92
+ setTheme: m,
93
+ setAccessibility: x
94
+ };
95
+ }
96
+ function w({
97
+ value: a,
98
+ onValueChange: c,
99
+ ariaLabel: r,
100
+ size: n = "md"
101
+ }) {
102
+ const { t: i } = u();
103
+ return /* @__PURE__ */ l(
104
+ I,
105
+ {
106
+ "aria-label": r,
107
+ role: "radiogroup",
108
+ mode: "toggle-single",
109
+ size: n,
110
+ value: a,
111
+ onValueChange: (t) => c(t),
112
+ children: [
113
+ /* @__PURE__ */ e(
114
+ v,
115
+ {
116
+ icon: /* @__PURE__ */ e(y, { "aria-hidden": !0 }),
117
+ "aria-label": i("ui.navigation.themeToggle.appearance.light"),
118
+ value: "light"
119
+ }
120
+ ),
121
+ /* @__PURE__ */ e(
122
+ v,
123
+ {
124
+ icon: /* @__PURE__ */ e(b, { "aria-hidden": !0 }),
125
+ "aria-label": i("ui.navigation.themeToggle.appearance.dark"),
126
+ value: "dark"
127
+ }
128
+ ),
129
+ /* @__PURE__ */ e(
130
+ v,
131
+ {
132
+ icon: /* @__PURE__ */ e(C, { "aria-hidden": !0 }),
133
+ "aria-label": i("ui.navigation.themeToggle.appearance.system"),
134
+ value: "system"
135
+ }
136
+ )
137
+ ]
138
+ }
139
+ );
140
+ }
141
+ function L({
142
+ value: a,
143
+ onValueChange: c,
144
+ size: r = "md"
145
+ }) {
146
+ const { t: n } = u(), i = a === "accessible";
147
+ return /* @__PURE__ */ e(
148
+ R,
149
+ {
150
+ label: n("ui.navigation.themeToggle.accessibility.label"),
151
+ labelSide: "start",
152
+ size: r,
153
+ checked: i,
154
+ onCheckedChange: (t) => c(t ? "accessible" : "default")
155
+ }
156
+ );
157
+ }
158
+ function D({
159
+ state: a,
160
+ className: c,
161
+ rest: r,
162
+ forwardedRef: n,
163
+ showAccessibility: i
164
+ }) {
165
+ const { t } = u(), g = a.resolvedTheme === "dark" || a.resolvedTheme === "dark-accessible" ? /* @__PURE__ */ e(b, { "aria-hidden": !0 }) : /* @__PURE__ */ e(y, { "aria-hidden": !0 }), p = a.accessibility === "accessible";
166
+ return /* @__PURE__ */ e(
167
+ "div",
168
+ {
169
+ ref: n,
170
+ className: T({ variant: "menu", className: c }),
171
+ ...r,
172
+ children: /* @__PURE__ */ l(o.Root, { children: [
173
+ /* @__PURE__ */ e(o.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
174
+ v,
175
+ {
176
+ icon: g,
177
+ "aria-label": t("ui.navigation.themeToggle.trigger")
178
+ }
179
+ ) }),
180
+ /* @__PURE__ */ e(o.Portal, { children: /* @__PURE__ */ l(o.Content, { align: "end", sideOffset: 8, children: [
181
+ /* @__PURE__ */ e(o.Label, { children: t("ui.navigation.themeToggle.appearance.label") }),
182
+ /* @__PURE__ */ l(
183
+ o.RadioGroup,
184
+ {
185
+ value: a.theme,
186
+ onValueChange: (s) => a.setTheme(s),
187
+ children: [
188
+ /* @__PURE__ */ l(o.RadioItem, { value: "light", children: [
189
+ /* @__PURE__ */ e(y, { "aria-hidden": !0, className: "ds:size-4" }),
190
+ t("ui.navigation.themeToggle.appearance.light")
191
+ ] }),
192
+ /* @__PURE__ */ l(o.RadioItem, { value: "dark", children: [
193
+ /* @__PURE__ */ e(b, { "aria-hidden": !0, className: "ds:size-4" }),
194
+ t("ui.navigation.themeToggle.appearance.dark")
195
+ ] }),
196
+ /* @__PURE__ */ l(o.RadioItem, { value: "system", children: [
197
+ /* @__PURE__ */ e(C, { "aria-hidden": !0, className: "ds:size-4" }),
198
+ t("ui.navigation.themeToggle.appearance.system")
199
+ ] })
200
+ ]
201
+ }
202
+ ),
203
+ i ? /* @__PURE__ */ l(A, { children: [
204
+ /* @__PURE__ */ e(o.Separator, {}),
205
+ /* @__PURE__ */ e(
206
+ o.CheckboxItem,
207
+ {
208
+ checked: p,
209
+ onCheckedChange: (s) => a.setAccessibility(s ? "accessible" : "default"),
210
+ onSelect: (s) => s.preventDefault(),
211
+ children: t("ui.navigation.themeToggle.accessibility.label")
212
+ }
213
+ )
214
+ ] }) : null
215
+ ] }) })
216
+ ] })
217
+ }
218
+ );
219
+ }
220
+ function P({
221
+ state: a,
222
+ className: c,
223
+ rest: r,
224
+ forwardedRef: n
225
+ }) {
226
+ const { t: i } = u();
227
+ return /* @__PURE__ */ e(
228
+ "div",
229
+ {
230
+ ref: n,
231
+ className: T({ variant: "compact", className: c }),
232
+ ...r,
233
+ children: /* @__PURE__ */ e(
234
+ w,
235
+ {
236
+ value: a.theme,
237
+ onValueChange: a.setTheme,
238
+ ariaLabel: i("ui.navigation.themeToggle.appearance.label")
239
+ }
240
+ )
241
+ }
242
+ );
243
+ }
244
+ function q({
245
+ state: a,
246
+ className: c,
247
+ rest: r,
248
+ forwardedRef: n,
249
+ showAccessibility: i
250
+ }) {
251
+ const { t } = u();
252
+ return /* @__PURE__ */ l(
253
+ "div",
254
+ {
255
+ ref: n,
256
+ className: T({ variant: "split", className: c }),
257
+ ...r,
258
+ children: [
259
+ /* @__PURE__ */ e(
260
+ w,
261
+ {
262
+ value: a.theme,
263
+ onValueChange: a.setTheme,
264
+ ariaLabel: t("ui.navigation.themeToggle.appearance.label")
265
+ }
266
+ ),
267
+ i ? /* @__PURE__ */ e(
268
+ L,
269
+ {
270
+ value: a.accessibility,
271
+ onValueChange: a.setAccessibility
272
+ }
273
+ ) : null
274
+ ]
275
+ }
276
+ );
277
+ }
278
+ const B = N(
279
+ (a, c) => {
280
+ const {
281
+ variant: r = "menu",
282
+ showAccessibility: n = !0,
283
+ className: i,
284
+ // Strip controlled props from the spread — they are read by the
285
+ // adapter, not by the DOM element.
286
+ theme: t,
287
+ accessibility: g,
288
+ onThemeChange: p,
289
+ onAccessibilityChange: s,
290
+ ...h
291
+ } = a, m = j(a);
292
+ return r === "compact" ? /* @__PURE__ */ e(
293
+ P,
294
+ {
295
+ state: m,
296
+ className: i,
297
+ rest: h,
298
+ forwardedRef: c,
299
+ showAccessibility: n
300
+ }
301
+ ) : r === "split" ? /* @__PURE__ */ e(
302
+ q,
303
+ {
304
+ state: m,
305
+ className: i,
306
+ rest: h,
307
+ forwardedRef: c,
308
+ showAccessibility: n
309
+ }
310
+ ) : /* @__PURE__ */ e(
311
+ D,
312
+ {
313
+ state: m,
314
+ className: i,
315
+ rest: h,
316
+ forwardedRef: c,
317
+ showAccessibility: n
318
+ }
319
+ );
320
+ }
321
+ );
322
+ B.displayName = "ThemeToggle";
323
+ export {
324
+ B as T
325
+ };
326
+ //# sourceMappingURL=theme-toggle-BHKMiORD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-toggle-BHKMiORD.js","sources":["../../node_modules/lucide-react/dist/esm/icons/monitor.js","../../node_modules/lucide-react/dist/esm/icons/moon.js","../../node_modules/lucide-react/dist/esm/icons/sun.js","../../src/components/theme-toggle/theme-toggle.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 [\"rect\", { width: \"20\", height: \"14\", x: \"2\", y: \"3\", rx: \"2\", key: \"48i651\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"21\", y2: \"21\", key: \"1svkeh\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"17\", y2: \"21\", key: \"vw1qmm\" }]\n];\nconst Monitor = createLucideIcon(\"monitor\", __iconNode);\n\nexport { __iconNode, Monitor as default };\n//# sourceMappingURL=monitor.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: \"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\",\n key: \"kfwtm\"\n }\n ]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode);\n\nexport { __iconNode, Moon as default };\n//# sourceMappingURL=moon.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 [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode);\n\nexport { __iconNode, Sun as default };\n//# sourceMappingURL=sun.js.map\n","import {\n forwardRef,\n useCallback,\n type HTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { IconButtonGroup } from '../icon-button-group/icon-button-group';\nimport { Switch } from '../switch/switch';\nimport { DropdownMenu } from '../dropdown-menu/dropdown-menu';\nimport {\n useTheme,\n type AccessibilityPreference,\n type ThemePreference,\n type UseThemeReturn,\n} from '../../hooks';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst wrapperVariants = cva('ds:inline-flex ds:items-center', {\n variants: {\n variant: {\n menu: '',\n compact: '',\n split: 'ds:gap-[var(--spacing-md)]',\n },\n },\n defaultVariants: { variant: 'menu' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type ThemeToggleVariant = 'menu' | 'compact' | 'split';\n\ninterface ThemeToggleBaseProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>,\n VariantProps<typeof wrapperVariants> {\n /**\n * Visual form factor.\n * - `menu` (default) — single trigger that opens a dropdown with both\n * Appearance and Accessibility controls. Best for headers / nav rails.\n * - `compact` — segmented Appearance control only. Use when accessibility\n * lives on a separate settings surface.\n * - `split` — segmented Appearance control plus an inline Accessibility\n * switch. Best for full-width settings panels.\n */\n variant?: ThemeToggleVariant;\n /** Hide the accessibility control. Ignored on `compact`, which never renders it. */\n showAccessibility?: boolean;\n /**\n * Controlled escape hatch — when omitted the component reads/writes\n * `useTheme()` directly so it can drop into any header with no wiring.\n * Pass all four to opt into controlled mode.\n */\n theme?: ThemePreference;\n accessibility?: AccessibilityPreference;\n onThemeChange?: (next: ThemePreference) => void;\n onAccessibilityChange?: (next: AccessibilityPreference) => void;\n}\n\nexport type ThemeToggleProps = ThemeToggleBaseProps;\n\n/* ------------------------------------------------------------------ */\n/* Hook adapter */\n/* ------------------------------------------------------------------ */\n\n/**\n * Resolves controlled props against the store. When the consumer passes\n * `theme` / `onThemeChange` (etc.) we honour those; otherwise we fall\n * through to the singleton `useTheme()` hook so a bare `<ThemeToggle />`\n * works with zero wiring.\n */\nfunction useResolvedTheme(props: ThemeToggleBaseProps): UseThemeReturn {\n const {\n theme: themeProp,\n accessibility: accessibilityProp,\n onThemeChange,\n onAccessibilityChange,\n } = props;\n const store = useTheme();\n const theme = themeProp ?? store.theme;\n const accessibility = accessibilityProp ?? store.accessibility;\n\n const storeSetTheme = store.setTheme;\n const storeSetAccessibility = store.setAccessibility;\n\n const setTheme = useCallback(\n (next: ThemePreference) => {\n if (onThemeChange) {\n onThemeChange(next);\n return;\n }\n storeSetTheme(next);\n },\n [onThemeChange, storeSetTheme],\n );\n\n const setAccessibility = useCallback(\n (next: AccessibilityPreference) => {\n if (onAccessibilityChange) {\n onAccessibilityChange(next);\n return;\n }\n storeSetAccessibility(next);\n },\n [onAccessibilityChange, storeSetAccessibility],\n );\n\n return {\n theme,\n accessibility,\n resolvedTheme: store.resolvedTheme,\n setTheme,\n setAccessibility,\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* Sub-pieces */\n/* ------------------------------------------------------------------ */\n\ninterface AppearanceSegmentProps {\n value: ThemePreference;\n onValueChange: (next: ThemePreference) => void;\n ariaLabel: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\nfunction AppearanceSegment({\n value,\n onValueChange,\n ariaLabel,\n size = 'md',\n}: AppearanceSegmentProps) {\n const { t } = useTranslation();\n return (\n <IconButtonGroup\n aria-label={ariaLabel}\n role=\"radiogroup\"\n mode=\"toggle-single\"\n size={size}\n value={value}\n onValueChange={(next) => onValueChange(next as ThemePreference)}\n >\n <IconButton\n icon={<Sun aria-hidden />}\n aria-label={t('ui.navigation.themeToggle.appearance.light')}\n value=\"light\"\n />\n <IconButton\n icon={<Moon aria-hidden />}\n aria-label={t('ui.navigation.themeToggle.appearance.dark')}\n value=\"dark\"\n />\n <IconButton\n icon={<Monitor aria-hidden />}\n aria-label={t('ui.navigation.themeToggle.appearance.system')}\n value=\"system\"\n />\n </IconButtonGroup>\n );\n}\n\ninterface AccessibilitySwitchProps {\n value: AccessibilityPreference;\n onValueChange: (next: AccessibilityPreference) => void;\n size?: 'sm' | 'md' | 'lg';\n}\n\nfunction AccessibilitySwitch({\n value,\n onValueChange,\n size = 'md',\n}: AccessibilitySwitchProps) {\n const { t } = useTranslation();\n // 'system' is treated as \"off\" visually — the OS preference flows through\n // automatically. Flipping the switch on creates an explicit override.\n const checked = value === 'accessible';\n return (\n <Switch\n label={t('ui.navigation.themeToggle.accessibility.label')}\n labelSide=\"start\"\n size={size}\n checked={checked}\n onCheckedChange={(next) =>\n onValueChange(next ? 'accessible' : 'default')\n }\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Variants */\n/* ------------------------------------------------------------------ */\n\ninterface VariantRenderProps {\n state: UseThemeReturn;\n className?: string;\n rest: HTMLAttributes<HTMLDivElement>;\n forwardedRef: React.Ref<HTMLDivElement>;\n showAccessibility: boolean;\n}\n\nfunction MenuVariant({\n state,\n className,\n rest,\n forwardedRef,\n showAccessibility,\n}: VariantRenderProps) {\n const { t } = useTranslation();\n const triggerIcon =\n state.resolvedTheme === 'dark' || state.resolvedTheme === 'dark-accessible'\n ? <Moon aria-hidden />\n : <Sun aria-hidden />;\n\n const accessibleChecked = state.accessibility === 'accessible';\n\n return (\n <div\n ref={forwardedRef}\n className={wrapperVariants({ variant: 'menu', className })}\n {...rest}\n >\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={triggerIcon}\n aria-label={t('ui.navigation.themeToggle.trigger')}\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content align=\"end\" sideOffset={8}>\n <DropdownMenu.Label>\n {t('ui.navigation.themeToggle.appearance.label')}\n </DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={state.theme}\n onValueChange={(next) =>\n state.setTheme(next as ThemePreference)\n }\n >\n <DropdownMenu.RadioItem value=\"light\">\n <Sun aria-hidden className=\"ds:size-4\" />\n {t('ui.navigation.themeToggle.appearance.light')}\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem value=\"dark\">\n <Moon aria-hidden className=\"ds:size-4\" />\n {t('ui.navigation.themeToggle.appearance.dark')}\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem value=\"system\">\n <Monitor aria-hidden className=\"ds:size-4\" />\n {t('ui.navigation.themeToggle.appearance.system')}\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n {showAccessibility ? (\n <>\n <DropdownMenu.Separator />\n {/* CheckboxItem keeps the accessibility toggle inside the\n Radix menu collection so ArrowDown reaches it and Space\n activates it; `onSelect={preventDefault}` prevents the\n menu from closing on toggle. */}\n <DropdownMenu.CheckboxItem\n checked={accessibleChecked}\n onCheckedChange={(next) =>\n state.setAccessibility(next ? 'accessible' : 'default')\n }\n onSelect={(event) => event.preventDefault()}\n >\n {t('ui.navigation.themeToggle.accessibility.label')}\n </DropdownMenu.CheckboxItem>\n </>\n ) : null}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n </div>\n );\n}\n\nfunction CompactVariant({\n state,\n className,\n rest,\n forwardedRef,\n}: VariantRenderProps) {\n const { t } = useTranslation();\n return (\n <div\n ref={forwardedRef}\n className={wrapperVariants({ variant: 'compact', className })}\n {...rest}\n >\n <AppearanceSegment\n value={state.theme}\n onValueChange={state.setTheme}\n ariaLabel={t('ui.navigation.themeToggle.appearance.label')}\n />\n </div>\n );\n}\n\nfunction SplitVariant({\n state,\n className,\n rest,\n forwardedRef,\n showAccessibility,\n}: VariantRenderProps) {\n const { t } = useTranslation();\n return (\n <div\n ref={forwardedRef}\n className={wrapperVariants({ variant: 'split', className })}\n {...rest}\n >\n <AppearanceSegment\n value={state.theme}\n onValueChange={state.setTheme}\n ariaLabel={t('ui.navigation.themeToggle.appearance.label')}\n />\n {showAccessibility ? (\n <AccessibilitySwitch\n value={state.accessibility}\n onValueChange={state.setAccessibility}\n />\n ) : null}\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* ThemeToggle */\n/* ------------------------------------------------------------------ */\n\nexport const ThemeToggle = forwardRef<HTMLDivElement, ThemeToggleProps>(\n (props, ref) => {\n const {\n variant = 'menu',\n showAccessibility = true,\n className,\n // Strip controlled props from the spread — they are read by the\n // adapter, not by the DOM element.\n theme: _theme,\n accessibility: _accessibility,\n onThemeChange: _onThemeChange,\n onAccessibilityChange: _onAccessibilityChange,\n ...rest\n } = props;\n\n const state = useResolvedTheme(props);\n\n if (variant === 'compact') {\n return (\n <CompactVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={ref}\n showAccessibility={showAccessibility}\n />\n );\n }\n if (variant === 'split') {\n return (\n <SplitVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={ref}\n showAccessibility={showAccessibility}\n />\n );\n }\n return (\n <MenuVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={ref}\n showAccessibility={showAccessibility}\n />\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n"],"names":["__iconNode","Monitor","createLucideIcon","Moon","Sun","wrapperVariants","cva","useResolvedTheme","props","themeProp","accessibilityProp","onThemeChange","onAccessibilityChange","store","useTheme","theme","accessibility","storeSetTheme","storeSetAccessibility","setTheme","useCallback","next","setAccessibility","AppearanceSegment","value","onValueChange","ariaLabel","size","t","useTranslation","jsxs","IconButtonGroup","jsx","IconButton","AccessibilitySwitch","checked","Switch","MenuVariant","state","className","rest","forwardedRef","showAccessibility","triggerIcon","accessibleChecked","DropdownMenu","Fragment","event","CompactVariant","SplitVariant","ThemeToggle","forwardRef","ref","variant","_theme","_accessibility","_onThemeChange","_onAccessibilityChange"],"mappings":"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","x_google_ignoreList":[0,1,2]}