@alfadocs/ui-kit 0.25.0 → 0.25.2

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 (178) hide show
  1. package/dist/_chunks/{agenda-card-BmpaUG1h.js → agenda-card-CznB7K8e.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-DiInnVqk.js → agenda-tray-C_bha7oK.js} +4 -4
  3. package/dist/_chunks/{ai-prompt-input-B5MdixzR.js → ai-prompt-input-Bka3jX3i.js} +2 -2
  4. package/dist/_chunks/{alia-sidebar-CUi2UCbY.js → alia-sidebar-CnvXq95r.js} +92 -109
  5. package/dist/_chunks/{audio-recorder-D4xM3H5i.js → audio-recorder-OB6IV9B1.js} +2 -2
  6. package/dist/_chunks/{autocomplete-C7xq06bP.js → autocomplete-CUh0f7Dj.js} +2 -2
  7. package/dist/_chunks/{avatar-BpFohgWG.js → avatar-D_H4emLo.js} +7 -7
  8. package/dist/_chunks/{benefit-card-DXmrAyfn.js → benefit-card-CjYM8vNr.js} +29 -29
  9. package/dist/_chunks/booking-CXngC-1u.js +1743 -0
  10. package/dist/_chunks/{calendar-zy0tUUVG.js → calendar-9eOXumpH.js} +113 -142
  11. package/dist/_chunks/{card-C353dU-H.js → card-DKTMLVrw.js} +11 -11
  12. package/dist/_chunks/{carousel.agent-DnPiqijR.js → carousel.agent-C9swH-Uf.js} +2 -2
  13. package/dist/_chunks/{chat-input-B3XmFGDw.js → chat-input-BfDcz1Yi.js} +2 -2
  14. package/dist/_chunks/{chat-message-W3k8rLOA.js → chat-message-fg221-yx.js} +2 -2
  15. package/dist/_chunks/{command-palette-DkL-aW4O.js → command-palette-11BieSNq.js} +2 -2
  16. package/dist/_chunks/{contact-card-CjG7c-1q.js → contact-card-CeEfEAxh.js} +2 -2
  17. package/dist/_chunks/{date-picker-BIoSLRly.js → date-picker-D0Ry1dMz.js} +26 -27
  18. package/dist/_chunks/{date-range-picker-9gANFNG9.js → date-range-picker-DYgHzMOo.js} +19 -20
  19. package/dist/_chunks/{date-time-picker-DG7BiGdb.js → date-time-picker-CGmGtcyc.js} +10 -11
  20. package/dist/_chunks/{description-list-Bsga4IW8.js → description-list-yl3y3QKg.js} +34 -24
  21. package/dist/_chunks/{dialog-DUomPCRS.js → dialog-BBXqpZIt.js} +2 -2
  22. package/dist/_chunks/{editable-currency-cell-renderer-DJB5MxAI.js → editable-currency-cell-renderer-DSReCae7.js} +7 -7
  23. package/dist/_chunks/{empty-state-3CLJIXSj.js → empty-state-BLy7tigq.js} +13 -33
  24. package/dist/_chunks/eye-LHlSU38h.js +21 -0
  25. package/dist/_chunks/{freemium-paywall-CM6V1zNf.js → freemium-paywall-B9c8Ylww.js} +11 -11
  26. package/dist/_chunks/{header-DqmKROIY.js → header-B8V_sNPy.js} +2 -2
  27. package/dist/_chunks/icon-button-BRHSSFmZ.js +70 -0
  28. package/dist/_chunks/{isSameDay-ecuM8PBB.js → isSameDay-DHG8Xade.js} +4 -4
  29. package/dist/_chunks/{key-value-pair-DBuOCtIc.js → key-value-pair-CqeKiP__.js} +2 -2
  30. package/dist/_chunks/{locale-picker-BxEUUPW7.js → locale-picker-BHxbTNmR.js} +297 -208
  31. package/dist/_chunks/{map-view-CcwycFQX.js → map-view-DyB8tr6c.js} +9 -9
  32. package/dist/_chunks/{matrix-rain-CRPMXcVx.js → matrix-rain-sDOUUwZp.js} +35 -35
  33. package/dist/_chunks/{message-card-i61k1TGc.js → message-card-DjRtA8GG.js} +3 -3
  34. package/dist/_chunks/{message-tray-DrV7G-wR.js → message-tray-DfsAMncP.js} +3 -3
  35. package/dist/_chunks/monitor-D-SFdbrU.js +16 -0
  36. package/dist/_chunks/{notification-card-ejOw5g6g.js → notification-card-B_847w5g.js} +3 -3
  37. package/dist/_chunks/{notification-tray-D_69dXFY.js → notification-tray-6f7smmT1.js} +22 -19
  38. package/dist/_chunks/patient-shell-Bq8CjRYF.js +173 -0
  39. package/dist/_chunks/{payment-form-F7uh0Rqr.js → payment-form-Ds3rxvad.js} +2 -2
  40. package/dist/_chunks/{pdf-viewer-CuYaVR1I.js → pdf-viewer-CIuaocnq.js} +2 -2
  41. package/dist/_chunks/{popover--derJ_wq.js → popover-D0slaBB9.js} +17 -13
  42. package/dist/_chunks/{privacy-lock-BKsI6ReN.js → privacy-lock-BI4vi9Ud.js} +2 -2
  43. package/dist/_chunks/{public-header.agent-BQ3r6Hgq.js → public-header.agent-5U3S9QiC.js} +49 -41
  44. package/dist/_chunks/react-day-picker-D3yzgvDB.js +3127 -0
  45. package/dist/_chunks/{recaptcha-widget-Kp1XntuE.js → recaptcha-widget-BtBNb6tB.js} +2 -2
  46. package/dist/_chunks/{search-bar-DORSAzNt.js → search-bar-BRMW1-WG.js} +2 -2
  47. package/dist/_chunks/{search-input-BtEJAJHa.js → search-input-CIA6pPfn.js} +2 -2
  48. package/dist/_chunks/{sheet-BT0izeoI.js → sheet-D8M8hf8B.js} +2 -2
  49. package/dist/_chunks/{sign-in-with-alfadocs-button-4zZC-I6y.js → sign-in-with-alfadocs-button-BI0fVonM.js} +2 -2
  50. package/dist/_chunks/{slot-grid-CgpYgBkW.js → slot-grid-DoodeQGZ.js} +4 -4
  51. package/dist/_chunks/sparkles-CuYXqQLg.js +23 -0
  52. package/dist/_chunks/{spinner-DirtWZNG.js → spinner-CCByyvcb.js} +2 -2
  53. package/dist/_chunks/stepper-accordion-BfS6lUB9.js +257 -0
  54. package/dist/_chunks/stepper-accordion.agent-C4quJ-MD.js +71 -0
  55. package/dist/_chunks/stethoscope-B8kpbtjh.js +35 -0
  56. package/dist/_chunks/{sun-Eweh5fvi.js → sun-BuXE0xUS.js} +3 -15
  57. package/dist/_chunks/{task-tray-B3A2fRGR.js → task-tray-Bcmrrs8m.js} +3 -3
  58. package/dist/_chunks/{theme-toggle-FrotC2VI.js → theme-toggle-nPzb378f.js} +37 -36
  59. package/dist/_chunks/{timeline-jmd7lfDf.js → timeline-CR7HjZCK.js} +3 -3
  60. package/dist/_chunks/{toast.agent-32WNQ-_x.js → toast.agent-CTF6nIj5.js} +2 -2
  61. package/dist/_chunks/{transcript-panel-DUrjx5sa.js → transcript-panel-QUQ9XJmf.js} +2 -2
  62. package/dist/_chunks/{use-password-requirements-C9vKBSVn.js → use-password-requirements-E0sSfx5X.js} +38 -53
  63. package/dist/_chunks/use-theme-C2dHKUAN.js +145 -0
  64. package/dist/_chunks/{workflow-map-BR6txfFX.js → workflow-map-BKsKdYvZ.js} +5 -5
  65. package/dist/agent-catalog.json +56 -51
  66. package/dist/components/agenda-card/index.js +1 -1
  67. package/dist/components/agenda-tray/index.js +1 -1
  68. package/dist/components/ai-prompt-input/index.js +1 -1
  69. package/dist/components/audio-recorder/index.js +1 -1
  70. package/dist/components/autocomplete/index.js +1 -1
  71. package/dist/components/avatar/index.js +1 -1
  72. package/dist/components/benefit-card/index.js +1 -1
  73. package/dist/components/booking/booking.agent.d.ts +4 -0
  74. package/dist/components/booking/booking.d.ts +91 -0
  75. package/dist/components/booking/index.d.ts +4 -0
  76. package/dist/components/booking/index.js +6 -0
  77. package/dist/components/button/index.js +1 -1
  78. package/dist/components/calendar/index.js +1 -1
  79. package/dist/components/card/index.js +1 -1
  80. package/dist/components/carousel/index.js +1 -1
  81. package/dist/components/chat-input/index.js +1 -1
  82. package/dist/components/chat-message/index.js +1 -1
  83. package/dist/components/command-palette/index.js +1 -1
  84. package/dist/components/contact-card/index.js +1 -1
  85. package/dist/components/data-table/index.js +1 -1
  86. package/dist/components/date-picker/index.js +1 -1
  87. package/dist/components/date-range-picker/index.js +1 -1
  88. package/dist/components/date-time-picker/index.js +1 -1
  89. package/dist/components/description-list/index.js +1 -1
  90. package/dist/components/dialog/index.js +1 -1
  91. package/dist/components/empty-state/index.js +1 -1
  92. package/dist/components/freemium-paywall/index.js +1 -1
  93. package/dist/components/header/index.js +1 -1
  94. package/dist/components/header-settings/index.js +60 -48
  95. package/dist/components/icon-button/index.js +1 -1
  96. package/dist/components/index.d.ts +1 -1
  97. package/dist/components/key-value-pair/index.js +1 -1
  98. package/dist/components/locale-picker/index.js +1 -1
  99. package/dist/components/map-view/index.js +1 -1
  100. package/dist/components/matrix-rain/index.js +1 -1
  101. package/dist/components/message-card/index.js +1 -1
  102. package/dist/components/message-tray/index.js +1 -1
  103. package/dist/components/notification-card/index.js +1 -1
  104. package/dist/components/notification-tray/index.js +1 -1
  105. package/dist/components/password-input/index.js +1 -1
  106. package/dist/components/payment-form/index.js +1 -1
  107. package/dist/components/pdf-viewer/index.js +1 -1
  108. package/dist/components/popover/index.js +1 -1
  109. package/dist/components/privacy-lock/index.js +1 -1
  110. package/dist/components/public-header/index.js +1 -1
  111. package/dist/components/recaptcha-widget/index.js +1 -1
  112. package/dist/components/search-bar/index.js +1 -1
  113. package/dist/components/search-input/index.js +1 -1
  114. package/dist/components/sheet/index.js +1 -1
  115. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  116. package/dist/components/slot-grid/index.js +1 -1
  117. package/dist/components/spinner/index.js +1 -1
  118. package/dist/components/stepper-accordion/index.js +4 -3
  119. package/dist/components/task-tray/index.js +1 -1
  120. package/dist/components/theme-toggle/index.js +1 -1
  121. package/dist/components/timeline/index.js +1 -1
  122. package/dist/components/toast/index.js +1 -1
  123. package/dist/components/transcript-panel/index.js +1 -1
  124. package/dist/components/workflow/index.js +1 -1
  125. package/dist/hooks/index.js +1 -1
  126. package/dist/i18n/config.js +1090 -46
  127. package/dist/i18n/locales/ar.d.ts +58 -0
  128. package/dist/i18n/locales/de.d.ts +58 -0
  129. package/dist/i18n/locales/el.d.ts +58 -0
  130. package/dist/i18n/locales/es.d.ts +58 -0
  131. package/dist/i18n/locales/fr.d.ts +58 -0
  132. package/dist/i18n/locales/hi.d.ts +58 -0
  133. package/dist/i18n/locales/ja.d.ts +58 -0
  134. package/dist/i18n/locales/nl.d.ts +58 -0
  135. package/dist/i18n/locales/pl.d.ts +58 -0
  136. package/dist/i18n/locales/pt.d.ts +58 -0
  137. package/dist/i18n/locales/ro.d.ts +58 -0
  138. package/dist/i18n/locales/ru.d.ts +58 -0
  139. package/dist/i18n/locales/sq.d.ts +58 -0
  140. package/dist/i18n/locales/sv.d.ts +58 -0
  141. package/dist/i18n/locales/tr.d.ts +58 -0
  142. package/dist/i18n/locales/zh.d.ts +58 -0
  143. package/dist/i18n/resources.d.ts +116 -0
  144. package/dist/index.js +270 -269
  145. package/dist/locales/ar.json +59 -1
  146. package/dist/locales/de.json +59 -1
  147. package/dist/locales/el.json +59 -1
  148. package/dist/locales/en.json +59 -1
  149. package/dist/locales/es.json +59 -1
  150. package/dist/locales/fr.json +59 -1
  151. package/dist/locales/hi.json +59 -1
  152. package/dist/locales/it.json +59 -1
  153. package/dist/locales/ja.json +59 -1
  154. package/dist/locales/nl.json +59 -1
  155. package/dist/locales/pl.json +59 -1
  156. package/dist/locales/pt.json +59 -1
  157. package/dist/locales/ro.json +59 -1
  158. package/dist/locales/ru.json +59 -1
  159. package/dist/locales/sq.json +59 -1
  160. package/dist/locales/sv.json +59 -1
  161. package/dist/locales/tr.json +59 -1
  162. package/dist/locales/zh.json +59 -1
  163. package/dist/patterns/alia-assistant/index.js +1 -1
  164. package/dist/patterns/patient-shell/index.js +1 -1
  165. package/dist/tokens.css +1 -1
  166. package/package.json +5 -1
  167. package/dist/_chunks/icon-button-C4CGcYuz.js +0 -54
  168. package/dist/_chunks/isSameMonth-5wNF2f4I.js +0 -1307
  169. package/dist/_chunks/patient-shell-B164drIa.js +0 -173
  170. package/dist/_chunks/react-day-picker-C5F3-TTX.js +0 -1827
  171. package/dist/_chunks/stepper-C-sIpRRU.js +0 -7
  172. package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js +0 -322
  173. package/dist/_chunks/stepper-calendar-BLOJUE0-.js +0 -648
  174. package/dist/_chunks/use-theme-B1cwAXJR.js +0 -145
  175. package/dist/components/stepper-calendar/index.d.ts +0 -4
  176. package/dist/components/stepper-calendar/index.js +0 -6
  177. package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts +0 -4
  178. package/dist/components/stepper-calendar/stepper-calendar.d.ts +0 -62
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.25.0",
3
+ "packageVersion": "0.25.2",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -401,6 +401,61 @@
401
401
  }
402
402
  }
403
403
  },
404
+ {
405
+ "kind": "component",
406
+ "id": "booking",
407
+ "capabilities": [
408
+ "navigate",
409
+ "view_change"
410
+ ],
411
+ "state": [
412
+ {
413
+ "name": "currentStep",
414
+ "type": "number",
415
+ "description": "Zero-indexed active step within the active variant. Variants with no step machine report 0."
416
+ },
417
+ {
418
+ "name": "totalSteps",
419
+ "type": "number",
420
+ "description": "Total number of steps in the active variant. Single-screen variants report 1."
421
+ },
422
+ {
423
+ "name": "variant",
424
+ "type": "string",
425
+ "description": "Active variant — one of `inline-list`, `accordion`, `calendar`, `flexible`, `progress`."
426
+ }
427
+ ],
428
+ "actions": [
429
+ {
430
+ "name": "goto_step",
431
+ "safety": "read",
432
+ "argsType": "{ step: number }",
433
+ "description": "Jump to the given step within the active variant. Steps beyond first-incomplete are gated internally."
434
+ },
435
+ {
436
+ "name": "next",
437
+ "safety": "read",
438
+ "description": "Advance to the next step when the current step has a valid value."
439
+ },
440
+ {
441
+ "name": "previous",
442
+ "safety": "read",
443
+ "description": "Return to the previous step."
444
+ }
445
+ ],
446
+ "domHooks": {
447
+ "root": {
448
+ "attr": "data-component",
449
+ "value": "booking",
450
+ "description": "Marks the Booking root region."
451
+ },
452
+ "instanceId": {
453
+ "attr": "data-component-id",
454
+ "sourceProp": "id",
455
+ "description": "Sourced from the id prop."
456
+ }
457
+ }
458
+ },
404
459
  {
405
460
  "kind": "component",
406
461
  "id": "breadcrumb",
@@ -3396,56 +3451,6 @@
3396
3451
  }
3397
3452
  }
3398
3453
  },
3399
- {
3400
- "kind": "component",
3401
- "id": "stepper-calendar",
3402
- "capabilities": [
3403
- "navigate",
3404
- "view_change"
3405
- ],
3406
- "state": [
3407
- {
3408
- "name": "currentStep",
3409
- "type": "number",
3410
- "description": "Zero-indexed active step (0 = service, 1 = date, 2 = time, 3 = details)."
3411
- },
3412
- {
3413
- "name": "totalSteps",
3414
- "type": "number",
3415
- "description": "Total number of steps in the booking flow (always 4)."
3416
- }
3417
- ],
3418
- "actions": [
3419
- {
3420
- "name": "goto_step",
3421
- "safety": "read",
3422
- "argsType": "{ step: number }",
3423
- "description": "Jump to the given step. Steps beyond the first-incomplete are gated internally."
3424
- },
3425
- {
3426
- "name": "next",
3427
- "safety": "read",
3428
- "description": "Advance to the next step when the current step has a valid value."
3429
- },
3430
- {
3431
- "name": "previous",
3432
- "safety": "read",
3433
- "description": "Return to the previous step."
3434
- }
3435
- ],
3436
- "domHooks": {
3437
- "root": {
3438
- "attr": "data-component",
3439
- "value": "stepper-calendar",
3440
- "description": "Marks the StepperCalendar root region."
3441
- },
3442
- "instanceId": {
3443
- "attr": "data-component-id",
3444
- "sourceProp": "id",
3445
- "description": "Sourced from the id prop."
3446
- }
3447
- }
3448
- },
3449
3454
  {
3450
3455
  "kind": "component",
3451
3456
  "id": "stepper-progress",
@@ -1,4 +1,4 @@
1
- import { A as r, i as d } from "../../_chunks/agenda-card-BmpaUG1h.js";
1
+ import { A as r, i as d } from "../../_chunks/agenda-card-CznB7K8e.js";
2
2
  import { a as n } from "../../_chunks/agenda-card.agent-B_R47-c9.js";
3
3
  export {
4
4
  r as AgendaCard,
@@ -1,4 +1,4 @@
1
- import { A as r, a as g } from "../../_chunks/agenda-tray-DiInnVqk.js";
1
+ import { A as r, a as g } from "../../_chunks/agenda-tray-C_bha7oK.js";
2
2
  export {
3
3
  r as AgendaTray,
4
4
  g as agendaTrayAgent
@@ -1,4 +1,4 @@
1
- import { A as a, a as o } from "../../_chunks/ai-prompt-input-B5MdixzR.js";
1
+ import { A as a, a as o } from "../../_chunks/ai-prompt-input-Bka3jX3i.js";
2
2
  export {
3
3
  a as AIPromptInput,
4
4
  o as aiPromptInputAgent
@@ -1,4 +1,4 @@
1
- import { A as r, a } from "../../_chunks/audio-recorder-D4xM3H5i.js";
1
+ import { A as r, a } from "../../_chunks/audio-recorder-OB6IV9B1.js";
2
2
  export {
3
3
  r as AudioRecorder,
4
4
  a as audioRecorderAgent
@@ -1,4 +1,4 @@
1
- import { A as e, a as o, b as m } from "../../_chunks/autocomplete-C7xq06bP.js";
1
+ import { A as e, a as o, b as m } from "../../_chunks/autocomplete-CUh0f7Dj.js";
2
2
  export {
3
3
  e as Autocomplete,
4
4
  o as autocompleteAgent,
@@ -1,4 +1,4 @@
1
- import { A as o, g as r, n as t } from "../../_chunks/avatar-BpFohgWG.js";
1
+ import { A as o, g as r, n as t } from "../../_chunks/avatar-D_H4emLo.js";
2
2
  export {
3
3
  o as Avatar,
4
4
  r as getInitials,
@@ -1,4 +1,4 @@
1
- import { B as a } from "../../_chunks/benefit-card-DXmrAyfn.js";
1
+ import { B as a } from "../../_chunks/benefit-card-CjYM8vNr.js";
2
2
  export {
3
3
  a as BenefitCard
4
4
  };
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { BookingHandle } from './booking';
3
+ export declare const bookingAgent: AgentAdapter<BookingHandle>;
4
+ //# sourceMappingURL=booking.agent.d.ts.map
@@ -0,0 +1,91 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ export type BookingVariant = 'inline-list' | 'accordion' | 'calendar' | 'flexible' | 'progress';
4
+ /** Service offering rendered in the service selector of every variant. */
5
+ export interface BookingService {
6
+ id: string;
7
+ /** Already-translated label (consumer owns data i18n). */
8
+ label: string;
9
+ /** Duration in minutes — shown alongside the label. */
10
+ durationMin: number;
11
+ /** Optional secondary line, e.g. "Prima visita o consulto". */
12
+ description?: string;
13
+ /** Optional price token — already formatted by the consumer. */
14
+ price?: string;
15
+ /** Optional payment hint — "Paga in studio" / "Paga online". */
16
+ paymentHint?: string;
17
+ /** Optional specialty id used to filter when a specialty chip is active. */
18
+ specialtyId?: string;
19
+ /** Optional icon — defaults to a stethoscope glyph. */
20
+ icon?: ReactNode;
21
+ }
22
+ /** Specialty chip rendered above the service list in `inline-list`. */
23
+ export interface BookingSpecialty {
24
+ id: string;
25
+ label: string;
26
+ /**
27
+ * Optional icon override. When omitted, a keyword-based heuristic picks
28
+ * an icon from the specialty's label (cardio → HeartPulse, derma →
29
+ * Sparkles, etc.) and renders it in the accent colour.
30
+ */
31
+ icon?: ReactNode;
32
+ }
33
+ /** One slot in an `availableSlots[date]` array. */
34
+ export interface BookingSlot {
35
+ /** Stable key — consumer-defined. Opaque to the component. */
36
+ key: string;
37
+ /** HH:mm 24h. */
38
+ time: string;
39
+ available: boolean;
40
+ /** Optional tooltip explaining a disabled slot. */
41
+ unavailableReason?: string;
42
+ }
43
+ /** Booking selection — controlled by the consumer. */
44
+ export interface BookingValue {
45
+ serviceId?: string;
46
+ specialtyId?: string;
47
+ /** ISO yyyy-mm-dd. */
48
+ date?: string;
49
+ /** HH:mm 24h. */
50
+ time?: string;
51
+ /** Slot lookup key — opaque to the component; passed through to onSubmit. */
52
+ slotKey?: string;
53
+ }
54
+ declare const rootVariants: (props?: ({
55
+ variant?: "progress" | "calendar" | "accordion" | "inline-list" | "flexible" | null | undefined;
56
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
57
+ export interface BookingProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'onChange' | 'onSubmit'>, VariantProps<typeof rootVariants> {
58
+ services: BookingService[];
59
+ /** Optional — hides the specialty chip row when absent. */
60
+ specialties?: BookingSpecialty[];
61
+ availableDates: string[];
62
+ availableSlots: Record<string, BookingSlot[]>;
63
+ value: BookingValue;
64
+ onChange: (next: BookingValue) => void;
65
+ onSubmit?: (value: BookingValue) => void;
66
+ /** Optional pre-filter slot rendered above the variant body. */
67
+ filtersSlot?: ReactNode;
68
+ /** Optional details/contact form rendered after the slot pick. */
69
+ detailsSlot?: ReactNode;
70
+ /** Optional sticky CTA strip below the body. */
71
+ ctaSlot?: ReactNode;
72
+ /** Header content. `null` omits the header. Defaults to variant title + subtitle. */
73
+ heading?: ReactNode;
74
+ loadingDates?: boolean;
75
+ loadingSlots?: boolean;
76
+ /** Override aria-label on the root region. */
77
+ 'aria-label'?: string;
78
+ /** Agent-readiness instance id. */
79
+ id?: string;
80
+ }
81
+ export interface BookingHandle {
82
+ getCurrentStep: () => number;
83
+ getTotalSteps: () => number;
84
+ gotoStep: (step: number) => void;
85
+ next: () => void;
86
+ previous: () => void;
87
+ getVariant: () => BookingVariant;
88
+ }
89
+ export declare const Booking: import("react").ForwardRefExoticComponent<BookingProps & import("react").RefAttributes<HTMLDivElement>>;
90
+ export {};
91
+ //# sourceMappingURL=booking.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { Booking } from './booking';
2
+ export type { BookingProps, BookingHandle, BookingVariant, BookingValue, BookingService, BookingSpecialty, BookingSlot, } from './booking';
3
+ export { bookingAgent } from './booking.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { B as n, b as a } from "../../_chunks/booking-CXngC-1u.js";
2
+ export {
3
+ n as Booking,
4
+ a as bookingAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import { B as r } from "../../_chunks/button-DD_0Xdmr.js";
2
- import { I as e } from "../../_chunks/icon-button-C4CGcYuz.js";
2
+ import { I as e } from "../../_chunks/icon-button-BRHSSFmZ.js";
3
3
  import { b as f } from "../../_chunks/button.agent-BuGZBktn.js";
4
4
  export {
5
5
  r as Button,
@@ -1,4 +1,4 @@
1
- import { C as r, c as l, r as n } from "../../_chunks/calendar-zy0tUUVG.js";
1
+ import { C as r, c as l, r as n } from "../../_chunks/calendar-9eOXumpH.js";
2
2
  export {
3
3
  r as Calendar,
4
4
  l as calendarAgent,
@@ -1,4 +1,4 @@
1
- import { C as o } from "../../_chunks/card-C353dU-H.js";
1
+ import { C as o } from "../../_chunks/card-DKTMLVrw.js";
2
2
  export {
3
3
  o as Card
4
4
  };
@@ -1,4 +1,4 @@
1
- import { C as o, c as r } from "../../_chunks/carousel.agent-DnPiqijR.js";
1
+ import { C as o, c as r } from "../../_chunks/carousel.agent-C9swH-Uf.js";
2
2
  export {
3
3
  o as Carousel,
4
4
  r as carouselAgent
@@ -1,4 +1,4 @@
1
- import { C as n, c as p } from "../../_chunks/chat-input-B3XmFGDw.js";
1
+ import { C as n, c as p } from "../../_chunks/chat-input-BfDcz1Yi.js";
2
2
  export {
3
3
  n as ChatInput,
4
4
  p as chatInputAgent
@@ -1,4 +1,4 @@
1
- import { C as s } from "../../_chunks/chat-message-W3k8rLOA.js";
1
+ import { C as s } from "../../_chunks/chat-message-fg221-yx.js";
2
2
  export {
3
3
  s as ChatMessage
4
4
  };
@@ -1,4 +1,4 @@
1
- import { C as t, a as e, b as o, c as s, d as n, e as d, f as i, g as C, h as r, i as l, j as c, k as h, u as g } from "../../_chunks/command-palette-DkL-aW4O.js";
1
+ import { C as t, a as e, b as o, c as s, d as n, e as d, f as i, g as C, h as r, i as l, j as c, k as h, u as g } from "../../_chunks/command-palette-11BieSNq.js";
2
2
  export {
3
3
  t as CommandEmpty,
4
4
  e as CommandGroup,
@@ -1,4 +1,4 @@
1
- import { C as r } from "../../_chunks/contact-card-CjG7c-1q.js";
1
+ import { C as r } from "../../_chunks/contact-card-CeEfEAxh.js";
2
2
  export {
3
3
  r as ContactCard
4
4
  };
@@ -1,4 +1,4 @@
1
- import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-DJB5MxAI.js";
1
+ import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-DSReCae7.js";
2
2
  export {
3
3
  l as ActionsCellRenderer,
4
4
  r as BalanceCellRenderer,
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/date-picker-BIoSLRly.js";
1
+ import { D as r, d as t } from "../../_chunks/date-picker-D0Ry1dMz.js";
2
2
  export {
3
3
  r as DatePicker,
4
4
  t as datePickerAgent
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/date-range-picker-9gANFNG9.js";
1
+ import { D as r, d as t } from "../../_chunks/date-range-picker-DYgHzMOo.js";
2
2
  export {
3
3
  r as DateRangePicker,
4
4
  t as dateRangePickerAgent
@@ -1,4 +1,4 @@
1
- import { D as i, d as r } from "../../_chunks/date-time-picker-DG7BiGdb.js";
1
+ import { D as i, d as r } from "../../_chunks/date-time-picker-CGmGtcyc.js";
2
2
  export {
3
3
  i as DateTimePicker,
4
4
  r as dateTimePickerAgent
@@ -1,4 +1,4 @@
1
- import { D as r } from "../../_chunks/description-list-Bsga4IW8.js";
1
+ import { D as r } from "../../_chunks/description-list-yl3y3QKg.js";
2
2
  export {
3
3
  r as DescriptionList
4
4
  };
@@ -1,4 +1,4 @@
1
- import { D as g, d } from "../../_chunks/dialog-DUomPCRS.js";
1
+ import { D as g, d } from "../../_chunks/dialog-BBXqpZIt.js";
2
2
  export {
3
3
  g as Dialog,
4
4
  d as dialogAgent
@@ -1,4 +1,4 @@
1
- import { E as e } from "../../_chunks/empty-state-3CLJIXSj.js";
1
+ import { E as e } from "../../_chunks/empty-state-BLy7tigq.js";
2
2
  export {
3
3
  e as EmptyState
4
4
  };
@@ -1,4 +1,4 @@
1
- import { F as m, f as l } from "../../_chunks/freemium-paywall-CM6V1zNf.js";
1
+ import { F as m, f as l } from "../../_chunks/freemium-paywall-B9c8Ylww.js";
2
2
  export {
3
3
  m as FreemiumPaywall,
4
4
  l as freemiumPaywallAgent
@@ -1,4 +1,4 @@
1
- import { H as r, a as d, b as H, c as s, d as n, e as t, f as i, g as o } from "../../_chunks/header-DqmKROIY.js";
1
+ import { H as r, a as d, b as H, c as s, d as n, e as t, f as i, g as o } from "../../_chunks/header-B8V_sNPy.js";
2
2
  export {
3
3
  r as Header,
4
4
  d as HeaderBrand,
@@ -1,18 +1,19 @@
1
- import { jsx as e, jsxs as d } from "react/jsx-runtime";
2
- import { forwardRef as T, useRef as g, useImperativeHandle as A, useCallback as C, useMemo as I } from "react";
1
+ import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
+ import { forwardRef as A, useRef as p, useImperativeHandle as C, useCallback as x, useMemo as I } from "react";
3
3
  import { c as N } from "../../_chunks/index-D2ZczOXr.js";
4
4
  import { useTranslation as E } from "react-i18next";
5
- import { I as o } from "../../_chunks/icon-button-C4CGcYuz.js";
6
- import { I as R } from "../../_chunks/icon-button-group-DeV3FpNY.js";
5
+ import { I as o } from "../../_chunks/icon-button-BRHSSFmZ.js";
6
+ import { I as M } from "../../_chunks/icon-button-group-DeV3FpNY.js";
7
7
  import { D as r } from "../../_chunks/dropdown-menu-DZxwF23X.js";
8
- import { S as x } from "../../_chunks/switch-D916VW86.js";
9
- import { c as v, a as M, L as _ } from "../../_chunks/locale-picker-BxEUUPW7.js";
10
- import { u as H } from "../../_chunks/use-locale-BkCIHujH.js";
11
- import { u as O } from "../../_chunks/use-theme-B1cwAXJR.js";
12
- import { u as P } from "../../_chunks/registry-C9nwlNyL.js";
8
+ import { S as R } from "../../_chunks/switch-D916VW86.js";
9
+ import { c as v, a as _, L as H } from "../../_chunks/locale-picker-BHxbTNmR.js";
10
+ import { u as O } from "../../_chunks/use-locale-BkCIHujH.js";
11
+ import { u as P } from "../../_chunks/use-theme-C2dHKUAN.js";
12
+ import { u as j } from "../../_chunks/registry-C9nwlNyL.js";
13
13
  import { S as K } from "../../_chunks/settings-ca2Yi9R8.js";
14
- import { S as j, M as D, a as V } from "../../_chunks/sun-Eweh5fvi.js";
15
- const z = {
14
+ import { S as D, M as z } from "../../_chunks/sun-BuXE0xUS.js";
15
+ import { M as V } from "../../_chunks/monitor-D-SFdbrU.js";
16
+ const B = {
16
17
  id: "header-settings",
17
18
  capabilities: ["view_change"],
18
19
  state: {},
@@ -53,19 +54,19 @@ const z = {
53
54
  }
54
55
  }
55
56
  };
56
- function B(t, i) {
57
+ function G(t, i) {
57
58
  if (!(typeof window > "u"))
58
59
  try {
59
60
  window.localStorage.setItem(t, i);
60
61
  } catch {
61
62
  }
62
63
  }
63
- function G(t) {
64
+ function W(t) {
64
65
  if (typeof document > "u") return;
65
66
  const i = document.documentElement;
66
67
  i.lang = t, i.dir = v[t].dir;
67
68
  }
68
- const W = N("ds:inline-flex ds:items-center", {
69
+ const F = N("ds:inline-flex ds:items-center", {
69
70
  variants: {
70
71
  align: {
71
72
  start: "",
@@ -73,30 +74,31 @@ const W = N("ds:inline-flex ds:items-center", {
73
74
  }
74
75
  },
75
76
  defaultVariants: { align: "end" }
76
- }), F = [
77
+ }), U = [
77
78
  "ds:w-[20rem] ds:p-[var(--spacing-xs)]",
78
79
  "ds:rounded-[var(--radius-md)] ds:border ds:border-border",
79
80
  "ds:bg-background ds:text-foreground ds:shadow-[var(--shadow-lg)]"
80
- ].join(" "), U = T(
81
+ ].join(" "), Y = A(
81
82
  (t, i) => {
82
83
  const {
83
- align: p = "end",
84
- disabled: y = !1,
85
- className: S,
84
+ align: g = "end",
85
+ size: y = "md",
86
+ disabled: S = !1,
87
+ className: w,
86
88
  id: m,
87
- ...w
88
- } = t, { t: s } = E(), n = O(), { setLocale: h } = H(), u = g(null);
89
- A(i, () => u.current, []);
90
- const f = C(
89
+ ...L
90
+ } = t, { t: s } = E(), n = P(), { setLocale: h } = O(), u = p(null);
91
+ C(i, () => u.current, []);
92
+ const f = x(
91
93
  (a) => {
92
- h(a), G(a), B(_, a);
94
+ h(a), W(a), G(H, a);
93
95
  },
94
96
  [h]
95
- ), b = g(f);
97
+ ), b = p(f);
96
98
  b.current = f;
97
- const c = g(n);
99
+ const c = p(n);
98
100
  c.current = n;
99
- const L = I(
101
+ const k = I(
100
102
  () => ({
101
103
  setLocale: (a) => {
102
104
  Object.prototype.hasOwnProperty.call(v, a) && b.current(a);
@@ -106,34 +108,35 @@ const W = N("ds:inline-flex ds:items-center", {
106
108
  }),
107
109
  []
108
110
  );
109
- P(z, L, m);
110
- const k = n.accessibility === "accessible";
111
+ j(B, k, m);
112
+ const T = n.accessibility === "accessible";
111
113
  return /* @__PURE__ */ e(
112
114
  "div",
113
115
  {
114
116
  ref: u,
115
117
  "data-component": "header-settings",
116
118
  "data-component-id": m,
117
- className: W({ align: p, className: S }),
118
- ...w,
119
- children: /* @__PURE__ */ d(r.Root, { children: [
119
+ className: F({ align: g, className: w }),
120
+ ...L,
121
+ children: /* @__PURE__ */ l(r.Root, { children: [
120
122
  /* @__PURE__ */ e(r.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
121
123
  o,
122
124
  {
123
- disabled: y,
125
+ size: y,
126
+ disabled: S,
124
127
  icon: /* @__PURE__ */ e(K, { "aria-hidden": !0 }),
125
128
  "aria-label": s("navigation.headerSettings.trigger")
126
129
  }
127
130
  ) }),
128
- /* @__PURE__ */ e(r.Portal, { children: /* @__PURE__ */ d(
131
+ /* @__PURE__ */ e(r.Portal, { children: /* @__PURE__ */ l(
129
132
  r.Content,
130
133
  {
131
- align: p,
134
+ align: g,
132
135
  sideOffset: 8,
133
- className: F,
136
+ className: U,
134
137
  onKeyDownCapture: (a) => {
135
- const l = a.target;
136
- (l == null ? void 0 : l.tagName) === "INPUT" && // Always allow Escape so the menu can close.
138
+ const d = a.target;
139
+ (d == null ? void 0 : d.tagName) === "INPUT" && // Always allow Escape so the menu can close.
137
140
  a.key !== "Escape" && a.stopPropagation();
138
141
  },
139
142
  children: [
@@ -143,8 +146,17 @@ const W = N("ds:inline-flex ds:items-center", {
143
146
  {
144
147
  role: "group",
145
148
  "aria-label": s("navigation.headerSettings.language.label"),
146
- className: "ds:py-[var(--spacing-xs)]",
147
- children: /* @__PURE__ */ e(M.SearchList, {})
149
+ className: [
150
+ "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]",
151
+ // Stretch the compact LocalePicker to the full menu
152
+ // width so it reads as a single row affordance (not
153
+ // a centred pill). The picker's root is
154
+ // inline-flex; the `*:` child selector + `flex-1`
155
+ // gives it `flex: 1 1 0%` once it's a child of the
156
+ // flex container we make this div into.
157
+ "ds:flex ds:[&>*]:flex-1"
158
+ ].join(" "),
159
+ children: /* @__PURE__ */ e(_, { variant: "compact", popoverSide: "end" })
148
160
  }
149
161
  ),
150
162
  /* @__PURE__ */ e(r.Separator, {}),
@@ -155,8 +167,8 @@ const W = N("ds:inline-flex ds:items-center", {
155
167
  role: "group",
156
168
  "aria-label": s("navigation.headerSettings.appearance.label"),
157
169
  className: "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]",
158
- children: /* @__PURE__ */ d(
159
- R,
170
+ children: /* @__PURE__ */ l(
171
+ M,
160
172
  {
161
173
  role: "radiogroup",
162
174
  mode: "toggle-single",
@@ -168,7 +180,7 @@ const W = N("ds:inline-flex ds:items-center", {
168
180
  /* @__PURE__ */ e(
169
181
  o,
170
182
  {
171
- icon: /* @__PURE__ */ e(j, { "aria-hidden": !0 }),
183
+ icon: /* @__PURE__ */ e(D, { "aria-hidden": !0 }),
172
184
  "aria-label": s("navigation.headerSettings.appearance.light"),
173
185
  value: "light"
174
186
  }
@@ -176,7 +188,7 @@ const W = N("ds:inline-flex ds:items-center", {
176
188
  /* @__PURE__ */ e(
177
189
  o,
178
190
  {
179
- icon: /* @__PURE__ */ e(D, { "aria-hidden": !0 }),
191
+ icon: /* @__PURE__ */ e(z, { "aria-hidden": !0 }),
180
192
  "aria-label": s("navigation.headerSettings.appearance.dark"),
181
193
  value: "dark"
182
194
  }
@@ -206,12 +218,12 @@ const W = N("ds:inline-flex ds:items-center", {
206
218
  ),
207
219
  className: "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-sm)]",
208
220
  children: /* @__PURE__ */ e(
209
- x,
221
+ R,
210
222
  {
211
223
  label: s("navigation.headerSettings.appearance.accessible"),
212
224
  labelSide: "start",
213
225
  size: "sm",
214
- checked: k,
226
+ checked: T,
215
227
  onCheckedChange: (a) => n.setAccessibility(a ? "accessible" : "default")
216
228
  }
217
229
  )
@@ -225,8 +237,8 @@ const W = N("ds:inline-flex ds:items-center", {
225
237
  );
226
238
  }
227
239
  );
228
- U.displayName = "HeaderSettings";
240
+ Y.displayName = "HeaderSettings";
229
241
  export {
230
- U as HeaderSettings
242
+ Y as HeaderSettings
231
243
  };
232
244
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { I as n } from "../../_chunks/icon-button-C4CGcYuz.js";
1
+ import { I as n } from "../../_chunks/icon-button-BRHSSFmZ.js";
2
2
  export {
3
3
  n as IconButton
4
4
  };