@alfadocs/ui-kit 1.90.1 → 1.91.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/address-autocomplete-DR4Xn23Z.js +519 -0
- package/dist/_chunks/{address-fields-CfnXK8RT.js → address-fields-qxQkGwPf.js} +5 -5
- package/dist/_chunks/{agenda-card-BDuvreCe.js → agenda-card-BhY342MA.js} +2 -2
- package/dist/_chunks/{agenda-tray-D-jvptdo.js → agenda-tray-BmxBGEci.js} +2 -2
- package/dist/_chunks/{ai-permission-notice-CoW22jx1.js → ai-permission-notice-VNh3W57L.js} +2 -2
- package/dist/_chunks/{alia-sidebar-CsTRAxC8.js → alia-sidebar-ovRX_oti.js} +3 -3
- package/dist/_chunks/{anamnesis-summary-rows-fbEQwcuW.js → anamnesis-summary-rows-EKPfVCmh.js} +2 -2
- package/dist/_chunks/{appointment-card-5JMWi9_f.js → appointment-card-Bstc1p7a.js} +2 -2
- package/dist/_chunks/{appointment-peek-39BwVMUf.js → appointment-peek-C0kKqnFk.js} +2 -2
- package/dist/_chunks/{appointment-timeline-1-Za2miy.js → appointment-timeline-rbt9AwHO.js} +2 -2
- package/dist/_chunks/{appointment-tray-Dwc8MSIQ.js → appointment-tray-6zd8RLIL.js} +2 -2
- package/dist/_chunks/autocomplete-BXMcNoa3.js +562 -0
- package/dist/_chunks/{avatar-BPiPL7ND.js → avatar-a6042Ox2.js} +52 -52
- package/dist/_chunks/{balance-badge-cell-C4FYwmrZ.js → balance-badge-cell-BtJvre1-.js} +3 -3
- package/dist/_chunks/booking-opt_h7Uc.js +4590 -0
- package/dist/_chunks/{calendar-ClB-jWH1.js → calendar-CmiMS4FJ.js} +2 -2
- package/dist/_chunks/{calendar-appointment-editor-dialog-C1v2MNE4.js → calendar-appointment-editor-dialog-sJKLoVJ2.js} +11 -11
- package/dist/_chunks/{care-plan-card-BYCPNDvA.js → care-plan-card-DD9rEWYN.js} +2 -2
- package/dist/_chunks/{care-plan-header-BzsAg6oY.js → care-plan-header-CXUJQt8Q.js} +2 -2
- package/dist/_chunks/{chat-message-CmFJdEre.js → chat-message-LRO_6Ee3.js} +2 -2
- package/dist/_chunks/{checkbox-BjDv-r3o.js → checkbox-a7Sh-dXb.js} +32 -31
- package/dist/_chunks/{checkbox-group-Cw2H5qaq.js → checkbox-group-eGdv9fZc.js} +2 -2
- package/dist/_chunks/{city-input-CJVGswxp.js → city-input-CA59CjnV.js} +2 -2
- package/dist/_chunks/{clinical-note-card-Caidqcwa.js → clinical-note-card-Cut2lNmu.js} +3 -3
- package/dist/_chunks/{combobox-CDPm_n0p.js → combobox-D-gpgEDy.js} +314 -294
- package/dist/_chunks/{contact-card-Czu60UvU.js → contact-card-ClvEDM9e.js} +2 -2
- package/dist/_chunks/{contact-profile-card-Da1vmJQI.js → contact-profile-card-CX45mZA3.js} +106 -95
- package/dist/_chunks/{country-select-DQ8q7ypA.js → country-select-BfmX9y5i.js} +2 -2
- package/dist/_chunks/{data-table-B_IcS0Ke.js → data-table-CqQgoNsU.js} +2 -2
- package/dist/_chunks/{dependent-selector-C4kOgO8b.js → dependent-selector-CyNi7M_f.js} +2 -2
- package/dist/_chunks/{entity-summary-BLxzSSXK.js → entity-summary-B_bOloqP.js} +3 -3
- package/dist/_chunks/error-page-B0fGNTRB.js +419 -0
- package/dist/_chunks/{face-scheme-BgJGFDTa.js → face-scheme-BKSE98bo.js} +2 -2
- package/dist/_chunks/{file-manager-C9YOT-Dn.js → file-manager-BnI1ZWZu.js} +2 -2
- package/dist/_chunks/{header-settings-BVhjndtV.js → header-settings-BeA2fnol.js} +24 -23
- package/dist/_chunks/{heatmap-HTz3Jvzy.js → heatmap-fCxwNz2o.js} +2 -2
- package/dist/_chunks/{languages-CZqBaPwI.js → languages-CGLX6Qpe.js} +3 -15
- package/dist/_chunks/link-DtCfnLnF.js +332 -0
- package/dist/_chunks/{link-cell-renderer-C0ynDik7.js → link-cell-renderer-BS3V4LA6.js} +4 -4
- package/dist/_chunks/{login-dev-card-DYwbL5sD.js → login-dev-card-BZBR58mu.js} +2 -2
- package/dist/_chunks/{map-view-Bvi06RVh.js → map-view-UrNgxBy3.js} +260 -237
- package/dist/_chunks/{index.modern-BeRXQVdc.js → maps-core-gate-DkNqGkm3.js} +360 -319
- package/dist/_chunks/{marketplace-app-shell-x_abo_ye.js → marketplace-app-shell-CJQtx3sv.js} +3 -3
- package/dist/_chunks/{message-card-CvCnCssc.js → message-card-B6SduXJv.js} +2 -2
- package/dist/_chunks/{message-tray-IJYvy6Cf.js → message-tray-Cllf-v0G.js} +2 -2
- package/dist/_chunks/{nav-grid-Oc4aCPrg.js → nav-grid-D2xVcHTO.js} +2 -2
- package/dist/_chunks/{note-attachment-DIlIQ7JF.js → note-attachment-cnj2JRrg.js} +2 -2
- package/dist/_chunks/{note-timeline-KzL52MmB.js → note-timeline-BrjHBQfx.js} +2 -2
- package/dist/_chunks/{notes-panel-CZO1qsD-.js → notes-panel-ib7I3aNf.js} +3 -3
- package/dist/_chunks/{operator-hero-6aAIQaFZ.js → operator-hero-C_5B-8Qp.js} +43 -41
- package/dist/_chunks/{patient-details-D0P5eog5.js → patient-details-BjcUpD9S.js} +3 -3
- package/dist/_chunks/{patient-field-row-R73dZJY6.js → patient-field-row-B0tdiaWi.js} +6 -6
- package/dist/_chunks/patient-search-Ca9j5cWb.js +1306 -0
- package/dist/_chunks/{patient-summary-card-6U74-ivO.js → patient-summary-card-Cvv6_Ugk.js} +4 -4
- package/dist/_chunks/{payment-request-card-MndSlVoK.js → payment-request-card-BfGauFY0.js} +2 -2
- package/dist/_chunks/{periodontal-diagnosis-B9YmmVmM.js → periodontal-diagnosis-DD3hrg9X.js} +2 -2
- package/dist/_chunks/{permission-matrix-BoQjENGV.js → permission-matrix-BJ6sg3Zp.js} +3 -3
- package/dist/_chunks/{practice-profile-hero-qfrsFQI_.js → practice-profile-hero-ClzE-4CB.js} +76 -73
- package/dist/_chunks/{practice-results-B61krlwu.js → practice-results-CQ_KvEXK.js} +517 -514
- package/dist/_chunks/{product-hub-panel-Blag8t8f.js → product-hub-panel-bHi7lkVD.js} +2 -2
- package/dist/_chunks/{province-select-CPdTwEob.js → province-select-D64whw0m.js} +2 -2
- package/dist/_chunks/public-footer-IoRWoAMz.js +596 -0
- package/dist/_chunks/{registration-form-DmP3YUfp.js → registration-form-CRm6DaB9.js} +2 -2
- package/dist/_chunks/{reviews-panel-UzQQLb-z.js → reviews-panel-B7InBORU.js} +42 -41
- package/dist/_chunks/{rich-text-editor-BZTyxQBd.js → rich-text-editor-BfEu57dk.js} +3 -3
- package/dist/_chunks/{signature-request-DjY-X62H.js → signature-request-DvhyrRpn.js} +3 -3
- package/dist/_chunks/{signed-out-frame-G-3ATOdu.js → signed-out-frame-CgRXOUzi.js} +2 -2
- package/dist/_chunks/{slot-grid-Bb13H9Rl.js → slot-grid-B-IAFX3C.js} +183 -170
- package/dist/_chunks/{task-editor-BOETWbjU.js → task-editor-CI1SKUNc.js} +2 -2
- package/dist/_chunks/{timeline-wUuTDFY_.js → timeline-BcYHdP56.js} +2 -2
- package/dist/_chunks/{use-appointment-details-read-CWN-nJCZ.js → use-appointment-details-read-D8vDg0sg.js} +5 -5
- package/dist/_chunks/{voice-control-panel-BziKE-KK.js → voice-control-panel-BP0otrID.js} +2 -2
- package/dist/_chunks/{workflow-webhook-action-DulCpCRz.js → workflow-webhook-action-B_nBJ_ht.js} +2 -2
- package/dist/agent-catalog.json +3 -3
- package/dist/agent-i18n/en.json +1 -1
- package/dist/components/_shared/maps-core-gate.d.ts +18 -0
- package/dist/components/_shared/social-brand-icons.d.ts +29 -0
- package/dist/components/address-autocomplete/index.js +1 -1
- package/dist/components/address-fields/index.js +1 -1
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-permission-notice/index.js +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/avatar/avatar.d.ts +14 -0
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/booking/booking-types.d.ts +26 -0
- package/dist/components/booking/index.js +1 -1
- package/dist/components/booking/slot-load-state.d.ts +11 -0
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox-group/index.js +1 -1
- package/dist/components/city-input/index.js +1 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/contact-card/index.js +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/country-select/index.js +1 -1
- package/dist/components/data-table/index.js +2 -2
- package/dist/components/dependent-selector/index.js +1 -1
- package/dist/components/entity-summary/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/header-settings/header-settings.d.ts +2 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/heatmap/index.js +1 -1
- package/dist/components/link/index.js +1 -1
- package/dist/components/link/link.d.ts +10 -1
- package/dist/components/link/social-url.d.ts +71 -0
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/nav-grid/index.js +1 -1
- package/dist/components/note-timeline/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/operator-hero/operator-hero.d.ts +6 -0
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/periodontal-diagnosis/index.js +1 -1
- package/dist/components/permission-matrix/index.js +1 -1
- package/dist/components/practice-profile-hero/index.js +1 -1
- package/dist/components/practice-profile-hero/practice-profile-hero.d.ts +6 -0
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/practice-results/practice-results.d.ts +8 -2
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/province-select/index.js +1 -1
- package/dist/components/public-footer/index.js +1 -1
- package/dist/components/public-footer/public-footer.d.ts +13 -1
- package/dist/components/public-footer/socials.d.ts +6 -5
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/slot-grid/slot-grid.d.ts +2 -0
- package/dist/components/task-editor/index.js +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/voice-control-panel/index.js +1 -1
- package/dist/host-compat.css +1 -10
- package/dist/i18n/config.js +224 -96
- package/dist/i18n/locales/ar.d.ts +3 -0
- package/dist/i18n/locales/ar.js +4 -1
- package/dist/i18n/locales/de.d.ts +3 -0
- package/dist/i18n/locales/de.js +4 -1
- package/dist/i18n/locales/el.d.ts +3 -0
- package/dist/i18n/locales/el.js +4 -1
- package/dist/i18n/locales/en.d.ts +3 -0
- package/dist/i18n/locales/en.js +3 -0
- package/dist/i18n/locales/es.d.ts +3 -0
- package/dist/i18n/locales/es.js +4 -1
- package/dist/i18n/locales/fr.d.ts +3 -0
- package/dist/i18n/locales/fr.js +4 -1
- package/dist/i18n/locales/hi.d.ts +3 -0
- package/dist/i18n/locales/hi.js +4 -1
- package/dist/i18n/locales/it.d.ts +3 -0
- package/dist/i18n/locales/it.js +4 -1
- package/dist/i18n/locales/ja.d.ts +3 -0
- package/dist/i18n/locales/ja.js +4 -1
- package/dist/i18n/locales/nl.d.ts +3 -0
- package/dist/i18n/locales/nl.js +4 -1
- package/dist/i18n/locales/pl.d.ts +3 -0
- package/dist/i18n/locales/pl.js +4 -1
- package/dist/i18n/locales/pt.d.ts +3 -0
- package/dist/i18n/locales/pt.js +4 -1
- package/dist/i18n/locales/ro.d.ts +3 -0
- package/dist/i18n/locales/ro.js +4 -1
- package/dist/i18n/locales/ru.d.ts +3 -0
- package/dist/i18n/locales/ru.js +4 -1
- package/dist/i18n/locales/sq.d.ts +3 -0
- package/dist/i18n/locales/sq.js +4 -1
- package/dist/i18n/locales/sv.d.ts +3 -0
- package/dist/i18n/locales/sv.js +4 -1
- package/dist/i18n/locales/tr.d.ts +3 -0
- package/dist/i18n/locales/tr.js +4 -1
- package/dist/i18n/locales/zh.d.ts +3 -0
- package/dist/i18n/locales/zh.js +4 -1
- package/dist/index.js +68 -68
- package/dist/locales/ar.json +4 -1
- package/dist/locales/de.json +4 -1
- package/dist/locales/el.json +4 -1
- package/dist/locales/en.json +3 -0
- package/dist/locales/es.json +4 -1
- package/dist/locales/fr.json +4 -1
- package/dist/locales/hi.json +4 -1
- package/dist/locales/it.json +4 -1
- package/dist/locales/ja.json +4 -1
- package/dist/locales/nl.json +4 -1
- package/dist/locales/pl.json +4 -1
- package/dist/locales/pt.json +4 -1
- package/dist/locales/ro.json +4 -1
- package/dist/locales/ru.json +4 -1
- package/dist/locales/sq.json +4 -1
- package/dist/locales/sv.json +4 -1
- package/dist/locales/tr.json +4 -1
- package/dist/locales/zh.json +4 -1
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/error-page/error-page-english.d.ts +71 -0
- package/dist/patterns/error-page/index.js +1 -1
- package/dist/patterns/login-form/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/registration-form/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/patterns/signed-out-frame/index.js +1 -1
- package/dist/patterns/workflow-webhook-action/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/address-autocomplete-bPR2mNBt.js +0 -498
- package/dist/_chunks/autocomplete-CnB1mHGc.js +0 -539
- package/dist/_chunks/booking-C0FoW8Yx.js +0 -4336
- package/dist/_chunks/error-page-Bhai-spN.js +0 -344
- package/dist/_chunks/link-N5_YpLtm.js +0 -138
- package/dist/_chunks/patient-search-CCOUZABE.js +0 -1196
- package/dist/_chunks/public-footer-CXOrdAaS.js +0 -568
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-
|
|
1
|
+
import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-BtJvre1-.js";
|
|
2
2
|
export {
|
|
3
3
|
s as BalanceBadgeCell,
|
|
4
4
|
l as CarePlanStatusCell,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as i, P as S, a as T, b as o, c as D, S as I, e as E, i as O, p as e } from "../../_chunks/periodontal-diagnosis-
|
|
1
|
+
import { D as i, P as S, a as T, b as o, c as D, S as I, e as E, i as O, p as e } from "../../_chunks/periodontal-diagnosis-DD3hrg9X.js";
|
|
2
2
|
export {
|
|
3
3
|
i as DEFAULT_DIAGNOSIS_FACTORS,
|
|
4
4
|
S as PERIODONTITIS_EXTENTS,
|
|
@@ -29,6 +29,12 @@ export interface PracticeProfileHeroProps extends Omit<ComponentPropsWithoutRef<
|
|
|
29
29
|
* initials.
|
|
30
30
|
*/
|
|
31
31
|
imageUrl?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Text alternative for the photo's `<img>`, for image search and crawlers.
|
|
34
|
+
* Pass the practice name. Leave it out and the photo stays decorative
|
|
35
|
+
* (`alt=""`), as before. Added in 1.91.0.
|
|
36
|
+
*/
|
|
37
|
+
imageAlt?: string;
|
|
32
38
|
/**
|
|
33
39
|
* Optional cover image painted as a full-width strip above the body.
|
|
34
40
|
* The strip renders ONLY when this is set — a practice without a cover
|
|
@@ -60,6 +60,12 @@ export interface PracticeResult {
|
|
|
60
60
|
bookingHref?: string;
|
|
61
61
|
/** Avatar / logo URL. */
|
|
62
62
|
imageUrl?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Text alternative for the photo's `<img>`, for image search and crawlers.
|
|
65
|
+
* Pass the practice name. Leave it out and the photo stays decorative
|
|
66
|
+
* (`alt=""`), as before. Added in 1.91.0.
|
|
67
|
+
*/
|
|
68
|
+
imageAlt?: string;
|
|
63
69
|
/** Practice location. Required by the two map variants. */
|
|
64
70
|
location?: {
|
|
65
71
|
lat: number;
|
|
@@ -98,7 +104,7 @@ export interface PracticeResult {
|
|
|
98
104
|
* Use `firstVisitPrice` for new integrations; a finite minimum wins when
|
|
99
105
|
* both are set.
|
|
100
106
|
* Price in the smallest currency unit (cents / centesimi).
|
|
101
|
-
* Rendered as a labelled "First visit cost"
|
|
107
|
+
* Rendered as a labelled "First visit cost" chip on every card in both
|
|
102
108
|
* densities (booking-website maps the practice's long-standing
|
|
103
109
|
* first-visit price setting here). Same convention as
|
|
104
110
|
* `ContactProfileCard.firstVisitPriceCents` — the KIT formats, the
|
|
@@ -107,7 +113,7 @@ export interface PracticeResult {
|
|
|
107
113
|
* `0` is a real value meaning "free" and renders the translated word
|
|
108
114
|
* "Free" (`common.freeOfCharge`), never a zero amount. Omit the
|
|
109
115
|
* field (or pass `undefined`) when the practice has not set a price —
|
|
110
|
-
* the
|
|
116
|
+
* the label and chip disappear completely. Added for HTP-6136.
|
|
111
117
|
*/
|
|
112
118
|
firstVisitPriceCents?: number;
|
|
113
119
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-
|
|
1
|
+
import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-bHi7lkVD.js";
|
|
2
2
|
import { i as s } from "../../_chunks/is-safe-url-DkETxeHz.js";
|
|
3
3
|
export {
|
|
4
4
|
u as ProductHubPanel,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as s, a as e, P as r, S as A, c as L } from "../../_chunks/public-footer-
|
|
1
|
+
import { D as s, a as e, P as r, S as A, c as L } from "../../_chunks/public-footer-IoRWoAMz.js";
|
|
2
2
|
import { p as _ } from "../../_chunks/public-footer.agent-CRZCrq3_.js";
|
|
3
3
|
export {
|
|
4
4
|
s as DEFAULT_MARKETING_BASE_URL,
|
|
@@ -34,7 +34,19 @@ export interface PublicFooterProps {
|
|
|
34
34
|
socials?: PublicFooterSocial[];
|
|
35
35
|
/** `full` variant: custom logo node. Default: kit's wordmark Logo. */
|
|
36
36
|
logoSlot?: ReactNode;
|
|
37
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Extra surface-specific links, appended after the standard legal links in
|
|
39
|
+
* every variant. A `<Link>`, an `<a>`, a `<button>` or the kit's
|
|
40
|
+
* `<Button intent="link">` all work: the slot gives anchors the footer link
|
|
41
|
+
* look (muted text, underline on hover, focus ring) in every variant, and in
|
|
42
|
+
* `minimal` bare buttons and `Button intent="link"` too, so a host "Cookie
|
|
43
|
+
* settings" button that reopens its consent manager sits in line with
|
|
44
|
+
* Privacy and Terms. In `compact` and `full` host buttons keep their own
|
|
45
|
+
* look. In `minimal` the slot comes after Terms and before
|
|
46
|
+
* the copyright line, so tab order follows reading order, in RTL too. The
|
|
47
|
+
* host owns the label and the click handler. Minimal ignored this slot
|
|
48
|
+
* before 1.91.0.
|
|
49
|
+
*/
|
|
38
50
|
extraNavSlot?: ReactNode;
|
|
39
51
|
/** Trust badges (HIPAA, ISO). Rendered at the start of `minimal`'s row, or in the bottom strip of `full`. */
|
|
40
52
|
trustBadgesSlot?: ReactNode;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { ComponentType, SVGProps } from 'react';
|
|
2
1
|
export declare const SOCIAL_NETWORKS: readonly ["linkedin", "youtube", "instagram", "facebook"];
|
|
3
2
|
export type SocialNetwork = (typeof SOCIAL_NETWORKS)[number];
|
|
4
3
|
export declare const DEFAULT_SOCIAL_URLS: Record<SocialNetwork, string>;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
export declare const SOCIAL_ICONS: {
|
|
5
|
+
linkedin: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement>>;
|
|
6
|
+
youtube: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement>>;
|
|
7
|
+
instagram: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement>>;
|
|
8
|
+
facebook: import("react").FunctionComponent<import("react").SVGProps<SVGSVGElement>>;
|
|
9
|
+
};
|
|
9
10
|
//# sourceMappingURL=socials.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as i, r as o, w as a } from "../../_chunks/rich-text-editor-
|
|
1
|
+
import { R as i, r as o, w as a } from "../../_chunks/rich-text-editor-BfEu57dk.js";
|
|
2
2
|
import { k as s } from "../../_chunks/kit-extensions-a0G4COFH.js";
|
|
3
3
|
export {
|
|
4
4
|
i as RichTextEditor,
|
|
@@ -29,6 +29,8 @@ export interface SlotGridProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ari
|
|
|
29
29
|
days: SlotGridDay[];
|
|
30
30
|
/** Visual / interactive state. Defaults to `'default'`. */
|
|
31
31
|
state?: SlotGridState;
|
|
32
|
+
/** Localised guidance below the empty title, for an empty day or range. */
|
|
33
|
+
emptyDescription?: string;
|
|
32
34
|
/** Density of the slot buttons and day headers. Defaults to `'md'`. */
|
|
33
35
|
size?: SlotGridSize;
|
|
34
36
|
/** Id of the currently selected slot (controlled). */
|
package/dist/host-compat.css
CHANGED
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
|
|
211
211
|
/* ───────────────────────────────────────────────────────────────────────
|
|
212
212
|
SECTION B — non-token declarations. ORIGINAL LAYER PRESERVED.
|
|
213
|
-
|
|
213
|
+
150 declarations across 146 rules.
|
|
214
214
|
|
|
215
215
|
Kit-authored arbitrary-value utilities (`ds:w-[20rem]`) and the
|
|
216
216
|
vendored AG Grid rules. These set real properties on real elements,
|
|
@@ -233,15 +233,6 @@
|
|
|
233
233
|
.ds\:-inset-\[calc\(\(var\(--min-target-size\)-1rem\)\/2\)\] {
|
|
234
234
|
inset:calc(calc((var(--min-target-size) - 16px) / 2) * -1);
|
|
235
235
|
}
|
|
236
|
-
.ds\:mt-\[calc\(\(var\(--type-label-size\)\*var\(--type-label-line-height\)-0\.875rem\)\/2\)\] {
|
|
237
|
-
margin-top:calc((var(--type-label-size) * var(--type-label-line-height) - 14px) / 2);
|
|
238
|
-
}
|
|
239
|
-
.ds\:mt-\[calc\(\(var\(--type-label-size\)\*var\(--type-label-line-height\)-1\.25rem\)\/2\)\] {
|
|
240
|
-
margin-top:calc((var(--type-label-size) * var(--type-label-line-height) - 20px) / 2);
|
|
241
|
-
}
|
|
242
|
-
.ds\:mt-\[calc\(\(var\(--type-label-size\)\*var\(--type-label-line-height\)-1rem\)\/2\)\] {
|
|
243
|
-
margin-top:calc((var(--type-label-size) * var(--type-label-line-height) - 16px) / 2);
|
|
244
|
-
}
|
|
245
236
|
.ds\:size-\[1\.5rem\] {
|
|
246
237
|
width:24px;
|
|
247
238
|
height:24px;
|
package/dist/i18n/config.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { default as
|
|
3
|
-
import { initReactI18next as
|
|
4
|
-
|
|
5
|
-
const E = [
|
|
1
|
+
import d from "i18next";
|
|
2
|
+
import { default as J } from "i18next";
|
|
3
|
+
import { initReactI18next as x } from "react-i18next";
|
|
4
|
+
const W = [
|
|
6
5
|
"en",
|
|
7
6
|
"it",
|
|
8
7
|
"de",
|
|
@@ -22,18 +21,19 @@ const E = [
|
|
|
22
21
|
"zh",
|
|
23
22
|
"hi"
|
|
24
23
|
];
|
|
25
|
-
function
|
|
26
|
-
|
|
24
|
+
function F(e, r, t = d) {
|
|
25
|
+
t.addResourceBundle(
|
|
27
26
|
e,
|
|
28
27
|
"ui",
|
|
29
|
-
|
|
28
|
+
r,
|
|
30
29
|
/* deep */
|
|
31
30
|
!0,
|
|
32
31
|
/* overwrite */
|
|
33
32
|
!1
|
|
34
33
|
);
|
|
35
34
|
}
|
|
36
|
-
const
|
|
35
|
+
const A = !1, L = {
|
|
36
|
+
en: () => import("./locales/en.js").then((e) => e.enUi),
|
|
37
37
|
it: () => import("./locales/it.js").then((e) => e.itUi),
|
|
38
38
|
de: () => import("./locales/de.js").then((e) => e.deUi),
|
|
39
39
|
ar: () => import("./locales/ar.js").then((e) => e.arUi),
|
|
@@ -51,135 +51,263 @@ const L = !1, U = {
|
|
|
51
51
|
ja: () => import("./locales/ja.js").then((e) => e.jaUi),
|
|
52
52
|
zh: () => import("./locales/zh.js").then((e) => e.zhUi),
|
|
53
53
|
hi: () => import("./locales/hi.js").then((e) => e.hiUi)
|
|
54
|
-
},
|
|
55
|
-
function
|
|
54
|
+
}, q = /* @__PURE__ */ new WeakMap();
|
|
55
|
+
function I(e) {
|
|
56
56
|
if (!e) return;
|
|
57
|
-
const
|
|
58
|
-
return
|
|
59
|
-
}
|
|
60
|
-
function y(e) {
|
|
61
|
-
e.addResourceBundle("en", "ui", m, !0, !1);
|
|
57
|
+
const r = e.toLowerCase().replaceAll("_", "-").split("-")[0];
|
|
58
|
+
return Object.hasOwn(L, r) ? r : void 0;
|
|
62
59
|
}
|
|
63
60
|
function p(e) {
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
66
|
-
const
|
|
61
|
+
const r = q.get(e);
|
|
62
|
+
if (r) return r;
|
|
63
|
+
const t = {
|
|
67
64
|
languageRequest: 0,
|
|
65
|
+
changing: 0,
|
|
68
66
|
completed: /* @__PURE__ */ new Map(),
|
|
69
|
-
|
|
67
|
+
failed: /* @__PURE__ */ new Set(),
|
|
68
|
+
pending: /* @__PURE__ */ new Map(),
|
|
69
|
+
waiters: /* @__PURE__ */ new Set(),
|
|
70
|
+
requested: /* @__PURE__ */ new Set()
|
|
70
71
|
};
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
return e.changeLanguage = (
|
|
74
|
-
const
|
|
75
|
-
if (!
|
|
76
|
-
const
|
|
77
|
-
(
|
|
78
|
-
),
|
|
79
|
-
if (!
|
|
80
|
-
const
|
|
81
|
-
return
|
|
72
|
+
q.set(e, t), N(e, t);
|
|
73
|
+
const i = e.changeLanguage.bind(e);
|
|
74
|
+
return e.changeLanguage = (n, o) => {
|
|
75
|
+
const u = ++t.languageRequest;
|
|
76
|
+
if (!n) return i(n, o);
|
|
77
|
+
const s = e.services.languageUtils, a = I(n), h = e.getDataByLanguage(n), l = a && a !== n && B(n, e).includes(a) && h && Object.keys(h).some(
|
|
78
|
+
(f) => f !== "ui" || t.completed.get(n) !== e.getResourceBundle(n, "ui")
|
|
79
|
+
), g = e.options.supportedLngs && !l ? s.getBestMatchFromCodes([n]) : n;
|
|
80
|
+
if (!g) {
|
|
81
|
+
const f = e.t.bind(e);
|
|
82
|
+
return o == null || o(null, f), Promise.resolve(f);
|
|
82
83
|
}
|
|
83
|
-
return
|
|
84
|
+
return t.changing++, R(g, e).then(
|
|
84
85
|
() => {
|
|
85
|
-
if (
|
|
86
|
-
const
|
|
87
|
-
return
|
|
86
|
+
if (u !== t.languageRequest) {
|
|
87
|
+
const f = e.t.bind(e);
|
|
88
|
+
return o == null || o(null, f), f;
|
|
88
89
|
}
|
|
89
|
-
return
|
|
90
|
+
return i(g, o);
|
|
90
91
|
},
|
|
91
|
-
(
|
|
92
|
-
throw
|
|
92
|
+
(f) => {
|
|
93
|
+
throw o == null || o(f, e.t.bind(e)), f;
|
|
93
94
|
}
|
|
94
|
-
)
|
|
95
|
+
).finally(() => {
|
|
96
|
+
t.changing--;
|
|
97
|
+
});
|
|
95
98
|
}, e.on("initialized", () => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
);
|
|
100
|
-
}), i;
|
|
99
|
+
z(e).catch((n) => {
|
|
100
|
+
}), U(t);
|
|
101
|
+
}), e.on("languageChanged", () => U(t)), t;
|
|
101
102
|
}
|
|
102
|
-
function
|
|
103
|
-
|
|
103
|
+
function N(e, r) {
|
|
104
|
+
const t = e.hasLoadedNamespace.bind(e);
|
|
105
|
+
e.hasLoadedNamespace = (u, s) => {
|
|
106
|
+
const a = t(u, s);
|
|
107
|
+
return c(u) && e.isInitialized && b(
|
|
108
|
+
e,
|
|
109
|
+
r,
|
|
110
|
+
typeof (s == null ? void 0 : s.lng) == "string" ? s.lng : e.language
|
|
111
|
+
), a;
|
|
112
|
+
};
|
|
113
|
+
const i = e.t.bind(e);
|
|
114
|
+
e.t = ((...u) => {
|
|
115
|
+
const s = i(...u);
|
|
116
|
+
return typeof s == "string" && M(e, r, u) ? "" : s;
|
|
117
|
+
});
|
|
118
|
+
const n = e.loadNamespaces.bind(e);
|
|
119
|
+
e.loadNamespaces = (u, s) => c(u) ? O(e, r).then(() => n(u, s)) : n(u, s);
|
|
120
|
+
const o = e.loadLanguages.bind(e);
|
|
121
|
+
e.loadLanguages = (u, s) => {
|
|
122
|
+
const a = (Array.isArray(u) ? u : [u]).map((l) => m(l, e)).filter((l) => !!l), h = [].concat(e.options.ns ?? []);
|
|
123
|
+
return !e.isInitialized || a.length === 0 || !h.includes("ui") ? o(u, s) : Promise.all(
|
|
124
|
+
a.map((l) => y(l, e).catch(() => !1))
|
|
125
|
+
).then(() => o(u, s));
|
|
126
|
+
};
|
|
104
127
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
128
|
+
function M(e, r, t) {
|
|
129
|
+
if (!e.isInitialized) return !1;
|
|
130
|
+
const i = [t[1], t[2]].find(
|
|
131
|
+
(a) => typeof a == "object" && a !== null
|
|
132
|
+
), n = Array.isArray(t[0]) ? t[0][0] : t[0], u = (typeof n == "string" && n.includes(":") ? n.split(":")[0] : "") || (i == null ? void 0 : i.ns) || e.options.defaultNS;
|
|
133
|
+
if (!u || !c(u)) return !1;
|
|
134
|
+
const s = typeof (i == null ? void 0 : i.lng) == "string" ? i.lng : e.language;
|
|
135
|
+
return w(e, s) ? !1 : (b(e, r, s), !0);
|
|
136
|
+
}
|
|
137
|
+
function b(e, r, t) {
|
|
138
|
+
if (!t || w(e, t)) return;
|
|
139
|
+
const i = m(t, e);
|
|
140
|
+
i && (t === e.language && r.changing > 0 || (r.requested.add(i), y(i, e).catch((n) => {
|
|
141
|
+
})));
|
|
142
|
+
}
|
|
143
|
+
const c = (e) => typeof e == "string" ? e === "ui" : e.includes("ui");
|
|
144
|
+
function w(e, r) {
|
|
145
|
+
if (!r) return !0;
|
|
146
|
+
const t = m(r, e);
|
|
147
|
+
if (!t) return !0;
|
|
148
|
+
const i = p(e);
|
|
149
|
+
return S(t, e).every(
|
|
150
|
+
(n) => v(n, e, i) || i.failed.has(n) || j(n, e)
|
|
108
151
|
);
|
|
109
152
|
}
|
|
110
|
-
|
|
111
|
-
|
|
153
|
+
function j(e, r) {
|
|
154
|
+
const t = r.getResourceBundle(e, "ui");
|
|
155
|
+
return !!(t != null && t.common && t.errorPage);
|
|
156
|
+
}
|
|
157
|
+
function O(e, r) {
|
|
158
|
+
return e.isInitialized && w(e, e.language) ? Promise.resolve() : new Promise((t) => {
|
|
159
|
+
const i = () => {
|
|
160
|
+
e.isInitialized && w(e, e.language) && (r.waiters.delete(i), t());
|
|
161
|
+
};
|
|
162
|
+
r.waiters.add(i), e.isInitialized && r.changing === 0 && z(e).catch((n) => {
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
function U(e) {
|
|
167
|
+
for (const r of [...e.waiters]) r();
|
|
168
|
+
}
|
|
169
|
+
function B(e, r) {
|
|
170
|
+
return r.services.languageUtils.toResolveHierarchy(e);
|
|
171
|
+
}
|
|
172
|
+
async function R(e, r) {
|
|
173
|
+
const t = m(e, r);
|
|
174
|
+
return t ? y(t, r) : !1;
|
|
175
|
+
}
|
|
176
|
+
function m(e, r) {
|
|
177
|
+
return [.../* @__PURE__ */ new Set([e, ...B(e, r)])].filter(Boolean).find((t) => I(t));
|
|
178
|
+
}
|
|
179
|
+
function S(e, r) {
|
|
180
|
+
const t = I(e);
|
|
181
|
+
return e !== t && !B(e, r).includes(t) ? [t, e] : [t];
|
|
182
|
+
}
|
|
183
|
+
function v(e, r, t) {
|
|
184
|
+
const i = r.getResourceBundle(e, "ui");
|
|
185
|
+
return !!i && t.completed.get(e) === i;
|
|
186
|
+
}
|
|
187
|
+
async function z(e) {
|
|
188
|
+
p(e).changing > 0 || await R(e.language, e);
|
|
189
|
+
}
|
|
190
|
+
async function P(e, r = d) {
|
|
191
|
+
await y(e, r);
|
|
192
|
+
}
|
|
193
|
+
async function y(e, r) {
|
|
194
|
+
if (!r.isInitialized)
|
|
112
195
|
throw new Error(
|
|
113
196
|
"Initialise the host i18next instance before loading UI locales."
|
|
114
197
|
);
|
|
115
|
-
const
|
|
116
|
-
if (!
|
|
117
|
-
const
|
|
118
|
-
if (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
198
|
+
const t = I(e);
|
|
199
|
+
if (!t) return !1;
|
|
200
|
+
const i = p(r), n = S(e, r);
|
|
201
|
+
if (n.every((a) => v(a, r, i)))
|
|
202
|
+
return !1;
|
|
203
|
+
const o = n.join(":"), u = i.pending.get(o);
|
|
204
|
+
if (u) return u.then(() => !1);
|
|
205
|
+
const s = (async () => {
|
|
206
|
+
try {
|
|
207
|
+
const l = await L[t]();
|
|
208
|
+
r.addResourceBundle(t, "ui", l, !0, !1);
|
|
209
|
+
for (const g of n)
|
|
210
|
+
g !== t && r.addResourceBundle(
|
|
211
|
+
g,
|
|
212
|
+
"ui",
|
|
213
|
+
r.getResourceBundle(t, "ui"),
|
|
214
|
+
!0,
|
|
215
|
+
!1
|
|
216
|
+
), i.completed.set(g, r.getResourceBundle(g, "ui"));
|
|
217
|
+
} catch (l) {
|
|
218
|
+
throw await E(t, n, r, i), l;
|
|
219
|
+
}
|
|
220
|
+
const a = n.some((l) => i.failed.delete(l)), h = i.requested.delete(t);
|
|
221
|
+
U(i), (a || h || m(r.language, r) === t) && r.emit("languageChanged", r.language);
|
|
136
222
|
})();
|
|
137
|
-
|
|
223
|
+
i.pending.set(o, s);
|
|
224
|
+
try {
|
|
225
|
+
await s;
|
|
226
|
+
} finally {
|
|
227
|
+
i.pending.delete(o);
|
|
228
|
+
}
|
|
229
|
+
return !0;
|
|
230
|
+
}
|
|
231
|
+
async function E(e, r, t, i) {
|
|
232
|
+
const n = i.waiters.size > 0 || i.requested.has(e) || m(t.language, t) === e;
|
|
233
|
+
if (i.requested.delete(e), !n) {
|
|
234
|
+
for (const o of r) i.failed.add(o);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
138
237
|
try {
|
|
139
|
-
await
|
|
238
|
+
e !== "en" && !C(t, i).includes("en") && await y("en", t).catch(() => !1);
|
|
239
|
+
const o = C(t, i);
|
|
240
|
+
o.length > 0 ? H(t, o[0]) : K(t);
|
|
140
241
|
} finally {
|
|
141
|
-
|
|
242
|
+
for (const o of r) i.failed.add(o);
|
|
243
|
+
U(i), t.isInitialized && t.emit("languageChanged", t.language);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function C(e, r) {
|
|
247
|
+
return Object.keys(L).filter(
|
|
248
|
+
(t) => v(t, e, r) || j(t, e)
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
function H(e, r) {
|
|
252
|
+
const t = e.options.fallbackLng, i = (n) => typeof n == "string" ? [n] : Array.isArray(n) ? n : [];
|
|
253
|
+
if (!(typeof t == "function" || t === !1)) {
|
|
254
|
+
if (t && typeof t == "object" && !Array.isArray(t)) {
|
|
255
|
+
const n = t;
|
|
256
|
+
i(n.default).includes(r) || (n.default = [...i(n.default), r]);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
i(t).includes(r) || (e.options.fallbackLng = [...i(t), r]);
|
|
142
260
|
}
|
|
143
261
|
}
|
|
144
|
-
|
|
262
|
+
function K(e) {
|
|
263
|
+
e.options.parseMissingKeyHandler || (e.options.parseMissingKeyHandler = (r, t, i) => {
|
|
264
|
+
if (t !== void 0) return t;
|
|
265
|
+
if (!(i != null && i.ns) || !c(i.ns)) return r;
|
|
266
|
+
const o = (r.split(/[.:]/).at(-1) ?? r).replace(/([a-z0-9])([A-Z])/g, "$1 $2").replaceAll("_", " ").toLowerCase();
|
|
267
|
+
return o.charAt(0).toUpperCase() + o.slice(1);
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
async function T(e = d) {
|
|
145
271
|
if (!e.isInitialized)
|
|
146
272
|
throw new Error(
|
|
147
273
|
"Initialise the host i18next instance before setting up UI translations."
|
|
148
274
|
);
|
|
149
|
-
p(e), await
|
|
275
|
+
p(e), await R(e.language, e);
|
|
150
276
|
}
|
|
151
|
-
async function
|
|
152
|
-
p(
|
|
277
|
+
async function $(e, r = d) {
|
|
278
|
+
p(r), await r.changeLanguage(e);
|
|
153
279
|
}
|
|
154
|
-
async function
|
|
280
|
+
async function V(e = d) {
|
|
155
281
|
await Promise.all(
|
|
156
|
-
|
|
282
|
+
Object.keys(L).map((r) => P(r, e))
|
|
157
283
|
);
|
|
158
284
|
}
|
|
159
|
-
|
|
285
|
+
d.isInitialized || d.use(x).init({
|
|
160
286
|
lng: "en",
|
|
161
287
|
fallbackLng: "en",
|
|
162
288
|
ns: ["ui"],
|
|
163
289
|
defaultNS: "ui",
|
|
164
290
|
partialBundledLanguages: !0,
|
|
165
|
-
debug:
|
|
166
|
-
saveMissing:
|
|
291
|
+
debug: A,
|
|
292
|
+
saveMissing: A,
|
|
167
293
|
missingKeyHandler: void 0,
|
|
168
294
|
interpolation: { escapeValue: !1 },
|
|
169
|
-
|
|
295
|
+
// English arrives through the lazy loader below, like every other locale.
|
|
296
|
+
resources: {}
|
|
170
297
|
});
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
298
|
+
p(d);
|
|
299
|
+
Promise.resolve().then(
|
|
300
|
+
() => d.isInitialized ? z(d) : void 0
|
|
301
|
+
).catch((e) => {
|
|
174
302
|
});
|
|
175
303
|
export {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
304
|
+
W as LOCALES_WITH_BUNDLES,
|
|
305
|
+
J as default,
|
|
306
|
+
T as initialiseUiI18n,
|
|
307
|
+
V as loadAllLocales,
|
|
308
|
+
P as loadLocale,
|
|
309
|
+
F as registerUiBundle,
|
|
310
|
+
I as resolveUiLanguage,
|
|
311
|
+
$ as setLocale
|
|
184
312
|
};
|
|
185
313
|
//# sourceMappingURL=config.js.map
|
|
@@ -2427,6 +2427,9 @@ export declare const arUi: {
|
|
|
2427
2427
|
readonly stay: "ابقَ في هذه الصفحة";
|
|
2428
2428
|
readonly stayed: "انتقل إلى منطقة المرضى عندما تكون مستعدًا للتأكيد.";
|
|
2429
2429
|
};
|
|
2430
|
+
readonly slotsLoadError: "تعذّر تحميل الأوقات المتاحة. يُرجى المحاولة مرة أخرى.";
|
|
2431
|
+
readonly retrySlots: "حاول مرة أخرى";
|
|
2432
|
+
readonly emptySlotsDescription: "جرّب مقدم خدمة آخر أو تواصل مع العيادة.";
|
|
2430
2433
|
};
|
|
2431
2434
|
readonly patientSearch: {
|
|
2432
2435
|
readonly regionLabel: "ابحث عن موعد";
|
package/dist/i18n/locales/ar.js
CHANGED
|
@@ -2419,7 +2419,10 @@ const e = {
|
|
|
2419
2419
|
goNow: "انتقل الآن",
|
|
2420
2420
|
stay: "ابقَ في هذه الصفحة",
|
|
2421
2421
|
stayed: "انتقل إلى منطقة المرضى عندما تكون مستعدًا للتأكيد."
|
|
2422
|
-
}
|
|
2422
|
+
},
|
|
2423
|
+
slotsLoadError: "تعذّر تحميل الأوقات المتاحة. يُرجى المحاولة مرة أخرى.",
|
|
2424
|
+
retrySlots: "حاول مرة أخرى",
|
|
2425
|
+
emptySlotsDescription: "جرّب مقدم خدمة آخر أو تواصل مع العيادة."
|
|
2423
2426
|
},
|
|
2424
2427
|
patientSearch: {
|
|
2425
2428
|
regionLabel: "ابحث عن موعد",
|