@alfadocs/ui-kit-debug 1.3.13 → 1.4.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 (348) hide show
  1. package/dist/_chunks/agenda-card.agent-Cb5tuEh3.js +28 -0
  2. package/dist/_chunks/agenda-card.agent-Cb5tuEh3.js.map +1 -0
  3. package/dist/_chunks/{alia-sidebar-DzNz1gDf.js → alia-sidebar-DSBZMick.js} +3 -3
  4. package/dist/_chunks/{alia-sidebar-DzNz1gDf.js.map → alia-sidebar-DSBZMick.js.map} +1 -1
  5. package/dist/_chunks/{anamnesis-i18n-CfC0qYzy.js → anamnesis-i18n-BA631X4t.js} +2209 -2144
  6. package/dist/_chunks/anamnesis-i18n-BA631X4t.js.map +1 -0
  7. package/dist/_chunks/{antenatal-schedule-timeline-BMMpi2lb.js → antenatal-schedule-timeline-u8TsS2QJ.js} +27 -26
  8. package/dist/_chunks/{antenatal-schedule-timeline-BMMpi2lb.js.map → antenatal-schedule-timeline-u8TsS2QJ.js.map} +1 -1
  9. package/dist/_chunks/{appointment-timeline-B630OT_J.js → appointment-timeline-Bqf1sTU5.js} +2 -2
  10. package/dist/_chunks/{appointment-timeline-B630OT_J.js.map → appointment-timeline-Bqf1sTU5.js.map} +1 -1
  11. package/dist/_chunks/{ar-THMLfSoN.js → ar-BR1FGFP2.js} +14 -14
  12. package/dist/_chunks/{ar-THMLfSoN.js.map → ar-BR1FGFP2.js.map} +1 -1
  13. package/dist/_chunks/{bmi-calculator-CM0-G2mg.js → bmi-calculator-CpyY13MV.js} +2 -2
  14. package/dist/_chunks/{bmi-calculator-CM0-G2mg.js.map → bmi-calculator-CpyY13MV.js.map} +1 -1
  15. package/dist/_chunks/{booking-DjNbd7C1.js → booking-BjsA7j1-.js} +699 -688
  16. package/dist/_chunks/booking-BjsA7j1-.js.map +1 -0
  17. package/dist/_chunks/calculator-dialog-12d3Sxaz.js +48 -0
  18. package/dist/_chunks/{calculator-dialog-DuXMQSdm.js.map → calculator-dialog-12d3Sxaz.js.map} +1 -1
  19. package/dist/_chunks/{care-plan-card-1G_f4I5s.js → care-plan-card-BvQy366X.js} +3 -3
  20. package/dist/_chunks/{care-plan-card-1G_f4I5s.js.map → care-plan-card-BvQy366X.js.map} +1 -1
  21. package/dist/_chunks/{care-plan-entry-card-DmBsffHS.js → care-plan-entry-card-apk_5B3O.js} +2 -2
  22. package/dist/_chunks/{care-plan-entry-card-DmBsffHS.js.map → care-plan-entry-card-apk_5B3O.js.map} +1 -1
  23. package/dist/_chunks/{chat-container-HlFnoEIl.js → chat-container-CYYego1W.js} +105 -81
  24. package/dist/_chunks/chat-container-CYYego1W.js.map +1 -0
  25. package/dist/_chunks/cycle-calculator-B7fyH-h4.js +425 -0
  26. package/dist/_chunks/cycle-calculator-B7fyH-h4.js.map +1 -0
  27. package/dist/_chunks/{date-picker-ZHejTVAJ.js → date-picker-Bp64zk2p.js} +19 -19
  28. package/dist/_chunks/{date-picker-ZHejTVAJ.js.map → date-picker-Bp64zk2p.js.map} +1 -1
  29. package/dist/_chunks/date-picker-variants-pKAJfnWr.js +2089 -0
  30. package/dist/_chunks/date-picker-variants-pKAJfnWr.js.map +1 -0
  31. package/dist/_chunks/{date-range-picker-pEG3Ln3i.js → date-range-picker-CDrZ8Zh0.js} +27 -27
  32. package/dist/_chunks/{date-range-picker-pEG3Ln3i.js.map → date-range-picker-CDrZ8Zh0.js.map} +1 -1
  33. package/dist/_chunks/{date-time-picker-695QvBGj.js → date-time-picker-DafkGDGO.js} +10 -10
  34. package/dist/_chunks/{date-time-picker-695QvBGj.js.map → date-time-picker-DafkGDGO.js.map} +1 -1
  35. package/dist/_chunks/{de-DmZ-8rTN.js → de-3iM4rGqo.js} +7 -7
  36. package/dist/_chunks/{de-DmZ-8rTN.js.map → de-3iM4rGqo.js.map} +1 -1
  37. package/dist/_chunks/{document-preview-D3gg4MXB.js → document-preview-DOrsqiN1.js} +2 -2
  38. package/dist/_chunks/{document-preview-D3gg4MXB.js.map → document-preview-DOrsqiN1.js.map} +1 -1
  39. package/dist/_chunks/due-date-calculator-CnkbbAej.js +571 -0
  40. package/dist/_chunks/due-date-calculator-CnkbbAej.js.map +1 -0
  41. package/dist/_chunks/{editor-overlay-DE3esyio.js → editor-overlay-B1tr2i7B.js} +22 -21
  42. package/dist/_chunks/editor-overlay-B1tr2i7B.js.map +1 -0
  43. package/dist/_chunks/{el-Bela9mxs.js → el-C96rGJvU.js} +2 -2
  44. package/dist/_chunks/{el-Bela9mxs.js.map → el-C96rGJvU.js.map} +1 -1
  45. package/dist/_chunks/{es-BNncHKex.js → es-Cxiqjx8r.js} +12 -12
  46. package/dist/_chunks/{es-BNncHKex.js.map → es-Cxiqjx8r.js.map} +1 -1
  47. package/dist/_chunks/fetal-weight-avlj-l-S.js +223 -0
  48. package/dist/_chunks/fetal-weight-avlj-l-S.js.map +1 -0
  49. package/dist/_chunks/format-4HNwNGrN.js +1315 -0
  50. package/dist/_chunks/format-4HNwNGrN.js.map +1 -0
  51. package/dist/_chunks/{fr-CH8ADfhN.js → fr-Bhr6SYKj.js} +21 -21
  52. package/dist/_chunks/{fr-CH8ADfhN.js.map → fr-Bhr6SYKj.js.map} +1 -1
  53. package/dist/_chunks/{freemium-paywall-C_Ue6wxU.js → freemium-paywall-DRDdWuOg.js} +3 -3
  54. package/dist/_chunks/{freemium-paywall-C_Ue6wxU.js.map → freemium-paywall-DRDdWuOg.js.map} +1 -1
  55. package/dist/_chunks/gestational-age-calculator-BljY_DVJ.js +488 -0
  56. package/dist/_chunks/gestational-age-calculator-BljY_DVJ.js.map +1 -0
  57. package/dist/_chunks/hcg-doubling-Cv_vH61p.js +312 -0
  58. package/dist/_chunks/hcg-doubling-Cv_vH61p.js.map +1 -0
  59. package/dist/_chunks/header-settings-Cn5fPXCE.js +335 -0
  60. package/dist/_chunks/header-settings-Cn5fPXCE.js.map +1 -0
  61. package/dist/_chunks/{hi-Bppfxp8l.js → hi-BxXX26d_.js} +12 -12
  62. package/dist/_chunks/{hi-Bppfxp8l.js.map → hi-BxXX26d_.js.map} +1 -1
  63. package/dist/_chunks/isSameWeek-B73MagWB.js +13 -0
  64. package/dist/_chunks/{isSameWeek-CK4HS9lH.js.map → isSameWeek-B73MagWB.js.map} +1 -1
  65. package/dist/_chunks/{it-B4ySaRyK.js → it-Xmjomvyj.js} +24 -24
  66. package/dist/_chunks/{it-B4ySaRyK.js.map → it-Xmjomvyj.js.map} +1 -1
  67. package/dist/_chunks/{ja-CGF6Io9P.js → ja-mfZvt1ZV.js} +16 -16
  68. package/dist/_chunks/{ja-CGF6Io9P.js.map → ja-mfZvt1ZV.js.map} +1 -1
  69. package/dist/_chunks/{link-cell-renderer-C5XLwVXQ.js → link-cell-renderer-CJ_gk7gl.js} +3 -3
  70. package/dist/_chunks/{link-cell-renderer-C5XLwVXQ.js.map → link-cell-renderer-CJ_gk7gl.js.map} +1 -1
  71. package/dist/_chunks/{locale-picker-BfBUdT1m.js → locale-picker-D9Kv2zrK.js} +153 -132
  72. package/dist/_chunks/locale-picker-D9Kv2zrK.js.map +1 -0
  73. package/dist/_chunks/map-view-2yZCQW2l.js +445 -0
  74. package/dist/_chunks/map-view-2yZCQW2l.js.map +1 -0
  75. package/dist/_chunks/{marketplace-app-shell-DwcFMxzp.js → marketplace-app-shell-BLRvg-M0.js} +49 -40
  76. package/dist/_chunks/marketplace-app-shell-BLRvg-M0.js.map +1 -0
  77. package/dist/_chunks/{nl-DuShqwuV.js → nl-DDs-KEnD.js} +15 -15
  78. package/dist/_chunks/{nl-DuShqwuV.js.map → nl-DDs-KEnD.js.map} +1 -1
  79. package/dist/_chunks/{notes-panel-DPsgB4Mv.js → notes-panel-CiFN3sLW.js} +2 -2
  80. package/dist/_chunks/{notes-panel-DPsgB4Mv.js.map → notes-panel-CiFN3sLW.js.map} +1 -1
  81. package/dist/_chunks/{number-input-DrozbZAU.js → number-input-DOe5VYei.js} +64 -64
  82. package/dist/_chunks/number-input-DOe5VYei.js.map +1 -0
  83. package/dist/_chunks/{optical-prescription-BDHJr8Zz.js → optical-prescription-CRemE8fL.js} +2 -2
  84. package/dist/_chunks/{optical-prescription-BDHJr8Zz.js.map → optical-prescription-CRemE8fL.js.map} +1 -1
  85. package/dist/_chunks/{parse-DvA97ro9.js → parse-JqixfsU0.js} +43 -43
  86. package/dist/_chunks/{parse-DvA97ro9.js.map → parse-JqixfsU0.js.map} +1 -1
  87. package/dist/_chunks/parseISO-fOGpHKXm.js +120 -0
  88. package/dist/_chunks/parseISO-fOGpHKXm.js.map +1 -0
  89. package/dist/_chunks/{patient-details-DqjjwPmt.js → patient-details-CpunD0qx.js} +3 -3
  90. package/dist/_chunks/{patient-details-DqjjwPmt.js.map → patient-details-CpunD0qx.js.map} +1 -1
  91. package/dist/_chunks/{patient-table-BmIDrLIS.js → patient-table-2eWx-Rrk.js} +2 -2
  92. package/dist/_chunks/{patient-table-BmIDrLIS.js.map → patient-table-2eWx-Rrk.js.map} +1 -1
  93. package/dist/_chunks/{payment-form-h-BZ8onk.js → payment-form-Ds1I9KqB.js} +308 -231
  94. package/dist/_chunks/payment-form-Ds1I9KqB.js.map +1 -0
  95. package/dist/_chunks/{pdf-viewer-Ddx-T053.js → pdf-viewer-DUIsV9s5.js} +429 -369
  96. package/dist/_chunks/pdf-viewer-DUIsV9s5.js.map +1 -0
  97. package/dist/_chunks/{pl-CKQwX9Fk.js → pl-BYYMnEWP.js} +18 -18
  98. package/dist/_chunks/{pl-CKQwX9Fk.js.map → pl-BYYMnEWP.js.map} +1 -1
  99. package/dist/_chunks/{practice-results-B-HPc13W.js → practice-results-SjCniMd2.js} +2 -2
  100. package/dist/_chunks/{practice-results-B-HPc13W.js.map → practice-results-SjCniMd2.js.map} +1 -1
  101. package/dist/_chunks/pregnancy-dating-BmpHScZ0.js +770 -0
  102. package/dist/_chunks/pregnancy-dating-BmpHScZ0.js.map +1 -0
  103. package/dist/_chunks/pregnancy-weight-gain-B5KSJzdc.js +553 -0
  104. package/dist/_chunks/pregnancy-weight-gain-B5KSJzdc.js.map +1 -0
  105. package/dist/_chunks/progress-CK8otcQ-.js +343 -0
  106. package/dist/_chunks/progress-CK8otcQ-.js.map +1 -0
  107. package/dist/_chunks/{pt-_njpXyOZ.js → pt-BSPnVrQ7.js} +20 -20
  108. package/dist/_chunks/{pt-_njpXyOZ.js.map → pt-BSPnVrQ7.js.map} +1 -1
  109. package/dist/_chunks/{radiograph-panel.agent-BQZ64Riy.js → radiograph-panel.agent-CtFtNMzk.js} +3 -3
  110. package/dist/_chunks/{radiograph-panel.agent-BQZ64Riy.js.map → radiograph-panel.agent-CtFtNMzk.js.map} +1 -1
  111. package/dist/_chunks/{rich-text-editor-CfeXPPWs.js → rich-text-editor-BedTpWzL.js} +2 -2
  112. package/dist/_chunks/{rich-text-editor-CfeXPPWs.js.map → rich-text-editor-BedTpWzL.js.map} +1 -1
  113. package/dist/_chunks/{ro-3X6_4FcN.js → ro-BbiylGmG.js} +14 -14
  114. package/dist/_chunks/{ro-3X6_4FcN.js.map → ro-BbiylGmG.js.map} +1 -1
  115. package/dist/_chunks/{ru-bAcgmnS-.js → ru-BX_qsV67.js} +14 -14
  116. package/dist/_chunks/{ru-bAcgmnS-.js.map → ru-BX_qsV67.js.map} +1 -1
  117. package/dist/_chunks/{session-countdown-Bc70VXN1.js → session-countdown-BL-Psg8u.js} +2 -2
  118. package/dist/_chunks/{session-countdown-Bc70VXN1.js.map → session-countdown-BL-Psg8u.js.map} +1 -1
  119. package/dist/_chunks/{sign-document-CW_ByDUh.js → sign-document-jF4fZDJ5.js} +2 -2
  120. package/dist/_chunks/{sign-document-CW_ByDUh.js.map → sign-document-jF4fZDJ5.js.map} +1 -1
  121. package/dist/_chunks/slot-grid-DNiUcXy2.js +640 -0
  122. package/dist/_chunks/slot-grid-DNiUcXy2.js.map +1 -0
  123. package/dist/_chunks/{sparkline-BTY4B5tv.js → sparkline-BmGcEyZO.js} +209 -164
  124. package/dist/_chunks/sparkline-BmGcEyZO.js.map +1 -0
  125. package/dist/_chunks/{sq-jYFqr4Ga.js → sq-i9UOk4P7.js} +10 -10
  126. package/dist/_chunks/{sq-jYFqr4Ga.js.map → sq-i9UOk4P7.js.map} +1 -1
  127. package/dist/_chunks/subDays-CAUv47M1.js +8 -0
  128. package/dist/_chunks/{subDays-BcNi04uf.js.map → subDays-CAUv47M1.js.map} +1 -1
  129. package/dist/_chunks/{sv-BSGEJ-8B.js → sv-CpTdtmDQ.js} +8 -8
  130. package/dist/_chunks/{sv-BSGEJ-8B.js.map → sv-CpTdtmDQ.js.map} +1 -1
  131. package/dist/_chunks/{tab-bar-Axhk6xzx.js → tab-bar-BYESZINM.js} +83 -77
  132. package/dist/_chunks/tab-bar-BYESZINM.js.map +1 -0
  133. package/dist/_chunks/task-card.agent-CF2N_uu4.js +29 -0
  134. package/dist/_chunks/task-card.agent-CF2N_uu4.js.map +1 -0
  135. package/dist/_chunks/{tr-CTpgUtw6.js → tr-DXG2QN1K.js} +17 -17
  136. package/dist/_chunks/{tr-CTpgUtw6.js.map → tr-DXG2QN1K.js.map} +1 -1
  137. package/dist/_chunks/{unit-converter-COgkN7YP.js → unit-converter-CHPDuV7W.js} +2 -2
  138. package/dist/_chunks/{unit-converter-COgkN7YP.js.map → unit-converter-CHPDuV7W.js.map} +1 -1
  139. package/dist/_chunks/{warning-stack-BtjmJChC.js → warning-stack-B7t_8jRE.js} +42 -37
  140. package/dist/_chunks/{warning-stack-BtjmJChC.js.map → warning-stack-B7t_8jRE.js.map} +1 -1
  141. package/dist/_chunks/{zh-CN-BgM0Io2O.js → zh-CN-vPkPEK6H.js} +18 -18
  142. package/dist/_chunks/{zh-CN-BgM0Io2O.js.map → zh-CN-vPkPEK6H.js.map} +1 -1
  143. package/dist/agent-catalog.json +6426 -3382
  144. package/dist/agent-i18n/en.json +234 -15
  145. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -1
  146. package/dist/components/agenda-card/index.js +1 -1
  147. package/dist/components/appointment-timeline/index.js +1 -1
  148. package/dist/components/bmi-calculator/index.js +1 -1
  149. package/dist/components/booking/booking.d.ts.map +1 -1
  150. package/dist/components/booking/index.js +1 -1
  151. package/dist/components/calculator-dialog/calculator-dialog.d.ts.map +1 -1
  152. package/dist/components/calculator-dialog/index.js +1 -1
  153. package/dist/components/care-plan-card/index.js +1 -1
  154. package/dist/components/care-plan-entry-card/index.js +1 -1
  155. package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -1
  156. package/dist/components/chat-container/chat-container.d.ts +14 -0
  157. package/dist/components/chat-container/chat-container.d.ts.map +1 -1
  158. package/dist/components/chat-container/index.js +1 -1
  159. package/dist/components/cycle-calculator/cycle-calculator.agent.d.ts +4 -0
  160. package/dist/components/cycle-calculator/cycle-calculator.agent.d.ts.map +1 -0
  161. package/dist/components/cycle-calculator/cycle-calculator.d.ts +42 -0
  162. package/dist/components/cycle-calculator/cycle-calculator.d.ts.map +1 -1
  163. package/dist/components/cycle-calculator/index.d.ts +1 -1
  164. package/dist/components/cycle-calculator/index.d.ts.map +1 -1
  165. package/dist/components/cycle-calculator/index.js +1 -1
  166. package/dist/components/data-table/index.js +1 -1
  167. package/dist/components/date-picker/index.js +1 -1
  168. package/dist/components/date-range-picker/index.js +1 -1
  169. package/dist/components/date-time-picker/index.js +1 -1
  170. package/dist/components/document-preview/index.js +1 -1
  171. package/dist/components/due-date-calculator/due-date-calculator.agent.d.ts +4 -0
  172. package/dist/components/due-date-calculator/due-date-calculator.agent.d.ts.map +1 -0
  173. package/dist/components/due-date-calculator/due-date-calculator.d.ts +61 -1
  174. package/dist/components/due-date-calculator/due-date-calculator.d.ts.map +1 -1
  175. package/dist/components/due-date-calculator/index.d.ts +1 -1
  176. package/dist/components/due-date-calculator/index.d.ts.map +1 -1
  177. package/dist/components/due-date-calculator/index.js +2 -2
  178. package/dist/components/editor-overlay/editor-overlay.d.ts +7 -1
  179. package/dist/components/editor-overlay/editor-overlay.d.ts.map +1 -1
  180. package/dist/components/editor-overlay/index.js +1 -1
  181. package/dist/components/fetal-weight/fetal-weight.agent.d.ts +4 -0
  182. package/dist/components/fetal-weight/fetal-weight.agent.d.ts.map +1 -0
  183. package/dist/components/fetal-weight/fetal-weight.d.ts +26 -0
  184. package/dist/components/fetal-weight/fetal-weight.d.ts.map +1 -1
  185. package/dist/components/fetal-weight/index.d.ts +1 -1
  186. package/dist/components/fetal-weight/index.d.ts.map +1 -1
  187. package/dist/components/fetal-weight/index.js +1 -1
  188. package/dist/components/freemium-paywall/index.js +1 -1
  189. package/dist/components/gestational-age-calculator/gestational-age-calculator.agent.d.ts +4 -0
  190. package/dist/components/gestational-age-calculator/gestational-age-calculator.agent.d.ts.map +1 -0
  191. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +44 -2
  192. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts.map +1 -1
  193. package/dist/components/gestational-age-calculator/index.d.ts +1 -1
  194. package/dist/components/gestational-age-calculator/index.d.ts.map +1 -1
  195. package/dist/components/gestational-age-calculator/index.js +1 -1
  196. package/dist/components/hcg-doubling/hcg-doubling.agent.d.ts +4 -0
  197. package/dist/components/hcg-doubling/hcg-doubling.agent.d.ts.map +1 -0
  198. package/dist/components/hcg-doubling/hcg-doubling.d.ts +30 -0
  199. package/dist/components/hcg-doubling/hcg-doubling.d.ts.map +1 -1
  200. package/dist/components/hcg-doubling/index.d.ts +1 -1
  201. package/dist/components/hcg-doubling/index.d.ts.map +1 -1
  202. package/dist/components/hcg-doubling/index.js +1 -1
  203. package/dist/components/header-settings/header-settings.agent.d.ts.map +1 -1
  204. package/dist/components/header-settings/header-settings.d.ts +13 -1
  205. package/dist/components/header-settings/header-settings.d.ts.map +1 -1
  206. package/dist/components/header-settings/index.js +1 -1
  207. package/dist/components/locale-picker/index.js +1 -1
  208. package/dist/components/locale-picker/locale-picker.agent.d.ts.map +1 -1
  209. package/dist/components/locale-picker/locale-picker.d.ts +9 -0
  210. package/dist/components/locale-picker/locale-picker.d.ts.map +1 -1
  211. package/dist/components/map-view/index.js +1 -1
  212. package/dist/components/map-view/map-view.agent.d.ts.map +1 -1
  213. package/dist/components/map-view/map-view.d.ts +22 -0
  214. package/dist/components/map-view/map-view.d.ts.map +1 -1
  215. package/dist/components/notes-panel/index.js +1 -1
  216. package/dist/components/number-input/index.js +1 -1
  217. package/dist/components/number-input/number-input.d.ts +2 -1
  218. package/dist/components/number-input/number-input.d.ts.map +1 -1
  219. package/dist/components/optical-prescription/index.js +1 -1
  220. package/dist/components/patient-details/index.js +1 -1
  221. package/dist/components/patient-table/index.js +1 -1
  222. package/dist/components/payment-form/index.d.ts +1 -1
  223. package/dist/components/payment-form/index.d.ts.map +1 -1
  224. package/dist/components/payment-form/index.js +1 -1
  225. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  226. package/dist/components/payment-form/payment-form.d.ts +32 -1
  227. package/dist/components/payment-form/payment-form.d.ts.map +1 -1
  228. package/dist/components/pdf-viewer/index.js +1 -1
  229. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  230. package/dist/components/pdf-viewer/pdf-viewer.d.ts +13 -0
  231. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  232. package/dist/components/practice-results/index.js +1 -1
  233. package/dist/components/pregnancy-dating/index.d.ts +1 -1
  234. package/dist/components/pregnancy-dating/index.d.ts.map +1 -1
  235. package/dist/components/pregnancy-dating/index.js +1 -1
  236. package/dist/components/pregnancy-dating/pregnancy-dating.agent.d.ts +4 -0
  237. package/dist/components/pregnancy-dating/pregnancy-dating.agent.d.ts.map +1 -0
  238. package/dist/components/pregnancy-dating/pregnancy-dating.d.ts +65 -1
  239. package/dist/components/pregnancy-dating/pregnancy-dating.d.ts.map +1 -1
  240. package/dist/components/pregnancy-weight-gain/index.d.ts +2 -1
  241. package/dist/components/pregnancy-weight-gain/index.d.ts.map +1 -1
  242. package/dist/components/pregnancy-weight-gain/index.js +6 -5
  243. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.agent.d.ts +4 -0
  244. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.agent.d.ts.map +1 -0
  245. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +35 -0
  246. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts.map +1 -1
  247. package/dist/components/progress/index.js +1 -1
  248. package/dist/components/progress/progress.agent.d.ts.map +1 -1
  249. package/dist/components/progress/progress.d.ts +13 -0
  250. package/dist/components/progress/progress.d.ts.map +1 -1
  251. package/dist/components/radiograph-panel/index.js +1 -1
  252. package/dist/components/rich-text-editor/index.js +1 -1
  253. package/dist/components/session-countdown/index.js +1 -1
  254. package/dist/components/sign-document/index.js +1 -1
  255. package/dist/components/slot-grid/index.d.ts +2 -1
  256. package/dist/components/slot-grid/index.d.ts.map +1 -1
  257. package/dist/components/slot-grid/index.js +5 -4
  258. package/dist/components/slot-grid/slot-grid.agent.d.ts +4 -0
  259. package/dist/components/slot-grid/slot-grid.agent.d.ts.map +1 -0
  260. package/dist/components/slot-grid/slot-grid.d.ts +34 -0
  261. package/dist/components/slot-grid/slot-grid.d.ts.map +1 -1
  262. package/dist/components/sparkline/index.js +1 -1
  263. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
  264. package/dist/components/sparkline/sparkline.d.ts +10 -0
  265. package/dist/components/sparkline/sparkline.d.ts.map +1 -1
  266. package/dist/components/tab-bar/index.js +1 -1
  267. package/dist/components/tab-bar/tab-bar.d.ts +13 -0
  268. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
  269. package/dist/components/task-card/index.js +1 -1
  270. package/dist/components/task-card/task-card.agent.d.ts.map +1 -1
  271. package/dist/components/unit-converter/index.js +1 -1
  272. package/dist/components/warning-stack/index.js +1 -1
  273. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  274. package/dist/index.js +630 -627
  275. package/dist/patterns/alia-assistant/index.js +1 -1
  276. package/dist/patterns/anamnesis/anamnesis-compare-panel.d.ts.map +1 -1
  277. package/dist/patterns/anamnesis/anamnesis-compile.d.ts.map +1 -1
  278. package/dist/patterns/anamnesis/anamnesis-derive.d.ts +27 -8
  279. package/dist/patterns/anamnesis/anamnesis-derive.d.ts.map +1 -1
  280. package/dist/patterns/anamnesis/anamnesis-evolution-grid.d.ts.map +1 -1
  281. package/dist/patterns/anamnesis/anamnesis-field.d.ts.map +1 -1
  282. package/dist/patterns/anamnesis/anamnesis-format.d.ts +11 -3
  283. package/dist/patterns/anamnesis/anamnesis-format.d.ts.map +1 -1
  284. package/dist/patterns/anamnesis/anamnesis-highlight.d.ts +6 -0
  285. package/dist/patterns/anamnesis/anamnesis-highlight.d.ts.map +1 -0
  286. package/dist/patterns/anamnesis/anamnesis-intake.d.ts.map +1 -1
  287. package/dist/patterns/anamnesis/anamnesis-matrix.d.ts.map +1 -1
  288. package/dist/patterns/anamnesis/anamnesis-questionnaire.d.ts +23 -9
  289. package/dist/patterns/anamnesis/anamnesis-questionnaire.d.ts.map +1 -1
  290. package/dist/patterns/anamnesis/anamnesis-readonly.d.ts.map +1 -1
  291. package/dist/patterns/anamnesis/anamnesis-target-strip.d.ts.map +1 -1
  292. package/dist/patterns/anamnesis/anamnesis-types.d.ts +7 -0
  293. package/dist/patterns/anamnesis/anamnesis-types.d.ts.map +1 -1
  294. package/dist/patterns/anamnesis/anamnesis-visit-note.d.ts.map +1 -1
  295. package/dist/patterns/anamnesis/anamnesis.d.ts +16 -7
  296. package/dist/patterns/anamnesis/anamnesis.d.ts.map +1 -1
  297. package/dist/patterns/anamnesis/index.d.ts +3 -2
  298. package/dist/patterns/anamnesis/index.d.ts.map +1 -1
  299. package/dist/patterns/anamnesis/index.js +7 -6
  300. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  301. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +6 -0
  302. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts.map +1 -1
  303. package/dist/tokens.css +1 -1
  304. package/package.json +1 -1
  305. package/dist/_chunks/agenda-card.agent-mTCrkKSZ.js +0 -27
  306. package/dist/_chunks/agenda-card.agent-mTCrkKSZ.js.map +0 -1
  307. package/dist/_chunks/anamnesis-i18n-CfC0qYzy.js.map +0 -1
  308. package/dist/_chunks/booking-DjNbd7C1.js.map +0 -1
  309. package/dist/_chunks/calculator-dialog-DuXMQSdm.js +0 -40
  310. package/dist/_chunks/chat-container-HlFnoEIl.js.map +0 -1
  311. package/dist/_chunks/cycle-calculator-BwqYVPB4.js +0 -252
  312. package/dist/_chunks/cycle-calculator-BwqYVPB4.js.map +0 -1
  313. package/dist/_chunks/date-picker-variants-eL6HjWvw.js +0 -3363
  314. package/dist/_chunks/date-picker-variants-eL6HjWvw.js.map +0 -1
  315. package/dist/_chunks/due-date-calculator-CwfsFd3T.js +0 -256
  316. package/dist/_chunks/due-date-calculator-CwfsFd3T.js.map +0 -1
  317. package/dist/_chunks/editor-overlay-DE3esyio.js.map +0 -1
  318. package/dist/_chunks/fetal-weight-ePlLjJPc.js +0 -122
  319. package/dist/_chunks/fetal-weight-ePlLjJPc.js.map +0 -1
  320. package/dist/_chunks/gestational-age-calculator-DdgbH69Z.js +0 -311
  321. package/dist/_chunks/gestational-age-calculator-DdgbH69Z.js.map +0 -1
  322. package/dist/_chunks/hcg-doubling-BBqD2wI2.js +0 -170
  323. package/dist/_chunks/hcg-doubling-BBqD2wI2.js.map +0 -1
  324. package/dist/_chunks/header-settings--pjYOe6g.js +0 -284
  325. package/dist/_chunks/header-settings--pjYOe6g.js.map +0 -1
  326. package/dist/_chunks/isSameDay-DUEiAT0G.js +0 -39
  327. package/dist/_chunks/isSameDay-DUEiAT0G.js.map +0 -1
  328. package/dist/_chunks/isSameWeek-CK4HS9lH.js +0 -14
  329. package/dist/_chunks/locale-picker-BfBUdT1m.js.map +0 -1
  330. package/dist/_chunks/map-view-CsaHfoo6.js +0 -378
  331. package/dist/_chunks/map-view-CsaHfoo6.js.map +0 -1
  332. package/dist/_chunks/marketplace-app-shell-DwcFMxzp.js.map +0 -1
  333. package/dist/_chunks/number-input-DrozbZAU.js.map +0 -1
  334. package/dist/_chunks/payment-form-h-BZ8onk.js.map +0 -1
  335. package/dist/_chunks/pdf-viewer-Ddx-T053.js.map +0 -1
  336. package/dist/_chunks/pregnancy-dating-DzYTlBkT.js +0 -421
  337. package/dist/_chunks/pregnancy-dating-DzYTlBkT.js.map +0 -1
  338. package/dist/_chunks/pregnancy-weight-gain-O6J0sUIi.js +0 -322
  339. package/dist/_chunks/pregnancy-weight-gain-O6J0sUIi.js.map +0 -1
  340. package/dist/_chunks/progress-DA413-zn.js +0 -299
  341. package/dist/_chunks/progress-DA413-zn.js.map +0 -1
  342. package/dist/_chunks/slot-grid-CQSULZjd.js +0 -502
  343. package/dist/_chunks/slot-grid-CQSULZjd.js.map +0 -1
  344. package/dist/_chunks/sparkline-BTY4B5tv.js.map +0 -1
  345. package/dist/_chunks/subDays-BcNi04uf.js +0 -8
  346. package/dist/_chunks/tab-bar-Axhk6xzx.js.map +0 -1
  347. package/dist/_chunks/task-card.agent-Bt14CzUd.js +0 -25
  348. package/dist/_chunks/task-card.agent-Bt14CzUd.js.map +0 -1
@@ -0,0 +1,425 @@
1
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as G, useState as N, useMemo as x, useEffect as K, useRef as j } from "react";
3
+ import { c as q } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as z } from "react-i18next";
5
+ import { u as B } from "./registry-DvAUVLHh.js";
6
+ import { F as S } from "./form-field-M5UpX65Z.js";
7
+ import { D as Y } from "./date-picker-Bp64zk2p.js";
8
+ import { N as H } from "./number-input-DOe5VYei.js";
9
+ import { C as M } from "./card-DPmk26CL.js";
10
+ import { B as T } from "./badge-DCOqV9mI.js";
11
+ import { I as U } from "./insert-result-D074GtHX.js";
12
+ import { a as m, c as V } from "./date-picker-variants-pKAJfnWr.js";
13
+ import { C as J } from "./check-DrFSN__t.js";
14
+ import { H as Q } from "./heart--qCA4ffe.js";
15
+ import { c as X } from "./createLucideIcon-DhHxpK9K.js";
16
+ import { p as Z } from "./parseISO-fOGpHKXm.js";
17
+ import { f as ee } from "./format-4HNwNGrN.js";
18
+ /**
19
+ * @license lucide-react v1.22.0 - ISC
20
+ *
21
+ * This source code is licensed under the ISC license.
22
+ * See the LICENSE file in the root directory of this source tree.
23
+ */
24
+ const te = [
25
+ [
26
+ "path",
27
+ {
28
+ d: "M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z",
29
+ key: "c7niix"
30
+ }
31
+ ]
32
+ ], re = X("droplet", te), ae = {
33
+ type: "string",
34
+ pattern: "^\\d{4}-\\d{2}-\\d{2}$"
35
+ }, ne = {
36
+ id: "cycle-calculator",
37
+ // set_value → the three `set_*` actions + the `inputs` state slot.
38
+ capabilities: ["set_value"],
39
+ state: {
40
+ inputs: {
41
+ type: "{ lastPeriodStart: string | null, cycleLength: number | null, periodLength: number | null }",
42
+ descriptionKey: "ui.agent.cycleCalculator.state.inputs",
43
+ description: "The three cycle inputs as entered — last-period start date (`yyyy-MM-dd`), average cycle length in days, and period (bleed) length in days. Null where unset.",
44
+ read: (e) => e.getInputs()
45
+ },
46
+ result: {
47
+ type: "{ ovulation: string, fertileWindow: { start: string, end: string }, nextPeriod: string, periodRange: { start: string, end: string } | null, upcomingPeriods: string[] } | null",
48
+ descriptionKey: "ui.agent.cycleCalculator.state.result",
49
+ description: "Computed prediction — ovulation date, fertile window, next period, current bleed range and the next few period starts, all `yyyy-MM-dd`. Null until a last-period date is set.",
50
+ read: (e) => e.getResult()
51
+ }
52
+ },
53
+ actions: {
54
+ set_last_period: {
55
+ // Drives the same local input state a user types into; nothing is
56
+ // persisted to a record, and the value is reversible in the same UI.
57
+ safety: "write",
58
+ argsType: "{ date: string | null }",
59
+ argsSchema: {
60
+ type: "object",
61
+ properties: {
62
+ date: {
63
+ oneOf: [
64
+ { ...ae, description: "Local calendar date, `yyyy-MM-dd`." },
65
+ { type: "null" }
66
+ ],
67
+ description: "Start date of the last period, or null to clear it. Must not be in the future."
68
+ }
69
+ },
70
+ required: ["date"],
71
+ additionalProperties: !1
72
+ },
73
+ idempotent: !0,
74
+ returns: "boolean",
75
+ returnsSchema: {
76
+ type: "boolean",
77
+ description: "True when the date was applied."
78
+ },
79
+ errors: [
80
+ "Returns false for an unparseable date or a date in the future — the on-screen DatePicker caps at today."
81
+ ],
82
+ examples: [
83
+ { args: { date: "2026-08-01" }, note: "Last period started 1 August." }
84
+ ],
85
+ descriptionKey: "ui.agent.cycleCalculator.actions.setLastPeriod",
86
+ description: "Set the start date of the last period. This is the only required input — the prediction stays null without it.",
87
+ invoke: (e, n) => e.setLastPeriod(n.date)
88
+ },
89
+ set_cycle_length: {
90
+ safety: "write",
91
+ argsType: "{ days: number | null }",
92
+ argsSchema: {
93
+ type: "object",
94
+ properties: {
95
+ days: {
96
+ oneOf: [
97
+ { type: "integer", minimum: 20, maximum: 45 },
98
+ { type: "null" }
99
+ ],
100
+ description: "Average cycle length in days (20–45), or null to fall back to the 28-day default."
101
+ }
102
+ },
103
+ required: ["days"],
104
+ additionalProperties: !1
105
+ },
106
+ idempotent: !0,
107
+ returns: "boolean",
108
+ returnsSchema: {
109
+ type: "boolean",
110
+ description: "True when the value was applied."
111
+ },
112
+ errors: [
113
+ "Returns false outside 20–45 days — the same bounds the on-screen NumberInput enforces."
114
+ ],
115
+ descriptionKey: "ui.agent.cycleCalculator.actions.setCycleLength",
116
+ description: "Set the average cycle length in days. Shifts ovulation, the fertile window and every upcoming period.",
117
+ invoke: (e, n) => e.setCycleLength(n.days)
118
+ },
119
+ set_period_length: {
120
+ safety: "write",
121
+ argsType: "{ days: number | null }",
122
+ argsSchema: {
123
+ type: "object",
124
+ properties: {
125
+ days: {
126
+ oneOf: [
127
+ { type: "integer", minimum: 1, maximum: 14 },
128
+ { type: "null" }
129
+ ],
130
+ description: "Period (bleed) length in days (1–14), or null to omit the bleed range."
131
+ }
132
+ },
133
+ required: ["days"],
134
+ additionalProperties: !1
135
+ },
136
+ idempotent: !0,
137
+ returns: "boolean",
138
+ returnsSchema: {
139
+ type: "boolean",
140
+ description: "True when the value was applied."
141
+ },
142
+ errors: [
143
+ "Returns false outside 1–14 days — the same bounds the on-screen NumberInput enforces."
144
+ ],
145
+ descriptionKey: "ui.agent.cycleCalculator.actions.setPeriodLength",
146
+ description: "Set the period (bleed) length in days. Optional — it only adds the current bleed range to the result.",
147
+ invoke: (e, n) => e.setPeriodLength(n.days)
148
+ }
149
+ },
150
+ domHooks: {
151
+ root: {
152
+ attr: "data-component",
153
+ value: "cycle-calculator",
154
+ description: "Marks the CycleCalculator wrapper."
155
+ },
156
+ instanceId: {
157
+ attr: "data-component-id",
158
+ sourceProp: "id",
159
+ description: "Sourced from the id prop. Also the registry key — without an `id` the instance does not register and only the DOM channel works."
160
+ }
161
+ }
162
+ }, D = 28, ie = 14, le = 1;
163
+ function se(e, n = 3) {
164
+ const o = e.cycleLength ?? D, { lastPeriodStart: d } = e, g = m(d, o - ie), v = {
165
+ start: m(g, -5),
166
+ end: m(g, le)
167
+ }, b = m(d, o), f = Array.from(
168
+ { length: n },
169
+ (E, C) => m(d, o * (C + 1))
170
+ ), L = e.periodLength && e.periodLength > 0 ? {
171
+ start: d,
172
+ end: m(d, e.periodLength - 1)
173
+ } : null;
174
+ return { nextPeriod: b, ovulation: g, fertileWindow: v, upcomingPeriods: f, periodRange: L };
175
+ }
176
+ const oe = q("ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", {
177
+ variants: {
178
+ width: { full: "ds:w-full", auto: "ds:inline-flex" }
179
+ },
180
+ defaultVariants: { width: "full" }
181
+ }), de = "--accent", c = (e) => ee(e, "yyyy-MM-dd"), ce = (e) => {
182
+ const n = Z(e);
183
+ return Number.isNaN(n.getTime()) ? null : n;
184
+ }, _ = { min: 20, max: 45 }, R = { min: 1, max: 14 }, W = (e, { min: n, max: o }) => e === null || Number.isFinite(e) && e >= n && e <= o, ue = G(
185
+ ({
186
+ defaultCycleLength: e = D,
187
+ onResultChange: n,
188
+ onInsert: o,
189
+ insertVariant: d = "insert",
190
+ onCopy: g,
191
+ onError: v,
192
+ insertBrand: b,
193
+ id: f,
194
+ width: L,
195
+ className: E
196
+ }, C) => {
197
+ const { t: i, i18n: I } = z(), [u, P] = N(void 0), [y, A] = N(
198
+ e
199
+ ), [h, k] = N(null), a = x(() => u ? se({
200
+ lastPeriodStart: u,
201
+ cycleLength: y ?? D,
202
+ periodLength: h ?? void 0
203
+ }) : null, [u, y, h]), F = x(
204
+ () => new Intl.DateTimeFormat(I.language, { dateStyle: "medium" }),
205
+ [I.language]
206
+ );
207
+ K(() => {
208
+ n == null || n(a);
209
+ }, [a, n]);
210
+ const $ = x(() => /* @__PURE__ */ new Date(), []), p = j({ lastPeriod: u, cycleLength: y, periodLength: h, result: a });
211
+ p.current = { lastPeriod: u, cycleLength: y, periodLength: h, result: a };
212
+ const O = x(
213
+ () => ({
214
+ getInputs: () => ({
215
+ lastPeriodStart: p.current.lastPeriod ? c(p.current.lastPeriod) : null,
216
+ cycleLength: p.current.cycleLength,
217
+ periodLength: p.current.periodLength
218
+ }),
219
+ getResult: () => {
220
+ const r = p.current.result;
221
+ return r ? {
222
+ ovulation: c(r.ovulation),
223
+ fertileWindow: {
224
+ start: c(r.fertileWindow.start),
225
+ end: c(r.fertileWindow.end)
226
+ },
227
+ nextPeriod: c(r.nextPeriod),
228
+ periodRange: r.periodRange ? {
229
+ start: c(r.periodRange.start),
230
+ end: c(r.periodRange.end)
231
+ } : null,
232
+ upcomingPeriods: r.upcomingPeriods.map(c)
233
+ } : null;
234
+ },
235
+ setLastPeriod: (r) => {
236
+ if (r === null)
237
+ return P(void 0), !0;
238
+ const w = ce(r);
239
+ return !w || V(w, /* @__PURE__ */ new Date()) ? !1 : (P(w), !0);
240
+ },
241
+ setCycleLength: (r) => W(r, _) ? (A(r), !0) : !1,
242
+ setPeriodLength: (r) => W(r, R) ? (k(r), !0) : !1
243
+ }),
244
+ []
245
+ );
246
+ B(ne, O, f);
247
+ const l = (r) => F.format(r);
248
+ return /* @__PURE__ */ s(
249
+ "div",
250
+ {
251
+ ref: C,
252
+ "data-component": "cycle-calculator",
253
+ "data-component-id": f,
254
+ className: oe({ width: L, className: E }),
255
+ children: [
256
+ /* @__PURE__ */ s("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2", children: [
257
+ /* @__PURE__ */ t(S, { label: i("cycleCalculator.lastPeriod"), children: /* @__PURE__ */ t(
258
+ Y,
259
+ {
260
+ value: u,
261
+ onChange: P,
262
+ maxDate: $
263
+ }
264
+ ) }),
265
+ /* @__PURE__ */ t(
266
+ S,
267
+ {
268
+ label: i("cycleCalculator.cycleLength"),
269
+ description: i("cycleCalculator.cycleLengthHint"),
270
+ children: /* @__PURE__ */ t(
271
+ H,
272
+ {
273
+ mode: "integer",
274
+ min: _.min,
275
+ max: _.max,
276
+ value: y,
277
+ onChange: A
278
+ }
279
+ )
280
+ }
281
+ ),
282
+ /* @__PURE__ */ t(
283
+ S,
284
+ {
285
+ label: i("cycleCalculator.periodLength"),
286
+ description: i("cycleCalculator.periodLengthHint"),
287
+ children: /* @__PURE__ */ t(
288
+ H,
289
+ {
290
+ mode: "integer",
291
+ min: R.min,
292
+ max: R.max,
293
+ value: h,
294
+ onChange: k
295
+ }
296
+ )
297
+ }
298
+ )
299
+ ] }),
300
+ /* @__PURE__ */ t("p", { className: "ds:sr-only", role: "status", "aria-live": "polite", children: a ? `${i("cycleCalculator.ovulation")}: ${l(a.ovulation)}. ${i(
301
+ "cycleCalculator.nextPeriod"
302
+ )}: ${l(a.nextPeriod)}.` : "" }),
303
+ a ? /* @__PURE__ */ t(M, { variant: "elevated", children: /* @__PURE__ */ s(M.Body, { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
304
+ /* @__PURE__ */ s("dl", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3", children: [
305
+ /* @__PURE__ */ s("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
306
+ /* @__PURE__ */ t("dt", { className: "type-label ds:text-muted-foreground", children: i("cycleCalculator.ovulation") }),
307
+ /* @__PURE__ */ t("dd", { children: /* @__PURE__ */ t(
308
+ T,
309
+ {
310
+ variant: "success",
311
+ size: "lg",
312
+ leading: /* @__PURE__ */ t(J, { "aria-hidden": !0 }),
313
+ children: l(a.ovulation)
314
+ }
315
+ ) })
316
+ ] }),
317
+ /* @__PURE__ */ s("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
318
+ /* @__PURE__ */ t("dt", { className: "type-label ds:text-muted-foreground", children: i("cycleCalculator.fertileWindow") }),
319
+ /* @__PURE__ */ t("dd", { children: /* @__PURE__ */ s(
320
+ T,
321
+ {
322
+ variant: "accent",
323
+ size: "lg",
324
+ leading: /* @__PURE__ */ t(Q, { "aria-hidden": !0 }),
325
+ children: [
326
+ l(a.fertileWindow.start),
327
+ " –",
328
+ " ",
329
+ l(a.fertileWindow.end)
330
+ ]
331
+ }
332
+ ) })
333
+ ] }),
334
+ /* @__PURE__ */ s("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
335
+ /* @__PURE__ */ t("dt", { className: "type-label ds:text-muted-foreground", children: i("cycleCalculator.nextPeriod") }),
336
+ /* @__PURE__ */ t("dd", { children: /* @__PURE__ */ t(
337
+ T,
338
+ {
339
+ variant: "error",
340
+ size: "lg",
341
+ leading: /* @__PURE__ */ t(re, { "aria-hidden": !0 }),
342
+ children: l(a.nextPeriod)
343
+ }
344
+ ) })
345
+ ] })
346
+ ] }),
347
+ a.periodRange ? /* @__PURE__ */ s("div", { className: "ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]", children: [
348
+ /* @__PURE__ */ t("span", { className: "type-label ds:text-muted-foreground", children: i("cycleCalculator.periodRange") }),
349
+ /* @__PURE__ */ s("span", { className: "type-body ds:text-foreground", children: [
350
+ l(a.periodRange.start),
351
+ " –",
352
+ " ",
353
+ l(a.periodRange.end)
354
+ ] })
355
+ ] }) : null,
356
+ /* @__PURE__ */ s("div", { className: "ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]", children: [
357
+ /* @__PURE__ */ t("span", { className: "type-label ds:text-muted-foreground", children: i("cycleCalculator.upcomingPeriods") }),
358
+ /* @__PURE__ */ t("ul", { className: "ds:flex ds:flex-wrap ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-2xs)]", children: a.upcomingPeriods.map((r) => /* @__PURE__ */ t(
359
+ "li",
360
+ {
361
+ className: "type-body ds:text-foreground",
362
+ children: l(r)
363
+ },
364
+ r.getTime()
365
+ )) })
366
+ ] }),
367
+ d === "copy" || o ? /* @__PURE__ */ t(
368
+ U,
369
+ {
370
+ onInsert: o,
371
+ variant: d,
372
+ onCopy: g,
373
+ onError: v,
374
+ card: {
375
+ title: i("insert.title.cycle"),
376
+ icon: "heart",
377
+ highlight: `${l(a.fertileWindow.start)} – ${l(
378
+ a.fertileWindow.end
379
+ )}`,
380
+ // Chip reuses the on-screen fertile-window badge's accent
381
+ // token so the inserted PNG chip matches the screen.
382
+ highlightToken: de,
383
+ brand: b,
384
+ fields: [
385
+ {
386
+ // Ovulation is a predicted date → calendar glyph (the
387
+ // on-screen badge uses a Check tick, which ICON_GEOMETRY
388
+ // does not carry, so the calendar reads the date meaning).
389
+ icon: "calendar",
390
+ label: i("cycleCalculator.ovulation"),
391
+ value: l(a.ovulation)
392
+ },
393
+ {
394
+ // Fertile window → heart glyph, matching the on-screen
395
+ // fertile-window badge's Heart icon.
396
+ icon: "heart",
397
+ label: i("cycleCalculator.fertileWindow"),
398
+ value: `${l(a.fertileWindow.start)} – ${l(
399
+ a.fertileWindow.end
400
+ )}`
401
+ },
402
+ {
403
+ // Next period → droplets glyph, matching the on-screen
404
+ // next-period badge's Droplet icon.
405
+ icon: "droplets",
406
+ label: i("cycleCalculator.nextPeriod"),
407
+ value: l(a.nextPeriod)
408
+ }
409
+ ]
410
+ }
411
+ }
412
+ ) : null
413
+ ] }) }) : /* @__PURE__ */ t("p", { className: "type-body ds:text-muted-foreground", children: i("cycleCalculator.empty") })
414
+ ]
415
+ }
416
+ );
417
+ }
418
+ );
419
+ ue.displayName = "CycleCalculator";
420
+ export {
421
+ ue as C,
422
+ ie as L,
423
+ se as p
424
+ };
425
+ //# sourceMappingURL=cycle-calculator-B7fyH-h4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycle-calculator-B7fyH-h4.js","sources":["../../node_modules/lucide-react/dist/esm/icons/droplet.mjs","../../src/components/cycle-calculator/cycle-calculator.agent.ts","../../src/components/cycle-calculator/cycle.ts","../../src/components/cycle-calculator/cycle-calculator.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 [\n \"path\",\n {\n d: \"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z\",\n key: \"c7niix\"\n }\n ]\n];\nconst Droplet = createLucideIcon(\"droplet\", __iconNode);\n\nexport { __iconNode, Droplet as default };\n//# sourceMappingURL=droplet.mjs.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — CycleCalculator. */\n/* */\n/* Menstrual-cycle predictor: takes a last-period date (+ optional cycle */\n/* and period lengths) and computes ovulation, fertile window and the */\n/* next few periods. The agent surface is the three inputs plus the */\n/* computed prediction; the handle is the curated `CycleCalculatorHandle` */\n/* (the public `ref` stays the root <div>, exactly as `slider.tsx` and */\n/* `bmi-calculator.tsx` keep theirs). */\n/* */\n/* Dates cross the boundary as local-time `yyyy-MM-dd` strings, never */\n/* `Date` objects, so nothing shifts a day under JSON/UTC serialisation. */\n/* */\n/* PHI (§7): never exposes patient identity — the slots return the */\n/* operator's own structural inputs (a date, two day counts) and the */\n/* dates derived from them, the same \"filter model\" precedent §7 sets. */\n/* See `src/docs/26-agent-readiness.mdx`. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { CycleCalculatorHandle } from './cycle-calculator';\n\n/** Shared JSON Schema fragment for a local-time calendar date. */\nconst isoDate = {\n type: 'string',\n pattern: '^\\\\d{4}-\\\\d{2}-\\\\d{2}$',\n} as const;\n\nexport const cycleCalculatorAgent: AgentAdapter<CycleCalculatorHandle> = {\n id: 'cycle-calculator',\n // set_value → the three `set_*` actions + the `inputs` state slot.\n capabilities: ['set_value'],\n state: {\n inputs: {\n type: '{ lastPeriodStart: string | null, cycleLength: number | null, periodLength: number | null }',\n descriptionKey: 'ui.agent.cycleCalculator.state.inputs',\n description:\n 'The three cycle inputs as entered — last-period start date (`yyyy-MM-dd`), average cycle length in days, and period (bleed) length in days. Null where unset.',\n read: (handle) => handle.getInputs(),\n },\n result: {\n type: '{ ovulation: string, fertileWindow: { start: string, end: string }, nextPeriod: string, periodRange: { start: string, end: string } | null, upcomingPeriods: string[] } | null',\n descriptionKey: 'ui.agent.cycleCalculator.state.result',\n description:\n 'Computed prediction — ovulation date, fertile window, next period, current bleed range and the next few period starts, all `yyyy-MM-dd`. Null until a last-period date is set.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_last_period: {\n // Drives the same local input state a user types into; nothing is\n // persisted to a record, and the value is reversible in the same UI.\n safety: 'write',\n argsType: '{ date: string | null }',\n argsSchema: {\n type: 'object',\n properties: {\n date: {\n oneOf: [\n { ...isoDate, description: 'Local calendar date, `yyyy-MM-dd`.' },\n { type: 'null' },\n ],\n description:\n 'Start date of the last period, or null to clear it. Must not be in the future.',\n },\n },\n required: ['date'],\n additionalProperties: false,\n },\n idempotent: true,\n returns: 'boolean',\n returnsSchema: {\n type: 'boolean',\n description: 'True when the date was applied.',\n },\n errors: [\n 'Returns false for an unparseable date or a date in the future — the on-screen DatePicker caps at today.',\n ],\n examples: [\n { args: { date: '2026-08-01' }, note: 'Last period started 1 August.' },\n ],\n descriptionKey: 'ui.agent.cycleCalculator.actions.setLastPeriod',\n description:\n 'Set the start date of the last period. This is the only required input — the prediction stays null without it.',\n invoke: (handle, args: { date: string | null }) =>\n handle.setLastPeriod(args.date),\n },\n set_cycle_length: {\n safety: 'write',\n argsType: '{ days: number | null }',\n argsSchema: {\n type: 'object',\n properties: {\n days: {\n oneOf: [\n { type: 'integer', minimum: 20, maximum: 45 },\n { type: 'null' },\n ],\n description:\n 'Average cycle length in days (20–45), or null to fall back to the 28-day default.',\n },\n },\n required: ['days'],\n additionalProperties: false,\n },\n idempotent: true,\n returns: 'boolean',\n returnsSchema: {\n type: 'boolean',\n description: 'True when the value was applied.',\n },\n errors: [\n 'Returns false outside 20–45 days — the same bounds the on-screen NumberInput enforces.',\n ],\n descriptionKey: 'ui.agent.cycleCalculator.actions.setCycleLength',\n description:\n 'Set the average cycle length in days. Shifts ovulation, the fertile window and every upcoming period.',\n invoke: (handle, args: { days: number | null }) =>\n handle.setCycleLength(args.days),\n },\n set_period_length: {\n safety: 'write',\n argsType: '{ days: number | null }',\n argsSchema: {\n type: 'object',\n properties: {\n days: {\n oneOf: [\n { type: 'integer', minimum: 1, maximum: 14 },\n { type: 'null' },\n ],\n description:\n 'Period (bleed) length in days (1–14), or null to omit the bleed range.',\n },\n },\n required: ['days'],\n additionalProperties: false,\n },\n idempotent: true,\n returns: 'boolean',\n returnsSchema: {\n type: 'boolean',\n description: 'True when the value was applied.',\n },\n errors: [\n 'Returns false outside 1–14 days — the same bounds the on-screen NumberInput enforces.',\n ],\n descriptionKey: 'ui.agent.cycleCalculator.actions.setPeriodLength',\n description:\n 'Set the period (bleed) length in days. Optional — it only adds the current bleed range to the result.',\n invoke: (handle, args: { days: number | null }) =>\n handle.setPeriodLength(args.days),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'cycle-calculator',\n description: 'Marks the CycleCalculator wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Also the registry key — without an `id` the instance does not register and only the DOM channel works.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Menstrual-cycle prediction — pure, framework-free, unit-testable. */\n/* */\n/* Uses the standard fixed-luteal-phase model: ovulation falls ~14 days */\n/* before the next period, so on a cycle of length L ovulation is day */\n/* (L − 14). The fertile window spans the 5 days before ovulation */\n/* (sperm survival) through 1 day after (oocyte viability). */\n/* ------------------------------------------------------------------ */\n\nimport { addDays } from 'date-fns';\n\n/** Standard menstrual-cycle length. */\nexport const DEFAULT_CYCLE_LENGTH = 28;\n/** Luteal phase is biologically near-constant at ~14 days. */\nexport const LUTEAL_PHASE_DAYS = 14;\n/** Sperm survive up to ~5 days before ovulation. */\nexport const FERTILE_DAYS_BEFORE = 5;\n/** The oocyte is viable ~1 day after ovulation. */\nexport const FERTILE_DAYS_AFTER = 1;\n\nexport interface CycleInput {\n /** First day of the most recent period. */\n lastPeriodStart: Date;\n /** Average cycle length in days. Defaults to 28. */\n cycleLength?: number;\n /** Period (bleed) length in days. Optional — used for the period range. */\n periodLength?: number;\n}\n\nexport interface DateRange {\n start: Date;\n end: Date;\n}\n\nexport interface CyclePrediction {\n /** Start date of the next period. */\n nextPeriod: Date;\n /** Estimated ovulation date. */\n ovulation: Date;\n /** Fertile window (5 days before ovulation → 1 day after). */\n fertileWindow: DateRange;\n /** Start dates of the next few periods (length = `occurrences`). */\n upcomingPeriods: Date[];\n /**\n * The current period's bleed range (first day → last day), or `null` when no\n * `periodLength` was given.\n */\n periodRange: DateRange | null;\n}\n\n/**\n * Predict ovulation, the fertile window and upcoming periods from the last\n * period's start date. `occurrences` controls how many future periods to\n * list (default 3).\n */\nexport function predictCycle(\n input: CycleInput,\n occurrences = 3,\n): CyclePrediction {\n const cycle = input.cycleLength ?? DEFAULT_CYCLE_LENGTH;\n const { lastPeriodStart } = input;\n\n const ovulation = addDays(lastPeriodStart, cycle - LUTEAL_PHASE_DAYS);\n const fertileWindow: DateRange = {\n start: addDays(ovulation, -FERTILE_DAYS_BEFORE),\n end: addDays(ovulation, FERTILE_DAYS_AFTER),\n };\n const nextPeriod = addDays(lastPeriodStart, cycle);\n const upcomingPeriods = Array.from({ length: occurrences }, (_, i) =>\n addDays(lastPeriodStart, cycle * (i + 1)),\n );\n const periodRange: DateRange | null =\n input.periodLength && input.periodLength > 0\n ? {\n start: lastPeriodStart,\n end: addDays(lastPeriodStart, input.periodLength - 1),\n }\n : null;\n\n return { nextPeriod, ovulation, fertileWindow, upcomingPeriods, periodRange };\n}\n","/* ------------------------------------------------------------------ */\n/* CycleCalculator — predict ovulation, fertile window and upcoming */\n/* periods from the last period's start date. */\n/* */\n/* Maths lives in `./cycle` (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 { format, isAfter, parseISO } from 'date-fns';\nimport { Heart, Check, Droplet } from 'lucide-react';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { cycleCalculatorAgent } from './cycle-calculator.agent';\nimport { FormField } from '../form-field';\nimport { DatePicker } from '../date-picker';\nimport { NumberInput } from '../number-input';\nimport { Card } from '../card';\nimport { Badge } from '../badge';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport {\n type CyclePrediction,\n predictCycle,\n DEFAULT_CYCLE_LENGTH,\n} from './cycle';\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 chip — the fertile window is the\n * headline fertility datum, shown on screen with the `accent` Badge variant\n * (which fills `--accent`). The card chip reuses that token so the inserted\n * PNG chip matches the on-screen fertile-window badge.\n */\nconst HIGHLIGHT_TOKEN = '--accent';\n\n/* ------------------------------------------------------------------ */\n/* Agent boundary */\n/* */\n/* Dates cross the agent boundary as local-time `yyyy-MM-dd` strings, */\n/* never `Date` objects — a Date JSON-serialises to UTC and silently */\n/* shifts the day for anyone east or west of Greenwich. */\n/* ------------------------------------------------------------------ */\n\nconst toIsoDate = (d: Date): string => format(d, 'yyyy-MM-dd');\n\nconst fromIsoDate = (iso: string): Date | null => {\n const d = parseISO(iso);\n return Number.isNaN(d.getTime()) ? null : d;\n};\n\n/** UI input bounds, mirrored by the agent handle so it can't out-type a user. */\nconst CYCLE_LENGTH_RANGE = { min: 20, max: 45 } as const;\nconst PERIOD_LENGTH_RANGE = { min: 1, max: 14 } as const;\n\nconst inRange = (\n n: number | null,\n { min, max }: { min: number; max: number },\n): boolean => n === null || (Number.isFinite(n) && n >= min && n <= max);\n\n/** `CyclePrediction` projected onto the agent boundary — ISO dates, no Dates. */\nexport interface CyclePredictionSnapshot {\n /** Estimated ovulation date, `yyyy-MM-dd`. */\n ovulation: string;\n /** Fertile window, `yyyy-MM-dd` endpoints. */\n fertileWindow: { start: string; end: string };\n /** Start of the next period, `yyyy-MM-dd`. */\n nextPeriod: string;\n /** Current period's bleed range, or null when no period length was given. */\n periodRange: { start: string; end: string } | null;\n /** Start dates of the next few periods, `yyyy-MM-dd`. */\n upcomingPeriods: string[];\n}\n\n/**\n * Curated imperative handle for agent / external automation. Reads the three\n * cycle inputs and the computed prediction, and drives the inputs the way a\n * user would. Never exposes patient identity — only structural dates and day\n * counts. Consumed by `cycle-calculator.agent.ts`; the public `ref` stays the\n * root DOM element.\n */\nexport interface CycleCalculatorHandle {\n /** Current inputs — ISO date + day counts, or null when unset. */\n getInputs: () => {\n lastPeriodStart: string | null;\n cycleLength: number | null;\n periodLength: number | null;\n };\n /** Computed prediction, or null until a last-period date is set. */\n getResult: () => CyclePredictionSnapshot | null;\n /** Set the last period's start date (`yyyy-MM-dd`, not in the future). */\n setLastPeriod: (isoDate: string | null) => boolean;\n /** Set the average cycle length in days (20–45). */\n setCycleLength: (days: number | null) => boolean;\n /** Set the period (bleed) length in days (1–14). */\n setPeriodLength: (days: number | null) => boolean;\n}\n\nexport interface CycleCalculatorProps extends VariantProps<\n typeof rootVariants\n> {\n /** Initial cycle length in days. Defaults to 28. */\n defaultCycleLength?: number;\n /** Fires whenever a prediction can be computed (and `null` when it can't). */\n onResultChange?: (result: CyclePrediction | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\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\nexport const CycleCalculator = forwardRef<HTMLDivElement, CycleCalculatorProps>(\n (\n {\n defaultCycleLength = DEFAULT_CYCLE_LENGTH,\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 [lastPeriod, setLastPeriod] = useState<Date | undefined>(undefined);\n const [cycleLength, setCycleLength] = useState<number | null>(\n defaultCycleLength,\n );\n const [periodLength, setPeriodLength] = useState<number | null>(null);\n\n const result = useMemo<CyclePrediction | null>(() => {\n if (!lastPeriod) return null;\n return predictCycle({\n lastPeriodStart: lastPeriod,\n cycleLength: cycleLength ?? DEFAULT_CYCLE_LENGTH,\n periodLength: periodLength ?? undefined,\n });\n }, [lastPeriod, cycleLength, periodLength]);\n\n const dateFormatter = useMemo(\n () => new Intl.DateTimeFormat(i18n.language, { dateStyle: 'medium' }),\n [i18n.language],\n );\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n const today = useMemo(() => new Date(), []);\n\n /* ── Agent handle ────────────────────────────────────────────────── */\n const liveRef = useRef({ lastPeriod, cycleLength, periodLength, result });\n liveRef.current = { lastPeriod, cycleLength, periodLength, result };\n\n const agentHandle = useMemo<CycleCalculatorHandle>(\n () => ({\n getInputs: () => ({\n lastPeriodStart: liveRef.current.lastPeriod\n ? toIsoDate(liveRef.current.lastPeriod)\n : null,\n cycleLength: liveRef.current.cycleLength,\n periodLength: liveRef.current.periodLength,\n }),\n getResult: () => {\n const r = liveRef.current.result;\n if (!r) return null;\n return {\n ovulation: toIsoDate(r.ovulation),\n fertileWindow: {\n start: toIsoDate(r.fertileWindow.start),\n end: toIsoDate(r.fertileWindow.end),\n },\n nextPeriod: toIsoDate(r.nextPeriod),\n periodRange: r.periodRange\n ? {\n start: toIsoDate(r.periodRange.start),\n end: toIsoDate(r.periodRange.end),\n }\n : null,\n upcomingPeriods: r.upcomingPeriods.map(toIsoDate),\n };\n },\n setLastPeriod: (isoDate) => {\n if (isoDate === null) {\n setLastPeriod(undefined);\n return true;\n }\n const parsed = fromIsoDate(isoDate);\n // The DatePicker caps at today; the handle honours the same bound.\n if (!parsed || isAfter(parsed, new Date())) return false;\n setLastPeriod(parsed);\n return true;\n },\n setCycleLength: (days) => {\n if (!inRange(days, CYCLE_LENGTH_RANGE)) return false;\n setCycleLength(days);\n return true;\n },\n setPeriodLength: (days) => {\n if (!inRange(days, PERIOD_LENGTH_RANGE)) return false;\n setPeriodLength(days);\n return true;\n },\n }),\n [],\n );\n useAgentRegistration(cycleCalculatorAgent, agentHandle, id);\n\n const fmt = (d: Date): string => dateFormatter.format(d);\n\n return (\n <div\n ref={ref}\n data-component=\"cycle-calculator\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n <FormField label={t('cycleCalculator.lastPeriod')}>\n <DatePicker\n value={lastPeriod}\n onChange={setLastPeriod}\n maxDate={today}\n />\n </FormField>\n <FormField\n label={t('cycleCalculator.cycleLength')}\n description={t('cycleCalculator.cycleLengthHint')}\n >\n <NumberInput\n mode=\"integer\"\n min={CYCLE_LENGTH_RANGE.min}\n max={CYCLE_LENGTH_RANGE.max}\n value={cycleLength}\n onChange={setCycleLength}\n />\n </FormField>\n <FormField\n label={t('cycleCalculator.periodLength')}\n description={t('cycleCalculator.periodLengthHint')}\n >\n <NumberInput\n mode=\"integer\"\n min={PERIOD_LENGTH_RANGE.min}\n max={PERIOD_LENGTH_RANGE.max}\n value={periodLength}\n onChange={setPeriodLength}\n />\n </FormField>\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result\n ? `${t('cycleCalculator.ovulation')}: ${fmt(result.ovulation)}. ${t(\n 'cycleCalculator.nextPeriod',\n )}: ${fmt(result.nextPeriod)}.`\n : ''}\n </p>\n\n {result ? (\n <Card variant=\"elevated\">\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <dl className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3\">\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('cycleCalculator.ovulation')}\n </dt>\n <dd>\n <Badge\n variant=\"success\"\n size=\"lg\"\n leading={<Check aria-hidden />}\n >\n {fmt(result.ovulation)}\n </Badge>\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('cycleCalculator.fertileWindow')}\n </dt>\n <dd>\n <Badge\n variant=\"accent\"\n size=\"lg\"\n leading={<Heart aria-hidden />}\n >\n {fmt(result.fertileWindow.start)} –{' '}\n {fmt(result.fertileWindow.end)}\n </Badge>\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('cycleCalculator.nextPeriod')}\n </dt>\n <dd>\n <Badge\n variant=\"error\"\n size=\"lg\"\n leading={<Droplet aria-hidden />}\n >\n {fmt(result.nextPeriod)}\n </Badge>\n </dd>\n </div>\n </dl>\n\n {result.periodRange ? (\n <div className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('cycleCalculator.periodRange')}\n </span>\n <span className=\"type-body ds:text-foreground\">\n {fmt(result.periodRange.start)} –{' '}\n {fmt(result.periodRange.end)}\n </span>\n </div>\n ) : null}\n\n <div className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('cycleCalculator.upcomingPeriods')}\n </span>\n <ul className=\"ds:flex ds:flex-wrap ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-2xs)]\">\n {result.upcomingPeriods.map((d) => (\n <li\n key={d.getTime()}\n className=\"type-body ds:text-foreground\"\n >\n {fmt(d)}\n </li>\n ))}\n </ul>\n </div>\n\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n onInsert={onInsert}\n variant={insertVariant}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.cycle'),\n icon: 'heart',\n highlight: `${fmt(result.fertileWindow.start)} – ${fmt(\n result.fertileWindow.end,\n )}`,\n // Chip reuses the on-screen fertile-window badge's accent\n // token so the inserted PNG chip matches the screen.\n highlightToken: HIGHLIGHT_TOKEN,\n brand: insertBrand,\n fields: [\n {\n // Ovulation is a predicted date → calendar glyph (the\n // on-screen badge uses a Check tick, which ICON_GEOMETRY\n // does not carry, so the calendar reads the date meaning).\n icon: 'calendar',\n label: t('cycleCalculator.ovulation'),\n value: fmt(result.ovulation),\n },\n {\n // Fertile window → heart glyph, matching the on-screen\n // fertile-window badge's Heart icon.\n icon: 'heart',\n label: t('cycleCalculator.fertileWindow'),\n value: `${fmt(result.fertileWindow.start)} – ${fmt(\n result.fertileWindow.end,\n )}`,\n },\n {\n // Next period → droplets glyph, matching the on-screen\n // next-period badge's Droplet icon.\n icon: 'droplets',\n label: t('cycleCalculator.nextPeriod'),\n value: fmt(result.nextPeriod),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('cycleCalculator.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nCycleCalculator.displayName = 'CycleCalculator';\n"],"names":["__iconNode","Droplet","createLucideIcon","isoDate","cycleCalculatorAgent","handle","args","DEFAULT_CYCLE_LENGTH","LUTEAL_PHASE_DAYS","FERTILE_DAYS_AFTER","predictCycle","input","occurrences","cycle","lastPeriodStart","ovulation","addDays","fertileWindow","nextPeriod","upcomingPeriods","_","i","periodRange","rootVariants","cva","HIGHLIGHT_TOKEN","toIsoDate","d","format","fromIsoDate","iso","parseISO","CYCLE_LENGTH_RANGE","PERIOD_LENGTH_RANGE","inRange","n","min","max","CycleCalculator","forwardRef","defaultCycleLength","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","i18n","useTranslation","lastPeriod","setLastPeriod","useState","cycleLength","setCycleLength","periodLength","setPeriodLength","result","useMemo","dateFormatter","useEffect","today","liveRef","useRef","agentHandle","parsed","isAfter","days","useAgentRegistration","fmt","jsxs","jsx","FormField","DatePicker","NumberInput","Card","Badge","Check","Heart","InsertButton"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,15 +1,15 @@
1
1
  import { jsx as r, jsxs as v } from "react/jsx-runtime";
2
2
  import { forwardRef as se, useContext as ie, useState as y, useRef as K, useEffect as oe, useCallback as R, useMemo as le, useImperativeHandle as de } from "react";
3
3
  import { useTranslation as ce } from "react-i18next";
4
- import * as k from "@radix-ui/react-popover";
4
+ import * as b from "@radix-ui/react-popover";
5
5
  import { u as pe } from "./use-controllable-state-BiY4xTzM.js";
6
6
  import { u as ue, F as fe } from "./form-field-context-B3APVHKx.js";
7
7
  import { u as me } from "./registry-DvAUVLHh.js";
8
- import { u as he, g as ge, f as T, b as ve, c as ye, i as ke, t as be, d as Ce, p as De, D as Pe, C as Se, e as xe, h as we, j as Ie } from "./date-picker-variants-eL6HjWvw.js";
9
- import { C as Oe } from "./calendar-days-BGWklvE-.js";
10
- import { C as Ne } from "./check-DrFSN__t.js";
11
- import { p as Ve } from "./parse-DvA97ro9.js";
12
- import { i as Fe } from "./isSameDay-DUEiAT0G.js";
8
+ import { u as he, g as ge, b as ve, i as ye, c as be, t as ke, d as Ce, p as De, D as Pe, C as Se, e as xe, f as we } from "./date-picker-variants-pKAJfnWr.js";
9
+ import { f as T, i as Ie, b as Oe } from "./format-4HNwNGrN.js";
10
+ import { C as Ne } from "./calendar-days-BGWklvE-.js";
11
+ import { C as Ve } from "./check-DrFSN__t.js";
12
+ import { p as Fe } from "./parse-JqixfsU0.js";
13
13
  const Ae = {
14
14
  id: "date-picker",
15
15
  // Persisted single date (value state + set_date) → select_single + set_value,
@@ -105,7 +105,7 @@ const Ae = {
105
105
  maxDate: h,
106
106
  disabledDates: c,
107
107
  weekStartsOn: j,
108
- presets: b,
108
+ presets: k,
109
109
  size: x = "md",
110
110
  disabled: q,
111
111
  placeholder: B,
@@ -129,7 +129,7 @@ const Ae = {
129
129
  h,
130
130
  c
131
131
  ), Y = R(
132
- (e) => m && ye(e, m) || h && ke(e, h) ? !0 : Array.isArray(c) ? c.some(
132
+ (e) => m && ye(e, m) || h && be(e, h) ? !0 : Array.isArray(c) ? c.some(
133
133
  (t) => t.toDateString() === e.toDateString()
134
134
  ) : typeof c == "function" ? c(e) : !1,
135
135
  [m, h, c]
@@ -144,7 +144,7 @@ const Ae = {
144
144
  g(!1), o(void 0);
145
145
  return;
146
146
  }
147
- const l = Ve(t, f, /* @__PURE__ */ new Date(), { locale: u });
147
+ const l = Fe(t, f, /* @__PURE__ */ new Date(), { locale: u });
148
148
  Ie(l) && !Y(l) ? (g(!1), o(l), P(l)) : t.length === f.length && g(!0);
149
149
  }, $ = (e) => {
150
150
  e.key === "Enter" && i && (e.preventDefault(), s(!1)), e.key === "Escape" && i && (e.preventDefault(), s(!1)), e.key === "ArrowDown" && !i && (e.preventDefault(), s(!0));
@@ -155,7 +155,7 @@ const Ae = {
155
155
  var l;
156
156
  const t = e.date();
157
157
  o(t), P(t), s(!1), (l = S.current) == null || l.focus();
158
- }, ae = (e) => n ? Fe(e.date(), n) : !1, re = w("inputs.datePicker.gridLabel", "Calendar"), ne = le(
158
+ }, ae = (e) => n ? Oe(e.date(), n) : !1, re = w("inputs.datePicker.gridLabel", "Calendar"), ne = le(
159
159
  () => ({
160
160
  getValue: () => n,
161
161
  setValue: (e) => o(e),
@@ -166,7 +166,7 @@ const Ae = {
166
166
  }),
167
167
  [n, o, i]
168
168
  ), A = K(null);
169
- return de(W, () => A.current, []), me(Ae, ne, C), /* @__PURE__ */ r(k.Root, { open: i, onOpenChange: s, children: /* @__PURE__ */ v(
169
+ return de(W, () => A.current, []), me(Ae, ne, C), /* @__PURE__ */ r(b.Root, { open: i, onOpenChange: s, children: /* @__PURE__ */ v(
170
170
  "div",
171
171
  {
172
172
  ref: A,
@@ -175,7 +175,7 @@ const Ae = {
175
175
  "data-component-id": C,
176
176
  children: [
177
177
  /* @__PURE__ */ v("div", { className: "ds:relative", children: [
178
- /* @__PURE__ */ r(k.Trigger, { asChild: !0, disabled: N, children: /* @__PURE__ */ r(
178
+ /* @__PURE__ */ r(b.Trigger, { asChild: !0, disabled: N, children: /* @__PURE__ */ r(
179
179
  "input",
180
180
  {
181
181
  ref: S,
@@ -195,16 +195,16 @@ const Ae = {
195
195
  onChange: Z,
196
196
  onKeyDown: $,
197
197
  onClick: () => !i && s(!0),
198
- className: be({
198
+ className: ke({
199
199
  size: x,
200
200
  tone: F ? "error" : J
201
201
  })
202
202
  }
203
203
  ) }),
204
- /* @__PURE__ */ r("span", { "aria-hidden": "true", className: Ce({ size: x }), children: /* @__PURE__ */ r(Oe, {}) })
204
+ /* @__PURE__ */ r("span", { "aria-hidden": "true", className: Ce({ size: x }), children: /* @__PURE__ */ r(Ne, {}) })
205
205
  ] }),
206
- /* @__PURE__ */ r(k.Portal, { children: /* @__PURE__ */ r(
207
- k.Content,
206
+ /* @__PURE__ */ r(b.Portal, { children: /* @__PURE__ */ r(
207
+ b.Content,
208
208
  {
209
209
  sideOffset: 4,
210
210
  align: "start",
@@ -213,7 +213,7 @@ const Ae = {
213
213
  e.preventDefault();
214
214
  },
215
215
  children: /* @__PURE__ */ v("div", { className: "ds:flex ds:gap-[var(--spacing-md)]", children: [
216
- b && b.length > 0 ? /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:min-w-[8rem] ds:border-e ds:border-border ds:pe-[var(--spacing-md)]", children: b.map((e) => {
216
+ k && k.length > 0 ? /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:min-w-[8rem] ds:border-e ds:border-border ds:pe-[var(--spacing-md)]", children: k.map((e) => {
217
217
  const t = ae(e);
218
218
  return /* @__PURE__ */ v(
219
219
  "button",
@@ -225,7 +225,7 @@ const Ae = {
225
225
  children: [
226
226
  /* @__PURE__ */ r("span", { className: "ds:min-w-0 ds:truncate", children: e.label }),
227
227
  t ? /* @__PURE__ */ r(
228
- Ne,
228
+ Ve,
229
229
  {
230
230
  "aria-hidden": "true",
231
231
  className: "ds:size-4 ds:shrink-0 ds:text-primary"
@@ -266,4 +266,4 @@ export {
266
266
  Ke as D,
267
267
  Ae as d
268
268
  };
269
- //# sourceMappingURL=date-picker-ZHejTVAJ.js.map
269
+ //# sourceMappingURL=date-picker-Bp64zk2p.js.map