@alfadocs/ui-kit 0.68.0 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/dist/_chunks/{accordion-9lJSMMsZ.js → accordion-DnIa7OHX.js} +69 -47
  2. package/dist/_chunks/address-autocomplete-BEX9PXty.js +496 -0
  3. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  4. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js → agenda-card.agent-mTCrkKSZ.js} +6 -1
  5. package/dist/_chunks/{agenda-tray-T-BumlGZ.js → agenda-tray-CGXRk58j.js} +37 -25
  6. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js → ai-consent-banner-Be-h9mRI.js} +5 -5
  7. package/dist/_chunks/{ai-prompt-input-BwEACCPm.js → ai-prompt-input-CuhTo9mh.js} +80 -61
  8. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
  9. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  10. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js → alia-sidebar-B47qRQb5.js} +5 -5
  11. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js → anamnesis-card-DvYCa16e.js} +3 -3
  12. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  13. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  14. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  15. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  16. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  17. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  18. package/dist/_chunks/{audio-recorder-DjXLP4aF.js → audio-recorder-Cpdk5qpQ.js} +60 -57
  19. package/dist/_chunks/{autocomplete-CcCFlVf-.js → autocomplete-DOeGouCL.js} +157 -132
  20. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  21. package/dist/_chunks/bishop-score-DnYWtZa_.js +304 -0
  22. package/dist/_chunks/bmi-calculator-zjeY4E7J.js +434 -0
  23. package/dist/_chunks/{booking-L8-YP8BJ.js → booking-DUBI0oqt.js} +422 -399
  24. package/dist/_chunks/{breadcrumb-OTbaY70e.js → breadcrumb-CchdeG7d.js} +42 -28
  25. package/dist/_chunks/{calculator-dialog-CFk4I91b.js → calculator-dialog-BR5iU0kf.js} +2 -2
  26. package/dist/_chunks/{calendar-oYWOCrnf.js → calendar-CZUjL8SZ.js} +258 -201
  27. package/dist/_chunks/{care-plan-card-BwVUyUBb.js → care-plan-card-C5sTfY9G.js} +13 -9
  28. package/dist/_chunks/{care-plan-entry-card-VzdQHcOL.js → care-plan-entry-card-CXnxGCWA.js} +20 -16
  29. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  30. package/dist/_chunks/{carousel.agent-vt21A_el.js → carousel.agent-4v8Emr9E.js} +219 -198
  31. package/dist/_chunks/{chart-Cg3e9EH9.js → chart-CMr3eW62.js} +150 -109
  32. package/dist/_chunks/{chat-container-ogB4OskO.js → chat-container-DWho5hPR.js} +47 -34
  33. package/dist/_chunks/{chat-input-B5zjNEUN.js → chat-input-BcXTetgM.js} +57 -41
  34. package/dist/_chunks/{checkbox-DRcOdmXv.js → checkbox-BuZ1u__2.js} +41 -27
  35. package/dist/_chunks/{checkbox-group-CpUwlHug.js → checkbox-group-PqNmQ-cE.js} +3 -3
  36. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  37. package/dist/_chunks/{collapsible-X3oaLPU3.js → collapsible-BrnRiCC6.js} +26 -23
  38. package/dist/_chunks/{color-picker-FXpItIaF.js → color-picker-C_fZl6sA.js} +124 -112
  39. package/dist/_chunks/{combobox-BC-DFx8G.js → combobox-Clum7gJ1.js} +165 -128
  40. package/dist/_chunks/{command-palette-BiPAAno-.js → command-palette-CJzmc5pC.js} +87 -64
  41. package/dist/_chunks/{contact-profile-card-7BMB85T6.js → contact-profile-card-DDPwRFiP.js} +13 -11
  42. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  43. package/dist/_chunks/{copy-field-CCq7j6Zc.js → copy-field-Bjw9u2cV.js} +42 -35
  44. package/dist/_chunks/counter-dRlTNC_y.js +55 -0
  45. package/dist/_chunks/{cycle-calculator-BF0ointe.js → cycle-calculator-CCmPwcBl.js} +4 -4
  46. package/dist/_chunks/{date-picker-oGg5BnXL.js → date-picker-Dl9RKxaV.js} +76 -57
  47. package/dist/_chunks/{date-range-picker-C5BWfH_T.js → date-range-picker-CTUeR6Bj.js} +73 -46
  48. package/dist/_chunks/{date-time-picker-Ze1My59T.js → date-time-picker-BhoogS5Q.js} +64 -40
  49. package/dist/_chunks/{dependent-selector-DpzGtr_J.js → dependent-selector-DUV4thxX.js} +45 -31
  50. package/dist/_chunks/{dialog-DMGnSelc.js → dialog-ZNuboNmy.js} +35 -28
  51. package/dist/_chunks/{document-scanner-D2qehl3-.js → document-scanner-C_AxLooF.js} +13 -5
  52. package/dist/_chunks/{dropdown-menu-DwwPovMZ.js → dropdown-menu-qrxjymfw.js} +94 -93
  53. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js → due-date-calculator-Brdj-euS.js} +6 -6
  54. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  55. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  56. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  57. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  58. package/dist/_chunks/{fetal-weight-BVSzOhuR.js → fetal-weight-DNCkyeVo.js} +3 -3
  59. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  60. package/dist/_chunks/{file-upload-BosbPDb1.js → file-upload-DwZcAK8D.js} +119 -100
  61. package/dist/_chunks/{fiscal-code-input-DPtqluVb.js → fiscal-code-input-Cf-8O4Fj.js} +76 -63
  62. package/dist/_chunks/{freemium-paywall-CkWjv3o6.js → freemium-paywall-WYlNO7yT.js} +78 -71
  63. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js → gestational-age-calculator-CF2ISaYQ.js} +7 -7
  64. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  65. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js → hcg-doubling-C7bmuaU3.js} +4 -4
  66. package/dist/_chunks/{header-settings-CNOqIhoW.js → header-settings-DJqoAl5m.js} +86 -46
  67. package/dist/_chunks/{index.modern-D2LGACWg.js → index.modern-Zta-A4Jm.js} +3 -3
  68. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js +2184 -0
  69. package/dist/_chunks/{list-BOwqwy03.js → list-DgE1xWBM.js} +99 -84
  70. package/dist/_chunks/{locale-picker-C9JmBht3.js → locale-picker-ChYYSX2N.js} +47 -35
  71. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  72. package/dist/_chunks/{map-view-Tb5VfK9Y.js → map-view-BkOoGoX2.js} +160 -115
  73. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js → marketplace-app-shell-Skhfp6vK.js} +6 -6
  74. package/dist/_chunks/{message-card.agent-4IeIgrnJ.js → message-card.agent-ZLhx3Bs5.js} +6 -1
  75. package/dist/_chunks/{message-tray-CVyJajVJ.js → message-tray-DwrBLJlf.js} +90 -48
  76. package/dist/_chunks/{multi-select-BcPylvHR.js → multi-select-BdHHDrRN.js} +196 -153
  77. package/dist/_chunks/{navigation-menu-C6lBYVv9.js → navigation-menu-DRUi6sSj.js} +75 -42
  78. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  79. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  80. package/dist/_chunks/{notification-card.agent-Rqt3ofk9.js → notification-card.agent-DxGBZb8T.js} +5 -1
  81. package/dist/_chunks/{notification-tray-DlgenTEe.js → notification-tray-AEun6DN2.js} +112 -97
  82. package/dist/_chunks/{number-input-Dj5L3pXK.js → number-input-DxphVG_A.js} +36 -27
  83. package/dist/_chunks/{operator-hero-f_KaRhw5.js → operator-hero-CR0Rqh4-.js} +14 -10
  84. package/dist/_chunks/{otp-input-xQ4Ps5VY.js → otp-input-DzBQ-CpE.js} +52 -33
  85. package/dist/_chunks/{pagination-DQOgnxxw.js → pagination-D58kglCr.js} +181 -162
  86. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  87. package/dist/_chunks/{patient-search-DR9XUYRQ.js → patient-search-Be6cLrHR.js} +70 -61
  88. package/dist/_chunks/{patient-shell-BfgufL_q.js → patient-shell-DV3XEtIB.js} +3 -3
  89. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  90. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  91. package/dist/_chunks/{payment-form-nXocS_MX.js → payment-form-CxqIXqw7.js} +57 -45
  92. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js → payment-request-card-BcZJwu9z.js} +125 -136
  93. package/dist/_chunks/{pdf-viewer-GsfNqeeT.js → pdf-viewer-QfebdLOd.js} +317 -291
  94. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js → periodontal-chart-card-hRRJY1NN.js} +3 -3
  95. package/dist/_chunks/{phone-input-DVXhNlIl.js → phone-input-DjU-XmO_.js} +64 -47
  96. package/dist/_chunks/{popover-DTbfAuR0.js → popover-B2qCDhJC.js} +37 -32
  97. package/dist/_chunks/{practice-results-DND2SAt7.js → practice-results-C6qDfxos.js} +280 -244
  98. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js → pregnancy-dating-CRVWswD-.js} +8 -8
  99. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js → pregnancy-weight-gain-BUNpTsH-.js} +4 -4
  100. package/dist/_chunks/{privacy-lock-C7JyMf0y.js → privacy-lock-BzMLQu-j.js} +32 -28
  101. package/dist/_chunks/{product-hub-panel-CAXDFeGP.js → product-hub-panel-e6pW220e.js} +45 -27
  102. package/dist/_chunks/{progress-kzIRcdaq.js → progress-DA413-zn.js} +2 -2
  103. package/dist/_chunks/{public-footer.agent-CfXuW1x6.js → public-footer.agent-D0cFbjWl.js} +151 -146
  104. package/dist/_chunks/{public-header.agent-BOhJgZEU.js → public-header.agent-DqkqA-ca.js} +107 -102
  105. package/dist/_chunks/{qr-code-DNXhi6se.js → qr-code-CPkEs5mG.js} +52 -46
  106. package/dist/_chunks/{radio-group-CLjK-SlK.js → radio-group-BPt7pKZW.js} +5 -5
  107. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  108. package/dist/_chunks/{recaptcha-widget-BCNHsgqt.js → recaptcha-widget-BC-4To9b.js} +9 -2
  109. package/dist/_chunks/registry-DvAUVLHh.js +51 -0
  110. package/dist/_chunks/{resizable-3vzqDlg6.js → resizable-DVGcfOrk.js} +193 -173
  111. package/dist/_chunks/{reviews-panel-DBktKm7i.js → reviews-panel-Dq7LMDcH.js} +87 -68
  112. package/dist/_chunks/{rich-text-editor-VawKN1FI.js → rich-text-editor-DlCqPixb.js} +833 -728
  113. package/dist/_chunks/{search-bar-SY2BcV2N.js → search-bar-C_T3pBJn.js} +105 -78
  114. package/dist/_chunks/{search-input-DbxrnHkW.js → search-input-DQvGxR74.js} +2 -2
  115. package/dist/_chunks/{search-input.agent-CfZvViOd.js → search-input.agent-DRH54coT.js} +19 -4
  116. package/dist/_chunks/{select-CEtRcon5.js → select-DMLG44F5.js} +72 -56
  117. package/dist/_chunks/{session-countdown-LPnhTHjn.js → session-countdown-X1Ki6i0M.js} +3 -3
  118. package/dist/_chunks/{sheet-taJer-Ha.js → sheet-BxsE7eQm.js} +59 -45
  119. package/dist/_chunks/{sidebar-DaB4ulxH.js → sidebar-DY9jGjgt.js} +254 -248
  120. package/dist/_chunks/{sign-document-CdAiHiCh.js → sign-document-By6hMOra.js} +75 -49
  121. package/dist/_chunks/{signature-capture-COi0Uiqu.js → signature-capture-Ct_4Md4e.js} +138 -104
  122. package/dist/_chunks/{slider-BHWzXdjt.js → slider-DN1CWkKB.js} +85 -65
  123. package/dist/_chunks/{sparkline-DGhCSw8M.js → sparkline-iOXYgvJe.js} +75 -53
  124. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  125. package/dist/_chunks/{stepper-accordion.agent-C4quJ-MD.js → stepper-accordion.agent-cmEguIdx.js} +7 -1
  126. package/dist/_chunks/{stepper-progress-DDjq5nei.js → stepper-progress-Bv0njx4g.js} +30 -24
  127. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js → suggestion-chip.agent-Brn3CiFE.js} +9 -8
  128. package/dist/_chunks/{switch-BJ6HD3Mn.js → switch-OILsBLWo.js} +25 -19
  129. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  130. package/dist/_chunks/{tabs-BIQ0ew1T.js → tabs-BxcOziCo.js} +67 -58
  131. package/dist/_chunks/{task-card.agent-CUPKYd7w.js → task-card.agent-Bt14CzUd.js} +4 -1
  132. package/dist/_chunks/{task-tray-CAncV-QQ.js → task-tray-qOEQflu4.js} +74 -57
  133. package/dist/_chunks/{text-area-BIx0tZ05.js → text-area-Bt3p7Pt0.js} +41 -34
  134. package/dist/_chunks/{text-input-BaClJL8Y.js → text-input-B-OWQ1Je.js} +15 -8
  135. package/dist/_chunks/{theme-toggle-DETmSu_h.js → theme-toggle-XB6o_lgs.js} +38 -26
  136. package/dist/_chunks/{time-picker-B5umYwfv.js → time-picker-BPlJWm8w.js} +41 -31
  137. package/dist/_chunks/{timeline-DQa5Tyz4.js → timeline-CqA4nKTI.js} +33 -25
  138. package/dist/_chunks/{toast.agent-vuLRRn2a.js → toast.agent-57UzyR9U.js} +62 -45
  139. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  140. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  141. package/dist/_chunks/{transcript-panel-CLHmv83g.js → transcript-panel-3THQX6nJ.js} +47 -33
  142. package/dist/_chunks/unit-converter-YEpD9evj.js +337 -0
  143. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  144. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  145. package/dist/_chunks/{use-password-requirements-DsgduV1x.js → use-password-requirements-BXvS2MBS.js} +131 -117
  146. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  147. package/dist/_chunks/users-MBVtUzwd.js +17 -0
  148. package/dist/_chunks/warning-stack--sTrrBDA.js +268 -0
  149. package/dist/_chunks/{whatsapp-button-DUjlWGKf.js → whatsapp-button-BIy6NaJK.js} +6 -3
  150. package/dist/_chunks/{workflow-map-JAZryZJr.js → workflow-map-Dy8mLCqF.js} +101 -90
  151. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  152. package/dist/agent/index.d.ts +4 -4
  153. package/dist/agent/index.js +37 -0
  154. package/dist/agent/registry.d.ts +33 -0
  155. package/dist/agent/types.d.ts +97 -4
  156. package/dist/agent-catalog.json +8081 -518
  157. package/dist/agent-i18n/en.json +1277 -0
  158. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  159. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  160. package/dist/components/_shared/field-value.d.ts +21 -0
  161. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  162. package/dist/components/_shared/field-visibility.d.ts +36 -0
  163. package/dist/components/_shared/patient-fields.d.ts +119 -0
  164. package/dist/components/accordion/index.js +1 -1
  165. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts +4 -0
  166. package/dist/components/address-autocomplete/address-autocomplete.d.ts +18 -0
  167. package/dist/components/address-autocomplete/index.d.ts +2 -1
  168. package/dist/components/address-autocomplete/index.js +3 -2
  169. package/dist/components/agenda-card/index.js +2 -2
  170. package/dist/components/agenda-tray/index.js +1 -1
  171. package/dist/components/ai-consent-banner/index.js +1 -1
  172. package/dist/components/ai-prompt-input/index.js +1 -1
  173. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  174. package/dist/components/ai-tools-rail/index.js +1 -1
  175. package/dist/components/alert/alert.d.ts +5 -0
  176. package/dist/components/alert/index.js +1 -1
  177. package/dist/components/anamnesis-card/index.js +1 -1
  178. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  179. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  180. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  181. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  182. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  183. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  184. package/dist/components/anatomy-scheme/index.js +17 -0
  185. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  186. package/dist/components/annotation-marker/index.d.ts +3 -0
  187. package/dist/components/annotation-marker/index.js +7 -0
  188. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  189. package/dist/components/appointment-card/index.js +6 -5
  190. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  191. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  192. package/dist/components/appointment-timeline/index.d.ts +4 -0
  193. package/dist/components/appointment-timeline/index.js +6 -0
  194. package/dist/components/audio-recorder/index.js +1 -1
  195. package/dist/components/autocomplete/index.js +1 -1
  196. package/dist/components/badge/badge.d.ts +6 -2
  197. package/dist/components/badge/index.js +1 -1
  198. package/dist/components/bishop-score/bishop-score.agent.d.ts +4 -0
  199. package/dist/components/bishop-score/bishop-score.d.ts +17 -1
  200. package/dist/components/bishop-score/index.js +1 -1
  201. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts +4 -0
  202. package/dist/components/bmi-calculator/bmi-calculator.d.ts +26 -0
  203. package/dist/components/bmi-calculator/index.js +1 -1
  204. package/dist/components/booking/index.js +1 -1
  205. package/dist/components/breadcrumb/index.js +1 -1
  206. package/dist/components/calculator-dialog/index.js +1 -1
  207. package/dist/components/calendar/index.js +1 -1
  208. package/dist/components/care-plan-card/index.js +1 -1
  209. package/dist/components/care-plan-entry-card/index.js +1 -1
  210. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  211. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  212. package/dist/components/care-plan-header/index.d.ts +4 -0
  213. package/dist/components/care-plan-header/index.js +6 -0
  214. package/dist/components/carousel/index.js +1 -1
  215. package/dist/components/chart/index.js +1 -1
  216. package/dist/components/chat-container/index.js +1 -1
  217. package/dist/components/chat-input/index.js +1 -1
  218. package/dist/components/checkbox/index.js +1 -1
  219. package/dist/components/checkbox-group/index.js +1 -1
  220. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  221. package/dist/components/clinical-note-card/index.js +1 -1
  222. package/dist/components/collapsible/index.js +1 -1
  223. package/dist/components/color-picker/index.js +1 -1
  224. package/dist/components/combobox/index.js +1 -1
  225. package/dist/components/command-palette/index.js +1 -1
  226. package/dist/components/contact-profile-card/index.js +1 -1
  227. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  228. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  229. package/dist/components/control-room-rail/index.d.ts +5 -0
  230. package/dist/components/control-room-rail/index.js +9 -0
  231. package/dist/components/copy-field/index.js +1 -1
  232. package/dist/components/counter/counter.d.ts +22 -0
  233. package/dist/components/counter/index.d.ts +3 -0
  234. package/dist/components/counter/index.js +5 -0
  235. package/dist/components/cycle-calculator/index.js +1 -1
  236. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  237. package/dist/components/data-table/index.d.ts +1 -1
  238. package/dist/components/data-table/index.js +32 -30
  239. package/dist/components/date-picker/index.js +1 -1
  240. package/dist/components/date-range-picker/index.js +1 -1
  241. package/dist/components/date-time-picker/index.js +1 -1
  242. package/dist/components/dependent-selector/index.js +1 -1
  243. package/dist/components/dialog/index.js +1 -1
  244. package/dist/components/document-scanner/index.js +1 -1
  245. package/dist/components/dropdown-menu/index.js +1 -1
  246. package/dist/components/due-date-calculator/index.js +2 -2
  247. package/dist/components/email-input/index.js +1 -1
  248. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  249. package/dist/components/entity-summary/index.d.ts +3 -0
  250. package/dist/components/entity-summary/index.js +5 -0
  251. package/dist/components/fetal-weight/index.js +1 -1
  252. package/dist/components/file-upload/index.js +1 -1
  253. package/dist/components/fiscal-code-input/index.js +1 -1
  254. package/dist/components/freemium-paywall/freemium-paywall.d.ts +6 -0
  255. package/dist/components/freemium-paywall/index.js +1 -1
  256. package/dist/components/gestational-age-calculator/index.js +1 -1
  257. package/dist/components/hcg-doubling/index.js +1 -1
  258. package/dist/components/header-settings/index.js +1 -1
  259. package/dist/components/index.d.ts +11 -0
  260. package/dist/components/list/index.js +1 -1
  261. package/dist/components/locale-picker/index.js +1 -1
  262. package/dist/components/map-view/index.js +1 -1
  263. package/dist/components/message-card/index.js +1 -1
  264. package/dist/components/message-tray/index.js +1 -1
  265. package/dist/components/multi-select/index.js +1 -1
  266. package/dist/components/navigation-menu/index.js +1 -1
  267. package/dist/components/notes-panel/index.d.ts +3 -0
  268. package/dist/components/notes-panel/index.js +5 -0
  269. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  270. package/dist/components/notification-card/index.js +2 -2
  271. package/dist/components/notification-tray/index.js +1 -1
  272. package/dist/components/number-input/index.js +1 -1
  273. package/dist/components/operator-hero/index.js +1 -1
  274. package/dist/components/otp-input/index.js +1 -1
  275. package/dist/components/pagination/index.js +1 -1
  276. package/dist/components/password-input/index.js +1 -1
  277. package/dist/components/patient-details/index.d.ts +5 -0
  278. package/dist/components/patient-details/index.js +6 -0
  279. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  280. package/dist/components/patient-details/patient-details.d.ts +96 -0
  281. package/dist/components/patient-search/index.js +1 -1
  282. package/dist/components/patient-summary-card/index.js +1 -1
  283. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  284. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts +13 -0
  285. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts +43 -0
  286. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts +24 -0
  287. package/dist/components/patient-table/columns.d.ts +131 -0
  288. package/dist/components/patient-table/index.d.ts +20 -0
  289. package/dist/components/patient-table/index.js +12 -0
  290. package/dist/components/patient-table/patient-table.d.ts +172 -0
  291. package/dist/components/patient-table/types.d.ts +222 -0
  292. package/dist/components/patient-table/use-responsive-columns.d.ts +111 -0
  293. package/dist/components/payment-card/index.js +1 -1
  294. package/dist/components/payment-form/index.js +1 -1
  295. package/dist/components/pdf-viewer/index.js +1 -1
  296. package/dist/components/periodontal-chart-card/index.js +1 -1
  297. package/dist/components/phone-input/index.js +1 -1
  298. package/dist/components/popover/index.js +1 -1
  299. package/dist/components/practice-results/index.js +1 -1
  300. package/dist/components/pregnancy-dating/index.js +1 -1
  301. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  302. package/dist/components/privacy-lock/index.js +1 -1
  303. package/dist/components/product-hub-tray/index.js +1 -1
  304. package/dist/components/progress/index.js +1 -1
  305. package/dist/components/public-footer/index.js +1 -1
  306. package/dist/components/public-header/index.js +1 -1
  307. package/dist/components/qr-code/index.js +1 -1
  308. package/dist/components/radio-group/index.js +1 -1
  309. package/dist/components/radiograph-panel/index.d.ts +4 -0
  310. package/dist/components/radiograph-panel/index.js +7 -0
  311. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  312. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  313. package/dist/components/recaptcha-widget/index.js +1 -1
  314. package/dist/components/resizable/index.js +1 -1
  315. package/dist/components/reviews-panel/index.js +1 -1
  316. package/dist/components/rich-text-editor/index.js +1 -1
  317. package/dist/components/search-bar/index.js +1 -1
  318. package/dist/components/search-input/index.js +2 -2
  319. package/dist/components/select/index.js +1 -1
  320. package/dist/components/session-countdown/index.js +1 -1
  321. package/dist/components/sheet/index.js +1 -1
  322. package/dist/components/sidebar/index.js +2 -2
  323. package/dist/components/sidebar/sidebar.d.ts +7 -0
  324. package/dist/components/sign-document/index.js +1 -1
  325. package/dist/components/signature-capture/index.js +1 -1
  326. package/dist/components/slider/index.js +1 -1
  327. package/dist/components/sparkline/index.js +1 -1
  328. package/dist/components/stepper-accordion/index.js +2 -2
  329. package/dist/components/stepper-progress/index.js +1 -1
  330. package/dist/components/suggestion-chip/index.js +1 -1
  331. package/dist/components/switch/index.js +1 -1
  332. package/dist/components/tab-bar/index.js +1 -1
  333. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  334. package/dist/components/tabs/index.js +1 -1
  335. package/dist/components/task-card/index.js +1 -1
  336. package/dist/components/task-tray/index.js +1 -1
  337. package/dist/components/text-area/index.js +1 -1
  338. package/dist/components/text-input/index.js +1 -1
  339. package/dist/components/theme-toggle/index.js +1 -1
  340. package/dist/components/time-picker/index.js +1 -1
  341. package/dist/components/timeline/index.js +1 -1
  342. package/dist/components/toast/index.js +1 -1
  343. package/dist/components/tooth-scheme/index.d.ts +2 -2
  344. package/dist/components/tooth-scheme/index.js +30 -23
  345. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  346. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  347. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  348. package/dist/components/transaction-chip/index.js +1 -1
  349. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  350. package/dist/components/transcript-panel/index.js +1 -1
  351. package/dist/components/unit-converter/index.js +1 -1
  352. package/dist/components/unit-converter/unit-converter.agent.d.ts +4 -0
  353. package/dist/components/unit-converter/unit-converter.d.ts +27 -0
  354. package/dist/components/warning-stack/index.js +1 -1
  355. package/dist/components/warning-stack/warning-stack.d.ts +14 -2
  356. package/dist/components/whatsapp-button/index.d.ts +1 -1
  357. package/dist/components/whatsapp-button/index.js +3 -2
  358. package/dist/components/whatsapp-button/whatsapp-button.d.ts +3 -0
  359. package/dist/components/workflow/index.js +1 -1
  360. package/dist/hooks/index.d.ts +1 -0
  361. package/dist/hooks/index.js +24 -22
  362. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  363. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  364. package/dist/hooks/use-persistent-state.d.ts +7 -1
  365. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  366. package/dist/i18n/locales/ar.d.ts +356 -0
  367. package/dist/i18n/locales/ar.js +370 -3
  368. package/dist/i18n/locales/de.d.ts +356 -0
  369. package/dist/i18n/locales/de.js +370 -3
  370. package/dist/i18n/locales/el.d.ts +356 -0
  371. package/dist/i18n/locales/el.js +370 -3
  372. package/dist/i18n/locales/en.d.ts +367 -0
  373. package/dist/i18n/locales/en.js +381 -3
  374. package/dist/i18n/locales/es.d.ts +356 -0
  375. package/dist/i18n/locales/es.js +370 -3
  376. package/dist/i18n/locales/fr.d.ts +356 -0
  377. package/dist/i18n/locales/fr.js +370 -3
  378. package/dist/i18n/locales/hi.d.ts +356 -0
  379. package/dist/i18n/locales/hi.js +370 -3
  380. package/dist/i18n/locales/it.d.ts +356 -0
  381. package/dist/i18n/locales/it.js +370 -3
  382. package/dist/i18n/locales/ja.d.ts +356 -0
  383. package/dist/i18n/locales/ja.js +370 -3
  384. package/dist/i18n/locales/nl.d.ts +356 -0
  385. package/dist/i18n/locales/nl.js +370 -3
  386. package/dist/i18n/locales/pl.d.ts +356 -0
  387. package/dist/i18n/locales/pl.js +370 -3
  388. package/dist/i18n/locales/pt.d.ts +356 -0
  389. package/dist/i18n/locales/pt.js +370 -3
  390. package/dist/i18n/locales/ro.d.ts +356 -0
  391. package/dist/i18n/locales/ro.js +370 -3
  392. package/dist/i18n/locales/ru.d.ts +356 -0
  393. package/dist/i18n/locales/ru.js +370 -3
  394. package/dist/i18n/locales/sq.d.ts +356 -0
  395. package/dist/i18n/locales/sq.js +370 -3
  396. package/dist/i18n/locales/sv.d.ts +356 -0
  397. package/dist/i18n/locales/sv.js +370 -3
  398. package/dist/i18n/locales/tr.d.ts +356 -0
  399. package/dist/i18n/locales/tr.js +370 -3
  400. package/dist/i18n/locales/zh.d.ts +356 -0
  401. package/dist/i18n/locales/zh.js +370 -3
  402. package/dist/index.js +740 -676
  403. package/dist/locales/ar.json +359 -3
  404. package/dist/locales/de.json +359 -3
  405. package/dist/locales/el.json +359 -3
  406. package/dist/locales/en.json +359 -3
  407. package/dist/locales/es.json +359 -3
  408. package/dist/locales/fr.json +359 -3
  409. package/dist/locales/hi.json +359 -3
  410. package/dist/locales/it.json +359 -3
  411. package/dist/locales/ja.json +359 -3
  412. package/dist/locales/nl.json +359 -3
  413. package/dist/locales/pl.json +359 -3
  414. package/dist/locales/pt.json +359 -3
  415. package/dist/locales/ro.json +359 -3
  416. package/dist/locales/ru.json +359 -3
  417. package/dist/locales/sq.json +359 -3
  418. package/dist/locales/sv.json +359 -3
  419. package/dist/locales/tr.json +359 -3
  420. package/dist/locales/zh.json +359 -3
  421. package/dist/patterns/alia-assistant/index.js +1 -1
  422. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  423. package/dist/patterns/patient-shell/index.js +1 -1
  424. package/dist/tokens.css +3 -2
  425. package/package.json +50 -1
  426. package/dist/_chunks/address-autocomplete-CT-9AOli.js +0 -358
  427. package/dist/_chunks/ai-tools-rail-CInA_1-E.js +0 -356
  428. package/dist/_chunks/appointment-tray-BMl89NPW.js +0 -419
  429. package/dist/_chunks/bishop-score-CjsB9bM-.js +0 -185
  430. package/dist/_chunks/bmi-calculator-n-823_1V.js +0 -258
  431. package/dist/_chunks/clinical-note-card-gtrxv6zn.js +0 -333
  432. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js +0 -2409
  433. package/dist/_chunks/email-input-lQivsFrw.js +0 -396
  434. package/dist/_chunks/patient-summary-card-hEmr4eTW.js +0 -443
  435. package/dist/_chunks/registry-nPAVE19X.js +0 -21
  436. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  437. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js +0 -1257
  438. package/dist/_chunks/unit-converter-C1V3ACM9.js +0 -196
  439. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  440. package/dist/_chunks/warning-stack-Cv4fr5zo.js +0 -220
@@ -0,0 +1,2184 @@
1
+ import { jsx as n, jsxs as I } from "react/jsx-runtime";
2
+ import { useMemo as E, forwardRef as G, useState as R, useCallback as M, useEffect as z, useRef as xe, createContext as Se, useContext as we, isValidElement as Ne, cloneElement as Fe, useImperativeHandle as bt } from "react";
3
+ import { S as ht } from "./skeleton-CZbwyJAA.js";
4
+ import { E as vt } from "./empty-state-BLy7tigq.js";
5
+ import { c as Tt } from "./index-D2ZczOXr.js";
6
+ import { useTranslation as F } from "react-i18next";
7
+ import { useGridFilter as X, AgGridReact as yt } from "ag-grid-react";
8
+ import { ModuleRegistry as Ct, AllCommunityModule as xt } from "ag-grid-community";
9
+ import { B as j } from "./button-DD_0Xdmr.js";
10
+ import { I as V } from "./icon-button-LqoiKcUN.js";
11
+ import { P as Z } from "./popover-B2qCDhJC.js";
12
+ import { C as Re } from "./checkbox-BuZ1u__2.js";
13
+ import { T as pe } from "./text-input-B-OWQ1Je.js";
14
+ import { T as te } from "./tag-BQXwuJq1.js";
15
+ import { D as _ } from "./dropdown-menu-qrxjymfw.js";
16
+ import { X as De } from "./x-CCcI3eJp.js";
17
+ import { R as St } from "./refresh-cw-CC8jSKMr.js";
18
+ import { S as fe } from "./search-BonnQsHv.js";
19
+ import { C as wt } from "./columns-2-BTOBZbep.js";
20
+ import { G as Nt } from "./grip-vertical-Dlg0_k5C.js";
21
+ import { P as Ft } from "./printer-CeVEWfQq.js";
22
+ import { F as Ie } from "./file-text-DSNuv2B8.js";
23
+ import { D as ae } from "./download-CDF1sbL9.js";
24
+ import { F as Rt } from "./file-spreadsheet-zUkY8rJ2.js";
25
+ import Dt from "i18next";
26
+ import { S as ke } from "./select-DMLG44F5.js";
27
+ import { u as It } from "./registry-DvAUVLHh.js";
28
+ import { u as kt } from "./use-prefers-reduced-motion-BMwIQRjB.js";
29
+ import { u as Et } from "./use-theme-CAuo6EYT.js";
30
+ import { D as Ee } from "./date-range-picker-CTUeR6Bj.js";
31
+ import { M as At } from "./multi-select-BdHHDrRN.js";
32
+ import { A as Ae } from "./autocomplete-DOeGouCL.js";
33
+ import { N as Y } from "./number-input-DxphVG_A.js";
34
+ import { B as Ot } from "./badge-DCOqV9mI.js";
35
+ import { A as Oe } from "./avatar-BNQNhoyL.js";
36
+ import { T as zt } from "./tooltip-DvmfrNvB.js";
37
+ import { T as he } from "./timestamp-BV2lC-wV.js";
38
+ import { I as Pt } from "./icon-button-group-C48khLE0.js";
39
+ import { E as Mt } from "./ellipsis-rgGdiK_9.js";
40
+ function qt(t) {
41
+ if (!Ne(t)) return t;
42
+ const e = t, a = e.props.className ?? "", r = /\bsize-|\bw-|\bh-/.test(a) ? a : `${a} ds:size-4`.trim();
43
+ return Fe(e, { className: r, size: e.props.size ?? 16 });
44
+ }
45
+ const ze = Se(null);
46
+ function B(t) {
47
+ const e = we(ze);
48
+ if (!e)
49
+ throw new Error(
50
+ `${t} must be rendered inside <DataTable.Toolbar> as a descendant of <DataTable>.`
51
+ );
52
+ return e;
53
+ }
54
+ function Lt({
55
+ getApi: t,
56
+ selectionCount: e,
57
+ onPrint: a,
58
+ children: r
59
+ }) {
60
+ const o = E(
61
+ () => ({ getApi: t, selectionCount: e, onPrint: a }),
62
+ [t, e, a]
63
+ );
64
+ return /* @__PURE__ */ n(ze.Provider, { value: o, children: r });
65
+ }
66
+ const jt = [
67
+ "data-table-toolbar",
68
+ // Mobile (<sm) keeps `flex-wrap` so a wide QuickSearch can flow above the
69
+ // Actions cluster on narrow screens. From `sm` (≥640px) we switch to
70
+ // `flex-nowrap` + `min-w-0` so the row stays single-line at every common
71
+ // desktop width (1024 / 1280 / 1440) — the QuickSearch slot shrinks via
72
+ // its own `min-w-0` instead of pushing the trailing Actions to a new row.
73
+ "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]",
74
+ "ds:sm:flex-nowrap ds:min-w-0",
75
+ // Brand-polish: give the toolbar its own card surface so it doesn't
76
+ // sit flush above the grid as a bare row. The `--card` token resolves to
77
+ // `--background` on the default light theme (white), which makes a
78
+ // shadow-only chrome invisible on the page — pair the card fill with the
79
+ // standard `--card-border` outline (same recipe as `<Card>`) so the
80
+ // toolbar reads as a discrete surface in both light and dark themes.
81
+ "ds:bg-[var(--card)] ds:rounded-[var(--radius-md)]",
82
+ "ds:border ds:border-[color:var(--card-border)]",
83
+ "ds:shadow-[var(--shadow-sm)]",
84
+ "ds:py-[var(--spacing-sm)] ds:px-[var(--spacing-md)]"
85
+ ].join(" "), Pe = G(
86
+ ({ className: t, children: e, ...a }, r) => /* @__PURE__ */ n(
87
+ "div",
88
+ {
89
+ ref: r,
90
+ role: "toolbar",
91
+ className: [jt, t ?? ""].join(" ").trim(),
92
+ ...a,
93
+ children: e
94
+ }
95
+ )
96
+ );
97
+ Pe.displayName = "DataTable.Toolbar";
98
+ const Me = G(
99
+ ({ className: t, children: e, ...a }, r) => /* @__PURE__ */ n(
100
+ "div",
101
+ {
102
+ ref: r,
103
+ className: [
104
+ "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]",
105
+ // `grow` lets FilterBar absorb the free space; `min-w-0` lets the
106
+ // QuickSearch slot inside shrink below its intrinsic width when the
107
+ // toolbar runs `flex-nowrap` at `sm` and above, so the trailing
108
+ // Actions cluster stays pinned on a single row.
109
+ "ds:grow ds:min-w-0",
110
+ t ?? ""
111
+ ].join(" ").trim(),
112
+ ...a,
113
+ children: e
114
+ }
115
+ )
116
+ );
117
+ Me.displayName = "DataTable.Toolbar.FilterBar";
118
+ const qe = G(
119
+ ({ className: t, children: e, ...a }, r) => /* @__PURE__ */ n(
120
+ "div",
121
+ {
122
+ ref: r,
123
+ className: [
124
+ "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
125
+ "ds:ms-auto",
126
+ t ?? ""
127
+ ].join(" ").trim(),
128
+ ...a,
129
+ children: e
130
+ }
131
+ )
132
+ );
133
+ qe.displayName = "DataTable.Toolbar.Actions";
134
+ const Le = G(
135
+ ({ label: t, onExport: e, intent: a = "outline", ...r }, o) => {
136
+ const { t: s } = F(), { getApi: l } = B("DataTable.Toolbar.ExportCsv"), p = M(() => {
137
+ const i = l();
138
+ i && (e ? e(i) : i.exportDataAsCsv());
139
+ }, [l, e]);
140
+ return /* @__PURE__ */ n(
141
+ V,
142
+ {
143
+ ref: o,
144
+ type: "button",
145
+ intent: a,
146
+ icon: /* @__PURE__ */ n(ae, { "aria-hidden": !0 }),
147
+ tooltip: t ?? s("dataTable.exportCsv"),
148
+ onClick: p,
149
+ ...r
150
+ }
151
+ );
152
+ }
153
+ );
154
+ Le.displayName = "DataTable.Toolbar.ExportCsv";
155
+ function Q(t, e = [30, 30, 30]) {
156
+ if (typeof document > "u") return e;
157
+ const a = document.createElement("span");
158
+ a.style.color = `hsl(var(${t}))`, a.style.position = "absolute", a.style.visibility = "hidden", document.body.appendChild(a);
159
+ const r = getComputedStyle(a).color;
160
+ document.body.removeChild(a);
161
+ const o = r.match(/rgba?\(\s*(\d+)[,\s]+(\d+)[,\s]+(\d+)/i);
162
+ return o ? [Number(o[1]), Number(o[2]), Number(o[3])] : e;
163
+ }
164
+ async function je(t, e) {
165
+ if (!t) return;
166
+ const [{ jsPDF: a }, { default: r }] = await Promise.all([
167
+ import("./jspdf.es.min-DaapWjR1.js").then((g) => g.j),
168
+ import("./jspdf.plugin.autotable-CSiDNyPn.js")
169
+ ]), s = (t.getColumns() ?? []).filter((g) => g.isVisible()), l = [
170
+ s.map((g) => t.getDisplayNameForColumn(g, null) ?? "")
171
+ ], p = [];
172
+ t.forEachNodeAfterFilterAndSort((g) => {
173
+ if (!g.data) return;
174
+ const T = s.map((C) => {
175
+ const S = t.getCellValue({
176
+ rowNode: g,
177
+ colKey: C,
178
+ useFormatter: !0
179
+ });
180
+ return S == null ? "" : String(S);
181
+ });
182
+ p.push(T);
183
+ });
184
+ const i = Q("--muted", [240, 240, 240]), d = Q("--foreground", [30, 30, 30]), c = Q("--card-foreground", [30, 30, 30]), u = Q("--card", [250, 250, 250]), y = new a({ orientation: "landscape" });
185
+ r(y, {
186
+ head: l,
187
+ body: p,
188
+ headStyles: { fillColor: i, textColor: d },
189
+ bodyStyles: { textColor: c },
190
+ alternateRowStyles: { fillColor: u },
191
+ styles: {
192
+ font: "helvetica",
193
+ fontSize: 10,
194
+ cellPadding: 4
195
+ }
196
+ }), y.save(e.fileName);
197
+ }
198
+ const Ge = G(
199
+ ({ label: t, onClick: e, fileName: a, intent: r = "outline", ...o }, s) => {
200
+ const { t: l } = F(), { getApi: p } = B("DataTable.Toolbar.ExportPdf"), i = M(() => {
201
+ const d = p();
202
+ if (e) {
203
+ e(d);
204
+ return;
205
+ }
206
+ je(d, {
207
+ fileName: a ?? "data-table-export.pdf"
208
+ });
209
+ }, [p, e, a]);
210
+ return /* @__PURE__ */ n(
211
+ V,
212
+ {
213
+ ref: s,
214
+ type: "button",
215
+ intent: r,
216
+ icon: /* @__PURE__ */ n(Ie, { "aria-hidden": !0 }),
217
+ tooltip: t ?? l("dataTable.exportPdf"),
218
+ onClick: i,
219
+ ...o
220
+ }
221
+ );
222
+ }
223
+ );
224
+ Ge.displayName = "DataTable.Toolbar.ExportPdf";
225
+ const Be = G(
226
+ ({ label: t, intent: e = "outline", ...a }, r) => {
227
+ const { t: o } = F(), { onPrint: s } = B("DataTable.Toolbar.Print");
228
+ return /* @__PURE__ */ n(
229
+ V,
230
+ {
231
+ ref: r,
232
+ type: "button",
233
+ intent: e,
234
+ icon: /* @__PURE__ */ n(Ft, { "aria-hidden": !0 }),
235
+ tooltip: t ?? o("dataTable.print"),
236
+ onClick: s,
237
+ ...a
238
+ }
239
+ );
240
+ }
241
+ );
242
+ Be.displayName = "DataTable.Toolbar.Print";
243
+ const $e = ({ placeholder: t, debounceMs: e = 150 }) => {
244
+ const { t: a } = F(), { getApi: r } = B("DataTable.Toolbar.QuickSearch"), [o, s] = R(""), l = xe(void 0);
245
+ return z(() => (l.current && window.clearTimeout(l.current), l.current = window.setTimeout(() => {
246
+ const p = r();
247
+ p && p.setGridOption("quickFilterText", o);
248
+ }, e), () => {
249
+ l.current && window.clearTimeout(l.current);
250
+ }), [o, e, r]), // Slot wrapper caps the search at a sensible legible width on desktop —
251
+ // without this, TextInput's `w-full` lets the QuickSearch absorb the
252
+ // entire FilterBar row and push trailing Actions onto a second line at
253
+ // 1024 / 1280 / 1440. `min-w-0` lets the slot shrink below `24rem` when
254
+ // the toolbar is squeezed on narrow viewports. There is no
255
+ // `--toolbar-search-max` token in the kit yet — see this component's
256
+ // summary for a follow-up note recommending we add one.
257
+ /* @__PURE__ */ n("div", { className: "ds:w-full ds:max-w-[24rem] ds:min-w-0", children: /* @__PURE__ */ n(
258
+ pe,
259
+ {
260
+ type: "search",
261
+ size: "sm",
262
+ value: o,
263
+ onChange: (p) => s(p.target.value),
264
+ placeholder: t ?? a("dataTable.quickSearch.placeholder", "Search…"),
265
+ startAdornment: /* @__PURE__ */ n(fe, { "aria-hidden": !0, className: "ds:size-4" }),
266
+ clearable: !0,
267
+ onClear: () => s(""),
268
+ "aria-label": a("dataTable.quickSearch.label", "Quick search")
269
+ }
270
+ ) });
271
+ };
272
+ $e.displayName = "DataTable.Toolbar.QuickSearch";
273
+ const _e = G(
274
+ ({ onRefresh: t, label: e, intent: a = "outline", ...r }, o) => {
275
+ const { t: s } = F();
276
+ return /* @__PURE__ */ n(
277
+ V,
278
+ {
279
+ ref: o,
280
+ type: "button",
281
+ intent: a,
282
+ icon: /* @__PURE__ */ n(St, { "aria-hidden": !0 }),
283
+ tooltip: e ?? s("dataTable.refresh", "Refresh"),
284
+ onClick: t,
285
+ ...r
286
+ }
287
+ );
288
+ }
289
+ );
290
+ _e.displayName = "DataTable.Toolbar.Refresh";
291
+ function Gt(t) {
292
+ if (!t || typeof t != "object") return "";
293
+ const e = t;
294
+ if (typeof e.filter == "string" || typeof e.filter == "number") {
295
+ const a = typeof e.type == "string" ? e.type : "", r = typeof e.filterTo == "string" || typeof e.filterTo == "number" ? String(e.filterTo) : "";
296
+ return a === "inRange" && r ? `${e.filter} – ${r}` : a ? `${a} ${e.filter}` : String(e.filter);
297
+ }
298
+ return typeof e.dateFrom == "string" ? typeof e.dateTo == "string" && e.dateTo ? `${e.dateFrom} – ${e.dateTo}` : String(e.dateFrom) : Array.isArray(e.values) ? e.values.map(String).join(", ") : "";
299
+ }
300
+ const Ve = () => {
301
+ const { t } = F(), { getApi: e } = B("DataTable.Toolbar.FilterChips"), [a, r] = R([]), [o, s] = R(""), l = M(() => {
302
+ const c = e();
303
+ if (!c) {
304
+ r([]), s("");
305
+ return;
306
+ }
307
+ const u = c.getFilterModel() ?? {}, y = c.getColumns() ?? [], g = [];
308
+ for (const C of Object.keys(u)) {
309
+ const S = y.find((m) => m.getColId() === C), f = c.getDisplayNameForColumn(S, null) ?? C;
310
+ g.push({
311
+ colId: C,
312
+ headerName: f,
313
+ text: Gt(u[C])
314
+ });
315
+ }
316
+ r(g);
317
+ const T = c.getGridOption("quickFilterText");
318
+ s(typeof T == "string" ? T : "");
319
+ }, [e]);
320
+ if (z(() => {
321
+ let c;
322
+ const u = (T) => l(), y = (T) => {
323
+ T.addEventListener("filterChanged", u), l(), c = () => T.removeEventListener("filterChanged", u);
324
+ }, g = e();
325
+ if (g)
326
+ y(g);
327
+ else {
328
+ const T = window.setInterval(() => {
329
+ const C = e();
330
+ C && (window.clearInterval(T), y(C));
331
+ }, 50);
332
+ c = () => window.clearInterval(T);
333
+ }
334
+ return () => c == null ? void 0 : c();
335
+ }, [e, l]), a.length + (o ? 1 : 0) === 0) return null;
336
+ function i(c) {
337
+ const u = e();
338
+ u && u.destroyFilter(c);
339
+ }
340
+ function d() {
341
+ const c = e();
342
+ c && (c.setFilterModel(null), c.setGridOption("quickFilterText", ""), s(""));
343
+ }
344
+ return /* @__PURE__ */ I(
345
+ "div",
346
+ {
347
+ role: "group",
348
+ "aria-label": t("dataTable.filterChips.label", "Active filters"),
349
+ className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
350
+ children: [
351
+ o && /* @__PURE__ */ n(
352
+ te,
353
+ {
354
+ label: `${t("dataTable.quickSearch.label", "Quick search")}: ${o}`,
355
+ size: "sm",
356
+ fill: "outline",
357
+ onRemove: () => {
358
+ const c = e();
359
+ c == null || c.setGridOption("quickFilterText", ""), s("");
360
+ }
361
+ }
362
+ ),
363
+ a.map((c) => /* @__PURE__ */ n(
364
+ te,
365
+ {
366
+ label: c.text ? `${c.headerName}: ${c.text}` : c.headerName,
367
+ size: "sm",
368
+ fill: "outline",
369
+ onRemove: () => i(c.colId)
370
+ },
371
+ c.colId
372
+ )),
373
+ /* @__PURE__ */ n(
374
+ j,
375
+ {
376
+ type: "button",
377
+ intent: "ghost",
378
+ size: "sm",
379
+ onClick: d,
380
+ startIcon: /* @__PURE__ */ n(De, { "aria-hidden": !0, className: "ds:size-4" }),
381
+ children: t("dataTable.filterChips.clearAll", "Clear all")
382
+ }
383
+ )
384
+ ]
385
+ }
386
+ );
387
+ };
388
+ Ve.displayName = "DataTable.Toolbar.FilterChips";
389
+ const We = ({
390
+ field: t,
391
+ options: e,
392
+ label: a
393
+ }) => {
394
+ const { t: r } = F(), { getApi: o } = B("DataTable.Toolbar.FacetFilter"), [s, l] = R(null);
395
+ function p(i) {
396
+ l(i);
397
+ const d = o();
398
+ if (d) {
399
+ if (i === null) {
400
+ d.destroyFilter(t);
401
+ return;
402
+ }
403
+ d.setColumnFilterModel(t, {
404
+ type: "equals",
405
+ filter: i
406
+ }), d.onFilterChanged();
407
+ }
408
+ }
409
+ return /* @__PURE__ */ n(
410
+ "div",
411
+ {
412
+ role: "group",
413
+ "aria-label": a ?? r("dataTable.facetFilter.label", "Filter"),
414
+ className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
415
+ children: e.map((i) => {
416
+ const d = s === i.value;
417
+ return /* @__PURE__ */ n(
418
+ j,
419
+ {
420
+ type: "button",
421
+ size: "sm",
422
+ intent: d ? "primary" : "secondary",
423
+ "aria-pressed": d,
424
+ onClick: () => p(i.value),
425
+ children: i.label
426
+ },
427
+ String(i.value)
428
+ );
429
+ })
430
+ }
431
+ );
432
+ };
433
+ We.displayName = "DataTable.Toolbar.FacetFilter";
434
+ const Bt = ["csv", "xlsx", "pdf"];
435
+ async function $t(t, e) {
436
+ if (!t) return;
437
+ const a = await import("./exceljs.min-DUJ-5CGx.js").then((C) => C.e), r = new a.Workbook(), o = r.addWorksheet("Sheet1"), l = (t.getColumns() ?? []).filter((C) => C.isVisible());
438
+ o.addRow(
439
+ l.map(
440
+ (C) => t.getDisplayNameForColumn(C, null) ?? C.getColId()
441
+ )
442
+ ), t.forEachNodeAfterFilterAndSort((C) => {
443
+ C.data && o.addRow(
444
+ l.map((S) => {
445
+ const f = t.getCellValue({
446
+ rowNode: C,
447
+ colKey: S,
448
+ useFormatter: !0
449
+ });
450
+ return f ?? "";
451
+ })
452
+ );
453
+ });
454
+ const p = Q("--muted", [240, 240, 240]), i = Q("--foreground", [30, 30, 30]), d = o.getRow(1), c = ([C, S, f]) => `${C.toString(16).padStart(2, "0")}${S.toString(16).padStart(2, "0")}${f.toString(16).padStart(2, "0")}`.toUpperCase();
455
+ d.eachCell((C) => {
456
+ C.font = { bold: !0, color: { argb: `FF${c(i)}` } }, C.fill = {
457
+ type: "pattern",
458
+ pattern: "solid",
459
+ fgColor: { argb: `FF${c(p)}` }
460
+ };
461
+ });
462
+ const u = await r.xlsx.writeBuffer(), y = new Blob([u], {
463
+ type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
464
+ }), g = URL.createObjectURL(y), T = document.createElement("a");
465
+ T.href = g, T.download = e.fileName, document.body.appendChild(T), T.click(), document.body.removeChild(T), URL.revokeObjectURL(g);
466
+ }
467
+ const Ke = Se(null);
468
+ function _t() {
469
+ const t = we(Ke);
470
+ if (!t)
471
+ throw new Error(
472
+ "DataTable.Toolbar.ExportMenu.Item must be rendered inside DataTable.Toolbar.ExportMenu."
473
+ );
474
+ return t;
475
+ }
476
+ const Ue = ({ children: t, label: e }) => {
477
+ const { t: a } = F(), { getApi: r } = B("DataTable.Toolbar.ExportMenu"), o = E(() => ({ getApi: r }), [r]), s = t ?? Bt.map((l) => /* @__PURE__ */ n(me, { format: l }, l));
478
+ return /* @__PURE__ */ n(Ke.Provider, { value: o, children: /* @__PURE__ */ I(_.Root, { children: [
479
+ /* @__PURE__ */ n(_.Trigger, { asChild: !0, children: /* @__PURE__ */ n(
480
+ V,
481
+ {
482
+ type: "button",
483
+ intent: "outline",
484
+ icon: /* @__PURE__ */ n(ae, { "aria-hidden": !0 }),
485
+ tooltip: e ?? a("dataTable.export.menu", "Export"),
486
+ "aria-label": e ?? a("dataTable.export.menu", "Export"),
487
+ "aria-haspopup": "menu"
488
+ }
489
+ ) }),
490
+ /* @__PURE__ */ n(_.Content, { align: "end", sideOffset: 4, children: s })
491
+ ] }) });
492
+ };
493
+ Ue.displayName = "DataTable.Toolbar.ExportMenu";
494
+ function Vt(t, e) {
495
+ return e === "csv" ? t("dataTable.export.csv", "Export CSV") : e === "xlsx" ? t("dataTable.export.xlsx", "Export Excel") : e === "pdf" ? t("dataTable.export.pdf", "Export PDF") : t("dataTable.export.custom", "Export");
496
+ }
497
+ function Wt(t) {
498
+ return t === "csv" ? /* @__PURE__ */ n(ae, { "aria-hidden": !0, className: "ds:size-4" }) : t === "xlsx" ? /* @__PURE__ */ n(Rt, { "aria-hidden": !0, className: "ds:size-4" }) : t === "pdf" ? /* @__PURE__ */ n(Ie, { "aria-hidden": !0, className: "ds:size-4" }) : /* @__PURE__ */ n(ae, { "aria-hidden": !0, className: "ds:size-4" });
499
+ }
500
+ const me = ({
501
+ format: t,
502
+ label: e,
503
+ onClick: a,
504
+ fileName: r
505
+ }) => {
506
+ const { t: o } = F(), { getApi: s } = _t(), l = M(() => {
507
+ const p = s();
508
+ if (t === "csv") {
509
+ p == null || p.exportDataAsCsv();
510
+ return;
511
+ }
512
+ if (t === "pdf") {
513
+ je(p, {
514
+ fileName: r ?? "data-table-export.pdf"
515
+ });
516
+ return;
517
+ }
518
+ if (t === "xlsx") {
519
+ $t(p, {
520
+ fileName: r ?? "data-table-export.xlsx"
521
+ });
522
+ return;
523
+ }
524
+ a == null || a(p);
525
+ }, [t, r, a, s]);
526
+ return /* @__PURE__ */ n(_.Item, { onSelect: l, children: /* @__PURE__ */ I("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
527
+ Wt(t),
528
+ /* @__PURE__ */ n("span", { children: e ?? Vt(o, t) })
529
+ ] }) });
530
+ };
531
+ me.displayName = "DataTable.Toolbar.ExportMenu.Item";
532
+ function Kt(t) {
533
+ return t ? (t.getAllGridColumns() ?? []).map((a) => a.getColDef().hide === void 0 && a.getColId().startsWith("ag-Grid-") ? null : {
534
+ colId: a.getColId(),
535
+ displayName: t.getDisplayNameForColumn(a, null) || a.getColId(),
536
+ visible: a.isVisible()
537
+ }).filter((a) => a !== null) : [];
538
+ }
539
+ const He = ({ label: t, icon: e, footer: a, header: r }) => {
540
+ const { t: o } = F(), { getApi: s } = B("DataTable.Toolbar.ColumnToggle"), [l, p] = R(!1), [i, d] = R([]), [c, u] = R(null), [y, g] = R(null);
541
+ z(() => {
542
+ l && d(Kt(s()));
543
+ }, [l, s]);
544
+ const T = M(
545
+ (f, m) => {
546
+ const b = s();
547
+ b && (b.setColumnsVisible([f], m), d(
548
+ (h) => h.map(
549
+ (w) => w.colId === f ? { ...w, visible: m } : w
550
+ )
551
+ ));
552
+ },
553
+ [s]
554
+ ), C = M(
555
+ (f, m) => {
556
+ if (f === m) return;
557
+ const b = s();
558
+ if (!b) return;
559
+ d((w) => {
560
+ const A = w.findIndex((W) => W.colId === f), k = w.findIndex((W) => W.colId === m);
561
+ if (A < 0 || k < 0) return w;
562
+ const $ = [...w], [D] = $.splice(A, 1);
563
+ return $.splice(k, 0, D), $;
564
+ });
565
+ const h = i.findIndex((w) => w.colId === m);
566
+ h >= 0 && b.moveColumns([f], h);
567
+ },
568
+ [s, i]
569
+ ), S = t ?? o("dataTable.columnToggle");
570
+ return /* @__PURE__ */ I(Z.Root, { open: l, onOpenChange: p, children: [
571
+ /* @__PURE__ */ n(Z.Trigger, { asChild: !0, children: /* @__PURE__ */ n(
572
+ V,
573
+ {
574
+ type: "button",
575
+ intent: "outline",
576
+ icon: e ?? /* @__PURE__ */ n(wt, { "aria-hidden": !0 }),
577
+ "aria-label": S,
578
+ "aria-haspopup": "dialog"
579
+ }
580
+ ) }),
581
+ /* @__PURE__ */ I(Z.Content, { size: "sm", align: "end", children: [
582
+ /* @__PURE__ */ n(Z.Heading, { children: S }),
583
+ r ? /* @__PURE__ */ n("div", { className: "ds:mb-[var(--spacing-xs)] ds:border-b ds:border-[color:var(--border)] ds:pb-[var(--spacing-sm)]", children: r }) : null,
584
+ /* @__PURE__ */ n(
585
+ "ul",
586
+ {
587
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]",
588
+ "aria-label": S,
589
+ children: i.map((f) => {
590
+ const m = c === f.colId, b = y === f.colId && c !== f.colId;
591
+ return /* @__PURE__ */ I(
592
+ "li",
593
+ {
594
+ draggable: !0,
595
+ onDragStart: (h) => {
596
+ u(f.colId), h.dataTransfer.effectAllowed = "move", h.dataTransfer.setData("text/plain", f.colId);
597
+ },
598
+ onDragOver: (h) => {
599
+ h.preventDefault(), h.dataTransfer.dropEffect = "move", g(f.colId);
600
+ },
601
+ onDragLeave: () => {
602
+ g((h) => h === f.colId ? null : h);
603
+ },
604
+ onDrop: (h) => {
605
+ h.preventDefault();
606
+ const w = h.dataTransfer.getData("text/plain");
607
+ w && C(w, f.colId), u(null), g(null);
608
+ },
609
+ onDragEnd: () => {
610
+ u(null), g(null);
611
+ },
612
+ className: [
613
+ "ds:flex ds:items-center ds:gap-[var(--spacing-xs)] ds:rounded-[var(--radius-sm)] ds:px-[var(--spacing-xs)] ds:py-[var(--spacing-2xs,var(--spacing-xs))] ds:transition-colors",
614
+ m ? "ds:opacity-50" : "",
615
+ b ? "ds:bg-[color:color-mix(in_srgb,var(--primary)_8%,transparent)]" : ""
616
+ ].filter(Boolean).join(" "),
617
+ children: [
618
+ /* @__PURE__ */ n(
619
+ "span",
620
+ {
621
+ "aria-hidden": "true",
622
+ className: "ds:cursor-grab ds:text-[color:var(--muted-foreground)] ds:active:cursor-grabbing",
623
+ children: /* @__PURE__ */ n(Nt, { className: "ds:size-4" })
624
+ }
625
+ ),
626
+ /* @__PURE__ */ n(
627
+ Re,
628
+ {
629
+ label: f.displayName,
630
+ checked: f.visible,
631
+ onCheckedChange: (h) => T(f.colId, h === !0)
632
+ }
633
+ )
634
+ ]
635
+ },
636
+ f.colId
637
+ );
638
+ })
639
+ }
640
+ ),
641
+ a ? /* @__PURE__ */ n("div", { className: "ds:mt-[var(--spacing-xs)] ds:border-t ds:border-[color:var(--border)] ds:pt-[var(--spacing-sm)]", children: a }) : null
642
+ ] })
643
+ ] });
644
+ };
645
+ He.displayName = "DataTable.Toolbar.ColumnToggle";
646
+ const Qe = G(
647
+ ({ label: t, icon: e, onClick: a, variant: r = "default", size: o = "sm", ...s }, l) => {
648
+ const { t: p } = F(), { getApi: i, selectionCount: d } = B(
649
+ "DataTable.Toolbar.BulkAction"
650
+ );
651
+ return d === 0 ? null : /* @__PURE__ */ I(
652
+ j,
653
+ {
654
+ ref: l,
655
+ type: "button",
656
+ intent: r === "destructive" ? "destructive" : "secondary",
657
+ size: o,
658
+ startIcon: qt(e),
659
+ onClick: () => a(i()),
660
+ "aria-label": `${t} (${p("dataTable.bulkAction", { count: d })})`,
661
+ ...s,
662
+ children: [
663
+ /* @__PURE__ */ n("span", { children: t }),
664
+ /* @__PURE__ */ n(
665
+ "span",
666
+ {
667
+ "aria-hidden": "true",
668
+ className: "ds:ms-[var(--spacing-xs)] ds:opacity-80",
669
+ children: p("dataTable.bulkAction", { count: d })
670
+ }
671
+ )
672
+ ]
673
+ }
674
+ );
675
+ }
676
+ );
677
+ Qe.displayName = "DataTable.Toolbar.BulkAction";
678
+ const Ut = Object.assign(Ue, {
679
+ Item: me
680
+ }), ee = Object.assign(Pe, {
681
+ FilterBar: Me,
682
+ Actions: qe,
683
+ /** @deprecated Use `Toolbar.ExportMenu` with a `csv` item. */
684
+ ExportCsv: Le,
685
+ /** @deprecated Use `Toolbar.ExportMenu` with a `pdf` item. */
686
+ ExportPdf: Ge,
687
+ Print: Be,
688
+ ColumnToggle: He,
689
+ BulkAction: Qe,
690
+ QuickSearch: $e,
691
+ Refresh: _e,
692
+ FilterChips: Ve,
693
+ FacetFilter: We,
694
+ ExportMenu: Ut
695
+ }), Ht = [
696
+ "contains",
697
+ "equals",
698
+ "startsWith",
699
+ "endsWith",
700
+ "notContains"
701
+ ];
702
+ function Qt(t) {
703
+ const e = new Intl.Collator(t, {
704
+ sensitivity: "base",
705
+ usage: "search"
706
+ });
707
+ function a(r, o) {
708
+ if (o.length === 0) return 0;
709
+ if (o.length > r.length) return -1;
710
+ for (let s = 0; s <= r.length - o.length; s += 1)
711
+ if (e.compare(r.slice(s, s + o.length), o) === 0)
712
+ return s;
713
+ return -1;
714
+ }
715
+ return {
716
+ equals: (r, o) => e.compare(r, o) === 0,
717
+ contains: (r, o) => a(r, o) !== -1,
718
+ startsWith: (r, o) => o.length <= r.length && e.compare(r.slice(0, o.length), o) === 0,
719
+ endsWith: (r, o) => o.length <= r.length && e.compare(
720
+ r.slice(r.length - o.length),
721
+ o
722
+ ) === 0
723
+ };
724
+ }
725
+ function Jt(t) {
726
+ return t == null ? null : typeof t == "string" ? t : String(t);
727
+ }
728
+ function Xt(t) {
729
+ const { model: e, onModelChange: a, getValue: r, placeholder: o, defaultOperator: s } = t, { t: l } = F("ui"), p = (e == null ? void 0 : e.type) ?? s ?? "contains", [i, d] = R(p), [c, u] = R((e == null ? void 0 : e.filter) ?? "");
730
+ z(() => {
731
+ d((e == null ? void 0 : e.type) ?? s ?? "contains"), u((e == null ? void 0 : e.filter) ?? "");
732
+ }, [e, s]);
733
+ const y = E(() => Qt(Dt.language), []);
734
+ X({
735
+ doesFilterPass: (f) => {
736
+ const m = e;
737
+ if (!m || m.filter === "") return !0;
738
+ const b = Jt(r(f.node));
739
+ if (b === null) return !1;
740
+ switch (m.type) {
741
+ case "equals":
742
+ return y.equals(b, m.filter);
743
+ case "contains":
744
+ return y.contains(b, m.filter);
745
+ case "startsWith":
746
+ return y.startsWith(b, m.filter);
747
+ case "endsWith":
748
+ return y.endsWith(b, m.filter);
749
+ case "notContains":
750
+ return !y.contains(b, m.filter);
751
+ default:
752
+ return !0;
753
+ }
754
+ }
755
+ });
756
+ function g() {
757
+ if (c.trim() === "") {
758
+ a(null);
759
+ return;
760
+ }
761
+ a({ type: i, filter: c });
762
+ }
763
+ function T() {
764
+ u(""), d(s ?? "contains"), a(null);
765
+ }
766
+ const C = Ht.map(
767
+ (f) => ({
768
+ value: f,
769
+ label: l(`dataTable.textFilter.operators.${f}`)
770
+ })
771
+ ), S = o ?? l("dataTable.textFilter.placeholder");
772
+ return /* @__PURE__ */ I(
773
+ "div",
774
+ {
775
+ "data-component": "text-filter",
776
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)] ds:min-w-[240px]",
777
+ children: [
778
+ /* @__PURE__ */ n(
779
+ ke,
780
+ {
781
+ size: "sm",
782
+ options: C,
783
+ value: i,
784
+ onValueChange: (f) => {
785
+ f !== "" && d(f);
786
+ },
787
+ "aria-label": l("dataTable.textFilter.operators.contains")
788
+ }
789
+ ),
790
+ /* @__PURE__ */ n(
791
+ pe,
792
+ {
793
+ size: "sm",
794
+ value: c,
795
+ onChange: (f) => u(f.target.value),
796
+ onKeyDown: (f) => {
797
+ f.key === "Enter" && (f.preventDefault(), g());
798
+ },
799
+ placeholder: S,
800
+ "aria-label": S,
801
+ startAdornment: /* @__PURE__ */ n(fe, { "aria-hidden": "true", className: "ds:size-4" })
802
+ }
803
+ ),
804
+ /* @__PURE__ */ I("div", { className: "ds:flex ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)] ds:pt-[var(--spacing-xs)] ds:border-t ds:border-[var(--border)]", children: [
805
+ /* @__PURE__ */ n(j, { intent: "ghost", size: "sm", onClick: T, type: "button", children: l("dataTable.textFilter.clear") }),
806
+ /* @__PURE__ */ n(j, { intent: "primary", size: "sm", onClick: g, type: "button", children: l("dataTable.textFilter.apply") })
807
+ ] })
808
+ ]
809
+ }
810
+ );
811
+ }
812
+ function Zt(t) {
813
+ var u, y;
814
+ const { model: e, onModelChange: a, column: r } = t, { t: o } = F("ui"), s = ((y = (u = r == null ? void 0 : r.getColDef) == null ? void 0 : u.call(r)) == null ? void 0 : y.filterParams) ?? {}, l = s.defaultOperator ?? "contains", p = s.placeholder ?? o("dataTable.textFilter.placeholder"), [i, d] = R((e == null ? void 0 : e.filter) ?? "");
815
+ z(() => {
816
+ d((e == null ? void 0 : e.filter) ?? "");
817
+ }, [e == null ? void 0 : e.filter]), z(() => {
818
+ if (i === ((e == null ? void 0 : e.filter) ?? "")) return;
819
+ const g = setTimeout(() => {
820
+ if (i === "") {
821
+ e && a(null);
822
+ return;
823
+ }
824
+ a({ type: l, filter: i });
825
+ }, 200);
826
+ return () => clearTimeout(g);
827
+ }, [i, l, e, a]);
828
+ function c() {
829
+ d(""), e && a(null);
830
+ }
831
+ return /* @__PURE__ */ n("div", { "data-component": "text-floating-filter", className: "ds:w-full", children: /* @__PURE__ */ n(
832
+ pe,
833
+ {
834
+ size: "sm",
835
+ value: i,
836
+ onChange: (g) => d(g.target.value),
837
+ placeholder: p,
838
+ "aria-label": p,
839
+ startAdornment: /* @__PURE__ */ n(fe, { "aria-hidden": "true", className: "ds:size-4" }),
840
+ endAdornment: i.length > 0 ? /* @__PURE__ */ n(
841
+ "button",
842
+ {
843
+ type: "button",
844
+ "aria-label": o("dataTable.textFilter.clear"),
845
+ onClick: c,
846
+ className: "ds:pointer-events-auto ds:flex ds:items-center ds:text-[var(--muted-foreground)] ds:hover:text-[var(--foreground)] ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
847
+ children: /* @__PURE__ */ n(De, { "aria-hidden": "true", className: "ds:size-4" })
848
+ }
849
+ ) : void 0
850
+ }
851
+ ) });
852
+ }
853
+ const Yt = {
854
+ id: "data-table",
855
+ capabilities: [
856
+ "select_single",
857
+ "select_multiple",
858
+ "range_pick",
859
+ "filter",
860
+ "sort",
861
+ "paginate"
862
+ ],
863
+ state: {
864
+ selection: {
865
+ type: "string[]",
866
+ descriptionKey: "ui.agent.dataTable.state.selection",
867
+ description: "Row ids of currently-selected rows.",
868
+ read: (t) => t.getSelection()
869
+ },
870
+ filter: {
871
+ type: "object",
872
+ descriptionKey: "ui.agent.dataTable.state.filter",
873
+ description: "Current ag-grid filter model, keyed by column id.",
874
+ read: (t) => t.getFilter()
875
+ },
876
+ sort: {
877
+ type: "Array<{ colId, sort }>",
878
+ descriptionKey: "ui.agent.dataTable.state.sort",
879
+ description: "Active sort, in priority order.",
880
+ read: (t) => t.getSort()
881
+ },
882
+ currentPage: {
883
+ type: "number",
884
+ descriptionKey: "ui.agent.dataTable.state.currentPage",
885
+ description: "Zero-indexed page number.",
886
+ read: (t) => t.getCurrentPage()
887
+ }
888
+ },
889
+ actions: {
890
+ select_rows: {
891
+ // Transient grid selection (data-table convention) — stays read.
892
+ safety: "read",
893
+ argsType: "{ ids: string[] }",
894
+ argsSchema: {
895
+ type: "object",
896
+ properties: {
897
+ ids: {
898
+ type: "array",
899
+ items: { type: "string" },
900
+ description: "Row ids to select (replaces the current selection)."
901
+ }
902
+ },
903
+ required: ["ids"]
904
+ },
905
+ idempotent: !0,
906
+ descriptionKey: "ui.agent.dataTable.actions.selectRows",
907
+ description: "Replace the current selection with the given row ids.",
908
+ examples: [
909
+ { args: { ids: ["r-1", "r-2"] }, note: "Select the first two rows." }
910
+ ],
911
+ invoke: (t, e) => {
912
+ t.setSelection(e.ids);
913
+ }
914
+ },
915
+ select_range: {
916
+ safety: "read",
917
+ argsType: "{ fromId: string, toId: string }",
918
+ argsSchema: {
919
+ type: "object",
920
+ properties: {
921
+ fromId: { type: "string", description: "Start row id (inclusive)." },
922
+ toId: { type: "string", description: "End row id (inclusive)." }
923
+ },
924
+ required: ["fromId", "toId"]
925
+ },
926
+ idempotent: !0,
927
+ descriptionKey: "ui.agent.dataTable.actions.selectRange",
928
+ description: "Select every row between fromId and toId, inclusive, in current sort order.",
929
+ invoke: (t, e) => {
930
+ t.selectRange(e.fromId, e.toId);
931
+ }
932
+ },
933
+ clear_selection: {
934
+ safety: "read",
935
+ idempotent: !0,
936
+ descriptionKey: "ui.agent.dataTable.actions.clearSelection",
937
+ description: "Deselect all rows.",
938
+ invoke: (t) => {
939
+ t.clearSelection();
940
+ }
941
+ },
942
+ get_selection: {
943
+ safety: "read",
944
+ returns: "string[]",
945
+ returnsSchema: { type: "array", items: { type: "string" } },
946
+ idempotent: !0,
947
+ descriptionKey: "ui.agent.dataTable.actions.getSelection",
948
+ description: "Return the row ids of the currently-selected rows.",
949
+ invoke: (t) => t.getSelection()
950
+ },
951
+ apply_filter: {
952
+ safety: "read",
953
+ argsType: "{ model: Record<string, unknown> }",
954
+ argsSchema: {
955
+ type: "object",
956
+ properties: {
957
+ model: {
958
+ type: "object",
959
+ description: "ag-grid filter model keyed by column id. Opaque per-column filter shapes; replaces the current model.",
960
+ additionalProperties: !0
961
+ }
962
+ },
963
+ required: ["model"]
964
+ },
965
+ idempotent: !0,
966
+ descriptionKey: "ui.agent.dataTable.actions.applyFilter",
967
+ description: "Replace the filter model with the given object.",
968
+ invoke: (t, e) => {
969
+ t.setFilter(e.model);
970
+ }
971
+ },
972
+ sort_by: {
973
+ safety: "read",
974
+ argsType: "{ model: DataTableSortEntry[] }",
975
+ argsSchema: {
976
+ type: "object",
977
+ properties: {
978
+ model: {
979
+ type: "array",
980
+ description: "Sort entries in priority order.",
981
+ items: {
982
+ type: "object",
983
+ properties: {
984
+ colId: { type: "string", description: "Column id to sort by." },
985
+ sort: { enum: ["asc", "desc"], description: "Sort direction." }
986
+ },
987
+ required: ["colId", "sort"]
988
+ }
989
+ }
990
+ },
991
+ required: ["model"]
992
+ },
993
+ idempotent: !0,
994
+ descriptionKey: "ui.agent.dataTable.actions.sortBy",
995
+ description: "Replace the active sort with the given list (priority order).",
996
+ examples: [
997
+ {
998
+ args: { model: [{ colId: "name", sort: "asc" }] },
999
+ note: "Sort by name ascending."
1000
+ }
1001
+ ],
1002
+ invoke: (t, e) => {
1003
+ t.setSort(e.model);
1004
+ }
1005
+ },
1006
+ go_to_page: {
1007
+ safety: "read",
1008
+ argsType: "{ page: number }",
1009
+ argsSchema: {
1010
+ type: "object",
1011
+ properties: {
1012
+ page: {
1013
+ type: "integer",
1014
+ minimum: 0,
1015
+ description: "Zero-indexed page number."
1016
+ }
1017
+ },
1018
+ required: ["page"]
1019
+ },
1020
+ idempotent: !0,
1021
+ descriptionKey: "ui.agent.dataTable.actions.goToPage",
1022
+ description: "Navigate to the given zero-indexed page.",
1023
+ invoke: (t, e) => {
1024
+ t.goToPage(e.page);
1025
+ }
1026
+ }
1027
+ },
1028
+ domHooks: {
1029
+ root: {
1030
+ attr: "data-component",
1031
+ value: "data-table",
1032
+ description: "Marks the DataTable wrapper."
1033
+ },
1034
+ instanceId: {
1035
+ attr: "data-component-id",
1036
+ sourceProp: "gridId",
1037
+ description: "Sourced from the gridId prop. Required to address a specific table from the agent."
1038
+ },
1039
+ item: {
1040
+ attr: "row-id",
1041
+ description: "Native ag-grid row-id attribute on each rendered row. Selection is performed via the curated handle, not by DOM mutation."
1042
+ }
1043
+ }
1044
+ };
1045
+ Ct.registerModules([xt]);
1046
+ const ea = Tt("ag-theme-alfadocs ds:w-full", {
1047
+ variants: {
1048
+ density: {
1049
+ default: "",
1050
+ compact: "data-table-compact",
1051
+ expanded: "data-table-expanded"
1052
+ },
1053
+ bordered: {
1054
+ true: "",
1055
+ false: "ds:[--ag-borders:none]"
1056
+ }
1057
+ },
1058
+ defaultVariants: {
1059
+ density: "default",
1060
+ bordered: !0
1061
+ }
1062
+ });
1063
+ function ta() {
1064
+ const { t } = F();
1065
+ return E(
1066
+ () => ({
1067
+ // Filter strings
1068
+ contains: t("dataTable.agGrid.contains"),
1069
+ notContains: t("dataTable.agGrid.notContains"),
1070
+ equals: t("dataTable.agGrid.equals"),
1071
+ notEqual: t("dataTable.agGrid.notEqual"),
1072
+ startsWith: t("dataTable.agGrid.startsWith"),
1073
+ endsWith: t("dataTable.agGrid.endsWith"),
1074
+ lessThan: t("dataTable.agGrid.lessThan"),
1075
+ greaterThan: t("dataTable.agGrid.greaterThan"),
1076
+ inRange: t("dataTable.agGrid.inRange"),
1077
+ blank: t("dataTable.agGrid.blank"),
1078
+ notBlank: t("dataTable.agGrid.notBlank"),
1079
+ filterOoo: t("dataTable.agGrid.filterOoo"),
1080
+ applyFilter: t("dataTable.agGrid.applyFilter"),
1081
+ resetFilter: t("dataTable.agGrid.resetFilter"),
1082
+ noRowsToShow: t("dataTable.agGrid.noRowsToShow"),
1083
+ selectAll: t("dataTable.agGrid.selectAll"),
1084
+ // Pagination
1085
+ page: t("dataTable.page"),
1086
+ of: t("dataTable.of"),
1087
+ to: t("dataTable.to"),
1088
+ nextPage: t("dataTable.nextPage"),
1089
+ previousPage: t("dataTable.previousPage"),
1090
+ firstPage: t("dataTable.firstPage"),
1091
+ lastPage: t("dataTable.lastPage"),
1092
+ pageSize: t("dataTable.pageSize")
1093
+ }),
1094
+ [t]
1095
+ );
1096
+ }
1097
+ function aa() {
1098
+ return /* @__PURE__ */ n(
1099
+ "div",
1100
+ {
1101
+ role: "status",
1102
+ "aria-live": "polite",
1103
+ className: "ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]",
1104
+ children: Array.from({ length: 5 }).map((t, e) => /* @__PURE__ */ n(
1105
+ ht,
1106
+ {
1107
+ variant: "rectangular",
1108
+ className: "ds:h-[var(--min-target-size)] ds:w-full"
1109
+ },
1110
+ e
1111
+ ))
1112
+ }
1113
+ );
1114
+ }
1115
+ function ra() {
1116
+ const { t } = F();
1117
+ return /* @__PURE__ */ n(
1118
+ vt,
1119
+ {
1120
+ variant: "no-results",
1121
+ size: "sm",
1122
+ title: t("dataTable.noRows"),
1123
+ description: t("dataTable.noRowsDescription")
1124
+ }
1125
+ );
1126
+ }
1127
+ function na(t) {
1128
+ try {
1129
+ const e = localStorage.getItem(`data-table-col-state:${t}`);
1130
+ return e ? JSON.parse(e) : null;
1131
+ } catch {
1132
+ return null;
1133
+ }
1134
+ }
1135
+ function oa(t, e) {
1136
+ try {
1137
+ localStorage.setItem(
1138
+ `data-table-col-state:${t}`,
1139
+ JSON.stringify(e.getColumnState())
1140
+ );
1141
+ } catch {
1142
+ }
1143
+ }
1144
+ function sa(t, e) {
1145
+ const {
1146
+ columnDefs: a,
1147
+ rowData: r,
1148
+ rowSelection: o,
1149
+ pagination: s = !1,
1150
+ paginationPageSize: l = 25,
1151
+ paginationPageSizeSelector: p = [10, 25, 50, 100],
1152
+ gridId: i,
1153
+ onSelectionChanged: d,
1154
+ onSortChanged: c,
1155
+ onFilterChanged: u,
1156
+ noRowsOverlay: y,
1157
+ loadingOverlay: g,
1158
+ gridOptions: T,
1159
+ density: C,
1160
+ bordered: S,
1161
+ heightClass: f = "ds:h-[500px]",
1162
+ className: m,
1163
+ getRowClass: b,
1164
+ pinnedBottomRowData: h,
1165
+ printMode: w = !1,
1166
+ children: A
1167
+ } = t, { t: k, i18n: $ } = F(), D = xe(null), [W, Xe] = R(0), [ne, oe] = R(""), Ze = ta(), se = E(
1168
+ () => ({
1169
+ getSelection: () => {
1170
+ var N;
1171
+ const v = (N = D.current) == null ? void 0 : N.api;
1172
+ if (!v) return [];
1173
+ const x = [];
1174
+ for (const P of v.getSelectedNodes())
1175
+ P.id != null && x.push(P.id);
1176
+ return x;
1177
+ },
1178
+ setSelection: (v) => {
1179
+ var P;
1180
+ const x = (P = D.current) == null ? void 0 : P.api;
1181
+ if (!x) return;
1182
+ const N = new Set(v);
1183
+ x.forEachNode((O) => {
1184
+ O.id != null && O.setSelected(N.has(O.id));
1185
+ });
1186
+ },
1187
+ selectRange: (v, x) => {
1188
+ var be;
1189
+ const N = (be = D.current) == null ? void 0 : be.api;
1190
+ if (!N) return;
1191
+ const P = [];
1192
+ N.forEachNodeAfterFilterAndSort((U) => {
1193
+ U.id != null && P.push(U.id);
1194
+ });
1195
+ const O = P.indexOf(v), q = P.indexOf(x);
1196
+ if (O < 0 || q < 0) return;
1197
+ const [K, ie] = O <= q ? [O, q] : [q, O], ce = new Set(P.slice(K, ie + 1));
1198
+ N.forEachNode((U) => {
1199
+ U.id != null && U.setSelected(ce.has(U.id));
1200
+ });
1201
+ },
1202
+ clearSelection: () => {
1203
+ var v, x;
1204
+ (x = (v = D.current) == null ? void 0 : v.api) == null || x.deselectAll();
1205
+ },
1206
+ getFilter: () => {
1207
+ var v, x;
1208
+ return ((x = (v = D.current) == null ? void 0 : v.api) == null ? void 0 : x.getFilterModel()) ?? {};
1209
+ },
1210
+ setFilter: (v) => {
1211
+ var x, N;
1212
+ (N = (x = D.current) == null ? void 0 : x.api) == null || N.setFilterModel(v);
1213
+ },
1214
+ getSort: () => {
1215
+ var x;
1216
+ const v = (x = D.current) == null ? void 0 : x.api;
1217
+ return v ? v.getColumnState().filter((N) => N.sort === "asc" || N.sort === "desc").map((N) => ({ colId: N.colId, sort: N.sort })) : [];
1218
+ },
1219
+ setSort: (v) => {
1220
+ var P;
1221
+ const x = (P = D.current) == null ? void 0 : P.api;
1222
+ if (!x) return;
1223
+ const N = x.getColumnState().map((O) => {
1224
+ const q = v.find((K) => K.colId === O.colId);
1225
+ return { ...O, sort: q ? q.sort : null };
1226
+ });
1227
+ x.applyColumnState({ state: N, defaultState: { sort: null } });
1228
+ },
1229
+ getCurrentPage: () => {
1230
+ var v, x;
1231
+ return ((x = (v = D.current) == null ? void 0 : v.api) == null ? void 0 : x.paginationGetCurrentPage()) ?? 0;
1232
+ },
1233
+ goToPage: (v) => {
1234
+ var x, N;
1235
+ (N = (x = D.current) == null ? void 0 : x.api) == null || N.paginationGoToPage(v);
1236
+ },
1237
+ getRawApi: () => {
1238
+ var v;
1239
+ return (v = D.current) == null ? void 0 : v.api;
1240
+ }
1241
+ }),
1242
+ []
1243
+ );
1244
+ bt(e, () => se, [se]), It(Yt, se, i);
1245
+ const Ye = $.dir() === "rtl", et = r === void 0, tt = kt(), { resolvedTheme: ge } = Et(), at = (ge === "light-accessible" || ge === "dark-accessible") && C === "compact" ? "default" : C, rt = E(() => {
1246
+ if (o)
1247
+ return o === "single" ? { mode: "singleRow" } : {
1248
+ mode: "multiRow",
1249
+ headerCheckbox: !0,
1250
+ checkboxes: !0
1251
+ };
1252
+ }, [o]), nt = M(() => {
1253
+ var x;
1254
+ if (!i || !((x = D.current) != null && x.api)) return;
1255
+ const v = na(i);
1256
+ v && D.current.api.applyColumnState({
1257
+ state: v,
1258
+ applyOrder: !0
1259
+ });
1260
+ }, [i]), le = M(() => {
1261
+ var v;
1262
+ i && ((v = D.current) != null && v.api) && oa(i, D.current.api);
1263
+ }, [i]), ot = E(() => {
1264
+ if (!T) return;
1265
+ const v = { ...T };
1266
+ return delete v.defaultColDef, v;
1267
+ }, [T]), st = M(() => {
1268
+ var N;
1269
+ const v = (N = D.current) == null ? void 0 : N.api;
1270
+ if (!v) return;
1271
+ const x = v.getSelectedRows();
1272
+ Xe(x.length), d == null || d(x);
1273
+ }, [d]), lt = M(
1274
+ (v) => {
1275
+ var N;
1276
+ const x = (N = D.current) == null ? void 0 : N.api;
1277
+ if (x) {
1278
+ const O = x.getColumnState().find((q) => q.sort);
1279
+ if (O) {
1280
+ const q = O.colId, K = x.getColumnDef(q), ie = (K == null ? void 0 : K.headerName) ?? q, ce = O.sort === "asc" ? "dataTable.sortAscending" : "dataTable.sortDescending";
1281
+ oe(
1282
+ k("dataTable.sortAnnounce", {
1283
+ column: ie,
1284
+ direction: k(ce)
1285
+ })
1286
+ );
1287
+ } else
1288
+ oe("");
1289
+ }
1290
+ c == null || c(v);
1291
+ },
1292
+ [c, k]
1293
+ ), it = M(
1294
+ (v) => {
1295
+ u == null || u(v);
1296
+ },
1297
+ [u]
1298
+ );
1299
+ z(() => {
1300
+ if (!ne) return;
1301
+ const v = setTimeout(() => oe(""), 3e3);
1302
+ return () => clearTimeout(v);
1303
+ }, [ne]);
1304
+ const ct = y ?? ra, dt = g ?? aa, ut = M(
1305
+ () => {
1306
+ var v;
1307
+ return (v = D.current) == null ? void 0 : v.api;
1308
+ },
1309
+ []
1310
+ ), pt = M(() => {
1311
+ typeof window < "u" && window.print();
1312
+ }, []), ft = ea({
1313
+ density: at,
1314
+ bordered: S,
1315
+ className: m
1316
+ }), mt = A ?? /* @__PURE__ */ n(ee, { children: /* @__PURE__ */ n(ee.Actions, { children: /* @__PURE__ */ n(ee.ExportMenu, {}) }) }), gt = w ? !1 : s;
1317
+ return /* @__PURE__ */ I(
1318
+ "div",
1319
+ {
1320
+ className: "ds:flex ds:w-full ds:min-h-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)]",
1321
+ "aria-busy": et ? "true" : void 0,
1322
+ "data-component": "data-table",
1323
+ "data-component-id": i,
1324
+ "data-print-mode": w ? "true" : void 0,
1325
+ children: [
1326
+ !w && /* @__PURE__ */ n(
1327
+ Lt,
1328
+ {
1329
+ getApi: ut,
1330
+ selectionCount: W,
1331
+ onPrint: pt,
1332
+ children: mt
1333
+ }
1334
+ ),
1335
+ /* @__PURE__ */ n(
1336
+ "div",
1337
+ {
1338
+ className: [ft, w ? "" : f].join(" ").trim(),
1339
+ children: /* @__PURE__ */ n(
1340
+ yt,
1341
+ {
1342
+ ref: D,
1343
+ theme: "legacy",
1344
+ columnDefs: a,
1345
+ rowData: r,
1346
+ defaultColDef: {
1347
+ sortable: !0,
1348
+ // Default filter = DS-styled text filter so untyped columns
1349
+ // (no explicit `filter:` override) inherit the kit's form
1350
+ // language instead of AG Grid's stock browser-skinned input.
1351
+ // Number / date / select columns opt into their dedicated
1352
+ // wrapper per-column.
1353
+ filter: Xt,
1354
+ floatingFilterComponent: Zt,
1355
+ resizable: !0,
1356
+ floatingFilter: !0,
1357
+ // §13d — faint sort icon advertises which columns are
1358
+ // sortable. v33+ moved this from grid-level to defaultColDef.
1359
+ unSortIcon: !0,
1360
+ ...T == null ? void 0 : T.defaultColDef
1361
+ },
1362
+ rowSelection: rt,
1363
+ pagination: gt,
1364
+ paginationPageSize: l,
1365
+ paginationPageSizeSelector: p,
1366
+ paginationNumberFormatter: (v) => new Intl.NumberFormat($.language).format(v.value),
1367
+ animateRows: !tt,
1368
+ enableRtl: Ye,
1369
+ ensureDomOrder: !0,
1370
+ enableCellSpan: !0,
1371
+ enableCellTextSelection: !0,
1372
+ copyHeadersToClipboard: !0,
1373
+ accentedSort: !0,
1374
+ multiSortKey: "ctrl",
1375
+ suppressDragLeaveHidesColumns: !0,
1376
+ suppressRowClickSelection: o ? !0 : void 0,
1377
+ tooltipShowDelay: 500,
1378
+ tooltipHideDelay: 5e3,
1379
+ tooltipInteraction: !0,
1380
+ stopEditingWhenCellsLoseFocus: !0,
1381
+ maintainColumnOrder: !0,
1382
+ undoRedoCellEditing: !0,
1383
+ undoRedoCellEditingLimit: 20,
1384
+ suppressCellFocus: !1,
1385
+ rowBuffer: 10,
1386
+ localeText: Ze,
1387
+ noRowsOverlayComponent: ct,
1388
+ loadingOverlayComponent: dt,
1389
+ getRowClass: b,
1390
+ pinnedBottomRowData: h,
1391
+ domLayout: w ? "autoHeight" : void 0,
1392
+ onGridReady: nt,
1393
+ onColumnMoved: le,
1394
+ onColumnResized: le,
1395
+ onColumnPinned: le,
1396
+ onSortChanged: lt,
1397
+ onFilterChanged: it,
1398
+ onSelectionChanged: st,
1399
+ ...ot
1400
+ }
1401
+ )
1402
+ }
1403
+ ),
1404
+ !w && /* @__PURE__ */ n("div", { className: "ds:flex ds:items-center ds:justify-between type-body-sm ds:text-[color:var(--muted-foreground)]", children: W > 0 ? /* @__PURE__ */ n("span", { children: k("dataTable.selected", { count: W }) }) : /* @__PURE__ */ n("span", {}) }),
1405
+ /* @__PURE__ */ n("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: ne })
1406
+ ]
1407
+ }
1408
+ );
1409
+ }
1410
+ const Je = G(sa);
1411
+ Je.displayName = "DataTable";
1412
+ const nr = Object.assign(Je, {
1413
+ Toolbar: ee
1414
+ });
1415
+ function re(t) {
1416
+ return t ? t.toISOString().slice(0, 10) : null;
1417
+ }
1418
+ function L(t) {
1419
+ if (!t) return;
1420
+ const e = new Date(t);
1421
+ return Number.isNaN(e.getTime()) ? void 0 : e;
1422
+ }
1423
+ function or(t) {
1424
+ const { model: e, onModelChange: a, getValue: r, doesRowPassOtherFilter: o } = t, [s, l] = R(() => ({
1425
+ from: L(e == null ? void 0 : e.dateFrom),
1426
+ to: L(e == null ? void 0 : e.dateTo)
1427
+ }));
1428
+ z(() => {
1429
+ l({
1430
+ from: L(e == null ? void 0 : e.dateFrom),
1431
+ to: L(e == null ? void 0 : e.dateTo)
1432
+ });
1433
+ }, [e == null ? void 0 : e.dateFrom, e == null ? void 0 : e.dateTo]), X({
1434
+ doesFilterPass: (i) => {
1435
+ const d = L(e == null ? void 0 : e.dateFrom), c = L(e == null ? void 0 : e.dateTo);
1436
+ if (!d && !c) return !0;
1437
+ const u = r(i.node);
1438
+ if (!u) return !1;
1439
+ const y = u instanceof Date ? u : L(String(u));
1440
+ return !(!y || d && y < d || c && y > c);
1441
+ }
1442
+ });
1443
+ function p(i) {
1444
+ if (l(i), !i.from && !i.to) {
1445
+ a(null);
1446
+ return;
1447
+ }
1448
+ a({
1449
+ type: "inRange",
1450
+ dateFrom: re(i.from),
1451
+ dateTo: re(i.to)
1452
+ });
1453
+ }
1454
+ return /* @__PURE__ */ n("div", { className: "ds:p-[var(--spacing-sm)] ds:min-w-[280px]", children: /* @__PURE__ */ n(Ee, { value: s, onChange: p, size: "sm" }) });
1455
+ }
1456
+ function sr(t) {
1457
+ var i, d;
1458
+ const { model: e, onModelChange: a, column: r } = t, o = ((d = (i = r == null ? void 0 : r.getColDef) == null ? void 0 : i.call(r)) == null ? void 0 : d.filterParams) ?? {}, [s, l] = R(() => ({
1459
+ from: L(e == null ? void 0 : e.dateFrom),
1460
+ to: L(e == null ? void 0 : e.dateTo)
1461
+ }));
1462
+ z(() => {
1463
+ l({
1464
+ from: L(e == null ? void 0 : e.dateFrom),
1465
+ to: L(e == null ? void 0 : e.dateTo)
1466
+ });
1467
+ }, [e == null ? void 0 : e.dateFrom, e == null ? void 0 : e.dateTo]);
1468
+ function p(c) {
1469
+ if (l(c), !c.from && !c.to) {
1470
+ a(null);
1471
+ return;
1472
+ }
1473
+ a({
1474
+ type: "inRange",
1475
+ dateFrom: re(c.from),
1476
+ dateTo: re(c.to)
1477
+ });
1478
+ }
1479
+ return /* @__PURE__ */ n("div", { "data-component": "date-range-floating-filter", className: "ds:w-full", children: /* @__PURE__ */ n(
1480
+ Ee,
1481
+ {
1482
+ value: s,
1483
+ onChange: p,
1484
+ size: "sm",
1485
+ placeholder: o.placeholder
1486
+ }
1487
+ ) });
1488
+ }
1489
+ function H(t) {
1490
+ return typeof t == "number" ? `n:${t}` : `s:${t}`;
1491
+ }
1492
+ function lr(t) {
1493
+ const { model: e, onModelChange: a, getValue: r, api: o, column: s, options: l, placeholder: p } = t, { t: i } = F("ui"), d = E(() => {
1494
+ if (l && l.length > 0) return l;
1495
+ if (!o || !s) return [];
1496
+ const f = /* @__PURE__ */ new Map();
1497
+ return o.forEachNode((m) => {
1498
+ const b = r(m);
1499
+ if (b == null) return;
1500
+ const h = typeof b == "string" || typeof b == "number" ? b : String(b), w = H(h);
1501
+ f.has(w) || f.set(w, { value: h, label: String(h) });
1502
+ }), Array.from(f.values()).sort(
1503
+ (m, b) => String(m.label).localeCompare(String(b.label))
1504
+ );
1505
+ }, [l, o, s, r]), c = E(() => {
1506
+ const f = /* @__PURE__ */ new Set(), m = (e == null ? void 0 : e.values) ?? [];
1507
+ for (const b of m) f.add(H(b));
1508
+ return f;
1509
+ }, [e]), [u, y] = R(c);
1510
+ z(() => {
1511
+ y(c);
1512
+ }, [c]), X({
1513
+ doesFilterPass: (f) => {
1514
+ const m = e == null ? void 0 : e.values;
1515
+ if (!m || m.length === 0) return !0;
1516
+ const b = r(f.node);
1517
+ if (b == null) return !1;
1518
+ const h = typeof b == "string" || typeof b == "number" ? b : String(b), w = H(h);
1519
+ return m.some((A) => H(A) === w);
1520
+ }
1521
+ });
1522
+ function g(f) {
1523
+ y((m) => {
1524
+ const b = new Set(m);
1525
+ return b.has(f) ? b.delete(f) : b.add(f), b;
1526
+ });
1527
+ }
1528
+ function T() {
1529
+ if (u.size === 0) {
1530
+ a(null);
1531
+ return;
1532
+ }
1533
+ const f = [];
1534
+ for (const m of d)
1535
+ u.has(H(m.value)) && f.push(m.value);
1536
+ a({ type: "set", values: f });
1537
+ }
1538
+ function C() {
1539
+ y(/* @__PURE__ */ new Set()), a(null);
1540
+ }
1541
+ const S = p ?? i("dataTable.selectFilter.all");
1542
+ return /* @__PURE__ */ I(
1543
+ "div",
1544
+ {
1545
+ "data-component": "select-filter",
1546
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)] ds:min-w-[200px] ds:max-w-[260px]",
1547
+ children: [
1548
+ /* @__PURE__ */ n(
1549
+ "div",
1550
+ {
1551
+ role: "group",
1552
+ "aria-label": S,
1553
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:max-h-[240px] ds:overflow-y-auto",
1554
+ children: d.length === 0 ? /* @__PURE__ */ n("p", { className: "ds:text-[length:var(--font-size-sm)] ds:text-[var(--muted-foreground)] ds:py-[var(--spacing-xs)]", children: i("dataTable.agGrid.noRowsToShow") }) : d.map((f) => {
1555
+ const m = H(f.value);
1556
+ return /* @__PURE__ */ n(
1557
+ Re,
1558
+ {
1559
+ size: "sm",
1560
+ label: f.label,
1561
+ checked: u.has(m),
1562
+ onCheckedChange: () => g(m)
1563
+ },
1564
+ m
1565
+ );
1566
+ })
1567
+ }
1568
+ ),
1569
+ /* @__PURE__ */ I("div", { className: "ds:flex ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)] ds:pt-[var(--spacing-xs)] ds:border-t ds:border-[var(--border)]", children: [
1570
+ /* @__PURE__ */ n(j, { intent: "ghost", size: "sm", onClick: C, type: "button", children: i("dataTable.selectFilter.clear") }),
1571
+ /* @__PURE__ */ n(j, { intent: "primary", size: "sm", onClick: T, type: "button", children: i("dataTable.selectFilter.apply") })
1572
+ ] })
1573
+ ]
1574
+ }
1575
+ );
1576
+ }
1577
+ function ir(t) {
1578
+ var y;
1579
+ const { model: e, onModelChange: a, column: r } = t, o = (y = r == null ? void 0 : r.getColDef) == null ? void 0 : y.call(r), s = (o == null ? void 0 : o.filterParams) ?? {}, l = s.options ?? [], p = s.placeholder ?? (typeof (o == null ? void 0 : o.headerName) == "string" ? o.headerName : void 0), i = E(() => {
1580
+ const g = /* @__PURE__ */ new Map();
1581
+ for (const T of l) g.set(String(T.value), T.value);
1582
+ return g;
1583
+ }, [l]), d = E(
1584
+ () => l.map((g) => ({
1585
+ value: String(g.value),
1586
+ label: g.label
1587
+ })),
1588
+ [l]
1589
+ ), c = E(
1590
+ () => ((e == null ? void 0 : e.values) ?? []).map((g) => String(g)),
1591
+ [e]
1592
+ );
1593
+ function u(g) {
1594
+ if (g.length === 0) {
1595
+ a(null);
1596
+ return;
1597
+ }
1598
+ const T = [];
1599
+ for (const C of g) {
1600
+ const S = i.get(C);
1601
+ S !== void 0 && T.push(S);
1602
+ }
1603
+ a({ type: "set", values: T });
1604
+ }
1605
+ return /* @__PURE__ */ n("div", { "data-component": "select-floating-filter", className: "ds:w-full", children: /* @__PURE__ */ n(
1606
+ At,
1607
+ {
1608
+ size: "sm",
1609
+ options: d,
1610
+ value: c,
1611
+ onChange: u,
1612
+ placeholder: s.placeholder,
1613
+ "aria-label": p,
1614
+ allowClear: !0
1615
+ }
1616
+ ) });
1617
+ }
1618
+ function J(t) {
1619
+ return t.trim().toLocaleLowerCase();
1620
+ }
1621
+ function cr(t) {
1622
+ const {
1623
+ model: e,
1624
+ onModelChange: a,
1625
+ getValue: r,
1626
+ api: o,
1627
+ column: s,
1628
+ options: l,
1629
+ loadOptions: p,
1630
+ placeholder: i
1631
+ } = t, { t: d } = F("ui"), c = E(() => {
1632
+ if (l && l.length > 0) return l;
1633
+ if (!o || !s) return [];
1634
+ const m = /* @__PURE__ */ new Map();
1635
+ return o.forEachNode((b) => {
1636
+ const h = r(b);
1637
+ if (h == null) return;
1638
+ const w = typeof h == "string" ? h : String(h);
1639
+ m.has(w) || m.set(w, { value: w, label: w });
1640
+ }), Array.from(m.values()).sort(
1641
+ (b, h) => b.label.localeCompare(h.label)
1642
+ );
1643
+ }, [l, o, s, r]), u = E(() => async (m, b) => {
1644
+ if (p)
1645
+ return (await p(m, b)).map((k) => ({ value: k.value, label: k.label }));
1646
+ const h = J(m);
1647
+ return (h ? c.filter((A) => J(A.label).includes(h)) : c).slice(0, 50).map((A) => ({ value: A.value, label: A.label }));
1648
+ }, [p, c]), [y, g] = R((e == null ? void 0 : e.value) ?? "");
1649
+ z(() => {
1650
+ g((e == null ? void 0 : e.value) ?? "");
1651
+ }, [e == null ? void 0 : e.value]), X({
1652
+ doesFilterPass: (m) => {
1653
+ const b = e == null ? void 0 : e.value;
1654
+ if (!b) return !0;
1655
+ const h = r(m.node);
1656
+ if (h == null) return !1;
1657
+ const w = typeof h == "string" ? h : String(h);
1658
+ return J(w) === J(b);
1659
+ }
1660
+ });
1661
+ function T(m) {
1662
+ g(m.label), a({ type: "equals", value: m.value });
1663
+ }
1664
+ function C(m) {
1665
+ g(m), m === "" && e && a(null);
1666
+ }
1667
+ function S() {
1668
+ g(""), a(null);
1669
+ }
1670
+ const f = i ?? d("dataTable.typeaheadFilter.placeholder");
1671
+ return /* @__PURE__ */ I(
1672
+ "div",
1673
+ {
1674
+ "data-component": "typeahead-filter",
1675
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)] ds:min-w-[240px]",
1676
+ children: [
1677
+ /* @__PURE__ */ n(
1678
+ Ae,
1679
+ {
1680
+ size: "sm",
1681
+ value: y,
1682
+ onChange: C,
1683
+ onSelect: T,
1684
+ loadOptions: u,
1685
+ placeholder: f,
1686
+ "aria-label": f
1687
+ }
1688
+ ),
1689
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:items-center ds:justify-end ds:pt-[var(--spacing-xs)] ds:border-t ds:border-[var(--border)]", children: /* @__PURE__ */ n(j, { intent: "ghost", size: "sm", onClick: S, type: "button", children: d("dataTable.typeaheadFilter.clear") }) })
1690
+ ]
1691
+ }
1692
+ );
1693
+ }
1694
+ function dr(t) {
1695
+ var T, C;
1696
+ const { model: e, onModelChange: a, column: r } = t, { t: o } = F("ui"), s = ((C = (T = r == null ? void 0 : r.getColDef) == null ? void 0 : T.call(r)) == null ? void 0 : C.filterParams) ?? {}, l = s.options ?? [], p = s.loadOptions, i = s.placeholder ?? o("dataTable.typeaheadFilter.placeholder"), d = E(() => async (S, f) => {
1697
+ if (p)
1698
+ return (await p(S, f)).map((w) => ({ value: w.value, label: w.label }));
1699
+ const m = J(S);
1700
+ return (m ? l.filter((h) => J(h.label).includes(m)) : l).slice(0, 50).map((h) => ({ value: h.value, label: h.label }));
1701
+ }, [p, l]), [c, u] = R((e == null ? void 0 : e.value) ?? "");
1702
+ z(() => {
1703
+ u((e == null ? void 0 : e.value) ?? "");
1704
+ }, [e == null ? void 0 : e.value]);
1705
+ function y(S) {
1706
+ u(S.label), a({ type: "equals", value: S.value });
1707
+ }
1708
+ function g(S) {
1709
+ u(S), S === "" && e && a(null);
1710
+ }
1711
+ return /* @__PURE__ */ n("div", { "data-component": "typeahead-floating-filter", className: "ds:w-full", children: /* @__PURE__ */ n(
1712
+ Ae,
1713
+ {
1714
+ size: "sm",
1715
+ value: c,
1716
+ onChange: g,
1717
+ onSelect: y,
1718
+ loadOptions: d,
1719
+ placeholder: i,
1720
+ "aria-label": i
1721
+ }
1722
+ ) });
1723
+ }
1724
+ const la = [
1725
+ "equals",
1726
+ "notEqual",
1727
+ "greaterThan",
1728
+ "greaterThanOrEqual",
1729
+ "lessThan",
1730
+ "lessThanOrEqual",
1731
+ "inRange",
1732
+ "blank",
1733
+ "notBlank"
1734
+ ];
1735
+ function ve(t) {
1736
+ return t !== "blank" && t !== "notBlank";
1737
+ }
1738
+ function Te(t) {
1739
+ return t === "inRange";
1740
+ }
1741
+ function ia(t, e, a, r) {
1742
+ if (t === "blank") return e === null;
1743
+ if (t === "notBlank") return e !== null;
1744
+ if (e === null) return !1;
1745
+ if (a === null) return !0;
1746
+ switch (t) {
1747
+ case "equals":
1748
+ return e === a;
1749
+ case "notEqual":
1750
+ return e !== a;
1751
+ case "greaterThan":
1752
+ return e > a;
1753
+ case "greaterThanOrEqual":
1754
+ return e >= a;
1755
+ case "lessThan":
1756
+ return e < a;
1757
+ case "lessThanOrEqual":
1758
+ return e <= a;
1759
+ case "inRange": {
1760
+ if (r === null) return e >= a;
1761
+ const o = Math.min(a, r), s = Math.max(a, r);
1762
+ return e >= o && e <= s;
1763
+ }
1764
+ default:
1765
+ return !0;
1766
+ }
1767
+ }
1768
+ function ca(t) {
1769
+ if (t == null || t === "") return null;
1770
+ const e = typeof t == "number" ? t : Number(t);
1771
+ return Number.isNaN(e) ? null : e;
1772
+ }
1773
+ function ur(t) {
1774
+ const {
1775
+ model: e,
1776
+ onModelChange: a,
1777
+ getValue: r,
1778
+ defaultOperator: o,
1779
+ min: s,
1780
+ max: l,
1781
+ step: p,
1782
+ placeholder: i
1783
+ } = t, { t: d } = F("ui"), c = (e == null ? void 0 : e.type) ?? o ?? "equals", [u, y] = R(c), [g, T] = R((e == null ? void 0 : e.filter) ?? null), [C, S] = R(
1784
+ (e == null ? void 0 : e.filterTo) ?? null
1785
+ );
1786
+ z(() => {
1787
+ if (e === null) {
1788
+ y(o ?? "equals"), T(null), S(null);
1789
+ return;
1790
+ }
1791
+ y(e.type), T(e.filter ?? null), S(e.filterTo ?? null);
1792
+ }, [e, o]), X({
1793
+ doesFilterPass: (k) => {
1794
+ if (!e) return !0;
1795
+ const $ = ca(r(k.node));
1796
+ return ia(
1797
+ e.type,
1798
+ $,
1799
+ e.filter ?? null,
1800
+ e.filterTo ?? null
1801
+ );
1802
+ }
1803
+ });
1804
+ const f = E(
1805
+ () => la.map((k) => ({
1806
+ value: k,
1807
+ label: d(`dataTable.numberFilter.operators.${k}`)
1808
+ })),
1809
+ [d]
1810
+ ), m = i ?? d("dataTable.numberFilter.placeholder");
1811
+ function b() {
1812
+ if (!ve(u)) {
1813
+ a({ type: u, filter: 0 });
1814
+ return;
1815
+ }
1816
+ if (g === null) {
1817
+ a(null);
1818
+ return;
1819
+ }
1820
+ if (Te(u)) {
1821
+ a({
1822
+ type: u,
1823
+ filter: g,
1824
+ filterTo: C ?? void 0
1825
+ });
1826
+ return;
1827
+ }
1828
+ a({ type: u, filter: g });
1829
+ }
1830
+ function h() {
1831
+ y(o ?? "equals"), T(null), S(null), a(null);
1832
+ }
1833
+ const w = ve(u), A = Te(u);
1834
+ return /* @__PURE__ */ I(
1835
+ "div",
1836
+ {
1837
+ "data-component": "number-filter",
1838
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)] ds:min-w-[240px]",
1839
+ children: [
1840
+ /* @__PURE__ */ n(
1841
+ ke,
1842
+ {
1843
+ size: "sm",
1844
+ options: f,
1845
+ value: u,
1846
+ onValueChange: (k) => {
1847
+ k !== "" && y(k);
1848
+ },
1849
+ "aria-label": d("dataTable.numberFilter.operators.equals")
1850
+ }
1851
+ ),
1852
+ w && !A && /* @__PURE__ */ n(
1853
+ Y,
1854
+ {
1855
+ size: "sm",
1856
+ value: g,
1857
+ onChange: T,
1858
+ min: s,
1859
+ max: l,
1860
+ step: p,
1861
+ placeholder: m,
1862
+ "aria-label": m
1863
+ }
1864
+ ),
1865
+ A && /* @__PURE__ */ I("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1866
+ /* @__PURE__ */ n(
1867
+ Y,
1868
+ {
1869
+ size: "sm",
1870
+ value: g,
1871
+ onChange: T,
1872
+ min: s,
1873
+ max: l,
1874
+ step: p,
1875
+ placeholder: d("dataTable.numberFilter.from"),
1876
+ "aria-label": d("dataTable.numberFilter.from")
1877
+ }
1878
+ ),
1879
+ /* @__PURE__ */ n(
1880
+ Y,
1881
+ {
1882
+ size: "sm",
1883
+ value: C,
1884
+ onChange: S,
1885
+ min: s,
1886
+ max: l,
1887
+ step: p,
1888
+ placeholder: d("dataTable.numberFilter.to"),
1889
+ "aria-label": d("dataTable.numberFilter.to")
1890
+ }
1891
+ )
1892
+ ] }),
1893
+ /* @__PURE__ */ I("div", { className: "ds:flex ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)] ds:pt-[var(--spacing-xs)] ds:border-t ds:border-[var(--border)]", children: [
1894
+ /* @__PURE__ */ n(j, { intent: "ghost", size: "sm", onClick: h, type: "button", children: d("dataTable.numberFilter.clear") }),
1895
+ /* @__PURE__ */ n(j, { intent: "primary", size: "sm", onClick: b, type: "button", children: d("dataTable.numberFilter.apply") })
1896
+ ] })
1897
+ ]
1898
+ }
1899
+ );
1900
+ }
1901
+ function pr(t) {
1902
+ var c, u;
1903
+ const { model: e, onModelChange: a, column: r } = t, { t: o } = F("ui"), s = ((u = (c = r == null ? void 0 : r.getColDef) == null ? void 0 : c.call(r)) == null ? void 0 : u.filterParams) ?? {}, l = s.defaultOperator ?? "equals", p = s.placeholder ?? o("dataTable.numberFilter.placeholder"), [i, d] = R((e == null ? void 0 : e.filter) ?? null);
1904
+ return z(() => {
1905
+ d((e == null ? void 0 : e.filter) ?? null);
1906
+ }, [e == null ? void 0 : e.filter]), z(() => {
1907
+ if (i === ((e == null ? void 0 : e.filter) ?? null)) return;
1908
+ const y = setTimeout(() => {
1909
+ if (i === null || Number.isNaN(i)) {
1910
+ a(null);
1911
+ return;
1912
+ }
1913
+ a({ type: l, filter: i });
1914
+ }, 200);
1915
+ return () => clearTimeout(y);
1916
+ }, [i, l]), /* @__PURE__ */ n("div", { "data-component": "number-floating-filter", className: "ds:w-full", children: /* @__PURE__ */ n(
1917
+ Y,
1918
+ {
1919
+ size: "sm",
1920
+ value: i,
1921
+ onChange: d,
1922
+ min: s.min,
1923
+ max: s.max,
1924
+ step: s.step,
1925
+ placeholder: p,
1926
+ "aria-label": p
1927
+ }
1928
+ ) });
1929
+ }
1930
+ function fr(t) {
1931
+ const { value: e, variantMap: a } = t, r = (a == null ? void 0 : a[e]) ?? "neutral";
1932
+ return /* @__PURE__ */ n(Ot, { variant: r, withDot: !0, size: "sm", children: String(e ?? "") });
1933
+ }
1934
+ function mr(t) {
1935
+ const { value: e } = t;
1936
+ return e ? /* @__PURE__ */ I("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
1937
+ /* @__PURE__ */ n(Oe, { name: e.name, src: e.src, size: "sm" }),
1938
+ /* @__PURE__ */ n("span", { children: e.name })
1939
+ ] }) : null;
1940
+ }
1941
+ const da = {
1942
+ sm: "ds:size-8",
1943
+ md: "ds:size-10",
1944
+ lg: "ds:size-12"
1945
+ }, ua = {
1946
+ square: "ds:rounded-none",
1947
+ rounded: "ds:rounded-[var(--radius-md)]",
1948
+ circle: "ds:rounded-[var(--radius-full)]"
1949
+ };
1950
+ function de(t, e) {
1951
+ if (!t || typeof t != "object") return;
1952
+ const a = t[e];
1953
+ return typeof a == "string" ? a : void 0;
1954
+ }
1955
+ const pa = /^(?:https?:|data:image\/)/i;
1956
+ function fa(t) {
1957
+ if (!t) return;
1958
+ const e = t.trim();
1959
+ if (e.length !== 0)
1960
+ return pa.test(e) ? e : void 0;
1961
+ }
1962
+ function gr(t) {
1963
+ const {
1964
+ data: e,
1965
+ srcField: a,
1966
+ altField: r,
1967
+ fallbackField: o,
1968
+ size: s = "md",
1969
+ shape: l = "rounded"
1970
+ } = t;
1971
+ if (!e) return null;
1972
+ const p = de(e, a), i = fa(p), d = r ? de(e, r) ?? "" : "", c = o ? de(e, o) : void 0;
1973
+ return i ? /* @__PURE__ */ n(
1974
+ "img",
1975
+ {
1976
+ src: i,
1977
+ alt: d,
1978
+ loading: "lazy",
1979
+ decoding: "async",
1980
+ className: ["ds:object-cover", da[s], ua[l]].join(
1981
+ " "
1982
+ )
1983
+ }
1984
+ ) : c ? /* @__PURE__ */ n(Oe, { name: c, size: s }) : null;
1985
+ }
1986
+ function br(t) {
1987
+ const { value: e, maxVisible: a = 3 } = t, { t: r } = F();
1988
+ if (!Array.isArray(e) || e.length === 0) return null;
1989
+ const o = e.slice(0, a), s = e.length - a;
1990
+ return /* @__PURE__ */ I("span", { className: "ds:inline-flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1991
+ o.map((l) => /* @__PURE__ */ n(te, { label: l, size: "sm" }, l)),
1992
+ s > 0 && /* @__PURE__ */ n(zt, { label: e.slice(a).join(", "), children: /* @__PURE__ */ n(
1993
+ te,
1994
+ {
1995
+ label: r("inputs.multiSelect.overflow", { count: s }),
1996
+ size: "sm",
1997
+ variant: "neutral",
1998
+ fill: "outline"
1999
+ }
2000
+ ) })
2001
+ ] });
2002
+ }
2003
+ const ma = {
2004
+ date: { year: "numeric", month: "short", day: "numeric" },
2005
+ time: { hour: "2-digit", minute: "2-digit" },
2006
+ datetime: {
2007
+ year: "numeric",
2008
+ month: "short",
2009
+ day: "numeric",
2010
+ hour: "2-digit",
2011
+ minute: "2-digit"
2012
+ }
2013
+ };
2014
+ function hr(t) {
2015
+ const { value: e, format: a = "date", options: r } = t;
2016
+ return e == null || e === "" ? null : a === "relative" && !r ? /* @__PURE__ */ n(he, { value: e, shape: "bare" }) : /* @__PURE__ */ n(
2017
+ he,
2018
+ {
2019
+ value: e,
2020
+ format: "absolute",
2021
+ shape: "bare",
2022
+ absoluteFormat: r ?? ma[a === "relative" ? "date" : a]
2023
+ }
2024
+ );
2025
+ }
2026
+ function ga(t) {
2027
+ if (t == null || t === "") return null;
2028
+ const e = typeof t == "number" ? t : Number(t);
2029
+ return Number.isFinite(e) ? e : null;
2030
+ }
2031
+ function vr(t) {
2032
+ const {
2033
+ value: e,
2034
+ currency: a = "EUR",
2035
+ colorNegative: r,
2036
+ strikethrough: o,
2037
+ options: s
2038
+ } = t, { i18n: l } = F(), p = ga(e);
2039
+ if (p === null) return null;
2040
+ const i = l.language || "en", d = new Intl.NumberFormat(i, {
2041
+ style: "currency",
2042
+ currency: a,
2043
+ ...s
2044
+ }).format(p), c = ["ds:tabular-nums"];
2045
+ return r && p < 0 && c.push("ds:text-[color:var(--destructive)]"), o && c.push("line-through"), /* @__PURE__ */ n("span", { className: c.join(" "), children: d });
2046
+ }
2047
+ function ye(t) {
2048
+ if (!Ne(t)) return t;
2049
+ const e = t, a = e.props.className ?? "", r = /\bsize-|\bw-|\bh-/.test(a) ? a : `${a} size-4`.trim();
2050
+ return Fe(e, { className: r, size: e.props.size ?? 16 });
2051
+ }
2052
+ function Tr(t) {
2053
+ return Math.max(1, t) * 32 + 26;
2054
+ }
2055
+ function ue(t, e) {
2056
+ return typeof t == "function" ? t(e) : !!t;
2057
+ }
2058
+ const ba = "ds:text-[color:var(--destructive)] ds:hover:text-[color:var(--destructive-hover)]";
2059
+ function yr(t) {
2060
+ const { data: e, actions: a, intent: r = "ghost", group: o, label: s, collapsed: l } = t, { t: p } = F();
2061
+ if (!e) return null;
2062
+ const i = a.filter((u) => !ue(u.hidden, e));
2063
+ if (typeof l == "function" ? l() : !!l)
2064
+ return /* @__PURE__ */ I(_.Root, { children: [
2065
+ /* @__PURE__ */ n(_.Trigger, { asChild: !0, children: /* @__PURE__ */ n(
2066
+ V,
2067
+ {
2068
+ size: "sm",
2069
+ intent: r,
2070
+ icon: /* @__PURE__ */ n(Mt, { "aria-hidden": !0 }),
2071
+ "aria-label": s ?? p("dataTable.actions", "Actions")
2072
+ }
2073
+ ) }),
2074
+ /* @__PURE__ */ n(_.Content, { align: "end", children: i.map((u, y) => /* @__PURE__ */ n(
2075
+ _.Item,
2076
+ {
2077
+ startIcon: ye(u.icon),
2078
+ disabled: ue(u.disabled, e),
2079
+ onSelect: () => u.onClick(e),
2080
+ className: u.variant === "destructive" ? "ds:text-[color:var(--destructive)]" : void 0,
2081
+ children: u.label
2082
+ },
2083
+ y
2084
+ )) })
2085
+ ] });
2086
+ const c = i.map((u, y) => {
2087
+ const g = ue(u.disabled, e), T = g && u.disabledReason ? u.disabledReason : u.label;
2088
+ return /* @__PURE__ */ n(
2089
+ V,
2090
+ {
2091
+ size: "sm",
2092
+ intent: r,
2093
+ icon: ye(u.icon),
2094
+ tooltip: T,
2095
+ "aria-label": u.label,
2096
+ disabled: g,
2097
+ onClick: (C) => {
2098
+ C.stopPropagation(), u.onClick(e);
2099
+ },
2100
+ className: u.variant === "destructive" ? ba : void 0
2101
+ },
2102
+ y
2103
+ );
2104
+ });
2105
+ return o ? /* @__PURE__ */ n(
2106
+ Pt,
2107
+ {
2108
+ "aria-label": s ?? p("dataTable.actions", "Actions"),
2109
+ size: "sm",
2110
+ children: c
2111
+ }
2112
+ ) : /* @__PURE__ */ n("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: c });
2113
+ }
2114
+ function Ce(t, e) {
2115
+ return typeof t == "function" ? t(e) : t;
2116
+ }
2117
+ function ha(t) {
2118
+ return /^(https?:\/\/|\/|#|mailto:|tel:)/i.test(t) ? t : "#";
2119
+ }
2120
+ function Cr(t) {
2121
+ const { value: e, data: a, href: r, onClick: o, secondary: s } = t;
2122
+ if (!a) return null;
2123
+ const l = Ce(r, a), p = Ce(s, a), i = e == null || e === "" ? "" : String(e), d = [
2124
+ "ds:text-[color:var(--primary)]",
2125
+ "ds:hover:underline",
2126
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)]",
2127
+ "ds:focus-visible:outline-solid",
2128
+ "ds:focus-visible:outline-[color:var(--ring)]",
2129
+ "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
2130
+ "ds:rounded-[var(--radius-sm)]"
2131
+ ].join(" "), c = (u) => {
2132
+ o && (l || u.preventDefault(), u.stopPropagation(), o(a));
2133
+ };
2134
+ return /* @__PURE__ */ I("span", { className: "ds:flex ds:flex-col ds:leading-tight", children: [
2135
+ l ? /* @__PURE__ */ n(
2136
+ "a",
2137
+ {
2138
+ href: ha(l),
2139
+ onClick: c,
2140
+ className: d,
2141
+ children: i
2142
+ }
2143
+ ) : /* @__PURE__ */ n(
2144
+ "button",
2145
+ {
2146
+ type: "button",
2147
+ onClick: c,
2148
+ className: [
2149
+ "ds:appearance-none ds:bg-transparent ds:p-0 ds:text-start",
2150
+ d
2151
+ ].join(" "),
2152
+ children: i
2153
+ }
2154
+ ),
2155
+ p ? /* @__PURE__ */ n("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: p }) : null
2156
+ ] });
2157
+ }
2158
+ export {
2159
+ yr as A,
2160
+ vr as C,
2161
+ nr as D,
2162
+ gr as I,
2163
+ Cr as L,
2164
+ ur as N,
2165
+ lr as S,
2166
+ br as T,
2167
+ mr as U,
2168
+ hr as a,
2169
+ or as b,
2170
+ sr as c,
2171
+ pr as d,
2172
+ ir as e,
2173
+ fr as f,
2174
+ Xt as g,
2175
+ Zt as h,
2176
+ ee as i,
2177
+ Lt as j,
2178
+ cr as k,
2179
+ dr as l,
2180
+ Tr as m,
2181
+ Yt as n,
2182
+ je as o
2183
+ };
2184
+ //# sourceMappingURL=link-cell-renderer-CTXqtXV-.js.map