@alfadocs/ui-kit-debug 0.43.0 → 0.45.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 (200) hide show
  1. package/dist/_chunks/{alia-sidebar-BpX4z_af.js → alia-sidebar-Be8FhKYd.js} +332 -237
  2. package/dist/_chunks/alia-sidebar-Be8FhKYd.js.map +1 -0
  3. package/dist/_chunks/{autocomplete-DIgdhCGJ.js → autocomplete-CDqxB68B.js} +2 -2
  4. package/dist/_chunks/{autocomplete-DIgdhCGJ.js.map → autocomplete-CDqxB68B.js.map} +1 -1
  5. package/dist/_chunks/bmi-calculator-CQqXTVNL.js +258 -0
  6. package/dist/_chunks/bmi-calculator-CQqXTVNL.js.map +1 -0
  7. package/dist/_chunks/{booking-CtLwaxkK.js → booking-DlDVuWMd.js} +2 -2
  8. package/dist/_chunks/{booking-CtLwaxkK.js.map → booking-DlDVuWMd.js.map} +1 -1
  9. package/dist/_chunks/{calculator-dialog-DdexHrTP.js → calculator-dialog-D-nfvteH.js} +2 -2
  10. package/dist/_chunks/{calculator-dialog-DdexHrTP.js.map → calculator-dialog-D-nfvteH.js.map} +1 -1
  11. package/dist/_chunks/{cycle-calculator-Dln-y1k_.js → cycle-calculator-KxA8dqDf.js} +73 -54
  12. package/dist/_chunks/cycle-calculator-KxA8dqDf.js.map +1 -0
  13. package/dist/_chunks/dialog-BTpZV6It.js +223 -0
  14. package/dist/_chunks/dialog-BTpZV6It.js.map +1 -0
  15. package/dist/_chunks/{due-date-calculator-Cc4dRqTI.js → due-date-calculator-mFxpHLml.js} +73 -49
  16. package/dist/_chunks/due-date-calculator-mFxpHLml.js.map +1 -0
  17. package/dist/_chunks/{editable-currency-cell-renderer-9jqwDv5x.js → editable-currency-cell-renderer-BEBUQl9P.js} +2 -2
  18. package/dist/_chunks/{editable-currency-cell-renderer-9jqwDv5x.js.map → editable-currency-cell-renderer-BEBUQl9P.js.map} +1 -1
  19. package/dist/_chunks/{freemium-paywall-BLXESpH4.js → freemium-paywall-BYist2sJ.js} +2 -2
  20. package/dist/_chunks/{freemium-paywall-BLXESpH4.js.map → freemium-paywall-BYist2sJ.js.map} +1 -1
  21. package/dist/_chunks/gestational-age-calculator-gWI_uRA1.js +203 -0
  22. package/dist/_chunks/gestational-age-calculator-gWI_uRA1.js.map +1 -0
  23. package/dist/_chunks/insert-result-C5ABnzDl.js +711 -0
  24. package/dist/_chunks/insert-result-C5ABnzDl.js.map +1 -0
  25. package/dist/_chunks/{marketplace-app-shell-Dc5cTIt8.js → marketplace-app-shell-Gfsf78ge.js} +2 -2
  26. package/dist/_chunks/{marketplace-app-shell-Dc5cTIt8.js.map → marketplace-app-shell-Gfsf78ge.js.map} +1 -1
  27. package/dist/_chunks/{patient-search-DPe2ZYEL.js → patient-search-CocVcGJ3.js} +2 -2
  28. package/dist/_chunks/{patient-search-DPe2ZYEL.js.map → patient-search-CocVcGJ3.js.map} +1 -1
  29. package/dist/_chunks/{payment-form-BzVsG6Ks.js → payment-form-DqEiEJRO.js} +247 -195
  30. package/dist/_chunks/payment-form-DqEiEJRO.js.map +1 -0
  31. package/dist/_chunks/{pdf-viewer-B6MC6VTx.js → pdf-viewer-CWEXTlwq.js} +2 -2
  32. package/dist/_chunks/{pdf-viewer-B6MC6VTx.js.map → pdf-viewer-CWEXTlwq.js.map} +1 -1
  33. package/dist/_chunks/{practice-results-CrLpEiiW.js → practice-results-DDi-kvaD.js} +2 -2
  34. package/dist/_chunks/{practice-results-CrLpEiiW.js.map → practice-results-DDi-kvaD.js.map} +1 -1
  35. package/dist/_chunks/{pregnancy-weight-gain-zZL5Ir2-.js → pregnancy-weight-gain-BtEHaSqy.js} +78 -56
  36. package/dist/_chunks/pregnancy-weight-gain-BtEHaSqy.js.map +1 -0
  37. package/dist/_chunks/{search-bar-CP6wUJFY.js → search-bar-CvN_S0jW.js} +2 -2
  38. package/dist/_chunks/{search-bar-CP6wUJFY.js.map → search-bar-CvN_S0jW.js.map} +1 -1
  39. package/dist/_chunks/{search-input-C1C3jQpD.js → search-input-D3aMvi4l.js} +2 -2
  40. package/dist/_chunks/{search-input-C1C3jQpD.js.map → search-input-D3aMvi4l.js.map} +1 -1
  41. package/dist/_chunks/{sign-document-B-3k_0LO.js → sign-document-BCyLpFHJ.js} +2 -2
  42. package/dist/_chunks/{sign-document-B-3k_0LO.js.map → sign-document-BCyLpFHJ.js.map} +1 -1
  43. package/dist/_chunks/{sign-in-with-alfadocs-button-DeHBFRNS.js → sign-in-with-alfadocs-button-CuYn_kKP.js} +2 -2
  44. package/dist/_chunks/{sign-in-with-alfadocs-button-DeHBFRNS.js.map → sign-in-with-alfadocs-button-CuYn_kKP.js.map} +1 -1
  45. package/dist/_chunks/{social-sign-in-button-X54ySJr1.js → social-sign-in-button-uJYLM366.js} +2 -2
  46. package/dist/_chunks/{social-sign-in-button-X54ySJr1.js.map → social-sign-in-button-uJYLM366.js.map} +1 -1
  47. package/dist/_chunks/{spinner-CCByyvcb.js → spinner-OjQNn8oN.js} +7 -3
  48. package/dist/_chunks/spinner-OjQNn8oN.js.map +1 -0
  49. package/dist/_chunks/{transcript-panel-CR7VY1uw.js → transcript-panel-B4HiC7ed.js} +2 -2
  50. package/dist/_chunks/{transcript-panel-CR7VY1uw.js.map → transcript-panel-B4HiC7ed.js.map} +1 -1
  51. package/dist/_chunks/{unit-converter-CuXCXJhK.js → unit-converter-u3CwNDpP.js} +96 -74
  52. package/dist/_chunks/unit-converter-u3CwNDpP.js.map +1 -0
  53. package/dist/_chunks/{wallet-pay-button-DK4ESYge.js → wallet-pay-button-DuDPBlCO.js} +2 -2
  54. package/dist/_chunks/{wallet-pay-button-DK4ESYge.js.map → wallet-pay-button-DuDPBlCO.js.map} +1 -1
  55. package/dist/agent-catalog.json +1 -1
  56. package/dist/components/_shared/banded-gauge.d.ts +193 -0
  57. package/dist/components/_shared/banded-gauge.d.ts.map +1 -0
  58. package/dist/components/_shared/index.d.ts +1 -1
  59. package/dist/components/_shared/index.d.ts.map +1 -1
  60. package/dist/components/_shared/insert-result.d.ts +173 -10
  61. package/dist/components/_shared/insert-result.d.ts.map +1 -1
  62. package/dist/components/autocomplete/index.js +1 -1
  63. package/dist/components/bmi-calculator/bmi-calculator.d.ts +6 -0
  64. package/dist/components/bmi-calculator/bmi-calculator.d.ts.map +1 -1
  65. package/dist/components/bmi-calculator/index.js +1 -1
  66. package/dist/components/booking/index.js +1 -1
  67. package/dist/components/calculator-dialog/index.js +1 -1
  68. package/dist/components/cycle-calculator/cycle-calculator.d.ts +6 -0
  69. package/dist/components/cycle-calculator/cycle-calculator.d.ts.map +1 -1
  70. package/dist/components/cycle-calculator/index.js +1 -1
  71. package/dist/components/data-table/index.js +1 -1
  72. package/dist/components/dialog/dialog.d.ts +1 -0
  73. package/dist/components/dialog/dialog.d.ts.map +1 -1
  74. package/dist/components/dialog/index.js +1 -1
  75. package/dist/components/due-date-calculator/due-date-calculator.d.ts +6 -0
  76. package/dist/components/due-date-calculator/due-date-calculator.d.ts.map +1 -1
  77. package/dist/components/due-date-calculator/index.js +1 -1
  78. package/dist/components/freemium-paywall/index.js +1 -1
  79. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +6 -0
  80. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts.map +1 -1
  81. package/dist/components/gestational-age-calculator/index.js +1 -1
  82. package/dist/components/index.d.ts +1 -1
  83. package/dist/components/index.d.ts.map +1 -1
  84. package/dist/components/patient-search/index.js +1 -1
  85. package/dist/components/payment-form/index.js +1 -1
  86. package/dist/components/payment-form/payment-form.d.ts +24 -2
  87. package/dist/components/payment-form/payment-form.d.ts.map +1 -1
  88. package/dist/components/pdf-viewer/index.js +1 -1
  89. package/dist/components/practice-results/index.js +1 -1
  90. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  91. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +6 -0
  92. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts.map +1 -1
  93. package/dist/components/search-bar/index.js +1 -1
  94. package/dist/components/search-input/index.js +1 -1
  95. package/dist/components/sign-document/index.js +1 -1
  96. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  97. package/dist/components/social-sign-in-button/index.js +1 -1
  98. package/dist/components/spinner/index.js +1 -1
  99. package/dist/components/spinner/spinner.d.ts +2 -2
  100. package/dist/components/spinner/spinner.d.ts.map +1 -1
  101. package/dist/components/transcript-panel/index.js +1 -1
  102. package/dist/components/unit-converter/index.js +1 -1
  103. package/dist/components/unit-converter/unit-converter.d.ts +6 -0
  104. package/dist/components/unit-converter/unit-converter.d.ts.map +1 -1
  105. package/dist/components/wallet-pay-button/index.js +1 -1
  106. package/dist/i18n/locales/ar.d.ts +1 -1
  107. package/dist/i18n/locales/ar.js +1 -1
  108. package/dist/i18n/locales/ar.js.map +1 -1
  109. package/dist/i18n/locales/de.d.ts +1 -1
  110. package/dist/i18n/locales/de.js +1 -1
  111. package/dist/i18n/locales/de.js.map +1 -1
  112. package/dist/i18n/locales/el.d.ts +1 -1
  113. package/dist/i18n/locales/el.js +1 -1
  114. package/dist/i18n/locales/el.js.map +1 -1
  115. package/dist/i18n/locales/en.d.ts +1 -1
  116. package/dist/i18n/locales/en.js +1 -1
  117. package/dist/i18n/locales/en.js.map +1 -1
  118. package/dist/i18n/locales/es.d.ts +1 -1
  119. package/dist/i18n/locales/es.js +1 -1
  120. package/dist/i18n/locales/es.js.map +1 -1
  121. package/dist/i18n/locales/fr.d.ts +1 -1
  122. package/dist/i18n/locales/fr.js +1 -1
  123. package/dist/i18n/locales/fr.js.map +1 -1
  124. package/dist/i18n/locales/hi.d.ts +1 -1
  125. package/dist/i18n/locales/hi.js +1 -1
  126. package/dist/i18n/locales/hi.js.map +1 -1
  127. package/dist/i18n/locales/it.d.ts +1 -1
  128. package/dist/i18n/locales/it.js +1 -1
  129. package/dist/i18n/locales/it.js.map +1 -1
  130. package/dist/i18n/locales/ja.d.ts +1 -1
  131. package/dist/i18n/locales/ja.js +1 -1
  132. package/dist/i18n/locales/ja.js.map +1 -1
  133. package/dist/i18n/locales/nl.d.ts +1 -1
  134. package/dist/i18n/locales/nl.js +1 -1
  135. package/dist/i18n/locales/nl.js.map +1 -1
  136. package/dist/i18n/locales/pl.d.ts +1 -1
  137. package/dist/i18n/locales/pl.js +1 -1
  138. package/dist/i18n/locales/pl.js.map +1 -1
  139. package/dist/i18n/locales/pt.d.ts +1 -1
  140. package/dist/i18n/locales/pt.js +1 -1
  141. package/dist/i18n/locales/pt.js.map +1 -1
  142. package/dist/i18n/locales/ro.d.ts +1 -1
  143. package/dist/i18n/locales/ro.js +1 -1
  144. package/dist/i18n/locales/ro.js.map +1 -1
  145. package/dist/i18n/locales/ru.d.ts +1 -1
  146. package/dist/i18n/locales/ru.js +1 -1
  147. package/dist/i18n/locales/ru.js.map +1 -1
  148. package/dist/i18n/locales/sq.d.ts +1 -1
  149. package/dist/i18n/locales/sq.js +1 -1
  150. package/dist/i18n/locales/sq.js.map +1 -1
  151. package/dist/i18n/locales/sv.d.ts +1 -1
  152. package/dist/i18n/locales/sv.js +1 -1
  153. package/dist/i18n/locales/sv.js.map +1 -1
  154. package/dist/i18n/locales/tr.d.ts +1 -1
  155. package/dist/i18n/locales/tr.js +1 -1
  156. package/dist/i18n/locales/tr.js.map +1 -1
  157. package/dist/i18n/locales/zh.d.ts +1 -1
  158. package/dist/i18n/locales/zh.js +1 -1
  159. package/dist/i18n/locales/zh.js.map +1 -1
  160. package/dist/index.js +497 -496
  161. package/dist/locales/ar.json +1 -1
  162. package/dist/locales/de.json +1 -1
  163. package/dist/locales/el.json +1 -1
  164. package/dist/locales/en.json +1 -1
  165. package/dist/locales/es.json +1 -1
  166. package/dist/locales/fr.json +1 -1
  167. package/dist/locales/hi.json +1 -1
  168. package/dist/locales/it.json +1 -1
  169. package/dist/locales/ja.json +1 -1
  170. package/dist/locales/nl.json +1 -1
  171. package/dist/locales/pl.json +1 -1
  172. package/dist/locales/pt.json +1 -1
  173. package/dist/locales/ro.json +1 -1
  174. package/dist/locales/ru.json +1 -1
  175. package/dist/locales/sq.json +1 -1
  176. package/dist/locales/sv.json +1 -1
  177. package/dist/locales/tr.json +1 -1
  178. package/dist/locales/zh.json +1 -1
  179. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  180. package/dist/patterns/alia-assistant/alia-types.d.ts +20 -0
  181. package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
  182. package/dist/patterns/alia-assistant/index.js +1 -1
  183. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  184. package/dist/tokens.css +1 -1
  185. package/package.json +1 -1
  186. package/dist/_chunks/alia-sidebar-BpX4z_af.js.map +0 -1
  187. package/dist/_chunks/bmi-calculator-DuVSFDuw.js +0 -259
  188. package/dist/_chunks/bmi-calculator-DuVSFDuw.js.map +0 -1
  189. package/dist/_chunks/cycle-calculator-Dln-y1k_.js.map +0 -1
  190. package/dist/_chunks/dialog-DOYgd75U.js +0 -224
  191. package/dist/_chunks/dialog-DOYgd75U.js.map +0 -1
  192. package/dist/_chunks/due-date-calculator-Cc4dRqTI.js.map +0 -1
  193. package/dist/_chunks/gestational-age-calculator-ZMSrzkRW.js +0 -179
  194. package/dist/_chunks/gestational-age-calculator-ZMSrzkRW.js.map +0 -1
  195. package/dist/_chunks/insert-result-DisOY2G-.js +0 -243
  196. package/dist/_chunks/insert-result-DisOY2G-.js.map +0 -1
  197. package/dist/_chunks/payment-form-BzVsG6Ks.js.map +0 -1
  198. package/dist/_chunks/pregnancy-weight-gain-zZL5Ir2-.js.map +0 -1
  199. package/dist/_chunks/spinner-CCByyvcb.js.map +0 -1
  200. package/dist/_chunks/unit-converter-CuXCXJhK.js.map +0 -1
@@ -0,0 +1,258 @@
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as Z, useId as aa, useState as r, useMemo as A, useEffect as ea } from "react";
3
+ import { c as la } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as ta } from "react-i18next";
5
+ import { R as H } from "./radio-TWf9Q-mp.js";
6
+ import { R as ia } from "./radio-group-CLjK-SlK.js";
7
+ import { F as D } from "./form-field-BOm9hK35.js";
8
+ import { N as p } from "./number-input-Dj5L3pXK.js";
9
+ import { C as M } from "./card-DPmk26CL.js";
10
+ import { B as na } from "./badge-zsf5i5bH.js";
11
+ import { B as ra, I as sa, b as oa } from "./insert-result-C5ABnzDl.js";
12
+ import { b as ca, e as ma, c as da, f as O, l as W, k as ua } from "./bmi-BxD-tFzU.js";
13
+ const ga = la("ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", {
14
+ variants: {
15
+ width: {
16
+ full: "ds:w-full",
17
+ auto: "ds:inline-flex"
18
+ }
19
+ },
20
+ defaultVariants: { width: "full" }
21
+ }), ba = {
22
+ underweight: "info",
23
+ normal: "success",
24
+ overweight: "warning",
25
+ obese: "error"
26
+ }, ha = {
27
+ underweight: "--info",
28
+ normal: "--success",
29
+ overweight: "--warning-readable",
30
+ obese: "--destructive"
31
+ }, f = (v) => Math.round(v * 10) / 10, pa = Z(
32
+ ({
33
+ defaultUnitSystem: v = "metric",
34
+ onResultChange: g,
35
+ onInsert: L,
36
+ insertVariant: N = "insert",
37
+ onCopy: j,
38
+ onError: z,
39
+ insertBrand: R,
40
+ id: U,
41
+ width: V,
42
+ className: Y
43
+ }, _) => {
44
+ const { t: a, i18n: w } = ta(), B = aa(), [s, q] = r(v), [b, F] = r(null), [h, I] = r(null), [o, T] = r(null), [c, k] = r(null), [m, $] = r(null), J = (C) => {
45
+ const u = C;
46
+ if (u !== s) {
47
+ if (u === "imperial") {
48
+ if (b !== null) {
49
+ const { ft: y, in: x } = da(b);
50
+ T(y), k(f(x));
51
+ }
52
+ h !== null && $(f(ua(h)));
53
+ } else
54
+ (o !== null || c !== null) && F(f(O(o ?? 0, c ?? 0))), m !== null && I(f(W(m)));
55
+ q(u);
56
+ }
57
+ }, P = s === "metric" ? b : o !== null || c !== null ? O(o ?? 0, c ?? 0) : null, Q = s === "metric" ? h : m !== null ? W(m) : null, i = ma(Q, P), t = i !== null ? ca(i) : null, G = A(
58
+ () => new Intl.NumberFormat(w.language, {
59
+ minimumFractionDigits: 1,
60
+ maximumFractionDigits: 1
61
+ }),
62
+ [w.language]
63
+ );
64
+ ea(() => {
65
+ g == null || g(
66
+ i !== null && t !== null ? { bmi: i, category: t } : null
67
+ );
68
+ }, [i, t, g]);
69
+ const d = s === "metric", l = A(() => {
70
+ if (i === null || t === null) return null;
71
+ const { bands: C, min: u, max: y, ticks: x } = oa(), S = G.format(i), E = a(`bmiCalculator.category.${t}`), K = a(`bmiCalculator.range.${t}`), X = a("bmiCalculator.gaugeAria", {
72
+ bmi: S,
73
+ category: E,
74
+ range: K
75
+ });
76
+ return {
77
+ value: i,
78
+ bands: C,
79
+ min: u,
80
+ max: y,
81
+ ticks: x,
82
+ valueLabel: S,
83
+ categoryLabel: E,
84
+ rangeLabel: K,
85
+ ariaLabel: X
86
+ };
87
+ }, [i, t, G, a]);
88
+ return /* @__PURE__ */ n(
89
+ "div",
90
+ {
91
+ ref: _,
92
+ "data-component": "bmi-calculator",
93
+ "data-component-id": U,
94
+ className: ga({ width: V, className: Y }),
95
+ children: [
96
+ /* @__PURE__ */ n(
97
+ ia,
98
+ {
99
+ label: a("bmiCalculator.unitSystem.label"),
100
+ variant: "horizontal",
101
+ value: s,
102
+ onValueChange: J,
103
+ children: [
104
+ /* @__PURE__ */ e(H, { label: a("bmiCalculator.unitSystem.metric"), value: "metric" }),
105
+ /* @__PURE__ */ e(
106
+ H,
107
+ {
108
+ label: a("bmiCalculator.unitSystem.imperial"),
109
+ value: "imperial"
110
+ }
111
+ )
112
+ ]
113
+ }
114
+ ),
115
+ /* @__PURE__ */ n("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2", children: [
116
+ d ? /* @__PURE__ */ e(
117
+ D,
118
+ {
119
+ label: `${a("bmiCalculator.height")} (${a("bmiCalculator.units.cm")})`,
120
+ children: /* @__PURE__ */ e(
121
+ p,
122
+ {
123
+ mode: "decimal",
124
+ min: 0,
125
+ step: 0.5,
126
+ value: b,
127
+ onChange: F
128
+ }
129
+ )
130
+ }
131
+ ) : /* @__PURE__ */ n("div", { role: "group", "aria-labelledby": B, children: [
132
+ /* @__PURE__ */ e(
133
+ "span",
134
+ {
135
+ id: B,
136
+ className: "type-label ds:mb-[var(--spacing-xs)] ds:block ds:text-foreground",
137
+ children: a("bmiCalculator.height")
138
+ }
139
+ ),
140
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
141
+ /* @__PURE__ */ e(
142
+ p,
143
+ {
144
+ mode: "integer",
145
+ min: 0,
146
+ value: o,
147
+ onChange: T,
148
+ "aria-label": a("bmiCalculator.feet")
149
+ }
150
+ ),
151
+ /* @__PURE__ */ e("span", { className: "type-label ds:text-muted-foreground", children: a("bmiCalculator.units.ft") }),
152
+ /* @__PURE__ */ e(
153
+ p,
154
+ {
155
+ mode: "decimal",
156
+ min: 0,
157
+ max: 11.9,
158
+ step: 0.5,
159
+ value: c,
160
+ onChange: k,
161
+ "aria-label": a("bmiCalculator.inches")
162
+ }
163
+ ),
164
+ /* @__PURE__ */ e("span", { className: "type-label ds:text-muted-foreground", children: a("bmiCalculator.units.in") })
165
+ ] })
166
+ ] }),
167
+ /* @__PURE__ */ e(
168
+ D,
169
+ {
170
+ label: `${a("bmiCalculator.weight")} (${a(
171
+ d ? "bmiCalculator.units.kg" : "bmiCalculator.units.lb"
172
+ )})`,
173
+ children: /* @__PURE__ */ e(
174
+ p,
175
+ {
176
+ mode: "decimal",
177
+ min: 0,
178
+ step: d ? 0.1 : 0.5,
179
+ value: d ? h : m,
180
+ onChange: d ? I : $
181
+ }
182
+ )
183
+ }
184
+ )
185
+ ] }),
186
+ /* @__PURE__ */ e("p", { className: "ds:sr-only", role: "status", "aria-live": "polite", children: l ? l.ariaLabel : "" }),
187
+ i !== null && t !== null && l !== null ? /* @__PURE__ */ e(M, { variant: "elevated", children: /* @__PURE__ */ n(M.Body, { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-md)]", children: [
188
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center", children: [
189
+ /* @__PURE__ */ e("span", { className: "type-label ds:text-muted-foreground", children: a("bmiCalculator.category.label") }),
190
+ /* @__PURE__ */ e(na, { variant: ba[t], size: "lg", children: a(`bmiCalculator.category.${t}`) }),
191
+ /* @__PURE__ */ e("p", { className: "type-body ds:text-muted-foreground", children: l.rangeLabel })
192
+ ] }),
193
+ /* @__PURE__ */ e(
194
+ "div",
195
+ {
196
+ "data-bmi-category": t,
197
+ className: "ds:w-full ds:max-w-[320px]",
198
+ children: /* @__PURE__ */ e(ra, { model: l, className: "ds:w-full" })
199
+ }
200
+ ),
201
+ N === "copy" || L ? /* @__PURE__ */ e(
202
+ sa,
203
+ {
204
+ onInsert: L,
205
+ variant: N,
206
+ onCopy: j,
207
+ onError: z,
208
+ card: {
209
+ title: a("insert.title.bmi"),
210
+ icon: "scale",
211
+ highlight: a(`bmiCalculator.category.${t}`),
212
+ // Chip shares the WHO-category semantic token so the
213
+ // inserted PNG chip matches the on-screen band colour.
214
+ highlightToken: ha[t],
215
+ brand: R,
216
+ // Banded gauge: the SAME geometry + WHO bands as the
217
+ // on-screen widget, baked into the card PNG with
218
+ // probe-resolved theme colours.
219
+ gauge: {
220
+ variant: "banded",
221
+ value: i,
222
+ bands: l.bands,
223
+ min: l.min,
224
+ max: l.max,
225
+ valueLabel: l.valueLabel,
226
+ categoryLabel: l.categoryLabel,
227
+ rangeLabel: l.rangeLabel,
228
+ ariaLabel: l.ariaLabel,
229
+ ticks: l.ticks
230
+ },
231
+ fields: [
232
+ {
233
+ // Mirrors the on-screen scale glyph + header icon.
234
+ icon: "scale",
235
+ label: a("insert.title.bmi"),
236
+ value: l.valueLabel
237
+ },
238
+ {
239
+ // WHO band is a classification → tag glyph.
240
+ icon: "tag",
241
+ label: a("bmiCalculator.category.label"),
242
+ value: l.categoryLabel
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ ) : null
248
+ ] }) }) : /* @__PURE__ */ e("p", { className: "type-body ds:text-muted-foreground", children: a("bmiCalculator.empty") })
249
+ ]
250
+ }
251
+ );
252
+ }
253
+ );
254
+ pa.displayName = "BmiCalculator";
255
+ export {
256
+ pa as B
257
+ };
258
+ //# sourceMappingURL=bmi-calculator-CQqXTVNL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bmi-calculator-CQqXTVNL.js","sources":["../../src/components/bmi-calculator/bmi-calculator.tsx"],"sourcesContent":["/* ------------------------------------------------------------------ */\n/* BmiCalculator — height + weight → WHO body-mass-index, shown on a */\n/* banded-linear gauge. */\n/* */\n/* - Maths + unit conversion live in `./bmi` (pure, separately tested). */\n/* - Metric ⇄ imperial toggle persists the entered figures across the */\n/* switch by converting them (a patient measured in lb/ft doesn't */\n/* lose their numbers when a clinician flips to kg/cm). */\n/* - The gauge is the shared `BandedGauge`: a horizontal WHO-banded bar */\n/* (15–40) with a marker at the BMI's x-position. The SAME geometry */\n/* bakes into the inserted result-card PNG (banded variant), so the */\n/* on-screen widget and the rasterised card never drift. The band */\n/* fills come from semantic tokens (`--info` / `--success` / */\n/* `--warning-readable` / `--destructive`) — the contrast-safe */\n/* `--warning-readable` token handles the overweight orange in every */\n/* theme, so no `getComputedStyle` arc-colour sampling is needed. */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useId, useMemo, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { RadioGroup, Radio } from '../radio-group';\nimport { FormField } from '../form-field';\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 { BandedGauge, bmiBands } from '../_shared/banded-gauge';\nimport {\n type UnitSystem,\n type BmiCategory,\n computeBmi,\n bmiCategory,\n cmToFtIn,\n ftInToCm,\n kgToLb,\n lbToKg,\n} from './bmi';\n\n/* ------------------------------------------------------------------ */\n/* Result payload emitted to consumers */\n/* ------------------------------------------------------------------ */\n\nexport interface BmiResult {\n /** BMI in kg/m². */\n bmi: number;\n /** WHO category the BMI falls into. */\n category: BmiCategory;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: {\n full: 'ds:w-full',\n auto: 'ds:inline-flex',\n },\n },\n defaultVariants: { width: 'full' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Category → semantic intent for the Stat headline */\n/* ------------------------------------------------------------------ */\n\nconst CATEGORY_BADGE: Record<\n BmiCategory,\n 'info' | 'success' | 'warning' | 'error'\n> = {\n underweight: 'info',\n normal: 'success',\n overweight: 'warning',\n obese: 'error',\n};\n\n/* ------------------------------------------------------------------ */\n/* Category → semantic band token. */\n/* */\n/* The four WHO bands carry these tokens both on-screen (the shared */\n/* `bmiBands()` definition fills each zone with the same name) and in */\n/* the card chip's `highlightToken`. `overweight` uses */\n/* `--warning-readable` — the kit's contrast-safe orange that already */\n/* resolves correctly per theme (orange-600 in light/non-accessible, */\n/* `--warning` elsewhere), so NO `getComputedStyle` arc sampling or */\n/* `document.documentElement` override is needed. */\n/* ------------------------------------------------------------------ */\n\nconst CATEGORY_TOKEN: Record<BmiCategory, string> = {\n underweight: '--info',\n normal: '--success',\n overweight: '--warning-readable',\n obese: '--destructive',\n};\n\nexport interface BmiCalculatorProps extends VariantProps<typeof rootVariants> {\n /** Initial unit system. Defaults to `'metric'`. */\n defaultUnitSystem?: UnitSystem;\n /** Fires whenever a valid BMI can be computed (and with `null` when it can't). */\n onResultChange?: (result: BmiResult | null) => void;\n /** When provided, shows an \"Insert\" button that emits the result for an editor. */\n onInsert?: (payload: InsertPayload) => void;\n /**\n * Which verb the result button performs. Defaults to `'insert'`.\n * Use `'copy'` in an app-shell surface (no editor to insert into) — the\n * button writes the result to the clipboard as a multi-format `ClipboardItem`.\n */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /**\n * Brand wordmark printed in the inserted/copied result-card footer.\n * Omitted → no brand line (and no footer hairline); a string → that custom\n * brand; `false` → no brand line. Brand is opt-in.\n */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\n/** Round to one decimal place — used when seeding a unit-switch. */\nconst round1 = (n: number): number => Math.round(n * 10) / 10;\n\nexport const BmiCalculator = forwardRef<HTMLDivElement, BmiCalculatorProps>(\n (\n {\n defaultUnitSystem = 'metric',\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 const heightGroupId = useId();\n\n const [unitSystem, setUnitSystem] = useState<UnitSystem>(defaultUnitSystem);\n\n // Raw per-system inputs. Metric is canonical for cm/kg; imperial keeps\n // ft + in + lb so typing isn't fought by rounding round-trips.\n const [heightCm, setHeightCm] = useState<number | null>(null);\n const [weightKg, setWeightKg] = useState<number | null>(null);\n const [heightFt, setHeightFt] = useState<number | null>(null);\n const [heightIn, setHeightIn] = useState<number | null>(null);\n const [weightLb, setWeightLb] = useState<number | null>(null);\n\n const handleUnitChange = (next: string): void => {\n const target = next as UnitSystem;\n if (target === unitSystem) return;\n if (target === 'imperial') {\n if (heightCm !== null) {\n const { ft, in: inches } = cmToFtIn(heightCm);\n setHeightFt(ft);\n setHeightIn(round1(inches));\n }\n if (weightKg !== null) setWeightLb(round1(kgToLb(weightKg)));\n } else {\n if (heightFt !== null || heightIn !== null) {\n setHeightCm(round1(ftInToCm(heightFt ?? 0, heightIn ?? 0)));\n }\n if (weightLb !== null) setWeightKg(round1(lbToKg(weightLb)));\n }\n setUnitSystem(target);\n };\n\n /* Canonical metric figures for the active system. */\n const canonicalHeightCm =\n unitSystem === 'metric'\n ? heightCm\n : heightFt !== null || heightIn !== null\n ? ftInToCm(heightFt ?? 0, heightIn ?? 0)\n : null;\n const canonicalWeightKg =\n unitSystem === 'metric'\n ? weightKg\n : weightLb !== null\n ? lbToKg(weightLb)\n : null;\n\n const bmi = computeBmi(canonicalWeightKg, canonicalHeightCm);\n const category = bmi !== null ? bmiCategory(bmi) : null;\n\n const bmiFormatter = useMemo(\n () =>\n new Intl.NumberFormat(i18n.language, {\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }),\n [i18n.language],\n );\n\n // Notify consumers without re-firing on unrelated re-renders.\n useEffect(() => {\n onResultChange?.(\n bmi !== null && category !== null ? { bmi, category } : null,\n );\n }, [bmi, category, onResultChange]);\n\n const isMetric = unitSystem === 'metric';\n\n // Pre-translated gauge labels, shared by the on-screen widget and the\n // inserted card so both surfaces read identically. The shared `BandedGauge`\n // is i18n-agnostic — every visible string arrives already through `t()`.\n const gauge = useMemo(() => {\n if (bmi === null || category === null) return null;\n const { bands, min, max, ticks } = bmiBands();\n const valueLabel = bmiFormatter.format(bmi);\n const categoryLabel = t(`bmiCalculator.category.${category}`);\n const rangeLabel = t(`bmiCalculator.range.${category}`);\n const ariaLabel = t('bmiCalculator.gaugeAria', {\n bmi: valueLabel,\n category: categoryLabel,\n range: rangeLabel,\n });\n return {\n value: bmi,\n bands,\n min,\n max,\n ticks,\n valueLabel,\n categoryLabel,\n rangeLabel,\n ariaLabel,\n };\n }, [bmi, category, bmiFormatter, t]);\n\n return (\n <div\n ref={ref}\n data-component=\"bmi-calculator\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <RadioGroup\n label={t('bmiCalculator.unitSystem.label')}\n variant=\"horizontal\"\n value={unitSystem}\n onValueChange={handleUnitChange}\n >\n <Radio label={t('bmiCalculator.unitSystem.metric')} value=\"metric\" />\n <Radio\n label={t('bmiCalculator.unitSystem.imperial')}\n value=\"imperial\"\n />\n </RadioGroup>\n\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n {isMetric ? (\n <FormField\n label={`${t('bmiCalculator.height')} (${t('bmiCalculator.units.cm')})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.5}\n value={heightCm}\n onChange={setHeightCm}\n />\n </FormField>\n ) : (\n <div role=\"group\" aria-labelledby={heightGroupId}>\n <span\n id={heightGroupId}\n className=\"type-label ds:mb-[var(--spacing-xs)] ds:block ds:text-foreground\"\n >\n {t('bmiCalculator.height')}\n </span>\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n <NumberInput\n mode=\"integer\"\n min={0}\n value={heightFt}\n onChange={setHeightFt}\n aria-label={t('bmiCalculator.feet')}\n />\n <span className=\"type-label ds:text-muted-foreground\">\n {t('bmiCalculator.units.ft')}\n </span>\n <NumberInput\n mode=\"decimal\"\n min={0}\n max={11.9}\n step={0.5}\n value={heightIn}\n onChange={setHeightIn}\n aria-label={t('bmiCalculator.inches')}\n />\n <span className=\"type-label ds:text-muted-foreground\">\n {t('bmiCalculator.units.in')}\n </span>\n </div>\n </div>\n )}\n\n <FormField\n label={`${t('bmiCalculator.weight')} (${t(\n isMetric ? 'bmiCalculator.units.kg' : 'bmiCalculator.units.lb',\n )})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={isMetric ? 0.1 : 0.5}\n value={isMetric ? weightKg : weightLb}\n onChange={isMetric ? setWeightKg : setWeightLb}\n />\n </FormField>\n </div>\n\n {/* Concise polite announcement when the result resolves — the gauge\n itself stays out of the live region to avoid re-reading on every\n keystroke. */}\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {gauge ? gauge.ariaLabel : ''}\n </p>\n\n {bmi !== null && category !== null && gauge !== null ? (\n <Card variant=\"elevated\">\n <Card.Body className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-md)]\">\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)] ds:text-center\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('bmiCalculator.category.label')}\n </span>\n <Badge variant={CATEGORY_BADGE[category]} size=\"lg\">\n {t(`bmiCalculator.category.${category}`)}\n </Badge>\n <p className=\"type-body ds:text-muted-foreground\">\n {gauge.rangeLabel}\n </p>\n </div>\n {/* `data-bmi-category` exposes the WHO band so the gauge's\n semantic colour is assertable without sampling pixels. The\n shared BandedGauge fills each zone via `var(<token>)`, so a\n theme switch repaints the bands with no JS re-sample. */}\n <div\n data-bmi-category={category}\n className=\"ds:w-full ds:max-w-[320px]\"\n >\n <BandedGauge model={gauge} className=\"ds:w-full\" />\n </div>\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.bmi'),\n icon: 'scale',\n highlight: t(`bmiCalculator.category.${category}`),\n // Chip shares the WHO-category semantic token so the\n // inserted PNG chip matches the on-screen band colour.\n highlightToken: CATEGORY_TOKEN[category],\n brand: insertBrand,\n // Banded gauge: the SAME geometry + WHO bands as the\n // on-screen widget, baked into the card PNG with\n // probe-resolved theme colours.\n gauge: {\n variant: 'banded',\n value: bmi,\n bands: gauge.bands,\n min: gauge.min,\n max: gauge.max,\n valueLabel: gauge.valueLabel,\n categoryLabel: gauge.categoryLabel,\n rangeLabel: gauge.rangeLabel,\n ariaLabel: gauge.ariaLabel,\n ticks: gauge.ticks,\n },\n fields: [\n {\n // Mirrors the on-screen scale glyph + header icon.\n icon: 'scale',\n label: t('insert.title.bmi'),\n value: gauge.valueLabel,\n },\n {\n // WHO band is a classification → tag glyph.\n icon: 'tag',\n label: t('bmiCalculator.category.label'),\n value: gauge.categoryLabel,\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('bmiCalculator.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nBmiCalculator.displayName = 'BmiCalculator';\n"],"names":["rootVariants","cva","CATEGORY_BADGE","CATEGORY_TOKEN","round1","n","BmiCalculator","forwardRef","defaultUnitSystem","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","i18n","useTranslation","heightGroupId","useId","unitSystem","setUnitSystem","useState","heightCm","setHeightCm","weightKg","setWeightKg","heightFt","setHeightFt","heightIn","setHeightIn","weightLb","setWeightLb","handleUnitChange","next","target","ft","inches","cmToFtIn","kgToLb","ftInToCm","lbToKg","canonicalHeightCm","canonicalWeightKg","bmi","computeBmi","category","bmiCategory","bmiFormatter","useMemo","useEffect","isMetric","gauge","bands","min","max","ticks","bmiBands","valueLabel","categoryLabel","rangeLabel","ariaLabel","jsxs","RadioGroup","jsx","Radio","FormField","NumberInput","Card","Badge","BandedGauge","InsertButton"],"mappings":";;;;;;;;;;;;AA2DA,MAAMA,KAAeC,GAAI,kDAAkD;AAAA,EACzE,UAAU;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,iBAAiB,EAAE,OAAO,OAAA;AAC5B,CAAC,GAMKC,KAGF;AAAA,EACF,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AACT,GAcMC,KAA8C;AAAA,EAClD,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AACT,GAgCMC,IAAS,CAACC,MAAsB,KAAK,MAAMA,IAAI,EAAE,IAAI,IAE9CC,KAAgBC;AAAA,EAC3B,CACE;AAAA,IACE,mBAAAC,IAAoB;AAAA,IACpB,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,GAEFC,MACG;AACH,UAAM,EAAE,GAAAC,GAAG,MAAAC,EAAA,IAASC,GAAA,GACdC,IAAgBC,GAAA,GAEhB,CAACC,GAAYC,CAAa,IAAIC,EAAqBlB,CAAiB,GAIpE,CAACmB,GAAUC,CAAW,IAAIF,EAAwB,IAAI,GACtD,CAACG,GAAUC,CAAW,IAAIJ,EAAwB,IAAI,GACtD,CAACK,GAAUC,CAAW,IAAIN,EAAwB,IAAI,GACtD,CAACO,GAAUC,CAAW,IAAIR,EAAwB,IAAI,GACtD,CAACS,GAAUC,CAAW,IAAIV,EAAwB,IAAI,GAEtDW,IAAmB,CAACC,MAAuB;AAC/C,YAAMC,IAASD;AACf,UAAIC,MAAWf,GACf;AAAA,YAAIe,MAAW,YAAY;AACzB,cAAIZ,MAAa,MAAM;AACrB,kBAAM,EAAE,IAAAa,GAAI,IAAIC,EAAA,IAAWC,GAASf,CAAQ;AAC5C,YAAAK,EAAYQ,CAAE,GACdN,EAAY9B,EAAOqC,CAAM,CAAC;AAAA,UAC5B;AACA,UAAIZ,MAAa,QAAMO,EAAYhC,EAAOuC,GAAOd,CAAQ,CAAC,CAAC;AAAA,QAC7D;AACE,WAAIE,MAAa,QAAQE,MAAa,SACpCL,EAAYxB,EAAOwC,EAASb,KAAY,GAAGE,KAAY,CAAC,CAAC,CAAC,GAExDE,MAAa,QAAML,EAAY1B,EAAOyC,EAAOV,CAAQ,CAAC,CAAC;AAE7D,QAAAV,EAAcc,CAAM;AAAA;AAAA,IACtB,GAGMO,IACJtB,MAAe,WACXG,IACAI,MAAa,QAAQE,MAAa,OAChCW,EAASb,KAAY,GAAGE,KAAY,CAAC,IACrC,MACFc,IACJvB,MAAe,WACXK,IACAM,MAAa,OACXU,EAAOV,CAAQ,IACf,MAEFa,IAAMC,GAAWF,GAAmBD,CAAiB,GACrDI,IAAWF,MAAQ,OAAOG,GAAYH,CAAG,IAAI,MAE7CI,IAAeC;AAAA,MACnB,MACE,IAAI,KAAK,aAAajC,EAAK,UAAU;AAAA,QACnC,uBAAuB;AAAA,QACvB,uBAAuB;AAAA,MAAA,CACxB;AAAA,MACH,CAACA,EAAK,QAAQ;AAAA,IAAA;AAIhB,IAAAkC,GAAU,MAAM;AACd,MAAA7C,KAAA,QAAAA;AAAA,QACEuC,MAAQ,QAAQE,MAAa,OAAO,EAAE,KAAAF,GAAK,UAAAE,MAAa;AAAA;AAAA,IAE5D,GAAG,CAACF,GAAKE,GAAUzC,CAAc,CAAC;AAElC,UAAM8C,IAAW/B,MAAe,UAK1BgC,IAAQH,EAAQ,MAAM;AAC1B,UAAIL,MAAQ,QAAQE,MAAa,KAAM,QAAO;AAC9C,YAAM,EAAE,OAAAO,GAAO,KAAAC,GAAK,KAAAC,GAAK,OAAAC,EAAA,IAAUC,GAAA,GAC7BC,IAAaV,EAAa,OAAOJ,CAAG,GACpCe,IAAgB5C,EAAE,0BAA0B+B,CAAQ,EAAE,GACtDc,IAAa7C,EAAE,uBAAuB+B,CAAQ,EAAE,GAChDe,IAAY9C,EAAE,2BAA2B;AAAA,QAC7C,KAAK2C;AAAA,QACL,UAAUC;AAAA,QACV,OAAOC;AAAA,MAAA,CACR;AACD,aAAO;AAAA,QACL,OAAOhB;AAAA,QACP,OAAAS;AAAA,QACA,KAAAC;AAAA,QACA,KAAAC;AAAA,QACA,OAAAC;AAAA,QACA,YAAAE;AAAA,QACA,eAAAC;AAAA,QACA,YAAAC;AAAA,QACA,WAAAC;AAAA,MAAA;AAAA,IAEJ,GAAG,CAACjB,GAAKE,GAAUE,GAAcjC,CAAC,CAAC;AAEnC,WACE,gBAAA+C;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAhD;AAAA,QACA,kBAAe;AAAA,QACf,qBAAmBH;AAAA,QACnB,WAAWf,GAAa,EAAE,OAAAgB,GAAO,WAAAC,GAAW;AAAA,QAE5C,UAAA;AAAA,UAAA,gBAAAiD;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,OAAOhD,EAAE,gCAAgC;AAAA,cACzC,SAAQ;AAAA,cACR,OAAOK;AAAA,cACP,eAAea;AAAA,cAEf,UAAA;AAAA,gBAAA,gBAAA+B,EAACC,KAAM,OAAOlD,EAAE,iCAAiC,GAAG,OAAM,UAAS;AAAA,gBACnE,gBAAAiD;AAAA,kBAACC;AAAA,kBAAA;AAAA,oBACC,OAAOlD,EAAE,mCAAmC;AAAA,oBAC5C,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACR;AAAA,YAAA;AAAA,UAAA;AAAA,UAGF,gBAAA+C,EAAC,OAAA,EAAI,WAAU,uEACZ,UAAA;AAAA,YAAAX,IACC,gBAAAa;AAAA,cAACE;AAAA,cAAA;AAAA,gBACC,OAAO,GAAGnD,EAAE,sBAAsB,CAAC,KAAKA,EAAE,wBAAwB,CAAC;AAAA,gBAEnE,UAAA,gBAAAiD;AAAA,kBAACG;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,KAAK;AAAA,oBACL,MAAM;AAAA,oBACN,OAAO5C;AAAA,oBACP,UAAUC;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACZ;AAAA,YAAA,IAGF,gBAAAsC,EAAC,OAAA,EAAI,MAAK,SAAQ,mBAAiB5C,GACjC,UAAA;AAAA,cAAA,gBAAA8C;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI9C;AAAA,kBACJ,WAAU;AAAA,kBAET,YAAE,sBAAsB;AAAA,gBAAA;AAAA,cAAA;AAAA,cAE3B,gBAAA4C,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,gBAAA,gBAAAE;AAAA,kBAACG;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,KAAK;AAAA,oBACL,OAAOxC;AAAA,oBACP,UAAUC;AAAA,oBACV,cAAYb,EAAE,oBAAoB;AAAA,kBAAA;AAAA,gBAAA;AAAA,kCAEnC,QAAA,EAAK,WAAU,uCACb,UAAAA,EAAE,wBAAwB,GAC7B;AAAA,gBACA,gBAAAiD;AAAA,kBAACG;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,MAAM;AAAA,oBACN,OAAOtC;AAAA,oBACP,UAAUC;AAAA,oBACV,cAAYf,EAAE,sBAAsB;AAAA,kBAAA;AAAA,gBAAA;AAAA,kCAErC,QAAA,EAAK,WAAU,uCACb,UAAAA,EAAE,wBAAwB,EAAA,CAC7B;AAAA,cAAA,EAAA,CACF;AAAA,YAAA,GACF;AAAA,YAGF,gBAAAiD;AAAA,cAACE;AAAA,cAAA;AAAA,gBACC,OAAO,GAAGnD,EAAE,sBAAsB,CAAC,KAAKA;AAAA,kBACtCoC,IAAW,2BAA2B;AAAA,gBAAA,CACvC;AAAA,gBAED,UAAA,gBAAAa;AAAA,kBAACG;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,KAAK;AAAA,oBACL,MAAMhB,IAAW,MAAM;AAAA,oBACvB,OAAOA,IAAW1B,IAAWM;AAAA,oBAC7B,UAAUoB,IAAWzB,IAAcM;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACrC;AAAA,YAAA;AAAA,UACF,GACF;AAAA,UAKA,gBAAAgC,EAAC,KAAA,EAAE,WAAU,cAAa,MAAK,UAAS,aAAU,UAC/C,UAAAZ,IAAQA,EAAM,YAAY,GAAA,CAC7B;AAAA,UAECR,MAAQ,QAAQE,MAAa,QAAQM,MAAU,OAC9C,gBAAAY,EAACI,GAAA,EAAK,SAAQ,YACZ,UAAA,gBAAAN,EAACM,EAAK,MAAL,EAAU,WAAU,kEACnB,UAAA;AAAA,YAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,iFACb,UAAA;AAAA,cAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,uCACb,UAAAjD,EAAE,8BAA8B,GACnC;AAAA,cACA,gBAAAiD,EAACK,IAAA,EAAM,SAASvE,GAAegD,CAAQ,GAAG,MAAK,MAC5C,UAAA/B,EAAE,0BAA0B+B,CAAQ,EAAE,EAAA,CACzC;AAAA,cACA,gBAAAkB,EAAC,KAAA,EAAE,WAAU,sCACV,YAAM,WAAA,CACT;AAAA,YAAA,GACF;AAAA,YAKA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,qBAAmBlB;AAAA,gBACnB,WAAU;AAAA,gBAEV,UAAA,gBAAAkB,EAACM,IAAA,EAAY,OAAOlB,GAAO,WAAU,YAAA,CAAY;AAAA,cAAA;AAAA,YAAA;AAAA,YAElD7C,MAAkB,UAAUD,IAC3B,gBAAA0D;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,UAAAjE;AAAA,gBACA,SAASC;AAAA,gBACT,QAAAC;AAAA,gBACA,SAAAC;AAAA,gBACA,MAAM;AAAA,kBACJ,OAAOM,EAAE,kBAAkB;AAAA,kBAC3B,MAAM;AAAA,kBACN,WAAWA,EAAE,0BAA0B+B,CAAQ,EAAE;AAAA;AAAA;AAAA,kBAGjD,gBAAgB/C,GAAe+C,CAAQ;AAAA,kBACvC,OAAOpC;AAAA;AAAA;AAAA;AAAA,kBAIP,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,OAAOkC;AAAA,oBACP,OAAOQ,EAAM;AAAA,oBACb,KAAKA,EAAM;AAAA,oBACX,KAAKA,EAAM;AAAA,oBACX,YAAYA,EAAM;AAAA,oBAClB,eAAeA,EAAM;AAAA,oBACrB,YAAYA,EAAM;AAAA,oBAClB,WAAWA,EAAM;AAAA,oBACjB,OAAOA,EAAM;AAAA,kBAAA;AAAA,kBAEf,QAAQ;AAAA,oBACN;AAAA;AAAA,sBAEE,MAAM;AAAA,sBACN,OAAOrC,EAAE,kBAAkB;AAAA,sBAC3B,OAAOqC,EAAM;AAAA,oBAAA;AAAA,oBAEf;AAAA;AAAA,sBAEE,MAAM;AAAA,sBACN,OAAOrC,EAAE,8BAA8B;AAAA,sBACvC,OAAOqC,EAAM;AAAA,oBAAA;AAAA,kBACf;AAAA,gBACF;AAAA,cACF;AAAA,YAAA,IAEA;AAAA,UAAA,EAAA,CACN,EAAA,CACF,IAEA,gBAAAY,EAAC,KAAA,EAAE,WAAU,sCACV,UAAAjD,EAAE,qBAAqB,EAAA,CAC1B;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAb,GAAc,cAAc;"}
@@ -13,7 +13,7 @@ import { F as Z } from "./form-field-BOm9hK35.js";
13
13
  import { P as Lt } from "./phone-input-DfZbPPvh.js";
14
14
  import { T as Rt } from "./text-area-BIx0tZ05.js";
15
15
  import { T as Ce } from "./text-input-BaClJL8Y.js";
16
- import { S as Ft } from "./spinner-CCByyvcb.js";
16
+ import { S as Ft } from "./spinner-OjQNn8oN.js";
17
17
  import { I as tt } from "./icon-button-CKEOrN37.js";
18
18
  import { S as Oe } from "./select-hsCaJSX3.js";
19
19
  import { C as Ge } from "./combobox-BC-DFx8G.js";
@@ -2697,4 +2697,4 @@ export {
2697
2697
  X as O,
2698
2698
  Da as b
2699
2699
  };
2700
- //# sourceMappingURL=booking-CtLwaxkK.js.map
2700
+ //# sourceMappingURL=booking-DlDVuWMd.js.map