@alfadocs/ui-kit 1.73.3 → 1.74.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 (166) hide show
  1. package/dist/_chunks/alia-sidebar-CsTRAxC8.js +1323 -0
  2. package/dist/_chunks/{anamnesis-summary-rows-BedVmSAB.js → anamnesis-summary-rows-vNDyE5HW.js} +2 -2
  3. package/dist/_chunks/{antenatal-schedule-timeline-DW_qkGo1.js → antenatal-schedule-timeline-BGewPfEX.js} +18 -18
  4. package/dist/_chunks/{appointment-timeline-CKwMXUid.js → appointment-timeline-1-Za2miy.js} +2 -2
  5. package/dist/_chunks/{ar-pLopgMbL.js → ar-C4YQVTH6.js} +2 -2
  6. package/dist/_chunks/{auth-form-parts-DHv6LVV2.js → auth-form-parts-B3GWChvG.js} +2 -2
  7. package/dist/_chunks/{balance-badge-cell-DG5JWB2p.js → balance-badge-cell-B49xgL6H.js} +2 -2
  8. package/dist/_chunks/{booking-4BCeh7OY.js → booking-sq9sa29d.js} +8 -8
  9. package/dist/_chunks/brand-mark-DLk9kD8g.js +63 -0
  10. package/dist/_chunks/{calendar-appointment-editor-dialog-Lji2y0qJ.js → calendar-appointment-editor-dialog-CctI6mpd.js} +8 -8
  11. package/dist/_chunks/{cycle-calculator-Ycp3li61.js → cycle-calculator-HO3s5InI.js} +5 -5
  12. package/dist/_chunks/{date-picker-KcoNNsM0.js → date-picker-CdhXlgVI.js} +4 -4
  13. package/dist/_chunks/{date-picker-variants-DN37Oj5-.js → date-picker-variants-Dt6UbonG.js} +25 -25
  14. package/dist/_chunks/{date-range-picker-CjcjUJLW.js → date-range-picker-B_j4VQlV.js} +5 -5
  15. package/dist/_chunks/{date-time-picker-BVQNZ4yC.js → date-time-picker-n-yrlMJq.js} +3 -3
  16. package/dist/_chunks/{de-lVkJRPnh.js → de-B1B3PIgY.js} +2 -2
  17. package/dist/_chunks/{due-date-calculator-B0gyOijA.js → due-date-calculator-CDWTSblh.js} +6 -6
  18. package/dist/_chunks/{el-CHzxNWPj.js → el-iLqGpapg.js} +16 -16
  19. package/dist/_chunks/{en-GB-CwxYmmhU.js → en-GB-CxPRQbD6.js} +6 -6
  20. package/dist/_chunks/{es-Ck-oxbHW.js → es-Bg1oqwDs.js} +2 -2
  21. package/dist/_chunks/{forgot-password-form-D6kB72OD.js → forgot-password-form-BSOZVrZG.js} +3 -3
  22. package/dist/_chunks/{format-D-1gTdHF.js → format--x5jypvH.js} +13 -13
  23. package/dist/_chunks/{fr-fWRnDcSD.js → fr-DpGxyOGI.js} +2 -2
  24. package/dist/_chunks/{gestational-age-calculator-Bu_a-K9z.js → gestational-age-calculator-CTHeJJdb.js} +7 -7
  25. package/dist/_chunks/{hcg-doubling-BnopYgd-.js → hcg-doubling-BBk-a33g.js} +11 -11
  26. package/dist/_chunks/{hi-B5uX0h3V.js → hi-3Dtsksrw.js} +2 -2
  27. package/dist/_chunks/{isSameWeek-u81Z-J7h.js → isSameWeek-DyVftHWi.js} +2 -2
  28. package/dist/_chunks/{it-DBoNIelY.js → it-Cp0CA13d.js} +3 -3
  29. package/dist/_chunks/{ja-Du8gfg8p.js → ja-9FOyR1lb.js} +22 -22
  30. package/dist/_chunks/{kit-extensions-DgBi3tsK.js → kit-extensions-sNTZWkoo.js} +4 -4
  31. package/dist/_chunks/{link-cell-renderer-BDxxpfJM.js → link-cell-renderer-B0riA_h_.js} +2 -2
  32. package/dist/_chunks/{login-dev-card-pnJbVaoQ.js → login-dev-card-DRxTPkE9.js} +3 -3
  33. package/dist/_chunks/{nl-BCBwxYi8.js → nl-sfx-zJgR.js} +2 -2
  34. package/dist/_chunks/{notes-panel-C_QshXyI.js → notes-panel-CxjMovCh.js} +2 -2
  35. package/dist/_chunks/{parse-UB4FJGNA.js → parse-B0s7bY4d.js} +3 -3
  36. package/dist/_chunks/{parseISO-y3LncvfO.js → parseISO-DZZ5a-zK.js} +2 -2
  37. package/dist/_chunks/{patient-details-Cd_dCqkg.js → patient-details-Dgd_tocD.js} +2 -2
  38. package/dist/_chunks/{patient-field-row-D6Ftm46u.js → patient-field-row-BFVlJnS9.js} +3 -3
  39. package/dist/_chunks/{patient-summary-card-BSOHR4Ol.js → patient-summary-card-BTKvFUmh.js} +2 -2
  40. package/dist/_chunks/{phone-input-O9camxkq.js → phone-input-EwVuqFik.js} +74 -74
  41. package/dist/_chunks/{pl-HwLM6gPs.js → pl-BLh7KO-s.js} +3 -3
  42. package/dist/_chunks/{pregnancy-dating-CvNFirHt.js → pregnancy-dating-JBAUbM40.js} +7 -7
  43. package/dist/_chunks/{pt-BxhT5ZQH.js → pt-CPKOrOLj.js} +2 -2
  44. package/dist/_chunks/{radiograph-panel.agent-ESnkuDfH.js → radiograph-panel.agent-DQh2SX8G.js} +3 -3
  45. package/dist/_chunks/registration-form-B6qqeXP1.js +1310 -0
  46. package/dist/_chunks/{rich-text-editor-BXFgcvBW.js → rich-text-editor-BZTyxQBd.js} +1683 -1673
  47. package/dist/_chunks/{ro-Do9W55ae.js → ro-Dc-oNqbF.js} +2 -2
  48. package/dist/_chunks/{ru-PDBX5gdf.js → ru-BtNpDZRR.js} +3 -3
  49. package/dist/_chunks/send-registration-link-form-pO2bGjGa.js +409 -0
  50. package/dist/_chunks/{slot-grid-uA9j7Nik.js → slot-grid-Bb13H9Rl.js} +3 -3
  51. package/dist/_chunks/{sq-DnvsgyIh.js → sq-D4c7olaV.js} +2 -2
  52. package/dist/_chunks/subDays-DKISP2nE.js +8 -0
  53. package/dist/_chunks/{sv-CpFSK8xS.js → sv-Bf_dHPvh.js} +2 -2
  54. package/dist/_chunks/{task-editor-BTeUFGUX.js → task-editor-CRhfwP9T.js} +2 -2
  55. package/dist/_chunks/{tr-DW4oQYHT.js → tr-xqQ6cbGY.js} +2 -2
  56. package/dist/_chunks/{use-appointment-details-read-BWbOiLVw.js → use-appointment-details-read-BFslxbRr.js} +2 -2
  57. package/dist/_chunks/use-field-match-C8ug3sdQ.js +30 -0
  58. package/dist/_chunks/use-registration-submit-CLGHxwoT.js +112 -0
  59. package/dist/_chunks/{zh-CN-QGEs29fQ.js → zh-CN-C657DBCO.js} +3 -3
  60. package/dist/agent-catalog.json +87 -3
  61. package/dist/agent-i18n/en.json +9 -2
  62. package/dist/alia-asteroid-icon/index.js +52 -0
  63. package/dist/aws-transcribe/index.js +320 -0
  64. package/dist/components/appointment-details-panel/index.js +1 -1
  65. package/dist/components/appointment-timeline/index.js +1 -1
  66. package/dist/components/booking/index.js +1 -1
  67. package/dist/components/cycle-calculator/index.js +1 -1
  68. package/dist/components/data-table/index.js +1 -1
  69. package/dist/components/date-picker/index.js +1 -1
  70. package/dist/components/date-range-picker/index.js +1 -1
  71. package/dist/components/date-time-picker/index.js +1 -1
  72. package/dist/components/due-date-calculator/index.js +2 -2
  73. package/dist/components/gestational-age-calculator/index.js +1 -1
  74. package/dist/components/hcg-doubling/index.js +1 -1
  75. package/dist/components/index.d.ts +1 -0
  76. package/dist/components/notes-panel/index.js +1 -1
  77. package/dist/components/patient-details/index.js +1 -1
  78. package/dist/components/patient-summary-card/index.js +1 -1
  79. package/dist/components/patient-table/index.js +1 -1
  80. package/dist/components/phone-input/index.js +1 -1
  81. package/dist/components/pregnancy-dating/index.js +1 -1
  82. package/dist/components/radiograph-panel/index.js +1 -1
  83. package/dist/components/rich-text-editor/index.js +2 -2
  84. package/dist/components/slot-grid/index.js +1 -1
  85. package/dist/components/task-editor/index.js +1 -1
  86. package/dist/hooks/index.js +1 -1
  87. package/dist/hooks/use-field-match.d.ts +2 -2
  88. package/dist/i18n/locales/ar.d.ts +36 -0
  89. package/dist/i18n/locales/ar.js +38 -2
  90. package/dist/i18n/locales/de.d.ts +36 -0
  91. package/dist/i18n/locales/de.js +38 -2
  92. package/dist/i18n/locales/el.d.ts +36 -0
  93. package/dist/i18n/locales/el.js +38 -2
  94. package/dist/i18n/locales/en.d.ts +36 -0
  95. package/dist/i18n/locales/en.js +38 -2
  96. package/dist/i18n/locales/es.d.ts +36 -0
  97. package/dist/i18n/locales/es.js +38 -2
  98. package/dist/i18n/locales/fr.d.ts +36 -0
  99. package/dist/i18n/locales/fr.js +38 -2
  100. package/dist/i18n/locales/hi.d.ts +36 -0
  101. package/dist/i18n/locales/hi.js +38 -2
  102. package/dist/i18n/locales/it.d.ts +36 -0
  103. package/dist/i18n/locales/it.js +38 -2
  104. package/dist/i18n/locales/ja.d.ts +36 -0
  105. package/dist/i18n/locales/ja.js +38 -2
  106. package/dist/i18n/locales/nl.d.ts +36 -0
  107. package/dist/i18n/locales/nl.js +38 -2
  108. package/dist/i18n/locales/pl.d.ts +36 -0
  109. package/dist/i18n/locales/pl.js +38 -2
  110. package/dist/i18n/locales/pt.d.ts +36 -0
  111. package/dist/i18n/locales/pt.js +38 -2
  112. package/dist/i18n/locales/ro.d.ts +36 -0
  113. package/dist/i18n/locales/ro.js +38 -2
  114. package/dist/i18n/locales/ru.d.ts +36 -0
  115. package/dist/i18n/locales/ru.js +38 -2
  116. package/dist/i18n/locales/sq.d.ts +36 -0
  117. package/dist/i18n/locales/sq.js +38 -2
  118. package/dist/i18n/locales/sv.d.ts +36 -0
  119. package/dist/i18n/locales/sv.js +38 -2
  120. package/dist/i18n/locales/tr.d.ts +36 -0
  121. package/dist/i18n/locales/tr.js +38 -2
  122. package/dist/i18n/locales/zh.d.ts +36 -0
  123. package/dist/i18n/locales/zh.js +38 -2
  124. package/dist/index.js +296 -292
  125. package/dist/locales/ar.json +38 -2
  126. package/dist/locales/de.json +38 -2
  127. package/dist/locales/el.json +38 -2
  128. package/dist/locales/en.json +38 -2
  129. package/dist/locales/es.json +38 -2
  130. package/dist/locales/fr.json +38 -2
  131. package/dist/locales/hi.json +38 -2
  132. package/dist/locales/it.json +38 -2
  133. package/dist/locales/ja.json +38 -2
  134. package/dist/locales/nl.json +38 -2
  135. package/dist/locales/pl.json +38 -2
  136. package/dist/locales/pt.json +38 -2
  137. package/dist/locales/ro.json +38 -2
  138. package/dist/locales/ru.json +38 -2
  139. package/dist/locales/sq.json +38 -2
  140. package/dist/locales/sv.json +38 -2
  141. package/dist/locales/tr.json +38 -2
  142. package/dist/locales/zh.json +38 -2
  143. package/dist/patterns/alia-assistant/alia-types.d.ts +22 -0
  144. package/dist/patterns/alia-assistant/index.js +7 -6
  145. package/dist/patterns/anamnesis/index.js +1 -1
  146. package/dist/patterns/calendar/index.js +1 -1
  147. package/dist/patterns/forgot-password-form/index.js +1 -1
  148. package/dist/patterns/login-form/index.js +1 -1
  149. package/dist/patterns/registration-form/index.d.ts +1 -0
  150. package/dist/patterns/registration-form/index.js +1 -1
  151. package/dist/patterns/registration-form/registration-form.d.ts +43 -0
  152. package/dist/patterns/registration-form/registration-verification.d.ts +38 -0
  153. package/dist/patterns/registration-form/use-contact-verification.d.ts +107 -0
  154. package/dist/patterns/registration-form/verification-requests.d.ts +9 -0
  155. package/dist/patterns/send-registration-link-form/index.d.ts +3 -0
  156. package/dist/patterns/send-registration-link-form/index.js +6 -0
  157. package/dist/patterns/send-registration-link-form/send-registration-link-form.d.ts +80 -0
  158. package/dist/speech/aws-transcribe.d.ts +65 -0
  159. package/dist/speech/event-stream.d.ts +13 -0
  160. package/dist/tokens.css +1 -1
  161. package/package.json +13 -1
  162. package/dist/_chunks/alia-sidebar-DZoyUFW8.js +0 -1290
  163. package/dist/_chunks/registration-form-BGSVMAga.js +0 -819
  164. package/dist/_chunks/subDays-xH7cpN6B.js +0 -8
  165. package/dist/_chunks/use-field-match-pdbEnKvO.js +0 -28
  166. package/dist/_chunks/use-registration-submit-eWAECgUC.js +0 -171
@@ -1,5 +1,5 @@
1
- import { d as s, o as i, p as o, q as m } from "./format-D-1gTdHF.js";
2
- import { i as u } from "./isSameWeek-u81Z-J7h.js";
1
+ import { e as s, p as i, q as o, r as m } from "./format--x5jypvH.js";
2
+ import { i as u } from "./isSameWeek-DyVftHWi.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-QGEs29fQ.js.map
388
+ //# sourceMappingURL=zh-CN-C657DBCO.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.73.3",
3
+ "packageVersion": "1.74.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -22310,6 +22310,14 @@
22310
22310
  "component": "phone-input",
22311
22311
  "as": "phone"
22312
22312
  },
22313
+ {
22314
+ "component": "otp-input",
22315
+ "as": "emailCode"
22316
+ },
22317
+ {
22318
+ "component": "otp-input",
22319
+ "as": "phoneCode"
22320
+ },
22313
22321
  {
22314
22322
  "component": "select",
22315
22323
  "as": "branch"
@@ -22335,7 +22343,7 @@
22335
22343
  {
22336
22344
  "name": "read_form",
22337
22345
  "safety": "read",
22338
- "description": "Read which fields the form asks for and which have a problem. The host picks the fields, so read them from the page: each one that shows sits in a wrapper with `data-field`. A field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element inside the wrapper. After a refused submit the fields with a problem are also listed in `data-component=\"error-summary\"` at the top of the form, one item per field (`data-error-field`). A message about the whole form is in `data-field=\"form\"`. An email the person cannot change is marked `readonly`. Never read or repeat the password fields.",
22346
+ "description": "Read which fields the form asks for and which have a problem. The host picks the fields, so read them from the page: each one that shows sits in a wrapper with `data-field`. A field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element inside the wrapper. After a refused submit the fields with a problem are also listed in `data-component=\"error-summary\"` at the top of the form, one item per field (`data-error-field`). A message about the whole form is in `data-field=\"form\"`. An email the person cannot change is marked `readonly`. When the host asks for a code, a field's wrapper also carries `data-verification` (`idle`, `sent` or `verified`); a verified field is `readonly`. Never read or repeat the password fields.",
22339
22347
  "descriptionKey": "ui.agent.registrationForm.workflows.readForm",
22340
22348
  "uiActions": [],
22341
22349
  "apiActions": []
@@ -22343,13 +22351,23 @@
22343
22351
  {
22344
22352
  "name": "register",
22345
22353
  "safety": "write",
22346
- "description": "Create the account (`data-action=\"submit\"`). The person fills in the fields and accepts the terms themselves; the form does not submit until every field is valid; it lists what is wrong in its error summary and moves focus there. The host then registers the account: through its `onSubmit` handler, or as a native form post to its own field names.",
22354
+ "description": "Create the account (`data-action=\"submit\"`). The person fills in the fields and accepts the terms themselves; the form does not submit until every field is valid and, when the host asks for codes, until the email and the phone are verified; it lists what is wrong in its error summary and moves focus there. The host then registers the account: through its `onSubmit` handler, or as a native form post to its own field names.",
22347
22355
  "descriptionKey": "ui.agent.registrationForm.workflows.register",
22348
22356
  "uiActions": [],
22349
22357
  "apiActions": [
22350
22358
  "account.register"
22351
22359
  ]
22352
22360
  },
22361
+ {
22362
+ "name": "verify_contact",
22363
+ "safety": "write",
22364
+ "description": "Prove an email or a phone number with a code, when the host asks for it (a field wrapper has `data-verification`). Press Send code (`data-action=\"send-code\"`) beside the field; the code goes to the person's own inbox or phone, so the person reads it and types it into the code box (`data-component=\"otp-input\"`), or presses Verify (`data-action=\"verify-code\"`). Send a new code is `data-action=\"resend-code\"` and waits a few seconds; `data-action=\"change-value\"` returns to editing. Never read or guess the code. When it is right the field becomes `readonly` and `data-verification` is `verified`. The host's server holds the verified value and checks it again on submit.",
22365
+ "descriptionKey": "ui.agent.registrationForm.workflows.verifyContact",
22366
+ "uiActions": [],
22367
+ "apiActions": [
22368
+ "account.verify_contact"
22369
+ ]
22370
+ },
22353
22371
  {
22354
22372
  "name": "dev_bypass",
22355
22373
  "safety": "write",
@@ -22502,6 +22520,72 @@
22502
22520
  }
22503
22521
  ]
22504
22522
  },
22523
+ {
22524
+ "kind": "pattern",
22525
+ "id": "send-registration-link-form",
22526
+ "composes": [
22527
+ {
22528
+ "component": "card",
22529
+ "as": "card"
22530
+ },
22531
+ {
22532
+ "component": "alert",
22533
+ "as": "notice"
22534
+ },
22535
+ {
22536
+ "component": "error-summary",
22537
+ "as": "errorSummary"
22538
+ },
22539
+ {
22540
+ "component": "form-field",
22541
+ "as": "field"
22542
+ },
22543
+ {
22544
+ "component": "email-input",
22545
+ "as": "email"
22546
+ },
22547
+ {
22548
+ "component": "email-input",
22549
+ "as": "emailConfirm"
22550
+ },
22551
+ {
22552
+ "component": "phone-input",
22553
+ "as": "phone"
22554
+ },
22555
+ {
22556
+ "component": "phone-input",
22557
+ "as": "phoneConfirm"
22558
+ },
22559
+ {
22560
+ "component": "date-picker",
22561
+ "as": "allowLoginUntil"
22562
+ },
22563
+ {
22564
+ "component": "button",
22565
+ "as": "submit"
22566
+ }
22567
+ ],
22568
+ "workflows": [
22569
+ {
22570
+ "name": "read_form",
22571
+ "safety": "read",
22572
+ "description": "Read which fields have a problem. Each field sits in a wrapper with `data-field`; a field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element. After a refused submit the fields with a problem are listed in `data-component=\"error-summary\"`. After a send the root has `data-state=\"sent\"` and the result is in `data-slot=\"sent\"`.",
22573
+ "descriptionKey": "ui.agent.sendRegistrationLinkForm.workflows.readForm",
22574
+ "uiActions": [],
22575
+ "apiActions": []
22576
+ },
22577
+ {
22578
+ "name": "send_link",
22579
+ "safety": "write",
22580
+ "description": "Send the registration link (`data-action=\"submit\"`). The person fills in the email twice, a mobile phone twice and the last day login is allowed; the form does not submit until every field is valid. The host then sends the email through a native form post or its `onSubmit` handler.",
22581
+ "descriptionKey": "ui.agent.sendRegistrationLinkForm.workflows.sendLink",
22582
+ "uiActions": [],
22583
+ "apiActions": [
22584
+ "doctor.sendRegistrationLink"
22585
+ ]
22586
+ }
22587
+ ]
22588
+ },
22505
22589
  {
22506
22590
  "kind": "pattern",
22507
22591
  "id": "services",
@@ -2029,8 +2029,9 @@
2029
2029
  },
2030
2030
  "registrationForm": {
2031
2031
  "workflows": {
2032
- "readForm": "Read which fields the form asks for and which have a problem. The host picks the fields, so read them from the page: each one that shows sits in a wrapper with `data-field`. A field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element inside the wrapper. After a refused submit the fields with a problem are also listed in `data-component=\"error-summary\"` at the top of the form, one item per field (`data-error-field`). A message about the whole form is in `data-field=\"form\"`. An email the person cannot change is marked `readonly`. Never read or repeat the password fields.",
2033
- "register": "Create the account (`data-action=\"submit\"`). The person fills in the fields and accepts the terms themselves; the form does not submit until every field is valid; it lists what is wrong in its error summary and moves focus there. The host then registers the account: through its `onSubmit` handler, or as a native form post to its own field names.",
2032
+ "readForm": "Read which fields the form asks for and which have a problem. The host picks the fields, so read them from the page: each one that shows sits in a wrapper with `data-field`. A field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element inside the wrapper. After a refused submit the fields with a problem are also listed in `data-component=\"error-summary\"` at the top of the form, one item per field (`data-error-field`). A message about the whole form is in `data-field=\"form\"`. An email the person cannot change is marked `readonly`. When the host asks for a code, a field's wrapper also carries `data-verification` (`idle`, `sent` or `verified`); a verified field is `readonly`. Never read or repeat the password fields.",
2033
+ "register": "Create the account (`data-action=\"submit\"`). The person fills in the fields and accepts the terms themselves; the form does not submit until every field is valid and, when the host asks for codes, until the email and the phone are verified; it lists what is wrong in its error summary and moves focus there. The host then registers the account: through its `onSubmit` handler, or as a native form post to its own field names.",
2034
+ "verifyContact": "Prove an email or a phone number with a code, when the host asks for it (a field wrapper has `data-verification`). Press Send code (`data-action=\"send-code\"`) beside the field; the code goes to the person's own inbox or phone, so the person reads it and types it into the code box (`data-component=\"otp-input\"`), or presses Verify (`data-action=\"verify-code\"`). Send a new code is `data-action=\"resend-code\"` and waits a few seconds; `data-action=\"change-value\"` returns to editing. Never read or guess the code. When it is right the field becomes `readonly` and `data-verification` is `verified`. The host's server holds the verified value and checks it again on submit.",
2034
2035
  "devBypass": "Development only: press the shortcut (`data-component=\"dev-bypass-button\"`). It puts the values the host supplied into the fields that show, as if typed, and submits the form through the normal path when the host asked for that; a host may instead run a handler of its own, such as a development-only route. The kit holds no test data. The button is present only when the host's server reports a development environment, and what it submits is checked by the server like any other submit."
2035
2036
  }
2036
2037
  },
@@ -2045,6 +2046,12 @@
2045
2046
  "dismissAlert": "Dismiss an item from the top-of-page alerts strip. Persists the dismissal so it stays hidden."
2046
2047
  }
2047
2048
  },
2049
+ "sendRegistrationLinkForm": {
2050
+ "workflows": {
2051
+ "readForm": "Read which fields have a problem. Each field sits in a wrapper with `data-field`; a field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element. After a refused submit the fields with a problem are listed in `data-component=\"error-summary\"`. After a send the root has `data-state=\"sent\"` and the result is in `data-slot=\"sent\"`.",
2052
+ "sendLink": "Send the registration link (`data-action=\"submit\"`). The person fills in the email twice, a mobile phone twice and the last day login is allowed; the form does not submit until every field is valid. The host then sends the email through a native form post or its `onSubmit` handler."
2053
+ }
2054
+ },
2048
2055
  "services": {
2049
2056
  "workflows": {
2050
2057
  "filterServices": "Narrow the catalogue by name, code, category, VAT rate or active status using the per-column filters.",
@@ -0,0 +1,52 @@
1
+ import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
+ import { useId as d } from "react";
3
+ function c({
4
+ className: n,
5
+ size: e,
6
+ variant: t = "gradient"
7
+ }) {
8
+ const o = `alia-asteroid-gradient-${d().replace(/:/g, "")}`;
9
+ return /* @__PURE__ */ i(
10
+ "svg",
11
+ {
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ viewBox: "0 0 24 24",
14
+ width: e,
15
+ height: e,
16
+ fill: "none",
17
+ strokeLinecap: "round",
18
+ strokeLinejoin: "round",
19
+ strokeWidth: "2",
20
+ "aria-hidden": "true",
21
+ className: n,
22
+ children: [
23
+ t === "gradient" ? /* @__PURE__ */ r("defs", { children: /* @__PURE__ */ i(
24
+ "linearGradient",
25
+ {
26
+ id: o,
27
+ gradientUnits: "userSpaceOnUse",
28
+ x1: "0",
29
+ y1: "12",
30
+ x2: "24",
31
+ y2: "12",
32
+ children: [
33
+ /* @__PURE__ */ r("stop", { offset: "0%", stopColor: "var(--accent)" }),
34
+ /* @__PURE__ */ r("stop", { offset: "100%", stopColor: "var(--primary)" })
35
+ ]
36
+ }
37
+ ) }) : null,
38
+ /* @__PURE__ */ r(
39
+ "path",
40
+ {
41
+ d: "M12.983 21.186a1 1 0 0 1-1.966 0 10 10 0 0 0-8.203-8.203 1 1 0 0 1 0-1.966 10 10 0 0 0 8.203-8.203 1 1 0 0 1 1.966 0 10 10 0 0 0 8.203 8.203 1 1 0 0 1 0 1.966 10 10 0 0 0-8.203 8.203",
42
+ stroke: t === "gradient" ? `url(#${o})` : "currentColor"
43
+ }
44
+ )
45
+ ]
46
+ }
47
+ );
48
+ }
49
+ export {
50
+ c as AliaAsteroidIcon
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,320 @@
1
+ var V = Object.defineProperty;
2
+ var $ = (t, e, n) => e in t ? V(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
+ var D = (t, e, n) => $(t, typeof e != "symbol" ? e + "" : e, n);
4
+ const J = (() => {
5
+ const t = new Uint32Array(256);
6
+ for (let e = 0; e < 256; e++) {
7
+ let n = e;
8
+ for (let r = 0; r < 8; r++)
9
+ n = n & 1 ? n >>> 1 ^ 3988292384 : n >>> 1;
10
+ t[e] = n >>> 0;
11
+ }
12
+ return t;
13
+ })();
14
+ function C(t) {
15
+ let e = 4294967295;
16
+ for (let n = 0; n < t.length; n++)
17
+ e = (J[(e ^ t[n]) & 255] ^ e >>> 8) >>> 0;
18
+ return (e ^ 4294967295) >>> 0;
19
+ }
20
+ const B = 7, m = 12, W = new TextEncoder(), P = new TextDecoder();
21
+ function K(t) {
22
+ const e = Object.entries(t).map(([s, o]) => {
23
+ const a = W.encode(s), u = W.encode(o), c = new Uint8Array(
24
+ 1 + a.length + 1 + 2 + u.length
25
+ ), i = new DataView(c.buffer);
26
+ let h = 0;
27
+ return i.setUint8(h, a.length), h += 1, c.set(a, h), h += a.length, i.setUint8(h, B), h += 1, i.setUint16(h, u.length), h += 2, c.set(u, h), c;
28
+ }), n = new Uint8Array(e.reduce((s, o) => s + o.length, 0));
29
+ let r = 0;
30
+ for (const s of e)
31
+ n.set(s, r), r += s.length;
32
+ return n;
33
+ }
34
+ function H(t, e) {
35
+ const n = K(t), r = m + n.length + e.length + 4, s = new Uint8Array(r), o = new DataView(s.buffer);
36
+ return o.setUint32(0, r), o.setUint32(4, n.length), o.setUint32(8, C(s.subarray(0, 8))), s.set(n, m), s.set(e, m + n.length), o.setUint32(r - 4, C(s.subarray(0, r - 4))), s;
37
+ }
38
+ function Y(t) {
39
+ const e = new Uint8Array(t);
40
+ if (e.length < m + 4)
41
+ throw new Error("event-stream: frame too short");
42
+ const n = new DataView(t), r = n.getUint32(0), s = n.getUint32(4);
43
+ if (r !== e.length || m + s + 4 > r)
44
+ throw new Error("event-stream: lengths do not match the frame");
45
+ if (n.getUint32(8) !== C(e.subarray(0, 8)))
46
+ throw new Error("event-stream: prelude checksum mismatch");
47
+ if (n.getUint32(r - 4) !== C(e.subarray(0, r - 4)))
48
+ throw new Error("event-stream: message checksum mismatch");
49
+ const o = {};
50
+ let a = m;
51
+ const u = m + s;
52
+ for (; a < u; ) {
53
+ const c = n.getUint8(a);
54
+ a += 1;
55
+ const i = P.decode(e.subarray(a, a + c));
56
+ if (a += c, n.getUint8(a) !== B) break;
57
+ a += 1;
58
+ const h = n.getUint16(a);
59
+ a += 2, o[i] = P.decode(
60
+ e.subarray(a, a + h)
61
+ ), a += h;
62
+ }
63
+ return { headers: o, payload: e.slice(u, r - 4) };
64
+ }
65
+ function j(t) {
66
+ return H(
67
+ {
68
+ ":content-type": "application/octet-stream",
69
+ ":event-type": "AudioEvent",
70
+ ":message-type": "event"
71
+ },
72
+ t
73
+ );
74
+ }
75
+ class g extends Error {
76
+ constructor(n, r) {
77
+ super(
78
+ r ? `AWS Transcribe: ${n} (${r})` : `AWS Transcribe: ${n}`
79
+ );
80
+ D(this, "code");
81
+ this.name = "AwsTranscribeError", this.code = n;
82
+ }
83
+ }
84
+ const q = {
85
+ de: "de-DE",
86
+ en: "en-GB",
87
+ es: "es-ES",
88
+ fr: "fr-FR",
89
+ it: "it-IT",
90
+ pt: "pt-PT"
91
+ };
92
+ function ie(t) {
93
+ return q[t.toLowerCase().split(/[-_]/)[0] ?? ""] ?? null;
94
+ }
95
+ const Q = [8e3, 16e3, 44100, 48e3];
96
+ function X(t) {
97
+ const e = Math.round(t);
98
+ return Q.reduce(
99
+ (n, r) => Math.abs(r - e) < Math.abs(n - e) ? r : n
100
+ );
101
+ }
102
+ function Z(t, e, n) {
103
+ if (e === n) return t;
104
+ const r = e / n, s = new Float32Array(Math.max(1, Math.round(t.length / r)));
105
+ for (let o = 0; o < s.length; o++) {
106
+ const a = o * r, u = Math.floor(a), c = t[u] ?? 0, i = t[u + 1] ?? c;
107
+ s[o] = c + (i - c) * (a - u);
108
+ }
109
+ return s;
110
+ }
111
+ function ee(t) {
112
+ const e = new Uint8Array(t.length * 2), n = new DataView(e.buffer);
113
+ for (let r = 0; r < t.length; r++) {
114
+ const s = Math.max(-1, Math.min(1, t[r] ?? 0));
115
+ n.setInt16(r * 2, s < 0 ? s * 32768 : s * 32767, !0);
116
+ }
117
+ return e;
118
+ }
119
+ function te(t) {
120
+ var r, s, o;
121
+ const e = t;
122
+ return (((r = e == null ? void 0 : e.Transcript) == null ? void 0 : r.Results) ?? ((o = (s = e == null ? void 0 : e.TranscriptEvent) == null ? void 0 : s.Transcript) == null ? void 0 : o.Results) ?? []).flatMap((a) => {
123
+ var c, i;
124
+ const u = (i = (c = a.Alternatives) == null ? void 0 : c[0]) == null ? void 0 : i.Transcript;
125
+ return typeof u == "string" ? [{ text: u, partial: a.IsPartial === !0 }] : [];
126
+ });
127
+ }
128
+ function G() {
129
+ if (typeof window > "u") return;
130
+ const t = window;
131
+ return t.AudioContext ?? t.webkitAudioContext;
132
+ }
133
+ function ne() {
134
+ var t;
135
+ return typeof navigator < "u" && typeof ((t = navigator.mediaDevices) == null ? void 0 : t.getUserMedia) == "function" && G() !== void 0 && typeof WebSocket < "u";
136
+ }
137
+ const re = 3e3, _ = "alfadocs-aws-transcribe-capture", oe = `class Capture extends AudioWorkletProcessor {
138
+ constructor(options) {
139
+ super();
140
+ this.size = (options && options.processorOptions && options.processorOptions.chunk) || 2048;
141
+ this.buffer = new Float32Array(this.size);
142
+ this.offset = 0;
143
+ }
144
+ process(inputs) {
145
+ const channel = inputs[0] && inputs[0][0];
146
+ if (!channel) return true;
147
+ for (let i = 0; i < channel.length; i++) {
148
+ this.buffer[this.offset++] = channel[i];
149
+ if (this.offset >= this.size) {
150
+ this.port.postMessage(this.buffer.slice());
151
+ this.offset = 0;
152
+ }
153
+ }
154
+ return true;
155
+ }
156
+ }
157
+ registerProcessor(${JSON.stringify(_)}, Capture);`;
158
+ async function se(t, e, n) {
159
+ if (t.audioWorklet && typeof AudioWorkletNode < "u") {
160
+ const o = URL.createObjectURL(
161
+ new Blob([oe], { type: "text/javascript" })
162
+ );
163
+ try {
164
+ await t.audioWorklet.addModule(o);
165
+ const a = new AudioWorkletNode(t, _, {
166
+ processorOptions: { chunk: e }
167
+ });
168
+ return a.port.onmessage = (u) => n(u.data), a;
169
+ } catch {
170
+ } finally {
171
+ URL.revokeObjectURL(o);
172
+ }
173
+ }
174
+ let r = 1024;
175
+ for (; r < e && r < 16384; ) r *= 2;
176
+ const s = t.createScriptProcessor(r, 1, 1);
177
+ return s.onaudioprocess = (o) => n(o.inputBuffer.getChannelData(0).slice()), s;
178
+ }
179
+ function ae(t) {
180
+ return t && typeof t == "object" && "name" in t ? String(t.name) : void 0;
181
+ }
182
+ function ue(t) {
183
+ return async ({ signal: e, onPartialTranscript: n, onFinalTranscript: r }) => {
184
+ const s = G();
185
+ if (!s || !ne())
186
+ throw new g("unsupported");
187
+ if (e.aborted) return;
188
+ let o;
189
+ try {
190
+ o = new s({ sampleRate: 48e3 });
191
+ } catch {
192
+ o = new s();
193
+ }
194
+ const a = o.sampleRate || 48e3, u = X(a), c = Math.max(1024, Math.round(a * 0.05));
195
+ let i = null;
196
+ const h = [], v = () => {
197
+ for (const p of h.splice(0)) {
198
+ "port" in p && (p.port.onmessage = null), "onaudioprocess" in p && (p.onaudioprocess = null);
199
+ try {
200
+ p.disconnect();
201
+ } catch {
202
+ }
203
+ }
204
+ i == null || i.getTracks().forEach((p) => p.stop()), i = null, o.state !== "closed" && o.close().catch(() => {
205
+ });
206
+ };
207
+ try {
208
+ o.state === "suspended" && await o.resume();
209
+ } catch {
210
+ throw v(), new g("unsupported", "audio context");
211
+ }
212
+ const I = typeof t.languageCode == "function" ? t.languageCode() : t.languageCode, [E, A] = await Promise.allSettled([
213
+ navigator.mediaDevices.getUserMedia({
214
+ audio: {
215
+ channelCount: 1,
216
+ echoCancellation: !1,
217
+ noiseSuppression: !0,
218
+ autoGainControl: !0
219
+ }
220
+ }),
221
+ t.getUrl(
222
+ { languageCode: I, mediaEncoding: "pcm", sampleRate: u },
223
+ e
224
+ )
225
+ ]);
226
+ if (E.status === "fulfilled" && (i = E.value), e.aborted || E.status === "rejected" || A.status === "rejected") {
227
+ if (v(), e.aborted) return;
228
+ if (E.status === "rejected") {
229
+ const p = ae(E.reason);
230
+ throw p === "NotAllowedError" || p === "PermissionDeniedError" || p === "SecurityError" ? new g("permission") : new g("unsupported", p);
231
+ }
232
+ throw new g(
233
+ "url",
234
+ A.status === "rejected" && A.reason instanceof Error ? A.reason.message : void 0
235
+ );
236
+ }
237
+ const F = A.value;
238
+ let l;
239
+ try {
240
+ l = new WebSocket(F), l.binaryType = "arraybuffer";
241
+ } catch {
242
+ throw v(), new g("connection");
243
+ }
244
+ return new Promise((p, z) => {
245
+ let U = !1, S = "", x = null, M, w = new Float32Array(0);
246
+ const R = (d) => {
247
+ l.readyState !== WebSocket.OPEN || d.length === 0 || l.send(
248
+ j(ee(Z(d, a, u)))
249
+ );
250
+ }, k = (d) => {
251
+ for (; w.length >= c; )
252
+ R(w.subarray(0, c)), w = w.slice(c);
253
+ d && w.length && (R(w), w = new Float32Array(0));
254
+ }, b = (d) => {
255
+ if (U) return;
256
+ U = !0, clearTimeout(M), e.removeEventListener("abort", L), v(), l.onopen = l.onmessage = l.onerror = l.onclose = null, (l.readyState === WebSocket.OPEN || l.readyState === WebSocket.CONNECTING) && l.close();
257
+ const f = S.trim();
258
+ S = "", n(""), f && r(f), d && !e.aborted ? z(d) : p();
259
+ };
260
+ function L() {
261
+ U || (v(), l.readyState === WebSocket.OPEN ? (k(!0), l.send(j(new Uint8Array(0))), M = setTimeout(() => b(), re)) : b());
262
+ }
263
+ e.addEventListener("abort", L, { once: !0 }), l.onopen = () => {
264
+ if (!i) return b();
265
+ se(o, c, (d) => {
266
+ const f = new Float32Array(w.length + d.length);
267
+ f.set(w), f.set(d, w.length), w = f, k(!1);
268
+ }).then((d) => {
269
+ if (U || !i) return;
270
+ const f = o.createMediaStreamSource(i), y = o.createGain();
271
+ y.gain.value = 0, h.push(f, d, y), f.connect(d), d.connect(y), y.connect(o.destination);
272
+ }).catch(
273
+ () => b(new g("unsupported", "audio graph"))
274
+ );
275
+ }, l.onmessage = (d) => {
276
+ let f;
277
+ try {
278
+ f = Y(d.data);
279
+ } catch {
280
+ return;
281
+ }
282
+ const y = f.headers[":message-type"];
283
+ if (y === "exception") {
284
+ x = new g(
285
+ "service",
286
+ f.headers[":exception-type"] ?? f.headers[":error-code"]
287
+ );
288
+ return;
289
+ }
290
+ if (y !== "event" || f.headers[":event-type"] !== "TranscriptEvent")
291
+ return;
292
+ let N;
293
+ try {
294
+ N = JSON.parse(new TextDecoder().decode(f.payload));
295
+ } catch {
296
+ return;
297
+ }
298
+ for (const T of te(N))
299
+ if (T.partial)
300
+ S = T.text, n(T.text);
301
+ else {
302
+ S = "", n("");
303
+ const O = T.text.trim();
304
+ O && r(O);
305
+ }
306
+ }, l.onerror = () => b(x ?? new g("connection")), l.onclose = () => b(x ?? void 0);
307
+ });
308
+ };
309
+ }
310
+ export {
311
+ g as AwsTranscribeError,
312
+ ie as awsLanguageCode,
313
+ ue as createAwsTranscribeDictation,
314
+ ne as isAwsTranscribeSupported,
315
+ Z as resample,
316
+ ee as toPcm16,
317
+ te as transcriptResults,
318
+ X as transmitSampleRate
319
+ };
320
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-BWbOiLVw.js";
1
+ import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-BFslxbRr.js";
2
2
  export {
3
3
  e as AppointmentDetailsPanel,
4
4
  n as appointmentDetailsPanelAgent,
@@ -1,4 +1,4 @@
1
- import { A as i, a as t } from "../../_chunks/appointment-timeline-CKwMXUid.js";
1
+ import { A as i, a as t } from "../../_chunks/appointment-timeline-1-Za2miy.js";
2
2
  export {
3
3
  i as AppointmentTimeline,
4
4
  t as appointmentTimelineAgent
@@ -1,4 +1,4 @@
1
- import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-4BCeh7OY.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-sq9sa29d.js";
2
2
  export {
3
3
  A as Booking,
4
4
  R as CONFIRMATION_CHANNEL_ORDER,
@@ -1,4 +1,4 @@
1
- import { C as e, L as l, p as r } from "../../_chunks/cycle-calculator-Ycp3li61.js";
1
+ import { C as e, L as l, p as r } from "../../_chunks/cycle-calculator-HO3s5InI.js";
2
2
  export {
3
3
  e as CycleCalculator,
4
4
  l as LUTEAL_PHASE_DAYS,
@@ -1,6 +1,6 @@
1
1
  import { D as r, E as l, T as t, a as s, b as d, c as o, d as n, e as i, f as R, i as C, g as T } from "../../_chunks/data-table-DTKGWUQm.js";
2
2
  import { B as g, C as D, a as b, E as x, b as c, R as p, T as u, c as m, r as E, u as f } from "../../_chunks/editable-currency-cell-renderer-rWYiF4EI.js";
3
- import { D as h, a as A, b as w, I as y, L as I, N as L, c as N, S as P, d as W, e as B, T as U, f as _, g as k, U as v } from "../../_chunks/link-cell-renderer-BDxxpfJM.js";
3
+ import { D as h, a as A, b as w, I as y, L as I, N as L, c as N, S as P, d as W, e as B, T as U, f as _, g as k, U as v } from "../../_chunks/link-cell-renderer-B0riA_h_.js";
4
4
  import { A as X, a as j } from "../../_chunks/actions-cell-renderer-B1yaOfQM.js";
5
5
  export {
6
6
  X as ActionsCellRenderer,
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/date-picker-KcoNNsM0.js";
1
+ import { D as r, d as t } from "../../_chunks/date-picker-CdhXlgVI.js";
2
2
  export {
3
3
  r as DatePicker,
4
4
  t as datePickerAgent
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/date-range-picker-CjcjUJLW.js";
1
+ import { D as r, d as t } from "../../_chunks/date-range-picker-B_j4VQlV.js";
2
2
  export {
3
3
  r as DateRangePicker,
4
4
  t as dateRangePickerAgent
@@ -1,4 +1,4 @@
1
- import { D as i, d as r } from "../../_chunks/date-time-picker-BVQNZ4yC.js";
1
+ import { D as i, d as r } from "../../_chunks/date-time-picker-n-yrlMJq.js";
2
2
  export {
3
3
  i as DateTimePicker,
4
4
  r as dateTimePickerAgent
@@ -1,5 +1,5 @@
1
- import { D as e } from "../../_chunks/due-date-calculator-B0gyOijA.js";
2
- import { C as r, a as o, D, G as _, M as T, T as M, c as E, b as l, g as C, p as A, r as N, d as i, t as n } from "../../_chunks/antenatal-schedule-timeline-DW_qkGo1.js";
1
+ import { D as e } from "../../_chunks/due-date-calculator-CDWTSblh.js";
2
+ import { C as r, a as o, D, G as _, M as T, T as M, c as E, b as l, g as C, p as A, r as N, d as i, t as n } from "../../_chunks/antenatal-schedule-timeline-BGewPfEX.js";
3
3
  export {
4
4
  r as CRL_DATING_MAX_MM,
5
5
  o as CRL_DATING_MIN_MM,
@@ -1,4 +1,4 @@
1
- import { G as t } from "../../_chunks/gestational-age-calculator-Bu_a-K9z.js";
1
+ import { G as t } from "../../_chunks/gestational-age-calculator-CTHeJJdb.js";
2
2
  export {
3
3
  t as GestationalAgeCalculator
4
4
  };
@@ -1,4 +1,4 @@
1
- import { H, M as g, a as o } from "../../_chunks/hcg-doubling-BnopYgd-.js";
1
+ import { H, M as g, a as o } from "../../_chunks/hcg-doubling-BBk-a33g.js";
2
2
  export {
3
3
  H as HcgDoubling,
4
4
  g as MINIMAL_48H_RISE_PERCENT,
@@ -233,6 +233,7 @@ export * from '../patterns/login-form';
233
233
  export * from '../patterns/marketplace-app-shell';
234
234
  export * from '../patterns/payment-automation-upsell';
235
235
  export * from '../patterns/registration-form';
236
+ export * from '../patterns/send-registration-link-form';
236
237
  export * from '../patterns/signature-request';
237
238
  export * from '../patterns/signed-out-frame';
238
239
  export * from '../patterns/workflow-webhook-action';
@@ -1,4 +1,4 @@
1
- import { N as a } from "../../_chunks/notes-panel-C_QshXyI.js";
1
+ import { N as a } from "../../_chunks/notes-panel-CxjMovCh.js";
2
2
  export {
3
3
  a as NotesPanel
4
4
  };
@@ -1,4 +1,4 @@
1
- import { P as e, p as i } from "../../_chunks/patient-details-Cd_dCqkg.js";
1
+ import { P as e, p as i } from "../../_chunks/patient-details-Dgd_tocD.js";
2
2
  export {
3
3
  e as PatientDetails,
4
4
  i as patientDetailsAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as m } from "../../_chunks/patient-summary-card-BSOHR4Ol.js";
1
+ import { P as t, p as m } from "../../_chunks/patient-summary-card-BTKvFUmh.js";
2
2
  export {
3
3
  t as PatientSummaryCard,
4
4
  m as patientSummaryCardAgent