@alfadocs/ui-kit 0.48.0 → 0.49.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 (176) hide show
  1. package/dist/_chunks/{address-autocomplete-CSjMrBvu.js → address-autocomplete-CT-9AOli.js} +2 -2
  2. package/dist/_chunks/{ai-consent-banner-DO5ingMq.js → ai-consent-banner-F2md5JD3.js} +2 -2
  3. package/dist/_chunks/{ai-tools-rail-CxYG04cw.js → ai-tools-rail-CYLWrRmm.js} +6 -6
  4. package/dist/_chunks/{alert-ywPR59NE.js → alert-CUTxnym2.js} +56 -35
  5. package/dist/_chunks/antenatal-schedule-timeline-Dg0m0yFl.js +412 -0
  6. package/dist/_chunks/{ar-DEz65ZJW.js → ar-C68WKG5a.js} +2 -2
  7. package/dist/_chunks/{audio-recorder-DC-v9YFW.js → audio-recorder-DVJXV7_k.js} +2 -2
  8. package/dist/_chunks/bishop-score-2MzAz8NE.js +185 -0
  9. package/dist/_chunks/{booking-WV2GSru5.js → booking-DljH0JkS.js} +5 -5
  10. package/dist/_chunks/circle-arrow-up-CC_85SuH.js +16 -0
  11. package/dist/_chunks/cycle-calculator-oOkj5wlB.js +252 -0
  12. package/dist/_chunks/{date-picker-Bq7xhMA-.js → date-picker-BfHblqwA.js} +2 -2
  13. package/dist/_chunks/{date-picker-variants-DLi1Va_e.js → date-picker-variants-CXEAx3O_.js} +22 -22
  14. package/dist/_chunks/{date-range-picker-DcXuI9y7.js → date-range-picker-hcAMs1wO.js} +3 -3
  15. package/dist/_chunks/{date-time-picker-RimumeLR.js → date-time-picker-H-3Pwqlb.js} +9 -9
  16. package/dist/_chunks/{de-bTBGdjPS.js → de-DK4A9_a8.js} +2 -2
  17. package/dist/_chunks/{document-scanner-BqLsGs4Y.js → document-scanner-Cxqvq7GR.js} +2 -2
  18. package/dist/_chunks/due-date-calculator-tDqZXPWO.js +256 -0
  19. package/dist/_chunks/{editable-currency-cell-renderer-CLil9B29.js → editable-currency-cell-renderer-Bh48OHRv.js} +2 -2
  20. package/dist/_chunks/{el-BWG5RXxa.js → el-B29HXhG5.js} +2 -2
  21. package/dist/_chunks/{es-DfO_G435.js → es-BOwPVwWn.js} +2 -2
  22. package/dist/_chunks/fetal-weight-Da-B4P4k.js +122 -0
  23. package/dist/_chunks/{fr-BTn24bs8.js → fr-DoDBtn0T.js} +2 -2
  24. package/dist/_chunks/{freemium-paywall-DzpD63WY.js → freemium-paywall-BWaLWje-.js} +2 -2
  25. package/dist/_chunks/gestational-age-calculator-DbDfTJU2.js +311 -0
  26. package/dist/_chunks/hcg-doubling-DAnpbale.js +170 -0
  27. package/dist/_chunks/{hi-Dj3oYd84.js → hi-DGByrKby.js} +2 -2
  28. package/dist/_chunks/{isSameWeek-HfxKk6Lz.js → isSameWeek-B1odL2vR.js} +2 -2
  29. package/dist/_chunks/{it-Y85ofIQQ.js → it-B16rEecm.js} +3 -3
  30. package/dist/_chunks/{ja-CQ7J6YoA.js → ja-B0viOgft.js} +2 -2
  31. package/dist/_chunks/{marketplace-app-shell-Gfsf78ge.js → marketplace-app-shell-UKSLx9K_.js} +3 -3
  32. package/dist/_chunks/{nl-D9kHCmp3.js → nl-cBxEX2QU.js} +2 -2
  33. package/dist/_chunks/{patient-search-CocVcGJ3.js → patient-search-BJOmTmDA.js} +2 -2
  34. package/dist/_chunks/{patient-shell-CnT4L8gn.js → patient-shell-DUmhXnFq.js} +2 -2
  35. package/dist/_chunks/{payment-form-BNTx4876.js → payment-form-xmeCkxas.js} +2 -2
  36. package/dist/_chunks/{pdf-viewer-G8SU6Azw.js → pdf-viewer-q1D3Uion.js} +2 -2
  37. package/dist/_chunks/{pl-B3Smqpkr.js → pl-DtS08ioY.js} +3 -3
  38. package/dist/_chunks/{practice-results-BFL_mcDW.js → practice-results-Cq1y8JFD.js} +2 -2
  39. package/dist/_chunks/pregnancy-weight-gain-CCGrvarh.js +322 -0
  40. package/dist/_chunks/product-hub-panel-CkfZBA3t.js +620 -0
  41. package/dist/_chunks/{pt-D3J-1c_7.js → pt-yFXs1VvH.js} +2 -2
  42. package/dist/_chunks/{ro-BKAbbEA3.js → ro-DsCzSrzR.js} +2 -2
  43. package/dist/_chunks/{ru-BeG8f0Ep.js → ru-DgDxL0pc.js} +3 -3
  44. package/dist/_chunks/{sidebar-_vJXI9rB.js → sidebar-h78cTNLh.js} +440 -338
  45. package/dist/_chunks/{sign-document-DPI2pY9V.js → sign-document-CZkAf28g.js} +2 -2
  46. package/dist/_chunks/{sq-_hRPaeUy.js → sq-DHlCYN67.js} +2 -2
  47. package/dist/_chunks/subDays-Bs00akhK.js +8 -0
  48. package/dist/_chunks/{sv-g009fSpe.js → sv-O0QaQs_s.js} +2 -2
  49. package/dist/_chunks/{tr-OKUOuhMW.js → tr-BmNDRuio.js} +2 -2
  50. package/dist/_chunks/warning-stack-CXfoAT-_.js +220 -0
  51. package/dist/_chunks/{workflow-map-ZXw-zsZ8.js → workflow-map-DzX_LI4y.js} +2 -2
  52. package/dist/_chunks/{zh-CN-De4zwEhx.js → zh-CN-CgVJZEzz.js} +3 -3
  53. package/dist/agent-catalog.json +44 -1
  54. package/dist/components/_shared/antenatal-schedule-timeline.d.ts +18 -0
  55. package/dist/components/_shared/antenatal-schedule.d.ts +68 -0
  56. package/dist/components/_shared/index.d.ts +3 -0
  57. package/dist/components/_shared/obstetrics.d.ts +138 -0
  58. package/dist/components/address-autocomplete/index.js +1 -1
  59. package/dist/components/ai-consent-banner/index.js +1 -1
  60. package/dist/components/ai-tools-rail/index.js +1 -1
  61. package/dist/components/alert/alert.d.ts +2 -2
  62. package/dist/components/alert/index.js +1 -1
  63. package/dist/components/audio-recorder/index.js +1 -1
  64. package/dist/components/bishop-score/bishop-score.d.ts +27 -0
  65. package/dist/components/bishop-score/bishop.d.ts +30 -0
  66. package/dist/components/bishop-score/index.d.ts +4 -0
  67. package/dist/components/bishop-score/index.js +10 -0
  68. package/dist/components/booking/index.js +1 -1
  69. package/dist/components/cycle-calculator/cycle.d.ts +5 -0
  70. package/dist/components/cycle-calculator/index.js +1 -1
  71. package/dist/components/data-table/index.js +1 -1
  72. package/dist/components/date-picker/index.js +1 -1
  73. package/dist/components/date-range-picker/index.js +1 -1
  74. package/dist/components/date-time-picker/index.js +1 -1
  75. package/dist/components/document-scanner/index.js +1 -1
  76. package/dist/components/due-date-calculator/due-date-calculator.d.ts +13 -1
  77. package/dist/components/due-date-calculator/gestation.d.ts +1 -59
  78. package/dist/components/due-date-calculator/index.d.ts +1 -1
  79. package/dist/components/due-date-calculator/index.js +16 -10
  80. package/dist/components/fetal-weight/efw.d.ts +25 -0
  81. package/dist/components/fetal-weight/fetal-weight.d.ts +27 -0
  82. package/dist/components/fetal-weight/index.d.ts +4 -0
  83. package/dist/components/fetal-weight/index.js +6 -0
  84. package/dist/components/freemium-paywall/index.js +1 -1
  85. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +25 -1
  86. package/dist/components/gestational-age-calculator/index.js +1 -1
  87. package/dist/components/hcg-doubling/hcg-doubling.d.ts +31 -0
  88. package/dist/components/hcg-doubling/hcg.d.ts +33 -0
  89. package/dist/components/hcg-doubling/index.d.ts +4 -0
  90. package/dist/components/hcg-doubling/index.js +7 -0
  91. package/dist/components/index.d.ts +4 -0
  92. package/dist/components/patient-search/index.js +1 -1
  93. package/dist/components/payment-form/index.js +1 -1
  94. package/dist/components/pdf-viewer/index.js +1 -1
  95. package/dist/components/practice-results/index.js +1 -1
  96. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  97. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +7 -0
  98. package/dist/components/pregnancy-weight-gain/weight-gain.d.ts +33 -8
  99. package/dist/components/product-hub-tray/index.d.ts +8 -0
  100. package/dist/components/product-hub-tray/index.js +10 -0
  101. package/dist/components/product-hub-tray/product-hub-panel.agent.d.ts +4 -0
  102. package/dist/components/product-hub-tray/product-hub-panel.d.ts +54 -0
  103. package/dist/components/product-hub-tray/product-hub-tray.agent.d.ts +4 -0
  104. package/dist/components/product-hub-tray/product-hub-tray.d.ts +115 -0
  105. package/dist/components/sidebar/index.d.ts +2 -2
  106. package/dist/components/sidebar/index.js +12 -11
  107. package/dist/components/sidebar/sidebar.d.ts +14 -1
  108. package/dist/components/sign-document/index.js +1 -1
  109. package/dist/components/warning-stack/index.js +1 -1
  110. package/dist/components/workflow/index.js +1 -1
  111. package/dist/i18n/locales/ar.d.ts +210 -1
  112. package/dist/i18n/locales/ar.js +209 -2
  113. package/dist/i18n/locales/de.d.ts +210 -1
  114. package/dist/i18n/locales/de.js +209 -2
  115. package/dist/i18n/locales/el.d.ts +210 -1
  116. package/dist/i18n/locales/el.js +209 -2
  117. package/dist/i18n/locales/en.d.ts +210 -1
  118. package/dist/i18n/locales/en.js +209 -2
  119. package/dist/i18n/locales/es.d.ts +210 -1
  120. package/dist/i18n/locales/es.js +209 -2
  121. package/dist/i18n/locales/fr.d.ts +210 -1
  122. package/dist/i18n/locales/fr.js +209 -2
  123. package/dist/i18n/locales/hi.d.ts +210 -1
  124. package/dist/i18n/locales/hi.js +209 -2
  125. package/dist/i18n/locales/it.d.ts +210 -1
  126. package/dist/i18n/locales/it.js +209 -2
  127. package/dist/i18n/locales/ja.d.ts +210 -1
  128. package/dist/i18n/locales/ja.js +209 -2
  129. package/dist/i18n/locales/nl.d.ts +210 -1
  130. package/dist/i18n/locales/nl.js +209 -2
  131. package/dist/i18n/locales/pl.d.ts +210 -1
  132. package/dist/i18n/locales/pl.js +209 -2
  133. package/dist/i18n/locales/pt.d.ts +210 -1
  134. package/dist/i18n/locales/pt.js +209 -2
  135. package/dist/i18n/locales/ro.d.ts +210 -1
  136. package/dist/i18n/locales/ro.js +209 -2
  137. package/dist/i18n/locales/ru.d.ts +210 -1
  138. package/dist/i18n/locales/ru.js +209 -2
  139. package/dist/i18n/locales/sq.d.ts +210 -1
  140. package/dist/i18n/locales/sq.js +209 -2
  141. package/dist/i18n/locales/sv.d.ts +210 -1
  142. package/dist/i18n/locales/sv.js +209 -2
  143. package/dist/i18n/locales/tr.d.ts +210 -1
  144. package/dist/i18n/locales/tr.js +209 -2
  145. package/dist/i18n/locales/zh.d.ts +210 -1
  146. package/dist/i18n/locales/zh.js +209 -2
  147. package/dist/index.js +658 -631
  148. package/dist/locales/ar.json +211 -2
  149. package/dist/locales/de.json +211 -2
  150. package/dist/locales/el.json +211 -2
  151. package/dist/locales/en.json +211 -2
  152. package/dist/locales/es.json +211 -2
  153. package/dist/locales/fr.json +211 -2
  154. package/dist/locales/hi.json +211 -2
  155. package/dist/locales/it.json +211 -2
  156. package/dist/locales/ja.json +211 -2
  157. package/dist/locales/nl.json +211 -2
  158. package/dist/locales/pl.json +211 -2
  159. package/dist/locales/pt.json +211 -2
  160. package/dist/locales/ro.json +211 -2
  161. package/dist/locales/ru.json +211 -2
  162. package/dist/locales/sq.json +211 -2
  163. package/dist/locales/sv.json +211 -2
  164. package/dist/locales/tr.json +211 -2
  165. package/dist/locales/zh.json +211 -2
  166. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  167. package/dist/patterns/patient-shell/index.js +1 -1
  168. package/dist/tokens.css +1 -1
  169. package/package.json +17 -1
  170. package/dist/_chunks/cycle-calculator-DYvGm_m1.js +0 -211
  171. package/dist/_chunks/due-date-calculator-BXd3ANj7.js +0 -216
  172. package/dist/_chunks/gestation-mWF4AXea.js +0 -50
  173. package/dist/_chunks/gestational-age-calculator-Crj6FgZw.js +0 -203
  174. package/dist/_chunks/pregnancy-weight-gain-C7dK89jE.js +0 -246
  175. package/dist/_chunks/subDays-Dv7q9S7u.js +0 -8
  176. package/dist/_chunks/warning-stack-DNR3-IbP.js +0 -180
@@ -1,4 +1,4 @@
1
- import { q as s, r, v as i, w as d } from "./date-picker-variants-DLi1Va_e.js";
1
+ import { q as s, r, v as i, w as d } from "./date-picker-variants-CXEAx3O_.js";
2
2
  const h = {
3
3
  lessThanXSeconds: {
4
4
  one: "أقل من ثانية",
@@ -396,4 +396,4 @@ const h = {
396
396
  export {
397
397
  z as ar
398
398
  };
399
- //# sourceMappingURL=ar-DEz65ZJW.js.map
399
+ //# sourceMappingURL=ar-C68WKG5a.js.map
@@ -6,7 +6,7 @@ import { B as G } from "./button-DD_0Xdmr.js";
6
6
  import { I as N } from "./icon-button-CKEOrN37.js";
7
7
  import { S as pe } from "./select-hsCaJSX3.js";
8
8
  import { A as le } from "./audio-visualiser-l6zPd0AG.js";
9
- import { A as F } from "./alert-ywPR59NE.js";
9
+ import { A as F } from "./alert-CUTxnym2.js";
10
10
  import { u as me } from "./registry-nPAVE19X.js";
11
11
  import { M as fe } from "./mic-B4Gog3Gi.js";
12
12
  import { c as J } from "./createLucideIcon-CrFbzy84.js";
@@ -444,4 +444,4 @@ export {
444
444
  Ne as A,
445
445
  Re as a
446
446
  };
447
- //# sourceMappingURL=audio-recorder-DC-v9YFW.js.map
447
+ //# sourceMappingURL=audio-recorder-DVJXV7_k.js.map
@@ -0,0 +1,185 @@
1
+ import { jsxs as c, jsx as a } from "react/jsx-runtime";
2
+ import { forwardRef as $, useState as w, useMemo as L, useEffect as _ } from "react";
3
+ import { c as E } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as F } from "react-i18next";
5
+ import { F as I } from "./form-field-BOm9hK35.js";
6
+ import { S as P } from "./select-hsCaJSX3.js";
7
+ import { C as m } from "./card-DPmk26CL.js";
8
+ import { B as T } from "./badge-zsf5i5bH.js";
9
+ import { I as A } from "./insert-result-DNdi_JYW.js";
10
+ const b = [
11
+ "dilation",
12
+ "effacement",
13
+ "station",
14
+ "consistency",
15
+ "position"
16
+ ], v = {
17
+ dilation: [
18
+ { value: "closed", score: 0 },
19
+ { value: "1-2", score: 1 },
20
+ { value: "3-4", score: 2 },
21
+ { value: "5+", score: 3 }
22
+ ],
23
+ effacement: [
24
+ { value: "0-30", score: 0 },
25
+ { value: "40-50", score: 1 },
26
+ { value: "60-70", score: 2 },
27
+ { value: "80+", score: 3 }
28
+ ],
29
+ station: [
30
+ { value: "-3", score: 0 },
31
+ { value: "-2", score: 1 },
32
+ { value: "-1-0", score: 2 },
33
+ { value: "+1+2", score: 3 }
34
+ ],
35
+ consistency: [
36
+ { value: "firm", score: 0 },
37
+ { value: "medium", score: 1 },
38
+ { value: "soft", score: 2 }
39
+ ],
40
+ position: [
41
+ { value: "posterior", score: 0 },
42
+ { value: "mid", score: 1 },
43
+ { value: "anterior", score: 2 }
44
+ ]
45
+ }, f = 13;
46
+ function D(o) {
47
+ return o <= 6 ? "unfavourable" : o >= 8 ? "favourable" : "intermediate";
48
+ }
49
+ function H(o, l) {
50
+ var t;
51
+ return ((t = v[o].find((i) => i.value === l)) == null ? void 0 : t.score) ?? null;
52
+ }
53
+ function M(o) {
54
+ let l = 0;
55
+ for (const t of b) {
56
+ const i = o[t];
57
+ if (i === void 0) return null;
58
+ const d = H(t, i);
59
+ if (d === null) return null;
60
+ l += d;
61
+ }
62
+ return { total: l, band: D(l) };
63
+ }
64
+ const j = E("ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", {
65
+ variants: {
66
+ width: { full: "ds:w-full", auto: "ds:inline-flex" }
67
+ },
68
+ defaultVariants: { width: "full" }
69
+ }), V = {
70
+ unfavourable: "warning",
71
+ intermediate: "info",
72
+ favourable: "success"
73
+ }, k = {
74
+ unfavourable: "--warning-readable",
75
+ intermediate: "--info",
76
+ favourable: "--success"
77
+ }, z = $(
78
+ ({
79
+ onResultChange: o,
80
+ onInsert: l,
81
+ insertVariant: t = "insert",
82
+ onCopy: i,
83
+ onError: d,
84
+ insertBrand: h,
85
+ id: g,
86
+ width: S,
87
+ className: x
88
+ }, N) => {
89
+ const { t: e } = F(), [p, y] = w({}), s = L(() => M(p), [p]);
90
+ _(() => {
91
+ o == null || o(s);
92
+ }, [s, o]);
93
+ const B = (r) => v[r].map((u) => ({
94
+ value: u.value,
95
+ label: e(`bishopScore.${r}.${u.value}`)
96
+ })), n = (r) => e(`bishopScore.band.${r}`);
97
+ return /* @__PURE__ */ c(
98
+ "div",
99
+ {
100
+ ref: N,
101
+ "data-component": "bishop-score",
102
+ "data-component-id": g,
103
+ className: j({ width: S, className: x }),
104
+ children: [
105
+ /* @__PURE__ */ a("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2", children: b.map((r) => /* @__PURE__ */ a(
106
+ I,
107
+ {
108
+ label: e(`bishopScore.${r}.label`),
109
+ children: /* @__PURE__ */ a(
110
+ P,
111
+ {
112
+ options: B(r),
113
+ value: p[r] ?? "",
114
+ onValueChange: (u) => y((O) => ({ ...O, [r]: u }))
115
+ }
116
+ )
117
+ },
118
+ r
119
+ )) }),
120
+ /* @__PURE__ */ a("p", { className: "ds:sr-only", role: "status", "aria-live": "polite", children: s ? `${e("bishopScore.totalLabel")}: ${e("bishopScore.scoreOf", {
121
+ score: s.total,
122
+ max: f
123
+ })}. ${n(s.band)}.` : "" }),
124
+ s ? /* @__PURE__ */ a(m, { variant: "elevated", children: /* @__PURE__ */ c(m.Body, { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
125
+ /* @__PURE__ */ c("dl", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2", children: [
126
+ /* @__PURE__ */ c("div", { className: "ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]", children: [
127
+ /* @__PURE__ */ a("dt", { className: "type-label ds:text-muted-foreground", children: e("bishopScore.totalLabel") }),
128
+ /* @__PURE__ */ a("dd", { className: "type-metric ds:text-foreground", children: e("bishopScore.scoreOf", {
129
+ score: s.total,
130
+ max: f
131
+ }) })
132
+ ] }),
133
+ /* @__PURE__ */ c("div", { className: "ds:flex ds:flex-col ds:items-end ds:gap-[var(--spacing-xs)] ds:text-end", children: [
134
+ /* @__PURE__ */ a("dt", { className: "type-label ds:text-muted-foreground", children: e("bishopScore.bandLabel") }),
135
+ /* @__PURE__ */ a("dd", { children: /* @__PURE__ */ a(T, { variant: V[s.band], size: "lg", children: n(s.band) }) })
136
+ ] })
137
+ ] }),
138
+ /* @__PURE__ */ a("p", { className: "type-body-sm ds:text-muted-foreground", children: e(`bishopScore.interpretation.${s.band}`) }),
139
+ t === "copy" || l ? /* @__PURE__ */ a(
140
+ A,
141
+ {
142
+ onInsert: l,
143
+ variant: t,
144
+ onCopy: i,
145
+ onError: d,
146
+ card: {
147
+ title: e("insert.title.bishop"),
148
+ icon: "activity",
149
+ highlight: n(s.band),
150
+ highlightToken: k[s.band],
151
+ brand: h,
152
+ fields: [
153
+ {
154
+ icon: "percent",
155
+ label: e("bishopScore.totalLabel"),
156
+ value: e("bishopScore.scoreOf", {
157
+ score: s.total,
158
+ max: f
159
+ })
160
+ },
161
+ {
162
+ icon: "tag",
163
+ label: e("bishopScore.bandLabel"),
164
+ value: n(s.band)
165
+ }
166
+ ]
167
+ }
168
+ }
169
+ ) : null
170
+ ] }) }) : /* @__PURE__ */ a("p", { className: "type-body ds:text-muted-foreground", children: e("bishopScore.empty") })
171
+ ]
172
+ }
173
+ );
174
+ }
175
+ );
176
+ z.displayName = "BishopScore";
177
+ export {
178
+ b as B,
179
+ f as a,
180
+ v as b,
181
+ z as c,
182
+ D as d,
183
+ M as e
184
+ };
185
+ //# sourceMappingURL=bishop-score-2MzAz8NE.js.map
@@ -3,11 +3,11 @@ import { forwardRef as ot, useId as rt, useState as K, useCallback as j, useRef
3
3
  import { c as Pe } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as O, Trans as Pt } from "react-i18next";
5
5
  import { u as Ot } from "./registry-nPAVE19X.js";
6
- import { A as z } from "./alert-ywPR59NE.js";
6
+ import { A as z } from "./alert-CUTxnym2.js";
7
7
  import { B as ie } from "./button-DD_0Xdmr.js";
8
8
  import { C as Ke } from "./checkbox-DRcOdmXv.js";
9
9
  import { C as Bt } from "./checkbox-group-CpUwlHug.js";
10
- import { D as Et } from "./date-picker-Bq7xhMA-.js";
10
+ import { D as Et } from "./date-picker-BfHblqwA.js";
11
11
  import { E as Vt } from "./email-input-lQivsFrw.js";
12
12
  import { F as Z } from "./form-field-BOm9hK35.js";
13
13
  import { P as Lt } from "./phone-input-DfZbPPvh.js";
@@ -24,8 +24,8 @@ import { S as $t } from "./stepper-accordion-Dki6r9ZE.js";
24
24
  import { S as zt } from "./stepper-progress-DDjq5nei.js";
25
25
  import { p as F, S as Kt } from "./slot-grid-BlHHP9Qy.js";
26
26
  import { s as le, i as at } from "./isSameDay-DUEiAT0G.js";
27
- import { x as lt, i as ce, a as je, o as jt, h as ye, f as qt, j as Te, y as Me } from "./date-picker-variants-DLi1Va_e.js";
28
- import { s as Ht } from "./subDays-Dv7q9S7u.js";
27
+ import { x as lt, i as ce, a as je, o as jt, f as ye, d as qt, h as Te, y as Me } from "./date-picker-variants-CXEAx3O_.js";
28
+ import { s as Ht } from "./subDays-Bs00akhK.js";
29
29
  import { C as Gt } from "./chevron-left-CX1jqD2M.js";
30
30
  import { C as Ut } from "./chevron-right-BrpYejk0.js";
31
31
  import { c as L } from "./createLucideIcon-CrFbzy84.js";
@@ -2685,4 +2685,4 @@ export {
2685
2685
  X as O,
2686
2686
  Ma as b
2687
2687
  };
2688
- //# sourceMappingURL=booking-WV2GSru5.js.map
2688
+ //# sourceMappingURL=booking-DljH0JkS.js.map
@@ -0,0 +1,16 @@
1
+ import { c } from "./createLucideIcon-CrFbzy84.js";
2
+ /**
3
+ * @license lucide-react v1.8.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 r = [
9
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
10
+ ["path", { d: "m16 12-4-4-4 4", key: "177agl" }],
11
+ ["path", { d: "M12 16V8", key: "1sbj14" }]
12
+ ], o = c("circle-arrow-up", r);
13
+ export {
14
+ o as C
15
+ };
16
+ //# sourceMappingURL=circle-arrow-up-CC_85SuH.js.map
@@ -0,0 +1,252 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as A, useState as C, useMemo as N, useEffect as I } from "react";
3
+ import { c as S } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as k } from "react-i18next";
5
+ import { F as L } from "./form-field-BOm9hK35.js";
6
+ import { D as z } from "./date-picker-BfHblqwA.js";
7
+ import { N as D } from "./number-input-Dj5L3pXK.js";
8
+ import { C as E } from "./card-DPmk26CL.js";
9
+ import { B as P } from "./badge-zsf5i5bH.js";
10
+ import { I as B } from "./insert-result-DNdi_JYW.js";
11
+ import { a as i } from "./date-picker-variants-CXEAx3O_.js";
12
+ import { C as G } from "./check-DPdL_Sm7.js";
13
+ import { H as R } from "./heart-C0faivFf.js";
14
+ import { c as Y } from "./createLucideIcon-CrFbzy84.js";
15
+ /**
16
+ * @license lucide-react v1.8.0 - ISC
17
+ *
18
+ * This source code is licensed under the ISC license.
19
+ * See the LICENSE file in the root directory of this source tree.
20
+ */
21
+ const j = [
22
+ [
23
+ "path",
24
+ {
25
+ 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",
26
+ key: "c7niix"
27
+ }
28
+ ]
29
+ ], M = Y("droplet", j), b = 28, U = 14, K = 1;
30
+ function O(c, s = 3) {
31
+ const o = c.cycleLength ?? b, { lastPeriodStart: d } = c, n = i(d, o - U), g = {
32
+ start: i(n, -5),
33
+ end: i(n, K)
34
+ }, u = i(d, o), f = Array.from(
35
+ { length: s },
36
+ (w, y) => i(d, o * (y + 1))
37
+ ), h = c.periodLength && c.periodLength > 0 ? {
38
+ start: d,
39
+ end: i(d, c.periodLength - 1)
40
+ } : null;
41
+ return { nextPeriod: u, ovulation: n, fertileWindow: g, upcomingPeriods: f, periodRange: h };
42
+ }
43
+ const V = S("ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", {
44
+ variants: {
45
+ width: { full: "ds:w-full", auto: "ds:inline-flex" }
46
+ },
47
+ defaultVariants: { width: "full" }
48
+ }), q = "--accent", J = A(
49
+ ({
50
+ defaultCycleLength: c = b,
51
+ onResultChange: s,
52
+ onInsert: o,
53
+ insertVariant: d = "insert",
54
+ onCopy: n,
55
+ onError: g,
56
+ insertBrand: u,
57
+ id: f,
58
+ width: h,
59
+ className: w
60
+ }, y) => {
61
+ const { t, i18n: T } = k(), [m, _] = C(void 0), [x, H] = C(
62
+ c
63
+ ), [v, W] = C(null), a = N(() => m ? O({
64
+ lastPeriodStart: m,
65
+ cycleLength: x ?? b,
66
+ periodLength: v ?? void 0
67
+ }) : null, [m, x, v]), F = N(
68
+ () => new Intl.DateTimeFormat(T.language, { dateStyle: "medium" }),
69
+ [T.language]
70
+ );
71
+ I(() => {
72
+ s == null || s(a);
73
+ }, [a, s]);
74
+ const $ = N(() => /* @__PURE__ */ new Date(), []), l = (p) => F.format(p);
75
+ return /* @__PURE__ */ r(
76
+ "div",
77
+ {
78
+ ref: y,
79
+ "data-component": "cycle-calculator",
80
+ "data-component-id": f,
81
+ className: V({ width: h, className: w }),
82
+ children: [
83
+ /* @__PURE__ */ r("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2", children: [
84
+ /* @__PURE__ */ e(L, { label: t("cycleCalculator.lastPeriod"), children: /* @__PURE__ */ e(
85
+ z,
86
+ {
87
+ value: m,
88
+ onChange: _,
89
+ maxDate: $
90
+ }
91
+ ) }),
92
+ /* @__PURE__ */ e(
93
+ L,
94
+ {
95
+ label: t("cycleCalculator.cycleLength"),
96
+ description: t("cycleCalculator.cycleLengthHint"),
97
+ children: /* @__PURE__ */ e(
98
+ D,
99
+ {
100
+ mode: "integer",
101
+ min: 20,
102
+ max: 45,
103
+ value: x,
104
+ onChange: H
105
+ }
106
+ )
107
+ }
108
+ ),
109
+ /* @__PURE__ */ e(
110
+ L,
111
+ {
112
+ label: t("cycleCalculator.periodLength"),
113
+ description: t("cycleCalculator.periodLengthHint"),
114
+ children: /* @__PURE__ */ e(
115
+ D,
116
+ {
117
+ mode: "integer",
118
+ min: 1,
119
+ max: 14,
120
+ value: v,
121
+ onChange: W
122
+ }
123
+ )
124
+ }
125
+ )
126
+ ] }),
127
+ /* @__PURE__ */ e("p", { className: "ds:sr-only", role: "status", "aria-live": "polite", children: a ? `${t("cycleCalculator.ovulation")}: ${l(a.ovulation)}. ${t(
128
+ "cycleCalculator.nextPeriod"
129
+ )}: ${l(a.nextPeriod)}.` : "" }),
130
+ a ? /* @__PURE__ */ e(E, { variant: "elevated", children: /* @__PURE__ */ r(E.Body, { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
131
+ /* @__PURE__ */ r("dl", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3", children: [
132
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
133
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.ovulation") }),
134
+ /* @__PURE__ */ e("dd", { children: /* @__PURE__ */ e(
135
+ P,
136
+ {
137
+ variant: "success",
138
+ size: "lg",
139
+ leading: /* @__PURE__ */ e(G, { "aria-hidden": !0 }),
140
+ children: l(a.ovulation)
141
+ }
142
+ ) })
143
+ ] }),
144
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
145
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.fertileWindow") }),
146
+ /* @__PURE__ */ e("dd", { children: /* @__PURE__ */ r(
147
+ P,
148
+ {
149
+ variant: "accent",
150
+ size: "lg",
151
+ leading: /* @__PURE__ */ e(R, { "aria-hidden": !0 }),
152
+ children: [
153
+ l(a.fertileWindow.start),
154
+ " –",
155
+ " ",
156
+ l(a.fertileWindow.end)
157
+ ]
158
+ }
159
+ ) })
160
+ ] }),
161
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
162
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.nextPeriod") }),
163
+ /* @__PURE__ */ e("dd", { children: /* @__PURE__ */ e(
164
+ P,
165
+ {
166
+ variant: "error",
167
+ size: "lg",
168
+ leading: /* @__PURE__ */ e(M, { "aria-hidden": !0 }),
169
+ children: l(a.nextPeriod)
170
+ }
171
+ ) })
172
+ ] })
173
+ ] }),
174
+ a.periodRange ? /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]", children: [
175
+ /* @__PURE__ */ e("span", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.periodRange") }),
176
+ /* @__PURE__ */ r("span", { className: "type-body ds:text-foreground", children: [
177
+ l(a.periodRange.start),
178
+ " –",
179
+ " ",
180
+ l(a.periodRange.end)
181
+ ] })
182
+ ] }) : null,
183
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]", children: [
184
+ /* @__PURE__ */ e("span", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.upcomingPeriods") }),
185
+ /* @__PURE__ */ e("ul", { className: "ds:flex ds:flex-wrap ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-2xs)]", children: a.upcomingPeriods.map((p) => /* @__PURE__ */ e(
186
+ "li",
187
+ {
188
+ className: "type-body ds:text-foreground",
189
+ children: l(p)
190
+ },
191
+ p.getTime()
192
+ )) })
193
+ ] }),
194
+ d === "copy" || o ? /* @__PURE__ */ e(
195
+ B,
196
+ {
197
+ onInsert: o,
198
+ variant: d,
199
+ onCopy: n,
200
+ onError: g,
201
+ card: {
202
+ title: t("insert.title.cycle"),
203
+ icon: "heart",
204
+ highlight: `${l(a.fertileWindow.start)} – ${l(
205
+ a.fertileWindow.end
206
+ )}`,
207
+ // Chip reuses the on-screen fertile-window badge's accent
208
+ // token so the inserted PNG chip matches the screen.
209
+ highlightToken: q,
210
+ brand: u,
211
+ fields: [
212
+ {
213
+ // Ovulation is a predicted date → calendar glyph (the
214
+ // on-screen badge uses a Check tick, which ICON_GEOMETRY
215
+ // does not carry, so the calendar reads the date meaning).
216
+ icon: "calendar",
217
+ label: t("cycleCalculator.ovulation"),
218
+ value: l(a.ovulation)
219
+ },
220
+ {
221
+ // Fertile window → heart glyph, matching the on-screen
222
+ // fertile-window badge's Heart icon.
223
+ icon: "heart",
224
+ label: t("cycleCalculator.fertileWindow"),
225
+ value: `${l(a.fertileWindow.start)} – ${l(
226
+ a.fertileWindow.end
227
+ )}`
228
+ },
229
+ {
230
+ // Next period → droplets glyph, matching the on-screen
231
+ // next-period badge's Droplet icon.
232
+ icon: "droplets",
233
+ label: t("cycleCalculator.nextPeriod"),
234
+ value: l(a.nextPeriod)
235
+ }
236
+ ]
237
+ }
238
+ }
239
+ ) : null
240
+ ] }) }) : /* @__PURE__ */ e("p", { className: "type-body ds:text-muted-foreground", children: t("cycleCalculator.empty") })
241
+ ]
242
+ }
243
+ );
244
+ }
245
+ );
246
+ J.displayName = "CycleCalculator";
247
+ export {
248
+ J as C,
249
+ U as L,
250
+ O as p
251
+ };
252
+ //# sourceMappingURL=cycle-calculator-oOkj5wlB.js.map
@@ -7,7 +7,7 @@ import { useTranslation as Ee } from "react-i18next";
7
7
  import * as Z from "@radix-ui/react-popover";
8
8
  import { u as He } from "./use-controllable-state-BiY4xTzM.js";
9
9
  import { u as qe } from "./form-field-context-B3APVHKx.js";
10
- import { z as ce, A as Ce, s as S, B as ue, E as Le, F as Ne, a as le, G as de, H as Re, I as ae, J as Qe, K as ie, L as We, u as Ae, g as Fe, j as oe, c as Be, o as Ge, i as Ve, t as Xe, C as Ke, k as ze, p as Ze, D as $e, l as je, m as Ue, n as Je, M as Se } from "./date-picker-variants-DLi1Va_e.js";
10
+ import { z as ce, A as Ce, s as S, B as ue, E as Le, F as Ne, a as le, G as de, H as Re, I as ae, J as Qe, K as ie, L as We, u as Ae, g as Fe, h as oe, c as Be, o as Ge, i as Ve, t as Xe, C as Ke, k as ze, p as Ze, D as $e, l as je, m as Ue, n as Je, M as Se } from "./date-picker-variants-CXEAx3O_.js";
11
11
  import { u as et } from "./registry-nPAVE19X.js";
12
12
  import { t as E, c as O, m as tt, a as rt, b as nt } from "./isSameDay-DUEiAT0G.js";
13
13
  function st() {
@@ -1822,4 +1822,4 @@ export {
1822
1822
  nr as D,
1823
1823
  rr as d
1824
1824
  };
1825
- //# sourceMappingURL=date-picker-Bq7xhMA-.js.map
1825
+ //# sourceMappingURL=date-picker-BfHblqwA.js.map
@@ -3000,23 +3000,23 @@ function $s(e) {
3000
3000
  }
3001
3001
  const pt = {
3002
3002
  en: () => Promise.resolve().then(() => Er).then((e) => e.enUS),
3003
- it: () => import("./it-Y85ofIQQ.js").then((e) => e.it),
3004
- de: () => import("./de-bTBGdjPS.js").then((e) => e.de),
3005
- es: () => import("./es-DfO_G435.js").then((e) => e.es),
3006
- fr: () => import("./fr-BTn24bs8.js").then((e) => e.fr),
3007
- pt: () => import("./pt-D3J-1c_7.js").then((e) => e.pt),
3008
- nl: () => import("./nl-D9kHCmp3.js").then((e) => e.nl),
3009
- pl: () => import("./pl-B3Smqpkr.js").then((e) => e.pl),
3010
- ro: () => import("./ro-BKAbbEA3.js").then((e) => e.ro),
3011
- ru: () => import("./ru-BeG8f0Ep.js").then((e) => e.ru),
3012
- sv: () => import("./sv-g009fSpe.js").then((e) => e.sv),
3013
- el: () => import("./el-BWG5RXxa.js").then((e) => e.el),
3014
- ja: () => import("./ja-CQ7J6YoA.js").then((e) => e.ja),
3015
- zh: () => import("./zh-CN-De4zwEhx.js").then((e) => e.zhCN),
3016
- hi: () => import("./hi-Dj3oYd84.js").then((e) => e.hi),
3017
- ar: () => import("./ar-DEz65ZJW.js").then((e) => e.ar),
3018
- tr: () => import("./tr-OKUOuhMW.js").then((e) => e.tr),
3019
- sq: () => import("./sq-_hRPaeUy.js").then((e) => e.sq)
3003
+ it: () => import("./it-B16rEecm.js").then((e) => e.it),
3004
+ de: () => import("./de-DK4A9_a8.js").then((e) => e.de),
3005
+ es: () => import("./es-BOwPVwWn.js").then((e) => e.es),
3006
+ fr: () => import("./fr-DoDBtn0T.js").then((e) => e.fr),
3007
+ pt: () => import("./pt-yFXs1VvH.js").then((e) => e.pt),
3008
+ nl: () => import("./nl-cBxEX2QU.js").then((e) => e.nl),
3009
+ pl: () => import("./pl-DtS08ioY.js").then((e) => e.pl),
3010
+ ro: () => import("./ro-DsCzSrzR.js").then((e) => e.ro),
3011
+ ru: () => import("./ru-DgDxL0pc.js").then((e) => e.ru),
3012
+ sv: () => import("./sv-O0QaQs_s.js").then((e) => e.sv),
3013
+ el: () => import("./el-B29HXhG5.js").then((e) => e.el),
3014
+ ja: () => import("./ja-B0viOgft.js").then((e) => e.ja),
3015
+ zh: () => import("./zh-CN-CgVJZEzz.js").then((e) => e.zhCN),
3016
+ hi: () => import("./hi-DGByrKby.js").then((e) => e.hi),
3017
+ ar: () => import("./ar-C68WKG5a.js").then((e) => e.ar),
3018
+ tr: () => import("./tr-BmNDRuio.js").then((e) => e.tr),
3019
+ sq: () => import("./sq-DHlCYN67.js").then((e) => e.sq)
3020
3020
  };
3021
3021
  async function Ts(e) {
3022
3022
  const t = e.toLowerCase().split("-")[0];
@@ -3211,13 +3211,13 @@ export {
3211
3211
  xt as a,
3212
3212
  Rn as b,
3213
3213
  Vs as c,
3214
- Je as d,
3214
+ Kn as d,
3215
3215
  Bt as e,
3216
- Kn as f,
3216
+ Zn as f,
3217
3217
  Rs as g,
3218
- Zn as h,
3218
+ be as h,
3219
3219
  ta as i,
3220
- be as j,
3220
+ Je as j,
3221
3221
  Ks as k,
3222
3222
  Us as l,
3223
3223
  Qs as m,
@@ -3235,4 +3235,4 @@ export {
3235
3235
  ra as y,
3236
3236
  ve as z
3237
3237
  };
3238
- //# sourceMappingURL=date-picker-variants-DLi1Va_e.js.map
3238
+ //# sourceMappingURL=date-picker-variants-CXEAx3O_.js.map
@@ -4,8 +4,8 @@ import { useTranslation as ee } from "react-i18next";
4
4
  import * as f from "@radix-ui/react-popover";
5
5
  import { u as te } from "./use-controllable-state-BiY4xTzM.js";
6
6
  import { u as ae } from "./form-field-context-B3APVHKx.js";
7
- import { b as ne, u as re, g as se, c as oe, e as T, s as W, f as ie, h as de, j as v, d as ce, C as le, k as pe, t as ge, p as ue, D as me, l as fe, m as he, n as ke } from "./date-picker-variants-DLi1Va_e.js";
8
- import { s as R } from "./subDays-Dv7q9S7u.js";
7
+ import { b as ne, u as re, g as se, c as oe, e as T, s as W, d as ie, f as de, h as v, j as ce, C as le, k as pe, t as ge, p as ue, D as me, l as fe, m as he, n as ke } from "./date-picker-variants-CXEAx3O_.js";
8
+ import { s as R } from "./subDays-Bs00akhK.js";
9
9
  import { u as ye } from "./registry-nPAVE19X.js";
10
10
  function be(a, s, i) {
11
11
  return ne(a, -1, i);
@@ -285,4 +285,4 @@ export {
285
285
  Re as D,
286
286
  ve as d
287
287
  };
288
- //# sourceMappingURL=date-range-picker-DcXuI9y7.js.map
288
+ //# sourceMappingURL=date-range-picker-hcAMs1wO.js.map
@@ -6,15 +6,15 @@ import * as k from "@radix-ui/react-popover";
6
6
  import { u as me } from "./use-controllable-state-BiY4xTzM.js";
7
7
  import { u as pe } from "./form-field-context-B3APVHKx.js";
8
8
  import { T as fe } from "./time-picker-B5umYwfv.js";
9
- import { u as ge, c as he, o as ve, i as be, j as ye, C as Te, k as ke, t as we, D as De, l as Ce, m as Pe, n as xe } from "./date-picker-variants-DLi1Va_e.js";
9
+ import { u as ge, c as he, o as ve, i as be, h as ye, C as Te, k as ke, t as we, D as De, l as Ce, m as Pe, n as xe } from "./date-picker-variants-CXEAx3O_.js";
10
10
  import { u as Oe } from "./registry-nPAVE19X.js";
11
- import { t as j } from "./isSameDay-DUEiAT0G.js";
11
+ import { t as B } from "./isSameDay-DUEiAT0G.js";
12
12
  function K(e, t, r) {
13
- const i = j(e, r == null ? void 0 : r.in);
13
+ const i = B(e, r == null ? void 0 : r.in);
14
14
  return i.setHours(t), i;
15
15
  }
16
16
  function A(e, t, r) {
17
- const i = j(e, r == null ? void 0 : r.in);
17
+ const i = B(e, r == null ? void 0 : r.in);
18
18
  return i.setMinutes(t), i;
19
19
  }
20
20
  const Ne = {
@@ -134,8 +134,8 @@ const Se = ce(
134
134
  showTimezone: w,
135
135
  minDate: d,
136
136
  maxDate: p,
137
- hour12: B,
138
- minuteStep: Z = 1,
137
+ hour12: Z,
138
+ minuteStep: j = 1,
139
139
  size: f = "md",
140
140
  disabled: _,
141
141
  placeholder: z,
@@ -268,8 +268,8 @@ const Se = ce(
268
268
  minutes: o.getMinutes()
269
269
  } : { hours: 0, minutes: 0 },
270
270
  onChange: ae,
271
- hour12: B,
272
- minuteStep: Z,
271
+ hour12: Z,
272
+ minuteStep: j,
273
273
  size: f
274
274
  }
275
275
  ),
@@ -308,4 +308,4 @@ export {
308
308
  Ie as D,
309
309
  Ne as d
310
310
  };
311
- //# sourceMappingURL=date-time-picker-RimumeLR.js.map
311
+ //# sourceMappingURL=date-time-picker-H-3Pwqlb.js.map
@@ -1,4 +1,4 @@
1
- import { q as s, r as n, v as o, w as u } from "./date-picker-variants-DLi1Va_e.js";
1
+ import { q as s, r as n, v as o, w as u } from "./date-picker-variants-CXEAx3O_.js";
2
2
  const d = {
3
3
  lessThanXSeconds: {
4
4
  standalone: {
@@ -474,4 +474,4 @@ const d = {
474
474
  export {
475
475
  O as de
476
476
  };
477
- //# sourceMappingURL=de-bTBGdjPS.js.map
477
+ //# sourceMappingURL=de-DK4A9_a8.js.map