@alfadocs/ui-kit 0.69.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 (261) hide show
  1. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-g0kg7HwB.js → agenda-tray-CGXRk58j.js} +2 -2
  3. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js → ai-consent-banner-Be-h9mRI.js} +3 -3
  4. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
  5. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  6. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js → anamnesis-card-DvYCa16e.js} +2 -2
  7. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  8. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  9. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  10. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  11. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  12. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  13. package/dist/_chunks/{audio-recorder-DYXXnGug.js → audio-recorder-Cpdk5qpQ.js} +2 -2
  14. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  15. package/dist/_chunks/{bishop-score-PJI3AXzA.js → bishop-score-DnYWtZa_.js} +2 -2
  16. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js → bmi-calculator-zjeY4E7J.js} +2 -2
  17. package/dist/_chunks/{booking-C3VqFReX.js → booking-DUBI0oqt.js} +4 -4
  18. package/dist/_chunks/{care-plan-card-CvFGXa2z.js → care-plan-card-C5sTfY9G.js} +5 -5
  19. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js → care-plan-entry-card-CXnxGCWA.js} +5 -5
  20. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  21. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  22. package/dist/_chunks/{contact-profile-card-Dramqa9C.js → contact-profile-card-DDPwRFiP.js} +2 -2
  23. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  24. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js → cycle-calculator-CCmPwcBl.js} +2 -2
  25. package/dist/_chunks/{dependent-selector-CG_FOHya.js → dependent-selector-DUV4thxX.js} +2 -2
  26. package/dist/_chunks/{document-scanner-CTubA0-N.js → document-scanner-C_AxLooF.js} +3 -3
  27. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js → due-date-calculator-Brdj-euS.js} +3 -3
  28. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  29. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  30. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  31. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  32. package/dist/_chunks/{fetal-weight-CRz7KE2D.js → fetal-weight-DNCkyeVo.js} +2 -2
  33. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  34. package/dist/_chunks/{file-upload-5ScQd4fE.js → file-upload-DwZcAK8D.js} +2 -1
  35. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js → freemium-paywall-WYlNO7yT.js} +2 -2
  36. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js → gestational-age-calculator-CF2ISaYQ.js} +3 -3
  37. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  38. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js → hcg-doubling-C7bmuaU3.js} +2 -2
  39. package/dist/_chunks/{actions-cell-renderer-DrcaxB0w.js → link-cell-renderer-CTXqtXV-.js} +715 -592
  40. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  41. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js → marketplace-app-shell-Skhfp6vK.js} +3 -3
  42. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  43. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  44. package/dist/_chunks/{notification-tray-Btb9oQeZ.js → notification-tray-AEun6DN2.js} +2 -2
  45. package/dist/_chunks/{operator-hero-CP2Nhupm.js → operator-hero-CR0Rqh4-.js} +3 -3
  46. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  47. package/dist/_chunks/{patient-search-CBC_ySF6.js → patient-search-Be6cLrHR.js} +2 -2
  48. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  49. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  50. package/dist/_chunks/{payment-form-DvjwYVIT.js → payment-form-CxqIXqw7.js} +2 -2
  51. package/dist/_chunks/{payment-request-card-DioWKBUq.js → payment-request-card-BcZJwu9z.js} +125 -136
  52. package/dist/_chunks/{pdf-viewer-D6BPfW2D.js → pdf-viewer-QfebdLOd.js} +192 -214
  53. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js → periodontal-chart-card-hRRJY1NN.js} +2 -2
  54. package/dist/_chunks/{practice-results-KrTHqZua.js → practice-results-C6qDfxos.js} +3 -3
  55. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js → pregnancy-dating-CRVWswD-.js} +3 -3
  56. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js → pregnancy-weight-gain-BUNpTsH-.js} +2 -2
  57. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  58. package/dist/_chunks/{rich-text-editor-BsV7zUdg.js → rich-text-editor-DlCqPixb.js} +410 -394
  59. package/dist/_chunks/{sign-document-B4DeRhTe.js → sign-document-By6hMOra.js} +2 -2
  60. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  61. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  62. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  63. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  64. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  65. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  66. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  67. package/dist/_chunks/{warning-stack-BsgaEbL8.js → warning-stack--sTrrBDA.js} +86 -101
  68. package/dist/_chunks/{workflow-map-Bdam9pGp.js → workflow-map-Dy8mLCqF.js} +3 -3
  69. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  70. package/dist/agent/index.js +5 -4
  71. package/dist/agent/types.d.ts +19 -2
  72. package/dist/agent-catalog.json +1253 -86
  73. package/dist/agent-i18n/en.json +108 -6
  74. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  75. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  76. package/dist/components/_shared/field-value.d.ts +21 -0
  77. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  78. package/dist/components/_shared/field-visibility.d.ts +36 -0
  79. package/dist/components/_shared/patient-fields.d.ts +119 -0
  80. package/dist/components/agenda-card/index.js +1 -1
  81. package/dist/components/agenda-tray/index.js +1 -1
  82. package/dist/components/ai-consent-banner/index.js +1 -1
  83. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  84. package/dist/components/ai-tools-rail/index.js +1 -1
  85. package/dist/components/alert/alert.d.ts +5 -0
  86. package/dist/components/alert/index.js +1 -1
  87. package/dist/components/anamnesis-card/index.js +1 -1
  88. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  89. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  90. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  91. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  92. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  93. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  94. package/dist/components/anatomy-scheme/index.js +17 -0
  95. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  96. package/dist/components/annotation-marker/index.d.ts +3 -0
  97. package/dist/components/annotation-marker/index.js +7 -0
  98. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  99. package/dist/components/appointment-card/index.js +6 -5
  100. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  101. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  102. package/dist/components/appointment-timeline/index.d.ts +4 -0
  103. package/dist/components/appointment-timeline/index.js +6 -0
  104. package/dist/components/audio-recorder/index.js +1 -1
  105. package/dist/components/badge/badge.d.ts +6 -2
  106. package/dist/components/badge/index.js +1 -1
  107. package/dist/components/bishop-score/index.js +1 -1
  108. package/dist/components/bmi-calculator/index.js +1 -1
  109. package/dist/components/booking/index.js +1 -1
  110. package/dist/components/care-plan-card/index.js +1 -1
  111. package/dist/components/care-plan-entry-card/index.js +1 -1
  112. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  113. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  114. package/dist/components/care-plan-header/index.d.ts +4 -0
  115. package/dist/components/care-plan-header/index.js +6 -0
  116. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  117. package/dist/components/clinical-note-card/index.js +1 -1
  118. package/dist/components/contact-profile-card/index.js +1 -1
  119. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  120. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  121. package/dist/components/control-room-rail/index.d.ts +5 -0
  122. package/dist/components/control-room-rail/index.js +9 -0
  123. package/dist/components/cycle-calculator/index.js +1 -1
  124. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  125. package/dist/components/data-table/index.d.ts +1 -1
  126. package/dist/components/data-table/index.js +32 -31
  127. package/dist/components/dependent-selector/index.js +1 -1
  128. package/dist/components/document-scanner/index.js +1 -1
  129. package/dist/components/due-date-calculator/index.js +2 -2
  130. package/dist/components/email-input/index.js +1 -1
  131. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  132. package/dist/components/entity-summary/index.d.ts +3 -0
  133. package/dist/components/entity-summary/index.js +5 -0
  134. package/dist/components/fetal-weight/index.js +1 -1
  135. package/dist/components/file-upload/index.js +1 -1
  136. package/dist/components/freemium-paywall/index.js +1 -1
  137. package/dist/components/gestational-age-calculator/index.js +1 -1
  138. package/dist/components/hcg-doubling/index.js +1 -1
  139. package/dist/components/index.d.ts +9 -0
  140. package/dist/components/notes-panel/index.d.ts +3 -0
  141. package/dist/components/notes-panel/index.js +5 -0
  142. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  143. package/dist/components/notification-card/index.js +1 -1
  144. package/dist/components/notification-tray/index.js +1 -1
  145. package/dist/components/operator-hero/index.js +1 -1
  146. package/dist/components/patient-details/index.d.ts +5 -0
  147. package/dist/components/patient-details/index.js +6 -0
  148. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  149. package/dist/components/patient-details/patient-details.d.ts +96 -0
  150. package/dist/components/patient-search/index.js +1 -1
  151. package/dist/components/patient-summary-card/index.js +1 -1
  152. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  153. package/dist/components/patient-table/columns.d.ts +69 -40
  154. package/dist/components/patient-table/index.d.ts +2 -6
  155. package/dist/components/patient-table/index.js +8 -9
  156. package/dist/components/patient-table/patient-table.d.ts +38 -4
  157. package/dist/components/patient-table/types.d.ts +52 -2
  158. package/dist/components/patient-table/use-responsive-columns.d.ts +8 -6
  159. package/dist/components/payment-card/index.js +1 -1
  160. package/dist/components/payment-form/index.js +1 -1
  161. package/dist/components/pdf-viewer/index.js +1 -1
  162. package/dist/components/periodontal-chart-card/index.js +1 -1
  163. package/dist/components/practice-results/index.js +1 -1
  164. package/dist/components/pregnancy-dating/index.js +1 -1
  165. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  166. package/dist/components/radiograph-panel/index.d.ts +4 -0
  167. package/dist/components/radiograph-panel/index.js +7 -0
  168. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  169. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  170. package/dist/components/rich-text-editor/index.js +1 -1
  171. package/dist/components/sidebar/index.js +1 -1
  172. package/dist/components/sign-document/index.js +1 -1
  173. package/dist/components/stepper-accordion/index.js +1 -1
  174. package/dist/components/tab-bar/index.js +1 -1
  175. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  176. package/dist/components/tooth-scheme/index.d.ts +2 -2
  177. package/dist/components/tooth-scheme/index.js +30 -23
  178. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  179. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  180. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  181. package/dist/components/transaction-chip/index.js +1 -1
  182. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  183. package/dist/components/warning-stack/index.js +1 -1
  184. package/dist/components/warning-stack/warning-stack.d.ts +10 -7
  185. package/dist/components/workflow/index.js +1 -1
  186. package/dist/hooks/index.d.ts +1 -0
  187. package/dist/hooks/index.js +24 -22
  188. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  189. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  190. package/dist/hooks/use-persistent-state.d.ts +7 -1
  191. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  192. package/dist/i18n/locales/ar.d.ts +308 -24
  193. package/dist/i18n/locales/ar.js +322 -27
  194. package/dist/i18n/locales/de.d.ts +308 -24
  195. package/dist/i18n/locales/de.js +322 -27
  196. package/dist/i18n/locales/el.d.ts +308 -24
  197. package/dist/i18n/locales/el.js +322 -27
  198. package/dist/i18n/locales/en.d.ts +309 -32
  199. package/dist/i18n/locales/en.js +323 -35
  200. package/dist/i18n/locales/es.d.ts +308 -24
  201. package/dist/i18n/locales/es.js +322 -27
  202. package/dist/i18n/locales/fr.d.ts +308 -24
  203. package/dist/i18n/locales/fr.js +322 -27
  204. package/dist/i18n/locales/hi.d.ts +308 -24
  205. package/dist/i18n/locales/hi.js +322 -27
  206. package/dist/i18n/locales/it.d.ts +308 -24
  207. package/dist/i18n/locales/it.js +322 -27
  208. package/dist/i18n/locales/ja.d.ts +308 -24
  209. package/dist/i18n/locales/ja.js +322 -27
  210. package/dist/i18n/locales/nl.d.ts +308 -24
  211. package/dist/i18n/locales/nl.js +322 -27
  212. package/dist/i18n/locales/pl.d.ts +308 -24
  213. package/dist/i18n/locales/pl.js +322 -27
  214. package/dist/i18n/locales/pt.d.ts +308 -24
  215. package/dist/i18n/locales/pt.js +322 -27
  216. package/dist/i18n/locales/ro.d.ts +308 -24
  217. package/dist/i18n/locales/ro.js +322 -27
  218. package/dist/i18n/locales/ru.d.ts +308 -24
  219. package/dist/i18n/locales/ru.js +322 -27
  220. package/dist/i18n/locales/sq.d.ts +308 -24
  221. package/dist/i18n/locales/sq.js +322 -27
  222. package/dist/i18n/locales/sv.d.ts +308 -24
  223. package/dist/i18n/locales/sv.js +322 -27
  224. package/dist/i18n/locales/tr.d.ts +308 -24
  225. package/dist/i18n/locales/tr.js +322 -27
  226. package/dist/i18n/locales/zh.d.ts +308 -24
  227. package/dist/i18n/locales/zh.js +322 -27
  228. package/dist/index.js +672 -623
  229. package/dist/locales/ar.json +311 -27
  230. package/dist/locales/de.json +311 -27
  231. package/dist/locales/el.json +311 -27
  232. package/dist/locales/en.json +311 -27
  233. package/dist/locales/es.json +311 -27
  234. package/dist/locales/fr.json +311 -27
  235. package/dist/locales/hi.json +311 -27
  236. package/dist/locales/it.json +311 -27
  237. package/dist/locales/ja.json +311 -27
  238. package/dist/locales/nl.json +311 -27
  239. package/dist/locales/pl.json +311 -27
  240. package/dist/locales/pt.json +311 -27
  241. package/dist/locales/ro.json +311 -27
  242. package/dist/locales/ru.json +311 -27
  243. package/dist/locales/sq.json +311 -27
  244. package/dist/locales/sv.json +311 -27
  245. package/dist/locales/tr.json +311 -27
  246. package/dist/locales/zh.json +311 -27
  247. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  248. package/dist/tokens.css +1 -1
  249. package/package.json +37 -1
  250. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js +0 -373
  251. package/dist/_chunks/appointment-tray-CZtvtaH-.js +0 -431
  252. package/dist/_chunks/clinical-note-card-DqQYf_D4.js +0 -333
  253. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +0 -448
  254. package/dist/_chunks/email-input-B_Y55f5G.js +0 -396
  255. package/dist/_chunks/patient-summary-card-B836_fDB.js +0 -435
  256. package/dist/_chunks/patient-table-CDuosVru.js +0 -889
  257. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  258. package/dist/_chunks/tooth-scheme-yBr53cvv.js +0 -1330
  259. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  260. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +0 -45
  261. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +0 -26
@@ -1,7 +1,7 @@
1
- import { u as v } from "../_chunks/use-prefers-reduced-motion-BMwIQRjB.js";
1
+ import { u as A } from "../_chunks/use-prefers-reduced-motion-BMwIQRjB.js";
2
2
  import { u as D } from "../_chunks/use-media-query-CcAx5SMM.js";
3
- import { u as g, a as _ } from "../_chunks/use-signing-session-CyOZWinp.js";
4
- import { u as I } from "../_chunks/use-count-up-BLLetaZ8.js";
3
+ import { u as g, a as w } from "../_chunks/use-signing-session-CyOZWinp.js";
4
+ import { u as _ } from "../_chunks/use-count-up-BLLetaZ8.js";
5
5
  import { u as R } from "../_chunks/use-locale-BkCIHujH.js";
6
6
  import { A as K, T as H, a as M, r as Y, t as q, u as B } from "../_chunks/use-theme-CAuo6EYT.js";
7
7
  import { u as P } from "../_chunks/use-controllable-state-BiY4xTzM.js";
@@ -9,12 +9,13 @@ import { u as V } from "../_chunks/use-copy-to-clipboard-Cyfc_dlv.js";
9
9
  import { u as z } from "../_chunks/use-debounced-callback-BisrB-Fq.js";
10
10
  import { useState as x, useRef as b, useEffect as E } from "react";
11
11
  import { u as W, a as J } from "../_chunks/use-direction-Dp8h70PP.js";
12
- import { u as X } from "../_chunks/use-persistent-state-i23OWy6G.js";
12
+ import { u as X } from "../_chunks/use-persistent-state-nZwZAnE9.js";
13
13
  import { u as $ } from "../_chunks/use-isomorphic-layout-effect-BGfaCOP1.js";
14
- import { u as te } from "../_chunks/use-web-otp-D_utzp6S.js";
15
- import { u as oe } from "../_chunks/use-edge-resize-ZnGG7gyO.js";
16
- import { u as ne } from "../_chunks/use-countdown-Yd6ts0_a.js";
17
- function h(e, o) {
14
+ import { u as te } from "../_chunks/use-overflow-collapse-BIOzKbni.js";
15
+ import { u as oe } from "../_chunks/use-web-otp-D_utzp6S.js";
16
+ import { u as ne } from "../_chunks/use-edge-resize-ZnGG7gyO.js";
17
+ import { u as ae } from "../_chunks/use-countdown-Yd6ts0_a.js";
18
+ function C(e, o) {
18
19
  const [t, i] = x(e), u = b(null);
19
20
  return E(() => {
20
21
  if (o <= 0) {
@@ -51,7 +52,7 @@ function p(e) {
51
52
  return !0;
52
53
  });
53
54
  }
54
- function C(e, o = {}) {
55
+ function h(e, o = {}) {
55
56
  const { enabled: t = !0, autoFocus: i = !0, restoreFocus: u = !0 } = o, s = b(null);
56
57
  E(() => {
57
58
  if (!t) return;
@@ -61,7 +62,7 @@ function C(e, o = {}) {
61
62
  const n = p(a)[0] ?? (a.tabIndex >= -1 ? a : null);
62
63
  n == null || n.focus();
63
64
  }
64
- function l(r) {
65
+ function f(r) {
65
66
  if (r.key !== "Tab") return;
66
67
  const n = e.current;
67
68
  if (!n) return;
@@ -70,11 +71,11 @@ function C(e, o = {}) {
70
71
  r.preventDefault();
71
72
  return;
72
73
  }
73
- const d = c[0], m = c[c.length - 1], f = document.activeElement;
74
- r.shiftKey ? (f === d || !n.contains(f)) && (r.preventDefault(), m.focus()) : (f === m || !n.contains(f)) && (r.preventDefault(), d.focus());
74
+ const m = c[0], d = c[c.length - 1], l = document.activeElement;
75
+ r.shiftKey ? (l === m || !n.contains(l)) && (r.preventDefault(), d.focus()) : (l === d || !n.contains(l)) && (r.preventDefault(), m.focus());
75
76
  }
76
- return a.addEventListener("keydown", l), () => {
77
- if (a.removeEventListener("keydown", l), u && s.current) {
77
+ return a.addEventListener("keydown", f), () => {
78
+ if (a.removeEventListener("keydown", f), u && s.current) {
78
79
  const r = s.current;
79
80
  requestAnimationFrame(() => {
80
81
  r.isConnected && r.focus();
@@ -91,22 +92,23 @@ export {
91
92
  q as themeClassList,
92
93
  P as useControllableState,
93
94
  V as useCopyToClipboard,
94
- I as useCountUp,
95
- ne as useCountdown,
95
+ _ as useCountUp,
96
+ ae as useCountdown,
96
97
  z as useDebouncedCallback,
97
- h as useDebouncedValue,
98
+ C as useDebouncedValue,
98
99
  W as useDirection,
99
100
  J as useDocumentDirection,
100
- oe as useEdgeResize,
101
- C as useFocusTrap,
101
+ ne as useEdgeResize,
102
+ h as useFocusTrap,
102
103
  $ as useIsomorphicLayoutEffect,
103
104
  R as useLocale,
104
105
  D as useMediaQuery,
106
+ te as useOverflowCollapse,
105
107
  X as usePersistentState,
106
- v as usePrefersReducedMotion,
108
+ A as usePrefersReducedMotion,
107
109
  g as useScrollToFirstError,
108
- _ as useSigningSession,
110
+ w as useSigningSession,
109
111
  B as useTheme,
110
- te as useWebOtp
112
+ oe as useWebOtp
111
113
  };
112
114
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Reports whether a CSS line-clamped element is actually overflowing — i.e.
3
+ * its content is taller than the clamped box (`scrollHeight > clientHeight`).
4
+ *
5
+ * Used to drive "show the affordance only when the text is really cut":
6
+ * a tooltip on a clamped title, a "Read more" toggle on a clamped body.
7
+ * Because line-clamp keeps the full text in the DOM, this is purely a
8
+ * sighted-user convenience — assistive tech reads the full text regardless.
9
+ *
10
+ * Re-measures on element resize (a narrower column wraps more, so a title
11
+ * that fit at full width may clip in a two-column grid). `enabled` lets the
12
+ * caller switch measurement off — e.g. while a description is expanded, there
13
+ * is nothing to measure.
14
+ */
15
+ export declare function useClampOverflow<T extends HTMLElement>(enabled: boolean): {
16
+ ref: import("react").RefObject<T | null>;
17
+ isOverflowing: boolean;
18
+ };
19
+ //# sourceMappingURL=use-clamp-overflow.d.ts.map
@@ -0,0 +1,46 @@
1
+ import { type RefObject } from 'react';
2
+ export interface UseOverflowCollapseReturn<C extends HTMLElement, N extends HTMLElement> {
3
+ /**
4
+ * Attach to the element whose inner width caps the content — the available
5
+ * space. It must stay mounted in BOTH the expanded and the collapsed render
6
+ * (it is the only thing left to measure once the content is swapped out).
7
+ */
8
+ containerRef: RefObject<C | null>;
9
+ /**
10
+ * Attach (as `ref={contentRef}`) to the natural-width content — its
11
+ * `scrollWidth` is the space it needs. A callback ref, so the hook re-measures
12
+ * the instant the content mounts or unmounts. Present only while expanded; the
13
+ * hook remembers its last width so the collapsed branch keeps a threshold.
14
+ */
15
+ contentRef: (node: N | null) => void;
16
+ /** The content does not fit the container — swap to the compact form. */
17
+ isOverflowing: boolean;
18
+ }
19
+ /**
20
+ * Reports whether a row of content is wider than the box it lives in, so a
21
+ * caller can swap an overflowing strip for a compact form (a horizontal nav for
22
+ * a dropdown, a toolbar for a "more" menu). Unlike a viewport media query, this
23
+ * reacts to the CONTAINER — the same strip collapses in a narrow column on a
24
+ * wide screen (e.g. a page squeezed between two sidebars) as on a small one.
25
+ *
26
+ * The catch with collapse-on-overflow is reversibility: once the content is
27
+ * swapped out there is nothing left to measure, so a naive check can never
28
+ * un-collapse. This remembers the content's width from the last frame it was
29
+ * mounted (`naturalWidthRef`) — captured at the moment it overflowed, that is
30
+ * its true min-content width — and keeps comparing it against the still-mounted
31
+ * container, so the strip restores the instant the container grows back.
32
+ *
33
+ * The content is tracked as STATE via a callback ref (not a plain ref), so the
34
+ * measurement effect re-subscribes whenever the content mounts/unmounts — for
35
+ * ANY reason, not just an overflow-driven flip. A caller may collapse on a
36
+ * second signal this hook can't see (a viewport media query *as well as*
37
+ * overflow); keying re-subscription on the actual content node, rather than on
38
+ * `isOverflowing`, keeps the observer attached across those transitions too.
39
+ * `enabled` switches it off — e.g. when the host never collapses this strip —
40
+ * clearing the flag so it renders expanded.
41
+ *
42
+ * Purely a layout decision; the content swap it drives stays fully in the DOM
43
+ * and keyboard-reachable in either form, so assistive tech is unaffected.
44
+ */
45
+ export declare function useOverflowCollapse<C extends HTMLElement, N extends HTMLElement>(enabled?: boolean): UseOverflowCollapseReturn<C, N>;
46
+ //# sourceMappingURL=use-overflow-collapse.d.ts.map
@@ -11,6 +11,12 @@
11
11
  *
12
12
  * SSR-safe and quota-safe (swallows serialise / storage errors so a
13
13
  * disabled-storage or quota-exceeded write never throws into render).
14
+ *
15
+ * Pass `{ disabled: true }` to make it behave like a plain `useState` seeded
16
+ * from `initial` — no read, no write. Use this when the value is controlled
17
+ * elsewhere (e.g. a controlled prop), so the hook never touches `localStorage`.
14
18
  */
15
- export declare function usePersistentState<T>(storageKey: string, initial: T | (() => T)): [T, (value: T | ((prev: T) => T)) => void];
19
+ export declare function usePersistentState<T>(storageKey: string, initial: T | (() => T), options?: {
20
+ disabled?: boolean;
21
+ }): [T, (value: T | ((prev: T) => T)) => void];
16
22
  //# sourceMappingURL=use-persistent-state.d.ts.map
@@ -0,0 +1,36 @@
1
+ import { type RefObject } from 'react';
2
+ export interface UseScrollOverflowReturn<T extends HTMLElement> {
3
+ /** Attach to the horizontally-scrollable element (the `overflow-x-auto` box). */
4
+ ref: RefObject<T | null>;
5
+ /** Content is hidden past the inline-START edge (scrolled away from the start). */
6
+ canScrollStart: boolean;
7
+ /** Content is hidden past the inline-END edge (more to reveal toward the end). */
8
+ canScrollEnd: boolean;
9
+ /**
10
+ * Scroll by ~one viewport toward the inline start (`-1`) or end (`+1`),
11
+ * smoothly unless the user prefers reduced motion. Direction-agnostic: works
12
+ * in both LTR and RTL.
13
+ */
14
+ scrollByPage: (direction: -1 | 1) => void;
15
+ }
16
+ /**
17
+ * Reports whether a horizontally-scrollable element has hidden content at its
18
+ * inline-start / inline-end edges, and exposes a paged scroll action — the
19
+ * plumbing behind a scroll strip's edge affordances (fade + chevron buttons).
20
+ *
21
+ * Direction-agnostic: distance-from-start is read as `Math.abs(scrollLeft)`,
22
+ * which is correct in both LTR (`0…max`) and modern RTL (`0…-max`), so the two
23
+ * edges are reported on the right logical side without branching. `scrollByPage`
24
+ * flips its physical sign from the element's computed `direction`.
25
+ *
26
+ * Re-measures on element resize AND on content-size change (a tab added past the
27
+ * fold widens the content without changing the container) by observing both the
28
+ * scroll box and its first child. `enabled` switches measurement off — e.g. when
29
+ * the host collapses the strip into a menu and there is nothing to scroll.
30
+ *
31
+ * Because the scrolled content stays in the DOM and is reachable by keyboard
32
+ * (focus scrolls it into view), the affordance this drives is a sighted-pointer
33
+ * convenience; assistive tech is unaffected.
34
+ */
35
+ export declare function useScrollOverflow<T extends HTMLElement>(enabled?: boolean): UseScrollOverflowReturn<T>;
36
+ //# sourceMappingURL=use-scroll-overflow.d.ts.map
@@ -6,6 +6,184 @@
6
6
  * Domain: AlfaDocs dental practice management software.
7
7
  */
8
8
  export declare const arUi: {
9
+ readonly annotationMarker: {
10
+ readonly shape: {
11
+ readonly circle: "علامة دائرية";
12
+ readonly square: "علامة مربعة";
13
+ readonly triangle: "علامة مثلثة";
14
+ readonly diamond: "علامة معيّنية";
15
+ readonly cross: "علامة متصالبة";
16
+ };
17
+ };
18
+ readonly anatomyScheme: {
19
+ readonly ariaLabel: "مخطط تشريحي";
20
+ readonly legendLabel: "مفتاح النتائج";
21
+ readonly viewListLabel: "المناظر التشريحية";
22
+ readonly regionWithFindings: "{{region}} — {{findings}}";
23
+ readonly side: {
24
+ readonly left: "يسار";
25
+ readonly right: "يمين";
26
+ };
27
+ readonly finding: {
28
+ readonly observation: "ملاحظة";
29
+ readonly lesion: "آفة";
30
+ readonly pain: "ألم";
31
+ readonly treatment: "علاج";
32
+ readonly note: "تعليق";
33
+ };
34
+ readonly view: {
35
+ readonly bodyFront: "الجسم — من الأمام";
36
+ readonly bodyBack: "الجسم — من الخلف";
37
+ readonly faceFront: "الوجه — من الأمام";
38
+ readonly faceRight: "الوجه — من اليمين";
39
+ readonly faceLeft: "الوجه — من اليسار";
40
+ readonly femaleReproductiveInternal: "الجهاز التناسلي — داخلي";
41
+ readonly vulva: "الفرج";
42
+ readonly maleReproductive: "الجهاز التناسلي";
43
+ readonly urinary: "المسالك البولية";
44
+ readonly muscularFront: "العضلات — من الأمام";
45
+ readonly muscularBack: "العضلات — من الخلف";
46
+ readonly skeletalFront: "الهيكل العظمي — من الأمام";
47
+ readonly skeletalBack: "الهيكل العظمي — من الخلف";
48
+ };
49
+ readonly region: {
50
+ readonly head: "الرأس";
51
+ readonly headBack: "مؤخرة الرأس";
52
+ readonly neck: "العنق";
53
+ readonly nape: "القفا";
54
+ readonly shoulder: "الكتف";
55
+ readonly chest: "الصدر";
56
+ readonly breast: "الثدي";
57
+ readonly sternum: "عظم القص";
58
+ readonly upperAbdomen: "أعلى البطن";
59
+ readonly lowerAbdomen: "أسفل البطن";
60
+ readonly groin: "الأُربية";
61
+ readonly upperArm: "العضد";
62
+ readonly forearm: "الساعد";
63
+ readonly hand: "اليد";
64
+ readonly scapula: "لوح الكتف";
65
+ readonly upperBack: "أعلى الظهر";
66
+ readonly lowerBack: "أسفل الظهر";
67
+ readonly buttock: "الأَلية";
68
+ readonly thigh: "الفخذ";
69
+ readonly posteriorThigh: "مؤخرة الفخذ";
70
+ readonly knee: "الركبة";
71
+ readonly shin: "قصبة الساق";
72
+ readonly calf: "بطة الساق";
73
+ readonly foot: "القدم";
74
+ readonly heel: "الكعب";
75
+ readonly forehead: "الجبهة";
76
+ readonly glabella: "الغبغب البيني";
77
+ readonly temple: "الصدغ";
78
+ readonly periorbital: "محيط العين";
79
+ readonly nose: "الأنف";
80
+ readonly cheek: "الخد";
81
+ readonly nasolabialFold: "الطية الأنفية الشفوية";
82
+ readonly lips: "الشفتان";
83
+ readonly chin: "الذقن";
84
+ readonly jawline: "خط الفك";
85
+ readonly ear: "الأذن";
86
+ readonly neckProfile: "العنق";
87
+ readonly uterus: "الرحم";
88
+ readonly endometrium: "بطانة الرحم";
89
+ readonly cervix: "عنق الرحم";
90
+ readonly vagina: "المهبل";
91
+ readonly ovary: "المبيض";
92
+ readonly fallopianTube: "قناة فالوب";
93
+ readonly monsPubis: "عانة المرأة";
94
+ readonly clitoris: "البَظر";
95
+ readonly labiaMajora: "الشفران الكبيران";
96
+ readonly labiaMinora: "الشفران الصغيران";
97
+ readonly urethralMeatus: "فتحة الإحليل";
98
+ readonly vaginalIntroitus: "فتحة المهبل";
99
+ readonly perineum: "العِجان";
100
+ readonly penis: "القضيب";
101
+ readonly glans: "الحشفة";
102
+ readonly foreskin: "القَلَفة";
103
+ readonly scrotum: "كيس الصفن";
104
+ readonly testis: "الخصية";
105
+ readonly epididymis: "البربخ";
106
+ readonly vasDeferens: "الأسهر";
107
+ readonly prostate: "البروستاتا";
108
+ readonly seminalVesicle: "الحويصلة المنوية";
109
+ readonly kidney: "الكلية";
110
+ readonly adrenalGland: "الغدة الكظرية";
111
+ readonly renalPelvis: "حوض الكلية";
112
+ readonly ureter: "الحالب";
113
+ readonly bladder: "المثانة";
114
+ readonly trigone: "مثلث المثانة";
115
+ readonly urethra: "الإحليل";
116
+ readonly sternocleidomastoid: "العضلة القصية الترقوية الخشائية";
117
+ readonly trapezius: "العضلة شبه المنحرفة";
118
+ readonly deltoid: "العضلة الدالية";
119
+ readonly deltoidPosterior: "العضلة الدالية الخلفية";
120
+ readonly pectoralis: "العضلة الصدرية";
121
+ readonly biceps: "العضلة ذات الرأسين";
122
+ readonly triceps: "العضلة ثلاثية الرؤوس";
123
+ readonly forearmFlexors: "قابضات الساعد";
124
+ readonly rectusAbdominis: "العضلة المستقيمة البطنية";
125
+ readonly externalOblique: "العضلة المائلة الخارجية";
126
+ readonly infraspinatus: "العضلة تحت الشوكة";
127
+ readonly latissimusDorsi: "العضلة الظهرية العريضة";
128
+ readonly erectorSpinae: "العضلة الناصبة للفقار";
129
+ readonly hipFlexor: "قابضة الورك";
130
+ readonly gluteusMaximus: "العضلة الألوية الكبرى";
131
+ readonly quadriceps: "العضلة رباعية الرؤوس";
132
+ readonly hamstrings: "أوتار الركبة";
133
+ readonly tibialisAnterior: "العضلة الظنبوبية الأمامية";
134
+ readonly gastrocnemius: "العضلة التوأمية";
135
+ readonly adductors: "المُقَرِّبات";
136
+ readonly ankle: "الكاحل";
137
+ readonly skull: "الجمجمة";
138
+ readonly mandible: "الفك السفلي";
139
+ readonly clavicle: "الترقوة";
140
+ readonly ribcage: "القفص الصدري";
141
+ readonly humerus: "عظم العضد";
142
+ readonly radius: "عظم الكعبرة";
143
+ readonly ulna: "عظم الزند";
144
+ readonly carpals: "عظام الرسغ";
145
+ readonly pelvis: "الحوض";
146
+ readonly iliacCrest: "العُرف الحرقفي";
147
+ readonly femur: "عظم الفخذ";
148
+ readonly patella: "الرضفة";
149
+ readonly tibia: "عظم الظنبوب";
150
+ readonly fibula: "الشظية";
151
+ readonly tarsals: "عظام رصغ القدم";
152
+ readonly cervicalSpine: "الفقرات العنقية";
153
+ readonly thoracicSpine: "الفقرات الصدرية";
154
+ readonly lumbarSpine: "الفقرات القطنية";
155
+ readonly sacrum: "العجز";
156
+ readonly coccyx: "العصعص";
157
+ };
158
+ readonly agent: {
159
+ readonly state: {
160
+ readonly chart: "المخطط التشريحي الحالي — أنواع النتائج مفهرسة حسب معرّف المنطقة.";
161
+ readonly activeView: "معرّف المنظر التشريحي المعروض حاليًا.";
162
+ };
163
+ readonly actions: {
164
+ readonly focusRegion: "نقل التركيز إلى منطقة محددة في المنظر النشط.";
165
+ readonly getRegion: "قراءة النتائج المسجّلة على منطقة واحدة.";
166
+ readonly regionsWith: "سرد معرّفات المناطق التي تحمل نوع نتيجة معيّنًا.";
167
+ readonly setFinding: "تسجيل نتيجة على منطقة.";
168
+ readonly removeFinding: "إزالة نوع نتيجة واحد من منطقة.";
169
+ readonly clearRegion: "مسح كل النتائج من منطقة.";
170
+ readonly setView: "تبديل المنظر التشريحي النشط.";
171
+ };
172
+ };
173
+ };
174
+ readonly patientField: {
175
+ readonly sex: {
176
+ readonly m: "ذكر";
177
+ readonly f: "أنثى";
178
+ readonly x: "آخر";
179
+ };
180
+ readonly age_zero: "عمره {{count}} عاماً";
181
+ readonly age_one: "عمره عام واحد";
182
+ readonly age_two: "عمره {{count}} عاماً";
183
+ readonly age_few: "عمره {{count}} عاماً";
184
+ readonly age_many: "عمره {{count}} عاماً";
185
+ readonly age_other: "عمره {{count}} عاماً";
186
+ };
9
187
  readonly common: {
10
188
  readonly save: "حفظ";
11
189
  readonly cancel: "إلغاء";
@@ -494,6 +672,28 @@ export declare const arUi: {
494
672
  };
495
673
  };
496
674
  };
675
+ readonly fieldPicker: {
676
+ readonly trigger: "تخصيص الحقول";
677
+ readonly title: "تخصيص الحقول";
678
+ readonly reset: "إعادة التعيين إلى الإعدادات الافتراضية";
679
+ readonly reorder: "إعادة ترتيب {{field}}. اضغط Alt + أعلى أو Alt + أسفل للنقل.";
680
+ readonly moved: "تم نقل {{field}} إلى الموضع {{position}} من {{count}}";
681
+ };
682
+ readonly patientDetails: {
683
+ readonly regionLabel: "تفاصيل المريض";
684
+ readonly empty: "لم يتم اختيار مريض.";
685
+ readonly sensitive: "حساس";
686
+ readonly section: {
687
+ readonly empty: "لا توجد حقول معروضة.";
688
+ };
689
+ readonly edit: {
690
+ readonly save: "حفظ";
691
+ readonly cancel: "إلغاء";
692
+ readonly editField: "تعديل {{field}}";
693
+ readonly saveFailed: "تعذّر الحفظ. حاول مرة أخرى.";
694
+ readonly placeholder: "أدخل قيمة";
695
+ };
696
+ };
497
697
  readonly patientTable: {
498
698
  readonly regionLabel: "المرضى";
499
699
  readonly balance: {
@@ -513,34 +713,42 @@ export declare const arUi: {
513
713
  readonly label: "الموعد التالي";
514
714
  readonly none: "لا مواعيد قادمة";
515
715
  };
516
- readonly identity: {
517
- readonly viewPatient: "عرض {{name}}";
518
- readonly fiscalCodeLabel: "الرقم الضريبي";
519
- };
520
- readonly contact: {
521
- readonly emailMasked: "البريد مخفي";
522
- readonly smsEligible: "تذكيرات الرسائل النصية مفعّلة";
523
- readonly smsIneligible: "تذكيرات الرسائل النصية غير متاحة";
524
- readonly emailEligible: "تذكيرات البريد مفعّلة";
525
- readonly emailIneligible: "تذكيرات البريد غير متاحة";
526
- };
527
716
  readonly column: {
528
- readonly identity: "المريض";
717
+ readonly avatar: "الصورة";
718
+ readonly lastName: "اسم العائلة";
529
719
  readonly actions: "الإجراءات";
530
- readonly nextAppointment: "الموعد التالي";
531
- readonly unpaidBalance: "الرصيد غير المدفوع";
720
+ readonly firstName: "الاسم";
721
+ readonly fiscalCode: "الرقم الضريبي";
722
+ readonly age: "العمر";
723
+ readonly gender: "الجنس";
724
+ readonly dateOfBirth: "تاريخ الميلاد";
725
+ readonly placeOfBirth: "مكان الميلاد";
726
+ readonly countryOfBirth: "بلد الميلاد";
532
727
  readonly phone: "الهاتف";
533
728
  readonly email: "البريد الإلكتروني";
534
- readonly carePlanStatus: "خطة العلاج";
729
+ readonly smsReminders: "تذكيرات الرسائل القصيرة";
730
+ readonly emailReminders: "تذكيرات البريد الإلكتروني";
731
+ readonly pec: "البريد الإلكتروني المعتمد";
732
+ readonly nextAppointment: "الموعد التالي";
535
733
  readonly lastVisit: "آخر زيارة";
536
- readonly dateOfBirth: "تاريخ الميلاد";
537
- readonly gender: "الجنس";
734
+ readonly unpaidBalance: "الرصيد غير المدفوع";
735
+ readonly billableAmount: "المبلغ المستحق";
736
+ readonly discount: "الخصم";
737
+ readonly carePlanStatus: "خطة العلاج";
738
+ readonly diagnosis: "التشخيص";
739
+ readonly insurance: "التأمين";
740
+ readonly assignedTo: "مُسند إلى";
741
+ readonly job: "المهنة";
538
742
  readonly source: "المصدر";
539
- readonly defaultInsurance: "التأمين";
540
- readonly fiscalCode: "الرقم الضريبي";
541
- readonly tags: "الوسوم";
542
- readonly assignedMember: "العضو المسؤول";
743
+ readonly marketingConsent: "موافقة التسويق";
744
+ readonly patientNumber: "رقم المريض";
745
+ readonly portal: "البوابة";
543
746
  readonly createdAt: "تاريخ الإنشاء";
747
+ readonly city: "المدينة";
748
+ readonly province: "المحافظة";
749
+ readonly postcode: "الرمز البريدي";
750
+ readonly country: "البلد";
751
+ readonly street: "الشارع";
544
752
  };
545
753
  readonly actions: {
546
754
  readonly group: "إجراءات المريض";
@@ -560,9 +768,10 @@ export declare const arUi: {
560
768
  readonly f: "أنثى";
561
769
  readonly x: "آخر";
562
770
  };
563
- readonly emailValidity: {
564
- readonly valid: "صالح";
565
- readonly invalid: "غير صالح";
771
+ readonly consent: {
772
+ readonly yes: "نعم";
773
+ readonly no: "لا";
774
+ readonly notSpecified: "غير محدد";
566
775
  };
567
776
  };
568
777
  readonly emptyState: {
@@ -611,6 +820,8 @@ export declare const arUi: {
611
820
  readonly warning: "تنبيه";
612
821
  readonly error: "خطأ";
613
822
  };
823
+ readonly readMore: "عرض المزيد";
824
+ readonly readLess: "عرض أقل";
614
825
  };
615
826
  readonly toast: {
616
827
  readonly dismiss: "إغلاق";
@@ -718,6 +929,10 @@ export declare const arUi: {
718
929
  readonly dismissAll: "تجاهل كل التنبيهات";
719
930
  };
720
931
  readonly navigation: {
932
+ readonly tabBar: {
933
+ readonly scrollBack: "التمرير للخلف";
934
+ readonly scrollForward: "التمرير للأمام";
935
+ };
721
936
  readonly breadcrumb: {
722
937
  readonly label: "مسار التنقل";
723
938
  readonly showPath: "عرض المسار الكامل";
@@ -1386,8 +1601,11 @@ export declare const arUi: {
1386
1601
  };
1387
1602
  readonly appointmentCard: {
1388
1603
  readonly itemLabel: "{{patient}} — {{state}}";
1604
+ readonly itemLabelGeneric: "{{title}} — {{state}}";
1605
+ readonly appointment: "Appointment";
1389
1606
  readonly noPatient: "No patient assigned";
1390
1607
  readonly chair: "Chair {{chair}}";
1608
+ readonly carePlan: "Care plan {{number}}";
1391
1609
  readonly duration_zero: "{{count}} min";
1392
1610
  readonly duration_one: "{{count}} min";
1393
1611
  readonly duration_two: "{{count}} min";
@@ -1413,6 +1631,20 @@ export declare const arUi: {
1413
1631
  readonly telehealth: "Telehealth";
1414
1632
  };
1415
1633
  };
1634
+ readonly appointmentTimeline: {
1635
+ readonly title: "Appointments";
1636
+ readonly filtersLabel: "Date filters";
1637
+ readonly today: "Today";
1638
+ readonly thisWeek: "This week";
1639
+ readonly thisMonth: "This month";
1640
+ readonly jumpToDate: "Jump to date";
1641
+ readonly tomorrow: "Tomorrow";
1642
+ readonly yesterday: "Yesterday";
1643
+ readonly empty: {
1644
+ readonly title: "No appointments";
1645
+ readonly description: "There are no appointments in this range.";
1646
+ };
1647
+ };
1416
1648
  readonly appointmentTray: {
1417
1649
  readonly title: "Today's appointments";
1418
1650
  readonly add: "Add appointment";
@@ -1517,6 +1749,12 @@ export declare const arUi: {
1517
1749
  readonly clinical: "Clinical";
1518
1750
  readonly pinned: "Pinned";
1519
1751
  readonly flagged: "Flagged";
1752
+ readonly pin: "تثبيت الملاحظة";
1753
+ readonly unpin: "إلغاء تثبيت الملاحظة";
1754
+ readonly flag: "تمييز الملاحظة";
1755
+ readonly unflag: "إزالة التمييز";
1756
+ readonly readMore: "عرض المزيد";
1757
+ readonly readLess: "عرض أقل";
1520
1758
  readonly added: "added";
1521
1759
  readonly attachment: {
1522
1760
  readonly patient: "Patient record";
@@ -2071,6 +2309,17 @@ export declare const arUi: {
2071
2309
  readonly occlusal: "عرض إطباقي";
2072
2310
  readonly both: "كلا العرضين";
2073
2311
  };
2312
+ readonly arch: {
2313
+ readonly upper: "الفك العلوي";
2314
+ readonly lower: "الفك السفلي";
2315
+ };
2316
+ readonly special: {
2317
+ readonly quadrant: "الربع {{n}}";
2318
+ readonly sextant: "السدس {{n}}";
2319
+ readonly archUpper: "القوس العلوي";
2320
+ readonly archLower: "القوس السفلي";
2321
+ readonly general: "الفم بالكامل";
2322
+ };
2074
2323
  readonly dentition: {
2075
2324
  readonly permanent: "أسنان دائمة";
2076
2325
  readonly primary: "أسنان لبنية";
@@ -2079,6 +2328,7 @@ export declare const arUi: {
2079
2328
  readonly options: {
2080
2329
  readonly label: "خيارات المخطط";
2081
2330
  readonly legend: "مفتاح";
2331
+ readonly specialElements: "عناصر خاصة";
2082
2332
  readonly dentition: "الأسنان";
2083
2333
  readonly numbering: "الترقيم";
2084
2334
  readonly view: "العرض";
@@ -2115,8 +2365,17 @@ export declare const arUi: {
2115
2365
  readonly palmer: "Palmer";
2116
2366
  };
2117
2367
  readonly toothLabel: "السن {{id}}, {{anatomy}}{{conditionSuffix}}";
2368
+ readonly elementLabel: "{{name}}{{conditionSuffix}}";
2118
2369
  readonly selected: "تم تحديد السن {{id}}, {{conditions}}";
2119
2370
  readonly deselected: "تم إلغاء تحديد السن {{id}}";
2371
+ readonly elementSelected: "تم تحديد {{name}}, {{conditions}}";
2372
+ readonly elementDeselected: "تم إلغاء تحديد {{name}}";
2373
+ readonly radiographBadge_one: "صورة شعاعية واحدة";
2374
+ readonly radiographBadge_zero: "{{count}} صورة شعاعية";
2375
+ readonly radiographBadge_two: "صورتان شعاعيتان";
2376
+ readonly radiographBadge_few: "{{count}} صور شعاعية";
2377
+ readonly radiographBadge_many: "{{count}} صورة شعاعية";
2378
+ readonly radiographBadge_other: "{{count}} صورة شعاعية";
2120
2379
  };
2121
2380
  readonly privacyLock: {
2122
2381
  readonly triggerAriaLabel: "قفل الشاشة للخصوصية";
@@ -2133,6 +2392,7 @@ export declare const arUi: {
2133
2392
  readonly credit: "دائن";
2134
2393
  readonly toInvoice: "لم يُفاتَر بعد";
2135
2394
  readonly toDeliver: "لم يُسلَّم بعد";
2395
+ readonly discount: "خصم";
2136
2396
  readonly settled: "مسوَّى";
2137
2397
  };
2138
2398
  readonly aria: {
@@ -2739,7 +2999,31 @@ export declare const arUi: {
2739
2999
  };
2740
3000
  };
2741
3001
  };
3002
+ readonly controlRoom: {
3003
+ readonly favorite: "المفضلة";
3004
+ readonly pinnedAnnounce: "تم تثبيت {{tool}} في المفضلة";
3005
+ readonly unpinnedAnnounce: "تمت إزالة {{tool}} من المفضلة";
3006
+ readonly railLabel: "غرفة التحكم";
3007
+ };
3008
+ readonly entitySummary: {
3009
+ readonly title: "ملخص الذكاء الاصطناعي";
3010
+ readonly close: "إغلاق";
3011
+ readonly generatedAt: "تم التوليد";
3012
+ readonly regenerate: "إعادة التوليد";
3013
+ readonly disclaimer: "لا يحلّ محلّ الحكم السريري · تحقّق من الدقة قبل الاستخدام السريري · BETA";
3014
+ };
3015
+ readonly notesPanel: {
3016
+ readonly title: "الملاحظات";
3017
+ readonly placeholder: "أضف ملاحظة…";
3018
+ readonly composerLabel: "ملاحظة جديدة";
3019
+ readonly add: "إضافة ملاحظة";
3020
+ readonly empty: "لا توجد ملاحظات بعد.";
3021
+ readonly clinicalToggle: "ملاحظة سريرية";
3022
+ readonly clinicalGated: "ليست لديك صلاحية كتابة الملاحظات السريرية.";
3023
+ };
2742
3024
  readonly aiToolsRail: {
3025
+ readonly reorderInstructions: "إعادة ترتيب {{tool}}. اضغط Alt + أعلى أو Alt + أسفل للنقل.";
3026
+ readonly reorderAnnounce: "تم نقل {{tool}} إلى الموضع {{to}} من {{total}}";
2743
3027
  readonly railLabel: "AI tools";
2744
3028
  readonly panelLabel: "{{tool}} panel";
2745
3029
  readonly resizePanel: "تغيير حجم لوحة الأداة";