@alfadocs/ui-kit 0.36.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 (201) 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-CEpIJtcO.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-eM0y0NIR.js → booking-DK_BPHnQ.js} +4 -4
  7. package/dist/_chunks/calculator-dialog-B74fqpFZ.js +40 -0
  8. package/dist/_chunks/chart-DnHvmiDX.js +312 -0
  9. package/dist/_chunks/{chat-message-D53_fH2w.js → chat-message-ASgGtj-L.js} +30 -39
  10. package/dist/_chunks/{contact-profile-card-BA6fgS45.js → contact-profile-card-DHyuAPXM.js} +14 -13
  11. package/dist/_chunks/cycle-calculator-B5Uj9QeT.js +185 -0
  12. package/dist/_chunks/{date-picker-B94HAV4A.js → date-picker-CvQfs6Xh.js} +2 -2
  13. package/dist/_chunks/{date-range-picker-D8CHNYQT.js → date-range-picker-U9fn1g9d.js} +3 -3
  14. package/dist/_chunks/{date-time-picker-D1GEzf8p.js → date-time-picker-Cva0ZCWw.js} +2 -2
  15. package/dist/_chunks/{de-Dfbeau59.js → de-BMM2H7Bs.js} +2 -2
  16. package/dist/_chunks/dependent-selector-CRWgieHm.js +324 -0
  17. package/dist/_chunks/document-scanner-CdHQ6lTN.js +702 -0
  18. package/dist/_chunks/due-date-calculator-CUspKSTw.js +171 -0
  19. package/dist/_chunks/{editable-currency-cell-renderer-CZcVWBPo.js → editable-currency-cell-renderer-DGKuRNVG.js} +2 -2
  20. package/dist/_chunks/{el-Dro3J7CP.js → el-BYPonAaK.js} +2 -2
  21. package/dist/_chunks/{es-Dvg8u70B.js → es-CMkVCQ4F.js} +2 -2
  22. package/dist/_chunks/{file-upload-CdozCPct.js → file-upload-CnzRcErt.js} +2 -1
  23. package/dist/_chunks/fiscal-code-input-BZ0FxwUl.js +540 -0
  24. package/dist/_chunks/{fr-VOGjBSPP.js → fr-BcuWxqft.js} +2 -2
  25. package/dist/_chunks/gestation-BXEgDGmP.js +50 -0
  26. package/dist/_chunks/gestational-age-calculator-CsQ05qDy.js +165 -0
  27. package/dist/_chunks/heart-C0faivFf.js +20 -0
  28. package/dist/_chunks/{hi-BSDxWU_y.js → hi-wkq_rQAh.js} +2 -2
  29. package/dist/_chunks/image-C6RM5hfF.js +16 -0
  30. package/dist/_chunks/insert-result-yJ0QavoN.js +133 -0
  31. package/dist/_chunks/{isSameWeek-Dfzu29cW.js → isSameWeek-Bim5ftRd.js} +2 -2
  32. package/dist/_chunks/{it-CuonvcI_.js → it-GiQrQ9p4.js} +3 -3
  33. package/dist/_chunks/{ja-DO57gIOT.js → ja-qfYg3Rua.js} +2 -2
  34. package/dist/_chunks/{logo-_Z-jLq80.js → logo-yituK7sE.js} +42 -91
  35. package/dist/_chunks/{marketplace-app-shell-DXHxy9dj.js → marketplace-app-shell-BnClrL2B.js} +2 -2
  36. package/dist/_chunks/{nl-DjPaaWaW.js → nl-xOogO4sZ.js} +2 -2
  37. package/dist/_chunks/{patient-shell-CDvMw_Nk.js → patient-shell-Bz3CdO84.js} +2 -2
  38. package/dist/_chunks/{pl-Cl4lOx2N.js → pl-GnOW6eGK.js} +3 -3
  39. package/dist/_chunks/{practice-results-BFM_lyUs.js → practice-results-C8ciLQap.js} +3 -2
  40. package/dist/_chunks/pregnancy-weight-gain-BCdi-JSv.js +209 -0
  41. package/dist/_chunks/{privacy-lock-DD-wHxBg.js → privacy-lock-BmX_gkvt.js} +2 -2
  42. package/dist/_chunks/{pt-D7qO5CzD.js → pt-_bV5b5RW.js} +2 -2
  43. package/dist/_chunks/{public-footer.agent-Cjfe5jus.js → public-footer.agent-zw1vFin_.js} +2 -2
  44. package/dist/_chunks/qr-code-DNXhi6se.js +568 -0
  45. package/dist/_chunks/{react-day-picker-DsjfS7uI.js → react-day-picker-CdtIiKjx.js} +27 -27
  46. package/dist/_chunks/{rich-text-editor-CHmr9Bz8.js → rich-text-editor-DLbg2852.js} +114 -124
  47. package/dist/_chunks/{ro-CP2-VJ_O.js → ro-BEcyh5Nj.js} +2 -2
  48. package/dist/_chunks/rotate-ccw-BWANpitO.js +15 -0
  49. package/dist/_chunks/{ru-RPn9_Lpq.js → ru-Bi86hqMf.js} +3 -3
  50. package/dist/_chunks/session-countdown-LPnhTHjn.js +214 -0
  51. package/dist/_chunks/{shield-check-BhHyReu8.js → shield-check-C73ma9Cs.js} +8 -24
  52. package/dist/_chunks/{sign-in-with-alfadocs-button-BI0fVonM.js → sign-in-with-alfadocs-button-DeHBFRNS.js} +2 -2
  53. package/dist/_chunks/social-sign-in-button-X54ySJr1.js +243 -0
  54. package/dist/_chunks/{sq-AQvefouo.js → sq-BujHSAWu.js} +2 -2
  55. package/dist/_chunks/subDays-_T9YeKPX.js +8 -0
  56. package/dist/_chunks/{sv-zkx9eBtD.js → sv-C8AeDrTA.js} +2 -2
  57. package/dist/_chunks/{tr-Dmr412Ac.js → tr-CMSs_Vgf.js} +2 -2
  58. package/dist/_chunks/unit-converter-EUwO6QYq.js +168 -0
  59. package/dist/_chunks/wallet-pay-button-DK4ESYge.js +250 -0
  60. package/dist/_chunks/{zh-CN-DxVt64Zk.js → zh-CN-eXB-PFu4.js} +3 -3
  61. package/dist/agent-catalog.json +203 -1
  62. package/dist/brand/provider-marks/apple-pay.d.ts +12 -0
  63. package/dist/brand/provider-marks/apple.d.ts +12 -0
  64. package/dist/brand/provider-marks/google-pay.d.ts +12 -0
  65. package/dist/brand/provider-marks/google.d.ts +13 -0
  66. package/dist/components/_shared/insert-result.d.ts +47 -0
  67. package/dist/components/bmi-calculator/bmi-calculator.d.ts +27 -0
  68. package/dist/components/bmi-calculator/bmi.d.ts +37 -0
  69. package/dist/components/bmi-calculator/index.d.ts +4 -0
  70. package/dist/components/bmi-calculator/index.js +15 -0
  71. package/dist/components/booking/index.js +1 -1
  72. package/dist/components/calculator-dialog/calculator-dialog.d.ts +26 -0
  73. package/dist/components/calculator-dialog/index.d.ts +3 -0
  74. package/dist/components/calculator-dialog/index.js +5 -0
  75. package/dist/components/chart/chart.d.ts +7 -0
  76. package/dist/components/chart/index.js +1 -1
  77. package/dist/components/chat-message/index.js +1 -1
  78. package/dist/components/contact-profile-card/index.js +1 -1
  79. package/dist/components/cycle-calculator/cycle-calculator.d.ts +21 -0
  80. package/dist/components/cycle-calculator/cycle.d.ts +37 -0
  81. package/dist/components/cycle-calculator/index.d.ts +4 -0
  82. package/dist/components/cycle-calculator/index.js +7 -0
  83. package/dist/components/data-table/index.js +1 -1
  84. package/dist/components/date-picker/index.js +1 -1
  85. package/dist/components/date-range-picker/index.js +1 -1
  86. package/dist/components/date-time-picker/index.js +1 -1
  87. package/dist/components/dependent-selector/dependent-selector.agent.d.ts +4 -0
  88. package/dist/components/dependent-selector/dependent-selector.d.ts +72 -0
  89. package/dist/components/dependent-selector/index.d.ts +4 -0
  90. package/dist/components/dependent-selector/index.js +6 -0
  91. package/dist/components/document-scanner/document-scanner.agent.d.ts +4 -0
  92. package/dist/components/document-scanner/document-scanner.d.ts +93 -0
  93. package/dist/components/document-scanner/index.d.ts +4 -0
  94. package/dist/components/document-scanner/index.js +6 -0
  95. package/dist/components/due-date-calculator/due-date-calculator.d.ts +21 -0
  96. package/dist/components/due-date-calculator/gestation.d.ts +60 -0
  97. package/dist/components/due-date-calculator/index.d.ts +4 -0
  98. package/dist/components/due-date-calculator/index.js +13 -0
  99. package/dist/components/file-upload/index.js +1 -1
  100. package/dist/components/fiscal-code-input/calculate-codice-fiscale.d.ts +24 -0
  101. package/dist/components/fiscal-code-input/fiscal-code-input.agent.d.ts +4 -0
  102. package/dist/components/fiscal-code-input/fiscal-code-input.d.ts +61 -0
  103. package/dist/components/fiscal-code-input/index.d.ts +6 -0
  104. package/dist/components/fiscal-code-input/index.js +11 -0
  105. package/dist/components/fiscal-code-input/is-valid-codice-fiscale.d.ts +21 -0
  106. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +27 -0
  107. package/dist/components/gestational-age-calculator/index.d.ts +3 -0
  108. package/dist/components/gestational-age-calculator/index.js +5 -0
  109. package/dist/components/index.d.ts +15 -0
  110. package/dist/components/logo/index.js +1 -1
  111. package/dist/components/practice-results/index.js +1 -1
  112. package/dist/components/pregnancy-weight-gain/index.d.ts +4 -0
  113. package/dist/components/pregnancy-weight-gain/index.js +9 -0
  114. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +19 -0
  115. package/dist/components/pregnancy-weight-gain/weight-gain.d.ts +41 -0
  116. package/dist/components/privacy-lock/index.js +1 -1
  117. package/dist/components/public-footer/index.js +1 -1
  118. package/dist/components/qr-code/index.d.ts +5 -0
  119. package/dist/components/qr-code/index.js +8 -0
  120. package/dist/components/qr-code/qr-code.agent.d.ts +3 -0
  121. package/dist/components/qr-code/qr-code.d.ts +59 -0
  122. package/dist/components/qr-code/qr-encode.d.ts +46 -0
  123. package/dist/components/rich-text-editor/index.js +1 -1
  124. package/dist/components/session-countdown/index.d.ts +4 -0
  125. package/dist/components/session-countdown/index.js +6 -0
  126. package/dist/components/session-countdown/session-countdown.agent.d.ts +3 -0
  127. package/dist/components/session-countdown/session-countdown.d.ts +38 -0
  128. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  129. package/dist/components/skeleton/skeleton.d.ts +1 -1
  130. package/dist/components/social-sign-in-button/index.d.ts +3 -0
  131. package/dist/components/social-sign-in-button/index.js +5 -0
  132. package/dist/components/social-sign-in-button/social-sign-in-button.d.ts +56 -0
  133. package/dist/components/unit-converter/index.d.ts +4 -0
  134. package/dist/components/unit-converter/index.js +9 -0
  135. package/dist/components/unit-converter/unit-converter.d.ts +21 -0
  136. package/dist/components/unit-converter/units.d.ts +18 -0
  137. package/dist/components/wallet-pay-button/index.d.ts +3 -0
  138. package/dist/components/wallet-pay-button/index.js +5 -0
  139. package/dist/components/wallet-pay-button/wallet-pay-button.d.ts +63 -0
  140. package/dist/i18n/locales/ar.d.ts +316 -0
  141. package/dist/i18n/locales/ar.js +307 -0
  142. package/dist/i18n/locales/de.d.ts +316 -0
  143. package/dist/i18n/locales/de.js +307 -0
  144. package/dist/i18n/locales/el.d.ts +316 -0
  145. package/dist/i18n/locales/el.js +307 -0
  146. package/dist/i18n/locales/en.d.ts +316 -0
  147. package/dist/i18n/locales/en.js +310 -0
  148. package/dist/i18n/locales/es.d.ts +316 -0
  149. package/dist/i18n/locales/es.js +307 -0
  150. package/dist/i18n/locales/fr.d.ts +316 -0
  151. package/dist/i18n/locales/fr.js +307 -0
  152. package/dist/i18n/locales/hi.d.ts +316 -0
  153. package/dist/i18n/locales/hi.js +307 -0
  154. package/dist/i18n/locales/it.d.ts +316 -0
  155. package/dist/i18n/locales/it.js +307 -0
  156. package/dist/i18n/locales/ja.d.ts +316 -0
  157. package/dist/i18n/locales/ja.js +303 -0
  158. package/dist/i18n/locales/nl.d.ts +316 -0
  159. package/dist/i18n/locales/nl.js +307 -0
  160. package/dist/i18n/locales/pl.d.ts +316 -0
  161. package/dist/i18n/locales/pl.js +307 -0
  162. package/dist/i18n/locales/pt.d.ts +316 -0
  163. package/dist/i18n/locales/pt.js +310 -0
  164. package/dist/i18n/locales/ro.d.ts +316 -0
  165. package/dist/i18n/locales/ro.js +307 -0
  166. package/dist/i18n/locales/ru.d.ts +316 -0
  167. package/dist/i18n/locales/ru.js +307 -0
  168. package/dist/i18n/locales/sq.d.ts +316 -0
  169. package/dist/i18n/locales/sq.js +307 -0
  170. package/dist/i18n/locales/sv.d.ts +316 -0
  171. package/dist/i18n/locales/sv.js +307 -0
  172. package/dist/i18n/locales/tr.d.ts +316 -0
  173. package/dist/i18n/locales/tr.js +307 -0
  174. package/dist/i18n/locales/zh.d.ts +316 -0
  175. package/dist/i18n/locales/zh.js +303 -0
  176. package/dist/index.js +597 -527
  177. package/dist/locales/ar.json +316 -0
  178. package/dist/locales/de.json +316 -0
  179. package/dist/locales/el.json +316 -0
  180. package/dist/locales/en.json +316 -0
  181. package/dist/locales/es.json +316 -0
  182. package/dist/locales/fr.json +316 -0
  183. package/dist/locales/hi.json +316 -0
  184. package/dist/locales/it.json +316 -0
  185. package/dist/locales/ja.json +316 -0
  186. package/dist/locales/nl.json +316 -0
  187. package/dist/locales/pl.json +316 -0
  188. package/dist/locales/pt.json +316 -0
  189. package/dist/locales/ro.json +316 -0
  190. package/dist/locales/ru.json +316 -0
  191. package/dist/locales/sq.json +316 -0
  192. package/dist/locales/sv.json +316 -0
  193. package/dist/locales/tr.json +316 -0
  194. package/dist/locales/zh.json +316 -0
  195. package/dist/patterns/alia-assistant/index.js +1 -1
  196. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  197. package/dist/patterns/patient-shell/index.js +1 -1
  198. package/dist/tokens.css +1 -1
  199. package/package.json +57 -1
  200. package/dist/_chunks/chart-DLkVn_ex.js +0 -292
  201. package/dist/_chunks/subDays-CANHP9hz.js +0 -8
@@ -0,0 +1,168 @@
1
+ import { jsxs as d, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as k, useState as g, useMemo as _, useEffect as O } from "react";
3
+ import { c as z } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as j } from "react-i18next";
5
+ import { F as v } from "./form-field-BOm9hK35.js";
6
+ import { N as A } from "./number-input-Dj5L3pXK.js";
7
+ import { S as y } from "./select-hsCaJSX3.js";
8
+ import { I as B } from "./insert-result-yJ0QavoN.js";
9
+ const F = {
10
+ // weight → base kg
11
+ kg: { id: "kg", category: "weight", factor: 1, offset: 0 },
12
+ g: { id: "g", category: "weight", factor: 1e-3, offset: 0 },
13
+ lb: { id: "lb", category: "weight", factor: 0.45359237, offset: 0 },
14
+ oz: { id: "oz", category: "weight", factor: 0.028349523125, offset: 0 },
15
+ // length → base cm
16
+ cm: { id: "cm", category: "length", factor: 1, offset: 0 },
17
+ m: { id: "m", category: "length", factor: 100, offset: 0 },
18
+ in: { id: "in", category: "length", factor: 2.54, offset: 0 },
19
+ ft: { id: "ft", category: "length", factor: 30.48, offset: 0 },
20
+ // temperature → base °C (affine: °C = °F·5/9 − 32·5/9)
21
+ c: { id: "c", category: "temperature", factor: 1, offset: 0 },
22
+ f: { id: "f", category: "temperature", factor: 5 / 9, offset: -160 / 9 },
23
+ // glucose → base mmol/L (1 mg/dL = 1/18.0156 mmol/L)
24
+ mmol_l: { id: "mmol_l", category: "glucose", factor: 1, offset: 0 },
25
+ mg_dl: { id: "mg_dl", category: "glucose", factor: 1 / 18.0156, offset: 0 }
26
+ }, p = {
27
+ weight: ["kg", "g", "lb", "oz"],
28
+ length: ["cm", "m", "in", "ft"],
29
+ temperature: ["c", "f"],
30
+ glucose: ["mmol_l", "mg_dl"]
31
+ }, G = [
32
+ "weight",
33
+ "length",
34
+ "temperature",
35
+ "glucose"
36
+ ];
37
+ function Y(c, o, f) {
38
+ const r = F[o], n = F[f];
39
+ if (!r || !n) throw new Error(`Unknown unit: ${o} → ${f}`);
40
+ if (r.category !== n.category)
41
+ throw new Error(
42
+ `Cannot convert across categories: ${r.category} → ${n.category}`
43
+ );
44
+ return (c * r.factor + r.offset - n.offset) / n.factor;
45
+ }
46
+ const D = z("ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", {
47
+ variants: {
48
+ width: { full: "ds:w-full", auto: "ds:inline-flex" }
49
+ },
50
+ defaultVariants: { width: "full" }
51
+ }), L = k(
52
+ ({
53
+ defaultCategory: c = "weight",
54
+ onResultChange: o,
55
+ onInsert: f,
56
+ id: r,
57
+ width: n,
58
+ className: C
59
+ }, U) => {
60
+ const { t, i18n: b } = j(), [$, E] = g(c), [i, S] = g(null), [m, w] = g(
61
+ p[c][0]
62
+ ), [l, x] = g(
63
+ p[c][1]
64
+ ), T = (s) => {
65
+ const I = s, h = p[I];
66
+ E(I), w(h[0]), x(h[1] ?? h[0]);
67
+ }, a = _(
68
+ () => i === null ? null : Y(i, m, l),
69
+ [i, m, l]
70
+ ), u = _(
71
+ () => new Intl.NumberFormat(b.language, { maximumFractionDigits: 3 }),
72
+ [b.language]
73
+ );
74
+ O(() => {
75
+ o == null || o(a);
76
+ }, [a, o]);
77
+ const V = G.map((s) => ({
78
+ value: s,
79
+ label: t(`unitConverter.category.${s}`)
80
+ })), N = p[$].map((s) => ({
81
+ value: s,
82
+ label: t(`unitConverter.units.${s}`)
83
+ }));
84
+ return /* @__PURE__ */ d(
85
+ "div",
86
+ {
87
+ ref: U,
88
+ "data-component": "unit-converter",
89
+ "data-component-id": r,
90
+ className: D({ width: n, className: C }),
91
+ children: [
92
+ /* @__PURE__ */ e(v, { label: t("unitConverter.categoryLabel"), children: /* @__PURE__ */ e(
93
+ y,
94
+ {
95
+ options: V,
96
+ value: $,
97
+ onValueChange: T
98
+ }
99
+ ) }),
100
+ /* @__PURE__ */ d("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-3", children: [
101
+ /* @__PURE__ */ e(v, { label: t("unitConverter.value"), children: /* @__PURE__ */ e(A, { mode: "decimal", value: i, onChange: S }) }),
102
+ /* @__PURE__ */ e(v, { label: t("unitConverter.from"), children: /* @__PURE__ */ e(
103
+ y,
104
+ {
105
+ options: N,
106
+ value: m,
107
+ onValueChange: w
108
+ }
109
+ ) }),
110
+ /* @__PURE__ */ e(v, { label: t("unitConverter.to"), children: /* @__PURE__ */ e(
111
+ y,
112
+ {
113
+ options: N,
114
+ value: l,
115
+ onValueChange: x
116
+ }
117
+ ) })
118
+ ] }),
119
+ /* @__PURE__ */ e("p", { className: "ds:sr-only", role: "status", "aria-live": "polite", children: a !== null ? `${u.format(i ?? 0)} ${t(
120
+ `unitConverter.units.${m}`
121
+ )} = ${u.format(a)} ${t(
122
+ `unitConverter.units.${l}`
123
+ )}` : "" }),
124
+ a !== null ? /* @__PURE__ */ d("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
125
+ /* @__PURE__ */ e("span", { className: "type-label ds:text-muted-foreground", children: t("unitConverter.result") }),
126
+ /* @__PURE__ */ d("span", { className: "type-metric ds:text-foreground", children: [
127
+ u.format(a),
128
+ " ",
129
+ t(`unitConverter.units.${l}`)
130
+ ] }),
131
+ f ? /* @__PURE__ */ e(
132
+ B,
133
+ {
134
+ onInsert: f,
135
+ card: {
136
+ title: t("insert.title.unitConverter"),
137
+ fields: [
138
+ {
139
+ label: t("unitConverter.from"),
140
+ value: `${u.format(i ?? 0)} ${t(
141
+ `unitConverter.units.${m}`
142
+ )}`
143
+ },
144
+ {
145
+ label: t("unitConverter.to"),
146
+ value: `${u.format(a)} ${t(
147
+ `unitConverter.units.${l}`
148
+ )}`
149
+ }
150
+ ]
151
+ }
152
+ }
153
+ ) : null
154
+ ] }) : /* @__PURE__ */ e("p", { className: "type-body ds:text-muted-foreground", children: t("unitConverter.empty") })
155
+ ]
156
+ }
157
+ );
158
+ }
159
+ );
160
+ L.displayName = "UnitConverter";
161
+ export {
162
+ G as C,
163
+ F as U,
164
+ p as a,
165
+ L as b,
166
+ Y as c
167
+ };
168
+ //# sourceMappingURL=unit-converter-EUwO6QYq.js.map
@@ -0,0 +1,250 @@
1
+ import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as B } from "react";
3
+ import { c as S } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as H } from "react-i18next";
5
+ import { S as P } from "./spinner-CCByyvcb.js";
6
+ function V({ className: a }) {
7
+ return /* @__PURE__ */ s(
8
+ "svg",
9
+ {
10
+ "aria-hidden": "true",
11
+ role: "img",
12
+ viewBox: "-1 18 158 69",
13
+ fill: "currentColor",
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ className: a,
16
+ children: [
17
+ /* @__PURE__ */ e("path", { d: "M30.07 27.69c-1.93 2.28-5.01 4.08-8.09 3.82-.39-3.08.92-6.34 2.68-8.36 1.93-2.34 5.31-4.01 8.04-4.14.33 3.21-.92 6.34-2.63 8.68m2.6 4.13c-4.47-.26-8.29 2.54-10.41 2.54-2.15 0-5.4-2.41-8.94-2.34-4.6.07-8.88 2.67-11.23 6.82-4.83 8.29-1.26 20.57 3.41 27.32 2.28 3.34 5.01 7.01 8.62 6.88 3.41-.13 4.75-2.21 8.88-2.21 4.16 0 5.34 2.21 8.94 2.15 3.74-.07 6.08-3.34 8.36-6.68 2.6-3.8 3.67-7.5 3.74-7.69-.07-.07-7.21-2.8-7.27-11.02-.07-6.88 5.6-10.15 5.86-10.35-3.21-4.73-8.22-5.26-9.95-5.39" }),
18
+ /* @__PURE__ */ e("path", { d: "M71.62 22.42c9.71 0 16.47 6.69 16.47 16.43 0 9.78-6.9 16.5-16.71 16.5H60.62v17.08H52.86V22.42h18.76zM60.62 48.83h8.91c6.76 0 10.61-3.64 10.61-9.95 0-6.31-3.85-9.92-10.58-9.92h-8.94v19.87zM90.11 62.05c0-6.38 4.89-10.3 13.56-10.79l9.99-.59v-2.81c0-4.06-2.74-6.49-7.32-6.49-4.34 0-7.05 2.08-7.71 5.34h-7.08c.42-6.59 6.03-11.45 15.06-11.45 8.86 0 14.51 4.69 14.51 12.01v25.16h-7.18v-6.01h-.17c-2.11 4.06-6.73 6.62-11.52 6.62-7.15 0-12.15-4.44-12.15-11.01zm23.55-3.29v-2.88l-8.99.56c-4.48.31-7.01 2.29-7.01 5.41 0 3.19 2.64 5.27 6.66 5.27 5.24 0 9.34-3.61 9.34-8.36zM124.95 85.78v-6.07c.55.14 1.79.14 2.42.14 3.47 0 5.34-1.46 6.49-5.2 0-.07.66-2.22.66-2.25l-13.18-36.52h8.11l9.23 29.69h.14l9.23-29.69h7.9l-13.66 38.39c-3.12 8.85-6.73 11.69-14.29 11.69-.63 0-2.5-.07-3.05-.21z" })
19
+ ]
20
+ }
21
+ );
22
+ }
23
+ function j({ className: a }) {
24
+ return /* @__PURE__ */ s(
25
+ "svg",
26
+ {
27
+ "aria-hidden": "true",
28
+ role: "img",
29
+ viewBox: "1 7 101 36",
30
+ xmlns: "http://www.w3.org/2000/svg",
31
+ className: a,
32
+ children: [
33
+ /* @__PURE__ */ s("g", { transform: "translate(2 8)", children: [
34
+ /* @__PURE__ */ e(
35
+ "path",
36
+ {
37
+ fill: "#4285F4",
38
+ d: "M31.5 16.5c0-1.16-.1-2.27-.3-3.34H16.07v6.33h8.65a7.4 7.4 0 0 1-3.21 4.85v4.03h5.19c3.04-2.8 4.8-6.92 4.8-11.87z"
39
+ }
40
+ ),
41
+ /* @__PURE__ */ e(
42
+ "path",
43
+ {
44
+ fill: "#34A853",
45
+ d: "M16.07 32c4.34 0 7.99-1.44 10.65-3.89l-5.19-4.03c-1.44.97-3.29 1.54-5.46 1.54-4.2 0-7.76-2.84-9.03-6.65H1.67v4.17C4.32 28.4 9.71 32 16.07 32z"
46
+ }
47
+ ),
48
+ /* @__PURE__ */ e(
49
+ "path",
50
+ {
51
+ fill: "#FBBC04",
52
+ d: "M7.04 18.97A9.6 9.6 0 0 1 6.53 16c0-1.03.18-2.03.51-2.97V8.86H1.67A15.96 15.96 0 0 0 0 16c0 2.58.62 5.02 1.67 7.14l5.37-4.17z"
53
+ }
54
+ ),
55
+ /* @__PURE__ */ e(
56
+ "path",
57
+ {
58
+ fill: "#EA4335",
59
+ d: "M16.07 6.39c2.37 0 4.5.81 6.17 2.41l4.62-4.62C24.05 1.6 20.41 0 16.07 0 9.71 0 4.32 3.6 1.67 8.86l5.37 4.17c1.27-3.81 4.83-6.64 9.03-6.64z"
60
+ }
61
+ )
62
+ ] }),
63
+ /* @__PURE__ */ s("g", { fill: "currentColor", transform: "translate(44 8)", children: [
64
+ /* @__PURE__ */ e("path", { d: "M11.9 17.06v9.94H8.75V2.52h8.36c2.12 0 3.93.71 5.41 2.12 1.51 1.42 2.27 3.14 2.27 5.18 0 2.09-.76 3.82-2.27 5.21-1.46 1.39-3.27 2.07-5.41 2.07H11.9v-.06zm0-11.53v8.55h5.28c1.25 0 2.29-.42 3.12-1.26.84-.84 1.26-1.86 1.26-3.01 0-1.12-.42-2.13-1.26-2.97-.83-.87-1.87-1.31-3.12-1.31H11.9z" }),
65
+ /* @__PURE__ */ e("path", { d: "M32.43 9.72c2.33 0 4.16.62 5.51 1.87 1.35 1.25 2.02 2.96 2.02 5.12V27h-3.01v-2.33h-.14c-1.3 1.92-3.05 2.88-5.23 2.88-1.85 0-3.41-.55-4.65-1.65-1.25-1.1-1.87-2.46-1.87-4.11 0-1.74.66-3.11 1.97-4.13 1.31-1.02 3.07-1.54 5.26-1.54 1.87 0 3.41.34 4.62 1.03v-.72c0-1.1-.43-2.02-1.29-2.79-.86-.77-1.87-1.15-3.02-1.15-1.74 0-3.11.72-4.11 2.18l-2.78-1.75c1.5-2.16 3.72-3.24 6.64-3.24zm-4.07 12.21c0 .82.35 1.5 1.04 2.04.69.55 1.5.81 2.43.81 1.31 0 2.48-.49 3.51-1.46 1.02-.97 1.54-2.12 1.54-3.43-.98-.77-2.34-1.16-4.09-1.16-1.28 0-2.34.31-3.2.92-.85.62-1.27 1.39-1.27 2.28z" }),
66
+ /* @__PURE__ */ e("path", { d: "M57.16 10.27L46.62 34.5h-3.25l3.91-8.47-6.93-15.76h3.43l5 12.06h.07l4.87-12.06z" })
67
+ ] })
68
+ ]
69
+ }
70
+ );
71
+ }
72
+ const W = {
73
+ "apple-pay": "applePay",
74
+ "google-pay": "googlePay"
75
+ }, C = S(
76
+ [
77
+ // `ds:relative` anchors the `::before` pseudo touch-target used by
78
+ // the `sm` size below the `sm:` breakpoint.
79
+ "ds:relative ds:inline-flex ds:items-center ds:justify-center",
80
+ "ds:font-medium ds:whitespace-nowrap ds:select-none",
81
+ "ds:rounded-[var(--radius-md)]",
82
+ "ds:gap-[var(--spacing-xs)]",
83
+ "ds:transition-[background-color,box-shadow,opacity]",
84
+ "ds:duration-[var(--animation-duration)]",
85
+ "ds:active:opacity-90",
86
+ // Focus ring is `var(--ring)` at `--focus-ring-width` / offset —
87
+ // deliberately NOT the brand surface colour. A black ring on the
88
+ // black surface, or an invisible ring on the white surface, fails
89
+ // 2.4.7. The token widens 2→3px automatically in the accessible
90
+ // theme. Same reasoning WhatsAppButton documents.
91
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
92
+ "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
93
+ // Under Windows High Contrast Mode the brand bg + border are
94
+ // stripped; repaint a solid ButtonBorder edge and swap the focus
95
+ // ring to CanvasText so the affordance stays identifiable.
96
+ "ds:forced-colors:border ds:forced-colors:border-[ButtonBorder]",
97
+ "ds:forced-colors:focus-visible:outline-[CanvasText]",
98
+ "ds:disabled:opacity-50 ds:disabled:cursor-not-allowed",
99
+ "ds:motion-reduce:transition-none"
100
+ ].join(" "),
101
+ {
102
+ variants: {
103
+ provider: {
104
+ "apple-pay": "",
105
+ "google-pay": ""
106
+ },
107
+ buttonStyle: {
108
+ black: "",
109
+ white: "",
110
+ "white-outline": ""
111
+ },
112
+ size: {
113
+ // Size axis sizes the brand mark via a DIRECT-CHILD selector
114
+ // (`[&>svg]`) — the mark is a direct `<svg>` child of the button,
115
+ // whereas the loading Spinner's `<svg>` is nested inside its
116
+ // `role=status` span. A descendant `[&_svg]` would reach into the
117
+ // Spinner and override its own `size-full`, forcing a 20/24px svg
118
+ // inside a 16/20px span (clipped). `[&>svg]` sizes only the mark.
119
+ sm: [
120
+ "ds:h-8 ds:ps-3 ds:pe-3 ds:text-[length:var(--font-size-sm)]",
121
+ "ds:[&>svg]:h-4 ds:[&>svg]:w-auto",
122
+ // Expand the hit-target to `--min-target-size` below the
123
+ // `sm:` breakpoint via a `::before` overlay, identical to
124
+ // Button / WhatsAppButton. The visual box stays 32px; touch
125
+ // stays ≥44/48px on mobile.
126
+ "ds:min-h-[var(--min-target-size)] ds:sm:min-h-0",
127
+ 'ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""] ds:sm:before:hidden'
128
+ ].join(" "),
129
+ // `md` is the DEFAULT size. Its visual box is 40px (h-10), which is
130
+ // below the 44/48px `--min-target-size`, so it carries the same
131
+ // `::before` hit-target expansion as `sm` to reliably meet WCAG
132
+ // 2.5.5 (44×44) / 2.5.8 (48×48 accessible) on touch viewports. The
133
+ // visual box stays 40px; the touch target lifts to the token below
134
+ // the `sm:` breakpoint.
135
+ md: [
136
+ "ds:h-10 ds:ps-4 ds:pe-4 ds:text-[length:var(--font-size-base)]",
137
+ "ds:[&>svg]:h-5 ds:[&>svg]:w-auto",
138
+ "ds:min-h-[var(--min-target-size)] ds:sm:min-h-0",
139
+ 'ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""] ds:sm:before:hidden'
140
+ ].join(" "),
141
+ lg: "ds:h-12 ds:ps-5 ds:pe-5 ds:text-[length:var(--font-size-lg)] ds:[&>svg]:h-6 ds:[&>svg]:w-auto"
142
+ },
143
+ fullWidth: {
144
+ true: "ds:flex ds:w-full",
145
+ false: ""
146
+ }
147
+ },
148
+ compoundVariants: [
149
+ /* ----- Apple Pay surfaces ----- */
150
+ {
151
+ provider: "apple-pay",
152
+ buttonStyle: "black",
153
+ class: "ds:bg-[var(--brand-applepay-black)] ds:text-[var(--brand-applepay-black-foreground)] ds:hover:bg-[var(--brand-applepay-black-hover)]"
154
+ },
155
+ {
156
+ provider: "apple-pay",
157
+ buttonStyle: "white",
158
+ class: "ds:bg-[var(--brand-applepay-white)] ds:text-[var(--brand-applepay-white-foreground)] ds:hover:bg-[var(--brand-applepay-white-hover)]"
159
+ },
160
+ {
161
+ provider: "apple-pay",
162
+ buttonStyle: "white-outline",
163
+ class: "ds:bg-[var(--brand-applepay-white)] ds:text-[var(--brand-applepay-white-foreground)] ds:hover:bg-[var(--brand-applepay-white-hover)] ds:border ds:border-[var(--brand-applepay-white-border)]"
164
+ },
165
+ /* ----- Google Pay surfaces (no outline type — see fallback) ----- */
166
+ {
167
+ provider: "google-pay",
168
+ buttonStyle: "black",
169
+ class: "ds:bg-[var(--brand-googlepay-black)] ds:text-[var(--brand-googlepay-black-foreground)] ds:hover:bg-[var(--brand-googlepay-black-hover)]"
170
+ },
171
+ {
172
+ provider: "google-pay",
173
+ buttonStyle: "white",
174
+ class: "ds:bg-[var(--brand-googlepay-white)] ds:text-[var(--brand-googlepay-white-foreground)] ds:hover:bg-[var(--brand-googlepay-white-hover)] ds:border ds:border-[var(--brand-googlepay-white-border)]"
175
+ }
176
+ ],
177
+ defaultVariants: {
178
+ buttonStyle: "black",
179
+ size: "md",
180
+ fullWidth: !1
181
+ }
182
+ }
183
+ );
184
+ function N({ provider: a }) {
185
+ return a === "apple-pay" ? /* @__PURE__ */ e(V, {}) : /* @__PURE__ */ e(j, {});
186
+ }
187
+ const R = B(
188
+ ({
189
+ provider: a,
190
+ buttonStyle: l = "black",
191
+ labelType: n = "pay",
192
+ size: i = "md",
193
+ fullWidth: b = !1,
194
+ onActivate: r,
195
+ loading: t = !1,
196
+ disabled: p = !1,
197
+ label: c,
198
+ type: g = "button",
199
+ className: u,
200
+ onClick: o,
201
+ ...f
202
+ }, y) => {
203
+ const { t: m } = H();
204
+ let d = l;
205
+ a === "google-pay" && l === "white-outline" && (d = "white");
206
+ const w = W[a], h = c ?? m(`walletPayButton.${w}.${n}`), z = n === "plain" && c == null, x = !t && !p, M = (v) => {
207
+ o == null || o(v), x && (r == null || r(v));
208
+ }, k = [
209
+ C({
210
+ provider: a,
211
+ buttonStyle: d,
212
+ size: i,
213
+ fullWidth: b
214
+ }),
215
+ u
216
+ ].filter(Boolean).join(" ");
217
+ return /* @__PURE__ */ s(
218
+ "button",
219
+ {
220
+ ref: y,
221
+ type: g,
222
+ disabled: p || t,
223
+ "aria-busy": t || void 0,
224
+ "data-component": "wallet-pay-button",
225
+ "data-provider": a,
226
+ "data-button-style": d,
227
+ className: k,
228
+ onClick: M,
229
+ ...f,
230
+ children: [
231
+ t ? /* @__PURE__ */ e(P, { size: i ?? "md", variant: "pulse" }) : /* @__PURE__ */ e(N, { provider: a }),
232
+ z ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: h }) : (
233
+ // `<bdi>` isolates the label from the surrounding bidi context so
234
+ // the Latin brand wordmark ("Apple Pay" / "Google Pay") embedded
235
+ // in an RTL verb phrase keeps its own direction — matching the
236
+ // i18n note. Trailing-Latin placement already renders correctly
237
+ // under the UBA today; the isolation also keeps a future
238
+ // mid-phrase wordmark from reordering.
239
+ /* @__PURE__ */ e("bdi", { children: h })
240
+ )
241
+ ]
242
+ }
243
+ );
244
+ }
245
+ );
246
+ R.displayName = "WalletPayButton";
247
+ export {
248
+ R as W
249
+ };
250
+ //# sourceMappingURL=wallet-pay-button-DK4ESYge.js.map
@@ -1,5 +1,5 @@
1
- import { o as s, q as i, r as o, v as m } from "./react-day-picker-DsjfS7uI.js";
2
- import { i as u } from "./isSameWeek-Dfzu29cW.js";
1
+ import { o as s, q as i, r as o, v as m } from "./react-day-picker-CdtIiKjx.js";
2
+ import { i as u } from "./isSameWeek-Bim5ftRd.js";
3
3
  const c = {
4
4
  lessThanXSeconds: {
5
5
  one: "不到 1 秒",
@@ -385,4 +385,4 @@ const b = {
385
385
  export {
386
386
  Q as zhCN
387
387
  };
388
- //# sourceMappingURL=zh-CN-DxVt64Zk.js.map
388
+ //# sourceMappingURL=zh-CN-eXB-PFu4.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.36.0",
3
+ "packageVersion": "0.38.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -1396,6 +1396,44 @@
1396
1396
  }
1397
1397
  }
1398
1398
  },
1399
+ {
1400
+ "kind": "component",
1401
+ "id": "dependent-selector",
1402
+ "capabilities": [
1403
+ "select_single"
1404
+ ],
1405
+ "state": [
1406
+ {
1407
+ "name": "value",
1408
+ "type": "string",
1409
+ "description": "Id of the currently selected person, or empty string when none."
1410
+ }
1411
+ ],
1412
+ "actions": [
1413
+ {
1414
+ "name": "set_value",
1415
+ "safety": "write",
1416
+ "argsType": "{ value: string }",
1417
+ "description": "Select the person row with the given id."
1418
+ }
1419
+ ],
1420
+ "domHooks": {
1421
+ "root": {
1422
+ "attr": "data-component",
1423
+ "value": "dependent-selector",
1424
+ "description": "Marks the DependentSelector root (role=radiogroup)."
1425
+ },
1426
+ "instanceId": {
1427
+ "attr": "data-component-id",
1428
+ "sourceProp": "id",
1429
+ "description": "Sourced from the id prop."
1430
+ },
1431
+ "item": {
1432
+ "attr": "data-option-id",
1433
+ "description": "Stable person id emitted on each rendered person row."
1434
+ }
1435
+ }
1436
+ },
1399
1437
  {
1400
1438
  "kind": "component",
1401
1439
  "id": "description-list",
@@ -1454,6 +1492,59 @@
1454
1492
  }
1455
1493
  }
1456
1494
  },
1495
+ {
1496
+ "kind": "component",
1497
+ "id": "document-scanner",
1498
+ "capabilities": [
1499
+ "submit"
1500
+ ],
1501
+ "state": [
1502
+ {
1503
+ "name": "hasCapture",
1504
+ "type": "boolean",
1505
+ "description": "True when a captured or uploaded image is available."
1506
+ },
1507
+ {
1508
+ "name": "phase",
1509
+ "type": "string",
1510
+ "description": "Current lifecycle phase of the scanner."
1511
+ }
1512
+ ],
1513
+ "actions": [
1514
+ {
1515
+ "name": "start_camera",
1516
+ "safety": "write",
1517
+ "description": "Request camera permission and begin the live viewfinder."
1518
+ },
1519
+ {
1520
+ "name": "capture",
1521
+ "safety": "write",
1522
+ "description": "Freeze the current viewfinder frame as a captured image."
1523
+ },
1524
+ {
1525
+ "name": "submit",
1526
+ "safety": "write",
1527
+ "description": "Confirm the current capture and emit it via onConfirm."
1528
+ },
1529
+ {
1530
+ "name": "retake",
1531
+ "safety": "destructive",
1532
+ "description": "Discard the current capture and return to capture."
1533
+ }
1534
+ ],
1535
+ "domHooks": {
1536
+ "root": {
1537
+ "attr": "data-component",
1538
+ "value": "document-scanner",
1539
+ "description": "Marks the DocumentScanner wrapper."
1540
+ },
1541
+ "instanceId": {
1542
+ "attr": "data-component-id",
1543
+ "sourceProp": "id",
1544
+ "description": "Sourced from the id prop."
1545
+ }
1546
+ }
1547
+ },
1457
1548
  {
1458
1549
  "kind": "component",
1459
1550
  "id": "dropdown-menu",
@@ -1584,6 +1675,55 @@
1584
1675
  }
1585
1676
  }
1586
1677
  },
1678
+ {
1679
+ "kind": "component",
1680
+ "id": "fiscal-code-input",
1681
+ "capabilities": [
1682
+ "edit_inline"
1683
+ ],
1684
+ "state": [
1685
+ {
1686
+ "name": "value",
1687
+ "type": "string",
1688
+ "description": "Current codice fiscale, normalised (uppercased, 0–16 [A-Z0-9] characters)."
1689
+ },
1690
+ {
1691
+ "name": "isValid",
1692
+ "type": "boolean",
1693
+ "description": "Whether the value is 16 structurally-sound characters with a matching control character."
1694
+ }
1695
+ ],
1696
+ "actions": [
1697
+ {
1698
+ "name": "set_value",
1699
+ "safety": "write",
1700
+ "argsType": "{ value: string }",
1701
+ "description": "Replace the codice fiscale. The value is uppercased and stripped to [A-Z0-9], capped at 16 characters."
1702
+ },
1703
+ {
1704
+ "name": "clear",
1705
+ "safety": "destructive",
1706
+ "description": "Empty the input. Loses any typed value."
1707
+ },
1708
+ {
1709
+ "name": "focus",
1710
+ "safety": "read",
1711
+ "description": "Move keyboard focus to the codice fiscale input."
1712
+ }
1713
+ ],
1714
+ "domHooks": {
1715
+ "root": {
1716
+ "attr": "data-component",
1717
+ "value": "fiscal-code-input",
1718
+ "description": "Marks the FiscalCodeInput wrapper."
1719
+ },
1720
+ "instanceId": {
1721
+ "attr": "data-component-id",
1722
+ "sourceProp": "id",
1723
+ "description": "Sourced from the id prop."
1724
+ }
1725
+ }
1726
+ },
1587
1727
  {
1588
1728
  "kind": "component",
1589
1729
  "id": "flag",
@@ -2866,6 +3006,26 @@
2866
3006
  }
2867
3007
  }
2868
3008
  },
3009
+ {
3010
+ "kind": "component",
3011
+ "id": "qr-code",
3012
+ "capabilities": [],
3013
+ "state": [
3014
+ {
3015
+ "name": "value",
3016
+ "type": "string",
3017
+ "description": "The string (typically an https URL) encoded into the QR."
3018
+ }
3019
+ ],
3020
+ "actions": [],
3021
+ "domHooks": {
3022
+ "root": {
3023
+ "attr": "data-component",
3024
+ "value": "qr-code",
3025
+ "description": "Marks the element as a kit QrCode renderer."
3026
+ }
3027
+ }
3028
+ },
2869
3029
  {
2870
3030
  "kind": "component",
2871
3031
  "id": "radio",
@@ -3299,6 +3459,20 @@
3299
3459
  }
3300
3460
  }
3301
3461
  },
3462
+ {
3463
+ "kind": "component",
3464
+ "id": "session-countdown",
3465
+ "capabilities": [],
3466
+ "state": [],
3467
+ "actions": [],
3468
+ "domHooks": {
3469
+ "root": {
3470
+ "attr": "data-component",
3471
+ "value": "session-countdown",
3472
+ "description": "Marks the element as a kit SessionCountdown banner. The root also emits `data-tone=\"running\" | \"warning\" | \"expired\"` (derived from the remaining time). The accessible remaining-time announcement is surfaced via the region's aria-label and a nested polite live region."
3473
+ }
3474
+ }
3475
+ },
3302
3476
  {
3303
3477
  "kind": "component",
3304
3478
  "id": "sheet",
@@ -3524,6 +3698,20 @@
3524
3698
  }
3525
3699
  }
3526
3700
  },
3701
+ {
3702
+ "kind": "component",
3703
+ "id": "social-sign-in-button",
3704
+ "capabilities": [],
3705
+ "state": [],
3706
+ "actions": [],
3707
+ "domHooks": {
3708
+ "root": {
3709
+ "attr": "data-component",
3710
+ "value": "social-sign-in-button",
3711
+ "description": "Marks the branded provider sign-in trigger (Apple / Google). The active provider is on `data-provider`. Safety is declared by the host auth pattern."
3712
+ }
3713
+ }
3714
+ },
3527
3715
  {
3528
3716
  "kind": "component",
3529
3717
  "id": "sparkline",
@@ -4349,6 +4537,20 @@
4349
4537
  }
4350
4538
  }
4351
4539
  },
4540
+ {
4541
+ "kind": "component",
4542
+ "id": "wallet-pay-button",
4543
+ "capabilities": [],
4544
+ "state": [],
4545
+ "actions": [],
4546
+ "domHooks": {
4547
+ "root": {
4548
+ "attr": "data-component",
4549
+ "value": "wallet-pay-button",
4550
+ "description": "Marks the branded wallet-pay trigger (Apple Pay / Google Pay). The provider is exposed via data-provider. Payment-flow safety is declared by the host checkout pattern, not this presentational button."
4551
+ }
4552
+ }
4553
+ },
4352
4554
  {
4353
4555
  "kind": "component",
4354
4556
  "id": "warning-stack",