@alfadocs/ui-kit 0.37.0 → 0.38.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 (196) hide show
  1. package/dist/_chunks/Alfadocs_Logo_Mark-7o3L3WBI.js +56 -0
  2. package/dist/_chunks/{alia-sidebar-BEoMl6UL.js → alia-sidebar-DXsYPinm.js} +2 -2
  3. package/dist/_chunks/{ar-D1RwVZFj.js → ar-Cn_NxqkN.js} +2 -2
  4. package/dist/_chunks/bmi-BxD-tFzU.js +32 -0
  5. package/dist/_chunks/bmi-calculator-BRUru9QX.js +213 -0
  6. package/dist/_chunks/{booking-DqXsd1Mv.js → booking-DK_BPHnQ.js} +4 -4
  7. package/dist/_chunks/calculator-dialog-B74fqpFZ.js +40 -0
  8. package/dist/_chunks/{chat-message-D53_fH2w.js → chat-message-ASgGtj-L.js} +30 -39
  9. package/dist/_chunks/{contact-profile-card-BA6fgS45.js → contact-profile-card-DHyuAPXM.js} +14 -13
  10. package/dist/_chunks/cycle-calculator-B5Uj9QeT.js +185 -0
  11. package/dist/_chunks/{date-picker-CXFpu-qY.js → date-picker-CvQfs6Xh.js} +2 -2
  12. package/dist/_chunks/{date-range-picker-I-q5rifj.js → date-range-picker-U9fn1g9d.js} +3 -3
  13. package/dist/_chunks/{date-time-picker-CqpGPlcH.js → date-time-picker-Cva0ZCWw.js} +2 -2
  14. package/dist/_chunks/{de-HTQ4b4-J.js → de-BMM2H7Bs.js} +2 -2
  15. package/dist/_chunks/dependent-selector-CRWgieHm.js +324 -0
  16. package/dist/_chunks/document-scanner-CdHQ6lTN.js +702 -0
  17. package/dist/_chunks/due-date-calculator-CUspKSTw.js +171 -0
  18. package/dist/_chunks/{editable-currency-cell-renderer-DnjwZNZP.js → editable-currency-cell-renderer-DGKuRNVG.js} +2 -2
  19. package/dist/_chunks/{el-Dr1pjuDq.js → el-BYPonAaK.js} +2 -2
  20. package/dist/_chunks/{es-CvyTjLS0.js → es-CMkVCQ4F.js} +2 -2
  21. package/dist/_chunks/{file-upload-CdozCPct.js → file-upload-CnzRcErt.js} +2 -1
  22. package/dist/_chunks/fiscal-code-input-BZ0FxwUl.js +540 -0
  23. package/dist/_chunks/{fr-CS7aqaFR.js → fr-BcuWxqft.js} +2 -2
  24. package/dist/_chunks/gestation-BXEgDGmP.js +50 -0
  25. package/dist/_chunks/gestational-age-calculator-CsQ05qDy.js +165 -0
  26. package/dist/_chunks/heart-C0faivFf.js +20 -0
  27. package/dist/_chunks/{hi-3uy8KpsH.js → hi-wkq_rQAh.js} +2 -2
  28. package/dist/_chunks/image-C6RM5hfF.js +16 -0
  29. package/dist/_chunks/insert-result-yJ0QavoN.js +133 -0
  30. package/dist/_chunks/{isSameWeek-DRpMibi9.js → isSameWeek-Bim5ftRd.js} +2 -2
  31. package/dist/_chunks/{it-B_RF5VSw.js → it-GiQrQ9p4.js} +3 -3
  32. package/dist/_chunks/{ja-C1mEYy35.js → ja-qfYg3Rua.js} +2 -2
  33. package/dist/_chunks/{logo-_Z-jLq80.js → logo-yituK7sE.js} +42 -91
  34. package/dist/_chunks/{marketplace-app-shell-DXHxy9dj.js → marketplace-app-shell-BnClrL2B.js} +2 -2
  35. package/dist/_chunks/{nl-Dl7lO2t3.js → nl-xOogO4sZ.js} +2 -2
  36. package/dist/_chunks/{patient-shell-CDvMw_Nk.js → patient-shell-Bz3CdO84.js} +2 -2
  37. package/dist/_chunks/{pl-Dgsogljx.js → pl-GnOW6eGK.js} +3 -3
  38. package/dist/_chunks/{practice-results-BFM_lyUs.js → practice-results-C8ciLQap.js} +3 -2
  39. package/dist/_chunks/pregnancy-weight-gain-BCdi-JSv.js +209 -0
  40. package/dist/_chunks/{privacy-lock-DD-wHxBg.js → privacy-lock-BmX_gkvt.js} +2 -2
  41. package/dist/_chunks/{pt-Dm2JF4bc.js → pt-_bV5b5RW.js} +2 -2
  42. package/dist/_chunks/{public-footer.agent-Cjfe5jus.js → public-footer.agent-zw1vFin_.js} +2 -2
  43. package/dist/_chunks/qr-code-DNXhi6se.js +568 -0
  44. package/dist/_chunks/{react-day-picker-DYDdR8Vv.js → react-day-picker-CdtIiKjx.js} +24 -24
  45. package/dist/_chunks/{rich-text-editor-CHmr9Bz8.js → rich-text-editor-DLbg2852.js} +114 -124
  46. package/dist/_chunks/{ro-BXFZ_xIX.js → ro-BEcyh5Nj.js} +2 -2
  47. package/dist/_chunks/rotate-ccw-BWANpitO.js +15 -0
  48. package/dist/_chunks/{ru-BPQkNRRV.js → ru-Bi86hqMf.js} +3 -3
  49. package/dist/_chunks/session-countdown-LPnhTHjn.js +214 -0
  50. package/dist/_chunks/{shield-check-BhHyReu8.js → shield-check-C73ma9Cs.js} +8 -24
  51. package/dist/_chunks/{sign-in-with-alfadocs-button-BI0fVonM.js → sign-in-with-alfadocs-button-DeHBFRNS.js} +2 -2
  52. package/dist/_chunks/social-sign-in-button-X54ySJr1.js +243 -0
  53. package/dist/_chunks/{sq-ChTlGFcJ.js → sq-BujHSAWu.js} +2 -2
  54. package/dist/_chunks/subDays-_T9YeKPX.js +8 -0
  55. package/dist/_chunks/{sv-Do_gs6ir.js → sv-C8AeDrTA.js} +2 -2
  56. package/dist/_chunks/{tr-da_UnkYH.js → tr-CMSs_Vgf.js} +2 -2
  57. package/dist/_chunks/unit-converter-EUwO6QYq.js +168 -0
  58. package/dist/_chunks/wallet-pay-button-DK4ESYge.js +250 -0
  59. package/dist/_chunks/{zh-CN-C9qi5oak.js → zh-CN-eXB-PFu4.js} +3 -3
  60. package/dist/agent-catalog.json +203 -1
  61. package/dist/brand/provider-marks/apple-pay.d.ts +12 -0
  62. package/dist/brand/provider-marks/apple.d.ts +12 -0
  63. package/dist/brand/provider-marks/google-pay.d.ts +12 -0
  64. package/dist/brand/provider-marks/google.d.ts +13 -0
  65. package/dist/components/_shared/insert-result.d.ts +47 -0
  66. package/dist/components/bmi-calculator/bmi-calculator.d.ts +3 -0
  67. package/dist/components/bmi-calculator/index.js +6 -5
  68. package/dist/components/booking/index.js +1 -1
  69. package/dist/components/calculator-dialog/calculator-dialog.d.ts +26 -0
  70. package/dist/components/calculator-dialog/index.d.ts +3 -0
  71. package/dist/components/calculator-dialog/index.js +5 -0
  72. package/dist/components/chat-message/index.js +1 -1
  73. package/dist/components/contact-profile-card/index.js +1 -1
  74. package/dist/components/cycle-calculator/cycle-calculator.d.ts +21 -0
  75. package/dist/components/cycle-calculator/cycle.d.ts +37 -0
  76. package/dist/components/cycle-calculator/index.d.ts +4 -0
  77. package/dist/components/cycle-calculator/index.js +7 -0
  78. package/dist/components/data-table/index.js +1 -1
  79. package/dist/components/date-picker/index.js +1 -1
  80. package/dist/components/date-range-picker/index.js +1 -1
  81. package/dist/components/date-time-picker/index.js +1 -1
  82. package/dist/components/dependent-selector/dependent-selector.agent.d.ts +4 -0
  83. package/dist/components/dependent-selector/dependent-selector.d.ts +72 -0
  84. package/dist/components/dependent-selector/index.d.ts +4 -0
  85. package/dist/components/dependent-selector/index.js +6 -0
  86. package/dist/components/document-scanner/document-scanner.agent.d.ts +4 -0
  87. package/dist/components/document-scanner/document-scanner.d.ts +93 -0
  88. package/dist/components/document-scanner/index.d.ts +4 -0
  89. package/dist/components/document-scanner/index.js +6 -0
  90. package/dist/components/due-date-calculator/due-date-calculator.d.ts +3 -0
  91. package/dist/components/due-date-calculator/gestation.d.ts +16 -0
  92. package/dist/components/due-date-calculator/index.d.ts +1 -1
  93. package/dist/components/due-date-calculator/index.js +10 -7
  94. package/dist/components/file-upload/index.js +1 -1
  95. package/dist/components/fiscal-code-input/calculate-codice-fiscale.d.ts +24 -0
  96. package/dist/components/fiscal-code-input/fiscal-code-input.agent.d.ts +4 -0
  97. package/dist/components/fiscal-code-input/fiscal-code-input.d.ts +61 -0
  98. package/dist/components/fiscal-code-input/index.d.ts +6 -0
  99. package/dist/components/fiscal-code-input/index.js +11 -0
  100. package/dist/components/fiscal-code-input/is-valid-codice-fiscale.d.ts +21 -0
  101. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +27 -0
  102. package/dist/components/gestational-age-calculator/index.d.ts +3 -0
  103. package/dist/components/gestational-age-calculator/index.js +5 -0
  104. package/dist/components/index.d.ts +13 -0
  105. package/dist/components/logo/index.js +1 -1
  106. package/dist/components/practice-results/index.js +1 -1
  107. package/dist/components/pregnancy-weight-gain/index.d.ts +4 -0
  108. package/dist/components/pregnancy-weight-gain/index.js +9 -0
  109. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +19 -0
  110. package/dist/components/pregnancy-weight-gain/weight-gain.d.ts +41 -0
  111. package/dist/components/privacy-lock/index.js +1 -1
  112. package/dist/components/public-footer/index.js +1 -1
  113. package/dist/components/qr-code/index.d.ts +5 -0
  114. package/dist/components/qr-code/index.js +8 -0
  115. package/dist/components/qr-code/qr-code.agent.d.ts +3 -0
  116. package/dist/components/qr-code/qr-code.d.ts +59 -0
  117. package/dist/components/qr-code/qr-encode.d.ts +46 -0
  118. package/dist/components/rich-text-editor/index.js +1 -1
  119. package/dist/components/session-countdown/index.d.ts +4 -0
  120. package/dist/components/session-countdown/index.js +6 -0
  121. package/dist/components/session-countdown/session-countdown.agent.d.ts +3 -0
  122. package/dist/components/session-countdown/session-countdown.d.ts +38 -0
  123. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  124. package/dist/components/social-sign-in-button/index.d.ts +3 -0
  125. package/dist/components/social-sign-in-button/index.js +5 -0
  126. package/dist/components/social-sign-in-button/social-sign-in-button.d.ts +56 -0
  127. package/dist/components/unit-converter/index.d.ts +4 -0
  128. package/dist/components/unit-converter/index.js +9 -0
  129. package/dist/components/unit-converter/unit-converter.d.ts +21 -0
  130. package/dist/components/unit-converter/units.d.ts +18 -0
  131. package/dist/components/wallet-pay-button/index.d.ts +3 -0
  132. package/dist/components/wallet-pay-button/index.js +5 -0
  133. package/dist/components/wallet-pay-button/wallet-pay-button.d.ts +63 -0
  134. package/dist/i18n/locales/ar.d.ts +252 -0
  135. package/dist/i18n/locales/ar.js +249 -0
  136. package/dist/i18n/locales/de.d.ts +252 -0
  137. package/dist/i18n/locales/de.js +249 -0
  138. package/dist/i18n/locales/el.d.ts +252 -0
  139. package/dist/i18n/locales/el.js +249 -0
  140. package/dist/i18n/locales/en.d.ts +252 -0
  141. package/dist/i18n/locales/en.js +252 -0
  142. package/dist/i18n/locales/es.d.ts +252 -0
  143. package/dist/i18n/locales/es.js +249 -0
  144. package/dist/i18n/locales/fr.d.ts +252 -0
  145. package/dist/i18n/locales/fr.js +249 -0
  146. package/dist/i18n/locales/hi.d.ts +252 -0
  147. package/dist/i18n/locales/hi.js +249 -0
  148. package/dist/i18n/locales/it.d.ts +252 -0
  149. package/dist/i18n/locales/it.js +249 -0
  150. package/dist/i18n/locales/ja.d.ts +252 -0
  151. package/dist/i18n/locales/ja.js +245 -0
  152. package/dist/i18n/locales/nl.d.ts +252 -0
  153. package/dist/i18n/locales/nl.js +249 -0
  154. package/dist/i18n/locales/pl.d.ts +252 -0
  155. package/dist/i18n/locales/pl.js +249 -0
  156. package/dist/i18n/locales/pt.d.ts +252 -0
  157. package/dist/i18n/locales/pt.js +252 -0
  158. package/dist/i18n/locales/ro.d.ts +252 -0
  159. package/dist/i18n/locales/ro.js +249 -0
  160. package/dist/i18n/locales/ru.d.ts +252 -0
  161. package/dist/i18n/locales/ru.js +249 -0
  162. package/dist/i18n/locales/sq.d.ts +252 -0
  163. package/dist/i18n/locales/sq.js +249 -0
  164. package/dist/i18n/locales/sv.d.ts +252 -0
  165. package/dist/i18n/locales/sv.js +249 -0
  166. package/dist/i18n/locales/tr.d.ts +252 -0
  167. package/dist/i18n/locales/tr.js +249 -0
  168. package/dist/i18n/locales/zh.d.ts +252 -0
  169. package/dist/i18n/locales/zh.js +245 -0
  170. package/dist/index.js +587 -535
  171. package/dist/locales/ar.json +252 -0
  172. package/dist/locales/de.json +252 -0
  173. package/dist/locales/el.json +252 -0
  174. package/dist/locales/en.json +252 -0
  175. package/dist/locales/es.json +252 -0
  176. package/dist/locales/fr.json +252 -0
  177. package/dist/locales/hi.json +252 -0
  178. package/dist/locales/it.json +252 -0
  179. package/dist/locales/ja.json +252 -0
  180. package/dist/locales/nl.json +252 -0
  181. package/dist/locales/pl.json +252 -0
  182. package/dist/locales/pt.json +252 -0
  183. package/dist/locales/ro.json +252 -0
  184. package/dist/locales/ru.json +252 -0
  185. package/dist/locales/sq.json +252 -0
  186. package/dist/locales/sv.json +252 -0
  187. package/dist/locales/tr.json +252 -0
  188. package/dist/locales/zh.json +252 -0
  189. package/dist/patterns/alia-assistant/index.js +1 -1
  190. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  191. package/dist/patterns/patient-shell/index.js +1 -1
  192. package/dist/tokens.css +1 -1
  193. package/package.json +49 -1
  194. package/dist/_chunks/bmi-calculator-DQD5_nE-.js +0 -214
  195. package/dist/_chunks/due-date-calculator-kf9U_g7O.js +0 -173
  196. package/dist/_chunks/subDays-D-WYRpdW.js +0 -8
@@ -0,0 +1,185 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as D, useState as h, useMemo as y, useEffect as E } from "react";
3
+ import { c as _ } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as F } from "react-i18next";
5
+ import { F as C } from "./form-field-BOm9hK35.js";
6
+ import { D as A } from "./date-picker-CvQfs6Xh.js";
7
+ import { N as S } from "./number-input-Dj5L3pXK.js";
8
+ import { B as x } from "./badge-zsf5i5bH.js";
9
+ import { I as T } from "./insert-result-yJ0QavoN.js";
10
+ import { a as n } from "./react-day-picker-CdtIiKjx.js";
11
+ import { C as W } from "./check-DPdL_Sm7.js";
12
+ import { H as $ } from "./heart-C0faivFf.js";
13
+ import { c as H } from "./createLucideIcon-CrFbzy84.js";
14
+ /**
15
+ * @license lucide-react v1.8.0 - ISC
16
+ *
17
+ * This source code is licensed under the ISC license.
18
+ * See the LICENSE file in the root directory of this source tree.
19
+ */
20
+ const I = [
21
+ [
22
+ "path",
23
+ {
24
+ 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",
25
+ key: "c7niix"
26
+ }
27
+ ]
28
+ ], z = H("droplet", I), v = 28, k = 14, B = 1;
29
+ function Y(m, c = 3) {
30
+ const d = m.cycleLength ?? v, { lastPeriodStart: o } = m, i = n(o, d - k), u = {
31
+ start: n(i, -5),
32
+ end: n(i, B)
33
+ }, f = n(o, d), t = Array.from(
34
+ { length: c },
35
+ (p, s) => n(o, d * (s + 1))
36
+ );
37
+ return { nextPeriod: f, ovulation: i, fertileWindow: u, upcomingPeriods: t };
38
+ }
39
+ const j = _("ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", {
40
+ variants: {
41
+ width: { full: "ds:w-full", auto: "ds:inline-flex" }
42
+ },
43
+ defaultVariants: { width: "full" }
44
+ }), M = D(
45
+ ({
46
+ defaultCycleLength: m = v,
47
+ onResultChange: c,
48
+ onInsert: d,
49
+ id: o,
50
+ width: i,
51
+ className: u
52
+ }, f) => {
53
+ const { t, i18n: p } = F(), [s, N] = h(void 0), [g, L] = h(
54
+ m
55
+ ), a = y(() => s ? Y({
56
+ lastPeriodStart: s,
57
+ cycleLength: g ?? v
58
+ }) : null, [s, g]), P = y(
59
+ () => new Intl.DateTimeFormat(p.language, { dateStyle: "medium" }),
60
+ [p.language]
61
+ );
62
+ E(() => {
63
+ c == null || c(a);
64
+ }, [a, c]);
65
+ const w = y(() => /* @__PURE__ */ new Date(), []), l = (b) => P.format(b);
66
+ return /* @__PURE__ */ r(
67
+ "div",
68
+ {
69
+ ref: f,
70
+ "data-component": "cycle-calculator",
71
+ "data-component-id": o,
72
+ className: j({ width: i, className: u }),
73
+ children: [
74
+ /* @__PURE__ */ r("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2", children: [
75
+ /* @__PURE__ */ e(C, { label: t("cycleCalculator.lastPeriod"), children: /* @__PURE__ */ e(
76
+ A,
77
+ {
78
+ value: s,
79
+ onChange: N,
80
+ maxDate: w
81
+ }
82
+ ) }),
83
+ /* @__PURE__ */ e(
84
+ C,
85
+ {
86
+ label: t("cycleCalculator.cycleLength"),
87
+ description: t("cycleCalculator.cycleLengthHint"),
88
+ children: /* @__PURE__ */ e(
89
+ S,
90
+ {
91
+ mode: "integer",
92
+ min: 20,
93
+ max: 45,
94
+ value: g,
95
+ onChange: L
96
+ }
97
+ )
98
+ }
99
+ )
100
+ ] }),
101
+ /* @__PURE__ */ e("p", { className: "ds:sr-only", role: "status", "aria-live": "polite", children: a ? `${t("cycleCalculator.ovulation")}: ${l(a.ovulation)}. ${t(
102
+ "cycleCalculator.nextPeriod"
103
+ )}: ${l(a.nextPeriod)}.` : "" }),
104
+ a ? /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
105
+ /* @__PURE__ */ r("dl", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3", children: [
106
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
107
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.ovulation") }),
108
+ /* @__PURE__ */ e("dd", { children: /* @__PURE__ */ e(
109
+ x,
110
+ {
111
+ variant: "success",
112
+ size: "lg",
113
+ leading: /* @__PURE__ */ e(W, { "aria-hidden": !0 }),
114
+ children: l(a.ovulation)
115
+ }
116
+ ) })
117
+ ] }),
118
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
119
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.fertileWindow") }),
120
+ /* @__PURE__ */ e("dd", { children: /* @__PURE__ */ r(
121
+ x,
122
+ {
123
+ variant: "accent",
124
+ size: "lg",
125
+ leading: /* @__PURE__ */ e($, { "aria-hidden": !0 }),
126
+ children: [
127
+ l(a.fertileWindow.start),
128
+ " –",
129
+ " ",
130
+ l(a.fertileWindow.end)
131
+ ]
132
+ }
133
+ ) })
134
+ ] }),
135
+ /* @__PURE__ */ r("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
136
+ /* @__PURE__ */ e("dt", { className: "type-label ds:text-muted-foreground", children: t("cycleCalculator.nextPeriod") }),
137
+ /* @__PURE__ */ e("dd", { children: /* @__PURE__ */ e(
138
+ x,
139
+ {
140
+ variant: "error",
141
+ size: "lg",
142
+ leading: /* @__PURE__ */ e(z, { "aria-hidden": !0 }),
143
+ children: l(a.nextPeriod)
144
+ }
145
+ ) })
146
+ ] })
147
+ ] }),
148
+ d ? /* @__PURE__ */ e(
149
+ T,
150
+ {
151
+ onInsert: d,
152
+ card: {
153
+ title: t("insert.title.cycle"),
154
+ fields: [
155
+ {
156
+ label: t("cycleCalculator.ovulation"),
157
+ value: l(a.ovulation)
158
+ },
159
+ {
160
+ label: t("cycleCalculator.fertileWindow"),
161
+ value: `${l(a.fertileWindow.start)} – ${l(
162
+ a.fertileWindow.end
163
+ )}`
164
+ },
165
+ {
166
+ label: t("cycleCalculator.nextPeriod"),
167
+ value: l(a.nextPeriod)
168
+ }
169
+ ]
170
+ }
171
+ }
172
+ ) : null
173
+ ] }) : /* @__PURE__ */ e("p", { className: "type-body ds:text-muted-foreground", children: t("cycleCalculator.empty") })
174
+ ]
175
+ }
176
+ );
177
+ }
178
+ );
179
+ M.displayName = "CycleCalculator";
180
+ export {
181
+ M as C,
182
+ k as L,
183
+ Y as p
184
+ };
185
+ //# sourceMappingURL=cycle-calculator-B5Uj9QeT.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 { y as ce, z as Ce, s as S, A as ue, B as Le, E as Ne, a as le, F as de, G as Re, H as ae, I as Qe, J as ie, K as We, u as Ae, g as Fe, i as oe, c as Be, m as Ge, n as Ve, t as Xe, C as Ke, j as ze, p as Ze, D as $e, k as je, l as Ue, L as Je } from "./react-day-picker-DYDdR8Vv.js";
10
+ import { y as ce, z as Ce, s as S, A as ue, B as Le, E as Ne, a as le, F as de, G as Re, H as ae, I as Qe, J as ie, K as We, u as Ae, g as Fe, j as oe, c as Be, n 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, L as Je } from "./react-day-picker-CdtIiKjx.js";
11
11
  import { u as Se } from "./registry-nPAVE19X.js";
12
12
  import { t as E, c as O, m as et, a as tt, b as rt } from "./isSameDay-DUEiAT0G.js";
13
13
  function nt() {
@@ -1821,4 +1821,4 @@ export {
1821
1821
  rr as D,
1822
1822
  tr as d
1823
1823
  };
1824
- //# sourceMappingURL=date-picker-CXFpu-qY.js.map
1824
+ //# sourceMappingURL=date-picker-CvQfs6Xh.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, i as v, d as ce, C as le, j as pe, t as ge, p as ue, D as me, k as fe, l as he } from "./react-day-picker-DYDdR8Vv.js";
8
- import { s as R } from "./subDays-D-WYRpdW.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 } from "./react-day-picker-CdtIiKjx.js";
8
+ import { s as R } from "./subDays-_T9YeKPX.js";
9
9
  import { u as ke } from "./registry-nPAVE19X.js";
10
10
  function ye(a, s, i) {
11
11
  return ne(a, -1, i);
@@ -284,4 +284,4 @@ export {
284
284
  ve as D,
285
285
  be as d
286
286
  };
287
- //# sourceMappingURL=date-range-picker-I-q5rifj.js.map
287
+ //# sourceMappingURL=date-range-picker-U9fn1g9d.js.map
@@ -6,7 +6,7 @@ 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, m as ve, n as be, i as ye, C as Te, j as ke, t as we, D as De, k as Ce, l as Pe } from "./react-day-picker-DYDdR8Vv.js";
9
+ import { u as ge, c as he, n 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 } from "./react-day-picker-CdtIiKjx.js";
10
10
  import { u as xe } from "./registry-nPAVE19X.js";
11
11
  import { t as j } from "./isSameDay-DUEiAT0G.js";
12
12
  function K(e, t, r) {
@@ -307,4 +307,4 @@ export {
307
307
  Se as D,
308
308
  Oe as d
309
309
  };
310
- //# sourceMappingURL=date-time-picker-CqpGPlcH.js.map
310
+ //# sourceMappingURL=date-time-picker-Cva0ZCWw.js.map
@@ -1,4 +1,4 @@
1
- import { o as s, q as n, r as o, v as u } from "./react-day-picker-DYDdR8Vv.js";
1
+ import { o as s, q as n, r as o, v as u } from "./react-day-picker-CdtIiKjx.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-HTQ4b4-J.js.map
477
+ //# sourceMappingURL=de-BMM2H7Bs.js.map
@@ -0,0 +1,324 @@
1
+ import { jsx as s, jsxs as d } from "react/jsx-runtime";
2
+ import { forwardRef as le, useId as ce, useRef as f, useEffect as P, useMemo as E, useState as me } from "react";
3
+ import * as L from "@radix-ui/react-radio-group";
4
+ import { c as q } from "./index-D2ZczOXr.js";
5
+ import { useTranslation as pe } from "react-i18next";
6
+ import { A as ue } from "./avatar-BNQNhoyL.js";
7
+ import { B as fe } from "./badge-zsf5i5bH.js";
8
+ import { T as ge } from "./tooltip-DvmfrNvB.js";
9
+ import { c as ve } from "./compose-refs-C0k0tdqF.js";
10
+ import { u as be } from "./registry-nPAVE19X.js";
11
+ import { u as he } from "./use-direction-Dp8h70PP.js";
12
+ import { C as ye } from "./circle-alert-ChA9opNA.js";
13
+ const xe = {
14
+ id: "dependent-selector",
15
+ capabilities: ["select_single"],
16
+ state: {
17
+ value: {
18
+ type: "string",
19
+ descriptionKey: "ui.agent.dependentSelector.state.value",
20
+ description: "Id of the currently selected person, or empty string when none.",
21
+ read: (t) => t.getValue()
22
+ }
23
+ },
24
+ actions: {
25
+ set_value: {
26
+ safety: "write",
27
+ argsType: "{ value: string }",
28
+ descriptionKey: "ui.agent.dependentSelector.actions.setValue",
29
+ description: "Select the person row with the given id.",
30
+ invoke: (t, c) => {
31
+ t.setValue(c.value);
32
+ }
33
+ }
34
+ },
35
+ domHooks: {
36
+ root: {
37
+ attr: "data-component",
38
+ value: "dependent-selector",
39
+ description: "Marks the DependentSelector root (role=radiogroup)."
40
+ },
41
+ instanceId: {
42
+ attr: "data-component-id",
43
+ sourceProp: "id",
44
+ description: "Sourced from the id prop."
45
+ },
46
+ item: {
47
+ attr: "data-option-id",
48
+ description: "Stable person id emitted on each rendered person row."
49
+ }
50
+ }
51
+ }, we = q(
52
+ "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0",
53
+ {
54
+ variants: {
55
+ size: { sm: "", md: "", lg: "" },
56
+ tone: { default: "", checkin: "" }
57
+ },
58
+ defaultVariants: { size: "md", tone: "checkin" }
59
+ }
60
+ ), G = q(
61
+ [
62
+ // The row IS the Radix Item (`<button role="radio">`). Reset the
63
+ // button chrome, lay out avatar + text on the inline axis. Logical
64
+ // properties only.
65
+ "ds:group ds:flex ds:items-center ds:gap-[var(--spacing-md)] ds:w-full ds:text-start ds:appearance-none",
66
+ "ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-card",
67
+ // Touch-target floor: even sm clears AA/AAA (44 → 48px in accessible).
68
+ "ds:min-h-[var(--min-target-size)]",
69
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
70
+ // Selected state: low-alpha accent tint BEHIND tokenised text +
71
+ // a ring-coloured border (never accent as a foreground meeting text).
72
+ "ds:data-[state=checked]:border-ring",
73
+ // Roving focus ring on the item itself — single tab stop, arrow keys
74
+ // move focus+selection.
75
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
76
+ "ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
77
+ // Forced-colours: repaint a ButtonBorder edge + a Highlight checked
78
+ // edge + a CanvasText focus ring so the row + its checked state
79
+ // survive Windows High Contrast Mode.
80
+ "ds:forced-colors:border-[ButtonBorder]",
81
+ "ds:forced-colors:data-[state=checked]:border-[Highlight]",
82
+ "ds:forced-colors:focus-visible:outline-[CanvasText]"
83
+ ].join(" "),
84
+ {
85
+ variants: {
86
+ size: {
87
+ sm: "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-xs)]",
88
+ md: "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-sm)]",
89
+ lg: "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-lg)] ds:py-[var(--spacing-md)]"
90
+ },
91
+ tone: {
92
+ // Neutral RadioGroup-card tint for plain forms.
93
+ default: "ds:data-[state=checked]:bg-[color-mix(in_srgb,var(--accent)_5%,transparent)]",
94
+ // Accent-tinted selected surface tuned for the check-in kiosk —
95
+ // slightly stronger low-alpha mix BEHIND the tokenised foreground.
96
+ checkin: "ds:data-[state=checked]:bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]"
97
+ },
98
+ disabled: {
99
+ true: "ds:cursor-not-allowed ds:opacity-50",
100
+ false: "ds:cursor-pointer ds:hover:bg-[color-mix(in_srgb,var(--accent)_4%,transparent)]"
101
+ }
102
+ },
103
+ defaultVariants: { size: "md", tone: "checkin", disabled: !1 }
104
+ }
105
+ ), Ne = { sm: "sm", md: "md", lg: "lg" }, Se = {
106
+ sm: "ds:size-8",
107
+ md: "ds:size-10",
108
+ lg: "ds:size-12"
109
+ }, ze = {
110
+ sm: "type-body-sm",
111
+ md: "type-label",
112
+ lg: "type-body"
113
+ }, ke = le(
114
+ ({
115
+ people: t,
116
+ value: c,
117
+ defaultValue: g,
118
+ onValueChange: n,
119
+ label: v,
120
+ description: w,
121
+ size: F = "md",
122
+ tone: J = "checkin",
123
+ loading: r = !1,
124
+ error: m,
125
+ emptyState: O,
126
+ id: p,
127
+ className: Q,
128
+ "aria-label": N,
129
+ "aria-labelledby": z,
130
+ ...U
131
+ }, W) => {
132
+ const o = F ?? "md", S = J ?? "checkin", { t: a } = pe(), b = ce(), k = `${b}-legend`, B = `${b}-description`, R = `${b}-error`;
133
+ f(!1), P(() => {
134
+ }, [v, N, z]);
135
+ const I = E(
136
+ () => t.filter((e) => !e.disabled),
137
+ [t]
138
+ ), X = t.some(
139
+ (e) => e.relationshipKey !== "self"
140
+ ), u = I.length === 1 ? I[0].id : void 0, i = c !== void 0, [Y, Z] = me(
141
+ g ?? u ?? ""
142
+ ), A = i ? c ?? "" : Y, _ = f(A);
143
+ _.current = A;
144
+ const $ = (e) => {
145
+ r || (i || Z(e), n == null || n(e));
146
+ }, h = f(n);
147
+ h.current = n;
148
+ const D = f(!1);
149
+ P(() => {
150
+ var e;
151
+ !D.current && !i && !r && g === void 0 && u !== void 0 && (D.current = !0, (e = h.current) == null || e.call(h, u));
152
+ }, [i, r, g, u]);
153
+ const C = E(
154
+ () => ({
155
+ getValue: () => _.current,
156
+ setValue: (e) => $(e)
157
+ }),
158
+ // eslint-disable-next-line react-hooks/exhaustive-deps
159
+ [i, r, n]
160
+ );
161
+ be(xe, C, p);
162
+ const T = f(null), j = ve(W, T), ee = he(T), y = z ?? (v ? k : void 0), K = [w ? B : null, m ? R : null].filter(Boolean).join(" ") || void 0, V = (e) => a(`dependentSelector.relationship.${e}`), M = (e) => a("dependentSelector.age", { count: e }), se = (e) => {
163
+ const l = [a("dependentSelector.optionLabel", {
164
+ name: e.name,
165
+ relationship: V(e.relationshipKey)
166
+ })];
167
+ return typeof e.age == "number" && l.push(M(e.age)), e.isMinor && l.push(a("dependentSelector.minorBadge")), l.join(", ");
168
+ }, de = w ? /* @__PURE__ */ s("p", { id: B, className: "type-body-sm ds:text-muted-foreground", children: w }) : null, te = m ? /* @__PURE__ */ d(
169
+ "p",
170
+ {
171
+ id: R,
172
+ role: "alert",
173
+ className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive",
174
+ children: [
175
+ /* @__PURE__ */ s(ye, { "aria-hidden": "true", className: "ds:size-4 ds:shrink-0" }),
176
+ /* @__PURE__ */ s("span", { children: m })
177
+ ]
178
+ }
179
+ ) : null, ae = /* @__PURE__ */ s(
180
+ "div",
181
+ {
182
+ "aria-hidden": "true",
183
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]",
184
+ children: Array.from({ length: 3 }).map((e, x) => /* @__PURE__ */ d(
185
+ "div",
186
+ {
187
+ className: G({ size: o, tone: S, disabled: !1 }),
188
+ children: [
189
+ /* @__PURE__ */ s(
190
+ "span",
191
+ {
192
+ className: `ds:inline-flex ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-muted ds:animate-pulse ${Se[o]}`
193
+ }
194
+ ),
195
+ /* @__PURE__ */ d("span", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:min-w-0 ds:flex-1", children: [
196
+ /* @__PURE__ */ s("span", { className: "ds:h-4 ds:w-1/2 ds:rounded-[var(--radius-sm)] ds:bg-muted ds:animate-pulse" }),
197
+ /* @__PURE__ */ s("span", { className: "ds:h-3 ds:w-1/3 ds:rounded-[var(--radius-sm)] ds:bg-muted ds:animate-pulse" })
198
+ ] })
199
+ ]
200
+ },
201
+ x
202
+ ))
203
+ }
204
+ ), ie = (e) => {
205
+ const x = `${b}-row-${e.id}`, l = se(e), H = /* @__PURE__ */ d(
206
+ L.Item,
207
+ {
208
+ id: x,
209
+ value: e.id,
210
+ disabled: e.disabled,
211
+ "aria-label": l,
212
+ title: e.dob ?? void 0,
213
+ "data-option-id": e.id,
214
+ className: G({
215
+ size: o,
216
+ tone: S,
217
+ disabled: !!e.disabled
218
+ }),
219
+ children: [
220
+ /* @__PURE__ */ s(
221
+ ue,
222
+ {
223
+ src: e.avatarSrc,
224
+ name: e.name,
225
+ size: Ne[o],
226
+ "aria-hidden": "true"
227
+ }
228
+ ),
229
+ /* @__PURE__ */ d(
230
+ "span",
231
+ {
232
+ "aria-hidden": "true",
233
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:min-w-0 ds:flex-1",
234
+ children: [
235
+ /* @__PURE__ */ d("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)] ds:min-w-0", children: [
236
+ /* @__PURE__ */ s(
237
+ "span",
238
+ {
239
+ className: `${ze[o]} ds:text-foreground ds:truncate ds:min-w-0`,
240
+ children: e.name
241
+ }
242
+ ),
243
+ e.isMinor ? (
244
+ // Neutral chip (validated AA ~6:1) — the "Minor" flag is
245
+ // informational, not a warning STATE. The tonal `warning`
246
+ // variant fails AA at the small chip font size.
247
+ /* @__PURE__ */ s(fe, { variant: "neutral", size: "sm", children: a("dependentSelector.minorBadge") })
248
+ ) : null
249
+ ] }),
250
+ /* @__PURE__ */ d("span", { className: "type-body-sm ds:text-muted-foreground ds:truncate ds:min-w-0", children: [
251
+ V(e.relationshipKey),
252
+ typeof e.age == "number" ? ` · ${M(e.age)}` : null
253
+ ] })
254
+ ]
255
+ }
256
+ )
257
+ ]
258
+ },
259
+ e.id
260
+ );
261
+ return e.disabled && e.disabledReason ? /* @__PURE__ */ s(ge, { label: e.disabledReason, children: /* @__PURE__ */ s(
262
+ "span",
263
+ {
264
+ tabIndex: 0,
265
+ "data-disabled-row": e.id,
266
+ "aria-label": l,
267
+ className: "ds:flex ds:min-w-0 ds:rounded-[var(--radius-md)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
268
+ children: H
269
+ }
270
+ ) }, e.id) : H;
271
+ }, ne = O ?? /* @__PURE__ */ s("p", { className: "type-body-sm ds:text-muted-foreground", children: a("dependentSelector.empty") }), re = r ? /* @__PURE__ */ d(
272
+ "div",
273
+ {
274
+ ref: j,
275
+ id: p,
276
+ role: "radiogroup",
277
+ "aria-label": y ? void 0 : N,
278
+ "aria-labelledby": y,
279
+ "aria-describedby": K,
280
+ "aria-invalid": !!m || void 0,
281
+ "aria-busy": "true",
282
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0",
283
+ "data-component": "dependent-selector",
284
+ "data-component-id": p,
285
+ children: [
286
+ /* @__PURE__ */ s("span", { className: "ds:sr-only", children: a("dependentSelector.loadingLabel") }),
287
+ ae
288
+ ]
289
+ }
290
+ ) : /* @__PURE__ */ s(
291
+ L.Root,
292
+ {
293
+ ref: j,
294
+ id: p,
295
+ dir: ee,
296
+ value: i ? c ?? "" : void 0,
297
+ defaultValue: i ? void 0 : g ?? u,
298
+ onValueChange: $,
299
+ "aria-label": y ? void 0 : N,
300
+ "aria-labelledby": y,
301
+ "aria-describedby": K,
302
+ "aria-invalid": !!m || void 0,
303
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0",
304
+ "data-component": "dependent-selector",
305
+ "data-component-id": p,
306
+ ...U,
307
+ children: t.map(ie)
308
+ }
309
+ ), oe = we({ size: o, tone: S, className: Q });
310
+ return /* @__PURE__ */ d("div", { className: oe, children: [
311
+ v ? /* @__PURE__ */ s("div", { id: k, className: "type-label ds:text-foreground", children: v }) : null,
312
+ de,
313
+ re,
314
+ !r && !X ? ne : null,
315
+ te
316
+ ] });
317
+ }
318
+ );
319
+ ke.displayName = "DependentSelector";
320
+ export {
321
+ ke as D,
322
+ xe as d
323
+ };
324
+ //# sourceMappingURL=dependent-selector-CRWgieHm.js.map