@alfadocs/ui-kit 1.7.0 → 1.8.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/{anamnesis-summary-rows-F-cCmFAn.js → anamnesis-summary-rows-d44s_whc.js} +2 -2
- package/dist/_chunks/{antenatal-schedule-timeline-BjlF2rTz.js → antenatal-schedule-timeline-B1k8QkA6.js} +3 -3
- package/dist/_chunks/{appointment-card-BhcPJpXh.js → appointment-card-Dzr3GeVz.js} +73 -90
- package/dist/_chunks/{appointment-timeline-CMPvzlGZ.js → appointment-timeline-0mwtpErq.js} +3 -3
- package/dist/_chunks/{appointment-tray-3c_FLxXJ.js → appointment-tray-4FUu_5NX.js} +2 -2
- package/dist/_chunks/armchair-BaLDW6Hz.js +23 -0
- package/dist/_chunks/{booking-CQMJUFG-.js → booking-DHkKcUIl.js} +4 -4
- package/dist/_chunks/{calendar-4dXTvsCz.js → calendar-B4Gnyu1C.js} +553 -437
- package/dist/_chunks/calendar-event-card-Bjdbik8G.js +425 -0
- package/dist/_chunks/{care-plan-card-DQjVRDxO.js → care-plan-card-aDN4oem9.js} +3 -3
- package/dist/_chunks/{care-plan-entry-card-CMpoeNkb.js → care-plan-entry-card-BEhANdBE.js} +2 -2
- package/dist/_chunks/{care-plan-header-CxYoq23f.js → care-plan-header-CkpPyQqG.js} +2 -2
- package/dist/_chunks/{color-picker-D-tUwxxT.js → color-picker-oZ6zYks8.js} +164 -151
- package/dist/_chunks/control-room-rail-Cj2iX9h_.js +337 -0
- package/dist/_chunks/{cycle-calculator-DzgO1vzP.js → cycle-calculator-DmtYGhqq.js} +3 -3
- package/dist/_chunks/{date-picker-Bp64zk2p.js → date-picker-CepI_oI2.js} +77 -74
- package/dist/_chunks/{date-picker-variants-pKAJfnWr.js → date-picker-variants-DfuooXEK.js} +7 -2
- package/dist/_chunks/{date-range-picker-CDrZ8Zh0.js → date-range-picker-BD8P_rJq.js} +46 -45
- package/dist/_chunks/{date-time-picker-DVETwpzc.js → date-time-picker-3I2vVKGV.js} +2 -2
- package/dist/_chunks/{due-date-calculator-wK8Tajzz.js → due-date-calculator-BF_Ikofx.js} +4 -4
- package/dist/_chunks/{entity-card-9_62gY7l.js → entity-card-DmrgYSEX.js} +4 -4
- package/dist/_chunks/{gestational-age-calculator-C_uDAeP_.js → gestational-age-calculator-CxZelpu2.js} +5 -5
- package/dist/_chunks/{hcg-doubling-BaXkJhT-.js → hcg-doubling-CpU7H5rQ.js} +3 -3
- package/dist/_chunks/{link-cell-renderer-DH4JYpKU.js → link-cell-renderer-BZQtsuFz.js} +2 -2
- package/dist/_chunks/{notes-panel-DlnENphf.js → notes-panel-e9cJWVRg.js} +2 -2
- package/dist/_chunks/{operator-hero-CCDnIa1S.js → operator-hero-BnFv-Uef.js} +2 -2
- package/dist/_chunks/{parse-JqixfsU0.js → parse-MN9bGkrY.js} +2 -2
- package/dist/_chunks/{patient-details-qnsqYBGQ.js → patient-details-xrqe13az.js} +160 -159
- package/dist/_chunks/{patient-table-DwshfVsQ.js → patient-table-BqYomX50.js} +2 -2
- package/dist/_chunks/{payment-automation-upsell-BBIG7NFL.js → payment-automation-upsell-DwQW2fRp.js} +52 -63
- package/dist/_chunks/{payment-request-card-BjjBMdsp.js → payment-request-card-YVCcCZ25.js} +2 -2
- package/dist/_chunks/{pregnancy-dating-BVS_9YU2.js → pregnancy-dating-DtToyMyc.js} +5 -5
- package/dist/_chunks/{radiograph-panel.agent-CiHwgISa.js → radiograph-panel.agent-C3trfWqB.js} +3 -3
- package/dist/_chunks/repeat-CvQa5rZt.js +17 -0
- package/dist/_chunks/resource-chip-DYTG0IQQ.js +83 -0
- package/dist/_chunks/{rich-text-editor-DARnq_6N.js → rich-text-editor-BDfFtK4H.js} +2 -2
- package/dist/_chunks/subDays-BLl3y3pd.js +8 -0
- package/dist/agent-catalog.json +2 -2
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts +138 -12
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/calendar-event-card.d.ts +48 -11
- package/dist/components/calendar-event-card/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/color-picker/index.d.ts +1 -1
- package/dist/components/color-picker/index.js +4 -3
- package/dist/components/color-picker/palettes.d.ts +10 -0
- package/dist/components/control-room-rail/control-room-rail.d.ts +9 -0
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/date-picker/date-picker.d.ts +11 -0
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/hcg-doubling/index.js +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-details/patient-details.d.ts +8 -0
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/resource-chip/index.d.ts +3 -0
- package/dist/components/resource-chip/index.js +5 -0
- package/dist/components/resource-chip/resource-chip.d.ts +26 -0
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/host-compat.css +7 -1
- package/dist/i18n/locales/ar.d.ts +4 -0
- package/dist/i18n/locales/ar.js +4 -0
- package/dist/i18n/locales/de.d.ts +4 -0
- package/dist/i18n/locales/de.js +4 -0
- package/dist/i18n/locales/el.d.ts +4 -0
- package/dist/i18n/locales/el.js +4 -0
- package/dist/i18n/locales/en.d.ts +4 -0
- package/dist/i18n/locales/en.js +4 -0
- package/dist/i18n/locales/es.d.ts +4 -0
- package/dist/i18n/locales/es.js +4 -0
- package/dist/i18n/locales/fr.d.ts +4 -0
- package/dist/i18n/locales/fr.js +4 -0
- package/dist/i18n/locales/hi.d.ts +4 -0
- package/dist/i18n/locales/hi.js +4 -0
- package/dist/i18n/locales/it.d.ts +4 -0
- package/dist/i18n/locales/it.js +4 -0
- package/dist/i18n/locales/ja.d.ts +4 -0
- package/dist/i18n/locales/ja.js +4 -0
- package/dist/i18n/locales/nl.d.ts +4 -0
- package/dist/i18n/locales/nl.js +4 -0
- package/dist/i18n/locales/pl.d.ts +4 -0
- package/dist/i18n/locales/pl.js +4 -0
- package/dist/i18n/locales/pt.d.ts +4 -0
- package/dist/i18n/locales/pt.js +4 -0
- package/dist/i18n/locales/ro.d.ts +4 -0
- package/dist/i18n/locales/ro.js +4 -0
- package/dist/i18n/locales/ru.d.ts +4 -0
- package/dist/i18n/locales/ru.js +4 -0
- package/dist/i18n/locales/sq.d.ts +4 -0
- package/dist/i18n/locales/sq.js +4 -0
- package/dist/i18n/locales/sv.d.ts +4 -0
- package/dist/i18n/locales/sv.js +4 -0
- package/dist/i18n/locales/tr.d.ts +4 -0
- package/dist/i18n/locales/tr.js +4 -0
- package/dist/i18n/locales/zh.d.ts +4 -0
- package/dist/i18n/locales/zh.js +4 -0
- package/dist/index.js +961 -958
- package/dist/locales/ar.json +4 -0
- package/dist/locales/de.json +4 -0
- package/dist/locales/el.json +4 -0
- package/dist/locales/en.json +4 -0
- package/dist/locales/es.json +4 -0
- package/dist/locales/fr.json +4 -0
- package/dist/locales/hi.json +4 -0
- package/dist/locales/it.json +4 -0
- package/dist/locales/ja.json +4 -0
- package/dist/locales/nl.json +4 -0
- package/dist/locales/pl.json +4 -0
- package/dist/locales/pt.json +4 -0
- package/dist/locales/ro.json +4 -0
- package/dist/locales/ru.json +4 -0
- package/dist/locales/sq.json +4 -0
- package/dist/locales/sv.json +4 -0
- package/dist/locales/tr.json +4 -0
- package/dist/locales/zh.json +4 -0
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/payment-automation-upsell/index.js +1 -1
- package/dist/tokens.css +40 -24
- package/package.json +5 -1
- package/dist/_chunks/calendar-event-card-C6qGtywL.js +0 -257
- package/dist/_chunks/control-room-rail-IH1eBjrK.js +0 -333
- package/dist/_chunks/subDays-CAUv47M1.js +0 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import '../../tokens/themes/bridges/fullcalendar-theme.css';
|
|
3
|
-
export type CalendarView = 'dayGridMonth' | 'timeGridWeek' | 'timeGridDay' | 'listWeek' | 'resourceTimeGridDayChair' | 'resourceTimeGridThreeDaysChair' | 'resourceTimeGridWeekChair' | 'resourceTimeGridDayOperator' | 'resourceTimeGridThreeDaysOperator' | 'resourceTimeGridWeekOperator';
|
|
3
|
+
export type CalendarView = 'dayGridMonth' | 'timeGridWeek' | 'timeGridThreeDays' | 'timeGridDay' | 'listWeek' | 'resourceTimeGridDayChair' | 'resourceTimeGridThreeDaysChair' | 'resourceTimeGridWeekChair' | 'resourceTimeGridDayOperator' | 'resourceTimeGridThreeDaysOperator' | 'resourceTimeGridWeekOperator';
|
|
4
4
|
/**
|
|
5
5
|
* Maps a public `CalendarView` name to the internal FullCalendar view
|
|
6
6
|
* name. `resourceLayout` selects between `resourceTimeGrid*` (vertical)
|
|
@@ -45,9 +45,40 @@ export interface CalendarEvent {
|
|
|
45
45
|
hasBillableAmount?: boolean;
|
|
46
46
|
/** Shows a Video icon. */
|
|
47
47
|
isTelehealth?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Shows a Repeat icon — this event belongs to a repeating series. Set
|
|
50
|
+
* it on EVERY occurrence: it answers "does moving or deleting this
|
|
51
|
+
* touch other appointments?", which holds for a modified occurrence
|
|
52
|
+
* too. Distinct from `isRecurrenceParent`, which is the series ROLE.
|
|
53
|
+
*/
|
|
54
|
+
isRecurring?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Series ROLE — this row owns the recurrence rule (the others are
|
|
57
|
+
* generated from it, or are overrides of one occurrence). Carried
|
|
58
|
+
* through `onEventClick` so a consumer can branch its
|
|
59
|
+
* this / this-and-following / all dialog on it. Renders nothing on its
|
|
60
|
+
* own: use `isRecurring` for the grid indicator.
|
|
61
|
+
*/
|
|
48
62
|
isRecurrenceParent?: boolean;
|
|
49
63
|
/** Rendered as a background event; not clickable. */
|
|
50
64
|
isInternal?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Renders the card as a TASK rather than an appointment — calendar-scheduled
|
|
67
|
+
* to-dos get their own treatment: dashed outline, muted default surface
|
|
68
|
+
* (explicit `backgroundColor`/`textColor` still win), a leading clipboard
|
|
69
|
+
* glyph, and a localised "task" word in the accessible name. Emitted as
|
|
70
|
+
* `data-kind="task"` on the card for DOM hooks.
|
|
71
|
+
*/
|
|
72
|
+
isTask?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Draft placeholder — an appointment being COMPOSED, not yet saved.
|
|
75
|
+
* Renders with the card's dashed primary-tinted draft treatment
|
|
76
|
+
* (`data-kind="draft"`) and is inert: no click, no hover callback, and
|
|
77
|
+
* never draggable, so a mirrored slot cannot be mistaken for a booking
|
|
78
|
+
* or dragged around. Use it to show which slot an open editor is
|
|
79
|
+
* filling.
|
|
80
|
+
*/
|
|
81
|
+
isDraft?: boolean;
|
|
51
82
|
/**
|
|
52
83
|
* Per-event master switch for drag AND resize. Overrides the
|
|
53
84
|
* calendar-level `editable` for this event only (true enables even when
|
|
@@ -71,12 +102,19 @@ export interface CalendarEvent {
|
|
|
71
102
|
export interface CalendarResource {
|
|
72
103
|
id: string;
|
|
73
104
|
title: string;
|
|
74
|
-
/**
|
|
105
|
+
/** @deprecated Unused by the label renderer — the person treatment now
|
|
106
|
+
* derives initials from `title` via the kit Avatar. Kept for API
|
|
107
|
+
* compatibility. */
|
|
75
108
|
shortTitle?: string;
|
|
76
|
-
/** Hex
|
|
109
|
+
/** Hex colour for the dot (text variant) / ResourceChip glyph circle. */
|
|
77
110
|
color?: string;
|
|
78
|
-
/**
|
|
111
|
+
/** @deprecated Unused — the Avatar derives its own accessible ink. */
|
|
79
112
|
shortTitleTextColor?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Person photo for the Avatar treatment (`showResourceInitials`). Falls
|
|
115
|
+
* back to the deterministic initials circle when omitted.
|
|
116
|
+
*/
|
|
117
|
+
avatarSrc?: string;
|
|
80
118
|
/** Numeric ordering — passed to FullCalendar's `resourceOrder`. */
|
|
81
119
|
sequenceNumber?: number;
|
|
82
120
|
/**
|
|
@@ -109,6 +147,15 @@ export interface CalendarEventDropInfo {
|
|
|
109
147
|
event: CalendarEvent;
|
|
110
148
|
oldStart: Date;
|
|
111
149
|
newStart: Date;
|
|
150
|
+
/**
|
|
151
|
+
* Resource the event sat on before and after the drop, in resource
|
|
152
|
+
* views. Read these for cross-column moves — `event.resourceId` comes
|
|
153
|
+
* from `extendedProps`, which FullCalendar does NOT rewrite on a
|
|
154
|
+
* resource change, so it still reports the ORIGINAL column.
|
|
155
|
+
* Both are undefined in non-resource views.
|
|
156
|
+
*/
|
|
157
|
+
oldResourceId?: string;
|
|
158
|
+
newResourceId?: string;
|
|
112
159
|
/**
|
|
113
160
|
* Restores FullCalendar's optimistic move — the platform's
|
|
114
161
|
* confirm-modal pattern calls this on Cancel instead of committing.
|
|
@@ -250,6 +297,20 @@ export interface CalendarProps {
|
|
|
250
297
|
* caveat. Existing one-argument handlers keep working unchanged.
|
|
251
298
|
*/
|
|
252
299
|
onEventClick?: (event: CalendarEvent, meta?: CalendarEventClickMeta) => void;
|
|
300
|
+
/**
|
|
301
|
+
* Fires when the pointer enters an event's rendered surface — the anchor
|
|
302
|
+
* seam for hover "peek" cards. Skipped for background events
|
|
303
|
+
* (`isInternal`). The meta carries the same anchor-lifetime caveats as
|
|
304
|
+
* `onEventClick` — see `CalendarEventClickMeta`. Pointer-only by nature:
|
|
305
|
+
* pair any hover surface with a click/focus path (`onEventClick`) so the
|
|
306
|
+
* same information stays reachable by keyboard.
|
|
307
|
+
*/
|
|
308
|
+
onEventMouseEnter?: (event: CalendarEvent, meta: CalendarEventClickMeta) => void;
|
|
309
|
+
/**
|
|
310
|
+
* Fires when the pointer leaves an event's rendered surface. Skipped for
|
|
311
|
+
* background events, mirroring `onEventMouseEnter`.
|
|
312
|
+
*/
|
|
313
|
+
onEventMouseLeave?: (event: CalendarEvent) => void;
|
|
253
314
|
/** Fires when the user click-drags a range to create a new event. */
|
|
254
315
|
onDateSelect?: (range: CalendarDateSelectInfo) => void;
|
|
255
316
|
/**
|
|
@@ -258,6 +319,13 @@ export interface CalendarProps {
|
|
|
258
319
|
* range. This is the hook for range-scoped data fetching (fetch events
|
|
259
320
|
* for [start, end) and abort the previous request), view persistence,
|
|
260
321
|
* and analytics. Fires once on initial render.
|
|
322
|
+
*
|
|
323
|
+
* Caveat: FullCalendar can RE-FIRE this with an IDENTICAL range when a
|
|
324
|
+
* parent re-render reaches its option diff (render-prop identities
|
|
325
|
+
* churn). Key side effects on the range actually changing — e.g. compare
|
|
326
|
+
* `start`/`end`/`internalView` against the last invocation — and never
|
|
327
|
+
* feed each `currentDate` back into `initialDate` (a fresh Date identity
|
|
328
|
+
* per echo loops the render).
|
|
261
329
|
*/
|
|
262
330
|
onDatesSet?: (info: CalendarDatesSetInfo) => void;
|
|
263
331
|
/**
|
|
@@ -270,6 +338,14 @@ export interface CalendarProps {
|
|
|
270
338
|
* native-listener workaround the platform carries.
|
|
271
339
|
*/
|
|
272
340
|
onDateClick?: (info: CalendarDateClickInfo) => void;
|
|
341
|
+
/**
|
|
342
|
+
* Day-number nav links (FullCalendar `navLinks`). When set, every
|
|
343
|
+
* daygrid day number renders as a keyboard-reachable control (Tab,
|
|
344
|
+
* Enter / Space, click) that fires this handler instead of
|
|
345
|
+
* FullCalendar's own day zoom — the host switches its view, so
|
|
346
|
+
* a Month → Day drill-down needs no pointer.
|
|
347
|
+
*/
|
|
348
|
+
onNavLinkDayClick?: (date: Date, jsEvent: UIEvent) => void;
|
|
273
349
|
/** Allow drag-drop rescheduling. */
|
|
274
350
|
editable?: boolean;
|
|
275
351
|
/** Allow resize gestures on events. Defaults to `editable`. */
|
|
@@ -283,11 +359,14 @@ export interface CalendarProps {
|
|
|
283
359
|
/** Mask patient titles — announces state changes via aria-live. */
|
|
284
360
|
privacyMode?: boolean;
|
|
285
361
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
362
|
+
* Colour scheme for event cards. `'solid'` (default, platform parity)
|
|
363
|
+
* paints the picker hex across the whole card with auto-derived ink;
|
|
364
|
+
* `'tinted'` renders the chip-family scheme — the picker colour as a
|
|
365
|
+
* SOLID BORDER over a light tint of itself, text on foreground tokens.
|
|
366
|
+
* Forwarded to every `CalendarEventCard`; tasks keep their muted
|
|
367
|
+
* treatment regardless.
|
|
289
368
|
*/
|
|
290
|
-
|
|
369
|
+
eventColorStyle?: 'solid' | 'tinted';
|
|
291
370
|
/** Interaction mode — renders a sticky banner when not `'default'`. */
|
|
292
371
|
mode?: CalendarMode;
|
|
293
372
|
/** Override text for the mode banner. */
|
|
@@ -316,6 +395,13 @@ export interface CalendarProps {
|
|
|
316
395
|
slotMaxTime?: string;
|
|
317
396
|
/** Slot duration (e.g. '00:15'). */
|
|
318
397
|
slotDuration?: string;
|
|
398
|
+
/**
|
|
399
|
+
* Granularity drag and resize SNAP to, independent of the visual slot
|
|
400
|
+
* height (e.g. a 30-minute grid that still edits in 15-minute steps —
|
|
401
|
+
* the convention in Google Calendar and Outlook). Defaults to
|
|
402
|
+
* `slotDuration` when omitted, which is FullCalendar's own default.
|
|
403
|
+
*/
|
|
404
|
+
snapDuration?: string;
|
|
319
405
|
/** When false, hides the inline time pill on events. */
|
|
320
406
|
showTime?: boolean;
|
|
321
407
|
/** Place date headers above the resource axis. */
|
|
@@ -360,12 +446,52 @@ export interface CalendarProps {
|
|
|
360
446
|
*/
|
|
361
447
|
resourceLayout?: 'vertical' | 'horizontal';
|
|
362
448
|
/**
|
|
363
|
-
*
|
|
364
|
-
* `
|
|
365
|
-
*
|
|
366
|
-
*
|
|
449
|
+
* Marks the resource axis as PEOPLE (operators): each label renders the
|
|
450
|
+
* kit `Avatar` primitive ONLY — the photo when `resource.avatarSrc` is
|
|
451
|
+
* set, the deterministic initials circle otherwise — with the full name
|
|
452
|
+
* on hover (Tooltip) and in the a11y tree. Requires a `TooltipProvider`
|
|
453
|
+
* in the app/Storybook root (already standard). When false (default),
|
|
454
|
+
* place labels render text with a coloured dot — or the `ResourceChip`
|
|
455
|
+
* under `resourceLabelVariant="chip"`.
|
|
367
456
|
*/
|
|
368
457
|
showResourceInitials?: boolean;
|
|
458
|
+
/**
|
|
459
|
+
* Presentation of PLACE resource labels (chairs, rooms). `'text'`
|
|
460
|
+
* (default) keeps the plain coloured-dot treatment; `'chip'` renders
|
|
461
|
+
* the kit's `ResourceChip` primitive — the same chip display used
|
|
462
|
+
* everywhere, with its own vertical variant under
|
|
463
|
+
* `verticalResourceLabels`. People are never chips: a person axis
|
|
464
|
+
* (`showResourceInitials`) always renders the Avatar-style initials
|
|
465
|
+
* treatment, the kit's person primitive.
|
|
466
|
+
*/
|
|
467
|
+
resourceLabelVariant?: 'text' | 'chip';
|
|
468
|
+
/**
|
|
469
|
+
* Rotate the per-resource column labels (chairs / operators) to
|
|
470
|
+
* vertical, bottom-to-top text in resource time-grid COLUMN HEADERS.
|
|
471
|
+
* Meant for the narrow columns of week × resource views, where a
|
|
472
|
+
* horizontal label truncates after a few characters. No-op in the
|
|
473
|
+
* timeline datagrid (its resource rows stay horizontal) and in
|
|
474
|
+
* non-resource views. Long labels still ellipsise, capped by the
|
|
475
|
+
* bridge sheet so the header row cannot grow unbounded.
|
|
476
|
+
*/
|
|
477
|
+
verticalResourceLabels?: boolean;
|
|
478
|
+
/**
|
|
479
|
+
* Id of the SELECTED event — the one whose details the host has open
|
|
480
|
+
* (a docked rail panel, an inspector). The matching card gets a token
|
|
481
|
+
* focus-ring outline (`calendar-event-selected` on the FC harness) so
|
|
482
|
+
* users can see WHICH appointment they are acting on. `null`/omitted =
|
|
483
|
+
* no selection. Purely visual — selection state lives with the host.
|
|
484
|
+
*/
|
|
485
|
+
selectedEventId?: string | null;
|
|
486
|
+
/**
|
|
487
|
+
* Availability projection — dims regular event cards so BACKGROUND
|
|
488
|
+
* events (`isInternal: true`) read as the foreground layer. Made for
|
|
489
|
+
* "show free slots in the calendar": the host supplies the free
|
|
490
|
+
* ranges as background events and flips this on; booked cards fade,
|
|
491
|
+
* free ranges glow (success tint via the theme bridge). The selected
|
|
492
|
+
* event (`selectedEventId`) stays at full strength.
|
|
493
|
+
*/
|
|
494
|
+
availabilityMode?: boolean;
|
|
369
495
|
/**
|
|
370
496
|
* Width of the resource-name column ("resource area") in horizontal
|
|
371
497
|
* timeline views. Any CSS dimension — the platform passes '14%'.
|
|
@@ -5,8 +5,8 @@ import type { CalendarEventStatus } from '../calendar/calendar';
|
|
|
5
5
|
*
|
|
6
6
|
* Colour model (platform parity): the caller's picker hex
|
|
7
7
|
* (`backgroundColor` / `textColor` / `borderColor`) is the ONLY thing that
|
|
8
|
-
* paints the card. `status` never paints the surface — it selects an icon
|
|
9
|
-
*
|
|
8
|
+
* paints the card. `status` never paints the surface — it selects an icon
|
|
9
|
+
* and (for `cancelled`) a line-through.
|
|
10
10
|
*
|
|
11
11
|
* Non-interactive by design: inside FullCalendar the outer harness anchor
|
|
12
12
|
* owns click/drag/focus; standalone consumers wrap the card in their own
|
|
@@ -45,18 +45,11 @@ export interface CalendarEventCardProps extends Omit<HTMLAttributes<HTMLDivEleme
|
|
|
45
45
|
allDay?: boolean;
|
|
46
46
|
/**
|
|
47
47
|
* Lifecycle state (6-state, matches the platform DoctorAppointment
|
|
48
|
-
* lifecycle) → status icon +
|
|
49
|
-
*
|
|
48
|
+
* lifecycle) → status icon + line-through for `cancelled` +
|
|
49
|
+
* localised label in the aria-label. NEVER paints the
|
|
50
50
|
* card surface.
|
|
51
51
|
*/
|
|
52
52
|
status?: CalendarEventStatus;
|
|
53
|
-
/**
|
|
54
|
-
* Render the 3px inline-start accent bar in the status's semantic token
|
|
55
|
-
* colour. Purely decorative (aria-hidden) — the icon and aria-label carry
|
|
56
|
-
* status regardless. The platform (colour = picker, status = icons only)
|
|
57
|
-
* passes false via CalendarProps.eventStatusAccent. @default true
|
|
58
|
-
*/
|
|
59
|
-
statusAccent?: boolean;
|
|
60
53
|
/**
|
|
61
54
|
* Runtime hex (#rgb or #rrggbb) from the consumer's colour picker — THE
|
|
62
55
|
* painted surface. Injected as `--calendar-event-bg` via the sanctioned
|
|
@@ -87,12 +80,56 @@ export interface CalendarEventCardProps extends Omit<HTMLAttributes<HTMLDivEleme
|
|
|
87
80
|
hasBillableAmount?: boolean;
|
|
88
81
|
/** Video icon. */
|
|
89
82
|
isTelehealth?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Repeat icon — this event belongs to a REPEATING SERIES. Set it on
|
|
85
|
+
* every occurrence, not only the first: the flag answers "will moving
|
|
86
|
+
* or deleting this touch other appointments?", which is true of a
|
|
87
|
+
* modified occurrence too. Series ROLE (which row owns the rule) is a
|
|
88
|
+
* separate concern — see `CalendarEvent.isRecurrenceParent`.
|
|
89
|
+
*/
|
|
90
|
+
isRecurring?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Task treatment — a calendar-scheduled to-do renders distinctly from an
|
|
93
|
+
* appointment: dashed outline (derived from the resolved ink when no
|
|
94
|
+
* `borderColor` is supplied), muted default surface (an explicit
|
|
95
|
+
* `backgroundColor`/`textColor` still wins), a leading clipboard glyph,
|
|
96
|
+
* and a localised "task" word appended to the accessible name. Emitted as
|
|
97
|
+
* `data-kind="task"` for DOM hooks.
|
|
98
|
+
*/
|
|
99
|
+
isTask?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Draft treatment — a placeholder for an appointment being composed:
|
|
102
|
+
* the slot the user just picked, mirrored on the grid while the editor
|
|
103
|
+
* is open. Dashed outline over a light primary tint, with a localised
|
|
104
|
+
* "draft" word appended to the accessible name. Emitted as
|
|
105
|
+
* `data-kind="draft"`. Takes precedence over `isTask`, and like a task
|
|
106
|
+
* it forces the solid paint path so exactly one class-level assignment
|
|
107
|
+
* of each paint custom property exists per render.
|
|
108
|
+
*/
|
|
109
|
+
isDraft?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Colour scheme for the picker colour. `'solid'` (default) is the
|
|
112
|
+
* platform model — the hex paints the whole surface, ink auto-derived.
|
|
113
|
+
* `'tinted'` is the chip-family scheme: the hex becomes a SOLID BORDER
|
|
114
|
+
* over a light tint of itself (theme-aware via color-mix with `--card`),
|
|
115
|
+
* with text on the theme's foreground tokens — `textColor` and
|
|
116
|
+
* `borderColor` are ignored under it. Tasks keep their muted dashed
|
|
117
|
+
* treatment regardless.
|
|
118
|
+
*/
|
|
119
|
+
colorStyle?: 'solid' | 'tinted';
|
|
90
120
|
/**
|
|
91
121
|
* Resource title (chair/operator) woven into the composed aria-label
|
|
92
122
|
* only — never rendered visually. The Calendar adapter resolves
|
|
93
123
|
* resourceId → title before passing it.
|
|
94
124
|
*/
|
|
95
125
|
resourceLabel?: string;
|
|
126
|
+
/**
|
|
127
|
+
* The title is a privacy MASK (the Calendar's privacy mode swapped the
|
|
128
|
+
* patient name for `privacyModeTitle`). Renders a crossed-out-eye glyph
|
|
129
|
+
* beside the mask so the redaction is legible as deliberate, with its
|
|
130
|
+
* own breathing room after the time.
|
|
131
|
+
*/
|
|
132
|
+
privacyMasked?: boolean;
|
|
96
133
|
/**
|
|
97
134
|
* Stable event id → emitted as `data-event-id` (Calendar.focusEvent
|
|
98
135
|
* targets it) and used as the contrast-warning dedup context.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ColorPicker } from './color-picker';
|
|
2
2
|
export type { ColorPickerProps } from './color-picker';
|
|
3
3
|
export type { HSLA } from './color-utils';
|
|
4
|
-
export { APPOINTMENT_PALETTE, BRAND_PALETTE } from './palettes';
|
|
4
|
+
export { APPOINTMENT_PALETTE, BRAND_PALETTE, GOOGLE_CALENDAR_PALETTE, } from './palettes';
|
|
5
5
|
export type { PaletteSwatch } from './palettes';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as T, B as P, C as L, G as a } from "../../_chunks/color-picker-oZ6zYks8.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
3
|
+
T as APPOINTMENT_PALETTE,
|
|
4
4
|
P as BRAND_PALETTE,
|
|
5
|
-
|
|
5
|
+
L as ColorPicker,
|
|
6
|
+
a as GOOGLE_CALENDAR_PALETTE
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -13,4 +13,14 @@ export interface PaletteSwatch {
|
|
|
13
13
|
export declare const APPOINTMENT_PALETTE: PaletteSwatch[];
|
|
14
14
|
/** Alfadocs brand palette — the six brand families × 3 shades (300/500/700). */
|
|
15
15
|
export declare const BRAND_PALETTE: PaletteSwatch[];
|
|
16
|
+
/**
|
|
17
|
+
* Google Calendar event colours — the platform's DEFAULT appointment
|
|
18
|
+
* palette (practice DoctorColor sets mirror Google Calendar so synced
|
|
19
|
+
* events keep their colours; the event `colorId` set is capped at 11 —
|
|
20
|
+
* the 24 "label" colours exist only in Google's Labels API).
|
|
21
|
+
* `textColor` is deliberately omitted: solid-scheme consumers get the
|
|
22
|
+
* event card's auto-derived ink (provably WCAG AA for any opaque hex),
|
|
23
|
+
* and the tinted scheme paints text on theme tokens regardless.
|
|
24
|
+
*/
|
|
25
|
+
export declare const GOOGLE_CALENDAR_PALETTE: PaletteSwatch[];
|
|
16
26
|
//# sourceMappingURL=palettes.d.ts.map
|
|
@@ -21,6 +21,15 @@ export interface ControlRoomRailProps extends Omit<ToolRailProps, 'tools' | 'onR
|
|
|
21
21
|
* persist — the host owns the value and is notified via `onFavoriteIdsChange`.
|
|
22
22
|
*/
|
|
23
23
|
favoriteIds?: string[];
|
|
24
|
+
/**
|
|
25
|
+
* HARD-PINNED favourite ids — always rendered at the very START of the
|
|
26
|
+
* pinned group, ahead of (and deduped from) user favourites, in both
|
|
27
|
+
* controlled and uncontrolled modes. Immune to unpin: removing one via
|
|
28
|
+
* the panel-header control or a drag is a no-op (it re-pins on the next
|
|
29
|
+
* render). For tools the product wants permanently one glance away —
|
|
30
|
+
* e.g. notifications at the top of the strip.
|
|
31
|
+
*/
|
|
32
|
+
pinnedFavoriteIds?: string[];
|
|
24
33
|
/**
|
|
25
34
|
* Uncontrolled initial favourites. Defaults to the ids of the tools the host
|
|
26
35
|
* marked `scope: 'global'` (Alia, Inbox) — pinning them on top by default.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as r, a as l, c as a, u as t, b as e, d as n } from "../../_chunks/control-room-rail-
|
|
1
|
+
import { C as r, a as l, c as a, u as t, b as e, d as n } from "../../_chunks/control-room-rail-Cj2iX9h_.js";
|
|
2
2
|
export {
|
|
3
3
|
r as ControlRoomProvider,
|
|
4
4
|
l as ControlRoomRail,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A as r, D as l, E as t, T as s, a as d, b as n, c as o, d as i, e as R, f as C, g as T, i as F, h as g } from "../../_chunks/actions-cell-renderer-ALEAGO3j.js";
|
|
2
2
|
import { B as b, C as u, E as x, a as c, R as p, T as E, b as m, r as f, u as h } from "../../_chunks/editable-currency-cell-renderer-DYdzKpjL.js";
|
|
3
|
-
import { C as A, D as w, a as y, b as I, I as L, L as N, N as P, c as W, S as B, d as U, e as _, T as k, f as v, g as O, U as X } from "../../_chunks/link-cell-renderer-
|
|
3
|
+
import { C as A, D as w, a as y, b as I, I as L, L as N, N as P, c as W, S as B, d as U, e as _, T as k, f as v, g as O, U as X } from "../../_chunks/link-cell-renderer-BZQtsuFz.js";
|
|
4
4
|
export {
|
|
5
5
|
r as ActionsCellRenderer,
|
|
6
6
|
b as BalanceCellRenderer,
|
|
@@ -38,6 +38,17 @@ export interface DatePickerProps extends Pick<VariantProps<typeof triggerVariant
|
|
|
38
38
|
presets?: DatePickerPreset[];
|
|
39
39
|
/** Component size. */
|
|
40
40
|
size?: 'sm' | 'md' | 'lg';
|
|
41
|
+
/**
|
|
42
|
+
* Trigger chrome. `'input'` (default) is the soft input look — fill + the
|
|
43
|
+
* `--shadow-input` halo — that matches other form fields. `'button'` renders
|
|
44
|
+
* the trigger as an outline Button (flat, `--radius-md`, no halo, `md` = 40px)
|
|
45
|
+
* so the picker sits flush among Buttons in a toolbar. Use `'button'` only in
|
|
46
|
+
* toolbars, not in forms: the input halo is a11y-load-bearing (it lifts the
|
|
47
|
+
* field border to the WCAG 1.4.11 3:1 composite), whereas a button-chrome
|
|
48
|
+
* trigger relies on its value/label like a Button does. Mirrors
|
|
49
|
+
* `DateRangePicker`'s prop of the same name.
|
|
50
|
+
*/
|
|
51
|
+
chrome?: 'input' | 'button';
|
|
41
52
|
/** Disabled state. */
|
|
42
53
|
disabled?: boolean;
|
|
43
54
|
/** Placeholder text. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as e } from "../../_chunks/due-date-calculator-
|
|
2
|
-
import { C as r, a as o, D, G as _, M as T, T as M, c as E, b as l, g as C, p as A, r as N, d as i, t as n } from "../../_chunks/antenatal-schedule-timeline-
|
|
1
|
+
import { D as e } from "../../_chunks/due-date-calculator-BF_Ikofx.js";
|
|
2
|
+
import { C as r, a as o, D, G as _, M as T, T as M, c as E, b as l, g as C, p as A, r as N, d as i, t as n } from "../../_chunks/antenatal-schedule-timeline-B1k8QkA6.js";
|
|
3
3
|
export {
|
|
4
4
|
r as CRL_DATING_MAX_MM,
|
|
5
5
|
o as CRL_DATING_MIN_MM,
|
|
@@ -168,6 +168,7 @@ export * from './optical-prescription';
|
|
|
168
168
|
export * from './booking';
|
|
169
169
|
export * from './calendar';
|
|
170
170
|
export * from './calendar-event-card';
|
|
171
|
+
export * from './resource-chip';
|
|
171
172
|
export * from './care-plan-card';
|
|
172
173
|
export * from './care-plan-entry-card';
|
|
173
174
|
export * from './care-plan-header';
|
|
@@ -87,6 +87,14 @@ export interface PatientDetailsProps extends Omit<HTMLAttributes<HTMLElement>, '
|
|
|
87
87
|
locale?: string;
|
|
88
88
|
/** Override the cog trigger's accessible name. */
|
|
89
89
|
cogLabel?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Visible panel-chrome heading (the sticky PanelHeader title). Defaults
|
|
92
|
+
* to the kit's localised "Patient details". Pass an app-translated
|
|
93
|
+
* string when the panel fronts a different record built from the same
|
|
94
|
+
* chrome — "Appointment details", "Task details" — so the header names
|
|
95
|
+
* what is actually shown. Also the `aria-label` fallback.
|
|
96
|
+
*/
|
|
97
|
+
panelTitle?: string;
|
|
90
98
|
/** Override the panel region's accessible name (defaults to the heading). */
|
|
91
99
|
'aria-label'?: string;
|
|
92
100
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as s, C as l, N as t, P as n, a as C, b as i, g as o, u } from "../../_chunks/patient-table-
|
|
1
|
+
import { B as s, C as l, N as t, P as n, a as C, b as i, g as o, u } from "../../_chunks/patient-table-BqYomX50.js";
|
|
2
2
|
export {
|
|
3
3
|
s as BalanceBadgeCell,
|
|
4
4
|
l as CarePlanStatusCell,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const resourceChipVariants: (props?: ({
|
|
4
|
+
orientation?: "vertical" | "horizontal" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface ResourceChipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof resourceChipVariants> {
|
|
7
|
+
/** Visible resource name. */
|
|
8
|
+
label: string;
|
|
9
|
+
/**
|
|
10
|
+
* Resource colour (any CSS colour string) — drives the whole disc via
|
|
11
|
+
* one CSS custom property: a light wash for the fill, and the colour
|
|
12
|
+
* mixed toward `--foreground` for the ring and glyph. Omitted → the
|
|
13
|
+
* muted token, so the disc degrades to a neutral.
|
|
14
|
+
*/
|
|
15
|
+
color?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Glyph inside the colour disc. Defaults to the kit's treatment-chair
|
|
18
|
+
* glyph (`Armchair`); pass another Lucide element for rooms/devices.
|
|
19
|
+
* Keep it a GLYPH — a short code here would read as a person's
|
|
20
|
+
* initials, which is the Avatar's job.
|
|
21
|
+
*/
|
|
22
|
+
icon?: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
export declare const ResourceChip: import("react").ForwardRefExoticComponent<ResourceChipProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=resource-chip.d.ts.map
|