@alfadocs/ui-kit 1.45.0 → 1.47.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.
- package/dist/_chunks/{actions-cell-renderer-BXBy9c0f.js → actions-cell-renderer-B5m9lwgC.js} +2 -2
- package/dist/_chunks/ai-credits-notice-xszqOZTC.js +90 -0
- package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js +17 -0
- package/dist/_chunks/{ai-consent-banner-D7I2U-cz.js → ai-permission-notice-D7I2U-cz.js} +1 -1
- package/dist/_chunks/ai-sparkle-D23NT8Z_.js +45 -0
- package/dist/_chunks/{anamnesis-summary-rows-DQUqwWc1.js → anamnesis-summary-rows-DI-UX5r6.js} +2 -2
- package/dist/_chunks/{appointment-card-TgR_2GKS.js → appointment-card-DluZy8Iv.js} +2 -2
- package/dist/_chunks/{appointment-peek-abiR0T9e.js → appointment-peek-BsfCpiJs.js} +3 -3
- package/dist/_chunks/{appointment-timeline-CCnyUYKz.js → appointment-timeline-Cs5f9viN.js} +3 -3
- package/dist/_chunks/{appointment-tray-N0yEI8UF.js → appointment-tray-CLrGGnKR.js} +2 -2
- package/dist/_chunks/baby-Dku-Xvg9.js +23 -0
- package/dist/_chunks/{balance-badge-cell-o6LldMUA.js → balance-badge-cell-YGrYdrvR.js} +3 -3
- package/dist/_chunks/booking-C4MwImkS.js +3362 -0
- package/dist/_chunks/button-group-CA1tmu39.js +325 -0
- package/dist/_chunks/{calendar-U6N0F99w.js → calendar-OzSeTb4V.js} +2 -2
- package/dist/_chunks/{calendar-event-card-DKUnT9Be.js → calendar-event-card-B6N5h1dO.js} +57 -48
- package/dist/_chunks/calendar-workspace-DDnQmiIL.js +12427 -0
- package/dist/_chunks/{chart-PF2krCZC.js → chart-D8ucl8hH.js} +2 -2
- package/dist/_chunks/{data-table-CcAx_I1w.js → data-table-DnKOmEVw.js} +2 -2
- package/dist/_chunks/{editable-currency-cell-renderer-Psb6XKHR.js → editable-currency-cell-renderer-OUkUv7U4.js} +2 -2
- package/dist/_chunks/{face-scheme-Bm6pe7R8.js → face-scheme-mIhwrQXt.js} +3 -3
- package/dist/_chunks/{file-manager-BfLQxF5t.js → file-manager-DOcJGIx2.js} +4 -4
- package/dist/_chunks/{freemium-paywall-Cz-O9lQD.js → freemium-paywall-BaW5ODc9.js} +2 -2
- package/dist/_chunks/{header-settings-CTe45iDy.js → header-settings-BEfx_-TF.js} +2 -2
- package/dist/_chunks/{help-me-write-templates-GUeEn3Ff.js → help-me-write-templates-DHIwa4xR.js} +205 -199
- package/dist/_chunks/{hover-card-BMJBVqIf.js → hover-card-nUae8NPJ.js} +67 -62
- package/dist/_chunks/{icon-button-group-DkkdIygu.js → icon-button-group-DZKC6KGf.js} +181 -168
- package/dist/_chunks/kit-extensions-DuoFF1R3.js +94 -0
- package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js → marketplace-app-shell-PB89Dkk_.js} +2 -2
- package/dist/_chunks/{notes-panel-Dkk9QPPX.js → notes-panel-CHbDDMx8.js} +83 -73
- package/dist/_chunks/{patient-details-C8ImUrVg.js → patient-details-yrgkSeEY.js} +2 -2
- package/dist/_chunks/{patient-field-row-BRSOKvme.js → patient-field-row-DCMkFGqI.js} +3 -3
- package/dist/_chunks/{patient-summary-card-BhmKB2KR.js → patient-summary-card-CmEFflGS.js} +59 -45
- package/dist/_chunks/payment-form-DqJFiplX.js +881 -0
- package/dist/_chunks/{phone-input-BsZIoE36.js → phone-input-IWrGOCwm.js} +40 -39
- package/dist/_chunks/rich-text-editor-BwDV2XkZ.js +4153 -0
- package/dist/_chunks/{stepper-accordion-DmVykr5F.js → stepper-accordion-jMR8NaOB.js} +2 -1
- package/dist/_chunks/{tasks-panel-CpcikOeY.js → tasks-panel-DncuBPIZ.js} +2 -2
- package/dist/_chunks/{theme-toggle-bI0pgDDv.js → theme-toggle-BP0XRGMM.js} +2 -2
- package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js +76 -0
- package/dist/_chunks/{workflow-status-xeaJTzD3.js → workflow-status-CuJAOuKL.js} +43 -42
- package/dist/agent-catalog.json +36 -7
- package/dist/agent-i18n/en.json +3 -3
- package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts +3 -0
- package/dist/components/ai-credits-notice/ai-credits-notice.d.ts +48 -0
- package/dist/components/ai-credits-notice/index.d.ts +4 -0
- package/dist/components/ai-credits-notice/index.js +7 -0
- package/dist/components/{ai-consent-banner/ai-consent-banner.agent.d.ts → ai-permission-notice/ai-permission-notice.agent.d.ts} +2 -2
- package/dist/components/{ai-consent-banner/ai-consent-banner.d.ts → ai-permission-notice/ai-permission-notice.d.ts} +1 -1
- package/dist/components/ai-permission-notice/index.d.ts +4 -0
- package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js +1 -1
- package/dist/components/ai-sparkle/ai-sparkle.d.ts +3 -3
- package/dist/components/ai-sparkle/index.js +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/booking/booking-types.d.ts +60 -1
- package/dist/components/booking/booking.d.ts +1 -1
- package/dist/components/booking/details-form.d.ts +5 -1
- package/dist/components/booking/index.d.ts +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/booking/payment.d.ts +9 -0
- package/dist/components/booking/use-booking-payment.d.ts +14 -0
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/index.js +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/data-table/index.js +3 -3
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/hover-card/hover-card.d.ts +4 -0
- package/dist/components/hover-card/index.d.ts +1 -1
- package/dist/components/hover-card/index.js +3 -2
- package/dist/components/icon-button-group/index.js +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +10 -0
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-form/index.d.ts +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/payment-form/payment-form.d.ts +35 -3
- package/dist/components/phone-input/index.js +1 -1
- package/dist/components/rich-text-editor/editor-extensions.d.ts +54 -0
- package/dist/components/rich-text-editor/editor-toolbar.d.ts +2 -1
- package/dist/components/rich-text-editor/help-me-write-overlay.d.ts +4 -0
- package/dist/components/rich-text-editor/index.d.ts +2 -0
- package/dist/components/rich-text-editor/index.js +6 -4
- package/dist/components/rich-text-editor/kit-extensions.d.ts +4 -0
- package/dist/components/rich-text-editor/rich-text-editor.d.ts +18 -2
- package/dist/components/stepper-accordion/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/workflow-status/index.js +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +51 -53
- package/dist/hooks/use-ai-sparkle.d.ts +7 -25
- package/dist/host-compat.css +2 -2
- package/dist/i18n/locales/ar.d.ts +67 -1
- package/dist/i18n/locales/ar.js +69 -3
- package/dist/i18n/locales/de.d.ts +67 -1
- package/dist/i18n/locales/de.js +69 -3
- package/dist/i18n/locales/el.d.ts +67 -1
- package/dist/i18n/locales/el.js +69 -3
- package/dist/i18n/locales/en.d.ts +67 -1
- package/dist/i18n/locales/en.js +69 -3
- package/dist/i18n/locales/es.d.ts +67 -1
- package/dist/i18n/locales/es.js +69 -3
- package/dist/i18n/locales/fr.d.ts +67 -1
- package/dist/i18n/locales/fr.js +69 -3
- package/dist/i18n/locales/hi.d.ts +67 -1
- package/dist/i18n/locales/hi.js +69 -3
- package/dist/i18n/locales/it.d.ts +67 -1
- package/dist/i18n/locales/it.js +69 -3
- package/dist/i18n/locales/ja.d.ts +67 -1
- package/dist/i18n/locales/ja.js +69 -3
- package/dist/i18n/locales/nl.d.ts +67 -1
- package/dist/i18n/locales/nl.js +69 -3
- package/dist/i18n/locales/pl.d.ts +67 -1
- package/dist/i18n/locales/pl.js +69 -3
- package/dist/i18n/locales/pt.d.ts +67 -1
- package/dist/i18n/locales/pt.js +69 -3
- package/dist/i18n/locales/ro.d.ts +67 -1
- package/dist/i18n/locales/ro.js +69 -3
- package/dist/i18n/locales/ru.d.ts +67 -1
- package/dist/i18n/locales/ru.js +69 -3
- package/dist/i18n/locales/sq.d.ts +67 -1
- package/dist/i18n/locales/sq.js +69 -3
- package/dist/i18n/locales/sv.d.ts +67 -1
- package/dist/i18n/locales/sv.js +69 -3
- package/dist/i18n/locales/tr.d.ts +67 -1
- package/dist/i18n/locales/tr.js +69 -3
- package/dist/i18n/locales/zh.d.ts +67 -1
- package/dist/i18n/locales/zh.js +69 -3
- package/dist/index.js +648 -641
- package/dist/locales/ar.json +69 -3
- package/dist/locales/de.json +69 -3
- package/dist/locales/el.json +69 -3
- package/dist/locales/en.json +69 -3
- package/dist/locales/es.json +69 -3
- package/dist/locales/fr.json +69 -3
- package/dist/locales/hi.json +69 -3
- package/dist/locales/it.json +69 -3
- package/dist/locales/ja.json +69 -3
- package/dist/locales/nl.json +69 -3
- package/dist/locales/pl.json +69 -3
- package/dist/locales/pt.json +69 -3
- package/dist/locales/ro.json +69 -3
- package/dist/locales/ru.json +69 -3
- package/dist/locales/sq.json +69 -3
- package/dist/locales/sv.json +69 -3
- package/dist/locales/tr.json +69 -3
- package/dist/locales/zh.json +69 -3
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/calendar-editor-fields.d.ts +33 -0
- package/dist/patterns/calendar/calendar-sticky-offset.d.ts +20 -0
- package/dist/patterns/calendar/calendar-workspace.d.ts +6 -4
- package/dist/patterns/calendar/calendar.data.d.ts +26 -0
- package/dist/patterns/calendar/calendar.journey.d.ts +1 -1
- package/dist/patterns/calendar/calendar.sheets.d.ts +16 -5
- package/dist/patterns/calendar/calendar.types.d.ts +25 -9
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +11 -2
- package/dist/patterns/help-me-write-templates/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +14 -4
- package/dist/_chunks/ai-sparkle-DXeP_6a0.js +0 -52
- package/dist/_chunks/booking-D43ASl8y.js +0 -3034
- package/dist/_chunks/button-group-R32U7SyV.js +0 -307
- package/dist/_chunks/calendar-workspace-B7KvZ1_D.js +0 -12161
- package/dist/_chunks/payment-form-BHMDqW9C.js +0 -767
- package/dist/_chunks/rich-text-editor-BrAvNajV.js +0 -3779
- package/dist/_chunks/use-ai-sparkle-CyQSRTCe.js +0 -103
- package/dist/components/ai-consent-banner/index.d.ts +0 -4
|
@@ -13,6 +13,48 @@ export interface BookingSpecialty {
|
|
|
13
13
|
/** Restrict to operators-on-page when lockedOperatorId is set. */
|
|
14
14
|
operatorIds?: string[];
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* One appointment payment, in currency minor units. Set it only when the
|
|
18
|
+
* platform AppointmentBookingReason.requireAdvancePayment is true.
|
|
19
|
+
*/
|
|
20
|
+
export interface BookingServicePayment {
|
|
21
|
+
/** No platform field: the consumer derives it, e.g. deposit when advanceAmount < price. */
|
|
22
|
+
kind: 'full' | 'deposit';
|
|
23
|
+
/** Platform advanceAmount (euros) x 100. NOT price, which only feeds priceLabel. */
|
|
24
|
+
amountCents: number;
|
|
25
|
+
/** Defaults to EUR, the only currency production charges. */
|
|
26
|
+
currencyCode?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface BookingResolvedPayment extends BookingServicePayment {
|
|
29
|
+
serviceId: string;
|
|
30
|
+
currencyCode: string;
|
|
31
|
+
}
|
|
32
|
+
export interface BookingPaymentSession {
|
|
33
|
+
/** Opaque hold identity. Keep Stripe credentials in the consumer, keyed by this id. */
|
|
34
|
+
id: string;
|
|
35
|
+
payment: BookingResolvedPayment;
|
|
36
|
+
}
|
|
37
|
+
export interface BookingSubmitResult {
|
|
38
|
+
paymentSession: BookingPaymentSession;
|
|
39
|
+
}
|
|
40
|
+
export type BookingPaymentState = {
|
|
41
|
+
sessionId: string;
|
|
42
|
+
status: 'ready' | 'cancelled' | 'paid';
|
|
43
|
+
} | {
|
|
44
|
+
sessionId: string;
|
|
45
|
+
status: 'processing';
|
|
46
|
+
phase: 'payment' | 'completion';
|
|
47
|
+
} | {
|
|
48
|
+
sessionId: string;
|
|
49
|
+
status: 'failed';
|
|
50
|
+
phase: 'payment' | 'completion';
|
|
51
|
+
error?: ReactNode;
|
|
52
|
+
};
|
|
53
|
+
export interface BookingPaymentRenderContext {
|
|
54
|
+
session: BookingPaymentSession;
|
|
55
|
+
payment: BookingResolvedPayment;
|
|
56
|
+
state: BookingPaymentState;
|
|
57
|
+
}
|
|
16
58
|
export interface BookingService {
|
|
17
59
|
id: string;
|
|
18
60
|
label: string;
|
|
@@ -27,6 +69,8 @@ export interface BookingService {
|
|
|
27
69
|
* string verbatim. Added in 1.6.0.
|
|
28
70
|
*/
|
|
29
71
|
priceLabel?: string;
|
|
72
|
+
/** Mandatory online payment for this service only. Never inferred from priceLabel. */
|
|
73
|
+
payment?: BookingServicePayment;
|
|
30
74
|
/** Required when useSpecialties is true. */
|
|
31
75
|
specialtyId?: string;
|
|
32
76
|
/** Operators who can perform this service. */
|
|
@@ -50,6 +94,8 @@ export interface BookingOperator {
|
|
|
50
94
|
export interface BookingSlot {
|
|
51
95
|
/** Opaque unique key within `availableSlots[date]`. */
|
|
52
96
|
key: string;
|
|
97
|
+
/** Actual service booked when serviceIds contains several search alternatives. */
|
|
98
|
+
serviceId?: string;
|
|
53
99
|
/** HH:mm 24h — used for display. */
|
|
54
100
|
time: string;
|
|
55
101
|
available: boolean;
|
|
@@ -70,6 +116,8 @@ export interface BookingDetails {
|
|
|
70
116
|
* only when the service carries that text; omitted otherwise.
|
|
71
117
|
*/
|
|
72
118
|
criticalInformationAccepted?: boolean;
|
|
119
|
+
/** Included only when the patient accepts this service's payment quote. */
|
|
120
|
+
paymentAccepted?: boolean;
|
|
73
121
|
codiceFiscale?: string;
|
|
74
122
|
dateOfBirth?: string;
|
|
75
123
|
insuranceNumber?: string;
|
|
@@ -122,6 +170,7 @@ export interface BookingSubmitPayload {
|
|
|
122
170
|
value: BookingValue;
|
|
123
171
|
/** Fully populated + validated (privacy + terms ticked, required fields filled). */
|
|
124
172
|
details: BookingDetails;
|
|
173
|
+
payment?: BookingResolvedPayment;
|
|
125
174
|
}
|
|
126
175
|
export interface BookingValidationResult {
|
|
127
176
|
valid: boolean;
|
|
@@ -179,6 +228,16 @@ export interface BookingProps extends Omit<ComponentPropsWithoutRef<'div'>, 'ari
|
|
|
179
228
|
showReturningPatientFlag?: boolean;
|
|
180
229
|
privacyPolicyUrl?: string;
|
|
181
230
|
termsUrl?: string;
|
|
231
|
+
paymentTermsUrl?: string;
|
|
232
|
+
/** Publish paid only after the server verifies payment AND saves the appointment. */
|
|
233
|
+
paymentState?: BookingPaymentState;
|
|
234
|
+
/** Render PaymentForm here. The consumer owns Stripe credentials and completion calls. */
|
|
235
|
+
renderPayment?: (context: BookingPaymentRenderContext) => ReactNode;
|
|
236
|
+
/**
|
|
237
|
+
* Completion retry only: never render card entry or start another payment here.
|
|
238
|
+
* Supply it with renderPayment; without it a failed completion shows only the error.
|
|
239
|
+
*/
|
|
240
|
+
renderPaymentCompletion?: (context: BookingPaymentRenderContext) => ReactNode;
|
|
182
241
|
validateCodiceFiscale?: BookingValidator;
|
|
183
242
|
validateInsuranceNumber?: BookingValidator;
|
|
184
243
|
/** Default: false. Specialty auto-select on length=1 is always on. */
|
|
@@ -198,7 +257,7 @@ export interface BookingProps extends Omit<ComponentPropsWithoutRef<'div'>, 'ari
|
|
|
198
257
|
defaultConfirmationChannels?: ConfirmationChannel[];
|
|
199
258
|
value: BookingValue;
|
|
200
259
|
onChange: (next: BookingValue) => void;
|
|
201
|
-
onSubmit: (payload: BookingSubmitPayload) => void | Promise<void>;
|
|
260
|
+
onSubmit: (payload: BookingSubmitPayload) => void | BookingSubmitResult | Promise<void | BookingSubmitResult>;
|
|
202
261
|
/**
|
|
203
262
|
* Calendar/date-strip shimmer — set true while `availableDates` is being
|
|
204
263
|
* fetched. When omitted, the kit falls back to `loadingSlots` for the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BookingProps } from './booking-types';
|
|
2
|
-
export type { BookingDetails, BookingHandle, BookingOperator, BookingProps, BookingService, BookingSlot, BookingSpecialty, BookingSubmitPayload, BookingValidationResult, BookingValidator, BookingValue, BookingVariant, ConfirmationChannel, InsuranceType, } from './booking-types';
|
|
2
|
+
export type { BookingPaymentSession, BookingPaymentState, BookingPaymentRenderContext, BookingSubmitResult, BookingServicePayment, BookingResolvedPayment, BookingDetails, BookingHandle, BookingOperator, BookingProps, BookingService, BookingSlot, BookingSpecialty, BookingSubmitPayload, BookingValidationResult, BookingValidator, BookingValue, BookingVariant, ConfirmationChannel, InsuranceType, } from './booking-types';
|
|
3
3
|
export { CONFIRMATION_CHANNEL_ORDER } from './booking-types';
|
|
4
4
|
export { OPERATORS_ALL } from './cascade';
|
|
5
5
|
export declare const Booking: import("react").ForwardRefExoticComponent<BookingProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { BookingDetails, BookingValidator, ConfirmationChannel } from './booking-types';
|
|
2
|
+
import type { BookingDetails, BookingResolvedPayment, BookingValidator, ConfirmationChannel } from './booking-types';
|
|
3
3
|
export interface BookingDetailsFormProps {
|
|
4
4
|
value: Partial<BookingDetails>;
|
|
5
5
|
onChange: (next: Partial<BookingDetails>) => void;
|
|
@@ -13,6 +13,10 @@ export interface BookingDetailsFormProps {
|
|
|
13
13
|
showReturningPatientFlag?: boolean;
|
|
14
14
|
privacyPolicyUrl?: string;
|
|
15
15
|
termsUrl?: string;
|
|
16
|
+
payment?: BookingResolvedPayment;
|
|
17
|
+
paymentTermsUrl?: string;
|
|
18
|
+
/** Prevent submit when the selected service's payment cannot be resolved. */
|
|
19
|
+
paymentBlocked?: boolean;
|
|
16
20
|
/**
|
|
17
21
|
* The selected service's `criticalInformationToAccept`. When set (and not
|
|
18
22
|
* blank), a "Before you book" block renders above the consents and the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Booking } from './booking';
|
|
2
|
-
export type { BookingProps, BookingHandle, BookingVariant, BookingValue, BookingService, BookingSpecialty, BookingSlot, BookingOperator, BookingDetails, BookingSubmitPayload, BookingValidator, BookingValidationResult, ConfirmationChannel, InsuranceType, } from './booking';
|
|
2
|
+
export type { BookingPaymentSession, BookingPaymentState, BookingPaymentRenderContext, BookingSubmitResult, BookingServicePayment, BookingResolvedPayment, BookingProps, BookingHandle, BookingVariant, BookingValue, BookingService, BookingSpecialty, BookingSlot, BookingOperator, BookingDetails, BookingSubmitPayload, BookingValidator, BookingValidationResult, ConfirmationChannel, InsuranceType, } from './booking';
|
|
3
3
|
export { CONFIRMATION_CHANNEL_ORDER, OPERATORS_ALL } from './booking';
|
|
4
4
|
export { bookingAgent } from './booking.agent';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BookingResolvedPayment, BookingService, BookingSlot } from './booking-types';
|
|
2
|
+
export declare function resolveServicePayment(service: BookingService): BookingResolvedPayment | undefined;
|
|
3
|
+
/** Selected services are search alternatives, never a shopping basket. */
|
|
4
|
+
export declare function resolveBookingPayment(services: BookingService[], serviceIds: string[], slot?: BookingSlot): {
|
|
5
|
+
payment?: BookingResolvedPayment;
|
|
6
|
+
blocked: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function paymentIdentity(payment?: BookingResolvedPayment): string;
|
|
9
|
+
//# sourceMappingURL=payment.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BookingDetails, BookingPaymentSession, BookingProps, BookingSubmitPayload } from './booking-types';
|
|
2
|
+
export declare function useBookingPayment({ services, value, availableSlots, onSubmit, onChange, paymentState, submitting, paymentTermsUrl, renderPayment, }: Pick<BookingProps, 'services' | 'value' | 'availableSlots' | 'onSubmit' | 'onChange' | 'paymentState' | 'submitting' | 'paymentTermsUrl' | 'renderPayment'>): {
|
|
3
|
+
payment: import("./booking-types").BookingResolvedPayment | undefined;
|
|
4
|
+
blocked: boolean;
|
|
5
|
+
state: import("./booking-types").BookingPaymentState | undefined;
|
|
6
|
+
activeSession: BookingPaymentSession | undefined;
|
|
7
|
+
submit: (details: BookingDetails) => Promise<void>;
|
|
8
|
+
reset: () => void;
|
|
9
|
+
status: "idle" | "submitting" | "payment" | "success" | "error";
|
|
10
|
+
snapshot?: BookingSubmitPayload;
|
|
11
|
+
session?: BookingPaymentSession;
|
|
12
|
+
cancelled?: boolean;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=use-booking-payment.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
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-
|
|
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-
|
|
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-DnKOmEVw.js";
|
|
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-OUkUv7U4.js";
|
|
3
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-s3oHzOwi.js";
|
|
4
|
-
import { A as X, a as j } from "../../_chunks/actions-cell-renderer-
|
|
4
|
+
import { A as X, a as j } from "../../_chunks/actions-cell-renderer-B5m9lwgC.js";
|
|
5
5
|
export {
|
|
6
6
|
X as ActionsCellRenderer,
|
|
7
7
|
g as BalanceCellRenderer,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as e, F as o, a as n, b as A, c as i, d as f, e as t, I, f as N, g as T, h as F, i as _, j as E, k as c, l as h, m as r, n as p, o as O, p as S, q as m, r as l, s as d, t as C, u as D } from "../../_chunks/face-scheme-
|
|
1
|
+
import { A as e, F as o, a as n, b as A, c as i, d as f, e as t, I, f as N, g as T, h as F, i as _, j as E, k as c, l as h, m as r, n as p, o as O, p as S, q as m, r as l, s as d, t as C, u as D } from "../../_chunks/face-scheme-mIhwrQXt.js";
|
|
2
2
|
export {
|
|
3
3
|
e as ANNOTATION_TOOL_KIND,
|
|
4
4
|
o as FACE_ANNOTATION_TOOLS,
|
|
@@ -65,6 +65,10 @@ export interface HoverCardContentProps extends Omit<ComponentPropsWithoutRef<typ
|
|
|
65
65
|
export interface HoverCardHeadingProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
66
66
|
as?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
67
67
|
}
|
|
68
|
+
export declare function useHoverCardTiming(): {
|
|
69
|
+
cancelClose: () => void;
|
|
70
|
+
closeWithDelay: () => void;
|
|
71
|
+
};
|
|
68
72
|
export declare const HoverCard: typeof HoverCardRoot & {
|
|
69
73
|
Root: typeof HoverCardRoot;
|
|
70
74
|
Trigger: import("react").ForwardRefExoticComponent<Omit<RadixPopover.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { HoverCard } from './hover-card';
|
|
1
|
+
export { HoverCard, useHoverCardTiming } from './hover-card';
|
|
2
2
|
export type { HoverCardProps, HoverCardContentProps, HoverCardHeadingProps, HoverCardTriggerProps, HoverCardAnchorProps, HoverCardHandle, HoverCardSide, } from './hover-card';
|
|
3
3
|
export { hoverCardAgent } from './hover-card.agent';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { H as e, h as o } from "../../_chunks/hover-card-
|
|
1
|
+
import { H as e, h as o, u as s } from "../../_chunks/hover-card-nUae8NPJ.js";
|
|
2
2
|
export {
|
|
3
3
|
e as HoverCard,
|
|
4
|
-
o as hoverCardAgent
|
|
4
|
+
o as hoverCardAgent,
|
|
5
|
+
s as useHoverCardTiming
|
|
5
6
|
};
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -117,7 +117,8 @@ export * from './tabs';
|
|
|
117
117
|
export * from './theme-toggle';
|
|
118
118
|
export * from './agenda-card';
|
|
119
119
|
export * from './agenda-tray';
|
|
120
|
-
export * from './ai-
|
|
120
|
+
export * from './ai-permission-notice';
|
|
121
|
+
export * from './ai-credits-notice';
|
|
121
122
|
export * from './alert';
|
|
122
123
|
export * from './appointment-card';
|
|
123
124
|
export * from './appointment-peek';
|
|
@@ -169,6 +169,16 @@ export interface NotesPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'titl
|
|
|
169
169
|
onUploadImage?: RichTextEditorProps['onUploadImage'];
|
|
170
170
|
/** An AI call ran out of credits. See `RichTextEditor`. */
|
|
171
171
|
onAiCreditsExhausted?: RichTextEditorProps['onAiCreditsExhausted'];
|
|
172
|
+
/** Show the editor extensions affordance. See `RichTextEditor`. */
|
|
173
|
+
showExtensions?: RichTextEditorProps['showExtensions'];
|
|
174
|
+
extensions?: RichTextEditorProps['extensions'];
|
|
175
|
+
extensionContext?: RichTextEditorProps['extensionContext'];
|
|
176
|
+
onExtensionRun?: RichTextEditorProps['onExtensionRun'];
|
|
177
|
+
/**
|
|
178
|
+
* Shows the AI-credits/bundles hover card on every AI action trigger in
|
|
179
|
+
* the composer. See `RichTextEditor`.
|
|
180
|
+
*/
|
|
181
|
+
aiCreditsNotice?: RichTextEditorProps['aiCreditsNotice'];
|
|
172
182
|
/**
|
|
173
183
|
* Rendered just above the composer — e.g. the Help-me-write templates
|
|
174
184
|
* pattern's `undoNotice`. Renders in both add and edit mode, whenever the
|
|
@@ -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-
|
|
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-YGrYdrvR.js";
|
|
2
2
|
export {
|
|
3
3
|
s as BalanceBadgeCell,
|
|
4
4
|
l as CarePlanStatusCell,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { PaymentForm, formatPaymentAmount, stripCardLikeDigits, stripeErrorCodeToI18nKey, paymentFormVariants, paymentSubmitButtonVariants, } from './payment-form';
|
|
2
|
-
export type { PaymentFormProps, PaymentFormHandle, PaymentFormStatus, PaymentCurrency, } from './payment-form';
|
|
2
|
+
export type { PaymentFormProps, PaymentFormHandle, PaymentFormStatus, PaymentFormIntentStatus, PaymentFormBillingDetails, PaymentCurrency, } from './payment-form';
|
|
3
3
|
export { paymentFormAgent } from './payment-form.agent';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-
|
|
1
|
+
import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-DqJFiplX.js";
|
|
2
2
|
export {
|
|
3
3
|
r as PaymentForm,
|
|
4
4
|
s as formatPaymentAmount,
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Stripe } from '@stripe/stripe-js';
|
|
2
2
|
export type PaymentCurrency = string;
|
|
3
|
+
/** Stripe's known PaymentIntent states. Only `succeeded` means paid. */
|
|
4
|
+
export type PaymentFormIntentStatus = 'requires_payment_method' | 'requires_confirmation' | 'requires_action' | 'processing' | 'requires_capture' | 'canceled' | 'succeeded';
|
|
5
|
+
/** Complete invoicing address only. Never contains card details. */
|
|
6
|
+
export interface PaymentFormBillingDetails {
|
|
7
|
+
name: string;
|
|
8
|
+
address: {
|
|
9
|
+
line1: string;
|
|
10
|
+
line2: string | null;
|
|
11
|
+
city: string;
|
|
12
|
+
state: string;
|
|
13
|
+
postalCode: string;
|
|
14
|
+
country: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
3
17
|
export interface PaymentFormProps {
|
|
4
18
|
/** Opaque instance id — emitted as `data-component-id` for the agent registry. */
|
|
5
19
|
id?: string;
|
|
@@ -18,6 +32,8 @@ export interface PaymentFormProps {
|
|
|
18
32
|
* own intent type wins). Defaults to `'payment'`.
|
|
19
33
|
*/
|
|
20
34
|
mode?: 'payment' | 'setup';
|
|
35
|
+
/** Restrict deferred Elements to cards. With a client secret, the server intent controls methods. */
|
|
36
|
+
cardOnly?: boolean;
|
|
21
37
|
/**
|
|
22
38
|
* Deferred-confirm callback. Called at submit time (after client-side
|
|
23
39
|
* field validation succeeds) so your server can mint a PaymentIntent and
|
|
@@ -27,14 +43,20 @@ export interface PaymentFormProps {
|
|
|
27
43
|
* charge is attempted.
|
|
28
44
|
*/
|
|
29
45
|
onCreatePaymentIntent?: () => Promise<string>;
|
|
46
|
+
/** Preview-only validation completed. Awaited without creating or confirming a payment. */
|
|
47
|
+
onPreviewValidated?: () => void | Promise<void>;
|
|
30
48
|
/** Stripe publishable key (`pk_test_…` / `pk_live_…`). */
|
|
31
49
|
publishableKey: string;
|
|
50
|
+
/** Connected account used to create the intent. Ignored by an injected Stripe instance. */
|
|
51
|
+
stripeAccount?: string;
|
|
32
52
|
/** ISO-4217 currency code (e.g. 'EUR', 'USD', 'JPY'). */
|
|
33
53
|
currency: PaymentCurrency;
|
|
34
54
|
/** Amount in the currency's smallest unit (cents for EUR/USD, yen for JPY). */
|
|
35
55
|
amount: number;
|
|
36
56
|
/** Called with the PaymentIntent id on successful confirmation. */
|
|
37
57
|
onSuccess?: (paymentIntentId: string) => void;
|
|
58
|
+
/** Observes confirmed intent states, including payments still awaiting completion. */
|
|
59
|
+
onPaymentStatusChange?: (status: PaymentFormIntentStatus, paymentIntentId: string) => void;
|
|
38
60
|
/** Called with a sanitised error (no PAN digits, no Stripe English strings). */
|
|
39
61
|
onError?: (error: {
|
|
40
62
|
code: string;
|
|
@@ -42,6 +64,16 @@ export interface PaymentFormProps {
|
|
|
42
64
|
}) => void;
|
|
43
65
|
/** Show the billing-address collector below the payment fields. */
|
|
44
66
|
billingAddress?: boolean;
|
|
67
|
+
/** Show and require a complete billing address before confirming payment. */
|
|
68
|
+
requireBillingAddress?: boolean;
|
|
69
|
+
/** Initial name/address for each Elements session. Does not enable or validate the collector. */
|
|
70
|
+
defaultBillingDetails?: PaymentFormBillingDetails;
|
|
71
|
+
/**
|
|
72
|
+
* Save complete billing details before confirmation or any redirect. Enables
|
|
73
|
+
* the address collector; rejection blocks payment and permits a retry.
|
|
74
|
+
* Not called in validation-only preview mode. Never logs or stores details.
|
|
75
|
+
*/
|
|
76
|
+
onBillingDetails?: (details: PaymentFormBillingDetails) => void | Promise<void>;
|
|
45
77
|
/** Locale override — defaults to the active i18next locale. */
|
|
46
78
|
locale?: string;
|
|
47
79
|
/** Accessible label for the form. */
|
|
@@ -72,12 +104,12 @@ export interface PaymentFormHandle {
|
|
|
72
104
|
* `getStatus()` / `getErrorKey()` afterwards for the outcome.
|
|
73
105
|
*/
|
|
74
106
|
submit: () => Promise<void>;
|
|
75
|
-
/**
|
|
107
|
+
/** Clear recoverable errors. A pending or paid attempt requires a new session. */
|
|
76
108
|
reset: () => void;
|
|
77
109
|
/** Lifecycle of the current attempt. */
|
|
78
110
|
getStatus: () => PaymentFormStatus;
|
|
79
111
|
/**
|
|
80
|
-
* True when Stripe reports the payment fields as complete. `submit`
|
|
112
|
+
* True when Stripe reports the payment fields, and any required billing address, as complete. `submit`
|
|
81
113
|
* is refused (the button is disabled) while this is false outside
|
|
82
114
|
* preview mode.
|
|
83
115
|
*/
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { TFunction } from 'i18next';
|
|
3
|
+
import type { InsertPayload } from '../_shared/insert-result';
|
|
4
|
+
import type { HelpMeWriteRenderContext } from './rich-text-editor';
|
|
5
|
+
export type EditorExtensionContext = 'note' | 'diagnosis' | 'document' | string;
|
|
6
|
+
export interface EditorExtensionRenderContext {
|
|
7
|
+
html: string;
|
|
8
|
+
text: string;
|
|
9
|
+
selectionText: HelpMeWriteRenderContext['selectionText'];
|
|
10
|
+
scope: HelpMeWriteRenderContext['scope'];
|
|
11
|
+
/** Inserts at the captured selection, then closes. Image modes require an upload seam. */
|
|
12
|
+
insert: (payload: InsertPayload) => Promise<void>;
|
|
13
|
+
close: () => void;
|
|
14
|
+
signal: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
export type EditorExtensionRunContext = EditorExtensionRenderContext;
|
|
17
|
+
/** Outcomes contain no editor content or host error messages. */
|
|
18
|
+
export type EditorExtensionRunResult = {
|
|
19
|
+
status: 'success';
|
|
20
|
+
} | {
|
|
21
|
+
status: 'error';
|
|
22
|
+
} | {
|
|
23
|
+
status: 'aborted';
|
|
24
|
+
};
|
|
25
|
+
export interface EditorExtension {
|
|
26
|
+
id: string;
|
|
27
|
+
/** Translated host label, or a kit translation key. */
|
|
28
|
+
label: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
icon?: ReactNode;
|
|
31
|
+
/** Absent means everywhere. Restricted entries require a matching editor context. */
|
|
32
|
+
contexts?: EditorExtensionContext[];
|
|
33
|
+
source?: {
|
|
34
|
+
kind: 'kit' | 'marketplace';
|
|
35
|
+
appName?: string;
|
|
36
|
+
appIconUrl?: string;
|
|
37
|
+
};
|
|
38
|
+
kind: 'panel' | 'action';
|
|
39
|
+
render?: (ctx: EditorExtensionRenderContext) => ReactNode;
|
|
40
|
+
run?: (ctx: EditorExtensionRunContext) => Promise<InsertPayload | null>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolve an extension's `label` for display.
|
|
44
|
+
*
|
|
45
|
+
* `label` is either a kit translation key or a string the host has already
|
|
46
|
+
* translated, so it has to survive the round trip untouched when it is the
|
|
47
|
+
* latter. i18next reads `:` as its namespace separator and splits any key on
|
|
48
|
+
* it unless the key also carries a space, comma, `?`, `!` or `;` — so a host
|
|
49
|
+
* label like `ICD-10:lookup` came back as `lookup`, the prefix silently eaten
|
|
50
|
+
* (caught in review on #183). `nsSeparator: false` turns that parse off, and
|
|
51
|
+
* `defaultValue` returns the label verbatim when there is no key to look up.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveExtensionLabel(t: TFunction, label: string): string;
|
|
54
|
+
//# sourceMappingURL=editor-extensions.d.ts.map
|
|
@@ -31,6 +31,7 @@ export interface EditorToolbarProps {
|
|
|
31
31
|
* wired to a menu.
|
|
32
32
|
*/
|
|
33
33
|
showExtensions?: boolean;
|
|
34
|
+
extensionControl?: ReactNode;
|
|
34
35
|
/** Template variables for the "Insert variable" menu (hidden when empty). */
|
|
35
36
|
variables?: RichTextEditorVariable[];
|
|
36
37
|
/** Most-recently-used tokens, most recent first — rendered as the menu's
|
|
@@ -100,5 +101,5 @@ export interface SelectionFloatingToolbarProps {
|
|
|
100
101
|
children?: ReactNode;
|
|
101
102
|
}
|
|
102
103
|
export declare function SelectionFloatingToolbar({ active, run, areaRef, getEditorRoot, suppressed, holdOpen, children, }: SelectionFloatingToolbarProps): React.JSX.Element | null;
|
|
103
|
-
export declare function EditorToolbar({ run, active, preset, insertHtml, insertTable, saveSelection, restoreSelection, getSelectedText, uploadImage, enableColor, enableImage, enableTable, showExtensions, variables, recentVariableTokens, insertVariable, }: EditorToolbarProps): React.JSX.Element;
|
|
104
|
+
export declare function EditorToolbar({ run, active, preset, insertHtml, insertTable, saveSelection, restoreSelection, getSelectedText, uploadImage, enableColor, enableImage, enableTable, showExtensions, extensionControl, variables, recentVariableTokens, insertVariable, }: EditorToolbarProps): React.JSX.Element;
|
|
104
105
|
//# sourceMappingURL=editor-toolbar.d.ts.map
|
|
@@ -21,5 +21,9 @@ export interface HelpMeWriteOverlayProps {
|
|
|
21
21
|
onFinalTranscript: (text: string) => void;
|
|
22
22
|
}) => Promise<void>;
|
|
23
23
|
}
|
|
24
|
+
/** Shared safe failure surface for requests made from the editor dock. */
|
|
25
|
+
export declare function EditorRequestError({ id }: {
|
|
26
|
+
id?: string;
|
|
27
|
+
}): React.JSX.Element;
|
|
24
28
|
export declare function HelpMeWriteOverlay({ open, onClose, onRequestAiDraft, onInsert, previewAsHtml, privacyNotice, onDictate, }: HelpMeWriteOverlayProps): React.JSX.Element;
|
|
25
29
|
//# sourceMappingURL=help-me-write-overlay.d.ts.map
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { RichTextEditor, wrapperVariants } from './rich-text-editor';
|
|
2
2
|
export type { RichTextEditorHandle, RichTextEditorProps, RichTextEditorToolbar, RedactorFactory, AiConsentGate, RichTextEditorVariable, HelpMeWriteRenderContext, RichTextEditorAiTemplate, RichTextEditorAiTemplates, RichTextEditorAiActionRequest, RichTextEditorAiApplied, } from './rich-text-editor';
|
|
3
3
|
export { richTextEditorAgent } from './rich-text-editor.agent';
|
|
4
|
+
export type { EditorExtension, EditorExtensionContext, EditorExtensionRenderContext, EditorExtensionRunContext, EditorExtensionRunResult, } from './editor-extensions';
|
|
5
|
+
export { kitEditorExtensions } from './kit-extensions';
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { R as
|
|
1
|
+
import { R as i, r as o, w as a } from "../../_chunks/rich-text-editor-BwDV2XkZ.js";
|
|
2
|
+
import { k as s } from "../../_chunks/kit-extensions-DuoFF1R3.js";
|
|
2
3
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
i as RichTextEditor,
|
|
5
|
+
s as kitEditorExtensions,
|
|
6
|
+
o as richTextEditorAgent,
|
|
7
|
+
a as wrapperVariants
|
|
6
8
|
};
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import '../../tokens/themes/bridges/redactor-theme.css';
|
|
3
|
-
import { type AiConsentBannerHeadingLevel } from '../ai-
|
|
3
|
+
import { type AiConsentBannerHeadingLevel } from '../ai-permission-notice';
|
|
4
|
+
import type { EditorExtension, EditorExtensionContext, EditorExtensionRunResult } from './editor-extensions';
|
|
5
|
+
import { type AiCreditsNoticeProps } from '../ai-credits-notice';
|
|
4
6
|
export type RedactorFactory = (selector: string | HTMLElement, command?: unknown, ...args: unknown[]) => unknown;
|
|
5
7
|
export type RichTextEditorToolbar = 'minimal' | 'standard' | 'full';
|
|
6
8
|
/**
|
|
@@ -149,8 +151,11 @@ export interface RichTextEditorProps {
|
|
|
149
151
|
ariaLabel?: string;
|
|
150
152
|
/** Size variant for the minimum block-size of the editing region. */
|
|
151
153
|
minHeight?: 'sm' | 'md' | 'lg' | 'fill';
|
|
152
|
-
/**
|
|
154
|
+
/** @deprecated Pass extensions instead. Forces the disabled placeholder for one release. */
|
|
153
155
|
showExtensions?: boolean;
|
|
156
|
+
extensions?: EditorExtension[];
|
|
157
|
+
extensionContext?: EditorExtensionContext;
|
|
158
|
+
onExtensionRun?: (id: string, result: EditorExtensionRunResult) => void;
|
|
154
159
|
/** Extra class names on the wrapper. */
|
|
155
160
|
className?: string;
|
|
156
161
|
/** Inject the Redactor factory explicitly; else `window.$R` / `window.Redactor`. */
|
|
@@ -285,6 +290,17 @@ export interface RichTextEditorProps {
|
|
|
285
290
|
* error line shows.
|
|
286
291
|
*/
|
|
287
292
|
onAiCreditsExhausted?: () => void;
|
|
293
|
+
/**
|
|
294
|
+
* Shows an `AiCreditsNotice` hover card on every AI action trigger — the
|
|
295
|
+
* pill's segments (dictation, templates, proofread, auto-format,
|
|
296
|
+
* Help me write), the selection bubble's AI buttons, and both mics. Omit
|
|
297
|
+
* it for today's ungated behaviour: no card, no change. Present, it
|
|
298
|
+
* replaces any tooltip a wrapped trigger would otherwise show (one
|
|
299
|
+
* floating layer per trigger, never two) and never interferes with the
|
|
300
|
+
* consent gate — the button's own click still runs the action, or opens
|
|
301
|
+
* the gate, exactly as it does without this prop.
|
|
302
|
+
*/
|
|
303
|
+
aiCreditsNotice?: AiCreditsNoticeProps;
|
|
288
304
|
}
|
|
289
305
|
/** Block/inline formats the editor can toggle via `applyFormat`. */
|
|
290
306
|
export type EditorFormat = 'bold' | 'italic' | 'strikethrough' | 'bulletedList' | 'numberedList' | 'heading' | 'quote' | 'paragraph';
|