@alfadocs/ui-kit-debug 0.72.2 → 0.75.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 (687) hide show
  1. package/dist/_chunks/actions-cell-renderer-DLrcSTK_.js +1546 -0
  2. package/dist/_chunks/actions-cell-renderer-DLrcSTK_.js.map +1 -0
  3. package/dist/_chunks/{agenda-tray-loL2A3Cx.js → agenda-tray-CVf-jfWU.js} +3 -3
  4. package/dist/_chunks/{agenda-tray-loL2A3Cx.js.map → agenda-tray-CVf-jfWU.js.map} +1 -1
  5. package/dist/_chunks/{ai-consent-banner-Bke9m8VS.js → ai-consent-banner-DUhr1yNj.js} +2 -2
  6. package/dist/_chunks/{ai-consent-banner-Bke9m8VS.js.map → ai-consent-banner-DUhr1yNj.js.map} +1 -1
  7. package/dist/_chunks/{ai-prompt-input-TVI95hJD.js → ai-prompt-input-DziJCGLe.js} +3 -3
  8. package/dist/_chunks/{ai-prompt-input-TVI95hJD.js.map → ai-prompt-input-DziJCGLe.js.map} +1 -1
  9. package/dist/_chunks/{alia-sidebar-BV5lBSFR.js → alia-sidebar-w6B0TEx7.js} +8 -8
  10. package/dist/_chunks/{alia-sidebar-BV5lBSFR.js.map → alia-sidebar-w6B0TEx7.js.map} +1 -1
  11. package/dist/_chunks/{anamnesis-card-CWO4Ui9c.js → anamnesis-card-CJ5MNbkc.js} +2 -2
  12. package/dist/_chunks/{anamnesis-card-CWO4Ui9c.js.map → anamnesis-card-CJ5MNbkc.js.map} +1 -1
  13. package/dist/_chunks/{antenatal-schedule-timeline-CY-VsLok.js → antenatal-schedule-timeline-BzJZqS-8.js} +3 -3
  14. package/dist/_chunks/{antenatal-schedule-timeline-CY-VsLok.js.map → antenatal-schedule-timeline-BzJZqS-8.js.map} +1 -1
  15. package/dist/_chunks/{appointment-card-Cy4FOkGP.js → appointment-card-DgKI5QKD.js} +2 -2
  16. package/dist/_chunks/{appointment-card-Cy4FOkGP.js.map → appointment-card-DgKI5QKD.js.map} +1 -1
  17. package/dist/_chunks/{appointment-timeline-BWAPPk8F.js → appointment-timeline-DQTG0btW.js} +6 -6
  18. package/dist/_chunks/{appointment-timeline-BWAPPk8F.js.map → appointment-timeline-DQTG0btW.js.map} +1 -1
  19. package/dist/_chunks/{appointment-tray-D3mk04TT.js → appointment-tray-ezyCZN8v.js} +4 -4
  20. package/dist/_chunks/{appointment-tray-D3mk04TT.js.map → appointment-tray-ezyCZN8v.js.map} +1 -1
  21. package/dist/_chunks/{ar-BOqyIfoY.js → ar-B1GhtlBP.js} +2 -2
  22. package/dist/_chunks/{ar-BOqyIfoY.js.map → ar-B1GhtlBP.js.map} +1 -1
  23. package/dist/_chunks/{columns-2-8lq4-b8e.js → arrow-up-right-C2v_MKsK.js} +5 -5
  24. package/dist/_chunks/arrow-up-right-C2v_MKsK.js.map +1 -0
  25. package/dist/_chunks/{audio-recorder-BbjG55dP.js → audio-recorder-Cc3KuL9y.js} +4 -4
  26. package/dist/_chunks/{audio-recorder-BbjG55dP.js.map → audio-recorder-Cc3KuL9y.js.map} +1 -1
  27. package/dist/_chunks/{benefit-card-Xnxj4Gmo.js → benefit-card-DB1Kdrmc.js} +4 -2
  28. package/dist/_chunks/benefit-card-DB1Kdrmc.js.map +1 -0
  29. package/dist/_chunks/{bishop-score-C6eoak_j.js → bishop-score-DDW5-gb9.js} +3 -3
  30. package/dist/_chunks/{bishop-score-C6eoak_j.js.map → bishop-score-DDW5-gb9.js.map} +1 -1
  31. package/dist/_chunks/{bmi-calculator-BmQfoEGP.js → bmi-calculator-Bk2GAju7.js} +2 -2
  32. package/dist/_chunks/{bmi-calculator-BmQfoEGP.js.map → bmi-calculator-Bk2GAju7.js.map} +1 -1
  33. package/dist/_chunks/{booking-B62CMY5k.js → booking-B1Qkcl3c.js} +9 -9
  34. package/dist/_chunks/{booking-B62CMY5k.js.map → booking-B1Qkcl3c.js.map} +1 -1
  35. package/dist/_chunks/{button-DD_0Xdmr.js → button-CPGiR_bH.js} +56 -35
  36. package/dist/_chunks/button-CPGiR_bH.js.map +1 -0
  37. package/dist/_chunks/button-group-DzV5wgnx.js +289 -0
  38. package/dist/_chunks/button-group-DzV5wgnx.js.map +1 -0
  39. package/dist/_chunks/camera-VSklPDCv.js +21 -0
  40. package/dist/_chunks/camera-VSklPDCv.js.map +1 -0
  41. package/dist/_chunks/{care-plan-card-DhXbfGzE.js → care-plan-card-BrwhyIJI.js} +3 -3
  42. package/dist/_chunks/{care-plan-card-DhXbfGzE.js.map → care-plan-card-BrwhyIJI.js.map} +1 -1
  43. package/dist/_chunks/{care-plan-entry-card-D3YGD6rj.js → care-plan-entry-card-DWEdCQM3.js} +3 -3
  44. package/dist/_chunks/{care-plan-entry-card-D3YGD6rj.js.map → care-plan-entry-card-DWEdCQM3.js.map} +1 -1
  45. package/dist/_chunks/{care-plan-header-DtQxyfOb.js → care-plan-header-BXvRpGG8.js} +2 -2
  46. package/dist/_chunks/{care-plan-header-DtQxyfOb.js.map → care-plan-header-BXvRpGG8.js.map} +1 -1
  47. package/dist/_chunks/{carousel.agent-j7hWxJWr.js → carousel.agent-CtAAdsAd.js} +2 -2
  48. package/dist/_chunks/{carousel.agent-j7hWxJWr.js.map → carousel.agent-CtAAdsAd.js.map} +1 -1
  49. package/dist/_chunks/{chat-container-BVCoN06N.js → chat-container-HlFnoEIl.js} +4 -2
  50. package/dist/_chunks/{chat-container-BVCoN06N.js.map → chat-container-HlFnoEIl.js.map} +1 -1
  51. package/dist/_chunks/{chat-input-Btq_uuMZ.js → chat-input-BTCDqUDX.js} +2 -2
  52. package/dist/_chunks/{chat-input-Btq_uuMZ.js.map → chat-input-BTCDqUDX.js.map} +1 -1
  53. package/dist/_chunks/{chat-message-DXjjM8z9.js → chat-message-CdjWqZjo.js} +3 -3
  54. package/dist/_chunks/{chat-message-DXjjM8z9.js.map → chat-message-CdjWqZjo.js.map} +1 -1
  55. package/dist/_chunks/{code-block-Cwi7e3HM.js → code-block-BwanBjRh.js} +2 -2
  56. package/dist/_chunks/{code-block-Cwi7e3HM.js.map → code-block-BwanBjRh.js.map} +1 -1
  57. package/dist/_chunks/{connection-status-0HajXMXM.js → connection-status-oEUyrvev.js} +3 -3
  58. package/dist/_chunks/{connection-status-0HajXMXM.js.map → connection-status-oEUyrvev.js.map} +1 -1
  59. package/dist/_chunks/{contact-profile-card-IggiUVpN.js → contact-profile-card-veMV3W4J.js} +2 -2
  60. package/dist/_chunks/{contact-profile-card-IggiUVpN.js.map → contact-profile-card-veMV3W4J.js.map} +1 -1
  61. package/dist/_chunks/{control-room-rail-DaGcsdZ6.js → control-room-rail-CdfrZ6Vr.js} +3 -3
  62. package/dist/_chunks/{control-room-rail-DaGcsdZ6.js.map → control-room-rail-CdfrZ6Vr.js.map} +1 -1
  63. package/dist/_chunks/{copy-field-PAp0-Wr5.js → copy-field-DBc9QquW.js} +2 -2
  64. package/dist/_chunks/{copy-field-PAp0-Wr5.js.map → copy-field-DBc9QquW.js.map} +1 -1
  65. package/dist/_chunks/{cycle-calculator-BNILyVas.js → cycle-calculator-OQp8Ik5U.js} +4 -4
  66. package/dist/_chunks/{cycle-calculator-BNILyVas.js.map → cycle-calculator-OQp8Ik5U.js.map} +1 -1
  67. package/dist/_chunks/data-table-tabs-BEUXiRlu.js +710 -0
  68. package/dist/_chunks/data-table-tabs-BEUXiRlu.js.map +1 -0
  69. package/dist/_chunks/{date-picker-CVkD_lOi.js → date-picker-DzQS8mvt.js} +2 -2
  70. package/dist/_chunks/{date-picker-CVkD_lOi.js.map → date-picker-DzQS8mvt.js.map} +1 -1
  71. package/dist/_chunks/{date-picker-variants-DLg-ZrIo.js → date-picker-variants-CYQAm1Gk.js} +116 -115
  72. package/dist/_chunks/{date-picker-variants-DLg-ZrIo.js.map → date-picker-variants-CYQAm1Gk.js.map} +1 -1
  73. package/dist/_chunks/{date-range-picker-Dw12DgV8.js → date-range-picker-Cbz1SKhm.js} +3 -3
  74. package/dist/_chunks/{date-range-picker-Dw12DgV8.js.map → date-range-picker-Cbz1SKhm.js.map} +1 -1
  75. package/dist/_chunks/{date-time-picker-Cd_OJtOy.js → date-time-picker-B5IpU-nd.js} +2 -2
  76. package/dist/_chunks/{date-time-picker-Cd_OJtOy.js.map → date-time-picker-B5IpU-nd.js.map} +1 -1
  77. package/dist/_chunks/{de-DFLsUxeV.js → de-DETDHQ0o.js} +2 -2
  78. package/dist/_chunks/{de-DFLsUxeV.js.map → de-DETDHQ0o.js.map} +1 -1
  79. package/dist/_chunks/{description-list-CmBVxIF5.js → description-list-ClNLdRMy.js} +2 -2
  80. package/dist/_chunks/{description-list-CmBVxIF5.js.map → description-list-ClNLdRMy.js.map} +1 -1
  81. package/dist/_chunks/document-preview-CGSM_au9.js +181 -0
  82. package/dist/_chunks/document-preview-CGSM_au9.js.map +1 -0
  83. package/dist/_chunks/{document-scanner-B23j4w7X.js → document-scanner-B6h1Ir56.js} +198 -230
  84. package/dist/_chunks/document-scanner-B6h1Ir56.js.map +1 -0
  85. package/dist/_chunks/{due-date-calculator-CmdAl_JO.js → due-date-calculator-DASNRgnH.js} +4 -4
  86. package/dist/_chunks/{due-date-calculator-CmdAl_JO.js.map → due-date-calculator-DASNRgnH.js.map} +1 -1
  87. package/dist/_chunks/{editable-currency-cell-renderer-z9fJFw6Z.js → editable-currency-cell-renderer-GwfA9tTR.js} +3 -3
  88. package/dist/_chunks/{editable-currency-cell-renderer-z9fJFw6Z.js.map → editable-currency-cell-renderer-GwfA9tTR.js.map} +1 -1
  89. package/dist/_chunks/{editor-overlay-BIOzr8v7.js → editor-overlay-DE3esyio.js} +2 -2
  90. package/dist/_chunks/{editor-overlay-BIOzr8v7.js.map → editor-overlay-DE3esyio.js.map} +1 -1
  91. package/dist/_chunks/{el-OVjBKytp.js → el-HV3jOI0z.js} +2 -2
  92. package/dist/_chunks/{el-OVjBKytp.js.map → el-HV3jOI0z.js.map} +1 -1
  93. package/dist/_chunks/{empty-state-BLy7tigq.js → empty-state-CrLsi0XI.js} +2 -2
  94. package/dist/_chunks/{empty-state-BLy7tigq.js.map → empty-state-CrLsi0XI.js.map} +1 -1
  95. package/dist/_chunks/{entity-summary-DpGziDv5.js → entity-summary--vP698Jn.js} +3 -3
  96. package/dist/_chunks/{entity-summary-DpGziDv5.js.map → entity-summary--vP698Jn.js.map} +1 -1
  97. package/dist/_chunks/eraser-CHOGQfVv.js +21 -0
  98. package/dist/_chunks/eraser-CHOGQfVv.js.map +1 -0
  99. package/dist/_chunks/{es-DKDNrHXG.js → es-Dpo7Olwo.js} +2 -2
  100. package/dist/_chunks/{es-DKDNrHXG.js.map → es-Dpo7Olwo.js.map} +1 -1
  101. package/dist/_chunks/face-scheme-C0rk21gg.js +3146 -0
  102. package/dist/_chunks/face-scheme-C0rk21gg.js.map +1 -0
  103. package/dist/_chunks/{fetal-weight-CVAH8sJ3.js → fetal-weight-1F9N4IMx.js} +2 -2
  104. package/dist/_chunks/{fetal-weight-CVAH8sJ3.js.map → fetal-weight-1F9N4IMx.js.map} +1 -1
  105. package/dist/_chunks/{field-array-CDzc3hTM.js → field-array-DH3Mb1i8.js} +3 -3
  106. package/dist/_chunks/{field-array-CDzc3hTM.js.map → field-array-DH3Mb1i8.js.map} +1 -1
  107. package/dist/_chunks/{field-value-Dj3i52H2.js → field-value-DHG6gEKS.js} +5 -5
  108. package/dist/_chunks/{field-value-Dj3i52H2.js.map → field-value-DHG6gEKS.js.map} +1 -1
  109. package/dist/_chunks/file-Cwe9VC1A.js +40 -0
  110. package/dist/_chunks/file-Cwe9VC1A.js.map +1 -0
  111. package/dist/_chunks/file-manager-UF8dkQF1.js +1776 -0
  112. package/dist/_chunks/file-manager-UF8dkQF1.js.map +1 -0
  113. package/dist/_chunks/{file-upload-Kw1rdvFw.js → file-upload-DENvuhfs.js} +101 -139
  114. package/dist/_chunks/file-upload-DENvuhfs.js.map +1 -0
  115. package/dist/_chunks/{finished-terminal-Di4gtZ50.js → finished-terminal-C0_mefrf.js} +11 -11
  116. package/dist/_chunks/finished-terminal-C0_mefrf.js.map +1 -0
  117. package/dist/_chunks/{fiscal-code-input-DKNXFXs3.js → fiscal-code-input-DWA6C8x8.js} +2 -2
  118. package/dist/_chunks/{fiscal-code-input-DKNXFXs3.js.map → fiscal-code-input-DWA6C8x8.js.map} +1 -1
  119. package/dist/_chunks/{fr-BfMvQh-v.js → fr-CgD4Jvtq.js} +2 -2
  120. package/dist/_chunks/{fr-BfMvQh-v.js.map → fr-CgD4Jvtq.js.map} +1 -1
  121. package/dist/_chunks/{freemium-paywall-DFoeedwh.js → freemium-paywall-CmV642PA.js} +7 -3
  122. package/dist/_chunks/freemium-paywall-CmV642PA.js.map +1 -0
  123. package/dist/_chunks/{gestational-age-calculator-BwCBPAGX.js → gestational-age-calculator-BpYw-WF-.js} +7 -7
  124. package/dist/_chunks/{gestational-age-calculator-BwCBPAGX.js.map → gestational-age-calculator-BpYw-WF-.js.map} +1 -1
  125. package/dist/_chunks/{hcg-doubling-CSsWxEJc.js → hcg-doubling-Dqj-EqMT.js} +3 -3
  126. package/dist/_chunks/{hcg-doubling-CSsWxEJc.js.map → hcg-doubling-Dqj-EqMT.js.map} +1 -1
  127. package/dist/_chunks/{header-DaXWDw0M.js → header-CjwasYnn.js} +88 -79
  128. package/dist/_chunks/header-CjwasYnn.js.map +1 -0
  129. package/dist/_chunks/{header-settings-B0G_u-wV.js → header-settings-4cwQzeFc.js} +4 -4
  130. package/dist/_chunks/{header-settings-B0G_u-wV.js.map → header-settings-4cwQzeFc.js.map} +1 -1
  131. package/dist/_chunks/{hi-C0GEMwlD.js → hi-Bf8CAP6b.js} +2 -2
  132. package/dist/_chunks/{hi-C0GEMwlD.js.map → hi-Bf8CAP6b.js.map} +1 -1
  133. package/dist/_chunks/highlighter-DSkckT2Q.js +15 -0
  134. package/dist/_chunks/highlighter-DSkckT2Q.js.map +1 -0
  135. package/dist/_chunks/{icon-button-LqoiKcUN.js → icon-button-C_kbcd7I.js} +2 -2
  136. package/dist/_chunks/{icon-button-LqoiKcUN.js.map → icon-button-C_kbcd7I.js.map} +1 -1
  137. package/dist/_chunks/icon-button-group-C_lqXTAj.js +391 -0
  138. package/dist/_chunks/icon-button-group-C_lqXTAj.js.map +1 -0
  139. package/dist/_chunks/{icon-picker-Di6uYDG-.js → icon-picker-CM9ubkew.js} +3 -3
  140. package/dist/_chunks/{icon-picker-Di6uYDG-.js.map → icon-picker-CM9ubkew.js.map} +1 -1
  141. package/dist/_chunks/{image-cropper-CdmWFrMC.js → image-cropper-DKe4AORY.js} +2 -2
  142. package/dist/_chunks/{image-cropper-CdmWFrMC.js.map → image-cropper-DKe4AORY.js.map} +1 -1
  143. package/dist/_chunks/{insert-result-C7xSDb8q.js → insert-result-D074GtHX.js} +58 -68
  144. package/dist/_chunks/insert-result-D074GtHX.js.map +1 -0
  145. package/dist/_chunks/{isSameWeek-HddDAyJG.js → isSameWeek-BYl5poz_.js} +2 -2
  146. package/dist/_chunks/{isSameWeek-HddDAyJG.js.map → isSameWeek-BYl5poz_.js.map} +1 -1
  147. package/dist/_chunks/{it-5f4hiT2e.js → it-mt1V2DFS.js} +3 -3
  148. package/dist/_chunks/{it-5f4hiT2e.js.map → it-mt1V2DFS.js.map} +1 -1
  149. package/dist/_chunks/{ja-U0_2inl_.js → ja-CbOHn2TO.js} +2 -2
  150. package/dist/_chunks/{ja-U0_2inl_.js.map → ja-CbOHn2TO.js.map} +1 -1
  151. package/dist/_chunks/{key-value-pair-Byyyc_9J.js → key-value-pair-LHKfDT_9.js} +2 -2
  152. package/dist/_chunks/{key-value-pair-Byyyc_9J.js.map → key-value-pair-LHKfDT_9.js.map} +1 -1
  153. package/dist/_chunks/link-cell-renderer-BQGUs45d.js +711 -0
  154. package/dist/_chunks/link-cell-renderer-BQGUs45d.js.map +1 -0
  155. package/dist/_chunks/{locale-picker-DzF7Q5Y8.js → locale-picker-GNF3lo8K.js} +3 -3
  156. package/dist/_chunks/{locale-picker-DzF7Q5Y8.js.map → locale-picker-GNF3lo8K.js.map} +1 -1
  157. package/dist/_chunks/{map-view-ByPvWG_9.js → map-view-CsaHfoo6.js} +2 -2
  158. package/dist/_chunks/{map-view-ByPvWG_9.js.map → map-view-CsaHfoo6.js.map} +1 -1
  159. package/dist/_chunks/{marketplace-app-shell-BCYiOvKZ.js → marketplace-app-shell-D_1tF4La.js} +6 -6
  160. package/dist/_chunks/marketplace-app-shell-D_1tF4La.js.map +1 -0
  161. package/dist/_chunks/{message-card-BZnnffyB.js → message-card-ievotOFa.js} +3 -3
  162. package/dist/_chunks/{message-card-BZnnffyB.js.map → message-card-ievotOFa.js.map} +1 -1
  163. package/dist/_chunks/{message-tray-cUHOCdU0.js → message-tray-BFlu8clI.js} +4 -4
  164. package/dist/_chunks/{message-tray-cUHOCdU0.js.map → message-tray-BFlu8clI.js.map} +1 -1
  165. package/dist/_chunks/{muscle-scheme-B9MIkuj0.js → muscle-scheme-CFBE2dme.js} +6 -14
  166. package/dist/_chunks/{muscle-scheme-B9MIkuj0.js.map → muscle-scheme-CFBE2dme.js.map} +1 -1
  167. package/dist/_chunks/{nl-CDVnnx1U.js → nl-C6Y0QXnm.js} +2 -2
  168. package/dist/_chunks/{nl-CDVnnx1U.js.map → nl-C6Y0QXnm.js.map} +1 -1
  169. package/dist/_chunks/{notes-panel-CMyjUXD4.js → notes-panel-Cvdp818a.js} +3 -3
  170. package/dist/_chunks/{notes-panel-CMyjUXD4.js.map → notes-panel-Cvdp818a.js.map} +1 -1
  171. package/dist/_chunks/{notification-card-BHJ07FkH.js → notification-card-D29_sVA1.js} +3 -3
  172. package/dist/_chunks/{notification-card-BHJ07FkH.js.map → notification-card-D29_sVA1.js.map} +1 -1
  173. package/dist/_chunks/{notification-tray-Dzm1c3Wy.js → notification-tray-CzIzz3bX.js} +4 -4
  174. package/dist/_chunks/{notification-tray-Dzm1c3Wy.js.map → notification-tray-CzIzz3bX.js.map} +1 -1
  175. package/dist/_chunks/optical-prescription-BEjYQjiO.js +1260 -0
  176. package/dist/_chunks/optical-prescription-BEjYQjiO.js.map +1 -0
  177. package/dist/_chunks/{patient-details-pU_E5xM2.js → patient-details-DP4wKyq4.js} +7 -7
  178. package/dist/_chunks/{patient-details-pU_E5xM2.js.map → patient-details-DP4wKyq4.js.map} +1 -1
  179. package/dist/_chunks/{patient-search-X9SUZGpy.js → patient-search-BaUJ_Y-N.js} +47 -45
  180. package/dist/_chunks/patient-search-BaUJ_Y-N.js.map +1 -0
  181. package/dist/_chunks/{patient-summary-card--t3BjTdU.js → patient-summary-card-D6kgdTNn.js} +4 -4
  182. package/dist/_chunks/{patient-summary-card--t3BjTdU.js.map → patient-summary-card-D6kgdTNn.js.map} +1 -1
  183. package/dist/_chunks/{patient-table-BgWgNIMf.js → patient-table-DweKjiXg.js} +122 -118
  184. package/dist/_chunks/patient-table-DweKjiXg.js.map +1 -0
  185. package/dist/_chunks/{payment-request-card-2ts7ITxd.js → payment-request-card-C0fqlKqO.js} +25 -24
  186. package/dist/_chunks/{payment-request-card-2ts7ITxd.js.map → payment-request-card-C0fqlKqO.js.map} +1 -1
  187. package/dist/_chunks/pen-line-D0De5zdl.js +21 -0
  188. package/dist/_chunks/pen-line-D0De5zdl.js.map +1 -0
  189. package/dist/_chunks/periodontal-chart-D8hOFmde.js +1173 -0
  190. package/dist/_chunks/periodontal-chart-D8hOFmde.js.map +1 -0
  191. package/dist/_chunks/{periodontal-chart-card-6c6Lt4ws.js → periodontal-chart-card-WVjJAheq.js} +2 -2
  192. package/dist/_chunks/{periodontal-chart-card-6c6Lt4ws.js.map → periodontal-chart-card-WVjJAheq.js.map} +1 -1
  193. package/dist/_chunks/periodontal-diagnosis-cco40xTa.js +345 -0
  194. package/dist/_chunks/periodontal-diagnosis-cco40xTa.js.map +1 -0
  195. package/dist/_chunks/periodontal-risk-chart-bUGkMwDg.js +334 -0
  196. package/dist/_chunks/periodontal-risk-chart-bUGkMwDg.js.map +1 -0
  197. package/dist/_chunks/{pl-BWNumNrg.js → pl-BdazJAOp.js} +3 -3
  198. package/dist/_chunks/{pl-BWNumNrg.js.map → pl-BdazJAOp.js.map} +1 -1
  199. package/dist/_chunks/{popover-uJ6BvEU3.js → popover-Cc0a69sw.js} +32 -29
  200. package/dist/_chunks/{popover-uJ6BvEU3.js.map → popover-Cc0a69sw.js.map} +1 -1
  201. package/dist/_chunks/{practice-results-CSEHTH2V.js → practice-results-BCr7jMt1.js} +5 -5
  202. package/dist/_chunks/{practice-results-CSEHTH2V.js.map → practice-results-BCr7jMt1.js.map} +1 -1
  203. package/dist/_chunks/{pregnancy-dating-CxVAA6_4.js → pregnancy-dating-msMl_6wz.js} +7 -7
  204. package/dist/_chunks/{pregnancy-dating-CxVAA6_4.js.map → pregnancy-dating-msMl_6wz.js.map} +1 -1
  205. package/dist/_chunks/{pregnancy-weight-gain-C7zyrwow.js → pregnancy-weight-gain-B-CkVYnU.js} +2 -2
  206. package/dist/_chunks/{pregnancy-weight-gain-C7zyrwow.js.map → pregnancy-weight-gain-B-CkVYnU.js.map} +1 -1
  207. package/dist/_chunks/{privacy-lock-DrRmK8C7.js → privacy-lock-YYBiI_bY.js} +3 -3
  208. package/dist/_chunks/{privacy-lock-DrRmK8C7.js.map → privacy-lock-YYBiI_bY.js.map} +1 -1
  209. package/dist/_chunks/{product-hub-panel-CaZqttvm.js → product-hub-panel-CTld1r5V.js} +3 -3
  210. package/dist/_chunks/{product-hub-panel-CaZqttvm.js.map → product-hub-panel-CTld1r5V.js.map} +1 -1
  211. package/dist/_chunks/{pt-zqdQuryr.js → pt-B3UKvhHp.js} +2 -2
  212. package/dist/_chunks/{pt-zqdQuryr.js.map → pt-B3UKvhHp.js.map} +1 -1
  213. package/dist/_chunks/{public-header.agent-C-opZaOw.js → public-header.agent-rX_VA6hd.js} +107 -103
  214. package/dist/_chunks/public-header.agent-rX_VA6hd.js.map +1 -0
  215. package/dist/_chunks/{radiograph-panel.agent-D1x33moc.js → radiograph-panel.agent-CxF9pVxd.js} +40 -57
  216. package/dist/_chunks/radiograph-panel.agent-CxF9pVxd.js.map +1 -0
  217. package/dist/_chunks/{reviews-panel-liUj6OPX.js → reviews-panel-DmOjvmyH.js} +4 -4
  218. package/dist/_chunks/{reviews-panel-liUj6OPX.js.map → reviews-panel-DmOjvmyH.js.map} +1 -1
  219. package/dist/_chunks/{rich-text-editor-DUgznqOf.js → rich-text-editor-CCWjNkbx.js} +26 -26
  220. package/dist/_chunks/rich-text-editor-CCWjNkbx.js.map +1 -0
  221. package/dist/_chunks/{ro-CornQr64.js → ro-DVTEQpPK.js} +2 -2
  222. package/dist/_chunks/{ro-CornQr64.js.map → ro-DVTEQpPK.js.map} +1 -1
  223. package/dist/_chunks/{ru-CKAXNYVD.js → ru-C-Mp40SC.js} +3 -3
  224. package/dist/_chunks/{ru-CKAXNYVD.js.map → ru-C-Mp40SC.js.map} +1 -1
  225. package/dist/_chunks/{select-BmCbJMJS.js → select-BW5ecXlX.js} +13 -13
  226. package/dist/_chunks/{select-BmCbJMJS.js.map → select-BW5ecXlX.js.map} +1 -1
  227. package/dist/_chunks/{session-countdown-qr8EO5QY.js → session-countdown-C8AsE072.js} +2 -2
  228. package/dist/_chunks/{session-countdown-qr8EO5QY.js.map → session-countdown-C8AsE072.js.map} +1 -1
  229. package/dist/_chunks/{sheet-B_X54aZo.js → sheet-D5K0LB3q.js} +2 -2
  230. package/dist/_chunks/{sheet-B_X54aZo.js.map → sheet-D5K0LB3q.js.map} +1 -1
  231. package/dist/_chunks/{sidebar-B0OBmJrC.js → sidebar-C0PbwJBc.js} +375 -335
  232. package/dist/_chunks/sidebar-C0PbwJBc.js.map +1 -0
  233. package/dist/_chunks/{sign-document-nK03S73h.js → sign-document-Bfk0WpWV.js} +2 -2
  234. package/dist/_chunks/{sign-document-nK03S73h.js.map → sign-document-Bfk0WpWV.js.map} +1 -1
  235. package/dist/_chunks/{sign-in-with-alfadocs-button-LppxjlFt.js → sign-in-with-alfadocs-button-UlYefZpI.js} +2 -2
  236. package/dist/_chunks/{sign-in-with-alfadocs-button-LppxjlFt.js.map → sign-in-with-alfadocs-button-UlYefZpI.js.map} +1 -1
  237. package/dist/_chunks/{signature-capture-Ct_4Md4e.js → signature-capture-DN52VNKL.js} +206 -189
  238. package/dist/_chunks/signature-capture-DN52VNKL.js.map +1 -0
  239. package/dist/_chunks/{signature-field-jgwYgUhO.js → signature-field-0rFODJlW.js} +47 -41
  240. package/dist/_chunks/signature-field-0rFODJlW.js.map +1 -0
  241. package/dist/_chunks/signature-request-C-mskXwi.js +318 -0
  242. package/dist/_chunks/signature-request-C-mskXwi.js.map +1 -0
  243. package/dist/_chunks/{slot-grid-FsqumOaS.js → slot-grid-CQSULZjd.js} +4 -4
  244. package/dist/_chunks/{slot-grid-FsqumOaS.js.map → slot-grid-CQSULZjd.js.map} +1 -1
  245. package/dist/_chunks/{sq-CIIvqXZv.js → sq-DierVlw-.js} +2 -2
  246. package/dist/_chunks/{sq-CIIvqXZv.js.map → sq-DierVlw-.js.map} +1 -1
  247. package/dist/_chunks/{streaming-text-Cedc05ya.js → streaming-text-C5bYz7LL.js} +2 -2
  248. package/dist/_chunks/{streaming-text-Cedc05ya.js.map → streaming-text-C5bYz7LL.js.map} +1 -1
  249. package/dist/_chunks/subDays-DIKRViZm.js +8 -0
  250. package/dist/_chunks/{subDays-DGSOp9d9.js.map → subDays-DIKRViZm.js.map} +1 -1
  251. package/dist/_chunks/{sv-Kpk1pzjz.js → sv-gQWo_19z.js} +2 -2
  252. package/dist/_chunks/{sv-Kpk1pzjz.js.map → sv-gQWo_19z.js.map} +1 -1
  253. package/dist/_chunks/{tabs-DVQ941Sj.js → tabs-CVTukWRD.js} +2 -2
  254. package/dist/_chunks/{tabs-DVQ941Sj.js.map → tabs-CVTukWRD.js.map} +1 -1
  255. package/dist/_chunks/{task-tray-DP5A3Qnc.js → task-tray-Br3vc0O1.js} +3 -3
  256. package/dist/_chunks/{task-tray-DP5A3Qnc.js.map → task-tray-Br3vc0O1.js.map} +1 -1
  257. package/dist/_chunks/{tasks-panel-BuxaYtEF.js → tasks-panel-CjGAhIN8.js} +6 -6
  258. package/dist/_chunks/{tasks-panel-BuxaYtEF.js.map → tasks-panel-CjGAhIN8.js.map} +1 -1
  259. package/dist/_chunks/{theme-toggle-dtdy5EaL.js → theme-toggle-BJCz_UOi.js} +3 -3
  260. package/dist/_chunks/{theme-toggle-dtdy5EaL.js.map → theme-toggle-BJCz_UOi.js.map} +1 -1
  261. package/dist/_chunks/{toast.agent-BSxl057x.js → toast.agent-uV8CeAy6.js} +2 -2
  262. package/dist/_chunks/{toast.agent-BSxl057x.js.map → toast.agent-uV8CeAy6.js.map} +1 -1
  263. package/dist/_chunks/{token-insert-menu-Pok4nExI.js → token-insert-menu-BYv6yoZI.js} +2 -2
  264. package/dist/_chunks/{token-insert-menu-Pok4nExI.js.map → token-insert-menu-BYv6yoZI.js.map} +1 -1
  265. package/dist/_chunks/{tool-rail-BZx0-yIr.js → tool-rail-AaTqxkIM.js} +2 -2
  266. package/dist/_chunks/{tool-rail-BZx0-yIr.js.map → tool-rail-AaTqxkIM.js.map} +1 -1
  267. package/dist/_chunks/tooth-data-BwuoKFf4.js +660 -0
  268. package/dist/_chunks/tooth-data-BwuoKFf4.js.map +1 -0
  269. package/dist/_chunks/tooth-scheme-BzJ6rcte.js +1483 -0
  270. package/dist/_chunks/tooth-scheme-BzJ6rcte.js.map +1 -0
  271. package/dist/_chunks/{tr-DHaeLFxG.js → tr-Btm6M3Km.js} +2 -2
  272. package/dist/_chunks/{tr-DHaeLFxG.js.map → tr-Btm6M3Km.js.map} +1 -1
  273. package/dist/_chunks/{transaction-chip-B6iWoVmU.js → transaction-chip-DJCstquX.js} +41 -51
  274. package/dist/_chunks/transaction-chip-DJCstquX.js.map +1 -0
  275. package/dist/_chunks/type-ggmfVs23.js +16 -0
  276. package/dist/_chunks/type-ggmfVs23.js.map +1 -0
  277. package/dist/_chunks/{unit-converter-fEqluT8b.js → unit-converter-CSLWFDQh.js} +3 -3
  278. package/dist/_chunks/{unit-converter-fEqluT8b.js.map → unit-converter-CSLWFDQh.js.map} +1 -1
  279. package/dist/_chunks/upload-BfT2hzMg.js +16 -0
  280. package/dist/_chunks/upload-BfT2hzMg.js.map +1 -0
  281. package/dist/_chunks/use-priority-overflow-c9SjxZkZ.js +101 -0
  282. package/dist/_chunks/use-priority-overflow-c9SjxZkZ.js.map +1 -0
  283. package/dist/_chunks/use-visual-viewport-pin-ChurOsHM.js +31 -0
  284. package/dist/_chunks/use-visual-viewport-pin-ChurOsHM.js.map +1 -0
  285. package/dist/_chunks/{warning-stack-BaMI7-n7.js → warning-stack-BlG_Ujy3.js} +3 -3
  286. package/dist/_chunks/{warning-stack-BaMI7-n7.js.map → warning-stack-BlG_Ujy3.js.map} +1 -1
  287. package/dist/_chunks/{workflow-map-qWsgCldq.js → workflow-map-C643Q43h.js} +5 -5
  288. package/dist/_chunks/{workflow-map-qWsgCldq.js.map → workflow-map-C643Q43h.js.map} +1 -1
  289. package/dist/_chunks/{zh-CN-BncsTBwM.js → zh-CN-DkVN4vsB.js} +3 -3
  290. package/dist/_chunks/{zh-CN-BncsTBwM.js.map → zh-CN-DkVN4vsB.js.map} +1 -1
  291. package/dist/agent-catalog.json +4081 -3201
  292. package/dist/agent-i18n/en.json +121 -69
  293. package/dist/brand/product-lockup/product-lockup.d.ts +1 -1
  294. package/dist/components/_shared/calendar-class-names.d.ts.map +1 -1
  295. package/dist/components/_shared/entity-card/entity-card.d.ts +1 -1
  296. package/dist/components/agenda-tray/index.js +1 -1
  297. package/dist/components/ai-consent-banner/index.js +1 -1
  298. package/dist/components/ai-prompt-input/index.js +1 -1
  299. package/dist/components/anamnesis-card/anamnesis-card.d.ts +1 -1
  300. package/dist/components/anamnesis-card/index.js +1 -1
  301. package/dist/components/appointment-card/appointment-card.d.ts +1 -1
  302. package/dist/components/appointment-card/index.js +2 -2
  303. package/dist/components/appointment-timeline/index.js +1 -1
  304. package/dist/components/audio-recorder/index.js +1 -1
  305. package/dist/components/benefit-card/benefit-card.d.ts.map +1 -1
  306. package/dist/components/benefit-card/index.js +1 -1
  307. package/dist/components/bishop-score/index.js +1 -1
  308. package/dist/components/bmi-calculator/index.js +1 -1
  309. package/dist/components/booking/index.js +1 -1
  310. package/dist/components/button/button.d.ts +8 -1
  311. package/dist/components/button/button.d.ts.map +1 -1
  312. package/dist/components/button/index.js +2 -2
  313. package/dist/components/button-group/button-group.d.ts +16 -0
  314. package/dist/components/button-group/button-group.d.ts.map +1 -1
  315. package/dist/components/button-group/index.js +1 -1
  316. package/dist/components/card/card.d.ts +1 -1
  317. package/dist/components/care-plan-card/index.js +1 -1
  318. package/dist/components/care-plan-entry-card/index.js +1 -1
  319. package/dist/components/care-plan-header/index.js +1 -1
  320. package/dist/components/carousel/index.js +1 -1
  321. package/dist/components/chat-container/chat-container.d.ts.map +1 -1
  322. package/dist/components/chat-container/index.js +1 -1
  323. package/dist/components/chat-input/index.js +1 -1
  324. package/dist/components/chat-message/index.js +1 -1
  325. package/dist/components/clinical-note-card/clinical-note-card.d.ts +1 -1
  326. package/dist/components/connection-status/index.js +1 -1
  327. package/dist/components/contact-profile-card/contact-profile-card.d.ts +1 -1
  328. package/dist/components/contact-profile-card/index.js +1 -1
  329. package/dist/components/control-room-rail/index.js +1 -1
  330. package/dist/components/copy-field/index.js +1 -1
  331. package/dist/components/counter/counter.d.ts +1 -1
  332. package/dist/components/cycle-calculator/index.js +1 -1
  333. package/dist/components/data-table/data-table.d.ts +2 -8
  334. package/dist/components/data-table/data-table.d.ts.map +1 -1
  335. package/dist/components/data-table/filters/number-filter.d.ts.map +1 -1
  336. package/dist/components/data-table/index.js +35 -34
  337. package/dist/components/data-table/index.js.map +1 -1
  338. package/dist/components/data-table/toolbar.d.ts +5 -11
  339. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  340. package/dist/components/data-table-tabs/data-table-tabs.agent.d.ts +4 -0
  341. package/dist/components/data-table-tabs/data-table-tabs.agent.d.ts.map +1 -0
  342. package/dist/components/data-table-tabs/data-table-tabs.d.ts +93 -0
  343. package/dist/components/data-table-tabs/data-table-tabs.d.ts.map +1 -0
  344. package/dist/components/data-table-tabs/index.d.ts +5 -0
  345. package/dist/components/data-table-tabs/index.d.ts.map +1 -0
  346. package/dist/components/data-table-tabs/index.js +8 -0
  347. package/dist/components/data-table-tabs/use-data-table-filter-tabs.d.ts +63 -0
  348. package/dist/components/data-table-tabs/use-data-table-filter-tabs.d.ts.map +1 -0
  349. package/dist/components/date-picker/index.js +1 -1
  350. package/dist/components/date-range-picker/index.js +1 -1
  351. package/dist/components/date-time-picker/index.js +1 -1
  352. package/dist/components/description-list/index.js +1 -1
  353. package/dist/components/document-preview/document-preview.agent.d.ts +4 -0
  354. package/dist/components/document-preview/document-preview.agent.d.ts.map +1 -0
  355. package/dist/components/document-preview/document-preview.d.ts +41 -0
  356. package/dist/components/document-preview/document-preview.d.ts.map +1 -0
  357. package/dist/components/document-preview/index.d.ts +4 -0
  358. package/dist/components/document-preview/index.d.ts.map +1 -0
  359. package/dist/components/document-preview/index.js +6 -0
  360. package/dist/components/document-preview/index.js.map +1 -0
  361. package/dist/components/document-scanner/document-scanner.d.ts.map +1 -1
  362. package/dist/components/document-scanner/index.js +1 -1
  363. package/dist/components/due-date-calculator/index.js +2 -2
  364. package/dist/components/editor-overlay/index.js +1 -1
  365. package/dist/components/empty-state/index.js +1 -1
  366. package/dist/components/entity-summary/index.js +1 -1
  367. package/dist/components/face-scheme/face-scheme-data.d.ts +167 -0
  368. package/dist/components/face-scheme/face-scheme-data.d.ts.map +1 -1
  369. package/dist/components/face-scheme/face-scheme.agent.d.ts.map +1 -1
  370. package/dist/components/face-scheme/face-scheme.d.ts +112 -2
  371. package/dist/components/face-scheme/face-scheme.d.ts.map +1 -1
  372. package/dist/components/face-scheme/index.d.ts +2 -2
  373. package/dist/components/face-scheme/index.d.ts.map +1 -1
  374. package/dist/components/face-scheme/index.js +25 -14
  375. package/dist/components/fetal-weight/index.js +1 -1
  376. package/dist/components/field-array/index.js +1 -1
  377. package/dist/components/file-manager/dialogs.d.ts +48 -0
  378. package/dist/components/file-manager/dialogs.d.ts.map +1 -0
  379. package/dist/components/file-manager/file-manager.agent.d.ts +4 -0
  380. package/dist/components/file-manager/file-manager.agent.d.ts.map +1 -0
  381. package/dist/components/file-manager/file-manager.d.ts +82 -0
  382. package/dist/components/file-manager/file-manager.d.ts.map +1 -0
  383. package/dist/components/file-manager/folder-tree.d.ts +12 -0
  384. package/dist/components/file-manager/folder-tree.d.ts.map +1 -0
  385. package/dist/components/file-manager/index.d.ts +5 -0
  386. package/dist/components/file-manager/index.d.ts.map +1 -0
  387. package/dist/components/file-manager/index.js +6 -0
  388. package/dist/components/file-manager/index.js.map +1 -0
  389. package/dist/components/file-manager/list-view.d.ts +49 -0
  390. package/dist/components/file-manager/list-view.d.ts.map +1 -0
  391. package/dist/components/file-manager/toolbar.d.ts +15 -0
  392. package/dist/components/file-manager/toolbar.d.ts.map +1 -0
  393. package/dist/components/file-manager/types.d.ts +167 -0
  394. package/dist/components/file-manager/types.d.ts.map +1 -0
  395. package/dist/components/file-manager/utils.d.ts +34 -0
  396. package/dist/components/file-manager/utils.d.ts.map +1 -0
  397. package/dist/components/file-upload/file-upload.d.ts +1 -0
  398. package/dist/components/file-upload/file-upload.d.ts.map +1 -1
  399. package/dist/components/file-upload/index.d.ts +1 -1
  400. package/dist/components/file-upload/index.d.ts.map +1 -1
  401. package/dist/components/file-upload/index.js +4 -3
  402. package/dist/components/finished-terminal/finished-terminal.d.ts.map +1 -1
  403. package/dist/components/finished-terminal/index.js +1 -1
  404. package/dist/components/fiscal-code-input/index.js +1 -1
  405. package/dist/components/flag/flag.d.ts +1 -1
  406. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  407. package/dist/components/freemium-paywall/index.js +1 -1
  408. package/dist/components/gestational-age-calculator/index.js +1 -1
  409. package/dist/components/hcg-doubling/index.js +1 -1
  410. package/dist/components/header/header.d.ts.map +1 -1
  411. package/dist/components/header/index.js +1 -1
  412. package/dist/components/header-settings/index.js +1 -1
  413. package/dist/components/icon-button/index.js +1 -1
  414. package/dist/components/icon-button-group/icon-button-group.d.ts +6 -0
  415. package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
  416. package/dist/components/icon-button-group/index.js +1 -1
  417. package/dist/components/icon-picker/index.js +1 -1
  418. package/dist/components/image-cropper/index.js +1 -1
  419. package/dist/components/index.d.ts +7 -1
  420. package/dist/components/index.d.ts.map +1 -1
  421. package/dist/components/key-value-pair/index.js +1 -1
  422. package/dist/components/link/link.d.ts +1 -1
  423. package/dist/components/locale-picker/index.js +1 -1
  424. package/dist/components/map-view/index.js +1 -1
  425. package/dist/components/matrix-rain/matrix-rain.d.ts +1 -1
  426. package/dist/components/message-card/index.js +1 -1
  427. package/dist/components/message-card/message-card.d.ts +1 -1
  428. package/dist/components/message-tray/index.js +1 -1
  429. package/dist/components/muscle-scheme/index.js +1 -1
  430. package/dist/components/muscle-scheme/muscle-scheme.d.ts.map +1 -1
  431. package/dist/components/notes-panel/index.js +1 -1
  432. package/dist/components/notification-card/index.js +1 -1
  433. package/dist/components/notification-card/notification-card.d.ts +1 -1
  434. package/dist/components/notification-tray/index.js +1 -1
  435. package/dist/components/operator-hero/operator-hero.d.ts +1 -1
  436. package/dist/components/optical-prescription/index.d.ts +4 -2
  437. package/dist/components/optical-prescription/index.d.ts.map +1 -1
  438. package/dist/components/optical-prescription/index.js +29 -26
  439. package/dist/components/optical-prescription/optical-prescription-charts.d.ts +78 -0
  440. package/dist/components/optical-prescription/optical-prescription-charts.d.ts.map +1 -0
  441. package/dist/components/optical-prescription/optical-prescription-data.d.ts +29 -0
  442. package/dist/components/optical-prescription/optical-prescription-data.d.ts.map +1 -1
  443. package/dist/components/optical-prescription/optical-prescription.agent.d.ts.map +1 -1
  444. package/dist/components/optical-prescription/optical-prescription.d.ts +9 -0
  445. package/dist/components/optical-prescription/optical-prescription.d.ts.map +1 -1
  446. package/dist/components/patient-details/index.js +1 -1
  447. package/dist/components/patient-search/index.js +1 -1
  448. package/dist/components/patient-search/patient-search.d.ts.map +1 -1
  449. package/dist/components/patient-summary-card/index.js +1 -1
  450. package/dist/components/patient-summary-card/patient-summary-card.d.ts +1 -1
  451. package/dist/components/patient-table/columns.d.ts.map +1 -1
  452. package/dist/components/patient-table/index.js +1 -1
  453. package/dist/components/payment-card/index.js +1 -1
  454. package/dist/components/payment-card/payment-card.d.ts +1 -1
  455. package/dist/components/payment-card/payment-request-card.d.ts +1 -1
  456. package/dist/components/periodontal-chart/index.d.ts +6 -0
  457. package/dist/components/periodontal-chart/index.d.ts.map +1 -0
  458. package/dist/components/periodontal-chart/index.js +22 -0
  459. package/dist/components/periodontal-chart/index.js.map +1 -0
  460. package/dist/components/periodontal-chart/periodontal-chart-data.d.ts +119 -0
  461. package/dist/components/periodontal-chart/periodontal-chart-data.d.ts.map +1 -0
  462. package/dist/components/periodontal-chart/periodontal-chart.agent.d.ts +4 -0
  463. package/dist/components/periodontal-chart/periodontal-chart.agent.d.ts.map +1 -0
  464. package/dist/components/periodontal-chart/periodontal-chart.d.ts +69 -0
  465. package/dist/components/periodontal-chart/periodontal-chart.d.ts.map +1 -0
  466. package/dist/components/periodontal-chart-card/index.js +1 -1
  467. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +1 -1
  468. package/dist/components/periodontal-diagnosis/index.d.ts +6 -0
  469. package/dist/components/periodontal-diagnosis/index.d.ts.map +1 -0
  470. package/dist/components/periodontal-diagnosis/index.js +13 -0
  471. package/dist/components/periodontal-diagnosis/index.js.map +1 -0
  472. package/dist/components/periodontal-diagnosis/periodontal-diagnosis-data.d.ts +30 -0
  473. package/dist/components/periodontal-diagnosis/periodontal-diagnosis-data.d.ts.map +1 -0
  474. package/dist/components/periodontal-diagnosis/periodontal-diagnosis.agent.d.ts +4 -0
  475. package/dist/components/periodontal-diagnosis/periodontal-diagnosis.agent.d.ts.map +1 -0
  476. package/dist/components/periodontal-diagnosis/periodontal-diagnosis.d.ts +44 -0
  477. package/dist/components/periodontal-diagnosis/periodontal-diagnosis.d.ts.map +1 -0
  478. package/dist/components/periodontal-risk-chart/index.d.ts +6 -0
  479. package/dist/components/periodontal-risk-chart/index.d.ts.map +1 -0
  480. package/dist/components/periodontal-risk-chart/index.js +9 -0
  481. package/dist/components/periodontal-risk-chart/index.js.map +1 -0
  482. package/dist/components/periodontal-risk-chart/periodontal-risk-chart.agent.d.ts +4 -0
  483. package/dist/components/periodontal-risk-chart/periodontal-risk-chart.agent.d.ts.map +1 -0
  484. package/dist/components/periodontal-risk-chart/periodontal-risk-chart.d.ts +28 -0
  485. package/dist/components/periodontal-risk-chart/periodontal-risk-chart.d.ts.map +1 -0
  486. package/dist/components/periodontal-risk-chart/periodontal-risk-data.d.ts +47 -0
  487. package/dist/components/periodontal-risk-chart/periodontal-risk-data.d.ts.map +1 -0
  488. package/dist/components/popover/index.js +1 -1
  489. package/dist/components/popover/popover.d.ts +1 -0
  490. package/dist/components/popover/popover.d.ts.map +1 -1
  491. package/dist/components/practice-results/index.js +1 -1
  492. package/dist/components/pregnancy-dating/index.js +1 -1
  493. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  494. package/dist/components/privacy-lock/index.js +1 -1
  495. package/dist/components/product-hub-tray/index.js +1 -1
  496. package/dist/components/product-hub-tray/product-hub-panel.d.ts +1 -1
  497. package/dist/components/public-header/index.js +1 -1
  498. package/dist/components/public-header/public-header.d.ts +1 -1
  499. package/dist/components/public-header/public-header.d.ts.map +1 -1
  500. package/dist/components/radiograph-panel/index.js +1 -1
  501. package/dist/components/radiograph-panel/radiograph-panel.d.ts +2 -2
  502. package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -1
  503. package/dist/components/reviews-panel/index.js +1 -1
  504. package/dist/components/rich-text-editor/index.js +1 -1
  505. package/dist/components/select/index.js +1 -1
  506. package/dist/components/select/select.d.ts.map +1 -1
  507. package/dist/components/session-countdown/index.js +1 -1
  508. package/dist/components/sheet/index.js +1 -1
  509. package/dist/components/sidebar/index.js +1 -1
  510. package/dist/components/sidebar/sidebar.d.ts +9 -0
  511. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  512. package/dist/components/sign-document/index.js +1 -1
  513. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  514. package/dist/components/signature-capture/index.js +1 -1
  515. package/dist/components/signature-capture/signature-capture.d.ts.map +1 -1
  516. package/dist/components/signature-field/index.js +1 -1
  517. package/dist/components/signature-field/signature-field.d.ts +7 -0
  518. package/dist/components/signature-field/signature-field.d.ts.map +1 -1
  519. package/dist/components/skeleton-scheme/index.js +1186 -0
  520. package/dist/components/skeleton-scheme/index.js.map +1 -0
  521. package/dist/components/slot-grid/index.js +1 -1
  522. package/dist/components/stat/stat.d.ts +1 -1
  523. package/dist/components/streaming-text/index.js +1 -1
  524. package/dist/components/tabs/index.js +1 -1
  525. package/dist/components/task-tray/index.js +1 -1
  526. package/dist/components/tasks-panel/index.js +1 -1
  527. package/dist/components/theme-toggle/index.js +1 -1
  528. package/dist/components/toast/index.js +1 -1
  529. package/dist/components/token-insert-menu/index.js +1 -1
  530. package/dist/components/tool-rail/index.js +1 -1
  531. package/dist/components/tooth-scheme/index.js +29 -28
  532. package/dist/components/tooth-scheme/index.js.map +1 -1
  533. package/dist/components/transaction-chip/index.js +1 -1
  534. package/dist/components/unit-converter/index.js +1 -1
  535. package/dist/components/warning-stack/index.js +1 -1
  536. package/dist/components/workflow/index.js +1 -1
  537. package/dist/hooks/index.d.ts +2 -0
  538. package/dist/hooks/index.d.ts.map +1 -1
  539. package/dist/hooks/index.js +40 -35
  540. package/dist/hooks/index.js.map +1 -1
  541. package/dist/hooks/use-priority-overflow.d.ts +63 -0
  542. package/dist/hooks/use-priority-overflow.d.ts.map +1 -0
  543. package/dist/hooks/use-visual-viewport-pin.d.ts +32 -0
  544. package/dist/hooks/use-visual-viewport-pin.d.ts.map +1 -0
  545. package/dist/i18n/locales/ar.d.ts +490 -9
  546. package/dist/i18n/locales/ar.d.ts.map +1 -1
  547. package/dist/i18n/locales/ar.js +493 -12
  548. package/dist/i18n/locales/ar.js.map +1 -1
  549. package/dist/i18n/locales/de.d.ts +490 -9
  550. package/dist/i18n/locales/de.d.ts.map +1 -1
  551. package/dist/i18n/locales/de.js +493 -12
  552. package/dist/i18n/locales/de.js.map +1 -1
  553. package/dist/i18n/locales/el.d.ts +490 -9
  554. package/dist/i18n/locales/el.d.ts.map +1 -1
  555. package/dist/i18n/locales/el.js +493 -12
  556. package/dist/i18n/locales/el.js.map +1 -1
  557. package/dist/i18n/locales/en.d.ts +490 -9
  558. package/dist/i18n/locales/en.d.ts.map +1 -1
  559. package/dist/i18n/locales/en.js +493 -12
  560. package/dist/i18n/locales/en.js.map +1 -1
  561. package/dist/i18n/locales/es.d.ts +490 -9
  562. package/dist/i18n/locales/es.d.ts.map +1 -1
  563. package/dist/i18n/locales/es.js +493 -12
  564. package/dist/i18n/locales/es.js.map +1 -1
  565. package/dist/i18n/locales/fr.d.ts +490 -9
  566. package/dist/i18n/locales/fr.d.ts.map +1 -1
  567. package/dist/i18n/locales/fr.js +493 -12
  568. package/dist/i18n/locales/fr.js.map +1 -1
  569. package/dist/i18n/locales/hi.d.ts +490 -9
  570. package/dist/i18n/locales/hi.d.ts.map +1 -1
  571. package/dist/i18n/locales/hi.js +493 -12
  572. package/dist/i18n/locales/hi.js.map +1 -1
  573. package/dist/i18n/locales/it.d.ts +490 -9
  574. package/dist/i18n/locales/it.d.ts.map +1 -1
  575. package/dist/i18n/locales/it.js +493 -12
  576. package/dist/i18n/locales/it.js.map +1 -1
  577. package/dist/i18n/locales/ja.d.ts +490 -9
  578. package/dist/i18n/locales/ja.d.ts.map +1 -1
  579. package/dist/i18n/locales/ja.js +493 -12
  580. package/dist/i18n/locales/ja.js.map +1 -1
  581. package/dist/i18n/locales/nl.d.ts +490 -9
  582. package/dist/i18n/locales/nl.d.ts.map +1 -1
  583. package/dist/i18n/locales/nl.js +493 -12
  584. package/dist/i18n/locales/nl.js.map +1 -1
  585. package/dist/i18n/locales/pl.d.ts +490 -9
  586. package/dist/i18n/locales/pl.d.ts.map +1 -1
  587. package/dist/i18n/locales/pl.js +493 -12
  588. package/dist/i18n/locales/pl.js.map +1 -1
  589. package/dist/i18n/locales/pt.d.ts +490 -9
  590. package/dist/i18n/locales/pt.d.ts.map +1 -1
  591. package/dist/i18n/locales/pt.js +493 -12
  592. package/dist/i18n/locales/pt.js.map +1 -1
  593. package/dist/i18n/locales/ro.d.ts +490 -9
  594. package/dist/i18n/locales/ro.d.ts.map +1 -1
  595. package/dist/i18n/locales/ro.js +493 -12
  596. package/dist/i18n/locales/ro.js.map +1 -1
  597. package/dist/i18n/locales/ru.d.ts +490 -9
  598. package/dist/i18n/locales/ru.d.ts.map +1 -1
  599. package/dist/i18n/locales/ru.js +493 -12
  600. package/dist/i18n/locales/ru.js.map +1 -1
  601. package/dist/i18n/locales/sq.d.ts +490 -9
  602. package/dist/i18n/locales/sq.d.ts.map +1 -1
  603. package/dist/i18n/locales/sq.js +493 -12
  604. package/dist/i18n/locales/sq.js.map +1 -1
  605. package/dist/i18n/locales/sv.d.ts +490 -9
  606. package/dist/i18n/locales/sv.d.ts.map +1 -1
  607. package/dist/i18n/locales/sv.js +493 -12
  608. package/dist/i18n/locales/sv.js.map +1 -1
  609. package/dist/i18n/locales/tr.d.ts +490 -9
  610. package/dist/i18n/locales/tr.d.ts.map +1 -1
  611. package/dist/i18n/locales/tr.js +493 -12
  612. package/dist/i18n/locales/tr.js.map +1 -1
  613. package/dist/i18n/locales/zh.d.ts +490 -9
  614. package/dist/i18n/locales/zh.d.ts.map +1 -1
  615. package/dist/i18n/locales/zh.js +493 -12
  616. package/dist/i18n/locales/zh.js.map +1 -1
  617. package/dist/index.js +872 -809
  618. package/dist/index.js.map +1 -1
  619. package/dist/locales/ar.json +493 -12
  620. package/dist/locales/de.json +493 -12
  621. package/dist/locales/el.json +493 -12
  622. package/dist/locales/en.json +493 -12
  623. package/dist/locales/es.json +493 -12
  624. package/dist/locales/fr.json +493 -12
  625. package/dist/locales/hi.json +493 -12
  626. package/dist/locales/it.json +493 -12
  627. package/dist/locales/ja.json +493 -12
  628. package/dist/locales/nl.json +493 -12
  629. package/dist/locales/pl.json +493 -12
  630. package/dist/locales/pt.json +493 -12
  631. package/dist/locales/ro.json +493 -12
  632. package/dist/locales/ru.json +493 -12
  633. package/dist/locales/sq.json +493 -12
  634. package/dist/locales/sv.json +493 -12
  635. package/dist/locales/tr.json +493 -12
  636. package/dist/locales/zh.json +493 -12
  637. package/dist/patterns/alia-assistant/index.js +1 -1
  638. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  639. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +1 -1
  640. package/dist/patterns/signature-request/index.d.ts +3 -0
  641. package/dist/patterns/signature-request/index.d.ts.map +1 -0
  642. package/dist/patterns/signature-request/index.js +5 -0
  643. package/dist/patterns/signature-request/index.js.map +1 -0
  644. package/dist/patterns/signature-request/signature-request.d.ts +81 -0
  645. package/dist/patterns/signature-request/signature-request.d.ts.map +1 -0
  646. package/dist/tokens.css +2 -2
  647. package/package.json +32 -4
  648. package/dist/_chunks/benefit-card-Xnxj4Gmo.js.map +0 -1
  649. package/dist/_chunks/button-DD_0Xdmr.js.map +0 -1
  650. package/dist/_chunks/button-group-CvEnVzY7.js +0 -119
  651. package/dist/_chunks/button-group-CvEnVzY7.js.map +0 -1
  652. package/dist/_chunks/columns-2-8lq4-b8e.js.map +0 -1
  653. package/dist/_chunks/document-scanner-B23j4w7X.js.map +0 -1
  654. package/dist/_chunks/face-scheme-BT9_KdL0.js +0 -1450
  655. package/dist/_chunks/face-scheme-BT9_KdL0.js.map +0 -1
  656. package/dist/_chunks/file-upload-Kw1rdvFw.js.map +0 -1
  657. package/dist/_chunks/finished-terminal-Di4gtZ50.js.map +0 -1
  658. package/dist/_chunks/freemium-paywall-DFoeedwh.js.map +0 -1
  659. package/dist/_chunks/header-DaXWDw0M.js.map +0 -1
  660. package/dist/_chunks/icon-button-group-C48khLE0.js +0 -206
  661. package/dist/_chunks/icon-button-group-C48khLE0.js.map +0 -1
  662. package/dist/_chunks/insert-result-C7xSDb8q.js.map +0 -1
  663. package/dist/_chunks/link-cell-renderer-BCppbMec.js +0 -2185
  664. package/dist/_chunks/link-cell-renderer-BCppbMec.js.map +0 -1
  665. package/dist/_chunks/marketplace-app-shell-BCYiOvKZ.js.map +0 -1
  666. package/dist/_chunks/optical-prescription-Bmlbuopi.js +0 -653
  667. package/dist/_chunks/optical-prescription-Bmlbuopi.js.map +0 -1
  668. package/dist/_chunks/patient-search-X9SUZGpy.js.map +0 -1
  669. package/dist/_chunks/patient-shell-oiIRqEAl.js +0 -162
  670. package/dist/_chunks/patient-shell-oiIRqEAl.js.map +0 -1
  671. package/dist/_chunks/patient-table-BgWgNIMf.js.map +0 -1
  672. package/dist/_chunks/public-header.agent-C-opZaOw.js.map +0 -1
  673. package/dist/_chunks/radiograph-panel.agent-D1x33moc.js.map +0 -1
  674. package/dist/_chunks/rich-text-editor-DUgznqOf.js.map +0 -1
  675. package/dist/_chunks/sidebar-B0OBmJrC.js.map +0 -1
  676. package/dist/_chunks/signature-capture-Ct_4Md4e.js.map +0 -1
  677. package/dist/_chunks/signature-field-jgwYgUhO.js.map +0 -1
  678. package/dist/_chunks/subDays-DGSOp9d9.js +0 -8
  679. package/dist/_chunks/tooth-scheme-D_rso4uu.js +0 -2133
  680. package/dist/_chunks/tooth-scheme-D_rso4uu.js.map +0 -1
  681. package/dist/_chunks/transaction-chip-B6iWoVmU.js.map +0 -1
  682. package/dist/patterns/patient-shell/index.d.ts +0 -12
  683. package/dist/patterns/patient-shell/index.d.ts.map +0 -1
  684. package/dist/patterns/patient-shell/index.js +0 -5
  685. package/dist/patterns/patient-shell/patient-shell.d.ts +0 -62
  686. package/dist/patterns/patient-shell/patient-shell.d.ts.map +0 -1
  687. /package/dist/{patterns/patient-shell → components/data-table-tabs}/index.js.map +0 -0
@@ -1,38 +1,29 @@
1
1
  import { jsxs as N, jsx as s } from "react/jsx-runtime";
2
- import { forwardRef as k } from "react";
3
- import { c as l } from "./index-D2ZczOXr.js";
4
- import { useTranslation as T } from "react-i18next";
5
- import { c as t } from "./createLucideIcon-DhHxpK9K.js";
6
- import { C as _ } from "./check-DrFSN__t.js";
2
+ import { forwardRef as T } from "react";
3
+ import { c } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as k } from "react-i18next";
5
+ import { c as l } from "./createLucideIcon-DhHxpK9K.js";
6
+ import { C as A } from "./check-DrFSN__t.js";
7
7
  import { C } from "./calendar-clock-hbObjfGY.js";
8
8
  import { F as I } from "./file-text-5yv6r2ls.js";
9
+ import { A as _ } from "./arrow-up-right-C2v_MKsK.js";
9
10
  /**
10
11
  * @license lucide-react v1.22.0 - ISC
11
12
  *
12
13
  * This source code is licensed under the ISC license.
13
14
  * See the LICENSE file in the root directory of this source tree.
14
15
  */
15
- const A = [
16
+ const E = [
16
17
  ["path", { d: "M17 7 7 17", key: "15tmo1" }],
17
18
  ["path", { d: "M17 17H7V7", key: "1org7z" }]
18
- ], M = t("arrow-down-left", A);
19
- /**
20
- * @license lucide-react v1.22.0 - ISC
21
- *
22
- * This source code is licensed under the ISC license.
23
- * See the LICENSE file in the root directory of this source tree.
24
- */
25
- const E = [
26
- ["path", { d: "M7 7h10v10", key: "1tivn9" }],
27
- ["path", { d: "M7 17 17 7", key: "1vkiza" }]
28
- ], L = t("arrow-up-right", E);
19
+ ], L = l("arrow-down-left", E);
29
20
  /**
30
21
  * @license lucide-react v1.22.0 - ISC
31
22
  *
32
23
  * This source code is licensed under the ISC license.
33
24
  * See the LICENSE file in the root directory of this source tree.
34
25
  */
35
- const R = [
26
+ const M = [
36
27
  [
37
28
  "path",
38
29
  {
@@ -43,35 +34,35 @@ const R = [
43
34
  ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
44
35
  ["path", { d: "M9 9h.01", key: "1q5me6" }],
45
36
  ["path", { d: "M15 15h.01", key: "lqbp3k" }]
46
- ], S = t("badge-percent", R), F = {
37
+ ], R = l("badge-percent", M), S = {
47
38
  debt: "debt",
48
39
  credit: "credit",
49
40
  "to-invoice": "toInvoice",
50
41
  "to-deliver": "toDeliver",
51
42
  settled: "settled",
52
43
  discount: "discount"
53
- }, V = {
54
- debt: M,
55
- credit: L,
44
+ }, F = {
45
+ debt: L,
46
+ credit: _,
56
47
  "to-invoice": I,
57
48
  "to-deliver": C,
58
- settled: _,
59
- discount: S
60
- }, D = {
49
+ settled: A,
50
+ discount: R
51
+ }, V = {
61
52
  debt: "−",
62
53
  credit: "+",
63
54
  "to-invoice": "",
64
55
  "to-deliver": "",
65
56
  settled: "",
66
57
  discount: "−"
67
- }, U = {
58
+ }, D = {
68
59
  debt: -1,
69
60
  credit: 1,
70
61
  "to-invoice": 1,
71
62
  "to-deliver": 1,
72
63
  settled: 1,
73
64
  discount: -1
74
- }, j = "EUR", $ = l(
65
+ }, U = "EUR", j = c(
75
66
  [
76
67
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
77
68
  "ds:rounded-[var(--radius-full)] ds:border",
@@ -128,7 +119,7 @@ const R = [
128
119
  { state: "settled", class: "ds:font-medium" }
129
120
  ]
130
121
  }
131
- ), q = l("ds:shrink-0 ds:[&>svg]:block", {
122
+ ), q = c("ds:shrink-0 ds:[&>svg]:block", {
132
123
  variants: {
133
124
  size: {
134
125
  sm: "ds:[&>svg]:size-2.5",
@@ -143,28 +134,28 @@ const R = [
143
134
  }
144
135
  },
145
136
  defaultVariants: { size: "md", directional: !1 }
146
- }), G = k(
137
+ }), G = T(
147
138
  ({
148
139
  state: e,
149
140
  amount: u,
150
- currency: o = j,
151
- locale: v,
152
- size: r = "md",
153
- showLabel: f = !1,
154
- className: m,
141
+ currency: r = U,
142
+ locale: f,
143
+ size: o = "md",
144
+ showLabel: m = !1,
145
+ className: v,
155
146
  "aria-label": p,
156
147
  ...g
157
148
  }, b) => {
158
- const { t: a, i18n: h } = T(), n = v ?? h.language ?? "en", y = V[e], d = D[e], i = Math.abs(u), x = new Intl.NumberFormat(n, {
149
+ const { t, i18n: h } = k(), a = f ?? h.language ?? "en", x = F[e], d = V[e], n = Math.abs(u), y = new Intl.NumberFormat(a, {
159
150
  style: "currency",
160
- currency: o,
151
+ currency: r,
161
152
  signDisplay: "never"
162
- }).format(i), c = a(`financial.state.${F[e]}`), z = new Intl.NumberFormat(n, {
153
+ }).format(n), i = t(`financial.state.${S[e]}`), z = new Intl.NumberFormat(a, {
163
154
  style: "currency",
164
- currency: o,
155
+ currency: r,
165
156
  signDisplay: e === "debt" ? "always" : "auto"
166
- }).format(i * U[e]), w = p ?? a("financial.aria.label", {
167
- state: c,
157
+ }).format(n * D[e]), w = p ?? t("financial.aria.label", {
158
+ state: i,
168
159
  amount: z
169
160
  });
170
161
  return /* @__PURE__ */ N(
@@ -175,11 +166,11 @@ const R = [
175
166
  "aria-label": w,
176
167
  "data-component": "transaction-chip",
177
168
  "data-state": e,
178
- className: $({
169
+ className: j({
179
170
  state: e,
180
- size: r,
171
+ size: o,
181
172
  bold: e !== "settled",
182
- className: m
173
+ className: v
183
174
  }),
184
175
  ...g,
185
176
  children: [
@@ -188,13 +179,13 @@ const R = [
188
179
  {
189
180
  "aria-hidden": "true",
190
181
  className: q({
191
- size: r,
182
+ size: o,
192
183
  directional: e === "debt" || e === "credit"
193
184
  }),
194
- children: /* @__PURE__ */ s(y, {})
185
+ children: /* @__PURE__ */ s(x, {})
195
186
  }
196
187
  ),
197
- f && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: "type-eyebrow", children: c }),
188
+ m && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: "type-eyebrow", children: i }),
198
189
  d && /* @__PURE__ */ s(
199
190
  "span",
200
191
  {
@@ -208,7 +199,7 @@ const R = [
208
199
  {
209
200
  "aria-hidden": "true",
210
201
  className: "ds:[font-variant-numeric:var(--font-feature-tabular)]",
211
- children: x
202
+ children: y
212
203
  }
213
204
  )
214
205
  ]
@@ -218,8 +209,7 @@ const R = [
218
209
  );
219
210
  G.displayName = "TransactionChip";
220
211
  export {
221
- M as A,
222
- G as T,
223
- L as a
212
+ L as A,
213
+ G as T
224
214
  };
225
- //# sourceMappingURL=transaction-chip-B6iWoVmU.js.map
215
+ //# sourceMappingURL=transaction-chip-DJCstquX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-chip-DJCstquX.js","sources":["../../node_modules/lucide-react/dist/esm/icons/arrow-down-left.mjs","../../node_modules/lucide-react/dist/esm/icons/badge-percent.mjs","../../src/components/transaction-chip/transaction-chip.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M17 7 7 17\", key: \"15tmo1\" }],\n [\"path\", { d: \"M17 17H7V7\", key: \"1org7z\" }]\n];\nconst ArrowDownLeft = createLucideIcon(\"arrow-down-left\", __iconNode);\n\nexport { __iconNode, ArrowDownLeft as default };\n//# sourceMappingURL=arrow-down-left.mjs.map\n","/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\",\n key: \"3c2336\"\n }\n ],\n [\"path\", { d: \"m15 9-6 6\", key: \"1uzhvr\" }],\n [\"path\", { d: \"M9 9h.01\", key: \"1q5me6\" }],\n [\"path\", { d: \"M15 15h.01\", key: \"lqbp3k\" }]\n];\nconst BadgePercent = createLucideIcon(\"badge-percent\", __iconNode);\n\nexport { __iconNode, BadgePercent as default };\n//# sourceMappingURL=badge-percent.mjs.map\n","import { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n ArrowDownLeft,\n ArrowUpRight,\n BadgePercent,\n CalendarClock,\n Check,\n FileText,\n type LucideIcon,\n} from 'lucide-react';\n\n/* ------------------------------------------------------------------ */\n/* State vocabulary */\n/* ------------------------------------------------------------------ */\n\nexport type TransactionState =\n | 'debt'\n | 'credit'\n | 'to-invoice'\n | 'to-deliver'\n | 'settled'\n | 'discount';\n\n// State → translation-key segment. Hyphenated state names are flattened to\n// camelCase so the i18next bundle stays consistent with the rest of `ui.*`.\nconst STATE_KEY: Record<TransactionState, string> = {\n debt: 'debt',\n credit: 'credit',\n 'to-invoice': 'toInvoice',\n 'to-deliver': 'toDeliver',\n settled: 'settled',\n discount: 'discount',\n};\n\nconst STATE_ICON: Record<TransactionState, LucideIcon> = {\n debt: ArrowDownLeft,\n credit: ArrowUpRight,\n 'to-invoice': FileText,\n 'to-deliver': CalendarClock,\n settled: Check,\n discount: BadgePercent,\n};\n\n// U+2212 MINUS SIGN — matches PR alfadocs/platform#523's typographic minus.\n// Hyphen-minus would render visually narrower next to the currency glyph.\nconst STATE_SIGN: Record<TransactionState, '' | '+' | '−'> = {\n debt: '−',\n credit: '+',\n 'to-invoice': '',\n 'to-deliver': '',\n settled: '',\n discount: '−',\n};\n\n// Multiplier used when composing the screen-reader announcement so SR users\n// hear the signed amount Intl produces (\"minus one thousand…\") rather than\n// the magnitude plus a separate sign glyph.\nconst SIGN_MULTIPLIER: Record<TransactionState, -1 | 1> = {\n debt: -1,\n credit: 1,\n 'to-invoice': 1,\n 'to-deliver': 1,\n settled: 1,\n discount: -1,\n};\n\nconst DEFAULT_CURRENCY = 'EUR';\n\n/* ------------------------------------------------------------------ */\n/* CVA — chip root */\n/* ------------------------------------------------------------------ */\n\nconst chipVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-full)] ds:border',\n 'ds:whitespace-nowrap ds:align-middle',\n 'ds:focus-visible:outline-none',\n 'ds:focus-visible:ring-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:ring-[color:var(--ring)]',\n 'ds:focus-visible:ring-offset-[length:var(--focus-ring-offset)]',\n ].join(' '),\n {\n variants: {\n state: {\n // Text uses the deeper `*-foreground` token (matching Badge / Tag) so\n // small chip text clears WCAG AA (4.5:1) against the 10% tinted\n // background. The surface and border use the lighter alias.\n debt: 'ds:bg-destructive/10 ds:text-[color:var(--error-foreground)] ds:border-[color:var(--error-foreground)]',\n credit:\n 'ds:bg-success/10 ds:text-[color:var(--success-foreground)] ds:border-[color:var(--success-foreground)]',\n // The orange \"to-invoice\" tint has no kit-wide semantic alias — see\n // src/tokens/index.css §Transaction-chip-scoped tokens. The component\n // owns the alias because the customer-anchored \"Da fatturare\" orange\n // is distinct from `--warning` (yellow) and from `--destructive`.\n 'to-invoice':\n 'ds:bg-transaction-chip-to-invoice/10 ds:text-[color:var(--transaction-chip-to-invoice-foreground)] ds:border-[color:var(--transaction-chip-to-invoice-foreground)]',\n 'to-deliver':\n 'ds:bg-info/10 ds:text-[color:var(--info-foreground)] ds:border-[color:var(--info-foreground)]',\n settled:\n 'ds:bg-muted/30 ds:text-muted-foreground ds:border-[color:var(--border)]',\n // Discount/credit-note reductions use the dedicated `--discount`\n // semantic token (brand magenta family) — distinct from credit's green\n // so a discount and a credit never read alike. `--discount-foreground`\n // clears AA on the 10% tint.\n discount:\n 'ds:bg-discount/10 ds:text-[color:var(--discount-foreground)] ds:border-[color:var(--discount-foreground)]',\n },\n size: {\n // Heights match the Badge / Tag chip family (sm h-4 / md h-5 / lg h-6)\n // so mixed chip strips align. `--type-eyebrow-size` flows into the\n // optional label span, keeping its typography in step with the chip.\n sm: 'ds:h-4 ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-sm)] ds:text-[length:var(--font-size-2xs)] ds:[--type-eyebrow-size:var(--font-size-2xs)]',\n md: 'ds:h-5 ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:text-[length:var(--font-size-xs)] ds:[--type-eyebrow-size:var(--font-size-2xs)]',\n lg: 'ds:h-6 ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-sm)] ds:[--type-eyebrow-size:var(--font-size-xs)]',\n },\n bold: {\n // `settled` is the terminal resting state — see compound variant below.\n true: 'ds:font-semibold',\n false: 'ds:font-medium',\n },\n },\n defaultVariants: {\n state: 'debt',\n size: 'md',\n bold: true,\n },\n compoundVariants: [\n // `settled` always renders at the lighter weight, regardless of the\n // resolved default. Mirrors PR #523's follow-up where the resting branch\n // dropped from bold to medium to recede visually.\n { state: 'settled', class: 'ds:font-medium' },\n ],\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — icon wrapper */\n/* ------------------------------------------------------------------ */\n\n// `ArrowDownLeft` (debt) and `ArrowUpRight` (credit) are direction-encoded\n// glyphs — their physical orientation carries the semantic (\"money coming\n// in\" / \"money going out\"). PRS §05 RTL: directional icons flip in RTL.\n// The non-directional glyphs (FileText, CalendarClock, Check) are unaffected.\nconst iconWrapperVariants = cva('ds:shrink-0 ds:[&>svg]:block', {\n variants: {\n size: {\n sm: 'ds:[&>svg]:size-2.5',\n md: 'ds:[&>svg]:size-3',\n lg: 'ds:[&>svg]:size-3.5',\n },\n // Only the direction-encoded debt/credit arrows flip in RTL; the\n // non-directional glyphs (FileText, CalendarClock, Check) must not mirror.\n directional: {\n true: 'ds:rtl:[&>svg]:-scale-x-100',\n false: '',\n },\n },\n defaultVariants: { size: 'md', directional: false },\n});\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\nexport interface TransactionChipProps\n extends\n Omit<HTMLAttributes<HTMLSpanElement>, 'children'>,\n Pick<VariantProps<typeof chipVariants>, 'size'> {\n /** Financial state — drives colour, icon, sign, and label. */\n state: TransactionState;\n /**\n * Magnitude of the amount as a non-negative number. The sign is rendered\n * separately based on `state` — callers must never pass a negative value.\n */\n amount: number;\n /**\n * ISO 4217 currency code. Defaults to `EUR` for the Italian-anchored\n * release. Required at the type level so consumers can't silently render\n * a different currency than they intended.\n */\n currency?: string;\n /** BCP 47 locale override. Defaults to the active i18next language. */\n locale?: string;\n /** Render the state label (e.g. \"Da incassare\") before the amount. */\n showLabel?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const TransactionChip = forwardRef<\n HTMLSpanElement,\n TransactionChipProps\n>(\n (\n {\n state,\n amount,\n currency = DEFAULT_CURRENCY,\n locale,\n size = 'md',\n showLabel = false,\n className,\n 'aria-label': ariaLabelProp,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const activeLocale = locale ?? i18n.language ?? 'en';\n\n const StateIcon = STATE_ICON[state];\n const sign = STATE_SIGN[state];\n const magnitude = Math.abs(amount);\n\n // The visible amount is rendered without a sign; the leading sign glyph\n // (or its absence) is owned by the state, not the formatter.\n const formattedAmount = new Intl.NumberFormat(activeLocale, {\n style: 'currency',\n currency,\n signDisplay: 'never',\n }).format(magnitude);\n\n // The accessible name uses Intl's own signed output so screen readers\n // announce the locale-correct \"minus\" / \"negative\" phrasing instead of\n // skipping the U+2212 glyph or speaking it as \"hyphen\".\n const stateLabel = t(`financial.state.${STATE_KEY[state]}`);\n const signedAmountForSR = new Intl.NumberFormat(activeLocale, {\n style: 'currency',\n currency,\n signDisplay: state === 'debt' ? 'always' : 'auto',\n }).format(magnitude * SIGN_MULTIPLIER[state]);\n const ariaLabel =\n ariaLabelProp ??\n t('financial.aria.label', {\n state: stateLabel,\n amount: signedAmountForSR,\n });\n\n return (\n <span\n ref={ref}\n role=\"img\"\n aria-label={ariaLabel}\n data-component=\"transaction-chip\"\n data-state={state}\n className={chipVariants({\n state,\n size,\n bold: state !== 'settled',\n className,\n })}\n {...rest}\n >\n <span\n aria-hidden=\"true\"\n className={iconWrapperVariants({\n size,\n directional: state === 'debt' || state === 'credit',\n })}\n >\n <StateIcon />\n </span>\n {showLabel && (\n <span aria-hidden=\"true\" className=\"type-eyebrow\">\n {stateLabel}\n </span>\n )}\n {sign && (\n <span\n aria-hidden=\"true\"\n className=\"ds:[font-variant-numeric:var(--font-feature-tabular)]\"\n >\n {sign}\n </span>\n )}\n <span\n aria-hidden=\"true\"\n className=\"ds:[font-variant-numeric:var(--font-feature-tabular)]\"\n >\n {formattedAmount}\n </span>\n </span>\n );\n },\n);\n\nTransactionChip.displayName = 'TransactionChip';\n"],"names":["__iconNode","ArrowDownLeft","createLucideIcon","BadgePercent","STATE_KEY","STATE_ICON","ArrowUpRight","FileText","CalendarClock","Check","STATE_SIGN","SIGN_MULTIPLIER","DEFAULT_CURRENCY","chipVariants","cva","iconWrapperVariants","TransactionChip","forwardRef","state","amount","currency","locale","size","showLabel","className","ariaLabelProp","rest","ref","i18n","useTranslation","activeLocale","StateIcon","sign","magnitude","formattedAmount","stateLabel","signedAmountForSR","ariaLabel","jsxs","jsx"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,16 @@
1
+ import { c as e } from "./createLucideIcon-DhHxpK9K.js";
2
+ /**
3
+ * @license lucide-react v1.22.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const p = [
9
+ ["path", { d: "M12 4v16", key: "1654pz" }],
10
+ ["path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2", key: "e0r10z" }],
11
+ ["path", { d: "M9 20h6", key: "s66wpe" }]
12
+ ], a = e("type", p);
13
+ export {
14
+ a as T
15
+ };
16
+ //# sourceMappingURL=type-ggmfVs23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-ggmfVs23.js","sources":["../../node_modules/lucide-react/dist/esm/icons/type.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 4v16\", key: \"1654pz\" }],\n [\"path\", { d: \"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2\", key: \"e0r10z\" }],\n [\"path\", { d: \"M9 20h6\", key: \"s66wpe\" }]\n];\nconst Type = createLucideIcon(\"type\", __iconNode);\n\nexport { __iconNode, Type as default };\n//# sourceMappingURL=type.mjs.map\n"],"names":["__iconNode","Type","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAAA,EACxE,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAC1C,GACMC,IAAOC,EAAiB,QAAQF,CAAU;","x_google_ignoreList":[0]}
@@ -5,8 +5,8 @@ import { useTranslation as M } from "react-i18next";
5
5
  import { u as Y } from "./registry-DvAUVLHh.js";
6
6
  import { F as C } from "./form-field-M5UpX65Z.js";
7
7
  import { N as B } from "./number-input-DjWzmlEY.js";
8
- import { S } from "./select-BmCbJMJS.js";
9
- import { I as D } from "./insert-result-C7xSDb8q.js";
8
+ import { S } from "./select-BW5ecXlX.js";
9
+ import { I as D } from "./insert-result-D074GtHX.js";
10
10
  const L = [
11
11
  "weight",
12
12
  "length",
@@ -334,4 +334,4 @@ export {
334
334
  ee as b,
335
335
  Q as c
336
336
  };
337
- //# sourceMappingURL=unit-converter-fEqluT8b.js.map
337
+ //# sourceMappingURL=unit-converter-CSLWFDQh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-converter-fEqluT8b.js","sources":["../../src/components/unit-converter/unit-converter.agent.ts","../../src/components/unit-converter/units.ts","../../src/components/unit-converter/unit-converter.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — UnitConverter. */\n/* */\n/* Generic clinical/everyday unit conversion. The agent-relevant surface */\n/* is the read-only converted result plus the structural inputs (category, */\n/* source value, from-unit, to-unit) and `set_value` actions to drive */\n/* them. Values are plain measurements — no patient identity. The handle */\n/* is the curated `UnitConverterHandle`. See `src/docs/26-agent-readiness`.*/\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { UnitConverterHandle } from './unit-converter';\nimport type { UnitCategory } from './units';\n\n/**\n * Measurement families, mirrored from `./units`'s `CATEGORIES`. Inlined as a\n * literal (rather than runtime-imported) so the ESM catalog build can load this\n * pure module without TS path resolution; `satisfies` keeps it in lockstep with\n * the `UnitCategory` union at compile time.\n */\nconst CATEGORIES = [\n 'weight',\n 'length',\n 'temperature',\n 'glucose',\n] as const satisfies readonly UnitCategory[];\n\nexport const unitConverterAgent: AgentAdapter<UnitConverterHandle> = {\n id: 'unit-converter',\n capabilities: ['set_value', 'view_change'],\n state: {\n category: {\n type: \"'weight' | 'length' | 'temperature' | 'glucose'\",\n descriptionKey: 'ui.agent.unitConverter.state.category',\n description:\n 'Active measurement family. Determines which from/to units are selectable.',\n read: (handle) => handle.getCategory(),\n },\n inputs: {\n type: '{ value: number | null, fromId: string, toId: string }',\n descriptionKey: 'ui.agent.unitConverter.state.inputs',\n description:\n 'Source value plus the from-unit and to-unit ids within the active category.',\n read: (handle) => handle.getInputs(),\n },\n result: {\n type: 'number | null',\n descriptionKey: 'ui.agent.unitConverter.state.result',\n description:\n 'Converted value in the to-unit, or null when the source value is empty.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: number | null }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: ['number', 'null'],\n description: 'Source value to convert, or null to clear.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.setValue',\n description: 'Set the source value to convert.',\n examples: [{ args: { value: 70 }, note: 'Convert 70 of the from-unit.' }],\n invoke: (handle, args: { value: number | null }) => {\n handle.setValue(args.value);\n },\n },\n set_units: {\n safety: 'read',\n argsType: '{ fromId?: string, toId?: string }',\n argsSchema: {\n type: 'object',\n properties: {\n fromId: {\n type: 'string',\n description: 'Source unit id within the active category.',\n },\n toId: {\n type: 'string',\n description: 'Target unit id within the active category.',\n },\n },\n additionalProperties: false,\n },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.setUnits',\n description:\n 'Set the from-unit and/or to-unit. Ids outside the active category are ignored.',\n examples: [\n { args: { fromId: 'kg', toId: 'lb' }, note: 'Convert kg → lb.' },\n ],\n invoke: (handle, args: { fromId?: string; toId?: string }) => {\n handle.setUnits(args);\n },\n },\n set_category: {\n safety: 'read',\n argsType: \"{ category: 'weight' | 'length' | 'temperature' | 'glucose' }\",\n argsSchema: {\n type: 'object',\n properties: {\n category: {\n enum: [...CATEGORIES],\n description: 'Measurement family to switch to.',\n },\n },\n required: ['category'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.setCategory',\n description:\n 'Switch the measurement family. Resets the from/to units to that category defaults.',\n invoke: (\n handle,\n args: {\n category: 'weight' | 'length' | 'temperature' | 'glucose';\n },\n ) => {\n handle.setCategory(args.category);\n },\n },\n get_result: {\n safety: 'read',\n returns: 'number | null',\n returnsSchema: { type: ['number', 'null'] },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.getResult',\n description:\n 'Return the converted value in the to-unit, or null when no source value is set.',\n invoke: (handle) => handle.getResult(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'unit-converter',\n description: 'Marks the UnitConverter wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific converter instance.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Generic unit conversion — pure, framework-free, unit-testable. */\n/* */\n/* Every unit is described by an affine map to its category's base */\n/* unit: base = value * factor + offset. Conversion is base-in then */\n/* base-out, so the same code handles linear scales (weight, length, */\n/* glucose) and offset scales (temperature) uniformly. */\n/* ------------------------------------------------------------------ */\n\nexport type UnitCategory = 'weight' | 'length' | 'temperature' | 'glucose';\n\nexport interface UnitDef {\n id: string;\n category: UnitCategory;\n /** Multiplier to the category base unit. */\n factor: number;\n /** Additive offset to the base unit (non-zero only for temperature). */\n offset: number;\n}\n\n/* Base units: kg, cm, °C, mmol/L. */\nexport const UNITS: Record<string, UnitDef> = {\n // weight → base kg\n kg: { id: 'kg', category: 'weight', factor: 1, offset: 0 },\n g: { id: 'g', category: 'weight', factor: 0.001, offset: 0 },\n lb: { id: 'lb', category: 'weight', factor: 0.45359237, offset: 0 },\n oz: { id: 'oz', category: 'weight', factor: 0.028349523125, offset: 0 },\n // length → base cm\n cm: { id: 'cm', category: 'length', factor: 1, offset: 0 },\n m: { id: 'm', category: 'length', factor: 100, offset: 0 },\n in: { id: 'in', category: 'length', factor: 2.54, offset: 0 },\n ft: { id: 'ft', category: 'length', factor: 30.48, offset: 0 },\n // temperature → base °C (affine: °C = °F·5/9 − 32·5/9)\n c: { id: 'c', category: 'temperature', factor: 1, offset: 0 },\n f: { id: 'f', category: 'temperature', factor: 5 / 9, offset: (-32 * 5) / 9 },\n // glucose → base mmol/L (1 mg/dL = 1/18.0156 mmol/L)\n mmol_l: { id: 'mmol_l', category: 'glucose', factor: 1, offset: 0 },\n mg_dl: { id: 'mg_dl', category: 'glucose', factor: 1 / 18.0156, offset: 0 },\n};\n\nexport const UNITS_BY_CATEGORY: Record<UnitCategory, string[]> = {\n weight: ['kg', 'g', 'lb', 'oz'],\n length: ['cm', 'm', 'in', 'ft'],\n temperature: ['c', 'f'],\n glucose: ['mmol_l', 'mg_dl'],\n};\n\nexport const CATEGORIES: UnitCategory[] = [\n 'weight',\n 'length',\n 'temperature',\n 'glucose',\n];\n\n/**\n * Convert `value` from one unit to another. Both ids must belong to the same\n * category; mismatched categories throw (a programming error, not user input).\n */\nexport function convertUnits(\n value: number,\n fromId: string,\n toId: string,\n): number {\n const from = UNITS[fromId];\n const to = UNITS[toId];\n if (!from || !to) throw new Error(`Unknown unit: ${fromId} → ${toId}`);\n if (from.category !== to.category) {\n throw new Error(\n `Cannot convert across categories: ${from.category} → ${to.category}`,\n );\n }\n const base = value * from.factor + from.offset;\n return (base - to.offset) / to.factor;\n}\n","/* ------------------------------------------------------------------ */\n/* UnitConverter — generic clinical/everyday unit conversion across */\n/* weight, length, temperature and glucose. */\n/* */\n/* Maths lives in `./units` (pure, separately tested). */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { unitConverterAgent } from './unit-converter.agent';\nimport { FormField } from '../form-field';\nimport { NumberInput } from '../number-input';\nimport { Select } from '../select';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport {\n type UnitCategory,\n CATEGORIES,\n UNITS_BY_CATEGORY,\n convertUnits,\n} from './units';\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: { full: 'ds:w-full', auto: 'ds:inline-flex' },\n },\n defaultVariants: { width: 'full' },\n});\n\n/**\n * DS token NAME backing the result-card category chip, one per measurement\n * family. The converter shows no on-screen badge, but the inserted card carries\n * a category chip so the reader can tell at a glance which family the figure\n * belongs to; each token is a closed-palette semantic alias resolved to a\n * concrete colour at raster time by `InsertButton`.\n */\nconst CATEGORY_HIGHLIGHT_TOKEN: Record<UnitCategory, string> = {\n weight: '--info',\n length: '--success',\n temperature: '--warning-readable',\n glucose: '--accent',\n};\n\n/**\n * Category chip token. The `temperature` family resolves to `--warning-readable`,\n * which the result card's colour probe resolves in the live themed DOM: orange-600\n * in light, non-accessible mode (where bare `--warning` yellow only reaches\n * ~3.2:1 on the white card) and `--warning` elsewhere, whose deepened ramp already\n * clears contrast. Resolving the token NAME at the card means the choice tracks\n * the live theme regardless of where the theme class lives. Other families are\n * unchanged.\n */\nfunction categoryHighlightToken(category: UnitCategory): string {\n return CATEGORY_HIGHLIGHT_TOKEN[category];\n}\n\nexport interface UnitConverterProps extends VariantProps<typeof rootVariants> {\n /** Initial category. Defaults to `'weight'`. */\n defaultCategory?: UnitCategory;\n /** Fires with the converted value (and `null` when input is empty). */\n onResultChange?: (value: number | null) => void;\n /** When provided, shows an \"Insert\" button that emits the result for an editor. */\n onInsert?: (payload: InsertPayload) => void;\n /**\n * Which verb the result button performs. Defaults to `'insert'`.\n * Use `'copy'` in an app-shell surface (no editor to insert into) — the\n * button writes the result to the clipboard as a multi-format `ClipboardItem`.\n */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /**\n * Brand wordmark printed in the inserted/copied result-card footer.\n * Omitted → no brand line (and no footer hairline); a string → that custom\n * brand; `false` → no brand line. Brand is opt-in.\n */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\n/**\n * Curated imperative handle for agent / external automation. Reads/writes the\n * structural inputs (category, value, from/to units) and the converted result.\n * No patient identity. Consumed by the `unit-converter.agent.ts` adapter; the\n * public `ref` stays the DOM element.\n */\nexport interface UnitConverterHandle {\n /** Active measurement family. */\n getCategory: () => UnitCategory;\n /** Switch the measurement family (resets from/to units to that category). */\n setCategory: (next: UnitCategory) => void;\n /** Source value + from/to unit ids. */\n getInputs: () => { value: number | null; fromId: string; toId: string };\n /** Set the source value to convert. */\n setValue: (value: number | null) => void;\n /** Set from-unit and/or to-unit (ids outside the active category are ignored). */\n setUnits: (next: { fromId?: string; toId?: string }) => void;\n /** Converted value in the to-unit, or null when no source value is set. */\n getResult: () => number | null;\n}\n\nexport const UnitConverter = forwardRef<HTMLDivElement, UnitConverterProps>(\n (\n {\n defaultCategory = 'weight',\n onResultChange,\n onInsert,\n insertVariant = 'insert',\n onCopy,\n onError,\n insertBrand,\n id,\n width,\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n\n const [category, setCategory] = useState<UnitCategory>(defaultCategory);\n const [value, setValue] = useState<number | null>(null);\n const [fromId, setFromId] = useState<string>(\n UNITS_BY_CATEGORY[defaultCategory][0],\n );\n const [toId, setToId] = useState<string>(\n UNITS_BY_CATEGORY[defaultCategory][1],\n );\n\n const handleCategoryChange = (next: string): void => {\n const cat = next as UnitCategory;\n const units = UNITS_BY_CATEGORY[cat];\n setCategory(cat);\n setFromId(units[0]);\n setToId(units[1] ?? units[0]);\n };\n\n const converted = useMemo(\n () => (value === null ? null : convertUnits(value, fromId, toId)),\n [value, fromId, toId],\n );\n\n const numberFmt = useMemo(\n () => new Intl.NumberFormat(i18n.language, { maximumFractionDigits: 3 }),\n [i18n.language],\n );\n\n useEffect(() => {\n onResultChange?.(converted);\n }, [converted, onResultChange]);\n\n // Live refs so the once-built agent handle reads/writes current state\n // without re-creating on every keystroke. Public `ref` stays the DOM node.\n const liveRef = useRef({ category, value, fromId, toId, converted });\n liveRef.current = { category, value, fromId, toId, converted };\n const agentHandle = useMemo<UnitConverterHandle>(\n () => ({\n getCategory: () => liveRef.current.category,\n setCategory: (next) => handleCategoryChange(next),\n getInputs: () => ({\n value: liveRef.current.value,\n fromId: liveRef.current.fromId,\n toId: liveRef.current.toId,\n }),\n setValue: (next) => setValue(next),\n setUnits: (next) => {\n const units = UNITS_BY_CATEGORY[liveRef.current.category];\n if (next.fromId !== undefined && units.includes(next.fromId)) {\n setFromId(next.fromId);\n }\n if (next.toId !== undefined && units.includes(next.toId)) {\n setToId(next.toId);\n }\n },\n getResult: () => liveRef.current.converted,\n }),\n [],\n );\n useAgentRegistration(unitConverterAgent, agentHandle, id);\n\n const categoryOptions = CATEGORIES.map((c) => ({\n value: c,\n label: t(`unitConverter.category.${c}`),\n }));\n const unitOptions = UNITS_BY_CATEGORY[category].map((u) => ({\n value: u,\n label: t(`unitConverter.units.${u}`),\n }));\n\n return (\n <div\n ref={ref}\n data-component=\"unit-converter\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <FormField label={t('unitConverter.categoryLabel')}>\n <Select\n options={categoryOptions}\n value={category}\n onValueChange={handleCategoryChange}\n />\n </FormField>\n\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3\">\n <FormField label={t('unitConverter.value')}>\n <NumberInput mode=\"decimal\" value={value} onChange={setValue} />\n </FormField>\n <FormField label={t('unitConverter.from')}>\n <Select\n options={unitOptions}\n value={fromId}\n onValueChange={setFromId}\n />\n </FormField>\n <FormField label={t('unitConverter.to')}>\n <Select\n options={unitOptions}\n value={toId}\n onValueChange={setToId}\n />\n </FormField>\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {converted !== null\n ? `${numberFmt.format(value ?? 0)} ${t(\n `unitConverter.units.${fromId}`,\n )} = ${numberFmt.format(converted)} ${t(\n `unitConverter.units.${toId}`,\n )}`\n : ''}\n </p>\n\n {converted !== null ? (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('unitConverter.result')}\n </span>\n <span className=\"type-metric ds:text-foreground\">\n {numberFmt.format(converted)} {t(`unitConverter.units.${toId}`)}\n </span>\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n variant={insertVariant}\n onInsert={onInsert}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.unitConverter'),\n icon: 'ruler',\n highlight: t(`unitConverter.category.${category}`),\n // Chip tints by measurement family so the inserted card\n // signals the category at a glance — with the contrast-safe\n // orange override for the `--warning` temperature family.\n highlightToken: categoryHighlightToken(category),\n brand: insertBrand,\n fields: [\n {\n // Source measurement → ruler glyph (matches the header).\n icon: 'ruler',\n label: t('unitConverter.from'),\n value: `${numberFmt.format(value ?? 0)} ${t(\n `unitConverter.units.${fromId}`,\n )}`,\n },\n {\n // Converted result → trending-up (arrow) glyph signals the\n // conversion direction to the output value.\n icon: 'trending-up',\n label: t('unitConverter.to'),\n value: `${numberFmt.format(converted)} ${t(\n `unitConverter.units.${toId}`,\n )}`,\n },\n ],\n }}\n />\n ) : null}\n </div>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('unitConverter.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nUnitConverter.displayName = 'UnitConverter';\n"],"names":["CATEGORIES","unitConverterAgent","handle","args","UNITS","UNITS_BY_CATEGORY","convertUnits","value","fromId","toId","from","to","rootVariants","cva","CATEGORY_HIGHLIGHT_TOKEN","categoryHighlightToken","category","UnitConverter","forwardRef","defaultCategory","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","i18n","useTranslation","setCategory","useState","setValue","setFromId","setToId","handleCategoryChange","next","cat","units","converted","useMemo","numberFmt","useEffect","liveRef","useRef","agentHandle","useAgentRegistration","categoryOptions","c","unitOptions","u","jsxs","jsx","FormField","Select","NumberInput","InsertButton"],"mappings":"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"}
1
+ {"version":3,"file":"unit-converter-CSLWFDQh.js","sources":["../../src/components/unit-converter/unit-converter.agent.ts","../../src/components/unit-converter/units.ts","../../src/components/unit-converter/unit-converter.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — UnitConverter. */\n/* */\n/* Generic clinical/everyday unit conversion. The agent-relevant surface */\n/* is the read-only converted result plus the structural inputs (category, */\n/* source value, from-unit, to-unit) and `set_value` actions to drive */\n/* them. Values are plain measurements — no patient identity. The handle */\n/* is the curated `UnitConverterHandle`. See `src/docs/26-agent-readiness`.*/\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { UnitConverterHandle } from './unit-converter';\nimport type { UnitCategory } from './units';\n\n/**\n * Measurement families, mirrored from `./units`'s `CATEGORIES`. Inlined as a\n * literal (rather than runtime-imported) so the ESM catalog build can load this\n * pure module without TS path resolution; `satisfies` keeps it in lockstep with\n * the `UnitCategory` union at compile time.\n */\nconst CATEGORIES = [\n 'weight',\n 'length',\n 'temperature',\n 'glucose',\n] as const satisfies readonly UnitCategory[];\n\nexport const unitConverterAgent: AgentAdapter<UnitConverterHandle> = {\n id: 'unit-converter',\n capabilities: ['set_value', 'view_change'],\n state: {\n category: {\n type: \"'weight' | 'length' | 'temperature' | 'glucose'\",\n descriptionKey: 'ui.agent.unitConverter.state.category',\n description:\n 'Active measurement family. Determines which from/to units are selectable.',\n read: (handle) => handle.getCategory(),\n },\n inputs: {\n type: '{ value: number | null, fromId: string, toId: string }',\n descriptionKey: 'ui.agent.unitConverter.state.inputs',\n description:\n 'Source value plus the from-unit and to-unit ids within the active category.',\n read: (handle) => handle.getInputs(),\n },\n result: {\n type: 'number | null',\n descriptionKey: 'ui.agent.unitConverter.state.result',\n description:\n 'Converted value in the to-unit, or null when the source value is empty.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: number | null }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: ['number', 'null'],\n description: 'Source value to convert, or null to clear.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.setValue',\n description: 'Set the source value to convert.',\n examples: [{ args: { value: 70 }, note: 'Convert 70 of the from-unit.' }],\n invoke: (handle, args: { value: number | null }) => {\n handle.setValue(args.value);\n },\n },\n set_units: {\n safety: 'read',\n argsType: '{ fromId?: string, toId?: string }',\n argsSchema: {\n type: 'object',\n properties: {\n fromId: {\n type: 'string',\n description: 'Source unit id within the active category.',\n },\n toId: {\n type: 'string',\n description: 'Target unit id within the active category.',\n },\n },\n additionalProperties: false,\n },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.setUnits',\n description:\n 'Set the from-unit and/or to-unit. Ids outside the active category are ignored.',\n examples: [\n { args: { fromId: 'kg', toId: 'lb' }, note: 'Convert kg → lb.' },\n ],\n invoke: (handle, args: { fromId?: string; toId?: string }) => {\n handle.setUnits(args);\n },\n },\n set_category: {\n safety: 'read',\n argsType: \"{ category: 'weight' | 'length' | 'temperature' | 'glucose' }\",\n argsSchema: {\n type: 'object',\n properties: {\n category: {\n enum: [...CATEGORIES],\n description: 'Measurement family to switch to.',\n },\n },\n required: ['category'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.setCategory',\n description:\n 'Switch the measurement family. Resets the from/to units to that category defaults.',\n invoke: (\n handle,\n args: {\n category: 'weight' | 'length' | 'temperature' | 'glucose';\n },\n ) => {\n handle.setCategory(args.category);\n },\n },\n get_result: {\n safety: 'read',\n returns: 'number | null',\n returnsSchema: { type: ['number', 'null'] },\n idempotent: true,\n descriptionKey: 'ui.agent.unitConverter.actions.getResult',\n description:\n 'Return the converted value in the to-unit, or null when no source value is set.',\n invoke: (handle) => handle.getResult(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'unit-converter',\n description: 'Marks the UnitConverter wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific converter instance.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Generic unit conversion — pure, framework-free, unit-testable. */\n/* */\n/* Every unit is described by an affine map to its category's base */\n/* unit: base = value * factor + offset. Conversion is base-in then */\n/* base-out, so the same code handles linear scales (weight, length, */\n/* glucose) and offset scales (temperature) uniformly. */\n/* ------------------------------------------------------------------ */\n\nexport type UnitCategory = 'weight' | 'length' | 'temperature' | 'glucose';\n\nexport interface UnitDef {\n id: string;\n category: UnitCategory;\n /** Multiplier to the category base unit. */\n factor: number;\n /** Additive offset to the base unit (non-zero only for temperature). */\n offset: number;\n}\n\n/* Base units: kg, cm, °C, mmol/L. */\nexport const UNITS: Record<string, UnitDef> = {\n // weight → base kg\n kg: { id: 'kg', category: 'weight', factor: 1, offset: 0 },\n g: { id: 'g', category: 'weight', factor: 0.001, offset: 0 },\n lb: { id: 'lb', category: 'weight', factor: 0.45359237, offset: 0 },\n oz: { id: 'oz', category: 'weight', factor: 0.028349523125, offset: 0 },\n // length → base cm\n cm: { id: 'cm', category: 'length', factor: 1, offset: 0 },\n m: { id: 'm', category: 'length', factor: 100, offset: 0 },\n in: { id: 'in', category: 'length', factor: 2.54, offset: 0 },\n ft: { id: 'ft', category: 'length', factor: 30.48, offset: 0 },\n // temperature → base °C (affine: °C = °F·5/9 − 32·5/9)\n c: { id: 'c', category: 'temperature', factor: 1, offset: 0 },\n f: { id: 'f', category: 'temperature', factor: 5 / 9, offset: (-32 * 5) / 9 },\n // glucose → base mmol/L (1 mg/dL = 1/18.0156 mmol/L)\n mmol_l: { id: 'mmol_l', category: 'glucose', factor: 1, offset: 0 },\n mg_dl: { id: 'mg_dl', category: 'glucose', factor: 1 / 18.0156, offset: 0 },\n};\n\nexport const UNITS_BY_CATEGORY: Record<UnitCategory, string[]> = {\n weight: ['kg', 'g', 'lb', 'oz'],\n length: ['cm', 'm', 'in', 'ft'],\n temperature: ['c', 'f'],\n glucose: ['mmol_l', 'mg_dl'],\n};\n\nexport const CATEGORIES: UnitCategory[] = [\n 'weight',\n 'length',\n 'temperature',\n 'glucose',\n];\n\n/**\n * Convert `value` from one unit to another. Both ids must belong to the same\n * category; mismatched categories throw (a programming error, not user input).\n */\nexport function convertUnits(\n value: number,\n fromId: string,\n toId: string,\n): number {\n const from = UNITS[fromId];\n const to = UNITS[toId];\n if (!from || !to) throw new Error(`Unknown unit: ${fromId} → ${toId}`);\n if (from.category !== to.category) {\n throw new Error(\n `Cannot convert across categories: ${from.category} → ${to.category}`,\n );\n }\n const base = value * from.factor + from.offset;\n return (base - to.offset) / to.factor;\n}\n","/* ------------------------------------------------------------------ */\n/* UnitConverter — generic clinical/everyday unit conversion across */\n/* weight, length, temperature and glucose. */\n/* */\n/* Maths lives in `./units` (pure, separately tested). */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { unitConverterAgent } from './unit-converter.agent';\nimport { FormField } from '../form-field';\nimport { NumberInput } from '../number-input';\nimport { Select } from '../select';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport {\n type UnitCategory,\n CATEGORIES,\n UNITS_BY_CATEGORY,\n convertUnits,\n} from './units';\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: { full: 'ds:w-full', auto: 'ds:inline-flex' },\n },\n defaultVariants: { width: 'full' },\n});\n\n/**\n * DS token NAME backing the result-card category chip, one per measurement\n * family. The converter shows no on-screen badge, but the inserted card carries\n * a category chip so the reader can tell at a glance which family the figure\n * belongs to; each token is a closed-palette semantic alias resolved to a\n * concrete colour at raster time by `InsertButton`.\n */\nconst CATEGORY_HIGHLIGHT_TOKEN: Record<UnitCategory, string> = {\n weight: '--info',\n length: '--success',\n temperature: '--warning-readable',\n glucose: '--accent',\n};\n\n/**\n * Category chip token. The `temperature` family resolves to `--warning-readable`,\n * which the result card's colour probe resolves in the live themed DOM: orange-600\n * in light, non-accessible mode (where bare `--warning` yellow only reaches\n * ~3.2:1 on the white card) and `--warning` elsewhere, whose deepened ramp already\n * clears contrast. Resolving the token NAME at the card means the choice tracks\n * the live theme regardless of where the theme class lives. Other families are\n * unchanged.\n */\nfunction categoryHighlightToken(category: UnitCategory): string {\n return CATEGORY_HIGHLIGHT_TOKEN[category];\n}\n\nexport interface UnitConverterProps extends VariantProps<typeof rootVariants> {\n /** Initial category. Defaults to `'weight'`. */\n defaultCategory?: UnitCategory;\n /** Fires with the converted value (and `null` when input is empty). */\n onResultChange?: (value: number | null) => void;\n /** When provided, shows an \"Insert\" button that emits the result for an editor. */\n onInsert?: (payload: InsertPayload) => void;\n /**\n * Which verb the result button performs. Defaults to `'insert'`.\n * Use `'copy'` in an app-shell surface (no editor to insert into) — the\n * button writes the result to the clipboard as a multi-format `ClipboardItem`.\n */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /**\n * Brand wordmark printed in the inserted/copied result-card footer.\n * Omitted → no brand line (and no footer hairline); a string → that custom\n * brand; `false` → no brand line. Brand is opt-in.\n */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\n/**\n * Curated imperative handle for agent / external automation. Reads/writes the\n * structural inputs (category, value, from/to units) and the converted result.\n * No patient identity. Consumed by the `unit-converter.agent.ts` adapter; the\n * public `ref` stays the DOM element.\n */\nexport interface UnitConverterHandle {\n /** Active measurement family. */\n getCategory: () => UnitCategory;\n /** Switch the measurement family (resets from/to units to that category). */\n setCategory: (next: UnitCategory) => void;\n /** Source value + from/to unit ids. */\n getInputs: () => { value: number | null; fromId: string; toId: string };\n /** Set the source value to convert. */\n setValue: (value: number | null) => void;\n /** Set from-unit and/or to-unit (ids outside the active category are ignored). */\n setUnits: (next: { fromId?: string; toId?: string }) => void;\n /** Converted value in the to-unit, or null when no source value is set. */\n getResult: () => number | null;\n}\n\nexport const UnitConverter = forwardRef<HTMLDivElement, UnitConverterProps>(\n (\n {\n defaultCategory = 'weight',\n onResultChange,\n onInsert,\n insertVariant = 'insert',\n onCopy,\n onError,\n insertBrand,\n id,\n width,\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n\n const [category, setCategory] = useState<UnitCategory>(defaultCategory);\n const [value, setValue] = useState<number | null>(null);\n const [fromId, setFromId] = useState<string>(\n UNITS_BY_CATEGORY[defaultCategory][0],\n );\n const [toId, setToId] = useState<string>(\n UNITS_BY_CATEGORY[defaultCategory][1],\n );\n\n const handleCategoryChange = (next: string): void => {\n const cat = next as UnitCategory;\n const units = UNITS_BY_CATEGORY[cat];\n setCategory(cat);\n setFromId(units[0]);\n setToId(units[1] ?? units[0]);\n };\n\n const converted = useMemo(\n () => (value === null ? null : convertUnits(value, fromId, toId)),\n [value, fromId, toId],\n );\n\n const numberFmt = useMemo(\n () => new Intl.NumberFormat(i18n.language, { maximumFractionDigits: 3 }),\n [i18n.language],\n );\n\n useEffect(() => {\n onResultChange?.(converted);\n }, [converted, onResultChange]);\n\n // Live refs so the once-built agent handle reads/writes current state\n // without re-creating on every keystroke. Public `ref` stays the DOM node.\n const liveRef = useRef({ category, value, fromId, toId, converted });\n liveRef.current = { category, value, fromId, toId, converted };\n const agentHandle = useMemo<UnitConverterHandle>(\n () => ({\n getCategory: () => liveRef.current.category,\n setCategory: (next) => handleCategoryChange(next),\n getInputs: () => ({\n value: liveRef.current.value,\n fromId: liveRef.current.fromId,\n toId: liveRef.current.toId,\n }),\n setValue: (next) => setValue(next),\n setUnits: (next) => {\n const units = UNITS_BY_CATEGORY[liveRef.current.category];\n if (next.fromId !== undefined && units.includes(next.fromId)) {\n setFromId(next.fromId);\n }\n if (next.toId !== undefined && units.includes(next.toId)) {\n setToId(next.toId);\n }\n },\n getResult: () => liveRef.current.converted,\n }),\n [],\n );\n useAgentRegistration(unitConverterAgent, agentHandle, id);\n\n const categoryOptions = CATEGORIES.map((c) => ({\n value: c,\n label: t(`unitConverter.category.${c}`),\n }));\n const unitOptions = UNITS_BY_CATEGORY[category].map((u) => ({\n value: u,\n label: t(`unitConverter.units.${u}`),\n }));\n\n return (\n <div\n ref={ref}\n data-component=\"unit-converter\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <FormField label={t('unitConverter.categoryLabel')}>\n <Select\n options={categoryOptions}\n value={category}\n onValueChange={handleCategoryChange}\n />\n </FormField>\n\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3\">\n <FormField label={t('unitConverter.value')}>\n <NumberInput mode=\"decimal\" value={value} onChange={setValue} />\n </FormField>\n <FormField label={t('unitConverter.from')}>\n <Select\n options={unitOptions}\n value={fromId}\n onValueChange={setFromId}\n />\n </FormField>\n <FormField label={t('unitConverter.to')}>\n <Select\n options={unitOptions}\n value={toId}\n onValueChange={setToId}\n />\n </FormField>\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {converted !== null\n ? `${numberFmt.format(value ?? 0)} ${t(\n `unitConverter.units.${fromId}`,\n )} = ${numberFmt.format(converted)} ${t(\n `unitConverter.units.${toId}`,\n )}`\n : ''}\n </p>\n\n {converted !== null ? (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('unitConverter.result')}\n </span>\n <span className=\"type-metric ds:text-foreground\">\n {numberFmt.format(converted)} {t(`unitConverter.units.${toId}`)}\n </span>\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n variant={insertVariant}\n onInsert={onInsert}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.unitConverter'),\n icon: 'ruler',\n highlight: t(`unitConverter.category.${category}`),\n // Chip tints by measurement family so the inserted card\n // signals the category at a glance — with the contrast-safe\n // orange override for the `--warning` temperature family.\n highlightToken: categoryHighlightToken(category),\n brand: insertBrand,\n fields: [\n {\n // Source measurement → ruler glyph (matches the header).\n icon: 'ruler',\n label: t('unitConverter.from'),\n value: `${numberFmt.format(value ?? 0)} ${t(\n `unitConverter.units.${fromId}`,\n )}`,\n },\n {\n // Converted result → trending-up (arrow) glyph signals the\n // conversion direction to the output value.\n icon: 'trending-up',\n label: t('unitConverter.to'),\n value: `${numberFmt.format(converted)} ${t(\n `unitConverter.units.${toId}`,\n )}`,\n },\n ],\n }}\n />\n ) : null}\n </div>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('unitConverter.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nUnitConverter.displayName = 'UnitConverter';\n"],"names":["CATEGORIES","unitConverterAgent","handle","args","UNITS","UNITS_BY_CATEGORY","convertUnits","value","fromId","toId","from","to","rootVariants","cva","CATEGORY_HIGHLIGHT_TOKEN","categoryHighlightToken","category","UnitConverter","forwardRef","defaultCategory","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","i18n","useTranslation","setCategory","useState","setValue","setFromId","setToId","handleCategoryChange","next","cat","units","converted","useMemo","numberFmt","useEffect","liveRef","useRef","agentHandle","useAgentRegistration","categoryOptions","c","unitOptions","u","jsxs","jsx","FormField","Select","NumberInput","InsertButton"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { c as a } from "./createLucideIcon-DhHxpK9K.js";
2
+ /**
3
+ * @license lucide-react v1.22.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const o = [
9
+ ["path", { d: "M12 3v12", key: "1x0j5s" }],
10
+ ["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
11
+ ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
12
+ ], t = a("upload", o);
13
+ export {
14
+ t as U
15
+ };
16
+ //# sourceMappingURL=upload-BfT2hzMg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-BfT2hzMg.js","sources":["../../node_modules/lucide-react/dist/esm/icons/upload.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v12\", key: \"1x0j5s\" }],\n [\"path\", { d: \"m17 8-5-5-5 5\", key: \"7q97r8\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.mjs.map\n"],"names":["__iconNode","Upload","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAAA,EAC9C,CAAC,QAAQ,EAAE,GAAG,6CAA6C,KAAK,SAAQ,CAAE;AAC5E,GACMC,IAASC,EAAiB,UAAUF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1,101 @@
1
+ import { useState as m, useCallback as y, useRef as j } from "react";
2
+ import { u as k } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
3
+ function z(l) {
4
+ const {
5
+ containerWidth: o,
6
+ fullWidths: i,
7
+ fullRowWidth: s,
8
+ iconWidths: c,
9
+ iconRowWidth: a,
10
+ triggerWidth: p,
11
+ pinned: g = []
12
+ } = l, f = i.length, n = Array.from({ length: f }, () => !0);
13
+ if (f === 0 || o <= 0)
14
+ return { stage: "full", visible: n, overflowing: !1 };
15
+ if (s <= o + 1)
16
+ return { stage: "full", visible: n, overflowing: !1 };
17
+ const w = c !== void 0 && c.length === f;
18
+ if (w && (a ?? 1 / 0) <= o + 1)
19
+ return { stage: "icons", visible: n, overflowing: !1 };
20
+ const b = w ? "icons" : "full", W = w ? c : i, x = w ? a ?? s : s, A = W.reduce((e, u) => e + u, 0), C = f > 1 ? (x - A) / (f - 1) : 0, r = W.map((e, u) => g[u] === !0), R = (e) => e === 0 ? p : W.reduce((u, P, t) => r[t] ? u + P : u, 0) + p + e * C;
21
+ let d = r.filter(Boolean).length;
22
+ for (let e = 0; e < f; e += 1)
23
+ if (!r[e] && (r[e] = !0, d += 1, R(d) > o + 1)) {
24
+ r[e] = !1, d -= 1;
25
+ break;
26
+ }
27
+ return { stage: b, visible: r, overflowing: r.some((e) => !e) };
28
+ }
29
+ const O = (l, o) => l.stage === o.stage && l.overflowing === o.overflowing && l.visible.length === o.visible.length && l.visible.every((i, s) => i === o.visible[s]);
30
+ function q(l) {
31
+ const { enabled: o, count: i, twoStage: s = !1, pinned: c } = l, [a, p] = m(null), [g, f] = m(null), [n, w] = m(null), [b, W] = m(null), x = y(
32
+ (t) => p(t),
33
+ []
34
+ ), A = y(
35
+ (t) => f(t),
36
+ []
37
+ ), C = y(
38
+ (t) => w(t),
39
+ []
40
+ ), r = y(
41
+ (t) => W(t),
42
+ []
43
+ ), R = y(
44
+ () => ({
45
+ stage: "full",
46
+ visible: Array.from({ length: i }, () => !0),
47
+ overflowing: !1
48
+ }),
49
+ [i]
50
+ ), [d, e] = m(R), u = c ? c.map((t) => t ? 1 : 0).join("") : "", P = j(c);
51
+ return P.current = c, k(() => {
52
+ if (!o) {
53
+ e((h) => {
54
+ const v = R();
55
+ return O(h, v) ? h : v;
56
+ });
57
+ return;
58
+ }
59
+ if (!a || !g || !b) return;
60
+ const t = (h) => Array.from(h.children, (v) => v.offsetWidth), I = () => {
61
+ const h = t(g);
62
+ if (h.length !== i) return;
63
+ const v = z({
64
+ containerWidth: a.clientWidth,
65
+ fullWidths: h,
66
+ fullRowWidth: g.scrollWidth,
67
+ iconWidths: s && n ? t(n) : void 0,
68
+ iconRowWidth: s && n ? n.scrollWidth : void 0,
69
+ triggerWidth: b.offsetWidth,
70
+ pinned: P.current
71
+ });
72
+ e((L) => O(L, v) ? L : v);
73
+ };
74
+ if (I(), typeof ResizeObserver > "u") return;
75
+ const S = new ResizeObserver(I);
76
+ return S.observe(a), S.observe(g), n && S.observe(n), () => S.disconnect();
77
+ }, [
78
+ o,
79
+ i,
80
+ s,
81
+ u,
82
+ a,
83
+ g,
84
+ n,
85
+ b,
86
+ R
87
+ ]), {
88
+ containerRef: x,
89
+ fullRowRef: A,
90
+ iconRowRef: C,
91
+ triggerProbeRef: r,
92
+ stage: d.stage,
93
+ visible: d.visible,
94
+ overflowing: d.overflowing
95
+ };
96
+ }
97
+ export {
98
+ z as c,
99
+ q as u
100
+ };
101
+ //# sourceMappingURL=use-priority-overflow-c9SjxZkZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-priority-overflow-c9SjxZkZ.js","sources":["../../src/hooks/use-priority-overflow.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\n\nexport type PriorityOverflowStage = 'full' | 'icons';\n\nexport interface PriorityLayoutInput {\n /** Inline size of the box the strip must fit into. */\n containerWidth: number;\n /** Natural width of each item at the full (icon + label) stage. */\n fullWidths: number[];\n /** Whole-row natural width at the full stage (captures joins/margins). */\n fullRowWidth: number;\n /** Natural per-item widths at the icon-only stage; omit for single-stage. */\n iconWidths?: number[];\n /** Whole-row natural width at the icon-only stage. */\n iconRowWidth?: number;\n /** Natural width of the overflow trigger button. */\n triggerWidth: number;\n /** Items that must never move into the menu. */\n pinned?: ReadonlyArray<boolean>;\n}\n\nexport interface PriorityLayout {\n stage: PriorityOverflowStage;\n /** Per-item: true = rendered in the strip, false = moved to the menu. */\n visible: boolean[];\n /** True when at least one item moved to the menu (trigger shown). */\n overflowing: boolean;\n}\n\n/**\n * Pure priority+ maths: full row → icon-only row → trailing items into a\n * menu behind a trigger. Width sums are direction-agnostic, so the result\n * is identical in RTL. `+1` tolerances absorb sub-pixel rounding.\n */\nexport function computePriorityLayout(\n input: PriorityLayoutInput,\n): PriorityLayout {\n const {\n containerWidth,\n fullWidths,\n fullRowWidth,\n iconWidths,\n iconRowWidth,\n triggerWidth,\n pinned = [],\n } = input;\n const count = fullWidths.length;\n const allVisible = Array.from({ length: count }, () => true);\n if (count === 0 || containerWidth <= 0) {\n return { stage: 'full', visible: allVisible, overflowing: false };\n }\n if (fullRowWidth <= containerWidth + 1) {\n return { stage: 'full', visible: allVisible, overflowing: false };\n }\n const twoStage = iconWidths !== undefined && iconWidths.length === count;\n if (twoStage && (iconRowWidth ?? Infinity) <= containerWidth + 1) {\n return { stage: 'icons', visible: allVisible, overflowing: false };\n }\n\n const stage: PriorityOverflowStage = twoStage ? 'icons' : 'full';\n const widths = twoStage ? iconWidths : fullWidths;\n const rowWidth = twoStage ? (iconRowWidth ?? fullRowWidth) : fullRowWidth;\n // Real joins/margins live in the row but not in per-item offsetWidths;\n // derive the effective per-join delta so -1px overlaps stay accounted.\n const itemsSum = widths.reduce((acc, w) => acc + w, 0);\n const joinDelta = count > 1 ? (rowWidth - itemsSum) / (count - 1) : 0;\n\n const visible = widths.map((_, i) => pinned[i] === true);\n const stripWidth = (chosen: number) =>\n chosen === 0\n ? triggerWidth\n : widths.reduce((acc, w, i) => (visible[i] ? acc + w : acc), 0) +\n triggerWidth +\n chosen * joinDelta;\n\n let chosenCount = visible.filter(Boolean).length;\n for (let i = 0; i < count; i += 1) {\n if (visible[i]) continue;\n visible[i] = true;\n chosenCount += 1;\n if (stripWidth(chosenCount) > containerWidth + 1) {\n visible[i] = false;\n chosenCount -= 1;\n // First unpinned item that no longer fits ends the strip — trailing\n // unpinned items follow it into the menu, preserving document order.\n break;\n }\n }\n return { stage, visible, overflowing: visible.some((v) => !v) };\n}\n\nexport interface UsePriorityOverflowOptions {\n /** Master switch — off = everything visible, nothing measured. */\n enabled: boolean;\n /** Number of items in the strip (drives re-measure on child changes). */\n count: number;\n /** Measure a second icon-only stage before spilling into the menu. */\n twoStage?: boolean;\n /** Per-index pin flags — pinned items never move into the menu. */\n pinned?: ReadonlyArray<boolean>;\n}\n\nexport interface UsePriorityOverflowReturn {\n /** Attach to the block wrapper whose inline size is the budget. */\n containerRef: (node: HTMLElement | null) => void;\n /** Attach to the hidden row of full-stage clones. */\n fullRowRef: (node: HTMLElement | null) => void;\n /** Attach to the hidden row of icon-stage clones (twoStage only). */\n iconRowRef: (node: HTMLElement | null) => void;\n /** Attach to the hidden overflow-trigger probe. */\n triggerProbeRef: (node: HTMLElement | null) => void;\n stage: PriorityOverflowStage;\n visible: boolean[];\n overflowing: boolean;\n}\n\nconst layoutsEqual = (a: PriorityLayout, b: PriorityLayout) =>\n a.stage === b.stage &&\n a.overflowing === b.overflowing &&\n a.visible.length === b.visible.length &&\n a.visible.every((v, i) => v === b.visible[i]);\n\n/**\n * Priority+ overflow for a horizontal control strip. The caller renders\n * hidden measurement rows (always mounted, `aria-hidden` + `inert`,\n * visibility-hidden — never display:none, they must keep layout) and this\n * hook compares their natural widths against the container. Because the\n * rows stay mounted, font swaps and label/locale changes resize them and\n * the ResizeObserver re-measures — no font or i18n listeners needed.\n */\nexport function usePriorityOverflow(\n options: UsePriorityOverflowOptions,\n): UsePriorityOverflowReturn {\n const { enabled, count, twoStage = false, pinned } = options;\n\n const [container, setContainer] = useState<HTMLElement | null>(null);\n const [fullRow, setFullRow] = useState<HTMLElement | null>(null);\n const [iconRow, setIconRow] = useState<HTMLElement | null>(null);\n const [triggerProbe, setTriggerProbe] = useState<HTMLElement | null>(null);\n\n const containerRef = useCallback(\n (node: HTMLElement | null) => setContainer(node),\n [],\n );\n const fullRowRef = useCallback(\n (node: HTMLElement | null) => setFullRow(node),\n [],\n );\n const iconRowRef = useCallback(\n (node: HTMLElement | null) => setIconRow(node),\n [],\n );\n const triggerProbeRef = useCallback(\n (node: HTMLElement | null) => setTriggerProbe(node),\n [],\n );\n\n const allVisible = useCallback(\n (): PriorityLayout => ({\n stage: 'full',\n visible: Array.from({ length: count }, () => true),\n overflowing: false,\n }),\n [count],\n );\n const [layout, setLayout] = useState<PriorityLayout>(allVisible);\n\n // Serialise so an unchanged pin array from a fresh render doesn't retrigger.\n const pinnedKey = pinned ? pinned.map((p) => (p ? 1 : 0)).join('') : '';\n const pinnedRef = useRef(pinned);\n pinnedRef.current = pinned;\n\n useIsomorphicLayoutEffect(() => {\n if (!enabled) {\n setLayout((prev) => {\n const next = allVisible();\n return layoutsEqual(prev, next) ? prev : next;\n });\n return;\n }\n if (!container || !fullRow || !triggerProbe) return;\n\n const readWidths = (row: HTMLElement) =>\n Array.from(row.children, (el) => (el as HTMLElement).offsetWidth);\n\n const measure = () => {\n const fullWidths = readWidths(fullRow);\n if (fullWidths.length !== count) return;\n const next = computePriorityLayout({\n containerWidth: container.clientWidth,\n fullWidths,\n fullRowWidth: fullRow.scrollWidth,\n iconWidths: twoStage && iconRow ? readWidths(iconRow) : undefined,\n iconRowWidth: twoStage && iconRow ? iconRow.scrollWidth : undefined,\n triggerWidth: triggerProbe.offsetWidth,\n pinned: pinnedRef.current,\n });\n setLayout((prev) => (layoutsEqual(prev, next) ? prev : next));\n };\n\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(container);\n observer.observe(fullRow);\n if (iconRow) observer.observe(iconRow);\n return () => observer.disconnect();\n }, [\n enabled,\n count,\n twoStage,\n pinnedKey,\n container,\n fullRow,\n iconRow,\n triggerProbe,\n allVisible,\n ]);\n\n return {\n containerRef,\n fullRowRef,\n iconRowRef,\n triggerProbeRef,\n stage: layout.stage,\n visible: layout.visible,\n overflowing: layout.overflowing,\n };\n}\n"],"names":["computePriorityLayout","input","containerWidth","fullWidths","fullRowWidth","iconWidths","iconRowWidth","triggerWidth","pinned","count","allVisible","twoStage","stage","widths","rowWidth","itemsSum","acc","w","joinDelta","visible","_","i","stripWidth","chosen","chosenCount","v","layoutsEqual","a","b","usePriorityOverflow","options","enabled","container","setContainer","useState","fullRow","setFullRow","iconRow","setIconRow","triggerProbe","setTriggerProbe","containerRef","useCallback","node","fullRowRef","iconRowRef","triggerProbeRef","layout","setLayout","pinnedKey","p","pinnedRef","useRef","useIsomorphicLayoutEffect","prev","next","readWidths","row","el","measure","observer"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { useState as c, useEffect as u, useCallback as d } from "react";
2
+ function w({
3
+ edge: o = "top",
4
+ disabled: s = !1
5
+ } = {}) {
6
+ const [t, a] = c(null);
7
+ return u(() => {
8
+ const e = typeof window > "u" ? null : window.visualViewport;
9
+ if (!t || !e || s) return;
10
+ let r = 0;
11
+ const i = () => {
12
+ t.style.transform = "", t.style.transformOrigin = "", t.style.transitionProperty = "";
13
+ }, l = () => {
14
+ if (r = 0, e.scale <= 1.001) {
15
+ i();
16
+ return;
17
+ }
18
+ const f = o === "top" ? e.offsetTop : e.offsetTop + e.height - window.innerHeight;
19
+ t.style.transitionProperty = "none", t.style.transformOrigin = o === "top" ? "0 0" : "0 100%", t.style.transform = `translate(${e.offsetLeft}px, ${f}px) scale(${1 / e.scale})`;
20
+ }, n = () => {
21
+ r || (r = window.requestAnimationFrame(l));
22
+ };
23
+ return e.addEventListener("resize", n), e.addEventListener("scroll", n), window.addEventListener("scroll", n, { passive: !0 }), l(), () => {
24
+ e.removeEventListener("resize", n), e.removeEventListener("scroll", n), window.removeEventListener("scroll", n), r && window.cancelAnimationFrame(r), i();
25
+ };
26
+ }, [t, o, s]), d((e) => a(e), []);
27
+ }
28
+ export {
29
+ w as u
30
+ };
31
+ //# sourceMappingURL=use-visual-viewport-pin-ChurOsHM.js.map