@alfadocs/ui-kit-debug 0.1.9 → 0.2.1

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 (747) hide show
  1. package/README.md +30 -0
  2. package/dist/_chunks/accordion-DOmxGEWU.js +228 -0
  3. package/dist/_chunks/accordion-DOmxGEWU.js.map +1 -0
  4. package/dist/_chunks/{agenda-card-DwLIxgi7.js → agenda-card-CalZqycc.js} +12 -3
  5. package/dist/_chunks/agenda-card-CalZqycc.js.map +1 -0
  6. package/dist/_chunks/{agenda-tray-DUvengGQ.js → agenda-tray-3ffFDQZC.js} +54 -51
  7. package/dist/_chunks/agenda-tray-3ffFDQZC.js.map +1 -0
  8. package/dist/_chunks/{ai-prompt-input.agent-0NHYLTWD.js → ai-prompt-input-BBiDlEIS.js} +231 -231
  9. package/dist/_chunks/ai-prompt-input-BBiDlEIS.js.map +1 -0
  10. package/dist/_chunks/{alert-BlOUMkXj.js → alert-B1sj8Ss0.js} +24 -14
  11. package/dist/_chunks/alert-B1sj8Ss0.js.map +1 -0
  12. package/dist/_chunks/{apexcharts-theme-BkSShpEy.js → apexcharts-theme-BJigns_V.js} +7 -2
  13. package/dist/_chunks/{apexcharts-theme-BkSShpEy.js.map → apexcharts-theme-BJigns_V.js.map} +1 -1
  14. package/dist/_chunks/{app-frame-6d7Lu4ea.js → app-frame-CDJOgPXe.js} +7 -16
  15. package/dist/_chunks/app-frame-CDJOgPXe.js.map +1 -0
  16. package/dist/_chunks/aspect-ratio-DeSNzASA.js.map +1 -1
  17. package/dist/_chunks/{audio-recorder.agent--VKeykUp.js → audio-recorder-B4U1LuiQ.js} +161 -162
  18. package/dist/_chunks/audio-recorder-B4U1LuiQ.js.map +1 -0
  19. package/dist/_chunks/{audio-visualiser-CeMPCZkd.js → audio-visualiser-ByDEFLNm.js} +25 -19
  20. package/dist/_chunks/audio-visualiser-ByDEFLNm.js.map +1 -0
  21. package/dist/_chunks/autocomplete-D4oUZbsP.js +466 -0
  22. package/dist/_chunks/autocomplete-D4oUZbsP.js.map +1 -0
  23. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +1 -1
  24. package/dist/_chunks/{badge-mrstWxve.js → badge-DKFbntoa.js} +16 -13
  25. package/dist/_chunks/badge-DKFbntoa.js.map +1 -0
  26. package/dist/_chunks/{balance-cell-renderer-5CA7zpAi.js → balance-cell-renderer-B8zgIM-m.js} +63 -44
  27. package/dist/_chunks/balance-cell-renderer-B8zgIM-m.js.map +1 -0
  28. package/dist/_chunks/{breadcrumb.agent-GM2hAKFX.js → breadcrumb-D1snXjPb.js} +165 -157
  29. package/dist/_chunks/breadcrumb-D1snXjPb.js.map +1 -0
  30. package/dist/_chunks/{button-7mLWcMp_.js → button-DD_0Xdmr.js} +12 -2
  31. package/dist/_chunks/button-DD_0Xdmr.js.map +1 -0
  32. package/dist/_chunks/button-group-CONver7M.js.map +1 -1
  33. package/dist/_chunks/button.agent-BuGZBktn.js.map +1 -1
  34. package/dist/_chunks/{calendar-nGEgelJs.js → calendar-zy0tUUVG.js} +13 -18
  35. package/dist/_chunks/calendar-zy0tUUVG.js.map +1 -0
  36. package/dist/_chunks/{card-BEy58ZKp.js → card-CWzuTLYE.js} +40 -34
  37. package/dist/_chunks/card-CWzuTLYE.js.map +1 -0
  38. package/dist/_chunks/{chart.agent-_pRYS17d.js → chart-BLvFl169.js} +147 -131
  39. package/dist/_chunks/chart-BLvFl169.js.map +1 -0
  40. package/dist/_chunks/chat-container-ClzsWXp2.js +220 -0
  41. package/dist/_chunks/chat-container-ClzsWXp2.js.map +1 -0
  42. package/dist/_chunks/chat-input-DOlsB1fm.js +333 -0
  43. package/dist/_chunks/chat-input-DOlsB1fm.js.map +1 -0
  44. package/dist/_chunks/{chat-message-ByouZpPP.js → chat-message-DoAhgUTj.js} +23 -13
  45. package/dist/_chunks/chat-message-DoAhgUTj.js.map +1 -0
  46. package/dist/_chunks/checkbox-CtPM6Rup.js.map +1 -1
  47. package/dist/_chunks/checkbox-group-BTdEB6Yo.js.map +1 -1
  48. package/dist/_chunks/{collapsible.agent-DkS1jVyn.js → collapsible-CuxUBoHJ.js} +97 -99
  49. package/dist/_chunks/collapsible-CuxUBoHJ.js.map +1 -0
  50. package/dist/_chunks/{color-picker-94qcBZqZ.js → color-picker-CTIcHlDF.js} +111 -45
  51. package/dist/_chunks/color-picker-CTIcHlDF.js.map +1 -0
  52. package/dist/_chunks/combobox-BLWruOxK.js +459 -0
  53. package/dist/_chunks/combobox-BLWruOxK.js.map +1 -0
  54. package/dist/_chunks/command-palette-C_vgSgrI.js +441 -0
  55. package/dist/_chunks/command-palette-C_vgSgrI.js.map +1 -0
  56. package/dist/_chunks/{date-picker-BqPTn7bO.js → date-picker-B1PO1ZQP.js} +190 -181
  57. package/dist/_chunks/{date-picker-BqPTn7bO.js.map → date-picker-B1PO1ZQP.js.map} +1 -1
  58. package/dist/_chunks/{date-range-picker-B2hGsffw.js → date-range-picker-mix2nEVC.js} +21 -8
  59. package/dist/_chunks/date-range-picker-mix2nEVC.js.map +1 -0
  60. package/dist/_chunks/{date-time-picker-Bzt0S8yO.js → date-time-picker-Dnong_BY.js} +30 -15
  61. package/dist/_chunks/date-time-picker-Dnong_BY.js.map +1 -0
  62. package/dist/_chunks/{description-list-DvJbp6Yg.js → description-list-BYA77Yud.js} +26 -23
  63. package/dist/_chunks/description-list-BYA77Yud.js.map +1 -0
  64. package/dist/_chunks/dialog-BPD7wlGE.js +211 -0
  65. package/dist/_chunks/dialog-BPD7wlGE.js.map +1 -0
  66. package/dist/_chunks/dropdown-menu-CpiF6CPz.js +300 -0
  67. package/dist/_chunks/dropdown-menu-CpiF6CPz.js.map +1 -0
  68. package/dist/_chunks/{empty-state-DQPtRp2b.js → empty-state-3CLJIXSj.js} +132 -101
  69. package/dist/_chunks/empty-state-3CLJIXSj.js.map +1 -0
  70. package/dist/_chunks/file-upload-C947ACDK.js +829 -0
  71. package/dist/_chunks/file-upload-C947ACDK.js.map +1 -0
  72. package/dist/_chunks/flag-DZ6V7-hU.js.map +1 -1
  73. package/dist/_chunks/{floating-action-button-Cnw-f6AG.js → floating-action-button-C8OYj8mE.js} +9 -2
  74. package/dist/_chunks/floating-action-button-C8OYj8mE.js.map +1 -0
  75. package/dist/_chunks/{form-field-BfsPLTSc.js → form-field-Bmkeh7WY.js} +12 -11
  76. package/dist/_chunks/form-field-Bmkeh7WY.js.map +1 -0
  77. package/dist/_chunks/{form-field-context-94LwgYTQ.js → form-field-context-B3APVHKx.js} +4 -2
  78. package/dist/_chunks/form-field-context-B3APVHKx.js.map +1 -0
  79. package/dist/_chunks/{freemium-paywall.agent-_nQqLyRF.js → freemium-paywall-CrVefV0M.js} +124 -117
  80. package/dist/_chunks/freemium-paywall-CrVefV0M.js.map +1 -0
  81. package/dist/_chunks/{header-BGn1mRp8.js → header-D0ULgQl3.js} +69 -68
  82. package/dist/_chunks/header-D0ULgQl3.js.map +1 -0
  83. package/dist/_chunks/{icon-button-Wnnde5lc.js → icon-button-C4CGcYuz.js} +11 -3
  84. package/dist/_chunks/icon-button-C4CGcYuz.js.map +1 -0
  85. package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +1 -1
  86. package/dist/_chunks/{kbd-8baVw3KU.js → kbd-Cglkd7CY.js} +6 -2
  87. package/dist/_chunks/kbd-Cglkd7CY.js.map +1 -0
  88. package/dist/_chunks/{key-value-pair-JRFS9Xrh.js → key-value-pair-CgWvAIGb.js} +2 -2
  89. package/dist/_chunks/key-value-pair-CgWvAIGb.js.map +1 -0
  90. package/dist/_chunks/{leo-sidebar-BwINPdix.js → leo-sidebar-CfEY-xi2.js} +16 -20
  91. package/dist/_chunks/leo-sidebar-CfEY-xi2.js.map +1 -0
  92. package/dist/_chunks/{link-QheANk74.js → link-BcYW1eNM.js} +48 -35
  93. package/dist/_chunks/link-BcYW1eNM.js.map +1 -0
  94. package/dist/_chunks/list-qP6p0NTw.js +434 -0
  95. package/dist/_chunks/list-qP6p0NTw.js.map +1 -0
  96. package/dist/_chunks/live-region-C41SO3cA.js.map +1 -1
  97. package/dist/_chunks/{logo-BpFoCL-s.js → logo-_Z-jLq80.js} +155 -26
  98. package/dist/_chunks/logo-_Z-jLq80.js.map +1 -0
  99. package/dist/_chunks/{matrix-rain-BEkvux64.js → matrix-rain-CRPMXcVx.js} +8 -2
  100. package/dist/_chunks/matrix-rain-CRPMXcVx.js.map +1 -0
  101. package/dist/_chunks/{message-card-qhoGv947.js → message-card-DjvsB_3U.js} +58 -55
  102. package/dist/_chunks/message-card-DjvsB_3U.js.map +1 -0
  103. package/dist/_chunks/{message-tray-xHUCra-Y.js → message-tray-BbnAzlLH.js} +86 -91
  104. package/dist/_chunks/message-tray-BbnAzlLH.js.map +1 -0
  105. package/dist/_chunks/{multi-select.agent-Do6CeQUT.js → multi-select-wqqrgjUQ.js} +326 -291
  106. package/dist/_chunks/multi-select-wqqrgjUQ.js.map +1 -0
  107. package/dist/_chunks/{navigation-menu.agent-D69ND6Qq.js → navigation-menu-ClbHeawy.js} +136 -123
  108. package/dist/_chunks/navigation-menu-ClbHeawy.js.map +1 -0
  109. package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +1 -1
  110. package/dist/_chunks/{notification-card-CsVEYJE-.js → notification-card-uTPEvAQS.js} +22 -22
  111. package/dist/_chunks/notification-card-uTPEvAQS.js.map +1 -0
  112. package/dist/_chunks/{notification-tray-DTXMq42J.js → notification-tray-PGtMqXbP.js} +84 -80
  113. package/dist/_chunks/notification-tray-PGtMqXbP.js.map +1 -0
  114. package/dist/_chunks/{number-input-fvGmnRy9.js → number-input-Q7wkHnvQ.js} +7 -3
  115. package/dist/_chunks/number-input-Q7wkHnvQ.js.map +1 -0
  116. package/dist/_chunks/{otp-input-EglXOUue.js → otp-input-C9gUByF0.js} +6 -3
  117. package/dist/_chunks/otp-input-C9gUByF0.js.map +1 -0
  118. package/dist/_chunks/{pagination.agent-BkZQl45y.js → pagination-3AC4zTsi.js} +234 -194
  119. package/dist/_chunks/pagination-3AC4zTsi.js.map +1 -0
  120. package/dist/_chunks/{password-input-D6kuYXmr.js → password-input-C4LmjIH1.js} +6 -9
  121. package/dist/_chunks/password-input-C4LmjIH1.js.map +1 -0
  122. package/dist/_chunks/{patient-shell-BRmrrUUW.js → patient-shell-BlsEUKWB.js} +10 -15
  123. package/dist/_chunks/{patient-shell-BRmrrUUW.js.map → patient-shell-BlsEUKWB.js.map} +1 -1
  124. package/dist/_chunks/{payment-form-BWaXas8z.js → payment-form-B_BdHwjb.js} +197 -188
  125. package/dist/_chunks/payment-form-B_BdHwjb.js.map +1 -0
  126. package/dist/_chunks/{pdf-viewer.agent-BaGEDheA.js → pdf-viewer-CZIfY08H.js} +270 -241
  127. package/dist/_chunks/pdf-viewer-CZIfY08H.js.map +1 -0
  128. package/dist/_chunks/{phone-input-C8Op4sEc.js → phone-input-CSHJOJ13.js} +4 -9
  129. package/dist/_chunks/phone-input-CSHJOJ13.js.map +1 -0
  130. package/dist/_chunks/popover-DekUKNBk.js +293 -0
  131. package/dist/_chunks/popover-DekUKNBk.js.map +1 -0
  132. package/dist/_chunks/{privacy-lock.agent-C1i1-T58.js → privacy-lock-BKsI6ReN.js} +117 -109
  133. package/dist/_chunks/privacy-lock-BKsI6ReN.js.map +1 -0
  134. package/dist/_chunks/progress-C11tqhoI.js +298 -0
  135. package/dist/_chunks/progress-C11tqhoI.js.map +1 -0
  136. package/dist/_chunks/radio-DvF59ThA.js.map +1 -1
  137. package/dist/_chunks/radio-group-Cz1a4QCA.js.map +1 -1
  138. package/dist/_chunks/react-day-picker-C04L_28V.js.map +1 -1
  139. package/dist/_chunks/{recaptcha-widget.agent-BGHpU5zD.js → recaptcha-widget-NyfOfLII.js} +95 -86
  140. package/dist/_chunks/recaptcha-widget-NyfOfLII.js.map +1 -0
  141. package/dist/_chunks/resizable-mpXXyIsN.js +483 -0
  142. package/dist/_chunks/resizable-mpXXyIsN.js.map +1 -0
  143. package/dist/_chunks/{rich-text-editor.agent-DnE125Tz.js → rich-text-editor-C7TCIlQO.js} +298 -209
  144. package/dist/_chunks/rich-text-editor-C7TCIlQO.js.map +1 -0
  145. package/dist/_chunks/safe-image-src-DstKgCo7.js.map +1 -1
  146. package/dist/_chunks/{scroll-area-DLr5w9Dd.js → scroll-area-DEDU-lp-.js} +67 -54
  147. package/dist/_chunks/scroll-area-DEDU-lp-.js.map +1 -0
  148. package/dist/_chunks/{search-bar.agent-DxFAxctc.js → search-bar-BTDfgYtg.js} +291 -268
  149. package/dist/_chunks/search-bar-BTDfgYtg.js.map +1 -0
  150. package/dist/_chunks/{search-input-Xw3cdWXW.js → search-input-CdJIEjFo.js} +116 -107
  151. package/dist/_chunks/search-input-CdJIEjFo.js.map +1 -0
  152. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +1 -1
  153. package/dist/_chunks/{select-DY1Cb2Tg.js → select-y6bXV1f1.js} +84 -83
  154. package/dist/_chunks/select-y6bXV1f1.js.map +1 -0
  155. package/dist/_chunks/{separator-B4wXDLNC.js → separator-CYU_bGFn.js} +2 -5
  156. package/dist/_chunks/separator-CYU_bGFn.js.map +1 -0
  157. package/dist/_chunks/{sheet-B9kH9pcI.js → sheet-4tgMFwj0.js} +135 -60
  158. package/dist/_chunks/sheet-4tgMFwj0.js.map +1 -0
  159. package/dist/_chunks/{sidebar-CHF5xr_P.js → sidebar-Bx3wCDyy.js} +546 -457
  160. package/dist/_chunks/sidebar-Bx3wCDyy.js.map +1 -0
  161. package/dist/_chunks/{sign-in-with-alfadocs-button-BN_FPGHT.js → sign-in-with-alfadocs-button-B9UrqOqH.js} +9 -5
  162. package/dist/_chunks/sign-in-with-alfadocs-button-B9UrqOqH.js.map +1 -0
  163. package/dist/_chunks/{signature-capture.agent-BpeDwFht.js → signature-capture-DjMlFOzS.js} +210 -212
  164. package/dist/_chunks/signature-capture-DjMlFOzS.js.map +1 -0
  165. package/dist/_chunks/{skeleton-dtqyF09N.js → skeleton-CZbwyJAA.js} +9 -3
  166. package/dist/_chunks/skeleton-CZbwyJAA.js.map +1 -0
  167. package/dist/_chunks/skip-link-DmZ3c6cb.js.map +1 -1
  168. package/dist/_chunks/{slider-CcsQTZTA.js → slider-BT2bZWsy.js} +138 -134
  169. package/dist/_chunks/slider-BT2bZWsy.js.map +1 -0
  170. package/dist/_chunks/{slot-grid-D_l5VsHG.js → slot-grid-CgpYgBkW.js} +105 -95
  171. package/dist/_chunks/slot-grid-CgpYgBkW.js.map +1 -0
  172. package/dist/_chunks/{sparkline.agent-56Sj7nOP.js → sparkline-_gy8aJDG.js} +107 -100
  173. package/dist/_chunks/sparkline-_gy8aJDG.js.map +1 -0
  174. package/dist/_chunks/{spinner-GCcv67vh.js → spinner-DLaYfLPl.js} +66 -14
  175. package/dist/_chunks/spinner-DLaYfLPl.js.map +1 -0
  176. package/dist/_chunks/{stat-DUB6g90R.js → stat-B9PHSPbN.js} +45 -27
  177. package/dist/_chunks/stat-B9PHSPbN.js.map +1 -0
  178. package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js.map +1 -1
  179. package/dist/_chunks/{stepper-calendar.agent-9iT3ClIB.js → stepper-calendar-BLOJUE0-.js} +189 -187
  180. package/dist/_chunks/stepper-calendar-BLOJUE0-.js.map +1 -0
  181. package/dist/_chunks/stepper-progress-jFY8BSf7.js +208 -0
  182. package/dist/_chunks/stepper-progress-jFY8BSf7.js.map +1 -0
  183. package/dist/_chunks/streaming-text-BgjCTVOw.js.map +1 -1
  184. package/dist/_chunks/{suggestion-chip-DhFrkRPj.js → suggestion-chip-C4Jz0LrM.js} +50 -52
  185. package/dist/_chunks/suggestion-chip-C4Jz0LrM.js.map +1 -0
  186. package/dist/_chunks/suggestion-chip.agent-6sNWFj7m.js.map +1 -1
  187. package/dist/_chunks/{switch-BYEH8I53.js → switch-C0psfIQF.js} +2 -2
  188. package/dist/_chunks/switch-C0psfIQF.js.map +1 -0
  189. package/dist/_chunks/{tabs.agent-h7NvsTR1.js → tabs-DaFA3Muo.js} +183 -155
  190. package/dist/_chunks/tabs-DaFA3Muo.js.map +1 -0
  191. package/dist/_chunks/{tag-BqidXKo3.js → tag-DuLMjRbF.js} +90 -32
  192. package/dist/_chunks/tag-DuLMjRbF.js.map +1 -0
  193. package/dist/_chunks/{task-card-CY5ztNkU.js → task-card-Dw_ZJDL8.js} +5 -2
  194. package/dist/_chunks/task-card-Dw_ZJDL8.js.map +1 -0
  195. package/dist/_chunks/{task-tray-CCoUdorl.js → task-tray-XlIW9ueh.js} +50 -49
  196. package/dist/_chunks/task-tray-XlIW9ueh.js.map +1 -0
  197. package/dist/_chunks/{text-area-C_M8wliK.js → text-area-CO9Dz0qX.js} +2 -2
  198. package/dist/_chunks/text-area-CO9Dz0qX.js.map +1 -0
  199. package/dist/_chunks/{text-input-BX39e6T6.js → text-input-DZwt9L8H.js} +65 -62
  200. package/dist/_chunks/text-input-DZwt9L8H.js.map +1 -0
  201. package/dist/_chunks/{theme-root-DDb0TJjd.js → theme-root-CSKD5ZRm.js} +9 -2
  202. package/dist/_chunks/{theme-root-DDb0TJjd.js.map → theme-root-CSKD5ZRm.js.map} +1 -1
  203. package/dist/_chunks/{theme-toggle.agent-btmXTWdW.js → theme-toggle-B9zzCnvl.js} +179 -177
  204. package/dist/_chunks/theme-toggle-B9zzCnvl.js.map +1 -0
  205. package/dist/_chunks/{time-picker-B8AMIrX7.js → time-picker-DvPUmHH-.js} +95 -93
  206. package/dist/_chunks/time-picker-DvPUmHH-.js.map +1 -0
  207. package/dist/_chunks/{timeline.agent-CRPza9wc.js → timeline-BvmnQadS.js} +96 -96
  208. package/dist/_chunks/timeline-BvmnQadS.js.map +1 -0
  209. package/dist/_chunks/timestamp-BV2lC-wV.js.map +1 -1
  210. package/dist/_chunks/{toast.agent-BjEGuq1Z.js → toast.agent-BwKXA0km.js} +46 -8
  211. package/dist/_chunks/{toast.agent-BjEGuq1Z.js.map → toast.agent-BwKXA0km.js.map} +1 -1
  212. package/dist/_chunks/{tooth-scheme.agent-CWrQBjJM.js → tooth-scheme-3mITSXiZ.js} +146 -162
  213. package/dist/_chunks/tooth-scheme-3mITSXiZ.js.map +1 -0
  214. package/dist/_chunks/transaction-chip-DE6DITun.js +196 -0
  215. package/dist/_chunks/transaction-chip-DE6DITun.js.map +1 -0
  216. package/dist/_chunks/{transcript-panel.agent-BXEYP6w-.js → transcript-panel-Bx5ANMsv.js} +110 -101
  217. package/dist/_chunks/transcript-panel-Bx5ANMsv.js.map +1 -0
  218. package/dist/_chunks/{typing-indicator-CbUBf-Dx.js → typing-indicator-BZ5jXZPn.js} +27 -5
  219. package/dist/_chunks/typing-indicator-BZ5jXZPn.js.map +1 -0
  220. package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +1 -1
  221. package/dist/_chunks/{use-theme-BMUhembX.js → use-theme-B1cwAXJR.js} +2 -5
  222. package/dist/_chunks/use-theme-B1cwAXJR.js.map +1 -0
  223. package/dist/_chunks/{visually-hidden-Bw7vBHLm.js → visually-hidden-BHxEUGyT.js} +11 -2
  224. package/dist/_chunks/{visually-hidden-Bw7vBHLm.js.map → visually-hidden-BHxEUGyT.js.map} +1 -1
  225. package/dist/_chunks/{warning-stack-8Pa3pekh.js → warning-stack-VygGHSqC.js} +11 -13
  226. package/dist/_chunks/warning-stack-VygGHSqC.js.map +1 -0
  227. package/dist/_chunks/{workflow-map-D2A7rTEG.js → workflow-map-C-nlogPC.js} +430 -452
  228. package/dist/_chunks/workflow-map-C-nlogPC.js.map +1 -0
  229. package/dist/agent-catalog.json +594 -15
  230. package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +1 -1
  231. package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +1 -1
  232. package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +1 -1
  233. package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +1 -1
  234. package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +1 -1
  235. package/dist/components/_shared/date-locale.d.ts.map +1 -1
  236. package/dist/components/_shared/index.d.ts +2 -2
  237. package/dist/components/_shared/index.d.ts.map +1 -1
  238. package/dist/components/_shared/normalize-diacritics.d.ts.map +1 -1
  239. package/dist/components/_shared/safe-html.d.ts.map +1 -1
  240. package/dist/components/_shared/safe-image-src.d.ts.map +1 -1
  241. package/dist/components/_shared/use-focus-trap.d.ts.map +1 -1
  242. package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
  243. package/dist/components/accordion/accordion.d.ts.map +1 -1
  244. package/dist/components/accordion/index.d.ts +1 -1
  245. package/dist/components/accordion/index.d.ts.map +1 -1
  246. package/dist/components/accordion/index.js +5 -6
  247. package/dist/components/accordion/index.js.map +1 -1
  248. package/dist/components/agenda-card/agenda-card.d.ts.map +1 -1
  249. package/dist/components/agenda-card/index.js +1 -1
  250. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
  251. package/dist/components/agenda-tray/agenda-tray.d.ts +1 -1
  252. package/dist/components/agenda-tray/agenda-tray.d.ts.map +1 -1
  253. package/dist/components/agenda-tray/index.js +1 -1
  254. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
  255. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +1 -1
  256. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  257. package/dist/components/ai-prompt-input/index.js +1 -1
  258. package/dist/components/alert/alert.d.ts.map +1 -1
  259. package/dist/components/alert/index.d.ts +1 -1
  260. package/dist/components/alert/index.d.ts.map +1 -1
  261. package/dist/components/alert/index.js +1 -1
  262. package/dist/components/app-frame/app-frame.d.ts.map +1 -1
  263. package/dist/components/app-frame/index.js +1 -1
  264. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  265. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
  266. package/dist/components/audio-recorder/audio-recorder.d.ts.map +1 -1
  267. package/dist/components/audio-recorder/index.js +1 -1
  268. package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +1 -1
  269. package/dist/components/audio-visualiser/index.js +1 -1
  270. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
  271. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  272. package/dist/components/autocomplete/index.js +1 -1
  273. package/dist/components/avatar/avatar.d.ts.map +1 -1
  274. package/dist/components/badge/badge.d.ts.map +1 -1
  275. package/dist/components/badge/index.js +1 -1
  276. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
  277. package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
  278. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  279. package/dist/components/breadcrumb/index.js +1 -1
  280. package/dist/components/button/button.agent.d.ts.map +1 -1
  281. package/dist/components/button/button.d.ts.map +1 -1
  282. package/dist/components/button/icon-button.d.ts.map +1 -1
  283. package/dist/components/button/index.js +2 -2
  284. package/dist/components/button-group/button-group.d.ts.map +1 -1
  285. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  286. package/dist/components/calendar/calendar.d.ts.map +1 -1
  287. package/dist/components/calendar/contrast-warning.d.ts.map +1 -1
  288. package/dist/components/calendar/index.js +1 -1
  289. package/dist/components/card/card.d.ts.map +1 -1
  290. package/dist/components/card/index.js +1 -1
  291. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  292. package/dist/components/chart/chart.d.ts.map +1 -1
  293. package/dist/components/chart/index.d.ts +1 -1
  294. package/dist/components/chart/index.d.ts.map +1 -1
  295. package/dist/components/chart/index.js +1 -1
  296. package/dist/components/chat-container/chat-container.d.ts +1 -1
  297. package/dist/components/chat-container/chat-container.d.ts.map +1 -1
  298. package/dist/components/chat-container/index.js +2 -3
  299. package/dist/components/chat-container/index.js.map +1 -1
  300. package/dist/components/chat-input/chat-input.d.ts +1 -1
  301. package/dist/components/chat-input/chat-input.d.ts.map +1 -1
  302. package/dist/components/chat-input/index.js +3 -4
  303. package/dist/components/chat-input/index.js.map +1 -1
  304. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  305. package/dist/components/chat-message/index.js +1 -1
  306. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  307. package/dist/components/checkbox-group/checkbox-group.agent.d.ts.map +1 -1
  308. package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
  309. package/dist/components/checkbox-group/index.d.ts +1 -1
  310. package/dist/components/checkbox-group/index.d.ts.map +1 -1
  311. package/dist/components/collapsible/collapsible.d.ts +1 -1
  312. package/dist/components/collapsible/collapsible.d.ts.map +1 -1
  313. package/dist/components/collapsible/index.d.ts +1 -1
  314. package/dist/components/collapsible/index.d.ts.map +1 -1
  315. package/dist/components/collapsible/index.js +1 -1
  316. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
  317. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  318. package/dist/components/color-picker/index.js +1 -1
  319. package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
  320. package/dist/components/combobox/combobox.d.ts.map +1 -1
  321. package/dist/components/combobox/index.d.ts +1 -1
  322. package/dist/components/combobox/index.d.ts.map +1 -1
  323. package/dist/components/combobox/index.js +1 -1
  324. package/dist/components/command-palette/command-palette.d.ts +46 -13
  325. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  326. package/dist/components/command-palette/index.js +1 -1
  327. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
  328. package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +1 -1
  329. package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +1 -1
  330. package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +1 -1
  331. package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +1 -1
  332. package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +1 -1
  333. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +1 -1
  334. package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
  335. package/dist/components/data-table/data-table.d.ts +3 -1
  336. package/dist/components/data-table/data-table.d.ts.map +1 -1
  337. package/dist/components/data-table/index.js +1 -1
  338. package/dist/components/data-table/toolbar.d.ts +6 -5
  339. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  340. package/dist/components/date-picker/date-picker.d.ts +1 -1
  341. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  342. package/dist/components/date-picker/index.d.ts +1 -1
  343. package/dist/components/date-picker/index.d.ts.map +1 -1
  344. package/dist/components/date-picker/index.js +1 -1
  345. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  346. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  347. package/dist/components/date-range-picker/index.js +1 -1
  348. package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
  349. package/dist/components/date-time-picker/index.d.ts +1 -1
  350. package/dist/components/date-time-picker/index.d.ts.map +1 -1
  351. package/dist/components/date-time-picker/index.js +1 -1
  352. package/dist/components/description-list/description-list.d.ts +1 -2
  353. package/dist/components/description-list/description-list.d.ts.map +1 -1
  354. package/dist/components/description-list/index.js +1 -1
  355. package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
  356. package/dist/components/dialog/dialog.d.ts +2 -2
  357. package/dist/components/dialog/dialog.d.ts.map +1 -1
  358. package/dist/components/dialog/index.js +1 -1
  359. package/dist/components/dropdown-menu/dropdown-menu.d.ts +11 -16
  360. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  361. package/dist/components/dropdown-menu/index.js +3 -4
  362. package/dist/components/dropdown-menu/index.js.map +1 -1
  363. package/dist/components/empty-state/empty-state.d.ts.map +1 -1
  364. package/dist/components/empty-state/index.js +1 -1
  365. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
  366. package/dist/components/file-upload/file-upload.d.ts.map +1 -1
  367. package/dist/components/file-upload/index.d.ts +1 -1
  368. package/dist/components/file-upload/index.d.ts.map +1 -1
  369. package/dist/components/file-upload/index.js +1 -1
  370. package/dist/components/flag/flag.d.ts.map +1 -1
  371. package/dist/components/floating-action-button/floating-action-button.d.ts.map +1 -1
  372. package/dist/components/floating-action-button/index.js +1 -1
  373. package/dist/components/form-field/form-field-context.d.ts.map +1 -1
  374. package/dist/components/form-field/form-field.d.ts.map +1 -1
  375. package/dist/components/form-field/index.js +2 -2
  376. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
  377. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  378. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  379. package/dist/components/freemium-paywall/index.js +1 -1
  380. package/dist/components/header/header.d.ts.map +1 -1
  381. package/dist/components/header/index.js +1 -1
  382. package/dist/components/icon-button/index.js +1 -1
  383. package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
  384. package/dist/components/index.d.ts +1 -0
  385. package/dist/components/index.d.ts.map +1 -1
  386. package/dist/components/kbd/index.js +1 -1
  387. package/dist/components/kbd/kbd.d.ts.map +1 -1
  388. package/dist/components/key-value-pair/index.js +1 -1
  389. package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
  390. package/dist/components/link/index.js +1 -1
  391. package/dist/components/link/link.d.ts +1 -0
  392. package/dist/components/link/link.d.ts.map +1 -1
  393. package/dist/components/list/index.js +1 -1
  394. package/dist/components/list/list.agent.d.ts.map +1 -1
  395. package/dist/components/list/list.d.ts.map +1 -1
  396. package/dist/components/live-region/live-region.d.ts.map +1 -1
  397. package/dist/components/logo/index.js +1 -1
  398. package/dist/components/logo/logo.d.ts.map +1 -1
  399. package/dist/components/matrix-rain/index.js +1 -1
  400. package/dist/components/matrix-rain/matrix-rain.d.ts.map +1 -1
  401. package/dist/components/message-card/index.d.ts +1 -1
  402. package/dist/components/message-card/index.d.ts.map +1 -1
  403. package/dist/components/message-card/index.js +1 -1
  404. package/dist/components/message-card/message-card.d.ts.map +1 -1
  405. package/dist/components/message-tray/index.js +1 -1
  406. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  407. package/dist/components/message-tray/message-tray.d.ts +1 -1
  408. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  409. package/dist/components/multi-select/index.js +1 -1
  410. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
  411. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  412. package/dist/components/navigation-menu/index.js +1 -1
  413. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
  414. package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
  415. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
  416. package/dist/components/notification-card/index.d.ts +1 -1
  417. package/dist/components/notification-card/index.d.ts.map +1 -1
  418. package/dist/components/notification-card/index.js +1 -1
  419. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  420. package/dist/components/notification-tray/index.js +1 -1
  421. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  422. package/dist/components/notification-tray/notification-tray.d.ts +1 -1
  423. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  424. package/dist/components/number-input/index.js +1 -1
  425. package/dist/components/number-input/number-input.d.ts.map +1 -1
  426. package/dist/components/number-input/use-locale-number.d.ts.map +1 -1
  427. package/dist/components/otp-input/index.js +1 -1
  428. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
  429. package/dist/components/otp-input/otp-input.d.ts.map +1 -1
  430. package/dist/components/pagination/index.js +1 -1
  431. package/dist/components/pagination/pagination.d.ts +4 -6
  432. package/dist/components/pagination/pagination.d.ts.map +1 -1
  433. package/dist/components/password-input/index.js +1 -1
  434. package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
  435. package/dist/components/password-input/password-input.d.ts.map +1 -1
  436. package/dist/components/payment-form/index.js +7 -8
  437. package/dist/components/payment-form/index.js.map +1 -1
  438. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  439. package/dist/components/payment-form/payment-form.d.ts +1 -1
  440. package/dist/components/payment-form/payment-form.d.ts.map +1 -1
  441. package/dist/components/pdf-viewer/index.js +1 -1
  442. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  443. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  444. package/dist/components/phone-input/index.d.ts +1 -1
  445. package/dist/components/phone-input/index.d.ts.map +1 -1
  446. package/dist/components/phone-input/index.js +1 -1
  447. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
  448. package/dist/components/phone-input/phone-input.d.ts.map +1 -1
  449. package/dist/components/popover/index.js +3 -4
  450. package/dist/components/popover/index.js.map +1 -1
  451. package/dist/components/popover/popover.d.ts.map +1 -1
  452. package/dist/components/privacy-lock/index.js +1 -1
  453. package/dist/components/privacy-lock/privacy-lock.d.ts +1 -1
  454. package/dist/components/privacy-lock/privacy-lock.d.ts.map +1 -1
  455. package/dist/components/progress/index.js +3 -4
  456. package/dist/components/progress/index.js.map +1 -1
  457. package/dist/components/progress/progress.d.ts.map +1 -1
  458. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  459. package/dist/components/radio-group/radio.d.ts.map +1 -1
  460. package/dist/components/recaptcha-widget/index.js +1 -1
  461. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
  462. package/dist/components/recaptcha-widget/recaptcha-widget.d.ts.map +1 -1
  463. package/dist/components/resizable/index.d.ts +1 -1
  464. package/dist/components/resizable/index.d.ts.map +1 -1
  465. package/dist/components/resizable/index.js +1 -1
  466. package/dist/components/resizable/resizable-context.d.ts.map +1 -1
  467. package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
  468. package/dist/components/resizable/resizable.d.ts.map +1 -1
  469. package/dist/components/rich-text-editor/index.js +1 -1
  470. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  471. package/dist/components/scroll-area/index.js +1 -1
  472. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  473. package/dist/components/search-bar/index.js +1 -1
  474. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
  475. package/dist/components/search-bar/search-bar.d.ts +1 -1
  476. package/dist/components/search-bar/search-bar.d.ts.map +1 -1
  477. package/dist/components/search-input/index.js +1 -1
  478. package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
  479. package/dist/components/search-input/search-input.d.ts.map +1 -1
  480. package/dist/components/select/index.js +1 -1
  481. package/dist/components/select/select.agent.d.ts.map +1 -1
  482. package/dist/components/select/select.d.ts +1 -1
  483. package/dist/components/select/select.d.ts.map +1 -1
  484. package/dist/components/separator/index.js +1 -1
  485. package/dist/components/separator/separator.d.ts.map +1 -1
  486. package/dist/components/sheet/index.js +3 -4
  487. package/dist/components/sheet/index.js.map +1 -1
  488. package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
  489. package/dist/components/sheet/sheet.d.ts +2 -2
  490. package/dist/components/sheet/sheet.d.ts.map +1 -1
  491. package/dist/components/sidebar/index.js +7 -8
  492. package/dist/components/sidebar/index.js.map +1 -1
  493. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
  494. package/dist/components/sidebar/sidebar.d.ts +0 -2
  495. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  496. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  497. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +1 -1
  498. package/dist/components/signature-capture/index.js +1 -1
  499. package/dist/components/signature-capture/signature-capture.d.ts.map +1 -1
  500. package/dist/components/skeleton/index.js +1 -1
  501. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  502. package/dist/components/skip-link/skip-link.d.ts.map +1 -1
  503. package/dist/components/slider/index.js +1 -1
  504. package/dist/components/slider/slider.agent.d.ts.map +1 -1
  505. package/dist/components/slider/slider.d.ts.map +1 -1
  506. package/dist/components/slot-grid/index.js +1 -1
  507. package/dist/components/slot-grid/slot-grid.d.ts.map +1 -1
  508. package/dist/components/sparkline/index.js +1 -1
  509. package/dist/components/sparkline/sparkline.d.ts.map +1 -1
  510. package/dist/components/sparkline/use-linear-trend.d.ts.map +1 -1
  511. package/dist/components/spinner/index.js +1 -1
  512. package/dist/components/spinner/spinner.d.ts.map +1 -1
  513. package/dist/components/stat/index.js +1 -1
  514. package/dist/components/stat/stat.d.ts.map +1 -1
  515. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
  516. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -1
  517. package/dist/components/stepper-calendar/index.js +1 -1
  518. package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts.map +1 -1
  519. package/dist/components/stepper-calendar/stepper-calendar.d.ts +1 -1
  520. package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +1 -1
  521. package/dist/components/stepper-progress/index.d.ts +1 -1
  522. package/dist/components/stepper-progress/index.d.ts.map +1 -1
  523. package/dist/components/stepper-progress/index.js +1 -2
  524. package/dist/components/stepper-progress/index.js.map +1 -1
  525. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
  526. package/dist/components/stepper-progress/stepper-progress.d.ts +1 -1
  527. package/dist/components/stepper-progress/stepper-progress.d.ts.map +1 -1
  528. package/dist/components/streaming-text/streaming-text.d.ts.map +1 -1
  529. package/dist/components/suggestion-chip/index.js +1 -1
  530. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
  531. package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +1 -1
  532. package/dist/components/switch/index.js +1 -1
  533. package/dist/components/switch/switch.d.ts.map +1 -1
  534. package/dist/components/tabs/index.d.ts +1 -1
  535. package/dist/components/tabs/index.d.ts.map +1 -1
  536. package/dist/components/tabs/index.js +1 -1
  537. package/dist/components/tabs/tabs.d.ts.map +1 -1
  538. package/dist/components/tag/index.js +1 -1
  539. package/dist/components/tag/tag.d.ts.map +1 -1
  540. package/dist/components/task-card/index.js +1 -1
  541. package/dist/components/task-card/task-card.d.ts.map +1 -1
  542. package/dist/components/task-tray/index.js +1 -1
  543. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
  544. package/dist/components/task-tray/task-tray.d.ts +1 -1
  545. package/dist/components/task-tray/task-tray.d.ts.map +1 -1
  546. package/dist/components/text-area/index.js +1 -1
  547. package/dist/components/text-area/text-area.d.ts.map +1 -1
  548. package/dist/components/text-input/index.js +1 -1
  549. package/dist/components/text-input/text-input.d.ts.map +1 -1
  550. package/dist/components/theme-root/index.js +1 -1
  551. package/dist/components/theme-root/theme-root.d.ts.map +1 -1
  552. package/dist/components/theme-toggle/index.js +1 -1
  553. package/dist/components/theme-toggle/theme-toggle.d.ts +1 -1
  554. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
  555. package/dist/components/time-picker/index.js +1 -1
  556. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
  557. package/dist/components/time-picker/time-picker.d.ts +1 -1
  558. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  559. package/dist/components/timeline/index.js +1 -1
  560. package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
  561. package/dist/components/timeline/timeline.d.ts +1 -1
  562. package/dist/components/timeline/timeline.d.ts.map +1 -1
  563. package/dist/components/timestamp/timestamp.d.ts.map +1 -1
  564. package/dist/components/toast/index.js +1 -1
  565. package/dist/components/toast/toast.agent.d.ts.map +1 -1
  566. package/dist/components/toast/toast.d.ts.map +1 -1
  567. package/dist/components/tooth-scheme/index.js +1 -1
  568. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
  569. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  570. package/dist/components/tooth-scheme/tooth-scheme.d.ts +1 -1
  571. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  572. package/dist/components/transaction-chip/index.d.ts +3 -0
  573. package/dist/components/transaction-chip/index.d.ts.map +1 -0
  574. package/dist/components/transaction-chip/index.js +5 -0
  575. package/dist/components/transaction-chip/index.js.map +1 -0
  576. package/dist/components/transaction-chip/transaction-chip.d.ts +30 -0
  577. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -0
  578. package/dist/components/transcript-panel/index.js +1 -1
  579. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
  580. package/dist/components/transcript-panel/transcript-panel.d.ts +1 -1
  581. package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -1
  582. package/dist/components/typing-indicator/index.js +1 -1
  583. package/dist/components/typing-indicator/typing-indicator.d.ts.map +1 -1
  584. package/dist/components/visually-hidden/index.js +1 -1
  585. package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -1
  586. package/dist/components/warning-stack/index.js +1 -1
  587. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  588. package/dist/components/workflow/index.js +1 -1
  589. package/dist/components/workflow/workflow-card.d.ts.map +1 -1
  590. package/dist/components/workflow/workflow-editor.d.ts +1 -1
  591. package/dist/components/workflow/workflow-editor.d.ts.map +1 -1
  592. package/dist/components/workflow/workflow-map.d.ts.map +1 -1
  593. package/dist/components/workflow/workflow-types.d.ts.map +1 -1
  594. package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
  595. package/dist/hooks/index.js +1 -1
  596. package/dist/hooks/use-prefers-reduced-motion.d.ts.map +1 -1
  597. package/dist/hooks/use-theme.d.ts.map +1 -1
  598. package/dist/i18n/config.d.ts.map +1 -1
  599. package/dist/i18n/config.js +36 -0
  600. package/dist/i18n/config.js.map +1 -1
  601. package/dist/i18n/resources.d.ts +36 -0
  602. package/dist/i18n/resources.d.ts.map +1 -1
  603. package/dist/index.js +394 -402
  604. package/dist/index.js.map +1 -1
  605. package/dist/locales/de.json +12 -0
  606. package/dist/locales/en.json +12 -0
  607. package/dist/locales/it.json +12 -0
  608. package/dist/patterns/leo-assistant/index.js +1 -1
  609. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +1 -1
  610. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +1 -1
  611. package/dist/patterns/patient-shell/index.js +1 -1
  612. package/dist/patterns/patient-shell/patient-shell.d.ts.map +1 -1
  613. package/dist/safe-html/index.js +20 -3
  614. package/dist/safe-html/index.js.map +1 -1
  615. package/dist/tokens/apexcharts-theme.d.ts.map +1 -1
  616. package/dist/tokens.css +2 -2
  617. package/package.json +12 -2
  618. package/dist/_chunks/accordion-BEnrZmAn.js +0 -120
  619. package/dist/_chunks/accordion-BEnrZmAn.js.map +0 -1
  620. package/dist/_chunks/accordion.agent-BTjeO1Sx.js +0 -52
  621. package/dist/_chunks/accordion.agent-BTjeO1Sx.js.map +0 -1
  622. package/dist/_chunks/agenda-card-DwLIxgi7.js.map +0 -1
  623. package/dist/_chunks/agenda-tray-DUvengGQ.js.map +0 -1
  624. package/dist/_chunks/ai-prompt-input.agent-0NHYLTWD.js.map +0 -1
  625. package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
  626. package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
  627. package/dist/_chunks/audio-recorder.agent--VKeykUp.js.map +0 -1
  628. package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
  629. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js +0 -432
  630. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js.map +0 -1
  631. package/dist/_chunks/badge-mrstWxve.js.map +0 -1
  632. package/dist/_chunks/balance-cell-renderer-5CA7zpAi.js.map +0 -1
  633. package/dist/_chunks/breadcrumb.agent-GM2hAKFX.js.map +0 -1
  634. package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
  635. package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
  636. package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
  637. package/dist/_chunks/chart.agent-_pRYS17d.js.map +0 -1
  638. package/dist/_chunks/chat-container-Dl0Kfy5a.js +0 -175
  639. package/dist/_chunks/chat-container-Dl0Kfy5a.js.map +0 -1
  640. package/dist/_chunks/chat-container.agent-CM4WModE.js +0 -27
  641. package/dist/_chunks/chat-container.agent-CM4WModE.js.map +0 -1
  642. package/dist/_chunks/chat-input-C_tMQv92.js +0 -252
  643. package/dist/_chunks/chat-input-C_tMQv92.js.map +0 -1
  644. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js +0 -69
  645. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js.map +0 -1
  646. package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
  647. package/dist/_chunks/collapsible.agent-DkS1jVyn.js.map +0 -1
  648. package/dist/_chunks/color-picker-94qcBZqZ.js.map +0 -1
  649. package/dist/_chunks/combobox.agent-CAvUkkIe.js +0 -410
  650. package/dist/_chunks/combobox.agent-CAvUkkIe.js.map +0 -1
  651. package/dist/_chunks/command-palette.agent-HatEt_EM.js +0 -391
  652. package/dist/_chunks/command-palette.agent-HatEt_EM.js.map +0 -1
  653. package/dist/_chunks/date-range-picker-B2hGsffw.js.map +0 -1
  654. package/dist/_chunks/date-time-picker-Bzt0S8yO.js.map +0 -1
  655. package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
  656. package/dist/_chunks/dialog.agent-Daf1TTko.js +0 -179
  657. package/dist/_chunks/dialog.agent-Daf1TTko.js.map +0 -1
  658. package/dist/_chunks/dropdown-menu-C7AZipNz.js +0 -219
  659. package/dist/_chunks/dropdown-menu-C7AZipNz.js.map +0 -1
  660. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js +0 -43
  661. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js.map +0 -1
  662. package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
  663. package/dist/_chunks/file-upload.agent-DJaH2dHg.js +0 -681
  664. package/dist/_chunks/file-upload.agent-DJaH2dHg.js.map +0 -1
  665. package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
  666. package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
  667. package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
  668. package/dist/_chunks/freemium-paywall.agent-_nQqLyRF.js.map +0 -1
  669. package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
  670. package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
  671. package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
  672. package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
  673. package/dist/_chunks/leo-sidebar-BwINPdix.js.map +0 -1
  674. package/dist/_chunks/link-QheANk74.js.map +0 -1
  675. package/dist/_chunks/list.agent-D0iWt4VI.js +0 -420
  676. package/dist/_chunks/list.agent-D0iWt4VI.js.map +0 -1
  677. package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
  678. package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
  679. package/dist/_chunks/message-card-qhoGv947.js.map +0 -1
  680. package/dist/_chunks/message-tray-xHUCra-Y.js.map +0 -1
  681. package/dist/_chunks/multi-select.agent-Do6CeQUT.js.map +0 -1
  682. package/dist/_chunks/navigation-menu.agent-D69ND6Qq.js.map +0 -1
  683. package/dist/_chunks/notification-card-CsVEYJE-.js.map +0 -1
  684. package/dist/_chunks/notification-tray-DTXMq42J.js.map +0 -1
  685. package/dist/_chunks/number-input-fvGmnRy9.js.map +0 -1
  686. package/dist/_chunks/otp-input-EglXOUue.js.map +0 -1
  687. package/dist/_chunks/pagination.agent-BkZQl45y.js.map +0 -1
  688. package/dist/_chunks/password-input-D6kuYXmr.js.map +0 -1
  689. package/dist/_chunks/payment-form-BWaXas8z.js.map +0 -1
  690. package/dist/_chunks/payment-form.agent-kuIfodCj.js +0 -31
  691. package/dist/_chunks/payment-form.agent-kuIfodCj.js.map +0 -1
  692. package/dist/_chunks/pdf-viewer.agent-BaGEDheA.js.map +0 -1
  693. package/dist/_chunks/phone-input-C8Op4sEc.js.map +0 -1
  694. package/dist/_chunks/popover-kFN8s84V.js +0 -229
  695. package/dist/_chunks/popover-kFN8s84V.js.map +0 -1
  696. package/dist/_chunks/popover.agent-K_d1cfbj.js +0 -39
  697. package/dist/_chunks/popover.agent-K_d1cfbj.js.map +0 -1
  698. package/dist/_chunks/privacy-lock.agent-C1i1-T58.js.map +0 -1
  699. package/dist/_chunks/progress-wNsqkw8I.js +0 -253
  700. package/dist/_chunks/progress-wNsqkw8I.js.map +0 -1
  701. package/dist/_chunks/progress.agent-C68rDOXL.js +0 -27
  702. package/dist/_chunks/progress.agent-C68rDOXL.js.map +0 -1
  703. package/dist/_chunks/recaptcha-widget.agent-BGHpU5zD.js.map +0 -1
  704. package/dist/_chunks/resizable.agent-CMwZzvsi.js +0 -456
  705. package/dist/_chunks/resizable.agent-CMwZzvsi.js.map +0 -1
  706. package/dist/_chunks/rich-text-editor.agent-DnE125Tz.js.map +0 -1
  707. package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
  708. package/dist/_chunks/search-bar.agent-DxFAxctc.js.map +0 -1
  709. package/dist/_chunks/search-input-Xw3cdWXW.js.map +0 -1
  710. package/dist/_chunks/select-DY1Cb2Tg.js.map +0 -1
  711. package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
  712. package/dist/_chunks/sheet-B9kH9pcI.js.map +0 -1
  713. package/dist/_chunks/sheet.agent-QAyTOxgk.js +0 -46
  714. package/dist/_chunks/sheet.agent-QAyTOxgk.js.map +0 -1
  715. package/dist/_chunks/sidebar-CHF5xr_P.js.map +0 -1
  716. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js +0 -49
  717. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js.map +0 -1
  718. package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
  719. package/dist/_chunks/signature-capture.agent-BpeDwFht.js.map +0 -1
  720. package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
  721. package/dist/_chunks/slider-CcsQTZTA.js.map +0 -1
  722. package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
  723. package/dist/_chunks/sparkline.agent-56Sj7nOP.js.map +0 -1
  724. package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
  725. package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
  726. package/dist/_chunks/stepper-calendar.agent-9iT3ClIB.js.map +0 -1
  727. package/dist/_chunks/stepper-progress-Bmen-YXB.js +0 -149
  728. package/dist/_chunks/stepper-progress-Bmen-YXB.js.map +0 -1
  729. package/dist/_chunks/stepper-progress.agent-q9InWca4.js +0 -61
  730. package/dist/_chunks/stepper-progress.agent-q9InWca4.js.map +0 -1
  731. package/dist/_chunks/suggestion-chip-DhFrkRPj.js.map +0 -1
  732. package/dist/_chunks/switch-BYEH8I53.js.map +0 -1
  733. package/dist/_chunks/tabs.agent-h7NvsTR1.js.map +0 -1
  734. package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
  735. package/dist/_chunks/task-card-CY5ztNkU.js.map +0 -1
  736. package/dist/_chunks/task-tray-CCoUdorl.js.map +0 -1
  737. package/dist/_chunks/text-area-C_M8wliK.js.map +0 -1
  738. package/dist/_chunks/text-input-BX39e6T6.js.map +0 -1
  739. package/dist/_chunks/theme-toggle.agent-btmXTWdW.js.map +0 -1
  740. package/dist/_chunks/time-picker-B8AMIrX7.js.map +0 -1
  741. package/dist/_chunks/timeline.agent-CRPza9wc.js.map +0 -1
  742. package/dist/_chunks/tooth-scheme.agent-CWrQBjJM.js.map +0 -1
  743. package/dist/_chunks/transcript-panel.agent-BXEYP6w-.js.map +0 -1
  744. package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
  745. package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
  746. package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
  747. package/dist/_chunks/workflow-map-D2A7rTEG.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { jsx as a, jsxs as n } from "react/jsx-runtime";
2
2
  import { forwardRef as M, useMemo as P, useState as R, useRef as B, useCallback as L } from "react";
3
- import { c as U } from "./index-D2ZczOXr.js";
4
- import { useTranslation as W } from "react-i18next";
5
- import { I as E } from "./icon-button-Wnnde5lc.js";
6
- import { B as N } from "./button-7mLWcMp_.js";
7
- import { T as H } from "./timestamp-BV2lC-wV.js";
8
- import { X } from "./x-CCcI3eJp.js";
9
- const q = U(
3
+ import { c as D } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as U } from "react-i18next";
5
+ import { I as W } from "./icon-button-C4CGcYuz.js";
6
+ import { B as N } from "./button-DD_0Xdmr.js";
7
+ import { T as E } from "./timestamp-BV2lC-wV.js";
8
+ import { X as H } from "./x-CCcI3eJp.js";
9
+ const X = D(
10
10
  [
11
11
  "ds:relative ds:flex ds:gap-[var(--spacing-sm)]",
12
12
  "ds:rounded-[var(--radius-sm)]",
@@ -73,10 +73,10 @@ const q = U(
73
73
  "ds:focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]",
74
74
  "ds:forced-colors:focus-visible:after:outline-[CanvasText]"
75
75
  ].join(" ");
76
- function G(e) {
76
+ function q(e) {
77
77
  return /^(https?:\/\/(?!\/)|\/(?!\/)|#)/.test(e);
78
78
  }
79
- const J = M(
79
+ const G = M(
80
80
  ({
81
81
  item: e,
82
82
  variant: r = "compact",
@@ -89,7 +89,7 @@ const J = M(
89
89
  className: z,
90
90
  ...T
91
91
  }, K) => {
92
- const { t: u, i18n: v } = W(), S = P(() => {
92
+ const { t: u, i18n: v } = U(), S = P(() => {
93
93
  const s = new Date(e.createdAt);
94
94
  return Number.isNaN(s.getTime()) ? "" : new Intl.DateTimeFormat(v.language, {
95
95
  dateStyle: "medium",
@@ -112,7 +112,7 @@ const J = M(
112
112
  time: S,
113
113
  unreadSuffix: I,
114
114
  defaultValue: "{{title}}, {{time}}{{unreadSuffix}}"
115
- }), p = !!e.url && G(e.url), i = /* @__PURE__ */ a(
115
+ }), p = !!e.url && q(e.url), i = /* @__PURE__ */ a(
116
116
  "span",
117
117
  {
118
118
  className: [
@@ -130,7 +130,7 @@ const J = M(
130
130
  "aria-label": x,
131
131
  className: C + " ds:contents",
132
132
  onClick: (s) => {
133
- s.defaultPrevented || s.metaKey || s.ctrlKey || s.shiftKey || t(e);
133
+ s.defaultPrevented || s.metaKey || s.ctrlKey || s.shiftKey || (s.preventDefault(), t(e));
134
134
  },
135
135
  children: i
136
136
  }
@@ -149,7 +149,7 @@ const J = M(
149
149
  href: e.url,
150
150
  className: "ds:text-[color:var(--foreground)] ds:no-underline ds:hover:underline ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
151
151
  onClick: (s) => {
152
- s.defaultPrevented || s.metaKey || s.ctrlKey || s.shiftKey || t(e);
152
+ s.defaultPrevented || s.metaKey || s.ctrlKey || s.shiftKey || (s.preventDefault(), t(e));
153
153
  },
154
154
  children: i
155
155
  }
@@ -163,7 +163,7 @@ const J = M(
163
163
  "data-read": e.read ? "true" : "false",
164
164
  "data-leaving": g ? "true" : void 0,
165
165
  "aria-hidden": g || void 0,
166
- className: q({ variant: r, size: k, state: F, className: z }),
166
+ className: X({ variant: r, size: k, state: F, className: z }),
167
167
  ...T,
168
168
  children: [
169
169
  e.icon ? /* @__PURE__ */ a(
@@ -191,7 +191,7 @@ const J = M(
191
191
  ] }),
192
192
  e.description ? /* @__PURE__ */ a("p", { className: "ds:m-0 type-body-sm ds:text-[color:var(--muted-foreground)] ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:2] ds:break-words", children: e.description }) : null,
193
193
  /* @__PURE__ */ a(
194
- H,
194
+ E,
195
195
  {
196
196
  value: e.createdAt,
197
197
  shape: "chip",
@@ -212,7 +212,7 @@ const J = M(
212
212
  {
213
213
  href: e.url,
214
214
  onClick: (s) => {
215
- s.defaultPrevented || s.metaKey || s.ctrlKey || s.shiftKey || t == null || t(e);
215
+ s.defaultPrevented || s.metaKey || s.ctrlKey || s.shiftKey || (s.preventDefault(), t == null || t(e));
216
216
  },
217
217
  children: l
218
218
  }
@@ -232,9 +232,9 @@ const J = M(
232
232
  ] }) : null
233
233
  ] }),
234
234
  r === "compact" && d ? /* @__PURE__ */ a("span", { className: "ds:relative ds:z-[1] ds:opacity-0 ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:transition-opacity ds:motion-reduce:transition-none", children: /* @__PURE__ */ a(
235
- E,
235
+ W,
236
236
  {
237
- icon: /* @__PURE__ */ a(X, {}),
237
+ icon: /* @__PURE__ */ a(H, {}),
238
238
  intent: "ghost",
239
239
  size: "sm",
240
240
  "aria-label": u(
@@ -249,9 +249,9 @@ const J = M(
249
249
  );
250
250
  }
251
251
  );
252
- J.displayName = "NotificationCard";
252
+ G.displayName = "NotificationCard";
253
253
  export {
254
- J as N,
255
- G as i
254
+ G as N,
255
+ q as i
256
256
  };
257
- //# sourceMappingURL=notification-card-CsVEYJE-.js.map
257
+ //# sourceMappingURL=notification-card-uTPEvAQS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-card-uTPEvAQS.js","sources":["../../src/components/notification-card/notification-card.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { X } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Button } from '../button/button';\nimport { Timestamp } from '../timestamp';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface NotificationItem {\n /** Unique identifier for the notification. */\n id: string;\n /** Notification title — rendered on the first line. */\n title: string;\n /** Notification body — rendered as plain text. */\n description?: string;\n /** Optional leading glyph — a React node (usually a Lucide icon). */\n icon?: ReactNode;\n /** Optional action URL — when present the card title is an anchor. */\n url?: string;\n /** ISO-8601 timestamp of when the notification was created. */\n createdAt: string;\n /** Whether the notification has been seen. Unread items get accent styling. */\n read?: boolean;\n}\n\nexport interface NotificationCardProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'role' | 'title'>,\n VariantProps<typeof cardVariants> {\n /** The notification to render. */\n item: NotificationItem;\n /**\n * Layout shape.\n * - `compact` — single-line row with the whole card clickable (used by\n * NotificationTray).\n * - `dashboard` — alert-style block with explicit CTA and mark-as-read\n * controls (used by dashboards / sidebars).\n */\n variant?: 'compact' | 'dashboard';\n /** Visual density. */\n size?: 'sm' | 'md';\n /** Fires when the card title / body is activated. */\n onActivate?: (item: NotificationItem) => void;\n /** Fires when the dismiss control is activated. */\n onDismiss?: (item: NotificationItem) => void;\n /**\n * Label for the dashboard-variant CTA. Only rendered when `variant` is\n * `'dashboard'` and the item has a `url`.\n */\n ctaLabel?: string;\n /**\n * Label for the dashboard-variant mark-as-read link. Only rendered when\n * `variant` is `'dashboard'` and `onDismiss` is supplied.\n */\n dismissLabel?: string;\n /**\n * External exit-animation control. When supplied the card plays its\n * fade-out when this turns `true` and the consumer owns the subsequent\n * unmount (see NotificationTray). If omitted, the card self-manages the\n * exit on internal dismiss.\n */\n leaving?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst cardVariants = cva(\n [\n 'ds:relative ds:flex ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors',\n // Mount: fade + slide-down so a fresh notification reads as arriving.\n // `data-leaving=true` plays the matching exit, driven by the owning\n // tray's AnimatePresence loop.\n 'ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:slide-in-from-top-2 ds:motion-safe:duration-[var(--animation-duration)]',\n 'ds:data-[leaving=true]:motion-safe:animate-out ds:data-[leaving=true]:motion-safe:fade-out-0 ds:data-[leaving=true]:motion-safe:slide-out-to-top-2',\n // Pin the exit's end-state until React unmounts. Without `fill-mode-forwards`\n // tw-animate-css leaves the element at opacity:1 for one paint frame after\n // the animation ends — the \"flicker before it animates away\" bug.\n 'ds:data-[leaving=true]:motion-safe:fill-mode-forwards',\n 'ds:data-[leaving=true]:pointer-events-none',\n 'ds:motion-reduce:transition-none',\n 'ds:text-start',\n 'ds:forced-colors:border ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n variant: {\n compact: 'ds:items-start',\n dashboard:\n 'ds:flex-col ds:sm:flex-row ds:items-stretch ds:sm:items-start ds:shadow-[var(--shadow-md)] ds:bg-[color:var(--card)]',\n },\n size: {\n sm: 'ds:p-[var(--spacing-sm)]',\n md: 'ds:p-[var(--spacing-md)]',\n },\n state: {\n unread: '',\n read: 'ds:bg-transparent',\n },\n },\n compoundVariants: [\n {\n variant: 'compact',\n state: 'unread',\n class: 'ds:bg-[color:var(--accent)]/5',\n },\n {\n variant: 'compact',\n state: 'read',\n class: 'ds:hover:bg-[color:var(--muted)]/40',\n },\n {\n variant: 'dashboard',\n state: 'unread',\n class: 'ds:bg-[color:var(--accent)]/5',\n },\n ],\n defaultVariants: {\n variant: 'compact',\n size: 'sm',\n state: 'read',\n },\n },\n);\n\nconst stretchedLinkClass = [\n 'ds:focus-visible:outline-none',\n \"ds:after:content-[''] ds:after:absolute ds:after:inset-0 ds:after:rounded-[var(--radius-sm)]\",\n 'ds:after:pointer-events-auto',\n 'ds:focus-visible:after:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:after:outline-solid',\n 'ds:focus-visible:after:outline-[color:var(--ring)]',\n 'ds:focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:after:outline-[CanvasText]',\n].join(' ');\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nexport function isSafeNotificationUrl(url: string): boolean {\n // Reject protocol-relative (//host), javascript:, data:, mailto: etc.\n // Only http(s), same-origin absolute paths (/), and hash (#) anchors pass.\n return /^(https?:\\/\\/(?!\\/)|\\/(?!\\/)|#)/.test(url);\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const NotificationCard = forwardRef<\n HTMLDivElement,\n NotificationCardProps\n>(\n (\n {\n item,\n variant = 'compact',\n size = 'sm',\n onActivate,\n onDismiss,\n ctaLabel,\n dismissLabel,\n leaving,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n // Screen-reader time context — absolute & unambiguous rather than the\n // visible relative phrase, which drifts and reads less clearly aloud.\n const accessibleTime = useMemo(() => {\n const date = new Date(item.createdAt);\n if (Number.isNaN(date.getTime())) return '';\n return new Intl.DateTimeFormat(i18n.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(date);\n }, [item.createdAt, i18n.language]);\n\n /* Exit animation.\n * - When `leaving` is undefined (uncontrolled): the card owns the\n * fade-out — dismiss click flips `isLeaving`, waits for\n * --animation-duration, then fires onDismiss.\n * - When `leaving` is boolean (controlled, e.g. NotificationTray): the\n * parent owns the lifecycle — dismiss click fires onDismiss\n * immediately and the parent schedules unmount after the animation. */\n const isControlledLeaving = leaving !== undefined;\n const [isLeaving, setIsLeaving] = useState(false);\n const dismissTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const effectiveLeaving = isControlledLeaving ? leaving : isLeaving;\n\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n const handleDismiss = useCallback(() => {\n if (!onDismiss) return;\n if (isControlledLeaving || prefersReducedMotion) {\n onDismiss(item);\n return;\n }\n setIsLeaving(true);\n if (dismissTimerRef.current) clearTimeout(dismissTimerRef.current);\n const raw =\n (typeof window !== 'undefined' &&\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--animation-duration')) ||\n '200ms';\n const ms = raw.trim().endsWith('ms')\n ? parseFloat(raw)\n : parseFloat(raw) * 1000;\n dismissTimerRef.current = setTimeout(\n () => onDismiss(item),\n Number.isFinite(ms) ? ms : 200,\n );\n }, [onDismiss, item, isControlledLeaving, prefersReducedMotion]);\n\n const state = item.read ? 'read' : 'unread';\n\n const unreadSuffix = item.read\n ? ''\n : t('ui.notificationCard.unreadSuffix', ', unread');\n const ariaLabel = t('ui.notificationCard.itemLabel', {\n title: item.title,\n time: accessibleTime,\n unreadSuffix,\n defaultValue: '{{title}}, {{time}}{{unreadSuffix}}',\n });\n\n const hasSafeUrl = !!item.url && isSafeNotificationUrl(item.url);\n\n /* ------- Title rendering (stretched link in compact mode) ------- */\n\n const titleText = (\n <span\n className={[\n 'ds:flex-1 ds:min-w-0 ds:truncate',\n item.read ? 'ds:font-normal' : 'ds:font-semibold',\n ].join(' ')}\n >\n {item.title}\n </span>\n );\n\n let titleNode: ReactNode;\n if (variant === 'compact' && hasSafeUrl && onActivate) {\n titleNode = (\n <a\n href={item.url}\n aria-label={ariaLabel}\n className={stretchedLinkClass + ' ds:contents'}\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n event.preventDefault();\n onActivate(item);\n }}\n >\n {titleText}\n </a>\n );\n } else if (variant === 'compact' && onActivate) {\n titleNode = (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={\n stretchedLinkClass +\n ' ds:contents ds:bg-transparent ds:border-0 ds:p-0'\n }\n onClick={() => onActivate(item)}\n >\n {titleText}\n </button>\n );\n } else if (variant === 'dashboard' && hasSafeUrl && onActivate) {\n titleNode = (\n <a\n href={item.url}\n className=\"ds:text-[color:var(--foreground)] ds:no-underline ds:hover:underline ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]\"\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n event.preventDefault();\n onActivate(item);\n }}\n >\n {titleText}\n </a>\n );\n } else {\n titleNode = titleText;\n }\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n data-component=\"notification-card\"\n data-component-id={item.id}\n data-read={item.read ? 'true' : 'false'}\n data-leaving={effectiveLeaving ? 'true' : undefined}\n aria-hidden={effectiveLeaving || undefined}\n className={cardVariants({ variant, size, state, className })}\n {...rest}\n >\n {item.icon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center ds:size-8 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--accent)]/10 ds:text-[color:var(--accent)] ds:[&>svg]:size-4\"\n >\n {item.icon}\n </span>\n ) : null}\n\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {!item.read ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-block ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)] ds:forced-colors:bg-[Highlight]\"\n />\n ) : null}\n {variant === 'dashboard' ? (\n // `h3` keeps the dashboard heading ladder continuous:\n // h1 (page) → h2 (WarningStack + NotificationsPanel) → h3 (notification title).\n <h3 className=\"ds:m-0 ds:flex-1 ds:min-w-0 type-title-item\">\n {titleNode}\n </h3>\n ) : (\n <span className=\"ds:flex-1 ds:min-w-0 type-title-item ds:text-[color:var(--foreground)]\">\n {titleNode}\n </span>\n )}\n </div>\n\n {item.description ? (\n <p className=\"ds:m-0 type-body-sm ds:text-[color:var(--muted-foreground)] ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:2] ds:break-words\">\n {item.description}\n </p>\n ) : null}\n\n <Timestamp\n value={item.createdAt}\n shape=\"chip\"\n size=\"sm\"\n relativeWindow={12 * 60 * 60 * 1000}\n />\n\n {variant === 'dashboard' && (ctaLabel || dismissLabel) ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n {ctaLabel && hasSafeUrl ? (\n <Button\n intent=\"outline\"\n size=\"sm\"\n asChild\n className=\"ds:relative ds:z-[1]\"\n >\n <a\n href={item.url}\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n event.preventDefault();\n onActivate?.(item);\n }}\n >\n {ctaLabel}\n </a>\n </Button>\n ) : null}\n {dismissLabel && onDismiss ? (\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={handleDismiss}\n className=\"ds:relative ds:z-[1]\"\n >\n {dismissLabel}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {variant === 'compact' && onDismiss ? (\n <span className=\"ds:relative ds:z-[1] ds:opacity-0 ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:transition-opacity ds:motion-reduce:transition-none\">\n <IconButton\n icon={<X />}\n intent=\"ghost\"\n size=\"sm\"\n aria-label={t(\n 'ui.notificationCard.dismiss',\n 'Dismiss notification',\n )}\n onClick={handleDismiss}\n />\n </span>\n ) : null}\n </div>\n );\n },\n);\n\nNotificationCard.displayName = 'NotificationCard';\n"],"names":["cardVariants","cva","stretchedLinkClass","isSafeNotificationUrl","url","NotificationCard","forwardRef","item","variant","size","onActivate","onDismiss","ctaLabel","dismissLabel","leaving","className","rest","ref","t","i18n","useTranslation","accessibleTime","useMemo","date","isControlledLeaving","isLeaving","setIsLeaving","useState","dismissTimerRef","useRef","effectiveLeaving","prefersReducedMotion","handleDismiss","useCallback","raw","ms","state","unreadSuffix","ariaLabel","hasSafeUrl","titleText","jsx","titleNode","event","jsxs","Timestamp","Button","IconButton","X"],"mappings":"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"}
@@ -1,22 +1,22 @@
1
- import { jsx as t, jsxs as c, Fragment as E } from "react/jsx-runtime";
2
- import { forwardRef as re, useState as q, useCallback as F, useLayoutEffect as de, useEffect as H, useRef as u, useMemo as ce, useImperativeHandle as le } from "react";
1
+ import { jsx as t, jsxs as c, Fragment as q } from "react/jsx-runtime";
2
+ import { forwardRef as de, useState as F, useCallback as H, useLayoutEffect as ce, useEffect as U, useRef as f, useMemo as le, useImperativeHandle as fe } from "react";
3
3
  import * as x from "@radix-ui/react-popover";
4
- import { c as S } from "./index-D2ZczOXr.js";
5
- import { useTranslation as Y } from "react-i18next";
6
- import { I as fe } from "./icon-button-Wnnde5lc.js";
7
- import { B as U } from "./button-7mLWcMp_.js";
8
- import { S as W } from "./separator-B4wXDLNC.js";
9
- import { S as N } from "./skeleton-dtqyF09N.js";
10
- import { N as pe } from "./notification-card-CsVEYJE-.js";
11
- import { u as ue } from "./registry-C9nwlNyL.js";
12
- import { c as me } from "./createLucideIcon-CrFbzy84.js";
4
+ import { c as C } from "./index-D2ZczOXr.js";
5
+ import { useTranslation as G } from "react-i18next";
6
+ import { I as ue } from "./icon-button-C4CGcYuz.js";
7
+ import { B as W } from "./button-DD_0Xdmr.js";
8
+ import { S as Y } from "./separator-CYU_bGFn.js";
9
+ import { S as N } from "./skeleton-CZbwyJAA.js";
10
+ import { N as pe } from "./notification-card-uTPEvAQS.js";
11
+ import { u as me } from "./registry-C9nwlNyL.js";
12
+ import { c as ge } from "./createLucideIcon-CrFbzy84.js";
13
13
  /**
14
14
  * @license lucide-react v1.8.0 - ISC
15
15
  *
16
16
  * This source code is licensed under the ISC license.
17
17
  * See the LICENSE file in the root directory of this source tree.
18
18
  */
19
- const ge = [
19
+ const ve = [
20
20
  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
21
21
  [
22
22
  "path",
@@ -25,7 +25,7 @@ const ge = [
25
25
  key: "11g9vi"
26
26
  }
27
27
  ]
28
- ], G = me("bell", ge), ve = {
28
+ ], J = ge("bell", ve), ye = {
29
29
  id: "notification-tray",
30
30
  capabilities: ["open", "close", "select_single", "dismiss"],
31
31
  state: {
@@ -109,17 +109,20 @@ const ge = [
109
109
  description: "Stable notification id emitted on each rendered NotificationCard inside the tray."
110
110
  }
111
111
  }
112
- }, ye = S("ds:relative ds:inline-flex ds:items-center", {
113
- variants: {
114
- size: {
115
- sm: "",
116
- md: ""
112
+ }, he = C(
113
+ "ds:relative ds:inline-flex ds:items-center",
114
+ {
115
+ variants: {
116
+ size: {
117
+ sm: "",
118
+ md: ""
119
+ }
120
+ },
121
+ defaultVariants: {
122
+ size: "md"
117
123
  }
118
- },
119
- defaultVariants: {
120
- size: "md"
121
124
  }
122
- }), he = S(
125
+ ), xe = C(
123
126
  [
124
127
  "ds:flex ds:flex-col",
125
128
  "ds:bg-[var(--popover)] ds:text-[var(--popover-foreground)]",
@@ -160,7 +163,7 @@ const ge = [
160
163
  size: "md"
161
164
  }
162
165
  }
163
- ), xe = S(
166
+ ), Ne = C(
164
167
  [
165
168
  // Anchored to the top-end corner of the trigger, nudged outward so
166
169
  // the bell icon isn't covered.
@@ -175,7 +178,7 @@ const ge = [
175
178
  "ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]"
176
179
  ].join(" ")
177
180
  );
178
- function Ne(i, a) {
181
+ function be(i, a) {
179
182
  return i > 99 ? a : String(i);
180
183
  }
181
184
  function R() {
@@ -195,8 +198,8 @@ function R() {
195
198
  }
196
199
  );
197
200
  }
198
- function be() {
199
- const { t: i } = Y();
201
+ function Te() {
202
+ const { t: i } = G();
200
203
  return /* @__PURE__ */ c(
201
204
  "div",
202
205
  {
@@ -209,7 +212,7 @@ function be() {
209
212
  {
210
213
  "aria-hidden": "true",
211
214
  className: "ds:inline-flex ds:items-center ds:justify-center ds:size-10 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--muted)] ds:text-[color:var(--muted-foreground)] ds:[&>svg]:size-5",
212
- children: /* @__PURE__ */ t(G, {})
215
+ children: /* @__PURE__ */ t(J, {})
213
216
  }
214
217
  ),
215
218
  /* @__PURE__ */ t("p", { className: "type-title-item ds:text-[color:var(--foreground)]", children: i("ui.notificationTray.noNotifications", "No notifications") }),
@@ -221,18 +224,18 @@ function be() {
221
224
  }
222
225
  );
223
226
  }
224
- const Te = re(
227
+ const we = de(
225
228
  ({
226
229
  id: i,
227
230
  items: a,
228
231
  unseenCount: b,
229
- open: I,
230
- onOpenChange: m,
231
- onItemClick: f,
232
+ open: S,
233
+ onOpenChange: g,
234
+ onItemClick: u,
232
235
  onDismiss: p,
233
- onMarkRead: g,
234
- onMarkAllRead: j,
235
- loading: J = !1,
236
+ onMarkRead: v,
237
+ onMarkAllRead: I,
238
+ loading: j = !1,
236
239
  maxVisible: M,
237
240
  viewAllLabel: K,
238
241
  onViewAll: Q,
@@ -242,27 +245,27 @@ const Te = re(
242
245
  className: $,
243
246
  ...D
244
247
  }, ee) => {
245
- var L;
246
- const { t: r } = Y(), w = I !== void 0, [te, ie] = q(!1), z = w ? I : te, v = F(
248
+ var _;
249
+ const { t: r } = G(), w = S !== void 0, [te, ie] = F(!1), z = w ? S : te, y = H(
247
250
  (e) => {
248
- w || ie(e), m == null || m(e);
251
+ w || ie(e), g == null || g(e);
249
252
  },
250
- [w, m]
251
- ), [y, O] = q(
253
+ [w, g]
254
+ ), [m, O] = F(
252
255
  () => a.map((e) => ({ item: e, leaving: !1 }))
253
- ), V = F(() => {
256
+ ), V = H(() => {
254
257
  if (typeof window > "u") return 200;
255
258
  const e = window.getComputedStyle(document.documentElement).getPropertyValue("--animation-duration");
256
259
  if (!e) return 200;
257
260
  const n = e.trim(), s = parseFloat(n);
258
261
  return Number.isFinite(s) ? n.endsWith("ms") ? s : s * 1e3 : 200;
259
262
  }, []);
260
- de(() => {
263
+ ce(() => {
261
264
  O((e) => {
262
265
  const n = new Set(a.map((o) => o.id)), s = new Set(e.map((o) => o.item.id)), d = e.map((o) => {
263
266
  if (n.has(o.item.id)) {
264
- const _ = a.find((oe) => oe.id === o.item.id);
265
- return _ ? { item: _, leaving: !1 } : { ...o, leaving: !0 };
267
+ const E = a.find((re) => re.id === o.item.id);
268
+ return E ? { item: E, leaving: !1 } : { ...o, leaving: !0 };
266
269
  }
267
270
  return { ...o, leaving: !0 };
268
271
  });
@@ -270,15 +273,15 @@ const Te = re(
270
273
  s.has(o.id) || d.push({ item: o, leaving: !1 });
271
274
  return d;
272
275
  });
273
- }, [a]), H(() => {
274
- if (!y.some((s) => s.leaving)) return;
276
+ }, [a]), U(() => {
277
+ if (!m.some((s) => s.leaving)) return;
275
278
  const e = V(), n = setTimeout(() => {
276
279
  O((s) => s.filter((d) => !d.leaving));
277
280
  }, e);
278
281
  return () => clearTimeout(n);
279
- }, [y, V]);
280
- const k = u(null), A = u((L = a[0]) == null ? void 0 : L.id);
281
- H(() => {
282
+ }, [m, V]);
283
+ const k = f(null), A = f((_ = a[0]) == null ? void 0 : _.id);
284
+ U(() => {
282
285
  var s;
283
286
  const e = (s = a[0]) == null ? void 0 : s.id, n = A.current;
284
287
  if (n && e && n !== e && k.current) {
@@ -299,49 +302,50 @@ const Te = re(
299
302
  }) : r(
300
303
  "ui.notificationTray.triggerLabelNone",
301
304
  "Notifications, none unread"
302
- ), ne = Ne(
305
+ ), ne = be(
303
306
  h,
304
307
  r("ui.notificationTray.badgeCountOverflow", "99+")
305
- ), se = he({ size: T }), l = u(a);
308
+ ), se = xe({ size: T }), l = f(a);
306
309
  l.current = a;
307
- const B = u(b);
310
+ const B = f(b);
308
311
  B.current = b;
309
- const P = u(z);
312
+ const P = f(z);
310
313
  P.current = z;
311
- const C = ce(
314
+ const oe = le(
312
315
  () => ({
313
- open: () => v(!0),
314
- close: () => v(!1),
316
+ open: () => y(!0),
317
+ close: () => y(!1),
315
318
  isOpen: () => P.current,
316
319
  getItems: () => l.current.map((e) => ({ id: e.id, read: !!e.read })),
317
320
  getUnreadCount: () => B.current ?? l.current.filter((e) => !e.read).length,
318
321
  selectItem: (e) => {
319
322
  const n = l.current.find((s) => s.id === e);
320
- n && (f == null || f(n));
323
+ n && (u == null || u(n));
321
324
  },
322
325
  markRead: (e) => {
323
326
  const n = l.current.find((s) => s.id === e);
324
- n && (g == null || g(n));
327
+ n && (v == null || v(n));
325
328
  },
326
329
  dismiss: (e) => {
327
330
  const n = l.current.find((s) => s.id === e);
328
331
  n && (p == null || p(n));
329
332
  }
330
333
  }),
331
- [v, f, g, p]
332
- );
333
- return le(ee, () => C, [C]), ue(ve, C, i), /* @__PURE__ */ t(
334
+ [y, u, v, p]
335
+ ), L = f(null);
336
+ return fe(ee, () => L.current, []), me(ye, oe, i), /* @__PURE__ */ t(
334
337
  "div",
335
338
  {
339
+ ref: L,
336
340
  "data-component": "notification-tray",
337
341
  "data-component-id": i,
338
- className: [ye({ size: T }), $].filter(Boolean).join(" "),
342
+ className: [he({ size: T }), $].filter(Boolean).join(" "),
339
343
  ...D,
340
- children: /* @__PURE__ */ c(x.Root, { open: z, onOpenChange: v, children: [
344
+ children: /* @__PURE__ */ c(x.Root, { open: z, onOpenChange: y, children: [
341
345
  /* @__PURE__ */ t(x.Trigger, { asChild: !0, children: /* @__PURE__ */ t(
342
- fe,
346
+ ue,
343
347
  {
344
- icon: /* @__PURE__ */ t(G, {}),
348
+ icon: /* @__PURE__ */ t(J, {}),
345
349
  intent: "outline",
346
350
  size: T === "sm" ? "sm" : "md",
347
351
  "aria-label": ae,
@@ -353,7 +357,7 @@ const Te = re(
353
357
  {
354
358
  "aria-hidden": "true",
355
359
  "data-testid": "notification-tray-badge",
356
- className: xe(),
360
+ className: Ne(),
357
361
  children: ne
358
362
  }
359
363
  ) : null,
@@ -379,35 +383,35 @@ const Te = re(
379
383
  children: [
380
384
  /* @__PURE__ */ c("div", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: [
381
385
  /* @__PURE__ */ t("h3", { className: "ds:m-0 type-title-card ds:text-[color:var(--foreground)]", children: r("ui.notificationTray.panelTitle", "Notifications") }),
382
- j && a.some((e) => !e.read) ? /* @__PURE__ */ t(
383
- U,
386
+ I && a.some((e) => !e.read) ? /* @__PURE__ */ t(
387
+ W,
384
388
  {
385
389
  intent: "link",
386
390
  size: "sm",
387
- onClick: j,
391
+ onClick: I,
388
392
  className: "ds:text-[length:var(--font-size-xs)]",
389
393
  children: r("ui.notificationTray.markAllRead", "Mark all as read")
390
394
  }
391
395
  ) : null
392
396
  ] }),
393
- /* @__PURE__ */ t(W, {}),
397
+ /* @__PURE__ */ t(Y, {}),
394
398
  /* @__PURE__ */ t(
395
399
  "div",
396
400
  {
397
- role: "list",
401
+ role: j || m.length === 0 ? void 0 : "list",
398
402
  "data-max-visible": M,
399
403
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:overflow-y-auto ds:pt-[var(--spacing-xs)] ds:flex-1 ds:sm:flex-none ds:sm:[max-block-size:var(--notification-tray-max-block-size,24rem)]",
400
- children: J ? /* @__PURE__ */ c(E, { children: [
404
+ children: j ? /* @__PURE__ */ c(q, { children: [
401
405
  /* @__PURE__ */ t(R, {}),
402
406
  /* @__PURE__ */ t(R, {}),
403
407
  /* @__PURE__ */ t(R, {})
404
- ] }) : y.length === 0 ? /* @__PURE__ */ t(be, {}) : y.map(({ item: e, leaving: n }) => /* @__PURE__ */ t(
408
+ ] }) : m.length === 0 ? /* @__PURE__ */ t(Te, {}) : m.map(({ item: e, leaving: n }) => /* @__PURE__ */ t(
405
409
  pe,
406
410
  {
407
411
  item: e,
408
412
  variant: "compact",
409
413
  leaving: n,
410
- onActivate: f,
414
+ onActivate: u,
411
415
  onDismiss: p,
412
416
  "data-notification-id": e.id
413
417
  },
@@ -415,10 +419,10 @@ const Te = re(
415
419
  ))
416
420
  }
417
421
  ),
418
- K ? /* @__PURE__ */ c(E, { children: [
419
- /* @__PURE__ */ t(W, {}),
422
+ K ? /* @__PURE__ */ c(q, { children: [
423
+ /* @__PURE__ */ t(Y, {}),
420
424
  /* @__PURE__ */ t("div", { className: "ds:pt-[var(--spacing-xs)]", children: /* @__PURE__ */ t(
421
- U,
425
+ W,
422
426
  {
423
427
  intent: "link",
424
428
  size: "sm",
@@ -436,9 +440,9 @@ const Te = re(
436
440
  );
437
441
  }
438
442
  );
439
- Te.displayName = "NotificationTray";
443
+ we.displayName = "NotificationTray";
440
444
  export {
441
- Te as N,
442
- ve as n
445
+ we as N,
446
+ ye as n
443
447
  };
444
- //# sourceMappingURL=notification-tray-DTXMq42J.js.map
448
+ //# sourceMappingURL=notification-tray-PGtMqXbP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-tray-PGtMqXbP.js","sources":["../../node_modules/lucide-react/dist/esm/icons/bell.js","../../src/components/notification-tray/notification-tray.agent.ts","../../src/components/notification-tray/notification-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: \"M10.268 21a2 2 0 0 0 3.464 0\", key: \"vwvbt9\" }],\n [\n \"path\",\n {\n d: \"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\",\n key: \"11g9vi\"\n }\n ]\n];\nconst Bell = createLucideIcon(\"bell\", __iconNode);\n\nexport { __iconNode, Bell as default };\n//# sourceMappingURL=bell.js.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — NotificationTray. */\n/* */\n/* Tray-level surface: an agent can open / close the panel, read the */\n/* current items (id + read flag only — never PHI), and route per-item */\n/* operations (dismiss, mark_read, select) through the curated handle. */\n/* All actions are routed through the imperative handle; the adapter */\n/* never touches the DOM directly. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { NotificationTrayHandle } from './notification-tray';\n\nexport const notificationTrayAgent: AgentAdapter<NotificationTrayHandle> = {\n id: 'notification-tray',\n capabilities: ['open', 'close', 'select_single', 'dismiss'],\n state: {\n items: {\n type: 'Array<{ id: string; read: boolean }>',\n descriptionKey: 'ui.agent.notificationTray.state.items',\n description:\n 'Currently-displayed notifications. Ids + read flag only — no PHI.',\n read: (handle) => handle.getItems(),\n },\n unreadCount: {\n type: 'number',\n descriptionKey: 'ui.agent.notificationTray.state.unreadCount',\n description: 'Badge unread count surfaced by the host.',\n read: (handle) => handle.getUnreadCount(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.notificationTray.state.isOpen',\n description: 'Whether the dropdown panel is currently open.',\n read: (handle) => handle.isOpen(),\n },\n },\n actions: {\n open: {\n safety: 'read',\n descriptionKey: 'ui.agent.notificationTray.actions.open',\n description: 'Open the notification panel.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n descriptionKey: 'ui.agent.notificationTray.actions.close',\n description: 'Close the notification panel.',\n invoke: (handle) => {\n handle.close();\n },\n },\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.notificationTray.actions.selectItem',\n description: 'Activate the notification with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n mark_read: {\n safety: 'write',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.notificationTray.actions.markRead',\n description: 'Request the host to mark a notification as read.',\n invoke: (handle, args: { id: string }) => {\n handle.markRead(args.id);\n },\n },\n dismiss: {\n safety: 'destructive',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.notificationTray.actions.dismiss',\n description:\n 'Request the host to dismiss the notification with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.dismiss(args.id);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'notification-tray',\n description: 'Marks the NotificationTray wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific tray from the agent.',\n },\n item: {\n attr: 'data-notification-id',\n description:\n 'Stable notification id emitted on each rendered NotificationCard inside the tray.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n} from 'react';\nimport * as RadixPopover from '@radix-ui/react-popover';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Bell } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Button } from '../button/button';\nimport { Separator } from '../separator/separator';\nimport { Skeleton } from '../skeleton/skeleton';\nimport {\n NotificationCard,\n type NotificationItem,\n} from '../notification-card/notification-card';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { notificationTrayAgent } from './notification-tray.agent';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\n/**\n * Curated imperative handle for NotificationTray. Exposed as the\n * forwardRef target so a future agent / MCP UI bridge can drive the\n * tray without touching the DOM. See `notification-tray.agent.ts`.\n */\nexport interface NotificationTrayHandle {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n getItems: () => Array<{ id: string; read: boolean }>;\n getUnreadCount: () => number;\n selectItem: (id: string) => void;\n markRead: (id: string) => void;\n dismiss: (id: string) => void;\n}\n\nexport interface NotificationTrayProps\n extends\n Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onClick' | 'children' | 'role' | 'id'\n >,\n VariantProps<typeof notificationTrayVariants> {\n /**\n * Stable instance id. Surfaced on the root as `data-component-id` so\n * an agent / MCP UI bridge can address this specific tray.\n */\n id?: string;\n /** Fires when the host should mark a single notification as read (used by agent integration). */\n onMarkRead?: (item: NotificationItem) => void;\n /** Notifications rendered in the dropdown panel. */\n items: NotificationItem[];\n /** Number of unseen notifications. Drives the badge count. */\n unseenCount?: number;\n /** Controlled open state. */\n open?: boolean;\n /** Fires when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Fires when the user activates an item (click or Enter/Space). */\n onItemClick?: (item: NotificationItem) => void;\n /** Fires when the user dismisses a notification. */\n onDismiss?: (item: NotificationItem) => void;\n /** Fires when the user clicks the header \"Mark all as read\" action. */\n onMarkAllRead?: () => void;\n /** When true the panel shows skeleton placeholders. */\n loading?: boolean;\n /** Advisory item count before the list scrolls. Consumers override the cap\n * via the `--notification-tray-max-block-size` custom property. */\n maxVisible?: number;\n /** When set renders a footer link that invokes `onViewAll`. */\n viewAllLabel?: string;\n /** Fires when the footer \"View all\" link is clicked. */\n onViewAll?: () => void;\n /** Panel alignment relative to the trigger. Default `'end'`. */\n align?: 'start' | 'center' | 'end';\n /** Side of the trigger to open on. Default `'bottom'`. */\n side?: 'top' | 'bottom';\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst notificationTrayVariants = cva(\n 'ds:relative ds:inline-flex ds:items-center',\n {\n variants: {\n size: {\n sm: '',\n md: '',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\nconst panelVariants = cva(\n [\n 'ds:flex ds:flex-col',\n 'ds:bg-[var(--popover)] ds:text-[var(--popover-foreground)]',\n // Border kept (transparent) so the forced-colors override below can\n // repaint a visible edge in HCM. In normal modes the soft drop-shadow\n // carries the edge cue.\n 'ds:border ds:border-transparent',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:z-[var(--z-popover)]',\n // Width: fluid below the design cap so narrow viewports keep a visible\n // gutter on *both* sides of the panel (shadow included). The legacy\n // `min-w` approach clamped at 20rem, which flush-mounted the panel\n // against the inline-start viewport edge on phones.\n 'ds:w-[min(24rem,calc(100vw-2*var(--spacing-md)))]',\n // Height: below the `sm` breakpoint the panel takes a near-full-screen\n // sheet shape so the user gets room to triage messages / notifications\n // without scrolling a tiny popover. `6rem` reserves space for the\n // Header (≈4rem) plus the sideOffset + collisionPadding (≈2rem).\n // Above `sm` it returns to `h-auto` so the list's own\n // `--*-tray-max-block-size` cap governs the height.\n 'ds:h-[calc(100dvh-6rem)] ds:sm:h-auto',\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=closed]:fade-out-0 ds:data-[state=open]:fade-in-0',\n 'ds:data-[state=closed]:zoom-out-95 ds:data-[state=open]:zoom-in-95',\n 'ds:motion-reduce:transition-none ds:motion-reduce:animate-none',\n 'ds:focus-visible:outline-none',\n 'ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:p-[var(--spacing-xs)]',\n md: 'ds:p-[var(--spacing-sm)]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\nconst badgeVariants = cva(\n [\n // Anchored to the top-end corner of the trigger, nudged outward so\n // the bell icon isn't covered.\n 'ds:absolute ds:-top-[var(--spacing-xs)] ds:-end-[var(--spacing-xs)]',\n 'ds:inline-flex ds:items-center ds:justify-center',\n // Circle at 1-2 digits; widens into a pill only for \"99+\".\n 'ds:min-w-[calc(var(--spacing-md)+var(--spacing-xs))] ds:h-[calc(var(--spacing-md)+var(--spacing-xs))] ds:ps-[calc(var(--spacing-xs)/1.5)] ds:pe-[calc(var(--spacing-xs)/1.5)]',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:bg-[color:var(--destructive)] ds:text-[color:var(--destructive-foreground)]',\n 'ds:text-[length:var(--font-size-xs)] ds:font-semibold ds:leading-none',\n 'ds:pointer-events-none ds:select-none',\n 'ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]',\n ].join(' '),\n);\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction formatBadgeCount(count: number, overflowLabel: string): string {\n return count > 99 ? overflowLabel : String(count);\n}\n\nfunction SkeletonRow() {\n return (\n <div\n aria-hidden=\"true\"\n className=\"ds:flex ds:items-start ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]\"\n >\n <Skeleton variant=\"circular\" size=\"sm\" />\n <div className=\"ds:flex-1 ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <Skeleton variant=\"text\" size=\"md\" width=\"70%\" />\n <Skeleton variant=\"text\" size=\"sm\" width=\"90%\" />\n <Skeleton variant=\"text\" size=\"sm\" width=\"30%\" />\n </div>\n </div>\n );\n}\n\nfunction EmptyPanel() {\n const { t } = useTranslation();\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n className=\"ds:flex ds:flex-col ds:items-center ds:justify-center ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-lg)] ds:text-center\"\n >\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:justify-center ds:size-10 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--muted)] ds:text-[color:var(--muted-foreground)] ds:[&>svg]:size-5\"\n >\n <Bell />\n </span>\n <p className=\"type-title-item ds:text-[color:var(--foreground)]\">\n {t('ui.notificationTray.noNotifications', 'No notifications')}\n </p>\n <p className=\"type-meta ds:text-[color:var(--muted-foreground)]\">\n {t(\n 'ui.notificationTray.noNotificationsDescription',\n \"You're all caught up.\",\n )}\n </p>\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nexport const NotificationTray = forwardRef<\n HTMLDivElement,\n NotificationTrayProps\n>(\n (\n {\n id,\n items,\n unseenCount,\n open,\n onOpenChange,\n onItemClick,\n onDismiss,\n onMarkRead,\n onMarkAllRead,\n loading = false,\n maxVisible,\n viewAllLabel,\n onViewAll,\n align = 'end',\n side = 'bottom',\n size = 'md',\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = useState(false);\n const isOpen = isControlled ? open : internalOpen;\n\n const handleOpenChange = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n /* Exit-animation list (AnimatePresence-style).\n * `displayed` holds an entry per card that's currently mounted, even\n * briefly after the consumer removes an item from `items`. When the\n * consumer drops an id from `items`, we flip that entry to\n * `leaving: true` for one animation cycle, then prune it. */\n type Displayed = { item: NotificationItem; leaving: boolean };\n const [displayed, setDisplayed] = useState<Displayed[]>(() =>\n items.map((item) => ({ item, leaving: false })),\n );\n\n const animationDurationMs = useCallback((): number => {\n if (typeof window === 'undefined') return 200;\n const raw = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--animation-duration');\n if (!raw) return 200;\n const trimmed = raw.trim();\n const n = parseFloat(trimmed);\n if (!Number.isFinite(n)) return 200;\n return trimmed.endsWith('ms') ? n : n * 1000;\n }, []);\n\n // `useLayoutEffect` so the `leaving=true` flip applies in the same paint\n // as the consumer's `items` update. With `useEffect` the browser paints\n // once with the dismissed card still at `leaving=false` (no animation)\n // before the flag flips — a visible lag before the exit animation starts.\n useLayoutEffect(() => {\n setDisplayed((prev) => {\n const nextIds = new Set(items.map((i) => i.id));\n const prevIds = new Set(prev.map((d) => d.item.id));\n\n const merged: Displayed[] = prev.map((d) => {\n if (nextIds.has(d.item.id)) {\n const fresh = items.find((i) => i.id === d.item.id);\n return fresh\n ? { item: fresh, leaving: false }\n : { ...d, leaving: true };\n }\n return { ...d, leaving: true };\n });\n\n for (const i of items) {\n if (!prevIds.has(i.id)) merged.push({ item: i, leaving: false });\n }\n return merged;\n });\n }, [items]);\n\n useEffect(() => {\n if (!displayed.some((d) => d.leaving)) return;\n const ms = animationDurationMs();\n const timer = setTimeout(() => {\n setDisplayed((prev) => prev.filter((d) => !d.leaving));\n }, ms);\n return () => clearTimeout(timer);\n }, [displayed, animationDurationMs]);\n\n /* Polite live region — announces when a new unread notification\n floats to the top of the list, even with the panel closed. */\n const liveRegionRef = useRef<HTMLDivElement | null>(null);\n const lastTopIdRef = useRef<string | undefined>(items[0]?.id);\n\n useEffect(() => {\n const topId = items[0]?.id;\n const prev = lastTopIdRef.current;\n if (prev && topId && prev !== topId && liveRegionRef.current) {\n const newest = items[0];\n if (newest && !newest.read) {\n liveRegionRef.current.textContent = t(\n 'ui.notificationTray.newNotification',\n {\n title: newest.title,\n defaultValue: 'New notification: {{title}}',\n },\n );\n }\n }\n lastTopIdRef.current = topId;\n }, [items, t]);\n\n const displayCount = unseenCount ?? 0;\n const triggerAriaLabel =\n displayCount > 0\n ? t('ui.notificationTray.triggerLabel', {\n count: displayCount,\n defaultValue: 'Notifications, {{count}} unread',\n })\n : t(\n 'ui.notificationTray.triggerLabelNone',\n 'Notifications, none unread',\n );\n\n const badgeLabel = formatBadgeCount(\n displayCount,\n t('ui.notificationTray.badgeCountOverflow', '99+'),\n );\n\n const panelClass = panelVariants({ size });\n\n /* Curated imperative handle for agent integration. Pure look-ups +\n * delegations into the consumer-supplied callbacks; never touches the\n * DOM. See notification-tray.agent.ts. */\n const itemsRef = useRef<NotificationItem[]>(items);\n itemsRef.current = items;\n const unseenRef = useRef<number | undefined>(unseenCount);\n unseenRef.current = unseenCount;\n const isOpenRef = useRef<boolean>(isOpen);\n isOpenRef.current = isOpen;\n\n const handle = useMemo<NotificationTrayHandle>(\n () => ({\n open: () => handleOpenChange(true),\n close: () => handleOpenChange(false),\n isOpen: () => isOpenRef.current,\n getItems: () =>\n itemsRef.current.map((i) => ({ id: i.id, read: !!i.read })),\n getUnreadCount: () =>\n unseenRef.current ?? itemsRef.current.filter((i) => !i.read).length,\n selectItem: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onItemClick?.(found);\n },\n markRead: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onMarkRead?.(found);\n },\n dismiss: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onDismiss?.(found);\n },\n }),\n [handleOpenChange, onItemClick, onMarkRead, onDismiss],\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref, () => rootRef.current as HTMLDivElement, []);\n useAgentRegistration(notificationTrayAgent, handle, id);\n\n return (\n <div\n ref={rootRef}\n data-component=\"notification-tray\"\n data-component-id={id}\n className={[notificationTrayVariants({ size }), className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <RadixPopover.Root open={isOpen} onOpenChange={handleOpenChange}>\n <RadixPopover.Trigger asChild>\n <IconButton\n icon={<Bell />}\n intent=\"outline\"\n size={size === 'sm' ? 'sm' : 'md'}\n aria-label={triggerAriaLabel}\n aria-haspopup=\"dialog\"\n />\n </RadixPopover.Trigger>\n {displayCount > 0 ? (\n <span\n aria-hidden=\"true\"\n data-testid=\"notification-tray-badge\"\n className={badgeVariants()}\n >\n {badgeLabel}\n </span>\n ) : null}\n {/* Live region sits outside the popover so it announces even\n while the panel is closed. */}\n <div\n ref={liveRegionRef}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n />\n <RadixPopover.Portal>\n <RadixPopover.Content\n role=\"dialog\"\n aria-label={t('ui.notificationTray.panelTitle', 'Notifications')}\n side={side}\n align={align}\n sideOffset={8}\n // `spacing-md` (16px) keeps Radix's collision-avoidance from\n // flush-mounting the panel against the viewport edge when the\n // trigger is near the inline-end of a narrow screen.\n collisionPadding={16}\n className={panelClass}\n >\n <div className=\"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]\">\n <h3 className=\"ds:m-0 type-title-card ds:text-[color:var(--foreground)]\">\n {t('ui.notificationTray.panelTitle', 'Notifications')}\n </h3>\n {onMarkAllRead && items.some((item) => !item.read) ? (\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={onMarkAllRead}\n className=\"ds:text-[length:var(--font-size-xs)]\"\n >\n {t('ui.notificationTray.markAllRead', 'Mark all as read')}\n </Button>\n ) : null}\n </div>\n <Separator />\n {/* Cap at ~24rem so ~5 items fit before the list scrolls.\n Consumers override via the --notification-tray-max-block-size\n custom property on the root element. */}\n <div\n // `role=\"list\"` requires `listitem` children — applied only\n // when we render NotificationCards. The empty / loading\n // states render a `role=\"status\"` panel which would violate\n // aria-required-children if the list role were always on.\n role={loading || displayed.length === 0 ? undefined : 'list'}\n data-max-visible={maxVisible}\n // Below `sm` the panel is a near-full-screen sheet (see\n // `panelVariants`) and the list expands to fill the\n // remaining space with `flex-1`. Above `sm` the list\n // caps at the `--notification-tray-max-block-size` custom\n // property so the popover stays compact.\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:overflow-y-auto ds:pt-[var(--spacing-xs)] ds:flex-1 ds:sm:flex-none ds:sm:[max-block-size:var(--notification-tray-max-block-size,24rem)]\"\n >\n {loading ? (\n <>\n <SkeletonRow />\n <SkeletonRow />\n <SkeletonRow />\n </>\n ) : displayed.length === 0 ? (\n <EmptyPanel />\n ) : (\n displayed.map(({ item, leaving }) => (\n <NotificationCard\n key={item.id}\n item={item}\n variant=\"compact\"\n leaving={leaving}\n onActivate={onItemClick}\n onDismiss={onDismiss}\n data-notification-id={item.id}\n />\n ))\n )}\n </div>\n {viewAllLabel ? (\n <>\n <Separator />\n <div className=\"ds:pt-[var(--spacing-xs)]\">\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={onViewAll}\n className=\"ds:w-full ds:justify-center\"\n >\n {viewAllLabel}\n </Button>\n </div>\n </>\n ) : null}\n </RadixPopover.Content>\n </RadixPopover.Portal>\n </RadixPopover.Root>\n </div>\n );\n },\n);\n\nNotificationTray.displayName = 'NotificationTray';\n"],"names":["__iconNode","Bell","createLucideIcon","notificationTrayAgent","handle","args","notificationTrayVariants","cva","panelVariants","badgeVariants","formatBadgeCount","count","overflowLabel","SkeletonRow","jsxs","jsx","Skeleton","EmptyPanel","t","useTranslation","NotificationTray","forwardRef","id","items","unseenCount","open","onOpenChange","onItemClick","onDismiss","onMarkRead","onMarkAllRead","loading","maxVisible","viewAllLabel","onViewAll","align","side","size","className","rest","ref","isControlled","internalOpen","setInternalOpen","useState","isOpen","handleOpenChange","useCallback","next","displayed","setDisplayed","item","animationDurationMs","raw","trimmed","n","useLayoutEffect","prev","nextIds","i","prevIds","d","merged","fresh","useEffect","ms","timer","liveRegionRef","useRef","lastTopIdRef","_a","topId","newest","displayCount","triggerAriaLabel","badgeLabel","panelClass","itemsRef","unseenRef","isOpenRef","useMemo","targetId","found","rootRef","useImperativeHandle","useAgentRegistration","RadixPopover","IconButton","Button","Separator","Fragment","leaving","NotificationCard"],"mappings":"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","x_google_ignoreList":[0]}
@@ -2,7 +2,7 @@ import { jsxs as be, jsx as x } from "react/jsx-runtime";
2
2
  import { useMemo as J, forwardRef as ge, useRef as A, useState as E, useCallback as $, useEffect as he } from "react";
3
3
  import { c as Ne } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ye } from "react-i18next";
5
- import { u as we } from "./form-field-context-94LwgYTQ.js";
5
+ import { u as we } from "./form-field-context-B3APVHKx.js";
6
6
  import { c as Ie } from "./compose-refs-C0k0tdqF.js";
7
7
  import { u as De } from "./registry-C9nwlNyL.js";
8
8
  import { C as Fe } from "./chevron-down-BX_NP2Yh.js";
@@ -174,7 +174,11 @@ const Pe = ge(
174
174
  onKeyDown: c,
175
175
  ...m
176
176
  }, h) => {
177
- const { t: U } = ye(), D = we(), Q = a ?? D.id, C = !!(D.disabled || k), X = z ?? Ce(), P = Ve(X, p, T), { decimalSeparator: B, format: R, parse: K } = P, L = A(null), Y = Ie(h, L), H = t !== void 0, [Z, ee] = E(
177
+ const { t: U } = ye(), D = we(), Q = a ?? D.id, C = !!(D.disabled || k), X = z ?? Ce(), P = Ve(X, p, T), {
178
+ decimalSeparator: B,
179
+ format: R,
180
+ parse: K
181
+ } = P, L = A(null), Y = Ie(h, L), H = t !== void 0, [Z, ee] = E(
178
182
  r ?? null
179
183
  ), s = H ? t ?? null : Z, W = A(s);
180
184
  W.current = s;
@@ -330,4 +334,4 @@ export {
330
334
  Pe as N,
331
335
  Ve as u
332
336
  };
333
- //# sourceMappingURL=number-input-fvGmnRy9.js.map
337
+ //# sourceMappingURL=number-input-Q7wkHnvQ.js.map