@alfadocs/ui-kit-debug 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.
Files changed (234) hide show
  1. package/dist/_chunks/{anamnesis-summary-rows-F-cCmFAn.js → anamnesis-summary-rows-d44s_whc.js} +2 -2
  2. package/dist/_chunks/{anamnesis-summary-rows-F-cCmFAn.js.map → anamnesis-summary-rows-d44s_whc.js.map} +1 -1
  3. package/dist/_chunks/{antenatal-schedule-timeline-BjlF2rTz.js → antenatal-schedule-timeline-B1k8QkA6.js} +3 -3
  4. package/dist/_chunks/{antenatal-schedule-timeline-BjlF2rTz.js.map → antenatal-schedule-timeline-B1k8QkA6.js.map} +1 -1
  5. package/dist/_chunks/{appointment-card-BhcPJpXh.js → appointment-card-Dzr3GeVz.js} +73 -90
  6. package/dist/_chunks/appointment-card-Dzr3GeVz.js.map +1 -0
  7. package/dist/_chunks/{appointment-timeline-CMPvzlGZ.js → appointment-timeline-0mwtpErq.js} +3 -3
  8. package/dist/_chunks/{appointment-timeline-CMPvzlGZ.js.map → appointment-timeline-0mwtpErq.js.map} +1 -1
  9. package/dist/_chunks/{appointment-tray-3c_FLxXJ.js → appointment-tray-4FUu_5NX.js} +2 -2
  10. package/dist/_chunks/{appointment-tray-3c_FLxXJ.js.map → appointment-tray-4FUu_5NX.js.map} +1 -1
  11. package/dist/_chunks/armchair-BaLDW6Hz.js +23 -0
  12. package/dist/_chunks/armchair-BaLDW6Hz.js.map +1 -0
  13. package/dist/_chunks/{booking-CQMJUFG-.js → booking-DHkKcUIl.js} +4 -4
  14. package/dist/_chunks/{booking-CQMJUFG-.js.map → booking-DHkKcUIl.js.map} +1 -1
  15. package/dist/_chunks/{calendar-4dXTvsCz.js → calendar-B4Gnyu1C.js} +553 -437
  16. package/dist/_chunks/calendar-B4Gnyu1C.js.map +1 -0
  17. package/dist/_chunks/calendar-event-card-Bjdbik8G.js +425 -0
  18. package/dist/_chunks/calendar-event-card-Bjdbik8G.js.map +1 -0
  19. package/dist/_chunks/{care-plan-card-DQjVRDxO.js → care-plan-card-aDN4oem9.js} +3 -3
  20. package/dist/_chunks/{care-plan-card-DQjVRDxO.js.map → care-plan-card-aDN4oem9.js.map} +1 -1
  21. package/dist/_chunks/{care-plan-entry-card-CMpoeNkb.js → care-plan-entry-card-BEhANdBE.js} +2 -2
  22. package/dist/_chunks/{care-plan-entry-card-CMpoeNkb.js.map → care-plan-entry-card-BEhANdBE.js.map} +1 -1
  23. package/dist/_chunks/{care-plan-header-CxYoq23f.js → care-plan-header-CkpPyQqG.js} +2 -2
  24. package/dist/_chunks/{care-plan-header-CxYoq23f.js.map → care-plan-header-CkpPyQqG.js.map} +1 -1
  25. package/dist/_chunks/{color-picker-D-tUwxxT.js → color-picker-oZ6zYks8.js} +164 -151
  26. package/dist/_chunks/color-picker-oZ6zYks8.js.map +1 -0
  27. package/dist/_chunks/control-room-rail-Cj2iX9h_.js +337 -0
  28. package/dist/_chunks/control-room-rail-Cj2iX9h_.js.map +1 -0
  29. package/dist/_chunks/{cycle-calculator-DzgO1vzP.js → cycle-calculator-DmtYGhqq.js} +3 -3
  30. package/dist/_chunks/{cycle-calculator-DzgO1vzP.js.map → cycle-calculator-DmtYGhqq.js.map} +1 -1
  31. package/dist/_chunks/{date-picker-Bp64zk2p.js → date-picker-CepI_oI2.js} +77 -74
  32. package/dist/_chunks/date-picker-CepI_oI2.js.map +1 -0
  33. package/dist/_chunks/{date-picker-variants-pKAJfnWr.js → date-picker-variants-DfuooXEK.js} +7 -2
  34. package/dist/_chunks/{date-picker-variants-pKAJfnWr.js.map → date-picker-variants-DfuooXEK.js.map} +1 -1
  35. package/dist/_chunks/{date-range-picker-CDrZ8Zh0.js → date-range-picker-BD8P_rJq.js} +46 -45
  36. package/dist/_chunks/{date-range-picker-CDrZ8Zh0.js.map → date-range-picker-BD8P_rJq.js.map} +1 -1
  37. package/dist/_chunks/{date-time-picker-DVETwpzc.js → date-time-picker-3I2vVKGV.js} +2 -2
  38. package/dist/_chunks/{date-time-picker-DVETwpzc.js.map → date-time-picker-3I2vVKGV.js.map} +1 -1
  39. package/dist/_chunks/{due-date-calculator-wK8Tajzz.js → due-date-calculator-BF_Ikofx.js} +4 -4
  40. package/dist/_chunks/{due-date-calculator-wK8Tajzz.js.map → due-date-calculator-BF_Ikofx.js.map} +1 -1
  41. package/dist/_chunks/{entity-card-9_62gY7l.js → entity-card-DmrgYSEX.js} +4 -4
  42. package/dist/_chunks/{entity-card-9_62gY7l.js.map → entity-card-DmrgYSEX.js.map} +1 -1
  43. package/dist/_chunks/{gestational-age-calculator-C_uDAeP_.js → gestational-age-calculator-CxZelpu2.js} +5 -5
  44. package/dist/_chunks/{gestational-age-calculator-C_uDAeP_.js.map → gestational-age-calculator-CxZelpu2.js.map} +1 -1
  45. package/dist/_chunks/{hcg-doubling-BaXkJhT-.js → hcg-doubling-CpU7H5rQ.js} +3 -3
  46. package/dist/_chunks/{hcg-doubling-BaXkJhT-.js.map → hcg-doubling-CpU7H5rQ.js.map} +1 -1
  47. package/dist/_chunks/{link-cell-renderer-DH4JYpKU.js → link-cell-renderer-BZQtsuFz.js} +2 -2
  48. package/dist/_chunks/{link-cell-renderer-DH4JYpKU.js.map → link-cell-renderer-BZQtsuFz.js.map} +1 -1
  49. package/dist/_chunks/{notes-panel-DlnENphf.js → notes-panel-e9cJWVRg.js} +2 -2
  50. package/dist/_chunks/{notes-panel-DlnENphf.js.map → notes-panel-e9cJWVRg.js.map} +1 -1
  51. package/dist/_chunks/{operator-hero-CCDnIa1S.js → operator-hero-BnFv-Uef.js} +2 -2
  52. package/dist/_chunks/{operator-hero-CCDnIa1S.js.map → operator-hero-BnFv-Uef.js.map} +1 -1
  53. package/dist/_chunks/{parse-JqixfsU0.js → parse-MN9bGkrY.js} +2 -2
  54. package/dist/_chunks/{parse-JqixfsU0.js.map → parse-MN9bGkrY.js.map} +1 -1
  55. package/dist/_chunks/{patient-details-qnsqYBGQ.js → patient-details-xrqe13az.js} +160 -159
  56. package/dist/_chunks/patient-details-xrqe13az.js.map +1 -0
  57. package/dist/_chunks/{patient-table-DwshfVsQ.js → patient-table-BqYomX50.js} +2 -2
  58. package/dist/_chunks/{patient-table-DwshfVsQ.js.map → patient-table-BqYomX50.js.map} +1 -1
  59. package/dist/_chunks/{payment-automation-upsell-BBIG7NFL.js → payment-automation-upsell-DwQW2fRp.js} +52 -63
  60. package/dist/_chunks/payment-automation-upsell-DwQW2fRp.js.map +1 -0
  61. package/dist/_chunks/{payment-request-card-BjjBMdsp.js → payment-request-card-YVCcCZ25.js} +2 -2
  62. package/dist/_chunks/{payment-request-card-BjjBMdsp.js.map → payment-request-card-YVCcCZ25.js.map} +1 -1
  63. package/dist/_chunks/{pregnancy-dating-BVS_9YU2.js → pregnancy-dating-DtToyMyc.js} +5 -5
  64. package/dist/_chunks/{pregnancy-dating-BVS_9YU2.js.map → pregnancy-dating-DtToyMyc.js.map} +1 -1
  65. package/dist/_chunks/{radiograph-panel.agent-CiHwgISa.js → radiograph-panel.agent-C3trfWqB.js} +3 -3
  66. package/dist/_chunks/{radiograph-panel.agent-CiHwgISa.js.map → radiograph-panel.agent-C3trfWqB.js.map} +1 -1
  67. package/dist/_chunks/repeat-CvQa5rZt.js +17 -0
  68. package/dist/_chunks/repeat-CvQa5rZt.js.map +1 -0
  69. package/dist/_chunks/resource-chip-DYTG0IQQ.js +83 -0
  70. package/dist/_chunks/resource-chip-DYTG0IQQ.js.map +1 -0
  71. package/dist/_chunks/{rich-text-editor-DARnq_6N.js → rich-text-editor-BDfFtK4H.js} +2 -2
  72. package/dist/_chunks/{rich-text-editor-DARnq_6N.js.map → rich-text-editor-BDfFtK4H.js.map} +1 -1
  73. package/dist/_chunks/subDays-BLl3y3pd.js +8 -0
  74. package/dist/_chunks/{subDays-CAUv47M1.js.map → subDays-BLl3y3pd.js.map} +1 -1
  75. package/dist/agent-catalog.json +2 -2
  76. package/dist/components/_shared/date-picker-variants.d.ts.map +1 -1
  77. package/dist/components/appointment-card/index.js +2 -2
  78. package/dist/components/appointment-timeline/index.js +1 -1
  79. package/dist/components/booking/index.js +1 -1
  80. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  81. package/dist/components/calendar/calendar.d.ts +138 -12
  82. package/dist/components/calendar/calendar.d.ts.map +1 -1
  83. package/dist/components/calendar/index.js +1 -1
  84. package/dist/components/calendar-event-card/calendar-event-card.d.ts +48 -11
  85. package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
  86. package/dist/components/calendar-event-card/index.js +1 -1
  87. package/dist/components/care-plan-card/index.js +1 -1
  88. package/dist/components/care-plan-entry-card/index.js +1 -1
  89. package/dist/components/care-plan-header/index.js +1 -1
  90. package/dist/components/color-picker/index.d.ts +1 -1
  91. package/dist/components/color-picker/index.d.ts.map +1 -1
  92. package/dist/components/color-picker/index.js +4 -3
  93. package/dist/components/color-picker/palettes.d.ts +10 -0
  94. package/dist/components/color-picker/palettes.d.ts.map +1 -1
  95. package/dist/components/control-room-rail/control-room-rail.d.ts +9 -0
  96. package/dist/components/control-room-rail/control-room-rail.d.ts.map +1 -1
  97. package/dist/components/control-room-rail/index.js +1 -1
  98. package/dist/components/cycle-calculator/index.js +1 -1
  99. package/dist/components/data-table/index.js +1 -1
  100. package/dist/components/date-picker/date-picker.d.ts +11 -0
  101. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  102. package/dist/components/date-picker/index.js +1 -1
  103. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  104. package/dist/components/date-range-picker/index.js +1 -1
  105. package/dist/components/date-time-picker/index.js +1 -1
  106. package/dist/components/due-date-calculator/index.js +2 -2
  107. package/dist/components/gestational-age-calculator/index.js +1 -1
  108. package/dist/components/hcg-doubling/index.js +1 -1
  109. package/dist/components/index.d.ts +1 -0
  110. package/dist/components/index.d.ts.map +1 -1
  111. package/dist/components/notes-panel/index.js +1 -1
  112. package/dist/components/operator-hero/index.js +1 -1
  113. package/dist/components/patient-details/index.js +1 -1
  114. package/dist/components/patient-details/patient-details.d.ts +8 -0
  115. package/dist/components/patient-details/patient-details.d.ts.map +1 -1
  116. package/dist/components/patient-table/index.js +1 -1
  117. package/dist/components/payment-card/index.js +1 -1
  118. package/dist/components/pregnancy-dating/index.js +1 -1
  119. package/dist/components/radiograph-panel/index.js +1 -1
  120. package/dist/components/resource-chip/index.d.ts +3 -0
  121. package/dist/components/resource-chip/index.d.ts.map +1 -0
  122. package/dist/components/resource-chip/index.js +5 -0
  123. package/dist/components/resource-chip/index.js.map +1 -0
  124. package/dist/components/resource-chip/resource-chip.d.ts +26 -0
  125. package/dist/components/resource-chip/resource-chip.d.ts.map +1 -0
  126. package/dist/components/rich-text-editor/index.js +1 -1
  127. package/dist/host-compat.css +7 -1
  128. package/dist/i18n/locales/ar.d.ts +4 -0
  129. package/dist/i18n/locales/ar.d.ts.map +1 -1
  130. package/dist/i18n/locales/ar.js +4 -0
  131. package/dist/i18n/locales/ar.js.map +1 -1
  132. package/dist/i18n/locales/de.d.ts +4 -0
  133. package/dist/i18n/locales/de.d.ts.map +1 -1
  134. package/dist/i18n/locales/de.js +4 -0
  135. package/dist/i18n/locales/de.js.map +1 -1
  136. package/dist/i18n/locales/el.d.ts +4 -0
  137. package/dist/i18n/locales/el.d.ts.map +1 -1
  138. package/dist/i18n/locales/el.js +4 -0
  139. package/dist/i18n/locales/el.js.map +1 -1
  140. package/dist/i18n/locales/en.d.ts +4 -0
  141. package/dist/i18n/locales/en.d.ts.map +1 -1
  142. package/dist/i18n/locales/en.js +4 -0
  143. package/dist/i18n/locales/en.js.map +1 -1
  144. package/dist/i18n/locales/es.d.ts +4 -0
  145. package/dist/i18n/locales/es.d.ts.map +1 -1
  146. package/dist/i18n/locales/es.js +4 -0
  147. package/dist/i18n/locales/es.js.map +1 -1
  148. package/dist/i18n/locales/fr.d.ts +4 -0
  149. package/dist/i18n/locales/fr.d.ts.map +1 -1
  150. package/dist/i18n/locales/fr.js +4 -0
  151. package/dist/i18n/locales/fr.js.map +1 -1
  152. package/dist/i18n/locales/hi.d.ts +4 -0
  153. package/dist/i18n/locales/hi.d.ts.map +1 -1
  154. package/dist/i18n/locales/hi.js +4 -0
  155. package/dist/i18n/locales/hi.js.map +1 -1
  156. package/dist/i18n/locales/it.d.ts +4 -0
  157. package/dist/i18n/locales/it.d.ts.map +1 -1
  158. package/dist/i18n/locales/it.js +4 -0
  159. package/dist/i18n/locales/it.js.map +1 -1
  160. package/dist/i18n/locales/ja.d.ts +4 -0
  161. package/dist/i18n/locales/ja.d.ts.map +1 -1
  162. package/dist/i18n/locales/ja.js +4 -0
  163. package/dist/i18n/locales/ja.js.map +1 -1
  164. package/dist/i18n/locales/nl.d.ts +4 -0
  165. package/dist/i18n/locales/nl.d.ts.map +1 -1
  166. package/dist/i18n/locales/nl.js +4 -0
  167. package/dist/i18n/locales/nl.js.map +1 -1
  168. package/dist/i18n/locales/pl.d.ts +4 -0
  169. package/dist/i18n/locales/pl.d.ts.map +1 -1
  170. package/dist/i18n/locales/pl.js +4 -0
  171. package/dist/i18n/locales/pl.js.map +1 -1
  172. package/dist/i18n/locales/pt.d.ts +4 -0
  173. package/dist/i18n/locales/pt.d.ts.map +1 -1
  174. package/dist/i18n/locales/pt.js +4 -0
  175. package/dist/i18n/locales/pt.js.map +1 -1
  176. package/dist/i18n/locales/ro.d.ts +4 -0
  177. package/dist/i18n/locales/ro.d.ts.map +1 -1
  178. package/dist/i18n/locales/ro.js +4 -0
  179. package/dist/i18n/locales/ro.js.map +1 -1
  180. package/dist/i18n/locales/ru.d.ts +4 -0
  181. package/dist/i18n/locales/ru.d.ts.map +1 -1
  182. package/dist/i18n/locales/ru.js +4 -0
  183. package/dist/i18n/locales/ru.js.map +1 -1
  184. package/dist/i18n/locales/sq.d.ts +4 -0
  185. package/dist/i18n/locales/sq.d.ts.map +1 -1
  186. package/dist/i18n/locales/sq.js +4 -0
  187. package/dist/i18n/locales/sq.js.map +1 -1
  188. package/dist/i18n/locales/sv.d.ts +4 -0
  189. package/dist/i18n/locales/sv.d.ts.map +1 -1
  190. package/dist/i18n/locales/sv.js +4 -0
  191. package/dist/i18n/locales/sv.js.map +1 -1
  192. package/dist/i18n/locales/tr.d.ts +4 -0
  193. package/dist/i18n/locales/tr.d.ts.map +1 -1
  194. package/dist/i18n/locales/tr.js +4 -0
  195. package/dist/i18n/locales/tr.js.map +1 -1
  196. package/dist/i18n/locales/zh.d.ts +4 -0
  197. package/dist/i18n/locales/zh.d.ts.map +1 -1
  198. package/dist/i18n/locales/zh.js +4 -0
  199. package/dist/i18n/locales/zh.js.map +1 -1
  200. package/dist/index.js +961 -958
  201. package/dist/index.js.map +1 -1
  202. package/dist/locales/ar.json +4 -0
  203. package/dist/locales/de.json +4 -0
  204. package/dist/locales/el.json +4 -0
  205. package/dist/locales/en.json +4 -0
  206. package/dist/locales/es.json +4 -0
  207. package/dist/locales/fr.json +4 -0
  208. package/dist/locales/hi.json +4 -0
  209. package/dist/locales/it.json +4 -0
  210. package/dist/locales/ja.json +4 -0
  211. package/dist/locales/nl.json +4 -0
  212. package/dist/locales/pl.json +4 -0
  213. package/dist/locales/pt.json +4 -0
  214. package/dist/locales/ro.json +4 -0
  215. package/dist/locales/ru.json +4 -0
  216. package/dist/locales/sq.json +4 -0
  217. package/dist/locales/sv.json +4 -0
  218. package/dist/locales/tr.json +4 -0
  219. package/dist/locales/zh.json +4 -0
  220. package/dist/patterns/anamnesis/index.js +1 -1
  221. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  222. package/dist/tokens.css +40 -24
  223. package/package.json +5 -1
  224. package/dist/_chunks/appointment-card-BhcPJpXh.js.map +0 -1
  225. package/dist/_chunks/calendar-4dXTvsCz.js.map +0 -1
  226. package/dist/_chunks/calendar-event-card-C6qGtywL.js +0 -257
  227. package/dist/_chunks/calendar-event-card-C6qGtywL.js.map +0 -1
  228. package/dist/_chunks/color-picker-D-tUwxxT.js.map +0 -1
  229. package/dist/_chunks/control-room-rail-IH1eBjrK.js +0 -333
  230. package/dist/_chunks/control-room-rail-IH1eBjrK.js.map +0 -1
  231. package/dist/_chunks/date-picker-Bp64zk2p.js.map +0 -1
  232. package/dist/_chunks/patient-details-qnsqYBGQ.js.map +0 -1
  233. package/dist/_chunks/payment-automation-upsell-BBIG7NFL.js.map +0 -1
  234. package/dist/_chunks/subDays-CAUv47M1.js +0 -8
@@ -1,21 +1,25 @@
1
- import { jsxs as G, jsx as l } from "react/jsx-runtime";
2
- import { forwardRef as Se, useRef as p, useEffect as h, useState as te, useMemo as u, useImperativeHandle as Pt, useCallback as y } from "react";
3
- import { useTranslation as me } from "react-i18next";
4
- import Mt from "@fullcalendar/react";
5
- import Gt from "@fullcalendar/daygrid";
6
- import Bt from "@fullcalendar/timegrid";
7
- import Lt from "@fullcalendar/list";
8
- import Ot from "@fullcalendar/resource";
9
- import Wt from "@fullcalendar/resource-timegrid";
10
- import jt from "@fullcalendar/resource-timeline";
11
- import _t from "@fullcalendar/timeline";
12
- import Ft from "@fullcalendar/interaction";
13
- import { u as Vt } from "./use-prefers-reduced-motion-BMwIQRjB.js";
14
- import { u as Ht } from "./registry-DvAUVLHh.js";
15
- import { w as ke, C as $t } from "./calendar-event-card-C6qGtywL.js";
16
- import { C as Ee } from "./chevron-right-I9AeSxH2.js";
17
- import { C as Ne } from "./chevron-left-B8cOyH-V.js";
18
- const zt = {
1
+ import { jsxs as E, jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as Be, useRef as p, useEffect as v, useState as ae, useMemo as u, useImperativeHandle as Ht, useCallback as g } from "react";
3
+ import { useTranslation as ye } from "react-i18next";
4
+ import qt from "@fullcalendar/react";
5
+ import $t from "@fullcalendar/daygrid";
6
+ import Kt from "@fullcalendar/timegrid";
7
+ import Ut from "@fullcalendar/list";
8
+ import Yt from "@fullcalendar/resource";
9
+ import Xt from "@fullcalendar/resource-timegrid";
10
+ import Jt from "@fullcalendar/resource-timeline";
11
+ import Zt from "@fullcalendar/timeline";
12
+ import Qt from "@fullcalendar/interaction";
13
+ import { u as er } from "./use-prefers-reduced-motion-BMwIQRjB.js";
14
+ import { u as tr } from "./registry-DvAUVLHh.js";
15
+ import { w as rr, C as nr } from "./calendar-event-card-Bjdbik8G.js";
16
+ import { A as ir } from "./avatar-BNQNhoyL.js";
17
+ import { R as ar } from "./resource-chip-DYTG0IQQ.js";
18
+ import { T as sr } from "./tooltip-DvmfrNvB.js";
19
+ import { C as or } from "./check-DrFSN__t.js";
20
+ import { C as Ge } from "./chevron-right-I9AeSxH2.js";
21
+ import { C as Me } from "./chevron-left-B8cOyH-V.js";
22
+ const dr = {
19
23
  id: "calendar",
20
24
  capabilities: ["view_change", "range_navigate", "pick"],
21
25
  state: {
@@ -30,8 +34,8 @@ const zt = {
30
34
  descriptionKey: "ui.agent.calendar.state.currentDate",
31
35
  description: "ISO date anchor of the visible range.",
32
36
  read: (n) => {
33
- var o;
34
- return ((o = n.getCurrentDate()) == null ? void 0 : o.toISOString()) ?? null;
37
+ var s;
38
+ return ((s = n.getCurrentDate()) == null ? void 0 : s.toISOString()) ?? null;
35
39
  }
36
40
  },
37
41
  currentTitle: {
@@ -89,8 +93,8 @@ const zt = {
89
93
  examples: [
90
94
  { args: { date: "2026-04-15" }, note: "Jump to 15 April 2026." }
91
95
  ],
92
- invoke: (n, o) => {
93
- n.gotoDate(o.date);
96
+ invoke: (n, s) => {
97
+ n.gotoDate(s.date);
94
98
  }
95
99
  },
96
100
  change_view: {
@@ -124,8 +128,8 @@ const zt = {
124
128
  examples: [
125
129
  { args: { view: "timeGridWeek" }, note: "Switch to the week view." }
126
130
  ],
127
- invoke: (n, o) => {
128
- n.changeView(o.view);
131
+ invoke: (n, s) => {
132
+ n.changeView(s.view);
129
133
  }
130
134
  },
131
135
  focus_event: {
@@ -146,11 +150,14 @@ const zt = {
146
150
  descriptionKey: "ui.agent.calendar.actions.focusEvent",
147
151
  description: "Scroll an event into view and briefly highlight it.",
148
152
  errors: ["No DOM node matches the given event id — no-op."],
149
- invoke: (n, o) => {
150
- n.focusEvent(o.eventId);
153
+ invoke: (n, s) => {
154
+ n.focusEvent(s.eventId);
151
155
  }
152
156
  }
153
157
  },
158
+ /* Day-number nav links (`a[data-navlink]`, via onNavLinkDayClick) are
159
+ FullCalendar markup, not a hook: an agent drills into a day through
160
+ the host's own view change, never by clicking the number. */
154
161
  domHooks: {
155
162
  root: {
156
163
  attr: "data-component",
@@ -164,10 +171,10 @@ const zt = {
164
171
  },
165
172
  item: {
166
173
  attr: "data-event-id",
167
- description: "Emitted on every rendered FullCalendar event by the kit event renderer. Used by focusEvent."
174
+ description: 'Emitted on every rendered FullCalendar event by the kit event renderer. Used by focusEvent. Cards also carry data-kind="task"|"draft"|"appointment" and data-status for classification.'
168
175
  }
169
176
  }
170
- }, qt = {
177
+ }, cr = {
171
178
  vertical: {
172
179
  Day: "resourceTimeGridDay",
173
180
  ThreeDays: "resourceTimeGridThreeDays",
@@ -178,33 +185,35 @@ const zt = {
178
185
  ThreeDays: "resourceTimelineThreeDays",
179
186
  Week: "resourceTimelineWeek"
180
187
  }
181
- }, Kt = /* @__PURE__ */ new Set([
188
+ }, lr = /* @__PURE__ */ new Set([
182
189
  "dayGridMonth",
183
190
  "timeGridWeek",
191
+ "timeGridThreeDays",
184
192
  "timeGridDay",
185
193
  "listWeek"
186
- ]), Ut = {
194
+ ]), ur = {
187
195
  timeGridDay: "timelineDay",
196
+ timeGridThreeDays: "timelineThreeDays",
188
197
  timeGridWeek: "timelineWeek"
189
198
  };
190
- function de(n, o = "vertical") {
191
- if (Kt.has(n))
192
- return o === "horizontal" ? Ut[n] ?? n : n;
199
+ function pe(n, s = "vertical") {
200
+ if (lr.has(n))
201
+ return s === "horizontal" ? ur[n] ?? n : n;
193
202
  const d = n.replace(/^resourceTimeGrid/, "").replace(
194
203
  /(Chair|Operator)$/,
195
204
  ""
196
205
  );
197
- return qt[o][d];
206
+ return cr[s][d];
198
207
  }
199
- const ee = {
208
+ const ie = {
200
209
  weekday: "long",
201
210
  day: "numeric",
202
211
  month: "long",
203
212
  year: "numeric"
204
- }, Yt = [
213
+ }, mr = [
205
214
  { weekday: "short", day: "numeric", month: "short" },
206
215
  { hour: "numeric", minute: "2-digit" }
207
- ], Xt = {
216
+ ], fr = {
208
217
  resourceTimeGridThreeDays: {
209
218
  type: "resourceTimeGrid",
210
219
  duration: { days: 3 }
@@ -213,80 +222,90 @@ const ee = {
213
222
  type: "resourceTimeline",
214
223
  duration: { days: 3 }
215
224
  },
216
- timeline: { slotLabelFormat: Yt },
217
- timeGridDay: { titleFormat: ee },
218
- resourceTimeGridDay: { titleFormat: ee },
219
- timelineDay: { titleFormat: ee },
220
- resourceTimelineDay: { titleFormat: ee }
221
- }, ce = 5, Jt = {
225
+ /* Plain (non-resource) 3-day counterparts — the standard calendar
226
+ experience's Day / 3 days / Week range set without an axis. */
227
+ timeGridThreeDays: {
228
+ type: "timeGrid",
229
+ duration: { days: 3 }
230
+ },
231
+ timelineThreeDays: {
232
+ type: "timeline",
233
+ duration: { days: 3 }
234
+ },
235
+ timeline: { slotLabelFormat: mr },
236
+ timeGridDay: { titleFormat: ie },
237
+ resourceTimeGridDay: { titleFormat: ie },
238
+ timelineDay: { titleFormat: ie },
239
+ resourceTimelineDay: { titleFormat: ie }
240
+ }, ve = 5, pr = {
222
241
  create: "calendar.modeBanner.create",
223
242
  move: "calendar.modeBanner.move",
224
243
  copy: "calendar.modeBanner.copy"
225
244
  };
226
- function Zt(n) {
245
+ function vr(n) {
227
246
  try {
228
- const o = new Intl.Locale(n), s = typeof o.getWeekInfo == "function" ? o.getWeekInfo() : o.weekInfo;
229
- if (s && typeof s.firstDay == "number")
230
- return s.firstDay % 7;
247
+ const s = new Intl.Locale(n), o = typeof s.getWeekInfo == "function" ? s.getWeekInfo() : s.weekInfo;
248
+ if (o && typeof o.firstDay == "number")
249
+ return o.firstDay % 7;
231
250
  } catch {
232
251
  }
233
252
  return n.startsWith("en-US") || n.startsWith("he") || n.startsWith("ar-SA") ? 0 : 1;
234
253
  }
235
- const le = "calendar-col-hidden";
236
- function ue(n) {
237
- const o = n.getFullYear(), s = String(n.getMonth() + 1).padStart(2, "0"), d = String(n.getDate()).padStart(2, "0");
238
- return `${o}-${s}-${d}`;
254
+ const he = "calendar-col-hidden";
255
+ function ge(n) {
256
+ const s = n.getFullYear(), o = String(n.getMonth() + 1).padStart(2, "0"), d = String(n.getDate()).padStart(2, "0");
257
+ return `${s}-${o}-${d}`;
239
258
  }
240
- function Qt(n, o) {
241
- const s = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map(), f = (n == null ? void 0 : n.length) ?? 0;
242
- if (n && o) {
243
- for (const b of n)
244
- if (b.hiddenDates)
245
- for (const v of b.hiddenDates) {
246
- const w = `${b.id}:${v}`;
247
- s.has(w) || (s.add(w), d.set(v, (d.get(v) ?? 0) + 1));
259
+ function hr(n, s) {
260
+ const o = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map(), f = (n == null ? void 0 : n.length) ?? 0;
261
+ if (n && s) {
262
+ for (const T of n)
263
+ if (T.hiddenDates)
264
+ for (const h of T.hiddenDates) {
265
+ const k = `${T.id}:${h}`;
266
+ o.has(k) || (o.add(k), d.set(h, (d.get(h) ?? 0) + 1));
248
267
  }
249
268
  }
250
269
  return {
251
- hiddenCells: s,
270
+ hiddenCells: o,
252
271
  hiddenCountByDate: d,
253
272
  resourceCount: f,
254
- active: s.size > 0
273
+ active: o.size > 0
255
274
  };
256
275
  }
257
- function er() {
258
- const { i18n: n } = me(), [o, s] = te(() => {
276
+ function gr() {
277
+ const { i18n: n } = ye(), [s, o] = ae(() => {
259
278
  if (typeof document > "u") return !1;
260
279
  const d = document.documentElement.getAttribute("dir"), f = typeof n.dir == "function" ? n.dir() : "ltr";
261
280
  return d === "rtl" || f === "rtl";
262
281
  });
263
- return h(() => {
282
+ return v(() => {
264
283
  if (typeof document > "u") return;
265
284
  const d = new MutationObserver(() => {
266
- const f = document.documentElement.getAttribute("dir"), b = typeof n.dir == "function" ? n.dir() : "ltr";
267
- s(f === "rtl" || b === "rtl");
285
+ const f = document.documentElement.getAttribute("dir"), T = typeof n.dir == "function" ? n.dir() : "ltr";
286
+ o(f === "rtl" || T === "rtl");
268
287
  });
269
288
  return d.observe(document.documentElement, {
270
289
  attributes: !0,
271
290
  attributeFilter: ["dir", "lang"]
272
291
  }), () => d.disconnect();
273
- }, [n]), o;
292
+ }, [n]), s;
274
293
  }
275
- function tr(n, o) {
276
- const s = n.event.start, d = n.event.end ?? n.event.start;
277
- if (!(!s || !d))
294
+ function yr(n, s) {
295
+ const o = n.event.start, d = n.event.end ?? n.event.start;
296
+ if (!(!o || !d))
278
297
  try {
279
- const f = new Intl.DateTimeFormat(o, {
298
+ const f = new Intl.DateTimeFormat(s, {
280
299
  hour: "2-digit",
281
300
  minute: "2-digit",
282
301
  hour12: !1
283
302
  });
284
- return typeof f.formatRange == "function" ? f.formatRange(s, d) : `${f.format(s)} – ${f.format(d)}`;
303
+ return typeof f.formatRange == "function" ? f.formatRange(o, d) : `${f.format(o)} – ${f.format(d)}`;
285
304
  } catch {
286
305
  return;
287
306
  }
288
307
  }
289
- const Re = [
308
+ const Oe = [
290
309
  "ds:inline-flex ds:items-center ds:justify-center",
291
310
  "ds:min-h-[var(--min-target-size)]",
292
311
  "ds:bg-[var(--background)] ds:text-[var(--foreground)]",
@@ -299,15 +318,15 @@ const Re = [
299
318
  "ds:focus-visible:outline-[var(--ring)]",
300
319
  "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
301
320
  "ds:motion-reduce:transition-none"
302
- ].join(" "), rr = [
303
- Re,
321
+ ].join(" "), br = [
322
+ Oe,
304
323
  "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]"
305
- ].join(" "), nr = [
306
- Re,
324
+ ].join(" "), Tr = [
325
+ Oe,
307
326
  "ds:min-w-[var(--min-target-size)]"
308
- ].join(" "), fe = Se(
309
- ({ title: n, onToday: o, onPrev: s, onNext: d, end: f, className: b, maskClassName: v }, w) => {
310
- const { t: B } = me(), V = er(), T = V ? Ee : Ne, L = V ? Ne : Ee, k = [
327
+ ].join(" "), be = Be(
328
+ ({ title: n, onToday: s, onPrev: o, onNext: d, end: f, className: T, maskClassName: h }, k) => {
329
+ const { t: O } = ye(), Y = gr(), x = Y ? Ge : Me, L = Y ? Me : Ge, W = [
311
330
  "ds:calendar-toolbar",
312
331
  "ds:sticky ds:top-0 ds:z-20",
313
332
  "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
@@ -315,30 +334,30 @@ const Re = [
315
334
  "ds:py-[var(--spacing-sm)]",
316
335
  "ds:bg-[var(--background)]",
317
336
  "ds:border-b ds:border-[var(--border)]",
318
- b
319
- ].filter(Boolean).join(" "), x = [rr, v].filter(Boolean).join(" "), E = [nr, v].filter(Boolean).join(" "), re = [
337
+ T
338
+ ].filter(Boolean).join(" "), F = [br, h].filter(Boolean).join(" "), A = [Tr, h].filter(Boolean).join(" "), D = [
320
339
  "ds:flex-1 ds:text-center ds:truncate type-title-card",
321
- v
322
- ].filter(Boolean).join(" "), ne = ["ds:flex-1 ds:text-center", v].filter(Boolean).join(" ");
323
- return /* @__PURE__ */ G("div", { ref: w, className: k, children: [
324
- /* @__PURE__ */ G("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
340
+ h
341
+ ].filter(Boolean).join(" "), X = ["ds:flex-1 ds:text-center", h].filter(Boolean).join(" ");
342
+ return /* @__PURE__ */ E("div", { ref: k, className: W, children: [
343
+ /* @__PURE__ */ E("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
325
344
  /* @__PURE__ */ l(
326
345
  "button",
327
346
  {
328
347
  type: "button",
329
- onClick: o,
330
- className: x,
331
- children: B("calendar.today")
348
+ onClick: s,
349
+ className: F,
350
+ children: O("calendar.today")
332
351
  }
333
352
  ),
334
353
  /* @__PURE__ */ l(
335
354
  "button",
336
355
  {
337
356
  type: "button",
338
- onClick: s,
339
- "aria-label": B("calendar.previousPeriod"),
340
- className: E,
341
- children: /* @__PURE__ */ l(T, { size: 16, "aria-hidden": "true" })
357
+ onClick: o,
358
+ "aria-label": O("calendar.previousPeriod"),
359
+ className: A,
360
+ children: /* @__PURE__ */ l(x, { size: 16, "aria-hidden": "true" })
342
361
  }
343
362
  ),
344
363
  /* @__PURE__ */ l(
@@ -346,105 +365,113 @@ const Re = [
346
365
  {
347
366
  type: "button",
348
367
  onClick: d,
349
- "aria-label": B("calendar.nextPeriod"),
350
- className: E,
368
+ "aria-label": O("calendar.nextPeriod"),
369
+ className: A,
351
370
  children: /* @__PURE__ */ l(L, { size: 16, "aria-hidden": "true" })
352
371
  }
353
372
  )
354
373
  ] }),
355
- n ? /* @__PURE__ */ l("h2", { "aria-live": "polite", className: re, children: n }) : (
374
+ n ? /* @__PURE__ */ l("h2", { "aria-live": "polite", className: D, children: n }) : (
356
375
  /* Keep the centering slot stable even before the first
357
376
  `datesSet` populates the title — an empty <h2> would trip
358
377
  axe's `empty-heading` rule, so we substitute a decorative
359
378
  spacer that matches the h2's flex sizing. Once `title` is
360
379
  non-empty the h2 renders in the same slot. */
361
- /* @__PURE__ */ l("div", { "aria-hidden": "true", className: ne })
380
+ /* @__PURE__ */ l("div", { "aria-hidden": "true", className: X })
362
381
  ),
363
382
  f ? /* @__PURE__ */ l("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: f }) : null
364
383
  ] });
365
384
  }
366
385
  );
367
- fe.displayName = "Calendar.Toolbar";
368
- const Pe = Se(
386
+ be.displayName = "Calendar.Toolbar";
387
+ const Le = Be(
369
388
  ({
370
389
  id: n,
371
- events: o,
372
- resources: s,
390
+ events: s,
391
+ resources: o,
373
392
  view: d = "dayGridMonth",
374
393
  initialDate: f,
375
- locale: b,
376
- onEventDrop: v,
377
- onEventResize: w,
378
- onEventDragStart: B,
379
- onEventResizeStart: V,
380
- onEventClick: T,
381
- onDateSelect: L,
382
- onDatesSet: k,
383
- onDateClick: x,
384
- editable: E = !1,
385
- eventDurationEditable: re,
386
- selectable: ne = !1,
387
- height: Me,
388
- className: Ge,
389
- privacyMode: D = !1,
390
- eventStatusAccent: Be = !0,
391
- mode: H = "default",
392
- modeLabel: Le,
393
- modeBannerColor: $,
394
- modeBannerTextColor: z,
395
- onModeCancel: pe,
396
- alertBanner: Oe,
397
- hiddenDays: ve,
398
- slotMinTime: We,
399
- slotMaxTime: je,
400
- slotDuration: _e,
401
- showTime: Fe = !0,
402
- datesAboveResources: ie = !0,
403
- slotEventOverlap: Ve = !1,
404
- stickyHeaderDates: He = !0,
405
- nowIndicator: $e = !0,
406
- dayMaxEvents: ze = !0,
407
- schedulerLicenseKey: qe = void 0,
408
- toolbar: Ke = !0,
409
- toolbarEnd: Ue,
410
- resourceLayout: O = "vertical",
411
- showResourceInitials: he = !1,
412
- resourceAreaWidth: Ye,
413
- resourceAreaHeader: W,
414
- defaultTimedEventDuration: j,
415
- zebraRows: Xe = !1,
394
+ locale: T,
395
+ onEventDrop: h,
396
+ onEventResize: k,
397
+ onEventDragStart: O,
398
+ onEventResizeStart: Y,
399
+ onEventClick: x,
400
+ onEventMouseEnter: L,
401
+ onEventMouseLeave: W,
402
+ onDateSelect: F,
403
+ onDatesSet: A,
404
+ onDateClick: D,
405
+ onNavLinkDayClick: X,
406
+ editable: se = !1,
407
+ eventDurationEditable: We,
408
+ selectable: Fe = !1,
409
+ height: ze,
410
+ className: je,
411
+ privacyMode: y = !1,
412
+ eventColorStyle: _e = "solid",
413
+ mode: J = "default",
414
+ modeLabel: Ve,
415
+ modeBannerColor: Z,
416
+ modeBannerTextColor: Q,
417
+ onModeCancel: Te,
418
+ alertBanner: He,
419
+ hiddenDays: xe,
420
+ slotMinTime: qe,
421
+ slotMaxTime: $e,
422
+ slotDuration: Ke,
423
+ snapDuration: De,
424
+ showTime: Ue = !0,
425
+ datesAboveResources: oe = !0,
426
+ slotEventOverlap: Ye = !1,
427
+ stickyHeaderDates: Xe = !0,
428
+ nowIndicator: Je = !0,
429
+ dayMaxEvents: Ze = !0,
430
+ schedulerLicenseKey: Qe = void 0,
431
+ toolbar: et = !0,
432
+ toolbarEnd: tt,
433
+ resourceLayout: z = "vertical",
434
+ showResourceInitials: de = !1,
435
+ resourceLabelVariant: Ce = "text",
436
+ verticalResourceLabels: ce = !1,
437
+ selectedEventId: we,
438
+ availabilityMode: rt = !1,
439
+ resourceAreaWidth: nt,
440
+ resourceAreaHeader: j,
441
+ defaultTimedEventDuration: _,
442
+ zebraRows: it = !1,
416
443
  maskClassName: N
417
- }, Je) => {
418
- const { t: m, i18n: S } = me(), I = p(null), R = p(null), C = p(null), A = p(null), P = p(null), ge = p(null), q = p({
444
+ }, at) => {
445
+ const { t: m, i18n: P } = ye(), C = p(null), R = p(null), w = p(null), I = p(null), G = p(null), ke = p(null), ee = p({
419
446
  id: 0,
420
447
  x: 0,
421
448
  y: 0
422
- }), ye = p(0), be = p(0), K = b ?? S.language ?? "en";
423
- h(() => {
424
- }, [ve]), h(() => {
425
- }, [j]);
426
- const [Ze, Qe] = te(() => {
449
+ }), Ie = p(0), Ae = p(0), S = T ?? P.language ?? "en";
450
+ v(() => {
451
+ }, [xe]), v(() => {
452
+ }, [_]);
453
+ const [st, ot] = ae(() => {
427
454
  if (typeof document > "u") return "ltr";
428
- const e = document.documentElement.getAttribute("dir"), t = typeof S.dir == "function" ? S.dir() : "ltr";
455
+ const e = document.documentElement.getAttribute("dir"), t = typeof P.dir == "function" ? P.dir() : "ltr";
429
456
  return e === "rtl" || t === "rtl" ? "rtl" : "ltr";
430
457
  });
431
- h(() => {
458
+ v(() => {
432
459
  if (typeof document > "u") return;
433
460
  const e = new MutationObserver(() => {
434
- const t = document.documentElement.getAttribute("dir"), r = typeof S.dir == "function" ? S.dir() : "ltr";
435
- Qe(t === "rtl" || r === "rtl" ? "rtl" : "ltr");
461
+ const t = document.documentElement.getAttribute("dir"), r = typeof P.dir == "function" ? P.dir() : "ltr";
462
+ ot(t === "rtl" || r === "rtl" ? "rtl" : "ltr");
436
463
  });
437
464
  return e.observe(document.documentElement, {
438
465
  attributes: !0,
439
466
  attributeFilter: ["dir", "lang"]
440
467
  }), () => e.disconnect();
441
- }, [S]), h(() => {
468
+ }, [P]), v(() => {
442
469
  if (typeof document > "u") return;
443
470
  let e;
444
471
  const t = new MutationObserver(() => {
445
472
  clearTimeout(e), e = setTimeout(() => {
446
- var a;
447
- const r = (a = I.current) == null ? void 0 : a.getApi();
473
+ var i;
474
+ const r = (i = C.current) == null ? void 0 : i.getApi();
448
475
  r && typeof r.render == "function" && r.render();
449
476
  }, 50);
450
477
  });
@@ -454,18 +481,35 @@ const Pe = Se(
454
481
  }), () => {
455
482
  clearTimeout(e), t.disconnect();
456
483
  };
457
- }, []), h(() => {
484
+ }, []), v(() => {
485
+ const e = R.current;
486
+ if (!e || typeof ResizeObserver > "u") return;
487
+ let t = 0, r = e.getBoundingClientRect().width;
488
+ const i = new ResizeObserver((a) => {
489
+ var q, $;
490
+ const c = a[0], b = (($ = (q = c == null ? void 0 : c.borderBoxSize) == null ? void 0 : q[0]) == null ? void 0 : $.inlineSize) ?? (c == null ? void 0 : c.contentRect.width) ?? e.getBoundingClientRect().width;
491
+ b !== r && (r = b, cancelAnimationFrame(t), t = requestAnimationFrame(() => {
492
+ var K, U;
493
+ (U = (K = C.current) == null ? void 0 : K.getApi()) == null || U.updateSize();
494
+ }));
495
+ });
496
+ return i.observe(e), () => {
497
+ cancelAnimationFrame(t), i.disconnect();
498
+ };
499
+ }, []), v(() => {
458
500
  if (typeof document > "u") return;
459
501
  const e = R.current;
460
502
  if (!e) return;
461
503
  const t = () => {
462
- e.querySelectorAll(".fc-daygrid-more-link").forEach((a) => {
463
- a.getAttribute("role") || a.setAttribute("role", "button");
464
- }), e.querySelectorAll('[aria-hidden="true"]').forEach((a) => {
465
- a.querySelectorAll(
504
+ e.querySelectorAll(
505
+ ".fc-daygrid-more-link, a[data-navlink]"
506
+ ).forEach((i) => {
507
+ i.getAttribute("role") || i.setAttribute("role", "button");
508
+ }), e.querySelectorAll('[aria-hidden="true"]').forEach((i) => {
509
+ i.querySelectorAll(
466
510
  'a[href], button, [tabindex]:not([tabindex="-1"])'
467
- ).forEach((i) => {
468
- i.setAttribute("tabindex", "-1");
511
+ ).forEach((a) => {
512
+ a.setAttribute("tabindex", "-1");
469
513
  });
470
514
  });
471
515
  };
@@ -478,19 +522,19 @@ const Pe = Se(
478
522
  attributeFilter: ["aria-hidden"]
479
523
  }), () => r.disconnect();
480
524
  }, [m]);
481
- const U = Vt(), [et, tt] = te(""), [_, rt] = te(
482
- () => de(d, O)
483
- ), Te = p(_);
484
- Te.current = _;
485
- const ae = u(() => {
525
+ const te = er(), [dt, ct] = ae(""), [V, lt] = ae(
526
+ () => pe(d, z)
527
+ ), Re = p(V);
528
+ Re.current = V;
529
+ const le = u(() => {
486
530
  const e = () => {
487
531
  var t;
488
- return (t = I.current) == null ? void 0 : t.getApi();
532
+ return (t = C.current) == null ? void 0 : t.getApi();
489
533
  };
490
534
  return {
491
535
  getApi: () => {
492
536
  var t;
493
- return (t = I.current) == null ? void 0 : t.getApi();
537
+ return (t = C.current) == null ? void 0 : t.getApi();
494
538
  },
495
539
  today: () => {
496
540
  var t;
@@ -511,7 +555,7 @@ const Pe = Se(
511
555
  changeView: (t) => {
512
556
  var r;
513
557
  (r = e()) == null || r.changeView(
514
- de(t, O)
558
+ pe(t, z)
515
559
  );
516
560
  },
517
561
  getTitle: () => {
@@ -529,40 +573,40 @@ const Pe = Se(
529
573
  focusEvent: (t) => {
530
574
  const r = R.current;
531
575
  if (!r) return;
532
- const a = `[data-event-id="${CSS.escape(t)}"]`, i = r.querySelector(a);
533
- if (i) {
534
- if (A.current && (clearTimeout(A.current), A.current = null), P.current && P.current !== i && P.current.classList.remove("calendar-event-focused"), i.scrollIntoView({
535
- behavior: U ? "auto" : "smooth",
576
+ const i = `[data-event-id="${CSS.escape(t)}"]`, a = r.querySelector(i);
577
+ if (a) {
578
+ if (I.current && (clearTimeout(I.current), I.current = null), G.current && G.current !== a && G.current.classList.remove("calendar-event-focused"), a.scrollIntoView({
579
+ behavior: te ? "auto" : "smooth",
536
580
  block: "center"
537
- }), i.classList.add("calendar-event-focused"), P.current = i, C.current) {
538
- const c = i.getAttribute("aria-label") ?? t, g = D ? "•••" : c;
539
- C.current.textContent = m("calendar.focusedEvent", {
540
- title: g
581
+ }), a.classList.add("calendar-event-focused"), G.current = a, w.current) {
582
+ const c = a.getAttribute("aria-label") ?? t, b = y ? "•••" : c;
583
+ w.current.textContent = m("calendar.focusedEvent", {
584
+ title: b
541
585
  });
542
586
  }
543
- A.current = setTimeout(() => {
544
- i.classList.remove("calendar-event-focused"), P.current === i && (P.current = null), A.current = null;
587
+ I.current = setTimeout(() => {
588
+ a.classList.remove("calendar-event-focused"), G.current === a && (G.current = null), I.current = null;
545
589
  }, 3e3);
546
590
  }
547
591
  }
548
592
  };
549
- }, [U, D, m, O]);
550
- Pt(Je, () => ae, [ae]), Ht(zt, ae, n), h(
593
+ }, [te, y, m, z]);
594
+ Ht(at, () => le, [le]), tr(dr, le, n), v(
551
595
  () => () => {
552
- A.current && (clearTimeout(A.current), A.current = null);
596
+ I.current && (clearTimeout(I.current), I.current = null);
553
597
  },
554
598
  []
555
599
  );
556
- const xe = p(!0);
557
- h(() => {
558
- if (xe.current) {
559
- xe.current = !1;
600
+ const Se = p(!0);
601
+ v(() => {
602
+ if (Se.current) {
603
+ Se.current = !1;
560
604
  return;
561
605
  }
562
- C.current && (C.current.textContent = m(D ? "calendar.privacyModeOn" : "calendar.privacyModeOff"));
563
- }, [D, m]);
564
- const nt = u(
565
- () => o.map((e) => ({
606
+ w.current && (w.current.textContent = m(y ? "calendar.privacyModeOn" : "calendar.privacyModeOff"));
607
+ }, [y, m]);
608
+ const ut = u(
609
+ () => s.map((e) => ({
566
610
  id: e.id,
567
611
  title: e.title,
568
612
  start: e.start,
@@ -580,6 +624,10 @@ const Pe = Se(
580
624
  ...e.allDay !== void 0 ? { allDay: e.allDay } : {},
581
625
  ...e.resourceId !== void 0 ? { resourceId: e.resourceId } : {},
582
626
  ...e.isInternal ? { display: "background" } : {},
627
+ /* A draft is the user's own composition: dragging or resizing it
628
+ IS how they pick the slot, so it stays editable even on a
629
+ read-only calendar. The consumer's own `editable` still wins. */
630
+ ...e.isDraft ? { editable: !0 } : {},
583
631
  ...e.editable !== void 0 ? { editable: e.editable } : {},
584
632
  ...e.startEditable !== void 0 ? { startEditable: e.startEditable } : {},
585
633
  extendedProps: {
@@ -601,104 +649,132 @@ const Pe = Se(
601
649
  hasHighlightedAnamnesis: e.hasHighlightedAnamnesis ?? !1,
602
650
  hasBillableAmount: e.hasBillableAmount ?? !1,
603
651
  isTelehealth: e.isTelehealth ?? !1,
652
+ isRecurring: e.isRecurring ?? !1,
604
653
  isRecurrenceParent: e.isRecurrenceParent ?? !1,
605
654
  isInternal: e.isInternal ?? !1,
655
+ isTask: e.isTask ?? !1,
656
+ isDraft: e.isDraft ?? !1,
606
657
  patientId: e.patientId,
607
658
  operatorId: e.operatorId
608
659
  }
609
660
  })),
610
- [o]
611
- ), it = u(
661
+ [s]
662
+ ), mt = u(
612
663
  () => ({
613
664
  year: "numeric",
614
665
  month: "long"
615
666
  }),
616
667
  []
617
- ), at = u(
668
+ ), ft = u(
618
669
  () => ({
619
670
  weekday: "short"
620
671
  }),
621
672
  []
622
- ), ot = u(
673
+ ), pt = u(
623
674
  () => ({
624
675
  hour: "numeric",
625
676
  minute: "2-digit"
626
677
  }),
627
678
  []
628
- ), st = u(
679
+ ), vt = u(
629
680
  () => ({
630
- hour: "numeric",
631
- minute: "2-digit"
681
+ hour: "2-digit",
682
+ minute: "2-digit",
683
+ /* 24-hour axis — matches the event cards' range text (hour12
684
+ false there too) and the platform's EU clock. */
685
+ hour12: !1
632
686
  }),
633
687
  []
634
- ), De = u(
635
- () => typeof j == "number" ? { minutes: j } : j,
636
- [j]
637
- ), Y = u(
688
+ ), ht = g(
689
+ (e) => {
690
+ const t = new Intl.DateTimeFormat(S, {
691
+ weekday: "short"
692
+ }).format(e.date);
693
+ if (e.view.type === "dayGridMonth" || e.view.type.startsWith("list"))
694
+ return t;
695
+ const r = new Intl.DateTimeFormat(S, {
696
+ day: "numeric"
697
+ }).format(e.date);
698
+ return /* @__PURE__ */ E("span", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-2xs)] ds:py-[var(--spacing-2xs)]", children: [
699
+ /* @__PURE__ */ l("span", { className: "type-eyebrow ds:text-[color:var(--muted-foreground)]", children: t }),
700
+ /* @__PURE__ */ l(
701
+ "span",
702
+ {
703
+ className: e.isToday ? "ds:flex ds:size-7 ds:items-center ds:justify-center ds:rounded-full ds:bg-[var(--primary)] ds:text-[length:var(--font-size-sm)] ds:font-[var(--font-weight-semibold)] ds:leading-none ds:text-[color:var(--primary-foreground)]" : "ds:text-[length:var(--font-size-sm)] ds:font-[var(--font-weight-semibold)] ds:leading-none",
704
+ children: r
705
+ }
706
+ )
707
+ ] });
708
+ },
709
+ [S]
710
+ ), Ee = u(
711
+ () => typeof _ == "number" ? { minutes: _ } : _,
712
+ [_]
713
+ ), ue = u(
638
714
  () => N ? N.split(/\s+/).filter(Boolean) : void 0,
639
715
  [N]
640
- ), dt = u(() => {
641
- if (W !== void 0)
642
- return W === "chairs" ? m("calendar.resourceLabel.chairs") : W === "operators" ? m("calendar.resourceLabel.operators") : W;
643
- }, [W, m]), X = u(
644
- () => Qt(s, ie),
645
- [s, ie]
646
- ), M = p(X);
647
- M.current = X;
648
- const oe = p(!1), ct = y(
716
+ ), gt = u(() => {
717
+ if (j !== void 0)
718
+ return j === "chairs" ? m("calendar.resourceLabel.chairs") : j === "operators" ? m("calendar.resourceLabel.operators") : j;
719
+ }, [j, m]), re = u(
720
+ () => hr(o, oe),
721
+ [o, oe]
722
+ ), M = p(re);
723
+ M.current = re;
724
+ const me = p(!1), yt = g(
649
725
  (e) => {
650
726
  const t = M.current;
651
727
  if (!t.active || !e.view.type.startsWith("resourceTimeGrid"))
652
728
  return [];
653
729
  const r = e.resource;
654
730
  return r != null && r.id ? t.hiddenCells.has(
655
- `${r.id}:${ue(e.date)}`
656
- ) ? [le] : [] : [];
731
+ `${r.id}:${ge(e.date)}`
732
+ ) ? [he] : [] : [];
657
733
  },
658
734
  []
659
- ), lt = y(
735
+ ), bt = g(
660
736
  (e) => {
661
737
  const t = M.current;
662
738
  if (!t.active || !e.view.type.startsWith("resourceTimeGrid"))
663
739
  return [];
664
740
  const r = e.date ?? e.view.currentStart;
665
741
  return t.hiddenCells.has(
666
- `${e.resource.id}:${ue(r)}`
667
- ) ? [le] : [];
742
+ `${e.resource.id}:${ge(r)}`
743
+ ) ? [he] : [];
668
744
  },
669
745
  []
670
- ), ut = y(
746
+ ), Tt = g(
671
747
  (e) => {
672
748
  const t = M.current;
673
- return !t.active || !e.view.type.startsWith("resourceTimeGrid") ? [] : (t.hiddenCountByDate.get(ue(e.date)) ?? 0) >= t.resourceCount ? [le] : [];
749
+ return !t.active || !e.view.type.startsWith("resourceTimeGrid") ? [] : (t.hiddenCountByDate.get(ge(e.date)) ?? 0) >= t.resourceCount ? [he] : [];
674
750
  },
675
751
  []
676
- ), mt = y((e) => {
752
+ ), xt = g((e) => {
677
753
  const t = M.current;
678
754
  if (!t.active || !e.view.type.startsWith("resourceTimeGrid"))
679
755
  return;
680
756
  const r = e.el;
681
757
  if (!(r instanceof HTMLTableCellElement) || !r.classList.contains("fc-day")) return;
682
- const a = r.getAttribute("data-date");
683
- if (!a) return;
684
- const i = t.hiddenCountByDate.get(a) ?? 0, c = Math.max(1, t.resourceCount - i);
685
- r.colSpan !== c && (r.colSpan = c, oe.current = !0);
686
- }, []), F = y(() => {
758
+ const i = r.getAttribute("data-date");
759
+ if (!i) return;
760
+ const a = t.hiddenCountByDate.get(i) ?? 0, c = Math.max(1, t.resourceCount - a);
761
+ r.colSpan !== c && (r.colSpan = c, me.current = !0);
762
+ }, []), H = g(() => {
687
763
  const e = R.current;
688
- if (!e || !Te.current.startsWith("resourceTimeGrid")) return;
764
+ if (!e || !Re.current.startsWith("resourceTimeGrid")) return;
689
765
  const t = M.current;
690
- !t.active && !oe.current || (e.querySelectorAll(
766
+ !t.active && !me.current || (e.querySelectorAll(
691
767
  "th.fc-col-header-cell.fc-day[data-date]"
692
768
  ).forEach((r) => {
693
- const a = r.getAttribute("data-date");
694
- if (!a) return;
695
- const i = t.active ? t.hiddenCountByDate.get(a) ?? 0 : 0, c = Math.max(1, t.resourceCount - i);
769
+ const i = r.getAttribute("data-date");
770
+ if (!i) return;
771
+ const a = t.active ? t.hiddenCountByDate.get(i) ?? 0 : 0, c = Math.max(1, t.resourceCount - a);
696
772
  r.colSpan !== c && (r.colSpan = c);
697
- }), oe.current = t.active);
773
+ }), me.current = t.active);
698
774
  }, []);
699
- h(() => {
700
- }, [o, X]);
701
- const J = (e) => {
775
+ v(() => {
776
+ }, [s, re]);
777
+ const B = (e) => {
702
778
  const t = e.extendedProps ?? {};
703
779
  return {
704
780
  id: e.id,
@@ -718,86 +794,105 @@ const Pe = Se(
718
794
  hasHighlightedAnamnesis: t.hasHighlightedAnamnesis,
719
795
  hasBillableAmount: t.hasBillableAmount,
720
796
  isTelehealth: t.isTelehealth,
797
+ isRecurring: t.isRecurring,
721
798
  isRecurrenceParent: t.isRecurrenceParent,
722
799
  isInternal: t.isInternal,
800
+ isTask: t.isTask,
723
801
  editable: t.editable,
724
802
  startEditable: t.startEditable,
725
803
  patientId: t.patientId,
726
804
  operatorId: t.operatorId
727
805
  };
728
- }, ft = u(() => {
729
- if (v)
806
+ }, Dt = u(() => {
807
+ if (h)
730
808
  return (e) => {
809
+ var r, i;
731
810
  if (!e.event.start) return;
732
811
  const t = e.oldEvent.start;
733
- if (t && (v({
734
- event: J(e.event),
812
+ if (t && (h({
813
+ event: B(e.event),
735
814
  oldStart: t,
736
815
  newStart: e.event.start,
816
+ oldResourceId: (r = e.oldResource) == null ? void 0 : r.id,
817
+ newResourceId: (i = e.newResource) == null ? void 0 : i.id,
737
818
  revert: e.revert
738
- }), C.current)) {
739
- const r = e.event.extendedProps ?? {}, a = D ? r.privacyModeTitle ?? "•••" : e.event.title;
740
- C.current.textContent = m("calendar.eventMoved", {
741
- title: a
819
+ }), w.current)) {
820
+ const a = e.event.extendedProps ?? {}, c = y ? a.privacyModeTitle ?? "•••" : e.event.title;
821
+ w.current.textContent = m("calendar.eventMoved", {
822
+ title: c
742
823
  });
743
824
  }
744
825
  };
745
- }, [v, D, m]), pt = u(() => {
746
- if (w)
826
+ }, [h, y, m]), Ct = u(() => {
827
+ if (k)
747
828
  return (e) => {
748
829
  if (!e.event.end) return;
749
830
  const t = e.oldEvent.end;
750
831
  if (!t)
751
832
  return;
752
- const r = e.event.end, a = e.event.start ?? e.oldEvent.start ?? t;
753
- if (w({
754
- event: J(e.event),
833
+ const r = e.event.end, i = e.event.start ?? e.oldEvent.start ?? t;
834
+ if (k({
835
+ event: B(e.event),
755
836
  oldEnd: t,
756
837
  newEnd: r,
757
838
  revert: e.revert
758
- }), C.current) {
759
- const i = Math.round(
760
- (r.getTime() - a.getTime()) / 6e4
761
- ), c = e.event.extendedProps ?? {}, g = D ? c.privacyModeTitle ?? "•••" : e.event.title;
762
- C.current.textContent = m("calendar.eventResized", {
763
- title: g,
764
- duration: i
839
+ }), w.current) {
840
+ const a = Math.round(
841
+ (r.getTime() - i.getTime()) / 6e4
842
+ ), c = e.event.extendedProps ?? {}, b = y ? c.privacyModeTitle ?? "•••" : e.event.title;
843
+ w.current.textContent = m("calendar.eventResized", {
844
+ title: b,
845
+ duration: a
765
846
  });
766
847
  }
767
848
  };
768
- }, [w, D, m]), vt = u(() => {
769
- if (T)
849
+ }, [k, y, m]), wt = u(() => {
850
+ if (x)
770
851
  return (e) => {
771
- e.event.start && (ge.current = e.jsEvent, T(J(e.event), {
852
+ e.event.start && (ke.current = e.jsEvent, x(B(e.event), {
772
853
  el: e.el,
773
854
  jsEvent: e.jsEvent
774
855
  }));
775
856
  };
776
- }, [T]), ht = u(() => {
857
+ }, [x]), kt = u(() => {
777
858
  if (L)
778
859
  return (e) => {
779
860
  var t;
780
- L({
861
+ e.event.start && e.event.display !== "background" && ((t = e.event.extendedProps) != null && t.isDraft || L(B(e.event), {
862
+ el: e.el,
863
+ jsEvent: e.jsEvent
864
+ }));
865
+ };
866
+ }, [L]), It = u(() => {
867
+ if (W)
868
+ return (e) => {
869
+ e.event.start && e.event.display !== "background" && W(B(e.event));
870
+ };
871
+ }, [W]), At = u(() => {
872
+ if (F)
873
+ return (e) => {
874
+ var t;
875
+ F({
781
876
  start: e.start,
782
877
  end: e.end,
783
878
  allDay: e.allDay,
784
879
  resourceId: (t = e.resource) == null ? void 0 : t.id
785
880
  });
786
881
  };
787
- }, [L]), gt = u(() => {
788
- if (x)
882
+ }, [F]), Rt = u(() => {
883
+ if (D)
789
884
  return (e) => {
790
885
  var r;
791
- const t = q.current.id;
792
- t !== 0 && be.current === t || (t !== 0 && (ye.current = t), x({
886
+ const t = ee.current.id;
887
+ t !== 0 && Ae.current === t || (t !== 0 && (Ie.current = t), D({
793
888
  date: e.date,
794
889
  allDay: e.allDay,
795
890
  resourceId: (r = e.resource) == null ? void 0 : r.id
796
891
  }));
797
892
  };
798
- }, [x]), yt = y(
893
+ }, [D]), St = g(
799
894
  (e) => {
800
- tt(e.view.title), rt(e.view.type), k == null || k({
895
+ ct(e.view.title), lt(e.view.type), A == null || A({
801
896
  view: d,
802
897
  internalView: e.view.type,
803
898
  start: e.start,
@@ -806,117 +901,106 @@ const Pe = Se(
806
901
  tick, which fires before fcRef is guaranteed to be assigned. */
807
902
  currentDate: e.view.calendar.getDate(),
808
903
  title: e.view.title
809
- }), F();
904
+ }), H();
810
905
  },
811
- [k, d, F]
812
- ), bt = u(() => Zt(K), [K]), Tt = u(
906
+ [A, d, H]
907
+ ), Et = u(() => vr(S), [S]), Nt = u(
813
908
  () => [
814
- Gt,
815
- Bt,
816
- Lt,
817
- Ft,
818
- Ot,
819
- Wt,
820
- jt,
821
- _t
909
+ $t,
910
+ Kt,
911
+ Ut,
912
+ Qt,
913
+ Yt,
914
+ Xt,
915
+ Jt,
916
+ Zt
822
917
  ],
823
918
  []
824
- ), xt = u(
825
- () => de(d, O),
826
- [d, O]
919
+ ), Pt = u(
920
+ () => pe(d, z),
921
+ [d, z]
827
922
  );
828
- h(() => {
923
+ v(() => {
829
924
  const e = R.current;
830
925
  if (!e) return;
831
926
  const t = (r) => {
832
- q.current = {
833
- id: q.current.id + 1,
927
+ ee.current = {
928
+ id: ee.current.id + 1,
834
929
  x: r.clientX,
835
930
  y: r.clientY
836
931
  };
837
932
  };
838
933
  return e.addEventListener("pointerdown", t, !0), () => e.removeEventListener("pointerdown", t, !0);
839
- }, []), h(() => {
934
+ }, []), v(() => {
840
935
  const e = R.current;
841
- if (!e || !_.startsWith("resourceTimeGrid") || !x && !T) return;
936
+ if (!e || !V.startsWith("resourceTimeGrid") || !D && !x) return;
842
937
  const t = (r) => {
843
- var Ie;
844
- if (r === ge.current) return;
845
- const a = r.target;
846
- if (!(a instanceof Element) || a.closest(
938
+ var K;
939
+ if (r === ke.current) return;
940
+ const i = r.target;
941
+ if (!(i instanceof Element) || i.closest(
847
942
  ".fc-more-link, a[data-navlink], .fc-popover, .fc-event-mirror"
848
943
  ))
849
944
  return;
850
- const i = q.current;
851
- if (i.id !== 0 && (Math.abs(r.clientX - i.x) > ce || Math.abs(r.clientY - i.y) > ce))
945
+ const a = ee.current;
946
+ if (a.id !== 0 && (Math.abs(r.clientX - a.x) > ve || Math.abs(r.clientY - a.y) > ve))
852
947
  return;
853
- const c = a.closest("td.fc-daygrid-day[data-date]");
948
+ const c = i.closest("td.fc-daygrid-day[data-date]");
854
949
  if (!c) return;
855
- const g = a.closest("[data-event-id]");
856
- if (g) {
857
- if (!T) return;
858
- const Ae = g.getAttribute("data-event-id"), se = (Ie = I.current) == null ? void 0 : Ie.getApi(), Q = Ae ? se == null ? void 0 : se.getEventById(Ae) : null;
859
- if (!Q || !Q.start || (Q.extendedProps ?? {}).isInternal) return;
860
- const Rt = a.closest(".fc-event") ?? g;
861
- T(J(Q), { el: Rt, jsEvent: r });
950
+ const b = i.closest("[data-event-id]");
951
+ if (b) {
952
+ if (!x) return;
953
+ const U = b.getAttribute("data-event-id"), fe = (K = C.current) == null ? void 0 : K.getApi(), ne = U ? fe == null ? void 0 : fe.getEventById(U) : null;
954
+ if (!ne || !ne.start) return;
955
+ const Pe = ne.extendedProps ?? {};
956
+ if (Pe.isInternal || Pe.isDraft) return;
957
+ const Vt = i.closest(".fc-event") ?? b;
958
+ x(B(ne), { el: Vt, jsEvent: r });
862
959
  return;
863
960
  }
864
- if (!x || i.id !== 0 && ye.current === i.id)
961
+ if (!D || a.id !== 0 && Ie.current === a.id)
865
962
  return;
866
- const Z = c.getAttribute("data-date");
867
- if (!Z) return;
868
- const we = /* @__PURE__ */ new Date(`${Z}T00:00:00`);
869
- Number.isNaN(we.getTime()) || (i.id !== 0 && (be.current = i.id), x({
870
- date: we,
963
+ const q = c.getAttribute("data-date");
964
+ if (!q) return;
965
+ const $ = /* @__PURE__ */ new Date(`${q}T00:00:00`);
966
+ Number.isNaN($.getTime()) || (a.id !== 0 && (Ae.current = a.id), D({
967
+ date: $,
871
968
  allDay: !0,
872
969
  resourceId: c.getAttribute("data-resource-id") ?? void 0
873
970
  }));
874
971
  };
875
972
  return e.addEventListener("click", t), () => e.removeEventListener("click", t);
876
- }, [_, x, T]);
877
- const Dt = y(
973
+ }, [V, D, x]);
974
+ const Gt = g(
878
975
  (e) => {
879
- const t = e.resource.extendedProps, r = e.resource.title, a = t.shortTitle, i = t.color, c = t.shortTitleTextColor, g = i || c ? {
976
+ const t = e.resource.extendedProps, r = e.resource.title, i = t.color, a = t.shortTitleTextColor, c = i || a ? {
880
977
  ...i ? { "--resource-color": i } : {},
881
- ...c ? {
882
- "--resource-initials-text-color": c
978
+ ...a ? {
979
+ "--resource-initials-text-color": a
883
980
  } : {}
884
981
  } : void 0;
885
- if (he && a && i) {
886
- ke(i, c, `resource ${e.resource.id}`);
887
- const Z = [
888
- "resource-initials",
889
- "ds:[background-color:var(--resource-color)]",
890
- c ? "ds:[color:var(--resource-initials-text-color)]" : null
891
- ].filter(Boolean).join(" ");
892
- return /* @__PURE__ */ G("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
893
- /* @__PURE__ */ l(
894
- "span",
895
- {
896
- className: Z,
897
- style: g,
898
- "aria-hidden": "true",
899
- children: a
900
- }
901
- ),
902
- /* @__PURE__ */ l("span", { className: "ds:truncate ds:text-start", children: r })
903
- ] });
904
- }
905
- return i ? (i && c && ke(i, c, `resource ${e.resource.id}`), /* @__PURE__ */ G("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
982
+ return Ce === "chip" && !de ? /* @__PURE__ */ l(
983
+ ar,
984
+ {
985
+ label: r,
986
+ color: i,
987
+ orientation: ce ? "vertical" : "horizontal"
988
+ }
989
+ ) : de ? /* @__PURE__ */ l(sr, { label: r, children: /* @__PURE__ */ l(ir, { size: "sm", name: r, src: t.avatarSrc }) }) : i ? (i && a && rr(i, a, `resource ${e.resource.id}`), /* @__PURE__ */ E("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
906
990
  /* @__PURE__ */ l(
907
991
  "span",
908
992
  {
909
993
  className: "resource-dot ds:[background-color:var(--resource-color)]",
910
- style: g,
994
+ style: c,
911
995
  "aria-hidden": "true"
912
996
  }
913
997
  ),
914
998
  /* @__PURE__ */ l("span", { className: "ds:truncate ds:text-start", children: r })
915
999
  ] })) : /* @__PURE__ */ l("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: /* @__PURE__ */ l("span", { className: "ds:truncate ds:text-start", children: r }) });
916
1000
  },
917
- [he]
918
- ), Ce = u(
919
- () => s == null ? void 0 : s.map((e) => ({
1001
+ [de, Ce, ce]
1002
+ ), Ne = u(
1003
+ () => o == null ? void 0 : o.map((e) => ({
920
1004
  id: e.id,
921
1005
  title: e.title,
922
1006
  sequenceNumber: e.sequenceNumber,
@@ -924,35 +1008,44 @@ const Pe = Se(
924
1008
  shortTitle: e.shortTitle,
925
1009
  color: e.color,
926
1010
  shortTitleTextColor: e.shortTitleTextColor,
1011
+ avatarSrc: e.avatarSrc,
927
1012
  sequenceNumber: e.sequenceNumber
928
1013
  }
929
1014
  })),
930
- [s]
1015
+ [o]
931
1016
  );
932
- h(() => {
933
- F();
934
- const e = requestAnimationFrame(F);
1017
+ v(() => {
1018
+ H();
1019
+ const e = requestAnimationFrame(H);
935
1020
  return () => cancelAnimationFrame(e);
936
- }, [X, Ce, _, F]);
937
- const Ct = y(() => {
1021
+ }, [re, Ne, V, H]);
1022
+ const Mt = g(() => {
938
1023
  var e, t;
939
- (t = (e = I.current) == null ? void 0 : e.getApi()) == null || t.today();
940
- }, []), wt = y(() => {
1024
+ (t = (e = C.current) == null ? void 0 : e.getApi()) == null || t.today();
1025
+ }, []), Bt = g(() => {
941
1026
  var e, t;
942
- (t = (e = I.current) == null ? void 0 : e.getApi()) == null || t.prev();
943
- }, []), It = y(() => {
1027
+ (t = (e = C.current) == null ? void 0 : e.getApi()) == null || t.prev();
1028
+ }, []), Ot = g(() => {
944
1029
  var e, t;
945
- (t = (e = I.current) == null ? void 0 : e.getApi()) == null || t.next();
946
- }, []), At = [
1030
+ (t = (e = C.current) == null ? void 0 : e.getApi()) == null || t.next();
1031
+ }, []), Lt = u(
1032
+ () => s.some((e) => e.isDraft),
1033
+ [s]
1034
+ ), Wt = [
947
1035
  "fc-theme-alfadocs",
948
- Xe ? "calendar-zebra-rows" : null,
1036
+ it ? "calendar-zebra-rows" : null,
1037
+ ce ? "calendar-vertical-resource-labels" : null,
1038
+ rt ? "calendar-availability-mode" : null,
1039
+ /* Composing: derived from the events themselves rather than a prop,
1040
+ so the dim can never disagree with what is on the grid. */
1041
+ Lt ? "calendar-composing-mode" : null,
949
1042
  "ds:bg-background ds:text-foreground",
950
1043
  "ds:rounded-[var(--radius-md)]",
951
- Ge
952
- ].filter(Boolean).join(" "), kt = $ || z ? {
953
- ...$ ? { "--calendar-mode-bg": $ } : {},
954
- ...z ? { "--calendar-mode-fg": z } : {}
955
- } : void 0, Et = H !== "default" ? Le ?? m(Jt[H]) : "", Nt = [
1044
+ je
1045
+ ].filter(Boolean).join(" "), Ft = Z || Q ? {
1046
+ ...Z ? { "--calendar-mode-bg": Z } : {},
1047
+ ...Q ? { "--calendar-mode-fg": Q } : {}
1048
+ } : void 0, zt = J !== "default" ? Ve ?? m(pr[J]) : "", jt = [
956
1049
  "ds:sticky ds:top-0 ds:z-10",
957
1050
  "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
958
1051
  "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
@@ -960,9 +1053,9 @@ const Pe = Se(
960
1053
  /* Caller-supplied colours flow through CSS custom properties set
961
1054
  in `modeBannerStyle`; fallback tokens apply when the caller
962
1055
  doesn't supply a hex. */
963
- $ ? "ds:[background-color:var(--calendar-mode-bg)]" : "ds:bg-[var(--muted)]",
964
- z ? "ds:[color:var(--calendar-mode-fg)]" : "ds:text-[var(--muted-foreground)]"
965
- ].filter(Boolean).join(" "), St = [
1056
+ Z ? "ds:[background-color:var(--calendar-mode-bg)]" : "ds:bg-[var(--muted)]",
1057
+ Q ? "ds:[color:var(--calendar-mode-fg)]" : "ds:text-[var(--muted-foreground)]"
1058
+ ].filter(Boolean).join(" "), _t = [
966
1059
  "ds:inline-flex ds:items-center ds:justify-center",
967
1060
  "ds:min-h-[var(--min-target-size)]",
968
1061
  "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
@@ -977,127 +1070,141 @@ const Pe = Se(
977
1070
  "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
978
1071
  "ds:motion-reduce:transition-none"
979
1072
  ].join(" ");
980
- return /* @__PURE__ */ G(
1073
+ return /* @__PURE__ */ E(
981
1074
  "div",
982
1075
  {
983
1076
  ref: R,
984
- className: At,
1077
+ className: Wt,
985
1078
  role: "region",
986
1079
  "aria-label": m("calendar.ariaLabel"),
987
1080
  "data-component": "calendar",
988
1081
  "data-component-id": n,
989
- "data-mode": H,
1082
+ "data-mode": J,
990
1083
  children: [
991
1084
  /* @__PURE__ */ l(
992
1085
  "div",
993
1086
  {
994
- ref: C,
1087
+ ref: w,
995
1088
  "aria-live": "polite",
996
1089
  "aria-atomic": "true",
997
1090
  className: ["ds:sr-only", N].filter(Boolean).join(" ")
998
1091
  }
999
1092
  ),
1000
- Oe,
1001
- H !== "default" ? /* @__PURE__ */ G(
1093
+ He,
1094
+ J !== "default" ? /* @__PURE__ */ E(
1002
1095
  "div",
1003
1096
  {
1004
- className: Nt,
1005
- style: kt,
1097
+ className: jt,
1098
+ style: Ft,
1006
1099
  role: "status",
1007
1100
  children: [
1008
1101
  /* @__PURE__ */ l(
1009
1102
  "span",
1010
1103
  {
1011
1104
  className: ["ds:flex-1 ds:text-start", N].filter(Boolean).join(" "),
1012
- children: Et
1105
+ children: zt
1013
1106
  }
1014
1107
  ),
1015
- pe ? /* @__PURE__ */ l(
1108
+ Te ? /* @__PURE__ */ l(
1016
1109
  "button",
1017
1110
  {
1018
1111
  type: "button",
1019
- onClick: pe,
1020
- className: St,
1112
+ onClick: Te,
1113
+ className: _t,
1021
1114
  children: m("calendar.modeBanner.cancel")
1022
1115
  }
1023
1116
  ) : null
1024
1117
  ]
1025
1118
  }
1026
1119
  ) : null,
1027
- Ke !== !1 ? /* @__PURE__ */ l(
1028
- fe,
1120
+ et !== !1 ? /* @__PURE__ */ l(
1121
+ be,
1029
1122
  {
1030
- title: et,
1031
- onToday: Ct,
1032
- onPrev: wt,
1033
- onNext: It,
1034
- end: Ue,
1123
+ title: dt,
1124
+ onToday: Mt,
1125
+ onPrev: Bt,
1126
+ onNext: Ot,
1127
+ end: tt,
1035
1128
  maskClassName: N
1036
1129
  }
1037
1130
  ) : null,
1038
1131
  /* @__PURE__ */ l(
1039
- Mt,
1132
+ qt,
1040
1133
  {
1041
- ref: I,
1042
- plugins: Tt,
1043
- schedulerLicenseKey: qe,
1044
- initialView: xt,
1045
- views: Xt,
1134
+ ref: C,
1135
+ plugins: Nt,
1136
+ schedulerLicenseKey: Qe,
1137
+ initialView: Pt,
1138
+ views: fr,
1046
1139
  initialDate: f,
1047
- locale: K,
1048
- direction: Ze,
1049
- firstDay: bt,
1050
- editable: E,
1051
- eventDurationEditable: re ?? E,
1052
- selectable: ne,
1053
- droppable: E,
1054
- dayMaxEvents: ze,
1055
- height: Me,
1056
- events: nt,
1057
- resources: Ce,
1140
+ locale: S,
1141
+ direction: st,
1142
+ firstDay: Et,
1143
+ editable: se,
1144
+ eventDurationEditable: We ?? se,
1145
+ selectable: Fe,
1146
+ droppable: se,
1147
+ dayMaxEvents: Ze,
1148
+ height: ze,
1149
+ expandRows: !0,
1150
+ events: ut,
1151
+ resources: Ne,
1058
1152
  resourceOrder: "sequenceNumber",
1059
- resourceLabelContent: Dt,
1060
- resourceAreaWidth: Ye,
1061
- resourceAreaHeaderContent: dt,
1062
- dayCellClassNames: ct,
1063
- dayHeaderClassNames: ut,
1064
- resourceLabelClassNames: lt,
1065
- dayHeaderDidMount: mt,
1066
- ...Y ? { slotLaneClassNames: Y } : {},
1067
- ...Y ? { eventClassNames: Y } : {},
1153
+ resourceLabelContent: Gt,
1154
+ resourceAreaWidth: nt,
1155
+ resourceAreaHeaderContent: gt,
1156
+ dayCellClassNames: yt,
1157
+ dayHeaderClassNames: Tt,
1158
+ resourceLabelClassNames: bt,
1159
+ dayHeaderDidMount: xt,
1160
+ ...ue ? { slotLaneClassNames: ue } : {},
1161
+ eventClassNames: (e) => {
1162
+ var t;
1163
+ return [
1164
+ ...ue ?? [],
1165
+ ...we && e.event.id === we ? ["calendar-event-selected"] : [],
1166
+ ...(t = e.event.extendedProps) != null && t.isDraft ? ["calendar-event-draft"] : []
1167
+ ];
1168
+ },
1068
1169
  headerToolbar: !1,
1069
1170
  allDayText: m("calendar.allDay"),
1070
1171
  noEventsText: m("calendar.noEvents"),
1071
- titleFormat: it,
1072
- dayHeaderFormat: at,
1073
- eventTimeFormat: ot,
1074
- slotLabelFormat: st,
1075
- slotMinTime: We ?? "00:00:00",
1076
- slotMaxTime: je ?? "24:00:00",
1077
- slotDuration: _e ?? "00:30:00",
1172
+ titleFormat: mt,
1173
+ dayHeaderFormat: ft,
1174
+ dayHeaderContent: ht,
1175
+ eventTimeFormat: pt,
1176
+ slotLabelFormat: vt,
1177
+ slotMinTime: qe ?? "00:00:00",
1178
+ slotMaxTime: $e ?? "24:00:00",
1179
+ slotDuration: Ke ?? "00:30:00",
1180
+ ...De ? { snapDuration: De } : {},
1078
1181
  slotLabelInterval: "01:00:00",
1079
- ...De !== void 0 ? { defaultTimedEventDuration: De } : {},
1080
- hiddenDays: ve,
1081
- datesAboveResources: ie,
1082
- slotEventOverlap: Ve,
1083
- stickyHeaderDates: He,
1084
- nowIndicator: $e,
1085
- eventLongPressDelay: U ? 0 : 1e3,
1086
- eventDragMinDistance: U ? 0 : ce,
1182
+ ...Ee !== void 0 ? { defaultTimedEventDuration: Ee } : {},
1183
+ hiddenDays: xe,
1184
+ datesAboveResources: oe,
1185
+ slotEventOverlap: Ye,
1186
+ stickyHeaderDates: Xe,
1187
+ nowIndicator: Je,
1188
+ eventLongPressDelay: te ? 0 : 1e3,
1189
+ eventDragMinDistance: te ? 0 : ve,
1087
1190
  eventContent: (e) => {
1088
1191
  var r;
1089
1192
  const t = e.event.extendedProps ?? {};
1090
- return /* @__PURE__ */ l(
1091
- $t,
1193
+ return t.isInternal ? e.event.title ? /* @__PURE__ */ E("span", { className: "calendar-bg-event-label", children: [
1194
+ /* @__PURE__ */ l(or, { size: 12, "aria-hidden": "true" }),
1195
+ e.event.title
1196
+ ] }) : !0 : /* @__PURE__ */ l(
1197
+ nr,
1092
1198
  {
1093
1199
  eventId: e.event.id,
1094
- title: D ? t.privacyModeTitle ?? "•••" : e.event.title,
1200
+ title: y ? t.privacyModeTitle ?? "•••" : e.event.title,
1201
+ privacyMasked: y,
1095
1202
  suffix: t.suffix,
1096
- rangeText: tr(e, K),
1097
- showTime: Fe,
1203
+ rangeText: yr(e, S),
1204
+ showTime: Ue,
1098
1205
  allDay: e.event.allDay,
1099
1206
  status: t.status,
1100
- statusAccent: Be,
1207
+ colorStyle: _e,
1101
1208
  backgroundColor: t.backgroundColor,
1102
1209
  textColor: t.textColor,
1103
1210
  borderColor: t.borderColor,
@@ -1106,18 +1213,27 @@ const Pe = Se(
1106
1213
  hasHighlightedAnamnesis: t.hasHighlightedAnamnesis,
1107
1214
  hasBillableAmount: t.hasBillableAmount,
1108
1215
  isTelehealth: t.isTelehealth,
1109
- resourceLabel: t.resourceId ? (r = (s ?? []).find((a) => a.id === t.resourceId)) == null ? void 0 : r.title : void 0
1216
+ isRecurring: t.isRecurring,
1217
+ isTask: t.isTask,
1218
+ isDraft: t.isDraft,
1219
+ resourceLabel: t.resourceId ? (r = (o ?? []).find((i) => i.id === t.resourceId)) == null ? void 0 : r.title : void 0
1110
1220
  }
1111
1221
  );
1112
1222
  },
1113
- eventClick: vt,
1114
- eventDrop: ft,
1115
- eventResize: pt,
1116
- eventDragStart: B,
1117
- eventResizeStart: V,
1118
- select: ht,
1119
- dateClick: gt,
1120
- datesSet: yt
1223
+ eventClick: wt,
1224
+ eventMouseEnter: kt,
1225
+ eventMouseLeave: It,
1226
+ eventDrop: Dt,
1227
+ eventResize: Ct,
1228
+ eventDragStart: O,
1229
+ eventResizeStart: Y,
1230
+ select: At,
1231
+ dateClick: Rt,
1232
+ datesSet: St,
1233
+ ...X ? {
1234
+ navLinks: !0,
1235
+ navLinkDayClick: (e, t) => X(e, t)
1236
+ } : {}
1121
1237
  }
1122
1238
  )
1123
1239
  ]
@@ -1125,12 +1241,12 @@ const Pe = Se(
1125
1241
  );
1126
1242
  }
1127
1243
  );
1128
- Pe.displayName = "Calendar";
1129
- const ir = Pe;
1130
- ir.Toolbar = fe;
1244
+ Le.displayName = "Calendar";
1245
+ const xr = Le;
1246
+ xr.Toolbar = be;
1131
1247
  export {
1132
- ir as C,
1133
- zt as c,
1134
- de as r
1248
+ xr as C,
1249
+ dr as c,
1250
+ pe as r
1135
1251
  };
1136
- //# sourceMappingURL=calendar-4dXTvsCz.js.map
1252
+ //# sourceMappingURL=calendar-B4Gnyu1C.js.map