@alfadocs/ui-kit-debug 0.89.0 → 0.94.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 (217) hide show
  1. package/dist/_chunks/{antenatal-schedule-timeline-UiZQze4P.js → antenatal-schedule-timeline-BMMpi2lb.js} +17 -17
  2. package/dist/_chunks/{antenatal-schedule-timeline-UiZQze4P.js.map → antenatal-schedule-timeline-BMMpi2lb.js.map} +1 -1
  3. package/dist/_chunks/apexcharts-theme-fAQXLIMW.js +67 -0
  4. package/dist/_chunks/apexcharts-theme-fAQXLIMW.js.map +1 -0
  5. package/dist/_chunks/{appointment-timeline-CwpbQGC1.js → appointment-timeline-BB-c1LeR.js} +2 -2
  6. package/dist/_chunks/{appointment-timeline-CwpbQGC1.js.map → appointment-timeline-BB-c1LeR.js.map} +1 -1
  7. package/dist/_chunks/{ar-C9FRRqJs.js → ar-THMLfSoN.js} +22 -22
  8. package/dist/_chunks/{ar-C9FRRqJs.js.map → ar-THMLfSoN.js.map} +1 -1
  9. package/dist/_chunks/{booking-DEwmDprH.js → booking-BSpSMmJ2.js} +4 -4
  10. package/dist/_chunks/{booking-DEwmDprH.js.map → booking-BSpSMmJ2.js.map} +1 -1
  11. package/dist/_chunks/{chart-CNaLgvx4.js → chart-DqxVCm1I.js} +288 -257
  12. package/dist/_chunks/chart-DqxVCm1I.js.map +1 -0
  13. package/dist/_chunks/{cycle-calculator-DXSNIWFk.js → cycle-calculator-DNvvr0bP.js} +3 -3
  14. package/dist/_chunks/{cycle-calculator-DXSNIWFk.js.map → cycle-calculator-DNvvr0bP.js.map} +1 -1
  15. package/dist/_chunks/date-picker-BP_W6VtE.js +265 -0
  16. package/dist/_chunks/date-picker-BP_W6VtE.js.map +1 -0
  17. package/dist/_chunks/{date-picker-variants-D9B6hg15.js → date-picker-variants-eL6HjWvw.js} +966 -841
  18. package/dist/_chunks/{date-picker-variants-D9B6hg15.js.map → date-picker-variants-eL6HjWvw.js.map} +1 -1
  19. package/dist/_chunks/date-range-picker-Cfv4Sr63.js +832 -0
  20. package/dist/_chunks/date-range-picker-Cfv4Sr63.js.map +1 -0
  21. package/dist/_chunks/{date-time-picker-BU-j0qj4.js → date-time-picker-695QvBGj.js} +2 -2
  22. package/dist/_chunks/{date-time-picker-BU-j0qj4.js.map → date-time-picker-695QvBGj.js.map} +1 -1
  23. package/dist/_chunks/{de-C3_KZ6mR.js → de-DmZ-8rTN.js} +4 -4
  24. package/dist/_chunks/{de-C3_KZ6mR.js.map → de-DmZ-8rTN.js.map} +1 -1
  25. package/dist/_chunks/{due-date-calculator-BR_GuqHH.js → due-date-calculator-BEcdoy_E.js} +3 -3
  26. package/dist/_chunks/{due-date-calculator-BR_GuqHH.js.map → due-date-calculator-BEcdoy_E.js.map} +1 -1
  27. package/dist/_chunks/{el-v9xDKHgu.js → el-Bela9mxs.js} +6 -6
  28. package/dist/_chunks/{el-v9xDKHgu.js.map → el-Bela9mxs.js.map} +1 -1
  29. package/dist/_chunks/{es-Lgmjq9Rp.js → es-BNncHKex.js} +10 -10
  30. package/dist/_chunks/{es-Lgmjq9Rp.js.map → es-BNncHKex.js.map} +1 -1
  31. package/dist/_chunks/{fr-INS1OD7m.js → fr-CH8ADfhN.js} +12 -12
  32. package/dist/_chunks/{fr-INS1OD7m.js.map → fr-CH8ADfhN.js.map} +1 -1
  33. package/dist/_chunks/{gestational-age-calculator-DBIcxfjP.js → gestational-age-calculator-CuGkVqKp.js} +5 -5
  34. package/dist/_chunks/{gestational-age-calculator-DBIcxfjP.js.map → gestational-age-calculator-CuGkVqKp.js.map} +1 -1
  35. package/dist/_chunks/{hcg-doubling-BgCkds8R.js → hcg-doubling-fZ6qQN08.js} +2 -2
  36. package/dist/_chunks/{hcg-doubling-BgCkds8R.js.map → hcg-doubling-fZ6qQN08.js.map} +1 -1
  37. package/dist/_chunks/{hi-BUYtlosF.js → hi-Bppfxp8l.js} +16 -16
  38. package/dist/_chunks/{hi-BUYtlosF.js.map → hi-Bppfxp8l.js.map} +1 -1
  39. package/dist/_chunks/{isSameWeek-BUNsv4OO.js → isSameWeek-CK4HS9lH.js} +2 -2
  40. package/dist/_chunks/{isSameWeek-BUNsv4OO.js.map → isSameWeek-CK4HS9lH.js.map} +1 -1
  41. package/dist/_chunks/{it-VfsdUqeV.js → it-B4ySaRyK.js} +24 -24
  42. package/dist/_chunks/{it-VfsdUqeV.js.map → it-B4ySaRyK.js.map} +1 -1
  43. package/dist/_chunks/{ja-Dfk9qwzE.js → ja-CGF6Io9P.js} +12 -12
  44. package/dist/_chunks/{ja-Dfk9qwzE.js.map → ja-CGF6Io9P.js.map} +1 -1
  45. package/dist/_chunks/{link-cell-renderer-BzITwSXq.js → link-cell-renderer-_LDZhY4r.js} +214 -197
  46. package/dist/_chunks/link-cell-renderer-_LDZhY4r.js.map +1 -0
  47. package/dist/_chunks/{nl-Crxwg0IZ.js → nl-DuShqwuV.js} +12 -12
  48. package/dist/_chunks/{nl-Crxwg0IZ.js.map → nl-DuShqwuV.js.map} +1 -1
  49. package/dist/_chunks/parse-DvA97ro9.js +1601 -0
  50. package/dist/_chunks/parse-DvA97ro9.js.map +1 -0
  51. package/dist/_chunks/{patient-details-Dggsz-ki.js → patient-details-DrhlTrLf.js} +2 -2
  52. package/dist/_chunks/{patient-details-Dggsz-ki.js.map → patient-details-DrhlTrLf.js.map} +1 -1
  53. package/dist/_chunks/{patient-table-ps4byVwA.js → patient-table-CFM92QqU.js} +2 -2
  54. package/dist/_chunks/{patient-table-ps4byVwA.js.map → patient-table-CFM92QqU.js.map} +1 -1
  55. package/dist/_chunks/{pl-IdHtxWTl.js → pl-CKQwX9Fk.js} +22 -22
  56. package/dist/_chunks/{pl-IdHtxWTl.js.map → pl-CKQwX9Fk.js.map} +1 -1
  57. package/dist/_chunks/{pregnancy-dating-CvIRwWaG.js → pregnancy-dating-BdFl-rB1.js} +5 -5
  58. package/dist/_chunks/{pregnancy-dating-CvIRwWaG.js.map → pregnancy-dating-BdFl-rB1.js.map} +1 -1
  59. package/dist/_chunks/{pt-CY2m2bBz.js → pt-_njpXyOZ.js} +16 -16
  60. package/dist/_chunks/{pt-CY2m2bBz.js.map → pt-_njpXyOZ.js.map} +1 -1
  61. package/dist/_chunks/{radiograph-panel.agent-C93AXgtV.js → radiograph-panel.agent-DDnDGVpN.js} +3 -3
  62. package/dist/_chunks/{radiograph-panel.agent-C93AXgtV.js.map → radiograph-panel.agent-DDnDGVpN.js.map} +1 -1
  63. package/dist/_chunks/{ro-qoxLkXED.js → ro-3X6_4FcN.js} +14 -14
  64. package/dist/_chunks/{ro-qoxLkXED.js.map → ro-3X6_4FcN.js.map} +1 -1
  65. package/dist/_chunks/{ru-BVZlxoKf.js → ru-bAcgmnS-.js} +20 -20
  66. package/dist/_chunks/{ru-BVZlxoKf.js.map → ru-bAcgmnS-.js.map} +1 -1
  67. package/dist/_chunks/{sparkline-iOXYgvJe.js → sparkline-o6JH4O66.js} +2 -2
  68. package/dist/_chunks/{sparkline-iOXYgvJe.js.map → sparkline-o6JH4O66.js.map} +1 -1
  69. package/dist/_chunks/{sq--eT8hIiD.js → sq-jYFqr4Ga.js} +6 -6
  70. package/dist/_chunks/{sq--eT8hIiD.js.map → sq-jYFqr4Ga.js.map} +1 -1
  71. package/dist/_chunks/subDays-BcNi04uf.js +8 -0
  72. package/dist/_chunks/{subDays-fEHRx4hg.js.map → subDays-BcNi04uf.js.map} +1 -1
  73. package/dist/_chunks/{sv-BGNQ5gX6.js → sv-BSGEJ-8B.js} +10 -10
  74. package/dist/_chunks/{sv-BGNQ5gX6.js.map → sv-BSGEJ-8B.js.map} +1 -1
  75. package/dist/_chunks/{tr-B2NEu6Gy.js → tr-CTpgUtw6.js} +14 -14
  76. package/dist/_chunks/{tr-B2NEu6Gy.js.map → tr-CTpgUtw6.js.map} +1 -1
  77. package/dist/_chunks/{zh-CN-DClT1wDk.js → zh-CN-BgM0Io2O.js} +22 -22
  78. package/dist/_chunks/{zh-CN-DClT1wDk.js.map → zh-CN-BgM0Io2O.js.map} +1 -1
  79. package/dist/agent-catalog.json +101 -2
  80. package/dist/agent-i18n/en.json +8 -2
  81. package/dist/components/_shared/calendar-class-names.d.ts +5 -0
  82. package/dist/components/_shared/calendar-class-names.d.ts.map +1 -1
  83. package/dist/components/_shared/date-picker-variants.d.ts +23 -1
  84. package/dist/components/_shared/date-picker-variants.d.ts.map +1 -1
  85. package/dist/components/_shared/index.d.ts +2 -2
  86. package/dist/components/_shared/index.d.ts.map +1 -1
  87. package/dist/components/appointment-timeline/index.js +1 -1
  88. package/dist/components/booking/index.js +1 -1
  89. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  90. package/dist/components/chart/chart.d.ts +20 -0
  91. package/dist/components/chart/chart.d.ts.map +1 -1
  92. package/dist/components/chart/index.js +1 -1
  93. package/dist/components/cycle-calculator/index.js +1 -1
  94. package/dist/components/data-table/filters/date-range-filter.d.ts +13 -0
  95. package/dist/components/data-table/filters/date-range-filter.d.ts.map +1 -1
  96. package/dist/components/data-table/index.js +1 -1
  97. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  98. package/dist/components/date-picker/index.js +1 -1
  99. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  100. package/dist/components/date-range-picker/date-range-picker.d.ts +91 -1
  101. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  102. package/dist/components/date-range-picker/index.d.ts +1 -1
  103. package/dist/components/date-range-picker/index.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/patient-details/index.js +1 -1
  110. package/dist/components/patient-table/index.js +1 -1
  111. package/dist/components/pregnancy-dating/index.js +1 -1
  112. package/dist/components/radiograph-panel/index.js +1 -1
  113. package/dist/components/sparkline/index.js +1 -1
  114. package/dist/i18n/locales/ar.d.ts +24 -0
  115. package/dist/i18n/locales/ar.d.ts.map +1 -1
  116. package/dist/i18n/locales/ar.js +24 -0
  117. package/dist/i18n/locales/ar.js.map +1 -1
  118. package/dist/i18n/locales/de.d.ts +24 -0
  119. package/dist/i18n/locales/de.d.ts.map +1 -1
  120. package/dist/i18n/locales/de.js +24 -0
  121. package/dist/i18n/locales/de.js.map +1 -1
  122. package/dist/i18n/locales/el.d.ts +24 -0
  123. package/dist/i18n/locales/el.d.ts.map +1 -1
  124. package/dist/i18n/locales/el.js +24 -0
  125. package/dist/i18n/locales/el.js.map +1 -1
  126. package/dist/i18n/locales/en.d.ts +24 -0
  127. package/dist/i18n/locales/en.d.ts.map +1 -1
  128. package/dist/i18n/locales/en.js +24 -0
  129. package/dist/i18n/locales/en.js.map +1 -1
  130. package/dist/i18n/locales/es.d.ts +24 -0
  131. package/dist/i18n/locales/es.d.ts.map +1 -1
  132. package/dist/i18n/locales/es.js +24 -0
  133. package/dist/i18n/locales/es.js.map +1 -1
  134. package/dist/i18n/locales/fr.d.ts +24 -0
  135. package/dist/i18n/locales/fr.d.ts.map +1 -1
  136. package/dist/i18n/locales/fr.js +24 -0
  137. package/dist/i18n/locales/fr.js.map +1 -1
  138. package/dist/i18n/locales/hi.d.ts +24 -0
  139. package/dist/i18n/locales/hi.d.ts.map +1 -1
  140. package/dist/i18n/locales/hi.js +24 -0
  141. package/dist/i18n/locales/hi.js.map +1 -1
  142. package/dist/i18n/locales/it.d.ts +24 -0
  143. package/dist/i18n/locales/it.d.ts.map +1 -1
  144. package/dist/i18n/locales/it.js +24 -0
  145. package/dist/i18n/locales/it.js.map +1 -1
  146. package/dist/i18n/locales/ja.d.ts +24 -0
  147. package/dist/i18n/locales/ja.d.ts.map +1 -1
  148. package/dist/i18n/locales/ja.js +24 -0
  149. package/dist/i18n/locales/ja.js.map +1 -1
  150. package/dist/i18n/locales/nl.d.ts +24 -0
  151. package/dist/i18n/locales/nl.d.ts.map +1 -1
  152. package/dist/i18n/locales/nl.js +24 -0
  153. package/dist/i18n/locales/nl.js.map +1 -1
  154. package/dist/i18n/locales/pl.d.ts +24 -0
  155. package/dist/i18n/locales/pl.d.ts.map +1 -1
  156. package/dist/i18n/locales/pl.js +24 -0
  157. package/dist/i18n/locales/pl.js.map +1 -1
  158. package/dist/i18n/locales/pt.d.ts +24 -0
  159. package/dist/i18n/locales/pt.d.ts.map +1 -1
  160. package/dist/i18n/locales/pt.js +24 -0
  161. package/dist/i18n/locales/pt.js.map +1 -1
  162. package/dist/i18n/locales/ro.d.ts +24 -0
  163. package/dist/i18n/locales/ro.d.ts.map +1 -1
  164. package/dist/i18n/locales/ro.js +24 -0
  165. package/dist/i18n/locales/ro.js.map +1 -1
  166. package/dist/i18n/locales/ru.d.ts +24 -0
  167. package/dist/i18n/locales/ru.d.ts.map +1 -1
  168. package/dist/i18n/locales/ru.js +24 -0
  169. package/dist/i18n/locales/ru.js.map +1 -1
  170. package/dist/i18n/locales/sq.d.ts +24 -0
  171. package/dist/i18n/locales/sq.d.ts.map +1 -1
  172. package/dist/i18n/locales/sq.js +24 -0
  173. package/dist/i18n/locales/sq.js.map +1 -1
  174. package/dist/i18n/locales/sv.d.ts +24 -0
  175. package/dist/i18n/locales/sv.d.ts.map +1 -1
  176. package/dist/i18n/locales/sv.js +24 -0
  177. package/dist/i18n/locales/sv.js.map +1 -1
  178. package/dist/i18n/locales/tr.d.ts +24 -0
  179. package/dist/i18n/locales/tr.d.ts.map +1 -1
  180. package/dist/i18n/locales/tr.js +24 -0
  181. package/dist/i18n/locales/tr.js.map +1 -1
  182. package/dist/i18n/locales/zh.d.ts +24 -0
  183. package/dist/i18n/locales/zh.d.ts.map +1 -1
  184. package/dist/i18n/locales/zh.js +24 -0
  185. package/dist/i18n/locales/zh.js.map +1 -1
  186. package/dist/index.js +17 -17
  187. package/dist/locales/ar.json +24 -0
  188. package/dist/locales/de.json +24 -0
  189. package/dist/locales/el.json +24 -0
  190. package/dist/locales/en.json +24 -0
  191. package/dist/locales/es.json +24 -0
  192. package/dist/locales/fr.json +24 -0
  193. package/dist/locales/hi.json +24 -0
  194. package/dist/locales/it.json +24 -0
  195. package/dist/locales/ja.json +24 -0
  196. package/dist/locales/nl.json +24 -0
  197. package/dist/locales/pl.json +24 -0
  198. package/dist/locales/pt.json +24 -0
  199. package/dist/locales/ro.json +24 -0
  200. package/dist/locales/ru.json +24 -0
  201. package/dist/locales/sq.json +24 -0
  202. package/dist/locales/sv.json +24 -0
  203. package/dist/locales/tr.json +24 -0
  204. package/dist/locales/zh.json +24 -0
  205. package/dist/tokens/apexcharts-theme.d.ts +36 -1
  206. package/dist/tokens/apexcharts-theme.d.ts.map +1 -1
  207. package/dist/tokens.css +1 -1
  208. package/package.json +1 -1
  209. package/dist/_chunks/apexcharts-theme-BJigns_V.js +0 -53
  210. package/dist/_chunks/apexcharts-theme-BJigns_V.js.map +0 -1
  211. package/dist/_chunks/chart-CNaLgvx4.js.map +0 -1
  212. package/dist/_chunks/date-picker-ffmyjvlI.js +0 -1845
  213. package/dist/_chunks/date-picker-ffmyjvlI.js.map +0 -1
  214. package/dist/_chunks/date-range-picker-DSOH50-f.js +0 -325
  215. package/dist/_chunks/date-range-picker-DSOH50-f.js.map +0 -1
  216. package/dist/_chunks/link-cell-renderer-BzITwSXq.js.map +0 -1
  217. package/dist/_chunks/subDays-fEHRx4hg.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"appointment-timeline-CwpbQGC1.js","sources":["../../src/components/appointment-timeline/appointment-timeline.agent.ts","../../src/components/appointment-timeline/appointment-timeline.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — AppointmentTimeline. */\n/* */\n/* Timeline surface: read appointment ids + lifecycle state (never */\n/* patient names / treatments), activate a row through the curated handle, */\n/* and re-anchor the scroll on today. In-page (no open/close). */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { AppointmentTimelineHandle } from './appointment-timeline';\n\nexport const appointmentTimelineAgent: AgentAdapter<AppointmentTimelineHandle> =\n {\n id: 'appointment-timeline',\n // 'pick' backs select_item (non-persisting activation through\n // onOpenAppointment); 'scroll' backs jump_to_today, which re-anchors the\n // scroll viewport (mirrors practice-results' scroll_to_result).\n capabilities: ['scroll', 'pick'],\n state: {\n items: {\n type: 'Array<{ id: string; state: string }>',\n descriptionKey: 'ui.agent.appointmentTimeline.state.items',\n description:\n 'Currently-rendered appointments. Ids + lifecycle state only — never patient identity.',\n read: (handle) => handle.getItems(),\n },\n },\n actions: {\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n argsSchema: {\n type: 'object',\n properties: { id: { type: 'string' } },\n required: ['id'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.appointmentTimeline.actions.selectItem',\n description: 'Activate the appointment with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n jump_to_today: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.appointmentTimeline.actions.jumpToToday',\n description: \"Re-anchor the timeline scroll on today's appointments.\",\n invoke: (handle) => {\n handle.jumpToToday();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'appointment-timeline',\n description: 'Marks the AppointmentTimeline wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific timeline from the agent.',\n },\n item: {\n attr: 'data-appointment-id',\n description:\n 'Stable appointment id emitted on each rendered AppointmentCard inside the timeline.',\n },\n },\n };\n","import {\n forwardRef,\n useCallback,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { CalendarDays } from 'lucide-react';\nimport { AppointmentCard, type AppointmentItem } from '../appointment-card';\nimport { Button } from '../button';\nimport { ButtonGroup } from '../button-group';\nimport { DatePicker } from '../date-picker';\nimport { PanelHeader } from '../panel-header';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { usePrefersReducedMotion } from '../../hooks/use-prefers-reduced-motion';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { appointmentTimelineAgent } from './appointment-timeline.agent';\n\n/* -------------------------------------------------------------------- */\n/* AppointmentTimeline */\n/* */\n/* A vertical, day-grouped appointment timeline for the Control Room */\n/* rail. Unlike AppointmentTray (a bordered card of a flat list), this */\n/* fills the rail edge-to-edge: appointments are grouped under day */\n/* headers, the scroll is anchored on TODAY, and it scrolls infinitely */\n/* into the past and future — the consumer feeds more via onLoadEarlier */\n/* / onLoadLater as either edge is reached (scroll position is preserved */\n/* when earlier items prepend). Date-filter presets + a jump-to-date */\n/* picker re-anchor the scroll. Top + bottom transparent gradient fades */\n/* (a block-axis mask) signal more content beyond each edge. */\n/* */\n/* Each row reuses AppointmentCard (care-plan + chair chips included). */\n/* All visible text flows through useTranslation('ui') against the */\n/* `appointmentTimeline.*` namespace; no PHI reaches the agent adapter. */\n/* -------------------------------------------------------------------- */\n\n/* How close (px) to an edge before the matching load callback fires. */\nconst EDGE_LOAD_THRESHOLD = 96;\n\n/* -------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------- */\n\n/** Curated imperative handle — identifiers + lifecycle state only. */\nexport interface AppointmentTimelineHandle {\n getItems: () => Array<{ id: string; state: string }>;\n selectItem: (id: string) => void;\n jumpToToday: () => void;\n}\n\nexport interface AppointmentTimelineProps extends Omit<\n HTMLAttributes<HTMLElement>,\n 'onClick' | 'id' | 'title'\n> {\n /** Stable instance id, surfaced as `data-component-id`. */\n id?: string;\n /** Appointments to render — any order; grouped + sorted internally. */\n items: AppointmentItem[];\n /**\n * ISO-8601 \"now\" anchor — the timeline scrolls to this day on mount and the\n * \"Today\" preset returns to it. Defaults to the current instant. Stories pass\n * a fixed value for deterministic snapshots.\n */\n nowIso?: string;\n /** Panel heading. Defaults to the localised \"Appointments\". */\n title?: string;\n /** BCP-47 locale override for day headers + each AppointmentCard. */\n locale?: string;\n /** ISO-4217 currency code passed to each AppointmentCard. */\n currency?: string;\n /** Visual density passed to each AppointmentCard. */\n size?: 'sm' | 'md';\n /** Fires when a row is activated. */\n onOpenAppointment?: (item: AppointmentItem) => void;\n\n /* ----- Infinite scroll ----- */\n /** Load earlier (past) appointments — fired when the top edge is reached. */\n onLoadEarlier?: () => void;\n /** Load later (future) appointments — fired when the bottom edge is reached. */\n onLoadLater?: () => void;\n /** Whether more past appointments exist. Defaults to `true` when `onLoadEarlier` is set. */\n hasMoreEarlier?: boolean;\n /** Whether more future appointments exist. Defaults to `true` when `onLoadLater` is set. */\n hasMoreLater?: boolean;\n /** Show a loading row at the top edge. */\n loadingEarlier?: boolean;\n /** Show a loading row at the bottom edge. */\n loadingLater?: boolean;\n\n /* ----- Filters ----- */\n /** Show the date-filter row (presets + jump-to-date). Default `true`. */\n showFilters?: boolean;\n /**\n * Fired when a jump-to-date / preset targets a day outside the loaded range,\n * so the consumer can load it. The timeline scrolls to the nearest rendered\n * day until then.\n */\n onJumpToDate?: (dateIso: string) => void;\n\n /* ----- Empty ----- */\n emptyTitle?: string;\n emptyDescription?: string;\n\n /** Accessible name for the panel region (defaults to `title`). */\n 'aria-label'?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* CVA */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n [\n 'ds:flex ds:flex-col ds:h-full ds:min-h-0',\n 'ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]',\n ].join(' '),\n { variants: { size: { sm: '', md: '' } }, defaultVariants: { size: 'sm' } },\n);\n\n/* Scroll region with a block-axis fade mask. The CSS custom properties flip to\n `transparent` at whichever edge has more content (data-fade-top /\n data-fade-bottom), mirroring the TabBar edge-mask technique on the Y axis.\n Disabled under reduced-motion, the accessible theme, and forced-colors. */\nconst scrollRegionClasses = [\n 'ds:flex-1 ds:min-h-0 ds:overflow-y-auto',\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n 'ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]',\n 'ds:[--atl-mask-top:black] ds:[--atl-mask-bottom:black]',\n 'ds:data-[fade-top=true]:[--atl-mask-top:transparent]',\n 'ds:data-[fade-bottom=true]:[--atl-mask-bottom:transparent]',\n 'ds:[mask-image:linear-gradient(to_bottom,var(--atl-mask-top)_0,black_var(--atl-fade-distance,var(--spacing-lg)),black_calc(100%-var(--atl-fade-distance,var(--spacing-lg))),var(--atl-mask-bottom)_100%)]',\n 'ds:motion-reduce:[mask-image:none]',\n 'ds:[.theme-accessible_&]:[mask-image:none]',\n 'ds:forced-colors:[mask-image:none]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:[outline-offset:-2px]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n].join(' ');\n\n/* -------------------------------------------------------------------- */\n/* Day grouping + header labels */\n/* -------------------------------------------------------------------- */\n\ninterface DayGroup {\n key: string;\n date: Date;\n items: AppointmentItem[];\n}\n\n/** Local calendar day key (`YYYY-MM-DD`) — sorts chronologically as a string. */\nfunction localDayKey(d: Date): string {\n const m = `${d.getMonth() + 1}`.padStart(2, '0');\n const day = `${d.getDate()}`.padStart(2, '0');\n return `${d.getFullYear()}-${m}-${day}`;\n}\n\nfunction groupByDay(items: AppointmentItem[]): DayGroup[] {\n const sorted = [...items].sort(\n (a, b) => +new Date(a.startIso) - +new Date(b.startIso),\n );\n const map = new Map<string, DayGroup>();\n for (const item of sorted) {\n const d = new Date(item.startIso);\n const key = localDayKey(d);\n let group = map.get(key);\n if (!group) {\n group = {\n key,\n date: new Date(d.getFullYear(), d.getMonth(), d.getDate()),\n items: [],\n };\n map.set(key, group);\n }\n group.items.push(item);\n }\n return [...map.values()];\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const AppointmentTimeline = forwardRef<\n HTMLElement,\n AppointmentTimelineProps\n>(\n (\n {\n id,\n items,\n nowIso,\n title,\n locale,\n currency,\n size = 'sm',\n onOpenAppointment,\n onLoadEarlier,\n onLoadLater,\n hasMoreEarlier,\n hasMoreLater,\n loadingEarlier = false,\n loadingLater = false,\n showFilters = true,\n onJumpToDate,\n emptyTitle,\n emptyDescription,\n className,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const jumpId = useId();\n const prefersReducedMotion = usePrefersReducedMotion();\n const resolvedLocale = locale ?? i18n.language;\n\n const heading = title ?? t('appointmentTimeline.title');\n const now = useMemo(\n () => (nowIso ? new Date(nowIso) : new Date()),\n [nowIso],\n );\n\n const groups = useMemo(() => groupByDay(items), [items]);\n\n const moreEarlier = hasMoreEarlier ?? !!onLoadEarlier;\n const moreLater = hasMoreLater ?? !!onLoadLater;\n\n /* The day to anchor on: today if present, else the nearest upcoming day,\n else the last day we have. */\n const anchorKey = useMemo(() => {\n if (groups.length === 0) return undefined;\n const todayKey = localDayKey(now);\n const keys = groups.map((g) => g.key);\n if (keys.includes(todayKey)) return todayKey;\n return keys.find((k) => k >= todayKey) ?? keys[keys.length - 1];\n }, [groups, now]);\n\n const scrollRef = useRef<HTMLDivElement>(null);\n const dayElRefs = useRef<Map<string, HTMLElement>>(new Map());\n const hasAnchored = useRef(false);\n const prevFirstKey = useRef<string | undefined>(undefined);\n const prevScrollHeight = useRef(0);\n\n const [fadeTop, setFadeTop] = useState(false);\n const [fadeBottom, setFadeBottom] = useState(false);\n\n const updateEdges = useCallback(() => {\n const region = scrollRef.current;\n if (!region) return;\n const { scrollTop, scrollHeight, clientHeight } = region;\n setFadeTop(scrollTop > 1);\n setFadeBottom(scrollTop + clientHeight < scrollHeight - 1);\n }, []);\n\n /* Scroll a day into view at the top of the region. Falls back to the\n nearest rendered day on/after the target (presets may land on an empty\n day). Uses getBoundingClientRect so it is offsetParent-agnostic. */\n const scrollToKey = useCallback(\n (targetKey: string, smooth: boolean) => {\n const region = scrollRef.current;\n if (!region) return;\n let el = dayElRefs.current.get(targetKey);\n if (!el) {\n const keys = [...dayElRefs.current.keys()].sort();\n const next =\n keys.find((k) => k >= targetKey) ?? keys[keys.length - 1];\n el = next ? dayElRefs.current.get(next) : undefined;\n }\n if (!el) return;\n const delta =\n el.getBoundingClientRect().top - region.getBoundingClientRect().top;\n region.scrollTo({\n top: region.scrollTop + delta,\n behavior: smooth && !prefersReducedMotion ? 'smooth' : 'auto',\n });\n },\n [prefersReducedMotion],\n );\n\n /* Anchor on mount; preserve the viewport when earlier days prepend. */\n useIsomorphicLayoutEffect(() => {\n const region = scrollRef.current;\n if (!region) return;\n const firstKey = groups[0]?.key;\n if (!hasAnchored.current) {\n if (groups.length > 0 && anchorKey) {\n scrollToKey(anchorKey, false);\n hasAnchored.current = true;\n }\n } else if (\n prevFirstKey.current &&\n firstKey &&\n firstKey < prevFirstKey.current\n ) {\n const grew = region.scrollHeight - prevScrollHeight.current;\n if (grew > 0) region.scrollTop += grew;\n }\n prevFirstKey.current = firstKey;\n prevScrollHeight.current = region.scrollHeight;\n updateEdges();\n }, [groups, anchorKey, scrollToKey, updateEdges]);\n\n /* Recompute the fades when the region resizes. */\n useIsomorphicLayoutEffect(() => {\n const region = scrollRef.current;\n if (!region || typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(updateEdges);\n observer.observe(region);\n return () => observer.disconnect();\n }, [updateEdges]);\n\n const handleScroll = useCallback(() => {\n updateEdges();\n const region = scrollRef.current;\n if (!region) return;\n const { scrollTop, scrollHeight, clientHeight } = region;\n if (\n onLoadEarlier &&\n moreEarlier &&\n !loadingEarlier &&\n scrollTop <= EDGE_LOAD_THRESHOLD\n ) {\n onLoadEarlier();\n }\n if (\n onLoadLater &&\n moreLater &&\n !loadingLater &&\n scrollHeight - scrollTop - clientHeight <= EDGE_LOAD_THRESHOLD\n ) {\n onLoadLater();\n }\n }, [\n updateEdges,\n onLoadEarlier,\n onLoadLater,\n moreEarlier,\n moreLater,\n loadingEarlier,\n loadingLater,\n ]);\n\n /* ----- Filter actions ----- */\n const jumpTo = useCallback(\n (date: Date) => {\n const key = localDayKey(date);\n const known = dayElRefs.current.has(key);\n scrollToKey(key, true);\n if (!known) onJumpToDate?.(date.toISOString());\n },\n [scrollToKey, onJumpToDate],\n );\n\n const handleToday = useCallback(() => jumpTo(now), [jumpTo, now]);\n const handleThisWeek = useCallback(() => {\n const start = new Date(now);\n const dow = (start.getDay() + 6) % 7; // Monday-based week start\n start.setDate(start.getDate() - dow);\n jumpTo(start);\n }, [jumpTo, now]);\n const handleThisMonth = useCallback(() => {\n jumpTo(new Date(now.getFullYear(), now.getMonth(), 1));\n }, [jumpTo, now]);\n\n /* ----- Agent handle ----- */\n const itemsRef = useRef<AppointmentItem[]>(items);\n itemsRef.current = items;\n const innerRef = useRef<HTMLElement>(null);\n useImperativeHandle(ref, () => innerRef.current as HTMLElement, []);\n\n const handle = useMemo<AppointmentTimelineHandle>(\n () => ({\n getItems: () =>\n itemsRef.current.map((i) => ({ id: i.id, state: i.state })),\n selectItem: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onOpenAppointment?.(found);\n },\n jumpToToday: () => scrollToKey(localDayKey(now), true),\n }),\n [onOpenAppointment, scrollToKey, now],\n );\n useAgentRegistration(appointmentTimelineAgent, handle, id);\n\n const isEmpty = groups.length === 0 && !loadingEarlier && !loadingLater;\n\n const loadingRow = (key: string) => (\n <div\n key={key}\n aria-hidden=\"true\"\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:py-[var(--spacing-xs)]\"\n >\n <Skeleton variant=\"rectangular\" height=\"3.5rem\" />\n </div>\n );\n\n return (\n <section\n ref={innerRef}\n data-component=\"appointment-timeline\"\n data-component-id={id}\n aria-label={ariaLabel ?? heading}\n className={rootVariants({ size, className })}\n {...rest}\n >\n {/* Shared rail header: title + (optional) filter row + divider. This\n panel owns its own scroll/fill, so the header stays a fixed band\n (sticky={false}). The rail injects the favourite/close cluster via\n PanelHeaderActionsProvider; standalone it renders none. */}\n <PanelHeader\n icon={<CalendarDays />}\n title={heading}\n filters={\n showFilters ? (\n <>\n <ButtonGroup label={t('appointmentTimeline.filtersLabel')}>\n <Button intent=\"outline\" size=\"sm\" onClick={handleToday}>\n {t('appointmentTimeline.today')}\n </Button>\n <Button intent=\"outline\" size=\"sm\" onClick={handleThisWeek}>\n {t('appointmentTimeline.thisWeek')}\n </Button>\n <Button intent=\"outline\" size=\"sm\" onClick={handleThisMonth}>\n {t('appointmentTimeline.thisMonth')}\n </Button>\n </ButtonGroup>\n <label htmlFor={jumpId} className=\"ds:sr-only\">\n {t('appointmentTimeline.jumpToDate')}\n </label>\n <DatePicker\n id={jumpId}\n size=\"sm\"\n placeholder={t('appointmentTimeline.jumpToDate')}\n onChange={(date) => {\n if (date) jumpTo(date);\n }}\n />\n </>\n ) : undefined\n }\n />\n\n {isEmpty ? (\n <div className=\"ds:flex-1 ds:p-[var(--spacing-md)]\">\n <EmptyState\n variant=\"first-use\"\n size=\"sm\"\n title={emptyTitle ?? t('appointmentTimeline.empty.title')}\n description={\n emptyDescription ?? t('appointmentTimeline.empty.description')\n }\n />\n </div>\n ) : (\n <div\n ref={scrollRef}\n // The scroll region must be keyboard-focusable so arrow / Home /\n // End can drive it (axe scrollable-region-focusable); jsx-a11y's\n // generic rule doesn't know this element scrolls.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n onScroll={handleScroll}\n data-fade-top={fadeTop ? 'true' : undefined}\n data-fade-bottom={fadeBottom ? 'true' : undefined}\n className={scrollRegionClasses}\n >\n {loadingEarlier ? loadingRow('loading-earlier') : null}\n <ol className=\"ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-md)] ds:p-0\">\n {groups.map((group) => (\n <li\n key={group.key}\n ref={(node) => {\n if (node) dayElRefs.current.set(group.key, node);\n else dayElRefs.current.delete(group.key);\n }}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\"\n >\n <DayHeader\n date={group.date}\n now={now}\n locale={resolvedLocale}\n todayLabel={t('appointmentTimeline.today')}\n tomorrowLabel={t('appointmentTimeline.tomorrow')}\n yesterdayLabel={t('appointmentTimeline.yesterday')}\n />\n <ul className=\"ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-0\">\n {group.items.map((item) => (\n <AppointmentCard\n key={item.id}\n item={item}\n size={size}\n surface=\"elevated\"\n showPatient={false}\n locale={resolvedLocale}\n currency={currency}\n onActivate={onOpenAppointment}\n data-appointment-id={item.id}\n />\n ))}\n </ul>\n </li>\n ))}\n </ol>\n {loadingLater ? loadingRow('loading-later') : null}\n </div>\n )}\n </section>\n );\n },\n);\n\nAppointmentTimeline.displayName = 'AppointmentTimeline';\n\n/* -------------------------------------------------------------------- */\n/* Day header — sticky label per day group */\n/* -------------------------------------------------------------------- */\n\ninterface DayHeaderProps {\n date: Date;\n now: Date;\n locale: string | undefined;\n todayLabel: string;\n tomorrowLabel: string;\n yesterdayLabel: string;\n}\n\nfunction DayHeader({\n date,\n now,\n locale,\n todayLabel,\n tomorrowLabel,\n yesterdayLabel,\n}: DayHeaderProps): ReactNode {\n const key = localDayKey(date);\n const todayKey = localDayKey(now);\n const tomorrow = new Date(now);\n tomorrow.setDate(now.getDate() + 1);\n const yesterday = new Date(now);\n yesterday.setDate(now.getDate() - 1);\n\n const isToday = key === todayKey;\n\n let label: string;\n if (isToday) label = todayLabel;\n else if (key === localDayKey(tomorrow)) label = tomorrowLabel;\n else if (key === localDayKey(yesterday)) label = yesterdayLabel;\n else {\n const sameYear = date.getFullYear() === now.getFullYear();\n label = new Intl.DateTimeFormat(locale, {\n weekday: 'short',\n day: 'numeric',\n month: 'short',\n ...(sameYear ? {} : { year: 'numeric' }),\n }).format(date);\n }\n\n // Today's group is marked with the brand colour + a leading dot so the\n // current day reads at a glance. `--primary` clears AA on the card in every\n // theme (violet-500 light, magenta on dark); the dot is decorative.\n return (\n <div\n data-today={isToday ? 'true' : undefined}\n className={[\n 'ds:sticky ds:top-0 ds:z-[1] ds:bg-[color:var(--card)] ds:py-[var(--spacing-2xs)]',\n 'ds:flex ds:items-center ds:gap-[var(--spacing-2xs)] type-eyebrow',\n isToday\n ? 'ds:text-[color:var(--primary)] ds:font-semibold'\n : 'ds:text-[color:var(--muted-foreground)]',\n ].join(' ')}\n >\n {isToday ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)]\"\n />\n ) : null}\n {label}\n </div>\n );\n}\n\n/** Re-export of the size variant union for downstream typing. */\nexport type AppointmentTimelineSize = NonNullable<\n VariantProps<typeof rootVariants>['size']\n>;\n"],"names":["appointmentTimelineAgent","handle","args","EDGE_LOAD_THRESHOLD","rootVariants","cva","scrollRegionClasses","localDayKey","d","m","day","groupByDay","items","sorted","a","b","map","item","key","group","AppointmentTimeline","forwardRef","id","nowIso","title","locale","currency","size","onOpenAppointment","onLoadEarlier","onLoadLater","hasMoreEarlier","hasMoreLater","loadingEarlier","loadingLater","showFilters","onJumpToDate","emptyTitle","emptyDescription","className","ariaLabel","rest","ref","t","i18n","useTranslation","jumpId","useId","prefersReducedMotion","usePrefersReducedMotion","resolvedLocale","heading","now","useMemo","groups","moreEarlier","moreLater","anchorKey","todayKey","keys","g","k","scrollRef","useRef","dayElRefs","hasAnchored","prevFirstKey","prevScrollHeight","fadeTop","setFadeTop","useState","fadeBottom","setFadeBottom","updateEdges","useCallback","region","scrollTop","scrollHeight","clientHeight","scrollToKey","targetKey","smooth","el","next","delta","useIsomorphicLayoutEffect","firstKey","_a","grew","observer","handleScroll","jumpTo","date","known","handleToday","handleThisWeek","start","dow","handleThisMonth","itemsRef","innerRef","useImperativeHandle","i","targetId","found","useAgentRegistration","isEmpty","loadingRow","jsx","Skeleton","jsxs","PanelHeader","CalendarDays","Fragment","ButtonGroup","Button","DatePicker","EmptyState","node","DayHeader","AppointmentCard","todayLabel","tomorrowLabel","yesterdayLabel","tomorrow","yesterday","isToday","label","sameYear"],"mappings":"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"}
1
+ {"version":3,"file":"appointment-timeline-BB-c1LeR.js","sources":["../../src/components/appointment-timeline/appointment-timeline.agent.ts","../../src/components/appointment-timeline/appointment-timeline.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — AppointmentTimeline. */\n/* */\n/* Timeline surface: read appointment ids + lifecycle state (never */\n/* patient names / treatments), activate a row through the curated handle, */\n/* and re-anchor the scroll on today. In-page (no open/close). */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { AppointmentTimelineHandle } from './appointment-timeline';\n\nexport const appointmentTimelineAgent: AgentAdapter<AppointmentTimelineHandle> =\n {\n id: 'appointment-timeline',\n // 'pick' backs select_item (non-persisting activation through\n // onOpenAppointment); 'scroll' backs jump_to_today, which re-anchors the\n // scroll viewport (mirrors practice-results' scroll_to_result).\n capabilities: ['scroll', 'pick'],\n state: {\n items: {\n type: 'Array<{ id: string; state: string }>',\n descriptionKey: 'ui.agent.appointmentTimeline.state.items',\n description:\n 'Currently-rendered appointments. Ids + lifecycle state only — never patient identity.',\n read: (handle) => handle.getItems(),\n },\n },\n actions: {\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n argsSchema: {\n type: 'object',\n properties: { id: { type: 'string' } },\n required: ['id'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.appointmentTimeline.actions.selectItem',\n description: 'Activate the appointment with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n jump_to_today: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.appointmentTimeline.actions.jumpToToday',\n description: \"Re-anchor the timeline scroll on today's appointments.\",\n invoke: (handle) => {\n handle.jumpToToday();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'appointment-timeline',\n description: 'Marks the AppointmentTimeline wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific timeline from the agent.',\n },\n item: {\n attr: 'data-appointment-id',\n description:\n 'Stable appointment id emitted on each rendered AppointmentCard inside the timeline.',\n },\n },\n };\n","import {\n forwardRef,\n useCallback,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { CalendarDays } from 'lucide-react';\nimport { AppointmentCard, type AppointmentItem } from '../appointment-card';\nimport { Button } from '../button';\nimport { ButtonGroup } from '../button-group';\nimport { DatePicker } from '../date-picker';\nimport { PanelHeader } from '../panel-header';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { usePrefersReducedMotion } from '../../hooks/use-prefers-reduced-motion';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { appointmentTimelineAgent } from './appointment-timeline.agent';\n\n/* -------------------------------------------------------------------- */\n/* AppointmentTimeline */\n/* */\n/* A vertical, day-grouped appointment timeline for the Control Room */\n/* rail. Unlike AppointmentTray (a bordered card of a flat list), this */\n/* fills the rail edge-to-edge: appointments are grouped under day */\n/* headers, the scroll is anchored on TODAY, and it scrolls infinitely */\n/* into the past and future — the consumer feeds more via onLoadEarlier */\n/* / onLoadLater as either edge is reached (scroll position is preserved */\n/* when earlier items prepend). Date-filter presets + a jump-to-date */\n/* picker re-anchor the scroll. Top + bottom transparent gradient fades */\n/* (a block-axis mask) signal more content beyond each edge. */\n/* */\n/* Each row reuses AppointmentCard (care-plan + chair chips included). */\n/* All visible text flows through useTranslation('ui') against the */\n/* `appointmentTimeline.*` namespace; no PHI reaches the agent adapter. */\n/* -------------------------------------------------------------------- */\n\n/* How close (px) to an edge before the matching load callback fires. */\nconst EDGE_LOAD_THRESHOLD = 96;\n\n/* -------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------- */\n\n/** Curated imperative handle — identifiers + lifecycle state only. */\nexport interface AppointmentTimelineHandle {\n getItems: () => Array<{ id: string; state: string }>;\n selectItem: (id: string) => void;\n jumpToToday: () => void;\n}\n\nexport interface AppointmentTimelineProps extends Omit<\n HTMLAttributes<HTMLElement>,\n 'onClick' | 'id' | 'title'\n> {\n /** Stable instance id, surfaced as `data-component-id`. */\n id?: string;\n /** Appointments to render — any order; grouped + sorted internally. */\n items: AppointmentItem[];\n /**\n * ISO-8601 \"now\" anchor — the timeline scrolls to this day on mount and the\n * \"Today\" preset returns to it. Defaults to the current instant. Stories pass\n * a fixed value for deterministic snapshots.\n */\n nowIso?: string;\n /** Panel heading. Defaults to the localised \"Appointments\". */\n title?: string;\n /** BCP-47 locale override for day headers + each AppointmentCard. */\n locale?: string;\n /** ISO-4217 currency code passed to each AppointmentCard. */\n currency?: string;\n /** Visual density passed to each AppointmentCard. */\n size?: 'sm' | 'md';\n /** Fires when a row is activated. */\n onOpenAppointment?: (item: AppointmentItem) => void;\n\n /* ----- Infinite scroll ----- */\n /** Load earlier (past) appointments — fired when the top edge is reached. */\n onLoadEarlier?: () => void;\n /** Load later (future) appointments — fired when the bottom edge is reached. */\n onLoadLater?: () => void;\n /** Whether more past appointments exist. Defaults to `true` when `onLoadEarlier` is set. */\n hasMoreEarlier?: boolean;\n /** Whether more future appointments exist. Defaults to `true` when `onLoadLater` is set. */\n hasMoreLater?: boolean;\n /** Show a loading row at the top edge. */\n loadingEarlier?: boolean;\n /** Show a loading row at the bottom edge. */\n loadingLater?: boolean;\n\n /* ----- Filters ----- */\n /** Show the date-filter row (presets + jump-to-date). Default `true`. */\n showFilters?: boolean;\n /**\n * Fired when a jump-to-date / preset targets a day outside the loaded range,\n * so the consumer can load it. The timeline scrolls to the nearest rendered\n * day until then.\n */\n onJumpToDate?: (dateIso: string) => void;\n\n /* ----- Empty ----- */\n emptyTitle?: string;\n emptyDescription?: string;\n\n /** Accessible name for the panel region (defaults to `title`). */\n 'aria-label'?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* CVA */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva(\n [\n 'ds:flex ds:flex-col ds:h-full ds:min-h-0',\n 'ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]',\n ].join(' '),\n { variants: { size: { sm: '', md: '' } }, defaultVariants: { size: 'sm' } },\n);\n\n/* Scroll region with a block-axis fade mask. The CSS custom properties flip to\n `transparent` at whichever edge has more content (data-fade-top /\n data-fade-bottom), mirroring the TabBar edge-mask technique on the Y axis.\n Disabled under reduced-motion, the accessible theme, and forced-colors. */\nconst scrollRegionClasses = [\n 'ds:flex-1 ds:min-h-0 ds:overflow-y-auto',\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n 'ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]',\n 'ds:[--atl-mask-top:black] ds:[--atl-mask-bottom:black]',\n 'ds:data-[fade-top=true]:[--atl-mask-top:transparent]',\n 'ds:data-[fade-bottom=true]:[--atl-mask-bottom:transparent]',\n 'ds:[mask-image:linear-gradient(to_bottom,var(--atl-mask-top)_0,black_var(--atl-fade-distance,var(--spacing-lg)),black_calc(100%-var(--atl-fade-distance,var(--spacing-lg))),var(--atl-mask-bottom)_100%)]',\n 'ds:motion-reduce:[mask-image:none]',\n 'ds:[.theme-accessible_&]:[mask-image:none]',\n 'ds:forced-colors:[mask-image:none]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:[outline-offset:-2px]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n].join(' ');\n\n/* -------------------------------------------------------------------- */\n/* Day grouping + header labels */\n/* -------------------------------------------------------------------- */\n\ninterface DayGroup {\n key: string;\n date: Date;\n items: AppointmentItem[];\n}\n\n/** Local calendar day key (`YYYY-MM-DD`) — sorts chronologically as a string. */\nfunction localDayKey(d: Date): string {\n const m = `${d.getMonth() + 1}`.padStart(2, '0');\n const day = `${d.getDate()}`.padStart(2, '0');\n return `${d.getFullYear()}-${m}-${day}`;\n}\n\nfunction groupByDay(items: AppointmentItem[]): DayGroup[] {\n const sorted = [...items].sort(\n (a, b) => +new Date(a.startIso) - +new Date(b.startIso),\n );\n const map = new Map<string, DayGroup>();\n for (const item of sorted) {\n const d = new Date(item.startIso);\n const key = localDayKey(d);\n let group = map.get(key);\n if (!group) {\n group = {\n key,\n date: new Date(d.getFullYear(), d.getMonth(), d.getDate()),\n items: [],\n };\n map.set(key, group);\n }\n group.items.push(item);\n }\n return [...map.values()];\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const AppointmentTimeline = forwardRef<\n HTMLElement,\n AppointmentTimelineProps\n>(\n (\n {\n id,\n items,\n nowIso,\n title,\n locale,\n currency,\n size = 'sm',\n onOpenAppointment,\n onLoadEarlier,\n onLoadLater,\n hasMoreEarlier,\n hasMoreLater,\n loadingEarlier = false,\n loadingLater = false,\n showFilters = true,\n onJumpToDate,\n emptyTitle,\n emptyDescription,\n className,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const jumpId = useId();\n const prefersReducedMotion = usePrefersReducedMotion();\n const resolvedLocale = locale ?? i18n.language;\n\n const heading = title ?? t('appointmentTimeline.title');\n const now = useMemo(\n () => (nowIso ? new Date(nowIso) : new Date()),\n [nowIso],\n );\n\n const groups = useMemo(() => groupByDay(items), [items]);\n\n const moreEarlier = hasMoreEarlier ?? !!onLoadEarlier;\n const moreLater = hasMoreLater ?? !!onLoadLater;\n\n /* The day to anchor on: today if present, else the nearest upcoming day,\n else the last day we have. */\n const anchorKey = useMemo(() => {\n if (groups.length === 0) return undefined;\n const todayKey = localDayKey(now);\n const keys = groups.map((g) => g.key);\n if (keys.includes(todayKey)) return todayKey;\n return keys.find((k) => k >= todayKey) ?? keys[keys.length - 1];\n }, [groups, now]);\n\n const scrollRef = useRef<HTMLDivElement>(null);\n const dayElRefs = useRef<Map<string, HTMLElement>>(new Map());\n const hasAnchored = useRef(false);\n const prevFirstKey = useRef<string | undefined>(undefined);\n const prevScrollHeight = useRef(0);\n\n const [fadeTop, setFadeTop] = useState(false);\n const [fadeBottom, setFadeBottom] = useState(false);\n\n const updateEdges = useCallback(() => {\n const region = scrollRef.current;\n if (!region) return;\n const { scrollTop, scrollHeight, clientHeight } = region;\n setFadeTop(scrollTop > 1);\n setFadeBottom(scrollTop + clientHeight < scrollHeight - 1);\n }, []);\n\n /* Scroll a day into view at the top of the region. Falls back to the\n nearest rendered day on/after the target (presets may land on an empty\n day). Uses getBoundingClientRect so it is offsetParent-agnostic. */\n const scrollToKey = useCallback(\n (targetKey: string, smooth: boolean) => {\n const region = scrollRef.current;\n if (!region) return;\n let el = dayElRefs.current.get(targetKey);\n if (!el) {\n const keys = [...dayElRefs.current.keys()].sort();\n const next =\n keys.find((k) => k >= targetKey) ?? keys[keys.length - 1];\n el = next ? dayElRefs.current.get(next) : undefined;\n }\n if (!el) return;\n const delta =\n el.getBoundingClientRect().top - region.getBoundingClientRect().top;\n region.scrollTo({\n top: region.scrollTop + delta,\n behavior: smooth && !prefersReducedMotion ? 'smooth' : 'auto',\n });\n },\n [prefersReducedMotion],\n );\n\n /* Anchor on mount; preserve the viewport when earlier days prepend. */\n useIsomorphicLayoutEffect(() => {\n const region = scrollRef.current;\n if (!region) return;\n const firstKey = groups[0]?.key;\n if (!hasAnchored.current) {\n if (groups.length > 0 && anchorKey) {\n scrollToKey(anchorKey, false);\n hasAnchored.current = true;\n }\n } else if (\n prevFirstKey.current &&\n firstKey &&\n firstKey < prevFirstKey.current\n ) {\n const grew = region.scrollHeight - prevScrollHeight.current;\n if (grew > 0) region.scrollTop += grew;\n }\n prevFirstKey.current = firstKey;\n prevScrollHeight.current = region.scrollHeight;\n updateEdges();\n }, [groups, anchorKey, scrollToKey, updateEdges]);\n\n /* Recompute the fades when the region resizes. */\n useIsomorphicLayoutEffect(() => {\n const region = scrollRef.current;\n if (!region || typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(updateEdges);\n observer.observe(region);\n return () => observer.disconnect();\n }, [updateEdges]);\n\n const handleScroll = useCallback(() => {\n updateEdges();\n const region = scrollRef.current;\n if (!region) return;\n const { scrollTop, scrollHeight, clientHeight } = region;\n if (\n onLoadEarlier &&\n moreEarlier &&\n !loadingEarlier &&\n scrollTop <= EDGE_LOAD_THRESHOLD\n ) {\n onLoadEarlier();\n }\n if (\n onLoadLater &&\n moreLater &&\n !loadingLater &&\n scrollHeight - scrollTop - clientHeight <= EDGE_LOAD_THRESHOLD\n ) {\n onLoadLater();\n }\n }, [\n updateEdges,\n onLoadEarlier,\n onLoadLater,\n moreEarlier,\n moreLater,\n loadingEarlier,\n loadingLater,\n ]);\n\n /* ----- Filter actions ----- */\n const jumpTo = useCallback(\n (date: Date) => {\n const key = localDayKey(date);\n const known = dayElRefs.current.has(key);\n scrollToKey(key, true);\n if (!known) onJumpToDate?.(date.toISOString());\n },\n [scrollToKey, onJumpToDate],\n );\n\n const handleToday = useCallback(() => jumpTo(now), [jumpTo, now]);\n const handleThisWeek = useCallback(() => {\n const start = new Date(now);\n const dow = (start.getDay() + 6) % 7; // Monday-based week start\n start.setDate(start.getDate() - dow);\n jumpTo(start);\n }, [jumpTo, now]);\n const handleThisMonth = useCallback(() => {\n jumpTo(new Date(now.getFullYear(), now.getMonth(), 1));\n }, [jumpTo, now]);\n\n /* ----- Agent handle ----- */\n const itemsRef = useRef<AppointmentItem[]>(items);\n itemsRef.current = items;\n const innerRef = useRef<HTMLElement>(null);\n useImperativeHandle(ref, () => innerRef.current as HTMLElement, []);\n\n const handle = useMemo<AppointmentTimelineHandle>(\n () => ({\n getItems: () =>\n itemsRef.current.map((i) => ({ id: i.id, state: i.state })),\n selectItem: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onOpenAppointment?.(found);\n },\n jumpToToday: () => scrollToKey(localDayKey(now), true),\n }),\n [onOpenAppointment, scrollToKey, now],\n );\n useAgentRegistration(appointmentTimelineAgent, handle, id);\n\n const isEmpty = groups.length === 0 && !loadingEarlier && !loadingLater;\n\n const loadingRow = (key: string) => (\n <div\n key={key}\n aria-hidden=\"true\"\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:py-[var(--spacing-xs)]\"\n >\n <Skeleton variant=\"rectangular\" height=\"3.5rem\" />\n </div>\n );\n\n return (\n <section\n ref={innerRef}\n data-component=\"appointment-timeline\"\n data-component-id={id}\n aria-label={ariaLabel ?? heading}\n className={rootVariants({ size, className })}\n {...rest}\n >\n {/* Shared rail header: title + (optional) filter row + divider. This\n panel owns its own scroll/fill, so the header stays a fixed band\n (sticky={false}). The rail injects the favourite/close cluster via\n PanelHeaderActionsProvider; standalone it renders none. */}\n <PanelHeader\n icon={<CalendarDays />}\n title={heading}\n filters={\n showFilters ? (\n <>\n <ButtonGroup label={t('appointmentTimeline.filtersLabel')}>\n <Button intent=\"outline\" size=\"sm\" onClick={handleToday}>\n {t('appointmentTimeline.today')}\n </Button>\n <Button intent=\"outline\" size=\"sm\" onClick={handleThisWeek}>\n {t('appointmentTimeline.thisWeek')}\n </Button>\n <Button intent=\"outline\" size=\"sm\" onClick={handleThisMonth}>\n {t('appointmentTimeline.thisMonth')}\n </Button>\n </ButtonGroup>\n <label htmlFor={jumpId} className=\"ds:sr-only\">\n {t('appointmentTimeline.jumpToDate')}\n </label>\n <DatePicker\n id={jumpId}\n size=\"sm\"\n placeholder={t('appointmentTimeline.jumpToDate')}\n onChange={(date) => {\n if (date) jumpTo(date);\n }}\n />\n </>\n ) : undefined\n }\n />\n\n {isEmpty ? (\n <div className=\"ds:flex-1 ds:p-[var(--spacing-md)]\">\n <EmptyState\n variant=\"first-use\"\n size=\"sm\"\n title={emptyTitle ?? t('appointmentTimeline.empty.title')}\n description={\n emptyDescription ?? t('appointmentTimeline.empty.description')\n }\n />\n </div>\n ) : (\n <div\n ref={scrollRef}\n // The scroll region must be keyboard-focusable so arrow / Home /\n // End can drive it (axe scrollable-region-focusable); jsx-a11y's\n // generic rule doesn't know this element scrolls.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n onScroll={handleScroll}\n data-fade-top={fadeTop ? 'true' : undefined}\n data-fade-bottom={fadeBottom ? 'true' : undefined}\n className={scrollRegionClasses}\n >\n {loadingEarlier ? loadingRow('loading-earlier') : null}\n <ol className=\"ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-md)] ds:p-0\">\n {groups.map((group) => (\n <li\n key={group.key}\n ref={(node) => {\n if (node) dayElRefs.current.set(group.key, node);\n else dayElRefs.current.delete(group.key);\n }}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\"\n >\n <DayHeader\n date={group.date}\n now={now}\n locale={resolvedLocale}\n todayLabel={t('appointmentTimeline.today')}\n tomorrowLabel={t('appointmentTimeline.tomorrow')}\n yesterdayLabel={t('appointmentTimeline.yesterday')}\n />\n <ul className=\"ds:m-0 ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-0\">\n {group.items.map((item) => (\n <AppointmentCard\n key={item.id}\n item={item}\n size={size}\n surface=\"elevated\"\n showPatient={false}\n locale={resolvedLocale}\n currency={currency}\n onActivate={onOpenAppointment}\n data-appointment-id={item.id}\n />\n ))}\n </ul>\n </li>\n ))}\n </ol>\n {loadingLater ? loadingRow('loading-later') : null}\n </div>\n )}\n </section>\n );\n },\n);\n\nAppointmentTimeline.displayName = 'AppointmentTimeline';\n\n/* -------------------------------------------------------------------- */\n/* Day header — sticky label per day group */\n/* -------------------------------------------------------------------- */\n\ninterface DayHeaderProps {\n date: Date;\n now: Date;\n locale: string | undefined;\n todayLabel: string;\n tomorrowLabel: string;\n yesterdayLabel: string;\n}\n\nfunction DayHeader({\n date,\n now,\n locale,\n todayLabel,\n tomorrowLabel,\n yesterdayLabel,\n}: DayHeaderProps): ReactNode {\n const key = localDayKey(date);\n const todayKey = localDayKey(now);\n const tomorrow = new Date(now);\n tomorrow.setDate(now.getDate() + 1);\n const yesterday = new Date(now);\n yesterday.setDate(now.getDate() - 1);\n\n const isToday = key === todayKey;\n\n let label: string;\n if (isToday) label = todayLabel;\n else if (key === localDayKey(tomorrow)) label = tomorrowLabel;\n else if (key === localDayKey(yesterday)) label = yesterdayLabel;\n else {\n const sameYear = date.getFullYear() === now.getFullYear();\n label = new Intl.DateTimeFormat(locale, {\n weekday: 'short',\n day: 'numeric',\n month: 'short',\n ...(sameYear ? {} : { year: 'numeric' }),\n }).format(date);\n }\n\n // Today's group is marked with the brand colour + a leading dot so the\n // current day reads at a glance. `--primary` clears AA on the card in every\n // theme (violet-500 light, magenta on dark); the dot is decorative.\n return (\n <div\n data-today={isToday ? 'true' : undefined}\n className={[\n 'ds:sticky ds:top-0 ds:z-[1] ds:bg-[color:var(--card)] ds:py-[var(--spacing-2xs)]',\n 'ds:flex ds:items-center ds:gap-[var(--spacing-2xs)] type-eyebrow',\n isToday\n ? 'ds:text-[color:var(--primary)] ds:font-semibold'\n : 'ds:text-[color:var(--muted-foreground)]',\n ].join(' ')}\n >\n {isToday ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)]\"\n />\n ) : null}\n {label}\n </div>\n );\n}\n\n/** Re-export of the size variant union for downstream typing. */\nexport type AppointmentTimelineSize = NonNullable<\n VariantProps<typeof rootVariants>['size']\n>;\n"],"names":["appointmentTimelineAgent","handle","args","EDGE_LOAD_THRESHOLD","rootVariants","cva","scrollRegionClasses","localDayKey","d","m","day","groupByDay","items","sorted","a","b","map","item","key","group","AppointmentTimeline","forwardRef","id","nowIso","title","locale","currency","size","onOpenAppointment","onLoadEarlier","onLoadLater","hasMoreEarlier","hasMoreLater","loadingEarlier","loadingLater","showFilters","onJumpToDate","emptyTitle","emptyDescription","className","ariaLabel","rest","ref","t","i18n","useTranslation","jumpId","useId","prefersReducedMotion","usePrefersReducedMotion","resolvedLocale","heading","now","useMemo","groups","moreEarlier","moreLater","anchorKey","todayKey","keys","g","k","scrollRef","useRef","dayElRefs","hasAnchored","prevFirstKey","prevScrollHeight","fadeTop","setFadeTop","useState","fadeBottom","setFadeBottom","updateEdges","useCallback","region","scrollTop","scrollHeight","clientHeight","scrollToKey","targetKey","smooth","el","next","delta","useIsomorphicLayoutEffect","firstKey","_a","grew","observer","handleScroll","jumpTo","date","known","handleToday","handleThisWeek","start","dow","handleThisMonth","itemsRef","innerRef","useImperativeHandle","i","targetId","found","useAgentRegistration","isEmpty","loadingRow","jsx","Skeleton","jsxs","PanelHeader","CalendarDays","Fragment","ButtonGroup","Button","DatePicker","EmptyState","node","DayHeader","AppointmentCard","todayLabel","tomorrowLabel","yesterdayLabel","tomorrow","yesterday","isToday","label","sameYear"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { o as s, q as r, r as i, v as d } from "./date-picker-variants-D9B6hg15.js";
1
+ import { A as s, B as r, E as i, F as d } from "./date-picker-variants-eL6HjWvw.js";
2
2
  const h = {
3
3
  lessThanXSeconds: {
4
4
  one: "أقل من ثانية",
@@ -181,7 +181,7 @@ const h = {
181
181
  "الجمعة",
182
182
  "السبت"
183
183
  ]
184
- }, v = {
184
+ }, p = {
185
185
  narrow: {
186
186
  am: "ص",
187
187
  pm: "م",
@@ -212,7 +212,7 @@ const h = {
212
212
  night: "الليل",
213
213
  midnight: "منتصف الليل"
214
214
  }
215
- }, p = {
215
+ }, v = {
216
216
  narrow: {
217
217
  am: "ص",
218
218
  pm: "م",
@@ -263,28 +263,28 @@ const h = {
263
263
  defaultWidth: "wide"
264
264
  }),
265
265
  dayPeriod: r({
266
- values: v,
266
+ values: p,
267
267
  defaultWidth: "wide",
268
- formattingValues: p,
268
+ formattingValues: v,
269
269
  defaultFormattingWidth: "wide"
270
270
  })
271
- }, x = /^(\d+)(th|st|nd|rd)?/i, D = /\d+/i, H = {
271
+ }, x = /^(\d+)(th|st|nd|rd)?/i, D = /\d+/i, F = {
272
272
  narrow: /[قب]/,
273
273
  abbreviated: /[قب]\.م\./,
274
274
  wide: /(قبل|بعد) الميلاد/
275
- }, k = {
275
+ }, H = {
276
276
  any: [/قبل/, /بعد/]
277
- }, F = {
277
+ }, k = {
278
278
  narrow: /^[1234]/i,
279
279
  abbreviated: /ر[1234]/,
280
280
  wide: /الربع (الأول|الثاني|الثالث|الرابع)/
281
281
  }, X = {
282
282
  any: [/1/i, /2/i, /3/i, /4/i]
283
- }, S = {
283
+ }, E = {
284
284
  narrow: /^[أيفمسند]/,
285
285
  abbreviated: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,
286
286
  wide: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/
287
- }, V = {
287
+ }, S = {
288
288
  narrow: [
289
289
  /^ي/i,
290
290
  /^ف/i,
@@ -313,7 +313,7 @@ const h = {
313
313
  /^نوفمبر/i,
314
314
  /^ديسمبر/i
315
315
  ]
316
- }, E = {
316
+ }, V = {
317
317
  narrow: /^[حنثرخجس]/i,
318
318
  short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,
319
319
  abbreviated: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,
@@ -333,7 +333,7 @@ const h = {
333
333
  }, N = {
334
334
  narrow: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/,
335
335
  any: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/
336
- }, q = {
336
+ }, C = {
337
337
  any: {
338
338
  am: /^ص/,
339
339
  pm: /^م/,
@@ -344,33 +344,33 @@ const h = {
344
344
  evening: /في المساء/,
345
345
  night: /في الليل/
346
346
  }
347
- }, C = {
347
+ }, Y = {
348
348
  ordinalNumber: d({
349
349
  matchPattern: x,
350
350
  parsePattern: D,
351
351
  valueCallback: (t) => parseInt(t, 10)
352
352
  }),
353
353
  era: i({
354
- matchPatterns: H,
354
+ matchPatterns: F,
355
355
  defaultMatchWidth: "wide",
356
- parsePatterns: k,
356
+ parsePatterns: H,
357
357
  defaultParseWidth: "any"
358
358
  }),
359
359
  quarter: i({
360
- matchPatterns: F,
360
+ matchPatterns: k,
361
361
  defaultMatchWidth: "wide",
362
362
  parsePatterns: X,
363
363
  defaultParseWidth: "any",
364
364
  valueCallback: (t) => t + 1
365
365
  }),
366
366
  month: i({
367
- matchPatterns: S,
367
+ matchPatterns: E,
368
368
  defaultMatchWidth: "wide",
369
- parsePatterns: V,
369
+ parsePatterns: S,
370
370
  defaultParseWidth: "any"
371
371
  }),
372
372
  day: i({
373
- matchPatterns: E,
373
+ matchPatterns: V,
374
374
  defaultMatchWidth: "wide",
375
375
  parsePatterns: L,
376
376
  defaultParseWidth: "any"
@@ -378,7 +378,7 @@ const h = {
378
378
  dayPeriod: i({
379
379
  matchPatterns: N,
380
380
  defaultMatchWidth: "any",
381
- parsePatterns: q,
381
+ parsePatterns: C,
382
382
  defaultParseWidth: "any"
383
383
  })
384
384
  }, z = {
@@ -387,7 +387,7 @@ const h = {
387
387
  formatLong: f,
388
388
  formatRelative: g,
389
389
  localize: W,
390
- match: C,
390
+ match: Y,
391
391
  options: {
392
392
  weekStartsOn: 6,
393
393
  firstWeekContainsDate: 1
@@ -396,4 +396,4 @@ const h = {
396
396
  export {
397
397
  z as ar
398
398
  };
399
- //# sourceMappingURL=ar-C9FRRqJs.js.map
399
+ //# sourceMappingURL=ar-THMLfSoN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ar-C9FRRqJs.js","sources":["../../node_modules/date-fns/locale/ar/_lib/formatDistance.js","../../node_modules/date-fns/locale/ar/_lib/formatLong.js","../../node_modules/date-fns/locale/ar/_lib/formatRelative.js","../../node_modules/date-fns/locale/ar/_lib/localize.js","../../node_modules/date-fns/locale/ar/_lib/match.js","../../node_modules/date-fns/locale/ar.js"],"sourcesContent":["const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"أقل من ثانية\",\n two: \"أقل من ثانيتين\",\n threeToTen: \"أقل من {{count}} ثواني\",\n other: \"أقل من {{count}} ثانية\",\n },\n\n xSeconds: {\n one: \"ثانية واحدة\",\n two: \"ثانيتان\",\n threeToTen: \"{{count}} ثواني\",\n other: \"{{count}} ثانية\",\n },\n\n halfAMinute: \"نصف دقيقة\",\n\n lessThanXMinutes: {\n one: \"أقل من دقيقة\",\n two: \"أقل من دقيقتين\",\n threeToTen: \"أقل من {{count}} دقائق\",\n other: \"أقل من {{count}} دقيقة\",\n },\n\n xMinutes: {\n one: \"دقيقة واحدة\",\n two: \"دقيقتان\",\n threeToTen: \"{{count}} دقائق\",\n other: \"{{count}} دقيقة\",\n },\n\n aboutXHours: {\n one: \"ساعة واحدة تقريباً\",\n two: \"ساعتين تقريبا\",\n threeToTen: \"{{count}} ساعات تقريباً\",\n other: \"{{count}} ساعة تقريباً\",\n },\n\n xHours: {\n one: \"ساعة واحدة\",\n two: \"ساعتان\",\n threeToTen: \"{{count}} ساعات\",\n other: \"{{count}} ساعة\",\n },\n\n xDays: {\n one: \"يوم واحد\",\n two: \"يومان\",\n threeToTen: \"{{count}} أيام\",\n other: \"{{count}} يوم\",\n },\n\n aboutXWeeks: {\n one: \"أسبوع واحد تقريبا\",\n two: \"أسبوعين تقريبا\",\n threeToTen: \"{{count}} أسابيع تقريبا\",\n other: \"{{count}} أسبوعا تقريبا\",\n },\n\n xWeeks: {\n one: \"أسبوع واحد\",\n two: \"أسبوعان\",\n threeToTen: \"{{count}} أسابيع\",\n other: \"{{count}} أسبوعا\",\n },\n\n aboutXMonths: {\n one: \"شهر واحد تقريباً\",\n two: \"شهرين تقريبا\",\n threeToTen: \"{{count}} أشهر تقريبا\",\n other: \"{{count}} شهرا تقريباً\",\n },\n\n xMonths: {\n one: \"شهر واحد\",\n two: \"شهران\",\n threeToTen: \"{{count}} أشهر\",\n other: \"{{count}} شهرا\",\n },\n\n aboutXYears: {\n one: \"سنة واحدة تقريباً\",\n two: \"سنتين تقريبا\",\n threeToTen: \"{{count}} سنوات تقريباً\",\n other: \"{{count}} سنة تقريباً\",\n },\n\n xYears: {\n one: \"سنة واحد\",\n two: \"سنتان\",\n threeToTen: \"{{count}} سنوات\",\n other: \"{{count}} سنة\",\n },\n\n overXYears: {\n one: \"أكثر من سنة\",\n two: \"أكثر من سنتين\",\n threeToTen: \"أكثر من {{count}} سنوات\",\n other: \"أكثر من {{count}} سنة\",\n },\n\n almostXYears: {\n one: \"ما يقارب سنة واحدة\",\n two: \"ما يقارب سنتين\",\n threeToTen: \"ما يقارب {{count}} سنوات\",\n other: \"ما يقارب {{count}} سنة\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n const usageGroup = formatDistanceLocale[token];\n let result;\n if (typeof usageGroup === \"string\") {\n result = usageGroup;\n } else if (count === 1) {\n result = usageGroup.one;\n } else if (count === 2) {\n result = usageGroup.two;\n } else if (count <= 10) {\n result = usageGroup.threeToTen.replace(\"{{count}}\", String(count));\n } else {\n result = usageGroup.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"خلال \" + result;\n } else {\n return \"منذ \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE، do MMMM y\",\n long: \"do MMMM y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss\",\n long: \"HH:mm:ss\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'عند الساعة' {{time}}\",\n long: \"{{date}} 'عند الساعة' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"eeee 'الماضي عند الساعة' p\",\n yesterday: \"'الأمس عند الساعة' p\",\n today: \"'اليوم عند الساعة' p\",\n tomorrow: \"'غدا عند الساعة' p\",\n nextWeek: \"eeee 'القادم عند الساعة' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token) => formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"ق\", \"ب\"],\n abbreviated: [\"ق.م.\", \"ب.م.\"],\n wide: [\"قبل الميلاد\", \"بعد الميلاد\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"ر1\", \"ر2\", \"ر3\", \"ر4\"],\n wide: [\"الربع الأول\", \"الربع الثاني\", \"الربع الثالث\", \"الربع الرابع\"],\n};\n\nconst monthValues = {\n narrow: [\"ي\", \"ف\", \"م\", \"أ\", \"م\", \"ي\", \"ي\", \"أ\", \"س\", \"أ\", \"ن\", \"د\"],\n abbreviated: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ],\n\n wide: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"ح\", \"ن\", \"ث\", \"ر\", \"خ\", \"ج\", \"س\"],\n short: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n abbreviated: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n\n wide: [\n \"الأحد\",\n \"الاثنين\",\n \"الثلاثاء\",\n \"الأربعاء\",\n \"الخميس\",\n \"الجمعة\",\n \"السبت\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"ص\",\n pm: \"م\",\n morning: \"الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"المساء\",\n night: \"الليل\",\n midnight: \"منتصف الليل\",\n },\n abbreviated: {\n am: \"ص\",\n pm: \"م\",\n morning: \"الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"المساء\",\n night: \"الليل\",\n midnight: \"منتصف الليل\",\n },\n wide: {\n am: \"ص\",\n pm: \"م\",\n morning: \"الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"المساء\",\n night: \"الليل\",\n midnight: \"منتصف الليل\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"ص\",\n pm: \"م\",\n morning: \"في الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"في المساء\",\n night: \"في الليل\",\n midnight: \"منتصف الليل\",\n },\n abbreviated: {\n am: \"ص\",\n pm: \"م\",\n morning: \"في الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"في المساء\",\n night: \"في الليل\",\n midnight: \"منتصف الليل\",\n },\n wide: {\n am: \"ص\",\n pm: \"م\",\n morning: \"في الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"في المساء\",\n night: \"في الليل\",\n midnight: \"منتصف الليل\",\n },\n};\n\nconst ordinalNumber = (num) => String(num);\n\nexport const localize = {\n ordinalNumber: ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /[قب]/,\n abbreviated: /[قب]\\.م\\./,\n wide: /(قبل|بعد) الميلاد/,\n};\nconst parseEraPatterns = {\n any: [/قبل/, /بعد/],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /ر[1234]/,\n wide: /الربع (الأول|الثاني|الثالث|الرابع)/,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[أيفمسند]/,\n abbreviated:\n /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,\n wide: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^ي/i,\n /^ف/i,\n /^م/i,\n /^أ/i,\n /^م/i,\n /^ي/i,\n /^ي/i,\n /^أ/i,\n /^س/i,\n /^أ/i,\n /^ن/i,\n /^د/i,\n ],\n\n any: [\n /^يناير/i,\n /^فبراير/i,\n /^مارس/i,\n /^أبريل/i,\n /^مايو/i,\n /^يونيو/i,\n /^يوليو/i,\n /^أغسطس/i,\n /^سبتمبر/i,\n /^أكتوبر/i,\n /^نوفمبر/i,\n /^ديسمبر/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [\n /^الأحد/i,\n /^الاثنين/i,\n /^الثلاثاء/i,\n /^الأربعاء/i,\n /^الخميس/i,\n /^الجمعة/i,\n /^السبت/i,\n ],\n\n any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/,\n any: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^ص/,\n pm: /^م/,\n midnight: /منتصف الليل/,\n noon: /الظهر/,\n afternoon: /بعد الظهر/,\n morning: /في الصباح/,\n evening: /في المساء/,\n night: /في الليل/,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./ar/_lib/formatDistance.js\";\nimport { formatLong } from \"./ar/_lib/formatLong.js\";\nimport { formatRelative } from \"./ar/_lib/formatRelative.js\";\nimport { localize } from \"./ar/_lib/localize.js\";\nimport { match } from \"./ar/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Arabic locale (Modern Standard Arabic - Al-fussha).\n * @language Modern Standard Arabic\n * @iso-639-2 ara\n * @author Abdallah Hassan [@AbdallahAHO](https://github.com/AbdallahAHO)\n * @author Koussay Haj Kacem [@essana3](https://github.com/essana3)\n */\nexport const ar = {\n code: \"ar\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 6 /* Saturday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ar;\n"],"names":["formatDistanceLocale","formatDistance","token","count","options","usageGroup","result","dateFormats","timeFormats","dateTimeFormats","formatLong","buildFormatLongFn","formatRelativeLocale","formatRelative","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","num","localize","buildLocalizeFn","quarter","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","buildMatchPatternFn","value","buildMatchFn","index","ar"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
1
+ {"version":3,"file":"ar-THMLfSoN.js","sources":["../../node_modules/date-fns/locale/ar/_lib/formatDistance.js","../../node_modules/date-fns/locale/ar/_lib/formatLong.js","../../node_modules/date-fns/locale/ar/_lib/formatRelative.js","../../node_modules/date-fns/locale/ar/_lib/localize.js","../../node_modules/date-fns/locale/ar/_lib/match.js","../../node_modules/date-fns/locale/ar.js"],"sourcesContent":["const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"أقل من ثانية\",\n two: \"أقل من ثانيتين\",\n threeToTen: \"أقل من {{count}} ثواني\",\n other: \"أقل من {{count}} ثانية\",\n },\n\n xSeconds: {\n one: \"ثانية واحدة\",\n two: \"ثانيتان\",\n threeToTen: \"{{count}} ثواني\",\n other: \"{{count}} ثانية\",\n },\n\n halfAMinute: \"نصف دقيقة\",\n\n lessThanXMinutes: {\n one: \"أقل من دقيقة\",\n two: \"أقل من دقيقتين\",\n threeToTen: \"أقل من {{count}} دقائق\",\n other: \"أقل من {{count}} دقيقة\",\n },\n\n xMinutes: {\n one: \"دقيقة واحدة\",\n two: \"دقيقتان\",\n threeToTen: \"{{count}} دقائق\",\n other: \"{{count}} دقيقة\",\n },\n\n aboutXHours: {\n one: \"ساعة واحدة تقريباً\",\n two: \"ساعتين تقريبا\",\n threeToTen: \"{{count}} ساعات تقريباً\",\n other: \"{{count}} ساعة تقريباً\",\n },\n\n xHours: {\n one: \"ساعة واحدة\",\n two: \"ساعتان\",\n threeToTen: \"{{count}} ساعات\",\n other: \"{{count}} ساعة\",\n },\n\n xDays: {\n one: \"يوم واحد\",\n two: \"يومان\",\n threeToTen: \"{{count}} أيام\",\n other: \"{{count}} يوم\",\n },\n\n aboutXWeeks: {\n one: \"أسبوع واحد تقريبا\",\n two: \"أسبوعين تقريبا\",\n threeToTen: \"{{count}} أسابيع تقريبا\",\n other: \"{{count}} أسبوعا تقريبا\",\n },\n\n xWeeks: {\n one: \"أسبوع واحد\",\n two: \"أسبوعان\",\n threeToTen: \"{{count}} أسابيع\",\n other: \"{{count}} أسبوعا\",\n },\n\n aboutXMonths: {\n one: \"شهر واحد تقريباً\",\n two: \"شهرين تقريبا\",\n threeToTen: \"{{count}} أشهر تقريبا\",\n other: \"{{count}} شهرا تقريباً\",\n },\n\n xMonths: {\n one: \"شهر واحد\",\n two: \"شهران\",\n threeToTen: \"{{count}} أشهر\",\n other: \"{{count}} شهرا\",\n },\n\n aboutXYears: {\n one: \"سنة واحدة تقريباً\",\n two: \"سنتين تقريبا\",\n threeToTen: \"{{count}} سنوات تقريباً\",\n other: \"{{count}} سنة تقريباً\",\n },\n\n xYears: {\n one: \"سنة واحد\",\n two: \"سنتان\",\n threeToTen: \"{{count}} سنوات\",\n other: \"{{count}} سنة\",\n },\n\n overXYears: {\n one: \"أكثر من سنة\",\n two: \"أكثر من سنتين\",\n threeToTen: \"أكثر من {{count}} سنوات\",\n other: \"أكثر من {{count}} سنة\",\n },\n\n almostXYears: {\n one: \"ما يقارب سنة واحدة\",\n two: \"ما يقارب سنتين\",\n threeToTen: \"ما يقارب {{count}} سنوات\",\n other: \"ما يقارب {{count}} سنة\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n const usageGroup = formatDistanceLocale[token];\n let result;\n if (typeof usageGroup === \"string\") {\n result = usageGroup;\n } else if (count === 1) {\n result = usageGroup.one;\n } else if (count === 2) {\n result = usageGroup.two;\n } else if (count <= 10) {\n result = usageGroup.threeToTen.replace(\"{{count}}\", String(count));\n } else {\n result = usageGroup.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"خلال \" + result;\n } else {\n return \"منذ \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE، do MMMM y\",\n long: \"do MMMM y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss\",\n long: \"HH:mm:ss\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'عند الساعة' {{time}}\",\n long: \"{{date}} 'عند الساعة' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"eeee 'الماضي عند الساعة' p\",\n yesterday: \"'الأمس عند الساعة' p\",\n today: \"'اليوم عند الساعة' p\",\n tomorrow: \"'غدا عند الساعة' p\",\n nextWeek: \"eeee 'القادم عند الساعة' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token) => formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"ق\", \"ب\"],\n abbreviated: [\"ق.م.\", \"ب.م.\"],\n wide: [\"قبل الميلاد\", \"بعد الميلاد\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"ر1\", \"ر2\", \"ر3\", \"ر4\"],\n wide: [\"الربع الأول\", \"الربع الثاني\", \"الربع الثالث\", \"الربع الرابع\"],\n};\n\nconst monthValues = {\n narrow: [\"ي\", \"ف\", \"م\", \"أ\", \"م\", \"ي\", \"ي\", \"أ\", \"س\", \"أ\", \"ن\", \"د\"],\n abbreviated: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ],\n\n wide: [\n \"يناير\",\n \"فبراير\",\n \"مارس\",\n \"أبريل\",\n \"مايو\",\n \"يونيو\",\n \"يوليو\",\n \"أغسطس\",\n \"سبتمبر\",\n \"أكتوبر\",\n \"نوفمبر\",\n \"ديسمبر\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"ح\", \"ن\", \"ث\", \"ر\", \"خ\", \"ج\", \"س\"],\n short: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n abbreviated: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n\n wide: [\n \"الأحد\",\n \"الاثنين\",\n \"الثلاثاء\",\n \"الأربعاء\",\n \"الخميس\",\n \"الجمعة\",\n \"السبت\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"ص\",\n pm: \"م\",\n morning: \"الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"المساء\",\n night: \"الليل\",\n midnight: \"منتصف الليل\",\n },\n abbreviated: {\n am: \"ص\",\n pm: \"م\",\n morning: \"الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"المساء\",\n night: \"الليل\",\n midnight: \"منتصف الليل\",\n },\n wide: {\n am: \"ص\",\n pm: \"م\",\n morning: \"الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"المساء\",\n night: \"الليل\",\n midnight: \"منتصف الليل\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"ص\",\n pm: \"م\",\n morning: \"في الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"في المساء\",\n night: \"في الليل\",\n midnight: \"منتصف الليل\",\n },\n abbreviated: {\n am: \"ص\",\n pm: \"م\",\n morning: \"في الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"في المساء\",\n night: \"في الليل\",\n midnight: \"منتصف الليل\",\n },\n wide: {\n am: \"ص\",\n pm: \"م\",\n morning: \"في الصباح\",\n noon: \"الظهر\",\n afternoon: \"بعد الظهر\",\n evening: \"في المساء\",\n night: \"في الليل\",\n midnight: \"منتصف الليل\",\n },\n};\n\nconst ordinalNumber = (num) => String(num);\n\nexport const localize = {\n ordinalNumber: ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /[قب]/,\n abbreviated: /[قب]\\.م\\./,\n wide: /(قبل|بعد) الميلاد/,\n};\nconst parseEraPatterns = {\n any: [/قبل/, /بعد/],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /ر[1234]/,\n wide: /الربع (الأول|الثاني|الثالث|الرابع)/,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[أيفمسند]/,\n abbreviated:\n /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,\n wide: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^ي/i,\n /^ف/i,\n /^م/i,\n /^أ/i,\n /^م/i,\n /^ي/i,\n /^ي/i,\n /^أ/i,\n /^س/i,\n /^أ/i,\n /^ن/i,\n /^د/i,\n ],\n\n any: [\n /^يناير/i,\n /^فبراير/i,\n /^مارس/i,\n /^أبريل/i,\n /^مايو/i,\n /^يونيو/i,\n /^يوليو/i,\n /^أغسطس/i,\n /^سبتمبر/i,\n /^أكتوبر/i,\n /^نوفمبر/i,\n /^ديسمبر/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [\n /^الأحد/i,\n /^الاثنين/i,\n /^الثلاثاء/i,\n /^الأربعاء/i,\n /^الخميس/i,\n /^الجمعة/i,\n /^السبت/i,\n ],\n\n any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/,\n any: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^ص/,\n pm: /^م/,\n midnight: /منتصف الليل/,\n noon: /الظهر/,\n afternoon: /بعد الظهر/,\n morning: /في الصباح/,\n evening: /في المساء/,\n night: /في الليل/,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./ar/_lib/formatDistance.js\";\nimport { formatLong } from \"./ar/_lib/formatLong.js\";\nimport { formatRelative } from \"./ar/_lib/formatRelative.js\";\nimport { localize } from \"./ar/_lib/localize.js\";\nimport { match } from \"./ar/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Arabic locale (Modern Standard Arabic - Al-fussha).\n * @language Modern Standard Arabic\n * @iso-639-2 ara\n * @author Abdallah Hassan [@AbdallahAHO](https://github.com/AbdallahAHO)\n * @author Koussay Haj Kacem [@essana3](https://github.com/essana3)\n */\nexport const ar = {\n code: \"ar\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 6 /* Saturday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ar;\n"],"names":["formatDistanceLocale","formatDistance","token","count","options","usageGroup","result","dateFormats","timeFormats","dateTimeFormats","formatLong","buildFormatLongFn","formatRelativeLocale","formatRelative","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","num","localize","buildLocalizeFn","quarter","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","buildMatchPatternFn","value","buildMatchFn","index","ar"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -7,7 +7,7 @@ import { A as z } from "./alert-Cxaqd-QO.js";
7
7
  import { B as ie } from "./button-CPGiR_bH.js";
8
8
  import { C as Ke } from "./checkbox-BuZ1u__2.js";
9
9
  import { C as Bt } from "./checkbox-group-CfqMv57d.js";
10
- import { D as Et } from "./date-picker-ffmyjvlI.js";
10
+ import { D as Et } from "./date-picker-BP_W6VtE.js";
11
11
  import { E as Rt } from "./email-input-Dpe63k0K.js";
12
12
  import { F as Z } from "./form-field-M5UpX65Z.js";
13
13
  import { P as Vt } from "./phone-input-D00ZBAm-.js";
@@ -24,8 +24,8 @@ import { S as $t } from "./stepper-accordion-BeVMZPuG.js";
24
24
  import { S as zt } from "./stepper-progress-Bv0njx4g.js";
25
25
  import { p as L, S as Kt } from "./slot-grid-CQSULZjd.js";
26
26
  import { s as le, i as st } from "./isSameDay-DUEiAT0G.js";
27
- import { w as lt, i as ce, a as je, n as jt, f as ye, d as qt, h as Te, x as De } from "./date-picker-variants-D9B6hg15.js";
28
- import { s as Ht } from "./subDays-fEHRx4hg.js";
27
+ import { G as lt, i as ce, a as je, c as jt, q as ye, o as qt, f as Te, H as De } from "./date-picker-variants-eL6HjWvw.js";
28
+ import { s as Ht } from "./subDays-BcNi04uf.js";
29
29
  import { C as Gt } from "./chevron-left-B8cOyH-V.js";
30
30
  import { C as Ut } from "./chevron-right-I9AeSxH2.js";
31
31
  import { c as F } from "./createLucideIcon-DhHxpK9K.js";
@@ -2692,4 +2692,4 @@ export {
2692
2692
  X as O,
2693
2693
  Cs as b
2694
2694
  };
2695
- //# sourceMappingURL=booking-DEwmDprH.js.map
2695
+ //# sourceMappingURL=booking-BSpSMmJ2.js.map