@alfadocs/ui-kit-debug 1.93.1 → 1.95.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 (230) hide show
  1. package/dist/_chunks/{ai-prompt-input-DH_rnV-F.js → ai-prompt-input-CG9BEggs.js} +2 -2
  2. package/dist/_chunks/{ai-prompt-input-DH_rnV-F.js.map → ai-prompt-input-CG9BEggs.js.map} +1 -1
  3. package/dist/_chunks/{anamnesis-summary-rows-EKPfVCmh.js → anamnesis-summary-rows-DTZ3per6.js} +4 -4
  4. package/dist/_chunks/{anamnesis-summary-rows-EKPfVCmh.js.map → anamnesis-summary-rows-DTZ3per6.js.map} +1 -1
  5. package/dist/_chunks/{audio-recorder-m7Jqvvcl.js → audio-recorder-BOm2FgEu.js} +2 -2
  6. package/dist/_chunks/{audio-recorder-m7Jqvvcl.js.map → audio-recorder-BOm2FgEu.js.map} +1 -1
  7. package/dist/_chunks/{balance-badge-cell-BtJvre1-.js → balance-badge-cell-vZxbOFgP.js} +4 -4
  8. package/dist/_chunks/{balance-badge-cell-BtJvre1-.js.map → balance-badge-cell-vZxbOFgP.js.map} +1 -1
  9. package/dist/_chunks/{bishop-score-C5di6oAV.js → bishop-score-BBYuyk2k.js} +2 -2
  10. package/dist/_chunks/{bishop-score-C5di6oAV.js.map → bishop-score-BBYuyk2k.js.map} +1 -1
  11. package/dist/_chunks/{calendar-appointment-editor-dialog-sJKLoVJ2.js → calendar-appointment-editor-dialog-WDKc3jMA.js} +6 -6
  12. package/dist/_chunks/{calendar-appointment-editor-dialog-sJKLoVJ2.js.map → calendar-appointment-editor-dialog-WDKc3jMA.js.map} +1 -1
  13. package/dist/_chunks/chart-pMkQN-qy.js +1550 -0
  14. package/dist/_chunks/chart-pMkQN-qy.js.map +1 -0
  15. package/dist/_chunks/{data-table-CqQgoNsU.js → data-table-C_nnpJ-Q.js} +2 -2
  16. package/dist/_chunks/{data-table-CqQgoNsU.js.map → data-table-C_nnpJ-Q.js.map} +1 -1
  17. package/dist/_chunks/{date-time-picker-n-yrlMJq.js → date-time-picker-cwsWiB4q.js} +2 -2
  18. package/dist/_chunks/{date-time-picker-n-yrlMJq.js.map → date-time-picker-cwsWiB4q.js.map} +1 -1
  19. package/dist/_chunks/{document-preview-QEbr7jp1.js → document-preview-ytR1FcWA.js} +2 -2
  20. package/dist/_chunks/{document-preview-QEbr7jp1.js.map → document-preview-ytR1FcWA.js.map} +1 -1
  21. package/dist/_chunks/{file-manager-BnI1ZWZu.js → file-manager-CAIbuaSs.js} +2 -2
  22. package/dist/_chunks/{file-manager-BnI1ZWZu.js.map → file-manager-CAIbuaSs.js.map} +1 -1
  23. package/dist/_chunks/{gestational-age-calculator-Dr9hdDta.js → gestational-age-calculator-Dn8IOXHB.js} +2 -2
  24. package/dist/_chunks/{gestational-age-calculator-Dr9hdDta.js.map → gestational-age-calculator-Dn8IOXHB.js.map} +1 -1
  25. package/dist/_chunks/group-options-BvKhQ3xb.js.map +1 -1
  26. package/dist/_chunks/{hcg-doubling-K41Wy7LB.js → hcg-doubling-DQe1ptNB.js} +2 -2
  27. package/dist/_chunks/{hcg-doubling-K41Wy7LB.js.map → hcg-doubling-DQe1ptNB.js.map} +1 -1
  28. package/dist/_chunks/{heatmap-fCxwNz2o.js → heatmap-DdF8qTTV.js} +2 -2
  29. package/dist/_chunks/{heatmap-fCxwNz2o.js.map → heatmap-DdF8qTTV.js.map} +1 -1
  30. package/dist/_chunks/{kit-extensions-a0G4COFH.js → kit-extensions-44gudqqq.js} +3 -3
  31. package/dist/_chunks/{kit-extensions-a0G4COFH.js.map → kit-extensions-44gudqqq.js.map} +1 -1
  32. package/dist/_chunks/{link-cell-renderer-BS3V4LA6.js → link-cell-renderer-OmvrkUeN.js} +2 -2
  33. package/dist/_chunks/{link-cell-renderer-BS3V4LA6.js.map → link-cell-renderer-OmvrkUeN.js.map} +1 -1
  34. package/dist/_chunks/{muscle-scheme-C66WlCxG.js → muscle-scheme-B7qMW0ho.js} +2 -2
  35. package/dist/_chunks/{muscle-scheme-C66WlCxG.js.map → muscle-scheme-B7qMW0ho.js.map} +1 -1
  36. package/dist/_chunks/{operator-hero-C_5B-8Qp.js → operator-hero-D_0KoEuJ.js} +31 -31
  37. package/dist/_chunks/operator-hero-D_0KoEuJ.js.map +1 -0
  38. package/dist/_chunks/{optical-prescription-CMM1Y6Xg.js → optical-prescription-BGVeDVSP.js} +2 -2
  39. package/dist/_chunks/{optical-prescription-CMM1Y6Xg.js.map → optical-prescription-BGVeDVSP.js.map} +1 -1
  40. package/dist/_chunks/{patient-details-BjcUpD9S.js → patient-details-DTlpBYHJ.js} +2 -2
  41. package/dist/_chunks/{patient-details-BjcUpD9S.js.map → patient-details-DTlpBYHJ.js.map} +1 -1
  42. package/dist/_chunks/{patient-field-row-B0tdiaWi.js → patient-field-row-DWTKV1hF.js} +2 -2
  43. package/dist/_chunks/{patient-field-row-B0tdiaWi.js.map → patient-field-row-DWTKV1hF.js.map} +1 -1
  44. package/dist/_chunks/{patient-summary-card-Cvv6_Ugk.js → patient-summary-card-C61AR4Tn.js} +2 -2
  45. package/dist/_chunks/{patient-summary-card-Cvv6_Ugk.js.map → patient-summary-card-C61AR4Tn.js.map} +1 -1
  46. package/dist/_chunks/{pregnancy-dating-BHvfDxz4.js → pregnancy-dating-CuVj9KGR.js} +2 -2
  47. package/dist/_chunks/{pregnancy-dating-BHvfDxz4.js.map → pregnancy-dating-CuVj9KGR.js.map} +1 -1
  48. package/dist/_chunks/{registration-form-CRm6DaB9.js → registration-form-BygI73vG.js} +2 -2
  49. package/dist/_chunks/{registration-form-CRm6DaB9.js.map → registration-form-BygI73vG.js.map} +1 -1
  50. package/dist/_chunks/{reserved.agent-DnPwaa4u.js → reserved.agent-BvwjDyne.js} +3 -3
  51. package/dist/_chunks/{reserved.agent-DnPwaa4u.js.map → reserved.agent-BvwjDyne.js.map} +1 -1
  52. package/dist/_chunks/{select-4S-eYZUf.js → select-BBDRYxJl.js} +247 -241
  53. package/dist/_chunks/select-BBDRYxJl.js.map +1 -0
  54. package/dist/_chunks/signature-request-BVGeF0qB.js +2774 -0
  55. package/dist/_chunks/signature-request-BVGeF0qB.js.map +1 -0
  56. package/dist/_chunks/{slot-grid-B-IAFX3C.js → slot-grid-BhjaLJ0o.js} +229 -214
  57. package/dist/_chunks/{slot-grid-B-IAFX3C.js.map → slot-grid-BhjaLJ0o.js.map} +1 -1
  58. package/dist/_chunks/{tabs-BTj-2qMZ.js → tabs-BmxQu-TJ.js} +2 -2
  59. package/dist/_chunks/{tabs-BTj-2qMZ.js.map → tabs-BmxQu-TJ.js.map} +1 -1
  60. package/dist/_chunks/{task-editor-CI1SKUNc.js → task-editor-Cv7xSakv.js} +3 -3
  61. package/dist/_chunks/{task-editor-CI1SKUNc.js.map → task-editor-Cv7xSakv.js.map} +1 -1
  62. package/dist/_chunks/{tasks-panel-BkjtgjQ8.js → tasks-panel-BTCYGLGA.js} +2 -2
  63. package/dist/_chunks/{tasks-panel-BkjtgjQ8.js.map → tasks-panel-BTCYGLGA.js.map} +1 -1
  64. package/dist/_chunks/time-picker-DSt-ns5F.js +914 -0
  65. package/dist/_chunks/time-picker-DSt-ns5F.js.map +1 -0
  66. package/dist/_chunks/{unit-converter-BH5ueIhT.js → unit-converter-C95sa5y8.js} +2 -2
  67. package/dist/_chunks/{unit-converter-BH5ueIhT.js.map → unit-converter-C95sa5y8.js.map} +1 -1
  68. package/dist/_chunks/{use-appointment-details-read-D8vDg0sg.js → use-appointment-details-read-B6uhmNdV.js} +2 -2
  69. package/dist/_chunks/{use-appointment-details-read-D8vDg0sg.js.map → use-appointment-details-read-B6uhmNdV.js.map} +1 -1
  70. package/dist/_chunks/{voice-control-panel-BP0otrID.js → voice-control-panel-BGJjUwnY.js} +2 -2
  71. package/dist/_chunks/{voice-control-panel-BP0otrID.js.map → voice-control-panel-BGJjUwnY.js.map} +1 -1
  72. package/dist/agent-catalog.json +20 -8
  73. package/dist/agent-i18n/en.json +6 -6
  74. package/dist/apexcharts.css +4 -1
  75. package/dist/components/_shared/group-options.d.ts +2 -2
  76. package/dist/components/_shared/group-options.d.ts.map +1 -1
  77. package/dist/components/ai-prompt-input/index.js +1 -1
  78. package/dist/components/appointment-details-panel/index.js +1 -1
  79. package/dist/components/audio-recorder/index.js +1 -1
  80. package/dist/components/bishop-score/index.js +1 -1
  81. package/dist/components/booking/index.js +1 -1
  82. package/dist/components/chart/chart-axis-scale.d.ts +21 -0
  83. package/dist/components/chart/chart-axis-scale.d.ts.map +1 -0
  84. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  85. package/dist/components/chart/chart.d.ts +55 -0
  86. package/dist/components/chart/chart.d.ts.map +1 -1
  87. package/dist/components/chart/index.d.ts +1 -1
  88. package/dist/components/chart/index.d.ts.map +1 -1
  89. package/dist/components/chart/index.js +1 -1
  90. package/dist/components/data-table/index.js +2 -2
  91. package/dist/components/date-time-picker/index.js +1 -1
  92. package/dist/components/document-preview/index.js +1 -1
  93. package/dist/components/file-manager/index.js +1 -1
  94. package/dist/components/gestational-age-calculator/index.js +1 -1
  95. package/dist/components/hcg-doubling/index.js +1 -1
  96. package/dist/components/heatmap/index.js +1 -1
  97. package/dist/components/muscle-scheme/index.js +1 -1
  98. package/dist/components/operator-hero/index.js +1 -1
  99. package/dist/components/operator-hero/operator-hero.d.ts +3 -2
  100. package/dist/components/operator-hero/operator-hero.d.ts.map +1 -1
  101. package/dist/components/optical-prescription/index.js +1 -1
  102. package/dist/components/patient-details/index.js +1 -1
  103. package/dist/components/patient-summary-card/index.js +1 -1
  104. package/dist/components/patient-table/index.js +1 -1
  105. package/dist/components/pregnancy-dating/index.js +1 -1
  106. package/dist/components/rich-text-editor/index.js +1 -1
  107. package/dist/components/select/index.js +1 -1
  108. package/dist/components/select/select.d.ts +13 -1
  109. package/dist/components/select/select.d.ts.map +1 -1
  110. package/dist/components/skeleton-scheme/index.js +1 -1
  111. package/dist/components/slot-grid/index.js +1 -1
  112. package/dist/components/slot-grid/slot-grid.d.ts.map +1 -1
  113. package/dist/components/tabs/index.js +1 -1
  114. package/dist/components/task-editor/index.js +1 -1
  115. package/dist/components/tasks-panel/index.js +1 -1
  116. package/dist/components/time-picker/index.js +1 -1
  117. package/dist/components/time-picker/time-picker.d.ts +15 -8
  118. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  119. package/dist/components/unit-converter/index.js +1 -1
  120. package/dist/components/voice-control-panel/index.js +1 -1
  121. package/dist/core.css +1 -1
  122. package/dist/i18n/locales/ar.d.ts +8 -1
  123. package/dist/i18n/locales/ar.d.ts.map +1 -1
  124. package/dist/i18n/locales/ar.js +10 -3
  125. package/dist/i18n/locales/ar.js.map +1 -1
  126. package/dist/i18n/locales/de.d.ts +9 -2
  127. package/dist/i18n/locales/de.d.ts.map +1 -1
  128. package/dist/i18n/locales/de.js +11 -4
  129. package/dist/i18n/locales/de.js.map +1 -1
  130. package/dist/i18n/locales/el.d.ts +9 -2
  131. package/dist/i18n/locales/el.d.ts.map +1 -1
  132. package/dist/i18n/locales/el.js +11 -4
  133. package/dist/i18n/locales/el.js.map +1 -1
  134. package/dist/i18n/locales/en.d.ts +9 -2
  135. package/dist/i18n/locales/en.d.ts.map +1 -1
  136. package/dist/i18n/locales/en.js +10 -3
  137. package/dist/i18n/locales/en.js.map +1 -1
  138. package/dist/i18n/locales/es.d.ts +9 -2
  139. package/dist/i18n/locales/es.d.ts.map +1 -1
  140. package/dist/i18n/locales/es.js +11 -4
  141. package/dist/i18n/locales/es.js.map +1 -1
  142. package/dist/i18n/locales/fr.d.ts +8 -1
  143. package/dist/i18n/locales/fr.d.ts.map +1 -1
  144. package/dist/i18n/locales/fr.js +10 -3
  145. package/dist/i18n/locales/fr.js.map +1 -1
  146. package/dist/i18n/locales/hi.d.ts +9 -2
  147. package/dist/i18n/locales/hi.d.ts.map +1 -1
  148. package/dist/i18n/locales/hi.js +11 -4
  149. package/dist/i18n/locales/hi.js.map +1 -1
  150. package/dist/i18n/locales/it.d.ts +9 -2
  151. package/dist/i18n/locales/it.d.ts.map +1 -1
  152. package/dist/i18n/locales/it.js +11 -4
  153. package/dist/i18n/locales/it.js.map +1 -1
  154. package/dist/i18n/locales/ja.d.ts +9 -2
  155. package/dist/i18n/locales/ja.d.ts.map +1 -1
  156. package/dist/i18n/locales/ja.js +11 -4
  157. package/dist/i18n/locales/ja.js.map +1 -1
  158. package/dist/i18n/locales/nl.d.ts +9 -2
  159. package/dist/i18n/locales/nl.d.ts.map +1 -1
  160. package/dist/i18n/locales/nl.js +11 -4
  161. package/dist/i18n/locales/nl.js.map +1 -1
  162. package/dist/i18n/locales/pl.d.ts +9 -2
  163. package/dist/i18n/locales/pl.d.ts.map +1 -1
  164. package/dist/i18n/locales/pl.js +11 -4
  165. package/dist/i18n/locales/pl.js.map +1 -1
  166. package/dist/i18n/locales/pt.d.ts +8 -1
  167. package/dist/i18n/locales/pt.d.ts.map +1 -1
  168. package/dist/i18n/locales/pt.js +10 -3
  169. package/dist/i18n/locales/pt.js.map +1 -1
  170. package/dist/i18n/locales/ro.d.ts +9 -2
  171. package/dist/i18n/locales/ro.d.ts.map +1 -1
  172. package/dist/i18n/locales/ro.js +11 -4
  173. package/dist/i18n/locales/ro.js.map +1 -1
  174. package/dist/i18n/locales/ru.d.ts +9 -2
  175. package/dist/i18n/locales/ru.d.ts.map +1 -1
  176. package/dist/i18n/locales/ru.js +11 -4
  177. package/dist/i18n/locales/ru.js.map +1 -1
  178. package/dist/i18n/locales/sq.d.ts +9 -2
  179. package/dist/i18n/locales/sq.d.ts.map +1 -1
  180. package/dist/i18n/locales/sq.js +11 -4
  181. package/dist/i18n/locales/sq.js.map +1 -1
  182. package/dist/i18n/locales/sv.d.ts +9 -2
  183. package/dist/i18n/locales/sv.d.ts.map +1 -1
  184. package/dist/i18n/locales/sv.js +11 -4
  185. package/dist/i18n/locales/sv.js.map +1 -1
  186. package/dist/i18n/locales/tr.d.ts +9 -2
  187. package/dist/i18n/locales/tr.d.ts.map +1 -1
  188. package/dist/i18n/locales/tr.js +11 -4
  189. package/dist/i18n/locales/tr.js.map +1 -1
  190. package/dist/i18n/locales/zh.d.ts +9 -2
  191. package/dist/i18n/locales/zh.d.ts.map +1 -1
  192. package/dist/i18n/locales/zh.js +11 -4
  193. package/dist/i18n/locales/zh.js.map +1 -1
  194. package/dist/index.js +34 -34
  195. package/dist/locales/ar.json +10 -3
  196. package/dist/locales/de.json +11 -4
  197. package/dist/locales/el.json +11 -4
  198. package/dist/locales/en.json +10 -3
  199. package/dist/locales/es.json +11 -4
  200. package/dist/locales/fr.json +10 -3
  201. package/dist/locales/hi.json +11 -4
  202. package/dist/locales/it.json +11 -4
  203. package/dist/locales/ja.json +11 -4
  204. package/dist/locales/nl.json +11 -4
  205. package/dist/locales/pl.json +11 -4
  206. package/dist/locales/pt.json +10 -3
  207. package/dist/locales/ro.json +11 -4
  208. package/dist/locales/ru.json +11 -4
  209. package/dist/locales/sq.json +11 -4
  210. package/dist/locales/sv.json +11 -4
  211. package/dist/locales/tr.json +11 -4
  212. package/dist/locales/zh.json +11 -4
  213. package/dist/patterns/anamnesis/index.js +1 -1
  214. package/dist/patterns/calendar/index.js +1 -1
  215. package/dist/patterns/registration-form/index.js +1 -1
  216. package/dist/patterns/signature-request/index.js +1 -1
  217. package/dist/patterns/signature-request/required-documents.d.ts +2 -1
  218. package/dist/patterns/signature-request/required-documents.d.ts.map +1 -1
  219. package/dist/patterns/signature-request/signature-request.d.ts +61 -0
  220. package/dist/patterns/signature-request/signature-request.d.ts.map +1 -1
  221. package/dist/tokens.css +4 -1
  222. package/package.json +1 -1
  223. package/dist/_chunks/chart-D4huJSru.js +0 -1340
  224. package/dist/_chunks/chart-D4huJSru.js.map +0 -1
  225. package/dist/_chunks/operator-hero-C_5B-8Qp.js.map +0 -1
  226. package/dist/_chunks/select-4S-eYZUf.js.map +0 -1
  227. package/dist/_chunks/signature-request-DvhyrRpn.js +0 -2448
  228. package/dist/_chunks/signature-request-DvhyrRpn.js.map +0 -1
  229. package/dist/_chunks/time-picker-DVfyAR81.js +0 -871
  230. package/dist/_chunks/time-picker-DVfyAR81.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.93.1",
3
+ "packageVersion": "1.95.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -2091,6 +2091,14 @@
2091
2091
  "compare"
2092
2092
  ],
2093
2093
  "description": "Optional. 'compare' renders this series as a secondary, colour-blind-safe overlay (e.g. the previous period) — a dotted stroke in its paired primary's colour for line/area, a tinted bar with a dotted outline for bar. Omit for a normal primary series."
2094
+ },
2095
+ "axis": {
2096
+ "type": "string",
2097
+ "enum": [
2098
+ "primary",
2099
+ "secondary"
2100
+ ],
2101
+ "description": "Optional. 'secondary' plots this series on the chart's second value scale; it needs the host to configure secondaryAxis. Omit for the primary scale."
2094
2102
  }
2095
2103
  },
2096
2104
  "required": [
@@ -13051,7 +13059,7 @@
13051
13059
  "note": "Select the \"it\" option."
13052
13060
  }
13053
13061
  ],
13054
- "description": "Select the option with the given value. A value that is not among the options, or belongs to a disabled option, is ignored and the selection stays as it was.",
13062
+ "description": "Select the option with the given value. A value that is not among the options, belongs to a disabled option, or is an action option (such as New signatory), is ignored and the selection stays as it was.",
13055
13063
  "descriptionKey": "ui.agent.select.actions.setValue"
13056
13064
  },
13057
13065
  {
@@ -15115,8 +15123,8 @@
15115
15123
  "state": [
15116
15124
  {
15117
15125
  "name": "value",
15118
- "type": "HH:MM",
15119
- "description": "Currently-selected time as 24h HH:MM (always present — defaults to 00:00 when unset).",
15126
+ "type": "HH:MM | null",
15127
+ "description": "Currently selected time as 24h HH:MM. Null when unset with allowEmpty; otherwise defaults to 00:00.",
15120
15128
  "descriptionKey": "ui.agent.timePicker.state.value"
15121
15129
  },
15122
15130
  {
@@ -15159,7 +15167,7 @@
15159
15167
  "name": "clear",
15160
15168
  "safety": "destructive",
15161
15169
  "idempotent": true,
15162
- "description": "Clear the time (resets to 00:00).",
15170
+ "description": "Clear to null with allowEmpty; otherwise reset to 00:00.",
15163
15171
  "descriptionKey": "ui.agent.timePicker.actions.clear"
15164
15172
  },
15165
15173
  {
@@ -23163,6 +23171,10 @@
23163
23171
  "component": "skeleton",
23164
23172
  "as": "signaturesLoading"
23165
23173
  },
23174
+ {
23175
+ "component": "skeleton",
23176
+ "as": "formLoading"
23177
+ },
23166
23178
  {
23167
23179
  "component": "signature-status-chip",
23168
23180
  "as": "signatureStatus",
@@ -23457,7 +23469,7 @@
23457
23469
  {
23458
23470
  "name": "manage_signer_roster",
23459
23471
  "safety": "write",
23460
- "description": "Build the patient-side signer roster: pick who signs in each row (the patient or their configured signee, e.g. a legal guardian), add a second signer up to the cap, or remove a row. People already on the roster are excluded from the other rows; set_value with one of them, or anyone not offered in that row, leaves the row unchanged. In required documents mode the roster signs the whole batch: the main signer (row data-signer-role=\"main\"), then at most one second signee (data-signer-role=\"second\", a group named Second signee). The second signee is offered only when every listed item is a document that can carry a second signature (anamnesis interviews never can), the main signer's channel is on this device (the batch channel with channelMode batch, else the main signer's own row), and the main signer is a registered signee, not the patient (isPatient); otherwise Add signer is disabled and a visible line says why. The patient is never offered as the second signee. Changing the main signer removes the second signee, announced via a live region. Moving the main signer's channel off this device only hides them (they are not submitted) and announces why; back on this device they return. Per signer, the second signee has their own channel beside their name. A second signee who is the main signer again, is no longer on offer, or cannot receive their own channel (the batch channel in batch mode) shows a message under their row (data-note=\"second-signee-issue\") and keeps Request signature disabled. When the host marks the patient (the isPatient option) as under 18 (isMinor), a warning under the Patient signers heading (data-note=\"minor-patient\", data-warning addSignee, selectSignee, selectSecondSignee or addSecondSignee) gives platform's advice from the roster: with no registered signee on the roster, add a parent or guardian (none registered) or choose one (one registered); with one signee and a free second seat, have the other parent or guardian sign too (another registered) or add them (none). With two signees, or no second seat, it says nothing. Any other person marked isMinor gets a general reminder in their own row (data-note=\"minor-signer\"). Neither blocks the request, and the kit does not compute age. A link-style Add signatory button calls the host's onAddSignee: inside the minor patient warning when it asks to add someone, and in required documents mode under the Patient signers heading while the patient has no registered signee (no signer option without isPatient), only once. It is user-driven with no adapter action, and the host adds the new person to signerOptions.",
23472
+ "description": "Build the patient-side signer roster: pick who signs in each row (the patient or their configured signee, e.g. a legal guardian), add a second signer up to the cap, or remove a row. People already on the roster are excluded from the other rows; set_value with one of them, or anyone not offered in that row, leaves the row unchanged. In required documents mode the roster signs the whole batch: the main signer (row data-signer-role=\"main\"), then at most one second signee (data-signer-role=\"second\", a group named Second signee). The second signee is offered only when every listed item is a document that can carry a second signature (anamnesis interviews never can), the main signer's channel is on this device (the batch channel with channelMode batch, else the main signer's own row), and the main signer is a registered signee, not the patient (isPatient); otherwise Add signer is disabled and a visible line says why. The patient is never offered as the second signee. Changing the main signer removes the second signee, announced via a live region. Moving the main signer's channel off this device only hides them (they are not submitted) and announces why; back on this device they return. Per signer, the second signee has their own channel beside their name. A second signee who is the main signer again, is no longer on offer, or cannot receive their own channel (the batch channel in batch mode) shows a message under their row (data-note=\"second-signee-issue\") and keeps Request signature disabled. When the host marks the patient (the isPatient option) as under 18 (isMinor), a warning under the Patient signers heading (data-note=\"minor-patient\", data-warning addSignee, selectSignee, selectSecondSignee or addSecondSignee) gives platform's advice from the roster: with no registered signee on the roster, add a parent or guardian (none registered) or choose one (one registered); with one signee and a free second seat, have the other parent or guardian sign too (another registered) or add them (none). With two signees, or no second seat, it says nothing. Any other person marked isMinor gets a general reminder in their own row (data-note=\"minor-signer\"). Neither blocks the request, and the kit does not compute age. A link-style Add signatory button calls the host's onAddSignee: inside the minor patient warning when it asks to add someone, and in required documents mode under the Patient signers heading while the patient has no registered signee (no signer option without isPatient), only once. Add signatory is user-driven with no adapter action, and the host adds the new person to signerOptions. With signerAddAction createSignee, the button beside the Patient signers heading is Add signatory (data-action=\"create-signee\") and calls onAddSignee instead of adding a row; the minor patient warning then has no button. With secondSigneeSlot (request form, maxSigners 2 or more), an Add signer button beside the heading (data-action=\"add-second-signee\") opens a line (data-second-signee-slot) with a select named Second signee; it shows only while one can be seated (a registered signee is the main signer and another is registered). With secondSigneeSlot or signerAddAction createSignee, every signer dropdown ends with a New signatory option that calls onAddSignee (the host's create-signee page) and leaves the row unchanged. New signatory is user-driven; set_value refuses it. The line offers registered signees only and has a Remove signer button that takes it away again; picking one seats the second signee (data-signer-role=\"second\"), whose Remove signer also takes the line away. While the patient is the main signer a visible line under the heading says why there is no second signee (data-note=\"second-signee-hint\"). A new main signer clears the second signee, announced via a live region.",
23461
23473
  "descriptionKey": "ui.agent.signatureRequest.workflows.manageSignerRoster",
23462
23474
  "uiActions": [
23463
23475
  "select.set_value"
@@ -23470,7 +23482,7 @@
23470
23482
  {
23471
23483
  "name": "choose_delivery_channel",
23472
23484
  "safety": "write",
23473
- "description": "Choose how each signer's request is delivered in the channel dropdown beside their name, a select named Signature channel (one choice): SMS, e-mail, WhatsApp, signing on this device, or via QR (the signer scans a QR code the dialog shows in its QR step after the request; offered to every patient-side signer by default). Each signer row (data-signer-id) holds its dropdown, with the id signature-request-signer-channel-<row number>; the operator dropdown's id is signature-request-operator-channel. Each option carries data-option-id with the channel; set_value with a channel the dropdown does not offer or has disabled leaves the choice unchanged. A signer's available channels can hide any of these, Via QR included. A signer's unavailableChannels instead show a channel greyed out with the host's reason under it (e.g. SMS and WhatsApp with No mobile number): set_value refuses it, the row never falls back to it, and a signer with no channel left shows the reasons under the row and keeps Request signature disabled. When the host gives a greyed-out channel an actionHref, a link under the person (data-note=\"contact-actions\"), such as Add mobile number or Add e-mail address, leads to the host's page to fix it; in batch mode the main signer's links show under the batch channel select. They are plain links with no adapter action. On-device signers sign sequentially in roster order. The assigned operator has the same dropdown, named Operator signature channel, with SMS, e-mail, or on this device, WhatsApp only when the host rule lists it in operatorAvailableChannels (as platform does for operator-only documents), and never Via QR: the operator's own system-defined channel (defaultChannel, from their settings) arrives preselected and follows a newly picked operator, while a channel changed by hand is kept until the operator changes; the on-device option is enabled only while a patient signer also signs on this device (while disabled, its reason shows under the option and describes the trigger; an automatic fallback to the operator's default is announced via a live region when the last on-device patient row leaves). A host can replace that rule with resolveChannels: it receives the choices after every channel change (and on open) and returns the channels to use and to offer, e.g. the operator and the patient on this device together; set_value may then move another person's channel too (the operator or another signer), announced via the same live region. Channels are per signer by default, in the request form and in required documents mode. With channelMode batch there is no channel beside each name: one labelled Signature channel select (id signature-request-batch-channel) under the signers heading sets the channel for the whole roster, with SMS, e-mail, WhatsApp and Via QR offered when the main signer or the patient (isPatient) can receive them, greyed out only when neither can, and on this device always offered. It starts on e-mail, or SMS when the main signer is the patient and can receive it, unless the host passes initialBatchChannel; in required documents mode changing the main signer returns it to that default (initialBatchChannel is read only on open), announced via the live region. resolveChannels receives the batch channel as every signer's channel and moves the batch through the main signer's returned channel. In required documents mode with showOperatorChannels, each item with an assigned operator also has that operator's channel select (SMS, e-mail or on this device), named Operator signature channel for <item name> with the id signature-request-item-operator-channel-<item id>; it starts on the operator's defaultChannel and follows a newly picked operator (Assign to me included), keeping a channel changed by hand until then. Items on Assign later have none.",
23485
+ "description": "Choose how each signer's request is delivered in the channel dropdown beside their name, a select named Signature channel (one choice): SMS, e-mail, WhatsApp, signing on this device, or via QR (the signer scans a QR code the dialog shows in its QR step after the request; offered to every patient-side signer by default). Each signer row (data-signer-id) holds its dropdown, with the id signature-request-signer-channel-<row number>; the operator dropdown's id is signature-request-operator-channel. Each option carries data-option-id with the channel; set_value with a channel the dropdown does not offer or has disabled leaves the choice unchanged. A signer's available channels can hide any of these, Via QR included. A signer's unavailableChannels instead show a channel greyed out with the host's reason under it (e.g. SMS and WhatsApp with No mobile number): set_value refuses it, the row never falls back to it, and a signer with no channel left shows the reasons under the row and keeps Request signature disabled. When the host gives a greyed-out channel an actionHref, a link under the person (data-note=\"contact-actions\"), such as Add mobile number or Add e-mail address, leads to the host's page to fix it; in batch mode the main signer's links show under the batch channel select. They are plain links with no adapter action. On-device signers sign sequentially in roster order. The assigned operator has the same dropdown, named Operator signature channel, with SMS, e-mail, or on this device, WhatsApp only when the host rule lists it in operatorAvailableChannels (as platform does for operator-only documents), and never Via QR: the operator's own system-defined channel (defaultChannel, from their settings) arrives preselected and follows a newly picked operator, while a channel changed by hand is kept until the operator changes; the on-device option is enabled only while a patient signer also signs on this device (while disabled, its reason shows under the option and describes the trigger; an automatic fallback to the operator's default is announced via a live region when the last on-device patient row leaves). A host can replace that rule with resolveChannels: it receives the choices after every channel change (and on open) and returns the channels to use and to offer, e.g. the operator and the patient on this device together; set_value may then move another person's channel too (the operator or another signer), announced via the same live region. Channels are per signer by default, in the request form and in required documents mode. With channelMode batch there is no channel beside each name: one labelled Signature channel select (id signature-request-batch-channel) under the signers heading sets the channel for the whole roster, with SMS, e-mail, WhatsApp and Via QR offered when the main signer or the patient (isPatient) can receive them, greyed out only when neither can, and on this device always offered. It starts on e-mail, or SMS when the main signer is the patient and can receive it, unless the host passes initialBatchChannel; in required documents mode changing the main signer returns it to that default (initialBatchChannel is read only on open), announced via the live region. resolveChannels receives the batch channel as every signer's channel and moves the batch through the main signer's returned channel. In required documents mode with showOperatorChannels, each item with an assigned operator also has that operator's channel select (SMS, e-mail or on this device), named Operator signature channel for <item name> with the id signature-request-item-operator-channel-<item id>; it starts on the operator's defaultChannel and follows a newly picked operator (Assign to me included), keeping a channel changed by hand until then. Items on Assign later have none. With batchChannelPlacement inline, the batch select (same id) sits in the main signer's row instead of under the heading, and any other signer shows the batch channel as read-only text (data-note=\"batch-channel\"). With linkOnDevice, the operator signs on this device exactly when the patient side does: set_value On this device on the operator's channel also moves the main signer (or the batch) there, while the patient side is on this device the operator's other channels are disabled with the reason, and when it leaves the operator returns to their default, each announced via the live region.",
23474
23486
  "descriptionKey": "ui.agent.signatureRequest.workflows.chooseDeliveryChannel",
23475
23487
  "uiActions": [
23476
23488
  "select.set_value"
@@ -23497,7 +23509,7 @@
23497
23509
  {
23498
23510
  "name": "request_signature",
23499
23511
  "safety": "phi",
23500
- "description": "Send the signature request. Notifies every roster signer over their selected channel and hands the submission to the host. With confirmRecipients, when anyone is reached by SMS, e-mail or WhatsApp, Request signature first shows the recipient check (see confirm_recipients) and nothing is handed over until Send. When any signer chose Via QR the dialog stays open and moves to its QR step. With channelMode batch the submission carries signMode (the batch channel, also on every signer). In required documents mode it also carries operatorAssignments (item id to operator id, null for assign later), requiredItemIds and, with showOperatorChannels, operatorChannels (item id to the operator's channel, for assigned items), with operatorChannel null; the main signer OTP waiver is skipOtp on the main signer, set only on this device.",
23512
+ "description": "Send the signature request. Notifies every roster signer over their selected channel and hands the submission to the host. With confirmRecipients, when anyone is reached by SMS, e-mail or WhatsApp, Request signature first shows the recipient check (see confirm_recipients) and nothing is handed over until Send. When any signer chose Via QR the dialog stays open and moves to its QR step. With channelMode batch the submission carries signMode (the batch channel, also on every signer). In required documents mode it also carries operatorAssignments (item id to operator id, null for assign later), requiredItemIds and, with showOperatorChannels, operatorChannels (item id to the operator's channel, for assigned items), with operatorChannel null; the main signer OTP waiver is skipOtp on the main signer, set only on this device. While the host passes loading, the dialog shows skeleton rows (data-note=\"loading\", aria-busy) and Request signature is disabled; the form seeds when loading ends.",
23501
23513
  "descriptionKey": "ui.agent.signatureRequest.workflows.requestSignature",
23502
23514
  "uiActions": [
23503
23515
  "dialog.close"
@@ -1336,7 +1336,7 @@
1336
1336
  "isOpen": "Whether the option list is open."
1337
1337
  },
1338
1338
  "actions": {
1339
- "setValue": "Select the option with the given value. A value that is not among the options, or belongs to a disabled option, is ignored and the selection stays as it was.",
1339
+ "setValue": "Select the option with the given value. A value that is not among the options, belongs to a disabled option, or is an action option (such as New signatory), is ignored and the selection stays as it was.",
1340
1340
  "clear": "Clear the current selection.",
1341
1341
  "open": "Open the option list.",
1342
1342
  "close": "Close the option list."
@@ -1545,12 +1545,12 @@
1545
1545
  },
1546
1546
  "timePicker": {
1547
1547
  "state": {
1548
- "value": "Currently-selected time as 24h HH:MM (always present — defaults to 00:00 when unset).",
1548
+ "value": "Currently selected time as 24h HH:MM. Null when unset with allowEmpty; otherwise defaults to 00:00.",
1549
1549
  "isOpen": "Whether the time dropdown is open. Always false unless the picker has the dropdown prop."
1550
1550
  },
1551
1551
  "actions": {
1552
1552
  "setTime": "Set the time using a 24h HH:MM string.",
1553
- "clear": "Clear the time (resets to 00:00).",
1553
+ "clear": "Clear to null with allowEmpty; otherwise reset to 00:00.",
1554
1554
  "open": "Open the time dropdown without moving focus. A no-op unless the picker has the dropdown prop and is enabled.",
1555
1555
  "close": "Close the time dropdown. A no-op unless the picker has the dropdown prop."
1556
1556
  }
@@ -2102,10 +2102,10 @@
2102
2102
  "shareSignature": "Share one signed document from its row's Share menu (menu id signature-share-<record id>): link, e-mail or WhatsApp, in that order. The host receives onShareSignature(id, 'link' | 'email' | 'whatsapp') and does the sharing. The host decides which targets a row offers: the record's shareTargets, else the modal's signatureShareTargets, else all three. The button shows only when the host passes that callback and the row has at least one target.",
2103
2103
  "deleteSignature": "Delete one signed document from its row's Delete button. It opens a confirmation, an alert dialog (dialog id signature-delete-<record id>) asking whether to delete this signed document, with the row's date under the question and Cancel and Delete. Only Delete calls onDeleteSignature(id); the host deletes and drops the record. Cancel, Esc or dialog.close / dialog.dismiss close it without deleting, and focus returns to the row's Delete button. Once the host drops the record, focus moves to the next row's first action (else the previous row's, else the line saying there are no signed versions) and a polite status says the signature was deleted. The button shows only when the host passes that callback.",
2104
2104
  "assignOperator": "Pick the operator who must counter-sign (or \"Assign later\" to leave the request unassigned). The operators are listed in host order, then \"Assign later\". An operator the host marks disabled shows greyed out with the host's reason under the name (the trigger is described by every greyed-out operator and reason) and cannot be picked; set_value refuses them. An operator the host marks deleted is listed only while they are the current value, and is never seeded. \"Assign to me\" claims it for the signed-in operator.",
2105
- "manageSignerRoster": "Build the patient-side signer roster: pick who signs in each row (the patient or their configured signee, e.g. a legal guardian), add a second signer up to the cap, or remove a row. People already on the roster are excluded from the other rows; set_value with one of them, or anyone not offered in that row, leaves the row unchanged. In required documents mode the roster signs the whole batch: the main signer (row data-signer-role=\"main\"), then at most one second signee (data-signer-role=\"second\", a group named Second signee). The second signee is offered only when every listed item is a document that can carry a second signature (anamnesis interviews never can), the main signer's channel is on this device (the batch channel with channelMode batch, else the main signer's own row), and the main signer is a registered signee, not the patient (isPatient); otherwise Add signer is disabled and a visible line says why. The patient is never offered as the second signee. Changing the main signer removes the second signee, announced via a live region. Moving the main signer's channel off this device only hides them (they are not submitted) and announces why; back on this device they return. Per signer, the second signee has their own channel beside their name. A second signee who is the main signer again, is no longer on offer, or cannot receive their own channel (the batch channel in batch mode) shows a message under their row (data-note=\"second-signee-issue\") and keeps Request signature disabled. When the host marks the patient (the isPatient option) as under 18 (isMinor), a warning under the Patient signers heading (data-note=\"minor-patient\", data-warning addSignee, selectSignee, selectSecondSignee or addSecondSignee) gives platform's advice from the roster: with no registered signee on the roster, add a parent or guardian (none registered) or choose one (one registered); with one signee and a free second seat, have the other parent or guardian sign too (another registered) or add them (none). With two signees, or no second seat, it says nothing. Any other person marked isMinor gets a general reminder in their own row (data-note=\"minor-signer\"). Neither blocks the request, and the kit does not compute age. A link-style Add signatory button calls the host's onAddSignee: inside the minor patient warning when it asks to add someone, and in required documents mode under the Patient signers heading while the patient has no registered signee (no signer option without isPatient), only once. It is user-driven with no adapter action, and the host adds the new person to signerOptions.",
2106
- "chooseDeliveryChannel": "Choose how each signer's request is delivered in the channel dropdown beside their name, a select named Signature channel (one choice): SMS, e-mail, WhatsApp, signing on this device, or via QR (the signer scans a QR code the dialog shows in its QR step after the request; offered to every patient-side signer by default). Each signer row (data-signer-id) holds its dropdown, with the id signature-request-signer-channel-<row number>; the operator dropdown's id is signature-request-operator-channel. Each option carries data-option-id with the channel; set_value with a channel the dropdown does not offer or has disabled leaves the choice unchanged. A signer's available channels can hide any of these, Via QR included. A signer's unavailableChannels instead show a channel greyed out with the host's reason under it (e.g. SMS and WhatsApp with No mobile number): set_value refuses it, the row never falls back to it, and a signer with no channel left shows the reasons under the row and keeps Request signature disabled. When the host gives a greyed-out channel an actionHref, a link under the person (data-note=\"contact-actions\"), such as Add mobile number or Add e-mail address, leads to the host's page to fix it; in batch mode the main signer's links show under the batch channel select. They are plain links with no adapter action. On-device signers sign sequentially in roster order. The assigned operator has the same dropdown, named Operator signature channel, with SMS, e-mail, or on this device, WhatsApp only when the host rule lists it in operatorAvailableChannels (as platform does for operator-only documents), and never Via QR: the operator's own system-defined channel (defaultChannel, from their settings) arrives preselected and follows a newly picked operator, while a channel changed by hand is kept until the operator changes; the on-device option is enabled only while a patient signer also signs on this device (while disabled, its reason shows under the option and describes the trigger; an automatic fallback to the operator's default is announced via a live region when the last on-device patient row leaves). A host can replace that rule with resolveChannels: it receives the choices after every channel change (and on open) and returns the channels to use and to offer, e.g. the operator and the patient on this device together; set_value may then move another person's channel too (the operator or another signer), announced via the same live region. Channels are per signer by default, in the request form and in required documents mode. With channelMode batch there is no channel beside each name: one labelled Signature channel select (id signature-request-batch-channel) under the signers heading sets the channel for the whole roster, with SMS, e-mail, WhatsApp and Via QR offered when the main signer or the patient (isPatient) can receive them, greyed out only when neither can, and on this device always offered. It starts on e-mail, or SMS when the main signer is the patient and can receive it, unless the host passes initialBatchChannel; in required documents mode changing the main signer returns it to that default (initialBatchChannel is read only on open), announced via the live region. resolveChannels receives the batch channel as every signer's channel and moves the batch through the main signer's returned channel. In required documents mode with showOperatorChannels, each item with an assigned operator also has that operator's channel select (SMS, e-mail or on this device), named Operator signature channel for <item name> with the id signature-request-item-operator-channel-<item id>; it starts on the operator's defaultChannel and follows a newly picked operator (Assign to me included), keeping a channel changed by hand until then. Items on Assign later have none.",
2105
+ "manageSignerRoster": "Build the patient-side signer roster: pick who signs in each row (the patient or their configured signee, e.g. a legal guardian), add a second signer up to the cap, or remove a row. People already on the roster are excluded from the other rows; set_value with one of them, or anyone not offered in that row, leaves the row unchanged. In required documents mode the roster signs the whole batch: the main signer (row data-signer-role=\"main\"), then at most one second signee (data-signer-role=\"second\", a group named Second signee). The second signee is offered only when every listed item is a document that can carry a second signature (anamnesis interviews never can), the main signer's channel is on this device (the batch channel with channelMode batch, else the main signer's own row), and the main signer is a registered signee, not the patient (isPatient); otherwise Add signer is disabled and a visible line says why. The patient is never offered as the second signee. Changing the main signer removes the second signee, announced via a live region. Moving the main signer's channel off this device only hides them (they are not submitted) and announces why; back on this device they return. Per signer, the second signee has their own channel beside their name. A second signee who is the main signer again, is no longer on offer, or cannot receive their own channel (the batch channel in batch mode) shows a message under their row (data-note=\"second-signee-issue\") and keeps Request signature disabled. When the host marks the patient (the isPatient option) as under 18 (isMinor), a warning under the Patient signers heading (data-note=\"minor-patient\", data-warning addSignee, selectSignee, selectSecondSignee or addSecondSignee) gives platform's advice from the roster: with no registered signee on the roster, add a parent or guardian (none registered) or choose one (one registered); with one signee and a free second seat, have the other parent or guardian sign too (another registered) or add them (none). With two signees, or no second seat, it says nothing. Any other person marked isMinor gets a general reminder in their own row (data-note=\"minor-signer\"). Neither blocks the request, and the kit does not compute age. A link-style Add signatory button calls the host's onAddSignee: inside the minor patient warning when it asks to add someone, and in required documents mode under the Patient signers heading while the patient has no registered signee (no signer option without isPatient), only once. Add signatory is user-driven with no adapter action, and the host adds the new person to signerOptions. With signerAddAction createSignee, the button beside the Patient signers heading is Add signatory (data-action=\"create-signee\") and calls onAddSignee instead of adding a row; the minor patient warning then has no button. With secondSigneeSlot (request form, maxSigners 2 or more), an Add signer button beside the heading (data-action=\"add-second-signee\") opens a line (data-second-signee-slot) with a select named Second signee; it shows only while one can be seated (a registered signee is the main signer and another is registered). With secondSigneeSlot or signerAddAction createSignee, every signer dropdown ends with a New signatory option that calls onAddSignee (the host's create-signee page) and leaves the row unchanged. New signatory is user-driven; set_value refuses it. The line offers registered signees only and has a Remove signer button that takes it away again; picking one seats the second signee (data-signer-role=\"second\"), whose Remove signer also takes the line away. While the patient is the main signer a visible line under the heading says why there is no second signee (data-note=\"second-signee-hint\"). A new main signer clears the second signee, announced via a live region.",
2106
+ "chooseDeliveryChannel": "Choose how each signer's request is delivered in the channel dropdown beside their name, a select named Signature channel (one choice): SMS, e-mail, WhatsApp, signing on this device, or via QR (the signer scans a QR code the dialog shows in its QR step after the request; offered to every patient-side signer by default). Each signer row (data-signer-id) holds its dropdown, with the id signature-request-signer-channel-<row number>; the operator dropdown's id is signature-request-operator-channel. Each option carries data-option-id with the channel; set_value with a channel the dropdown does not offer or has disabled leaves the choice unchanged. A signer's available channels can hide any of these, Via QR included. A signer's unavailableChannels instead show a channel greyed out with the host's reason under it (e.g. SMS and WhatsApp with No mobile number): set_value refuses it, the row never falls back to it, and a signer with no channel left shows the reasons under the row and keeps Request signature disabled. When the host gives a greyed-out channel an actionHref, a link under the person (data-note=\"contact-actions\"), such as Add mobile number or Add e-mail address, leads to the host's page to fix it; in batch mode the main signer's links show under the batch channel select. They are plain links with no adapter action. On-device signers sign sequentially in roster order. The assigned operator has the same dropdown, named Operator signature channel, with SMS, e-mail, or on this device, WhatsApp only when the host rule lists it in operatorAvailableChannels (as platform does for operator-only documents), and never Via QR: the operator's own system-defined channel (defaultChannel, from their settings) arrives preselected and follows a newly picked operator, while a channel changed by hand is kept until the operator changes; the on-device option is enabled only while a patient signer also signs on this device (while disabled, its reason shows under the option and describes the trigger; an automatic fallback to the operator's default is announced via a live region when the last on-device patient row leaves). A host can replace that rule with resolveChannels: it receives the choices after every channel change (and on open) and returns the channels to use and to offer, e.g. the operator and the patient on this device together; set_value may then move another person's channel too (the operator or another signer), announced via the same live region. Channels are per signer by default, in the request form and in required documents mode. With channelMode batch there is no channel beside each name: one labelled Signature channel select (id signature-request-batch-channel) under the signers heading sets the channel for the whole roster, with SMS, e-mail, WhatsApp and Via QR offered when the main signer or the patient (isPatient) can receive them, greyed out only when neither can, and on this device always offered. It starts on e-mail, or SMS when the main signer is the patient and can receive it, unless the host passes initialBatchChannel; in required documents mode changing the main signer returns it to that default (initialBatchChannel is read only on open), announced via the live region. resolveChannels receives the batch channel as every signer's channel and moves the batch through the main signer's returned channel. In required documents mode with showOperatorChannels, each item with an assigned operator also has that operator's channel select (SMS, e-mail or on this device), named Operator signature channel for <item name> with the id signature-request-item-operator-channel-<item id>; it starts on the operator's defaultChannel and follows a newly picked operator (Assign to me included), keeping a channel changed by hand until then. Items on Assign later have none. With batchChannelPlacement inline, the batch select (same id) sits in the main signer's row instead of under the heading, and any other signer shows the batch channel as read-only text (data-note=\"batch-channel\"). With linkOnDevice, the operator signs on this device exactly when the patient side does: set_value On this device on the operator's channel also moves the main signer (or the batch) there, while the patient side is on this device the operator's other channels are disabled with the reason, and when it leaves the operator returns to their default, each announced via the live region.",
2107
2107
  "waiveOtp": "Toggle a signer's on-device OTP waiver. Waiving OTP lowers the evidentiary value of that signature; the pattern surfaces a warning alert while waived. With channelMode batch there is one switch for the whole roster (Do not require OTP from the patient), shown only while the batch channel is on this device: it starts on when the patient cannot receive SMS, whoever the main signer is, and is on and disabled when the main signer is the patient and cannot receive SMS. The choice resets when the batch channel changes. Its warning (batchOtpWarning) is one batch-level alert outside every signer row; as on platform it shows while the waiver is on, and on every channel while it is forced. Per signer in required documents mode, the main signer's own switch follows the same rules (starts on, or on and disabled, described by the warning) and resets when that row's channel changes; other rows are the user's choice.",
2108
- "requestSignature": "Send the signature request. Notifies every roster signer over their selected channel and hands the submission to the host. With confirmRecipients, when anyone is reached by SMS, e-mail or WhatsApp, Request signature first shows the recipient check (see confirm_recipients) and nothing is handed over until Send. When any signer chose Via QR the dialog stays open and moves to its QR step. With channelMode batch the submission carries signMode (the batch channel, also on every signer). In required documents mode it also carries operatorAssignments (item id to operator id, null for assign later), requiredItemIds and, with showOperatorChannels, operatorChannels (item id to the operator's channel, for assigned items), with operatorChannel null; the main signer OTP waiver is skipOtp on the main signer, set only on this device.",
2108
+ "requestSignature": "Send the signature request. Notifies every roster signer over their selected channel and hands the submission to the host. With confirmRecipients, when anyone is reached by SMS, e-mail or WhatsApp, Request signature first shows the recipient check (see confirm_recipients) and nothing is handed over until Send. When any signer chose Via QR the dialog stays open and moves to its QR step. With channelMode batch the submission carries signMode (the batch channel, also on every signer). In required documents mode it also carries operatorAssignments (item id to operator id, null for assign later), requiredItemIds and, with showOperatorChannels, operatorChannels (item id to the operator's channel, for assigned items), with operatorChannel null; the main signer OTP waiver is skipOtp on the main signer, set only on this device. While the host passes loading, the dialog shows skeleton rows (data-note=\"loading\", aria-busy) and Request signature is disabled; the form seeds when loading ends.",
2109
2109
  "confirmRecipients": "With confirmRecipients, a request that reaches anyone by SMS, e-mail or WhatsApp first shows a step headed \"Send the signature request?\" listing each recipient (list items with data-recipient=\"operator\" or \"signer\"): the assigned operator in the request form, then every roster signer on a remote channel, with their channel and the phone number or e-mail address the host gave as their contact. Send hands the submission to the host; Back returns to the form with nothing sent. On this device and Via QR need no check. The step stays while the host is busy; a new error returns to the form and an outcome replaces it. Send and Back are user-driven buttons with no adapter action; the contact is shown as text only, never in a DOM hook.",
2110
2110
  "showQrCode": "After a request with a signer on the Via QR channel, the same dialog shows its QR step: a loading state until the host passes the server-issued links, then one code per QR signer with the signer name and expiry (the code or its error carries data-signer-id). With several QR signers, the user moves between codes with Previous and Next (\"1 of 2\"); Done on the last code tells the host the codes were handed over (onQrDone) and closes the dialog. Previous, Next and Done are user-driven buttons with no adapter action. Closing through dialog.close, or dismissing the waiting state with dialog.dismiss, does not fire onQrDone. A QR signer with no link shows an error in place of the code. The operator is never offered Via QR.",
2111
2111
  "reviewRequiredItems": "When the host passes `requiredItems` (or `requiredItemsLoading`), the form asks one patient to sign every outstanding item in one batch: documents to sign and anamnesis interviews to complete, as two lists named with their counts. Each row (data-required-item-id) shows the item name only, with no signing status: the documents API of the host says only whether an item is signed. Items marked signed are left out; when none is left the dialog shows the all signed outcome. Loading shows skeleton rows. The single operator row and the signed versions table do not appear in this mode.",
@@ -37,4 +37,7 @@
37
37
  .apex-theme-alfadocs .apexcharts-toolbar>.apexcharts-pan-icon>svg{scale:.62}
38
38
  .apex-theme-alfadocs .apexcharts-menu-item{display:flex;align-items:center;min-block-size:var(--min-target-size)}
39
39
  .apex-theme-alfadocs .apexcharts-legend-series[role=button]:focus-visible,.apex-theme-alfadocs .apexcharts-toolbar>[role=button]:focus-visible{outline:var(--focus-ring-width) solid var(--ring);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-sm)}
40
- .apex-theme-alfadocs .apexcharts-menu-item:focus-visible{outline:var(--focus-ring-width) solid var(--ring);outline-offset:calc(var(--focus-ring-width) * -1);background:transparent}
40
+ .apex-theme-alfadocs .apexcharts-menu-item:focus-visible{outline:var(--focus-ring-width) solid var(--ring);outline-offset:calc(var(--focus-ring-width) * -1);background:transparent}
41
+ .apex-theme-alfadocs .apexcharts-tooltip:is(.apexcharts-theme-light,.apexcharts-theme-dark){color:var(--popover-foreground);background-color:var(--popover);border-color:var(--border)}
42
+ .apex-theme-alfadocs .apexcharts-tooltip:is(.apexcharts-theme-light,.apexcharts-theme-dark) .apexcharts-tooltip-title{color:var(--foreground);background-color:var(--muted);border-color:var(--border)}
43
+ .apex-theme-alfadocs .apexcharts-yaxis-title-text,.apex-theme-alfadocs .apexcharts-xaxis-title-text{font-family:var(--type-label-family);font-size:var(--type-meta-size);font-weight:var(--type-label-weight)}
@@ -1,6 +1,6 @@
1
1
  import type { OptionShape } from './option';
2
- export declare function groupOptions<T extends string>(options: OptionShape<T>[]): Array<{
2
+ export declare function groupOptions<O extends OptionShape<string>>(options: O[]): Array<{
3
3
  group: string | undefined;
4
- items: OptionShape<T>[];
4
+ items: O[];
5
5
  }>;
6
6
  //# sourceMappingURL=group-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-options.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/group-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GACxB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,CAAC,CAc/D"}
1
+ {"version":3,"file":"group-options.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/group-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EACxD,OAAO,EAAE,CAAC,EAAE,GACX,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC,CAclD"}
@@ -1,4 +1,4 @@
1
- import { A as a, a as o } from "../../_chunks/ai-prompt-input-DH_rnV-F.js";
1
+ import { A as a, a as o } from "../../_chunks/ai-prompt-input-CG9BEggs.js";
2
2
  export {
3
3
  a as AIPromptInput,
4
4
  o as aiPromptInputAgent
@@ -1,4 +1,4 @@
1
- import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-D8vDg0sg.js";
1
+ import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-B6uhmNdV.js";
2
2
  export {
3
3
  e as AppointmentDetailsPanel,
4
4
  n as appointmentDetailsPanelAgent,
@@ -1,4 +1,4 @@
1
- import { A as r, a } from "../../_chunks/audio-recorder-m7Jqvvcl.js";
1
+ import { A as r, a } from "../../_chunks/audio-recorder-BOm2FgEu.js";
2
2
  export {
3
3
  r as AudioRecorder,
4
4
  a as audioRecorderAgent
@@ -1,4 +1,4 @@
1
- import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-C5di6oAV.js";
1
+ import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-BBYuyk2k.js";
2
2
  export {
3
3
  O as BISHOP_COMPONENTS,
4
4
  S as BISHOP_MAX_SCORE,
@@ -1,4 +1,4 @@
1
- import { B as s, a, C as R, O as g, b as n, c as A } from "../../_chunks/reserved.agent-DnPwaa4u.js";
1
+ import { B as s, a, C as R, O as g, b as n, c as A } from "../../_chunks/reserved.agent-BvwjDyne.js";
2
2
  export {
3
3
  s as Booking,
4
4
  a as BookingReserved,
@@ -0,0 +1,21 @@
1
+ /** Explicit value-axis bounds that put the zero line at the same height. */
2
+ export interface AlignedScale {
3
+ min: number;
4
+ max: number;
5
+ tickAmount: number;
6
+ }
7
+ interface AxisRange {
8
+ low: number;
9
+ high: number;
10
+ integer: boolean;
11
+ }
12
+ /**
13
+ * Two value axes compute their zero independently, so bars on them would grow
14
+ * from different baselines when either holds negative values. Choose one split
15
+ * of tick segments below and above zero, and give each axis a nice step that
16
+ * fits it, so both zero lines land on the same gridline.
17
+ * Returns `null` when no axis has a negative value (Apex scales them itself).
18
+ */
19
+ export declare function alignZeroScales(ranges: [AxisRange, AxisRange]): [AlignedScale, AlignedScale] | null;
20
+ export {};
21
+ //# sourceMappingURL=chart-axis-scale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-axis-scale.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart-axis-scale.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAoBD,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7B,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,IAAI,CA2BrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chart.agent.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,WAAW,CAoIhD,CAAC"}
1
+ {"version":3,"file":"chart.agent.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart.agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,WAAW,CA0IhD,CAAC"}
@@ -4,6 +4,20 @@ declare const chartVariants: (props?: ({
4
4
  density?: "none" | "comfortable" | "compact" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export type ChartType = 'line' | 'bar' | 'pie' | 'donut' | 'area' | 'radialBar';
7
+ /** Location in the currently displayed view, including any type-switch adaptation. */
8
+ export interface ChartDataPointContext {
9
+ type: ChartType;
10
+ /** Axis series index; for a slice chart, the slice index. */
11
+ seriesIndex: number;
12
+ /** Point index within an axis series; for a slice chart, the slice index. */
13
+ dataPointIndex: number;
14
+ /** Axis series name, or slice label when present. */
15
+ seriesName?: string;
16
+ /** Category label, or slice label when present. */
17
+ category?: string;
18
+ /** Value axis the series is plotted on. Always `'primary'` unless `secondaryAxis` is set and the series has `axis: 'secondary'`. */
19
+ axis: 'primary' | 'secondary';
20
+ }
7
21
  export interface ChartSeries {
8
22
  name: string;
9
23
  data: number[];
@@ -34,11 +48,30 @@ export interface ChartSeries {
34
48
  * @default 'primary'
35
49
  */
36
50
  role?: 'primary' | 'compare';
51
+ /**
52
+ * Which value scale plots this series on an axis chart. `'secondary'` needs
53
+ * `secondaryAxis` on the Chart; without it the series stays on the primary
54
+ * scale (DEV warning). Travels with the series through `updateSeries`.
55
+ * @default 'primary'
56
+ */
57
+ axis?: 'primary' | 'secondary';
37
58
  }
38
59
  /** Bar orientation. `'horizontal'` renders a ranking sideways. Default `'vertical'`. */
39
60
  export type ChartOrientation = 'vertical' | 'horizontal';
40
61
  /** Line / area stroke interpolation. Default `'smooth'`. */
41
62
  export type ChartCurve = 'smooth' | 'straight' | 'stepline';
63
+ /** A second unit, with its own scale at the inline-end of the chart. */
64
+ export interface ChartSecondaryAxis {
65
+ /** Consumer-translated unit label, for example "#". Also labels table rows. */
66
+ title: string;
67
+ /** Formats this unit in axis ticks, tooltips and the summary table.
68
+ * Defaults to locale-grouped numbers, independently of `valueFormatter`. */
69
+ valueFormatter?: (value: number) => string;
70
+ /** Count axis: ticks that are not whole numbers print as empty text, so
71
+ * small counts never show "0.5" or a repeated label. Tooltip and table keep
72
+ * the real formatter. */
73
+ integer?: boolean;
74
+ }
42
75
  export interface ChartProps extends VariantProps<typeof chartVariants> {
43
76
  /** Required — drives aria-label and sr-only table caption. */
44
77
  title: string;
@@ -127,6 +160,28 @@ export interface ChartProps extends VariantProps<typeof chartVariants> {
127
160
  * and summary table use `radialValueFormatter`.
128
161
  */
129
162
  valueFormatter?: (value: number) => string;
163
+ /** Primary axis ticks only. Falls back to valueFormatter. The secondary axis uses `secondaryAxis.valueFormatter`. Ignored by slice charts. */
164
+ axisValueFormatter?: (value: number) => string;
165
+ /**
166
+ * Plain-text point detail for both the tooltip and screen-reader summary.
167
+ * Receives indices and labels from the displayed view, so equal values can
168
+ * carry different context. Falls back to the series' axis formatter
169
+ * (valueFormatter on the primary axis), also when this
170
+ * throws or returns anything but a non-blank string (a DEV console warning
171
+ * names the failure). Ignored by radialBar.
172
+ */
173
+ dataPointFormatter?: (value: number, context: ChartDataPointContext) => string;
174
+ /** Consumer-translated label for the primary value axis, e.g. "Production (€)". */
175
+ valueAxisTitle?: string;
176
+ /**
177
+ * Options for the independent value scale used by every series with
178
+ * `axis: 'secondary'`. Vertical line/bar/area only; slice/radial types ignore
179
+ * it. While configured on an axis chart, stacking and horizontal orientation
180
+ * are disabled and the type switcher offers only axis types, so unlike units
181
+ * cannot be stacked or added together as slices. The chart type applies to
182
+ * all series: a combined bar and line chart is not supported.
183
+ */
184
+ secondaryAxis?: ChartSecondaryAxis;
130
185
  /**
131
186
  * Opt-in type switcher. Pass two or more of `'line' | 'bar' | 'area' |
132
187
  * 'pie' | 'donut'` to render an icon radiogroup (an `IconButtonGroup`)
@@ -1 +1 @@
1
- {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiBlE,OAAO,mCAAmC,CAAC;AAyB3C,QAAA,MAAM,aAAa;;8EAelB,CAAC;AA2CF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9B;AAED,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzD,4DAA4D;AAC5D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IACpE,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;mFAE+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IACtC,uFAAuF;IACvF,YAAY,EAAE,MAAM;QAClB,YAAY,EAAE,SAAS,CAAC;QACxB,aAAa,EAAE,SAAS,CAAC;QACzB,cAAc,EAAE,SAAS,EAAE,CAAC;KAC7B,CAAC;CACH;AA2vBD,eAAO,MAAM,KAAK,oGAyoBjB,CAAC;AAQF,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../src/components/chart/chart.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiBlE,OAAO,mCAAmC,CAAC;AA0B3C,QAAA,MAAM,aAAa;;8EAelB,CAAC;AA2CF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhF,sFAAsF;AACtF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oIAAoI;IACpI,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CAChC;AAED,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzD,4DAA4D;AAC5D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd;gFAC4E;IAC5E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C;;6BAEyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IACpE,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;mFAE+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,8IAA8I;IAC9I,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,KAC3B,MAAM,CAAC;IACZ,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9B,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IACtC,uFAAuF;IACvF,YAAY,EAAE,MAAM;QAClB,YAAY,EAAE,SAAS,CAAC;QACxB,aAAa,EAAE,SAAS,CAAC;QACzB,cAAc,EAAE,SAAS,EAAE,CAAC;KAC7B,CAAC;CACH;AAq+BD,eAAO,MAAM,KAAK,oGAgvBjB,CAAC;AAQF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { Chart, chartVariants } from './chart';
2
- export type { ChartCurve, ChartHandle, ChartOrientation, ChartProps, ChartSeries, ChartType, } from './chart';
2
+ export type { ChartCurve, ChartDataPointContext, ChartHandle, ChartOrientation, ChartProps, ChartSecondaryAxis, ChartSeries, ChartType, } from './chart';
3
3
  export { chartAgent } from './chart.agent';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { C as t, c as s, a as c } from "../../_chunks/chart-D4huJSru.js";
1
+ import { C as t, c as s, a as c } from "../../_chunks/chart-pMkQN-qy.js";
2
2
  export {
3
3
  t as Chart,
4
4
  s as chartAgent,
@@ -1,6 +1,6 @@
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-CqQgoNsU.js";
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-C_nnpJ-Q.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-BS3V4LA6.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-OmvrkUeN.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 i, d as r } from "../../_chunks/date-time-picker-n-yrlMJq.js";
1
+ import { D as i, d as r } from "../../_chunks/date-time-picker-cwsWiB4q.js";
2
2
  export {
3
3
  i as DateTimePicker,
4
4
  r as dateTimePickerAgent
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/document-preview-QEbr7jp1.js";
1
+ import { D as r, d as t } from "../../_chunks/document-preview-ytR1FcWA.js";
2
2
  export {
3
3
  r as DocumentPreview,
4
4
  t as documentPreviewAgent
@@ -1,4 +1,4 @@
1
- import { F as r, f } from "../../_chunks/file-manager-BnI1ZWZu.js";
1
+ import { F as r, f } from "../../_chunks/file-manager-CAIbuaSs.js";
2
2
  export {
3
3
  r as FileManager,
4
4
  f as fileManagerAgent
@@ -1,4 +1,4 @@
1
- import { G as t } from "../../_chunks/gestational-age-calculator-Dr9hdDta.js";
1
+ import { G as t } from "../../_chunks/gestational-age-calculator-Dn8IOXHB.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-K41Wy7LB.js";
1
+ import { H, M as g, a as o } from "../../_chunks/hcg-doubling-DQe1ptNB.js";
2
2
  export {
3
3
  H as HcgDoubling,
4
4
  g as MINIMAL_48H_RISE_PERCENT,
@@ -1,4 +1,4 @@
1
- import { H as t, a as p, b as m, h as o } from "../../_chunks/heatmap-fCxwNz2o.js";
1
+ import { H as t, a as p, b as m, h as o } from "../../_chunks/heatmap-DdF8qTTV.js";
2
2
  export {
3
3
  t as Heatmap,
4
4
  p as HeatmapLegend,
@@ -1,4 +1,4 @@
1
- import { D as a, F as r, a as t, M as g, b as i, e as m, f as o, g as E, c as F, m as c, r as I, v as M } from "../../_chunks/muscle-scheme-C66WlCxG.js";
1
+ import { D as a, F as r, a as t, M as g, b as i, e as m, f as o, g as E, c as F, m as c, r as I, v as M } from "../../_chunks/muscle-scheme-B7qMW0ho.js";
2
2
  export {
3
3
  a as DEFAULT_MUSCLE_VIEW,
4
4
  r as FINDING_MARKER,
@@ -1,4 +1,4 @@
1
- import { O as e, o as a } from "../../_chunks/operator-hero-C_5B-8Qp.js";
1
+ import { O as e, o as a } from "../../_chunks/operator-hero-D_0KoEuJ.js";
2
2
  export {
3
3
  e as OperatorHero,
4
4
  a as operatorHeroAgent
@@ -54,8 +54,9 @@ export interface OperatorHeroProps extends Omit<ComponentPropsWithoutRef<'div'>,
54
54
  */
55
55
  badges?: OperatorHeroBadge[];
56
56
  /**
57
- * Rendered at the inline-end of the heading row (right side on LTR).
58
- * Use for a "Book with this operator" `<Button>` or a "Back to
57
+ * At the inline-end of the name row when the content column is 480px
58
+ * or wider; on its own line above the name, at the inline-start, when
59
+ * narrower. Use for a "Book with this operator" `<Button>` or a "Back to
59
60
  * practice" link.
60
61
  */
61
62
  actionSlot?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"operator-hero.d.ts","sourceRoot":"","sources":["../../../src/components/operator-hero/operator-hero.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAgClE,QAAA,MAAM,YAAY;;;8EAqBhB,CAAC;AAMH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAChE;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,wBAAwB,CAAC,KAAK,CAAC,EAC/B,YAAY,GAAG,UAAU,CAC1B;IACC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAI7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAIvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAI9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAMD,eAAO,MAAM,YAAY,8GA+LxB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC3C,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,SAAS,CAAC,CAC7C,CAAC"}
1
+ {"version":3,"file":"operator-hero.d.ts","sourceRoot":"","sources":["../../../src/components/operator-hero/operator-hero.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAgClE,QAAA,MAAM,YAAY;;;8EAqBhB,CAAC;AAMH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAChE;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,wBAAwB,CAAC,KAAK,CAAC,EAC/B,YAAY,GAAG,UAAU,CAC1B;IACC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAI7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAIvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAI9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAMD,eAAO,MAAM,YAAY,8GAyMxB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAC3C,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC,SAAS,CAAC,CAC7C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { A as S, a as r, b as A, c as e, d as I, e as _, C as t, f as E, g as o, D as M, h as i, E as P, L as N, O as R, P as m, i as D, j as n, k as f, l, R as X, S as C, m as d, n as p, o as T, p as c, q as L, r as O, s as Y, t as g, u as x, v as B, w as u, x as w, y, z as H, B as b, F as h } from "../../_chunks/optical-prescription-CMM1Y6Xg.js";
1
+ import { A as S, a as r, b as A, c as e, d as I, e as _, C as t, f as E, g as o, D as M, h as i, E as P, L as N, O as R, P as m, i as D, j as n, k as f, l, R as X, S as C, m as d, n as p, o as T, p as c, q as L, r as O, s as Y, t as g, u as x, v as B, w as u, x as w, y, z as H, B as b, F as h } from "../../_chunks/optical-prescription-BGVeDVSP.js";
2
2
  export {
3
3
  S as ADD_MAX,
4
4
  r as ADD_MIN,
@@ -1,4 +1,4 @@
1
- import { P as e, p as i } from "../../_chunks/patient-details-BjcUpD9S.js";
1
+ import { P as e, p as i } from "../../_chunks/patient-details-DTlpBYHJ.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-Cvv6_Ugk.js";
1
+ import { P as t, p as m } from "../../_chunks/patient-summary-card-C61AR4Tn.js";
2
2
  export {
3
3
  t as PatientSummaryCard,
4
4
  m as patientSummaryCardAgent
@@ -1,4 +1,4 @@
1
- import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-BtJvre1-.js";
1
+ import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-vZxbOFgP.js";
2
2
  export {
3
3
  s as BalanceBadgeCell,
4
4
  l as CarePlanStatusCell,
@@ -1,4 +1,4 @@
1
- import { P as r } from "../../_chunks/pregnancy-dating-BHvfDxz4.js";
1
+ import { P as r } from "../../_chunks/pregnancy-dating-CuVj9KGR.js";
2
2
  export {
3
3
  r as PregnancyDating
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import { R as i, r as o, w as a } from "../../_chunks/rich-text-editor-BfEu57dk.js";
2
- import { k as s } from "../../_chunks/kit-extensions-a0G4COFH.js";
2
+ import { k as s } from "../../_chunks/kit-extensions-44gudqqq.js";
3
3
  export {
4
4
  i as RichTextEditor,
5
5
  s as kitEditorExtensions,
@@ -1,4 +1,4 @@
1
- import { S as a, a as l, b as S, c, d as s, e as o, f as r, g as p, h as g, i, j as m } from "../../_chunks/select-4S-eYZUf.js";
1
+ import { S as a, a as l, b as S, c, d as s, e as o, f as r, g as p, h as g, i, j as m } from "../../_chunks/select-BBDRYxJl.js";
2
2
  export {
3
3
  a as Select,
4
4
  l as SelectContent,
@@ -123,7 +123,19 @@ declare const SelectGroup: import("react").ForwardRefExoticComponent<Omit<RadixS
123
123
  type SelectLabelProps = ComponentPropsWithoutRef<typeof RadixSelect.Label>;
124
124
  declare const SelectLabel: import("react").ForwardRefExoticComponent<Omit<RadixSelect.SelectLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
125
125
  declare const SelectSeparator: import("react").ForwardRefExoticComponent<Omit<RadixSelect.SelectSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
126
- export type SelectOption<T extends string = string> = OptionShape<T>;
126
+ export type SelectOption<T extends string = string> = OptionShape<T> & {
127
+ /**
128
+ * Draws a line above this option, e.g. to set an action at the end of
129
+ * the list apart from the values. Select only.
130
+ */
131
+ separatorBefore?: boolean;
132
+ /**
133
+ * `'action'`: the label in the link colour, for an option that does
134
+ * something (such as opening a page) rather than pick a value. The host
135
+ * handles it in `onValueChange` and keeps its own value. Select only.
136
+ */
137
+ intent?: 'action';
138
+ };
127
139
  /**
128
140
  * `data-*` attributes (test ids, error anchors) and other `aria-*`
129
141
  * attributes reach the trigger, and win over the ones the Select sets.