@alfadocs/ui-kit-debug 1.3.13 → 1.4.1
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/agenda-card.agent-Cb5tuEh3.js +28 -0
- package/dist/_chunks/agenda-card.agent-Cb5tuEh3.js.map +1 -0
- package/dist/_chunks/{alia-sidebar-DzNz1gDf.js → alia-sidebar-DSBZMick.js} +3 -3
- package/dist/_chunks/{alia-sidebar-DzNz1gDf.js.map → alia-sidebar-DSBZMick.js.map} +1 -1
- package/dist/_chunks/{anamnesis-i18n-CfC0qYzy.js → anamnesis-i18n-DZcrt8dP.js} +2141 -2069
- package/dist/_chunks/anamnesis-i18n-DZcrt8dP.js.map +1 -0
- package/dist/_chunks/{antenatal-schedule-timeline-BMMpi2lb.js → antenatal-schedule-timeline-u8TsS2QJ.js} +27 -26
- package/dist/_chunks/{antenatal-schedule-timeline-BMMpi2lb.js.map → antenatal-schedule-timeline-u8TsS2QJ.js.map} +1 -1
- package/dist/_chunks/{appointment-timeline-B630OT_J.js → appointment-timeline-Bqf1sTU5.js} +2 -2
- package/dist/_chunks/{appointment-timeline-B630OT_J.js.map → appointment-timeline-Bqf1sTU5.js.map} +1 -1
- package/dist/_chunks/{ar-THMLfSoN.js → ar-BR1FGFP2.js} +14 -14
- package/dist/_chunks/{ar-THMLfSoN.js.map → ar-BR1FGFP2.js.map} +1 -1
- package/dist/_chunks/{bmi-calculator-CM0-G2mg.js → bmi-calculator-CpyY13MV.js} +2 -2
- package/dist/_chunks/{bmi-calculator-CM0-G2mg.js.map → bmi-calculator-CpyY13MV.js.map} +1 -1
- package/dist/_chunks/{booking-DjNbd7C1.js → booking-BjsA7j1-.js} +699 -688
- package/dist/_chunks/booking-BjsA7j1-.js.map +1 -0
- package/dist/_chunks/calculator-dialog-12d3Sxaz.js +48 -0
- package/dist/_chunks/{calculator-dialog-DuXMQSdm.js.map → calculator-dialog-12d3Sxaz.js.map} +1 -1
- package/dist/_chunks/{care-plan-card-1G_f4I5s.js → care-plan-card-BvQy366X.js} +3 -3
- package/dist/_chunks/{care-plan-card-1G_f4I5s.js.map → care-plan-card-BvQy366X.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-DmBsffHS.js → care-plan-entry-card-apk_5B3O.js} +2 -2
- package/dist/_chunks/{care-plan-entry-card-DmBsffHS.js.map → care-plan-entry-card-apk_5B3O.js.map} +1 -1
- package/dist/_chunks/{chat-container-HlFnoEIl.js → chat-container-CYYego1W.js} +105 -81
- package/dist/_chunks/chat-container-CYYego1W.js.map +1 -0
- package/dist/_chunks/cycle-calculator-B7fyH-h4.js +425 -0
- package/dist/_chunks/cycle-calculator-B7fyH-h4.js.map +1 -0
- package/dist/_chunks/{date-picker-ZHejTVAJ.js → date-picker-Bp64zk2p.js} +19 -19
- package/dist/_chunks/{date-picker-ZHejTVAJ.js.map → date-picker-Bp64zk2p.js.map} +1 -1
- package/dist/_chunks/date-picker-variants-pKAJfnWr.js +2089 -0
- package/dist/_chunks/date-picker-variants-pKAJfnWr.js.map +1 -0
- package/dist/_chunks/{date-range-picker-pEG3Ln3i.js → date-range-picker-CDrZ8Zh0.js} +27 -27
- package/dist/_chunks/{date-range-picker-pEG3Ln3i.js.map → date-range-picker-CDrZ8Zh0.js.map} +1 -1
- package/dist/_chunks/{date-time-picker-695QvBGj.js → date-time-picker-DafkGDGO.js} +10 -10
- package/dist/_chunks/{date-time-picker-695QvBGj.js.map → date-time-picker-DafkGDGO.js.map} +1 -1
- package/dist/_chunks/{de-DmZ-8rTN.js → de-3iM4rGqo.js} +7 -7
- package/dist/_chunks/{de-DmZ-8rTN.js.map → de-3iM4rGqo.js.map} +1 -1
- package/dist/_chunks/{document-preview-D3gg4MXB.js → document-preview-DOrsqiN1.js} +2 -2
- package/dist/_chunks/{document-preview-D3gg4MXB.js.map → document-preview-DOrsqiN1.js.map} +1 -1
- package/dist/_chunks/due-date-calculator-CnkbbAej.js +571 -0
- package/dist/_chunks/due-date-calculator-CnkbbAej.js.map +1 -0
- package/dist/_chunks/{editor-overlay-DE3esyio.js → editor-overlay-B1tr2i7B.js} +22 -21
- package/dist/_chunks/editor-overlay-B1tr2i7B.js.map +1 -0
- package/dist/_chunks/{el-Bela9mxs.js → el-C96rGJvU.js} +2 -2
- package/dist/_chunks/{el-Bela9mxs.js.map → el-C96rGJvU.js.map} +1 -1
- package/dist/_chunks/{es-BNncHKex.js → es-Cxiqjx8r.js} +12 -12
- package/dist/_chunks/{es-BNncHKex.js.map → es-Cxiqjx8r.js.map} +1 -1
- package/dist/_chunks/fetal-weight-avlj-l-S.js +223 -0
- package/dist/_chunks/fetal-weight-avlj-l-S.js.map +1 -0
- package/dist/_chunks/format-4HNwNGrN.js +1315 -0
- package/dist/_chunks/format-4HNwNGrN.js.map +1 -0
- package/dist/_chunks/{fr-CH8ADfhN.js → fr-Bhr6SYKj.js} +21 -21
- package/dist/_chunks/{fr-CH8ADfhN.js.map → fr-Bhr6SYKj.js.map} +1 -1
- package/dist/_chunks/{freemium-paywall-C_Ue6wxU.js → freemium-paywall-DRDdWuOg.js} +3 -3
- package/dist/_chunks/{freemium-paywall-C_Ue6wxU.js.map → freemium-paywall-DRDdWuOg.js.map} +1 -1
- package/dist/_chunks/gestational-age-calculator-BljY_DVJ.js +488 -0
- package/dist/_chunks/gestational-age-calculator-BljY_DVJ.js.map +1 -0
- package/dist/_chunks/hcg-doubling-Cv_vH61p.js +312 -0
- package/dist/_chunks/hcg-doubling-Cv_vH61p.js.map +1 -0
- package/dist/_chunks/header-settings-Cn5fPXCE.js +335 -0
- package/dist/_chunks/header-settings-Cn5fPXCE.js.map +1 -0
- package/dist/_chunks/{hi-Bppfxp8l.js → hi-BxXX26d_.js} +12 -12
- package/dist/_chunks/{hi-Bppfxp8l.js.map → hi-BxXX26d_.js.map} +1 -1
- package/dist/_chunks/isSameWeek-B73MagWB.js +13 -0
- package/dist/_chunks/{isSameWeek-CK4HS9lH.js.map → isSameWeek-B73MagWB.js.map} +1 -1
- package/dist/_chunks/{it-B4ySaRyK.js → it-Xmjomvyj.js} +24 -24
- package/dist/_chunks/{it-B4ySaRyK.js.map → it-Xmjomvyj.js.map} +1 -1
- package/dist/_chunks/{ja-CGF6Io9P.js → ja-mfZvt1ZV.js} +16 -16
- package/dist/_chunks/{ja-CGF6Io9P.js.map → ja-mfZvt1ZV.js.map} +1 -1
- package/dist/_chunks/{link-cell-renderer-C5XLwVXQ.js → link-cell-renderer-CJ_gk7gl.js} +3 -3
- package/dist/_chunks/{link-cell-renderer-C5XLwVXQ.js.map → link-cell-renderer-CJ_gk7gl.js.map} +1 -1
- package/dist/_chunks/{locale-picker-BfBUdT1m.js → locale-picker-D9Kv2zrK.js} +153 -132
- package/dist/_chunks/locale-picker-D9Kv2zrK.js.map +1 -0
- package/dist/_chunks/map-view-2yZCQW2l.js +445 -0
- package/dist/_chunks/map-view-2yZCQW2l.js.map +1 -0
- package/dist/_chunks/{marketplace-app-shell-DwcFMxzp.js → marketplace-app-shell-BLRvg-M0.js} +49 -40
- package/dist/_chunks/marketplace-app-shell-BLRvg-M0.js.map +1 -0
- package/dist/_chunks/{nl-DuShqwuV.js → nl-DDs-KEnD.js} +15 -15
- package/dist/_chunks/{nl-DuShqwuV.js.map → nl-DDs-KEnD.js.map} +1 -1
- package/dist/_chunks/{notes-panel-DPsgB4Mv.js → notes-panel-CiFN3sLW.js} +2 -2
- package/dist/_chunks/{notes-panel-DPsgB4Mv.js.map → notes-panel-CiFN3sLW.js.map} +1 -1
- package/dist/_chunks/{number-input-DrozbZAU.js → number-input-DOe5VYei.js} +64 -64
- package/dist/_chunks/number-input-DOe5VYei.js.map +1 -0
- package/dist/_chunks/{optical-prescription-BDHJr8Zz.js → optical-prescription-CRemE8fL.js} +2 -2
- package/dist/_chunks/{optical-prescription-BDHJr8Zz.js.map → optical-prescription-CRemE8fL.js.map} +1 -1
- package/dist/_chunks/{parse-DvA97ro9.js → parse-JqixfsU0.js} +43 -43
- package/dist/_chunks/{parse-DvA97ro9.js.map → parse-JqixfsU0.js.map} +1 -1
- package/dist/_chunks/parseISO-fOGpHKXm.js +120 -0
- package/dist/_chunks/parseISO-fOGpHKXm.js.map +1 -0
- package/dist/_chunks/{patient-details-DqjjwPmt.js → patient-details-CpunD0qx.js} +3 -3
- package/dist/_chunks/{patient-details-DqjjwPmt.js.map → patient-details-CpunD0qx.js.map} +1 -1
- package/dist/_chunks/{patient-table-BmIDrLIS.js → patient-table-2eWx-Rrk.js} +2 -2
- package/dist/_chunks/{patient-table-BmIDrLIS.js.map → patient-table-2eWx-Rrk.js.map} +1 -1
- package/dist/_chunks/{payment-form-h-BZ8onk.js → payment-form-Ds1I9KqB.js} +308 -231
- package/dist/_chunks/payment-form-Ds1I9KqB.js.map +1 -0
- package/dist/_chunks/{pdf-viewer-Ddx-T053.js → pdf-viewer-DUIsV9s5.js} +429 -369
- package/dist/_chunks/pdf-viewer-DUIsV9s5.js.map +1 -0
- package/dist/_chunks/{pl-CKQwX9Fk.js → pl-BYYMnEWP.js} +18 -18
- package/dist/_chunks/{pl-CKQwX9Fk.js.map → pl-BYYMnEWP.js.map} +1 -1
- package/dist/_chunks/{practice-results-B-HPc13W.js → practice-results-SjCniMd2.js} +2 -2
- package/dist/_chunks/{practice-results-B-HPc13W.js.map → practice-results-SjCniMd2.js.map} +1 -1
- package/dist/_chunks/pregnancy-dating-BmpHScZ0.js +770 -0
- package/dist/_chunks/pregnancy-dating-BmpHScZ0.js.map +1 -0
- package/dist/_chunks/pregnancy-weight-gain-B5KSJzdc.js +553 -0
- package/dist/_chunks/pregnancy-weight-gain-B5KSJzdc.js.map +1 -0
- package/dist/_chunks/progress-CK8otcQ-.js +343 -0
- package/dist/_chunks/progress-CK8otcQ-.js.map +1 -0
- package/dist/_chunks/{pt-_njpXyOZ.js → pt-BSPnVrQ7.js} +20 -20
- package/dist/_chunks/{pt-_njpXyOZ.js.map → pt-BSPnVrQ7.js.map} +1 -1
- package/dist/_chunks/{radiograph-panel.agent-BQZ64Riy.js → radiograph-panel.agent-CtFtNMzk.js} +3 -3
- package/dist/_chunks/{radiograph-panel.agent-BQZ64Riy.js.map → radiograph-panel.agent-CtFtNMzk.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-CfeXPPWs.js → rich-text-editor-BedTpWzL.js} +2 -2
- package/dist/_chunks/{rich-text-editor-CfeXPPWs.js.map → rich-text-editor-BedTpWzL.js.map} +1 -1
- package/dist/_chunks/{ro-3X6_4FcN.js → ro-BbiylGmG.js} +14 -14
- package/dist/_chunks/{ro-3X6_4FcN.js.map → ro-BbiylGmG.js.map} +1 -1
- package/dist/_chunks/{ru-bAcgmnS-.js → ru-BX_qsV67.js} +14 -14
- package/dist/_chunks/{ru-bAcgmnS-.js.map → ru-BX_qsV67.js.map} +1 -1
- package/dist/_chunks/{session-countdown-Bc70VXN1.js → session-countdown-BL-Psg8u.js} +2 -2
- package/dist/_chunks/{session-countdown-Bc70VXN1.js.map → session-countdown-BL-Psg8u.js.map} +1 -1
- package/dist/_chunks/{sign-document-CW_ByDUh.js → sign-document-jF4fZDJ5.js} +2 -2
- package/dist/_chunks/{sign-document-CW_ByDUh.js.map → sign-document-jF4fZDJ5.js.map} +1 -1
- package/dist/_chunks/slot-grid-DNiUcXy2.js +640 -0
- package/dist/_chunks/slot-grid-DNiUcXy2.js.map +1 -0
- package/dist/_chunks/{sparkline-BTY4B5tv.js → sparkline-BmGcEyZO.js} +209 -164
- package/dist/_chunks/sparkline-BmGcEyZO.js.map +1 -0
- package/dist/_chunks/{sq-jYFqr4Ga.js → sq-i9UOk4P7.js} +10 -10
- package/dist/_chunks/{sq-jYFqr4Ga.js.map → sq-i9UOk4P7.js.map} +1 -1
- package/dist/_chunks/subDays-CAUv47M1.js +8 -0
- package/dist/_chunks/{subDays-BcNi04uf.js.map → subDays-CAUv47M1.js.map} +1 -1
- package/dist/_chunks/{sv-BSGEJ-8B.js → sv-CpTdtmDQ.js} +8 -8
- package/dist/_chunks/{sv-BSGEJ-8B.js.map → sv-CpTdtmDQ.js.map} +1 -1
- package/dist/_chunks/{tab-bar-Axhk6xzx.js → tab-bar-BYESZINM.js} +83 -77
- package/dist/_chunks/tab-bar-BYESZINM.js.map +1 -0
- package/dist/_chunks/task-card.agent-CF2N_uu4.js +29 -0
- package/dist/_chunks/task-card.agent-CF2N_uu4.js.map +1 -0
- package/dist/_chunks/{tr-CTpgUtw6.js → tr-DXG2QN1K.js} +17 -17
- package/dist/_chunks/{tr-CTpgUtw6.js.map → tr-DXG2QN1K.js.map} +1 -1
- package/dist/_chunks/{unit-converter-COgkN7YP.js → unit-converter-CHPDuV7W.js} +2 -2
- package/dist/_chunks/{unit-converter-COgkN7YP.js.map → unit-converter-CHPDuV7W.js.map} +1 -1
- package/dist/_chunks/{warning-stack-BtjmJChC.js → warning-stack-B7t_8jRE.js} +42 -37
- package/dist/_chunks/{warning-stack-BtjmJChC.js.map → warning-stack-B7t_8jRE.js.map} +1 -1
- package/dist/_chunks/{zh-CN-BgM0Io2O.js → zh-CN-vPkPEK6H.js} +18 -18
- package/dist/_chunks/{zh-CN-BgM0Io2O.js.map → zh-CN-vPkPEK6H.js.map} +1 -1
- package/dist/agent-catalog.json +6426 -3382
- package/dist/agent-i18n/en.json +234 -15
- package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -1
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/booking.d.ts.map +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/calculator-dialog/calculator-dialog.d.ts.map +1 -1
- package/dist/components/calculator-dialog/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -1
- package/dist/components/chat-container/chat-container.d.ts +14 -0
- package/dist/components/chat-container/chat-container.d.ts.map +1 -1
- package/dist/components/chat-container/index.js +1 -1
- package/dist/components/cycle-calculator/cycle-calculator.agent.d.ts +4 -0
- package/dist/components/cycle-calculator/cycle-calculator.agent.d.ts.map +1 -0
- package/dist/components/cycle-calculator/cycle-calculator.d.ts +42 -0
- package/dist/components/cycle-calculator/cycle-calculator.d.ts.map +1 -1
- package/dist/components/cycle-calculator/index.d.ts +1 -1
- package/dist/components/cycle-calculator/index.d.ts.map +1 -1
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/due-date-calculator/due-date-calculator.agent.d.ts +4 -0
- package/dist/components/due-date-calculator/due-date-calculator.agent.d.ts.map +1 -0
- package/dist/components/due-date-calculator/due-date-calculator.d.ts +61 -1
- package/dist/components/due-date-calculator/due-date-calculator.d.ts.map +1 -1
- package/dist/components/due-date-calculator/index.d.ts +1 -1
- package/dist/components/due-date-calculator/index.d.ts.map +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- package/dist/components/editor-overlay/editor-overlay.d.ts +7 -1
- package/dist/components/editor-overlay/editor-overlay.d.ts.map +1 -1
- package/dist/components/editor-overlay/index.js +1 -1
- package/dist/components/fetal-weight/fetal-weight.agent.d.ts +4 -0
- package/dist/components/fetal-weight/fetal-weight.agent.d.ts.map +1 -0
- package/dist/components/fetal-weight/fetal-weight.d.ts +26 -0
- package/dist/components/fetal-weight/fetal-weight.d.ts.map +1 -1
- package/dist/components/fetal-weight/index.d.ts +1 -1
- package/dist/components/fetal-weight/index.d.ts.map +1 -1
- package/dist/components/fetal-weight/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/gestational-age-calculator.agent.d.ts +4 -0
- package/dist/components/gestational-age-calculator/gestational-age-calculator.agent.d.ts.map +1 -0
- package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +44 -2
- package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts.map +1 -1
- package/dist/components/gestational-age-calculator/index.d.ts +1 -1
- package/dist/components/gestational-age-calculator/index.d.ts.map +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/hcg-doubling/hcg-doubling.agent.d.ts +4 -0
- package/dist/components/hcg-doubling/hcg-doubling.agent.d.ts.map +1 -0
- package/dist/components/hcg-doubling/hcg-doubling.d.ts +30 -0
- package/dist/components/hcg-doubling/hcg-doubling.d.ts.map +1 -1
- package/dist/components/hcg-doubling/index.d.ts +1 -1
- package/dist/components/hcg-doubling/index.d.ts.map +1 -1
- package/dist/components/hcg-doubling/index.js +1 -1
- package/dist/components/header-settings/header-settings.agent.d.ts.map +1 -1
- package/dist/components/header-settings/header-settings.d.ts +13 -1
- package/dist/components/header-settings/header-settings.d.ts.map +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/locale-picker/locale-picker.agent.d.ts.map +1 -1
- package/dist/components/locale-picker/locale-picker.d.ts +9 -0
- package/dist/components/locale-picker/locale-picker.d.ts.map +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/map-view/map-view.agent.d.ts.map +1 -1
- package/dist/components/map-view/map-view.d.ts +22 -0
- package/dist/components/map-view/map-view.d.ts.map +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/number-input/index.js +1 -1
- package/dist/components/number-input/number-input.d.ts +2 -1
- package/dist/components/number-input/number-input.d.ts.map +1 -1
- package/dist/components/optical-prescription/index.js +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-form/index.d.ts +1 -1
- package/dist/components/payment-form/index.d.ts.map +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
- package/dist/components/payment-form/payment-form.d.ts +32 -1
- package/dist/components/payment-form/payment-form.d.ts.map +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.d.ts +13 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.d.ts +1 -1
- package/dist/components/pregnancy-dating/index.d.ts.map +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/pregnancy-dating/pregnancy-dating.agent.d.ts +4 -0
- package/dist/components/pregnancy-dating/pregnancy-dating.agent.d.ts.map +1 -0
- package/dist/components/pregnancy-dating/pregnancy-dating.d.ts +65 -1
- package/dist/components/pregnancy-dating/pregnancy-dating.d.ts.map +1 -1
- package/dist/components/pregnancy-weight-gain/index.d.ts +2 -1
- package/dist/components/pregnancy-weight-gain/index.d.ts.map +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +6 -5
- package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.agent.d.ts +4 -0
- package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.agent.d.ts.map +1 -0
- package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +35 -0
- package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts.map +1 -1
- package/dist/components/progress/index.js +1 -1
- package/dist/components/progress/progress.agent.d.ts.map +1 -1
- package/dist/components/progress/progress.d.ts +13 -0
- package/dist/components/progress/progress.d.ts.map +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/session-countdown/index.js +1 -1
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/slot-grid/index.d.ts +2 -1
- package/dist/components/slot-grid/index.d.ts.map +1 -1
- package/dist/components/slot-grid/index.js +5 -4
- package/dist/components/slot-grid/slot-grid.agent.d.ts +4 -0
- package/dist/components/slot-grid/slot-grid.agent.d.ts.map +1 -0
- package/dist/components/slot-grid/slot-grid.d.ts +34 -0
- package/dist/components/slot-grid/slot-grid.d.ts.map +1 -1
- package/dist/components/sparkline/index.js +1 -1
- package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
- package/dist/components/sparkline/sparkline.d.ts +10 -0
- package/dist/components/sparkline/sparkline.d.ts.map +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tab-bar/tab-bar.d.ts +13 -0
- package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-card/task-card.agent.d.ts.map +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
- package/dist/index.js +630 -627
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/anamnesis-compare-panel.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-compile.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-derive.d.ts +27 -8
- package/dist/patterns/anamnesis/anamnesis-derive.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-events.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-evolution-grid.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-field.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-format.d.ts +11 -3
- package/dist/patterns/anamnesis/anamnesis-format.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-highlight.d.ts +6 -0
- package/dist/patterns/anamnesis/anamnesis-highlight.d.ts.map +1 -0
- package/dist/patterns/anamnesis/anamnesis-intake.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-matrix.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-questionnaire.d.ts +23 -9
- package/dist/patterns/anamnesis/anamnesis-questionnaire.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-readonly.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-target-strip.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-types.d.ts +7 -0
- package/dist/patterns/anamnesis/anamnesis-types.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis-visit-note.d.ts.map +1 -1
- package/dist/patterns/anamnesis/anamnesis.d.ts +16 -7
- package/dist/patterns/anamnesis/anamnesis.d.ts.map +1 -1
- package/dist/patterns/anamnesis/index.d.ts +3 -2
- package/dist/patterns/anamnesis/index.d.ts.map +1 -1
- package/dist/patterns/anamnesis/index.js +7 -6
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +6 -0
- package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts.map +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/agenda-card.agent-mTCrkKSZ.js +0 -27
- package/dist/_chunks/agenda-card.agent-mTCrkKSZ.js.map +0 -1
- package/dist/_chunks/anamnesis-i18n-CfC0qYzy.js.map +0 -1
- package/dist/_chunks/booking-DjNbd7C1.js.map +0 -1
- package/dist/_chunks/calculator-dialog-DuXMQSdm.js +0 -40
- package/dist/_chunks/chat-container-HlFnoEIl.js.map +0 -1
- package/dist/_chunks/cycle-calculator-BwqYVPB4.js +0 -252
- package/dist/_chunks/cycle-calculator-BwqYVPB4.js.map +0 -1
- package/dist/_chunks/date-picker-variants-eL6HjWvw.js +0 -3363
- package/dist/_chunks/date-picker-variants-eL6HjWvw.js.map +0 -1
- package/dist/_chunks/due-date-calculator-CwfsFd3T.js +0 -256
- package/dist/_chunks/due-date-calculator-CwfsFd3T.js.map +0 -1
- package/dist/_chunks/editor-overlay-DE3esyio.js.map +0 -1
- package/dist/_chunks/fetal-weight-ePlLjJPc.js +0 -122
- package/dist/_chunks/fetal-weight-ePlLjJPc.js.map +0 -1
- package/dist/_chunks/gestational-age-calculator-DdgbH69Z.js +0 -311
- package/dist/_chunks/gestational-age-calculator-DdgbH69Z.js.map +0 -1
- package/dist/_chunks/hcg-doubling-BBqD2wI2.js +0 -170
- package/dist/_chunks/hcg-doubling-BBqD2wI2.js.map +0 -1
- package/dist/_chunks/header-settings--pjYOe6g.js +0 -284
- package/dist/_chunks/header-settings--pjYOe6g.js.map +0 -1
- package/dist/_chunks/isSameDay-DUEiAT0G.js +0 -39
- package/dist/_chunks/isSameDay-DUEiAT0G.js.map +0 -1
- package/dist/_chunks/isSameWeek-CK4HS9lH.js +0 -14
- package/dist/_chunks/locale-picker-BfBUdT1m.js.map +0 -1
- package/dist/_chunks/map-view-CsaHfoo6.js +0 -378
- package/dist/_chunks/map-view-CsaHfoo6.js.map +0 -1
- package/dist/_chunks/marketplace-app-shell-DwcFMxzp.js.map +0 -1
- package/dist/_chunks/number-input-DrozbZAU.js.map +0 -1
- package/dist/_chunks/payment-form-h-BZ8onk.js.map +0 -1
- package/dist/_chunks/pdf-viewer-Ddx-T053.js.map +0 -1
- package/dist/_chunks/pregnancy-dating-DzYTlBkT.js +0 -421
- package/dist/_chunks/pregnancy-dating-DzYTlBkT.js.map +0 -1
- package/dist/_chunks/pregnancy-weight-gain-O6J0sUIi.js +0 -322
- package/dist/_chunks/pregnancy-weight-gain-O6J0sUIi.js.map +0 -1
- package/dist/_chunks/progress-DA413-zn.js +0 -299
- package/dist/_chunks/progress-DA413-zn.js.map +0 -1
- package/dist/_chunks/slot-grid-CQSULZjd.js +0 -502
- package/dist/_chunks/slot-grid-CQSULZjd.js.map +0 -1
- package/dist/_chunks/sparkline-BTY4B5tv.js.map +0 -1
- package/dist/_chunks/subDays-BcNi04uf.js +0 -8
- package/dist/_chunks/tab-bar-Axhk6xzx.js.map +0 -1
- package/dist/_chunks/task-card.agent-Bt14CzUd.js +0 -25
- package/dist/_chunks/task-card.agent-Bt14CzUd.js.map +0 -1
|
@@ -1,502 +0,0 @@
|
|
|
1
|
-
import { jsx as i, jsxs as C } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as pe, useId as he, useState as ve, useCallback as S } from "react";
|
|
3
|
-
import { c as b } from "./index-D2ZczOXr.js";
|
|
4
|
-
import { useTranslation as be } from "react-i18next";
|
|
5
|
-
import { B as Y } from "./button-CPGiR_bH.js";
|
|
6
|
-
import { I as A } from "./icon-button-C_kbcd7I.js";
|
|
7
|
-
import { E as xe } from "./empty-state-CrLsi0XI.js";
|
|
8
|
-
import { S as B } from "./skeleton-CZbwyJAA.js";
|
|
9
|
-
import { t as W, c as De, m as K, a as Z, i as ye } from "./isSameDay-DUEiAT0G.js";
|
|
10
|
-
function Ne(t, e) {
|
|
11
|
-
const s = () => De(e == null ? void 0 : e.in, NaN), n = Te(t);
|
|
12
|
-
let d;
|
|
13
|
-
if (n.date) {
|
|
14
|
-
const o = Ie(n.date, 2);
|
|
15
|
-
d = ze(o.restDateString, o.year);
|
|
16
|
-
}
|
|
17
|
-
if (!d || isNaN(+d)) return s();
|
|
18
|
-
const l = +d;
|
|
19
|
-
let u = 0, f;
|
|
20
|
-
if (n.time && (u = Le(n.time), isNaN(u)))
|
|
21
|
-
return s();
|
|
22
|
-
if (n.timezone) {
|
|
23
|
-
if (f = Se(n.timezone), isNaN(f)) return s();
|
|
24
|
-
} else {
|
|
25
|
-
const o = new Date(l + u), x = W(0, e == null ? void 0 : e.in);
|
|
26
|
-
return x.setFullYear(
|
|
27
|
-
o.getUTCFullYear(),
|
|
28
|
-
o.getUTCMonth(),
|
|
29
|
-
o.getUTCDate()
|
|
30
|
-
), x.setHours(
|
|
31
|
-
o.getUTCHours(),
|
|
32
|
-
o.getUTCMinutes(),
|
|
33
|
-
o.getUTCSeconds(),
|
|
34
|
-
o.getUTCMilliseconds()
|
|
35
|
-
), x;
|
|
36
|
-
}
|
|
37
|
-
return W(l + u + f, e == null ? void 0 : e.in);
|
|
38
|
-
}
|
|
39
|
-
const k = {
|
|
40
|
-
dateTimeDelimiter: /[T ]/,
|
|
41
|
-
timeZoneDelimiter: /[Z ]/i,
|
|
42
|
-
timezone: /([Z+-].*)$/
|
|
43
|
-
}, we = /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/, Ce = /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/, ke = /^([+-])(\d{2})(?::?(\d{2}))?$/;
|
|
44
|
-
function Te(t) {
|
|
45
|
-
const e = {}, s = t.split(k.dateTimeDelimiter);
|
|
46
|
-
let a;
|
|
47
|
-
if (s.length > 2)
|
|
48
|
-
return e;
|
|
49
|
-
if (/:/.test(s[0]) ? a = s[0] : (e.date = s[0], a = s[1], k.timeZoneDelimiter.test(e.date) && (e.date = t.split(k.timeZoneDelimiter)[0], a = t.substr(
|
|
50
|
-
e.date.length,
|
|
51
|
-
t.length
|
|
52
|
-
))), a) {
|
|
53
|
-
const n = k.timezone.exec(a);
|
|
54
|
-
n ? (e.time = a.replace(n[1], ""), e.timezone = n[1]) : e.time = a;
|
|
55
|
-
}
|
|
56
|
-
return e;
|
|
57
|
-
}
|
|
58
|
-
function Ie(t, e) {
|
|
59
|
-
const s = new RegExp(
|
|
60
|
-
"^(?:(\\d{4}|[+-]\\d{" + (4 + e) + "})|(\\d{2}|[+-]\\d{" + (2 + e) + "})$)"
|
|
61
|
-
), a = t.match(s);
|
|
62
|
-
if (!a) return { year: NaN, restDateString: "" };
|
|
63
|
-
const n = a[1] ? parseInt(a[1]) : null, d = a[2] ? parseInt(a[2]) : null;
|
|
64
|
-
return {
|
|
65
|
-
year: d === null ? n : d * 100,
|
|
66
|
-
restDateString: t.slice((a[1] || a[2]).length)
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
function ze(t, e) {
|
|
70
|
-
if (e === null) return /* @__PURE__ */ new Date(NaN);
|
|
71
|
-
const s = t.match(we);
|
|
72
|
-
if (!s) return /* @__PURE__ */ new Date(NaN);
|
|
73
|
-
const a = !!s[4], n = D(s[1]), d = D(s[2]) - 1, l = D(s[3]), u = D(s[4]), f = D(s[5]) - 1;
|
|
74
|
-
if (a)
|
|
75
|
-
return je(e, u, f) ? $e(e, u, f) : /* @__PURE__ */ new Date(NaN);
|
|
76
|
-
{
|
|
77
|
-
const o = /* @__PURE__ */ new Date(0);
|
|
78
|
-
return !Ge(e, d, l) || !Ve(e, n) ? /* @__PURE__ */ new Date(NaN) : (o.setUTCFullYear(e, d, Math.max(n, l)), o);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function D(t) {
|
|
82
|
-
return t ? parseInt(t) : 1;
|
|
83
|
-
}
|
|
84
|
-
function Le(t) {
|
|
85
|
-
const e = t.match(Ce);
|
|
86
|
-
if (!e) return NaN;
|
|
87
|
-
const s = $(e[1]), a = $(e[2]), n = $(e[3]);
|
|
88
|
-
return Ee(s, a, n) ? s * K + a * Z + n * 1e3 : NaN;
|
|
89
|
-
}
|
|
90
|
-
function $(t) {
|
|
91
|
-
return t && parseFloat(t.replace(",", ".")) || 0;
|
|
92
|
-
}
|
|
93
|
-
function Se(t) {
|
|
94
|
-
if (t === "Z") return 0;
|
|
95
|
-
const e = t.match(ke);
|
|
96
|
-
if (!e) return 0;
|
|
97
|
-
const s = e[1] === "+" ? -1 : 1, a = parseInt(e[2]), n = e[3] && parseInt(e[3]) || 0;
|
|
98
|
-
return Fe(a, n) ? s * (a * K + n * Z) : NaN;
|
|
99
|
-
}
|
|
100
|
-
function $e(t, e, s) {
|
|
101
|
-
const a = /* @__PURE__ */ new Date(0);
|
|
102
|
-
a.setUTCFullYear(t, 0, 4);
|
|
103
|
-
const n = a.getUTCDay() || 7, d = (e - 1) * 7 + s + 1 - n;
|
|
104
|
-
return a.setUTCDate(a.getUTCDate() + d), a;
|
|
105
|
-
}
|
|
106
|
-
const Ue = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
107
|
-
function J(t) {
|
|
108
|
-
return t % 400 === 0 || t % 4 === 0 && t % 100 !== 0;
|
|
109
|
-
}
|
|
110
|
-
function Ge(t, e, s) {
|
|
111
|
-
return e >= 0 && e <= 11 && s >= 1 && s <= (Ue[e] || (J(t) ? 29 : 28));
|
|
112
|
-
}
|
|
113
|
-
function Ve(t, e) {
|
|
114
|
-
return e >= 1 && e <= (J(t) ? 366 : 365);
|
|
115
|
-
}
|
|
116
|
-
function je(t, e, s) {
|
|
117
|
-
return e >= 1 && e <= 53 && s >= 0 && s <= 6;
|
|
118
|
-
}
|
|
119
|
-
function Ee(t, e, s) {
|
|
120
|
-
return t === 24 ? e === 0 && s === 0 : s >= 0 && s < 60 && e >= 0 && e < 60 && t >= 0 && t < 25;
|
|
121
|
-
}
|
|
122
|
-
function Fe(t, e) {
|
|
123
|
-
return e >= 0 && e <= 59;
|
|
124
|
-
}
|
|
125
|
-
const Re = b(
|
|
126
|
-
[
|
|
127
|
-
"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]",
|
|
128
|
-
"ds:text-[var(--foreground)]",
|
|
129
|
-
"ds:w-full"
|
|
130
|
-
].join(" "),
|
|
131
|
-
{
|
|
132
|
-
variants: {
|
|
133
|
-
size: {
|
|
134
|
-
sm: "ds:text-[length:var(--font-size-sm)]",
|
|
135
|
-
md: "ds:text-[length:var(--font-size-base)]",
|
|
136
|
-
lg: "ds:text-[length:var(--font-size-lg)]"
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
defaultVariants: { size: "md" }
|
|
140
|
-
}
|
|
141
|
-
), Me = b(
|
|
142
|
-
"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:w-full"
|
|
143
|
-
), Oe = 12, Ye = b(
|
|
144
|
-
"ds:grid ds:gap-[var(--spacing-sm)] ds:w-full ds:auto-rows-min ds:items-start",
|
|
145
|
-
{
|
|
146
|
-
variants: {
|
|
147
|
-
cols: {
|
|
148
|
-
1: "ds:grid-cols-1",
|
|
149
|
-
2: "ds:grid-cols-2",
|
|
150
|
-
3: "ds:grid-cols-3",
|
|
151
|
-
4: "ds:grid-cols-4",
|
|
152
|
-
5: "ds:grid-cols-5",
|
|
153
|
-
6: "ds:grid-cols-6",
|
|
154
|
-
7: "ds:grid-cols-7",
|
|
155
|
-
8: "ds:grid-cols-8",
|
|
156
|
-
9: "ds:grid-cols-9",
|
|
157
|
-
10: "ds:grid-cols-10",
|
|
158
|
-
11: "ds:grid-cols-11",
|
|
159
|
-
12: "ds:grid-cols-12"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
defaultVariants: { cols: 1 }
|
|
163
|
-
}
|
|
164
|
-
);
|
|
165
|
-
function Ae(t) {
|
|
166
|
-
return Math.max(1, Math.min(t, Oe));
|
|
167
|
-
}
|
|
168
|
-
const H = b(
|
|
169
|
-
[
|
|
170
|
-
"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]",
|
|
171
|
-
"ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
|
|
172
|
-
"ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]",
|
|
173
|
-
"ds:rounded-[var(--radius-md)]",
|
|
174
|
-
"ds:bg-[var(--card)]",
|
|
175
|
-
"ds:min-w-0"
|
|
176
|
-
].join(" ")
|
|
177
|
-
), Be = b(
|
|
178
|
-
[
|
|
179
|
-
"ds:font-[var(--font-weight-semibold)]",
|
|
180
|
-
"ds:text-[var(--foreground)]",
|
|
181
|
-
"ds:text-start",
|
|
182
|
-
"ds:truncate"
|
|
183
|
-
].join(" "),
|
|
184
|
-
{
|
|
185
|
-
variants: {
|
|
186
|
-
size: {
|
|
187
|
-
sm: "ds:text-[length:var(--font-size-xs)]",
|
|
188
|
-
md: "ds:text-[length:var(--font-size-sm)]",
|
|
189
|
-
lg: "ds:text-[length:var(--font-size-base)]"
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
defaultVariants: { size: "md" }
|
|
193
|
-
}
|
|
194
|
-
), _ = b(
|
|
195
|
-
"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full ds:m-0 ds:p-0 ds:list-none"
|
|
196
|
-
), We = b(
|
|
197
|
-
[
|
|
198
|
-
"ds:inline-flex ds:items-center ds:justify-center",
|
|
199
|
-
"ds:w-full",
|
|
200
|
-
"ds:rounded-[var(--radius-sm)]",
|
|
201
|
-
"ds:font-[var(--font-weight-medium)]",
|
|
202
|
-
"ds:bg-[var(--secondary)]",
|
|
203
|
-
"ds:shadow-[var(--shadow-sm)]",
|
|
204
|
-
"ds:text-[var(--foreground)]",
|
|
205
|
-
"ds:transition-[background-color,color,box-shadow]",
|
|
206
|
-
"ds:duration-[var(--animation-duration)]",
|
|
207
|
-
"ds:motion-reduce:transition-none",
|
|
208
|
-
"ds:focus-visible:outline-[var(--focus-ring-width)]",
|
|
209
|
-
"ds:focus-visible:outline-solid",
|
|
210
|
-
"ds:focus-visible:outline-[var(--ring)]",
|
|
211
|
-
"ds:focus-visible:outline-offset-[var(--focus-ring-offset)]",
|
|
212
|
-
"ds:min-h-[var(--min-target-size)]",
|
|
213
|
-
"ds:disabled:opacity-50 ds:disabled:cursor-not-allowed ds:disabled:shadow-none",
|
|
214
|
-
"ds:aria-disabled:opacity-50 ds:aria-disabled:cursor-not-allowed ds:aria-disabled:shadow-none",
|
|
215
|
-
"ds:hover:enabled:shadow-[var(--shadow-md)]",
|
|
216
|
-
"ds:aria-pressed:bg-[var(--primary)] ds:aria-pressed:text-[var(--primary-foreground)]"
|
|
217
|
-
].join(" "),
|
|
218
|
-
{
|
|
219
|
-
variants: {
|
|
220
|
-
size: {
|
|
221
|
-
sm: "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:text-[length:var(--font-size-xs)] ds:h-8",
|
|
222
|
-
md: "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-sm)] ds:h-10",
|
|
223
|
-
lg: "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-base)] ds:h-12"
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
defaultVariants: { size: "md" }
|
|
227
|
-
}
|
|
228
|
-
);
|
|
229
|
-
function v(t) {
|
|
230
|
-
return t instanceof Date ? t : Ne(t);
|
|
231
|
-
}
|
|
232
|
-
function rt(t, e) {
|
|
233
|
-
return ye(v(t), v(e));
|
|
234
|
-
}
|
|
235
|
-
function it(t) {
|
|
236
|
-
for (const e of t) {
|
|
237
|
-
const s = e.slots.find((a) => a.available !== !1);
|
|
238
|
-
if (s) return { day: e, slot: s };
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
function X(t, e, s) {
|
|
242
|
-
try {
|
|
243
|
-
return new Intl.DateTimeFormat(e, {
|
|
244
|
-
weekday: "short",
|
|
245
|
-
month: "short",
|
|
246
|
-
day: "numeric",
|
|
247
|
-
timeZone: s
|
|
248
|
-
}).format(t);
|
|
249
|
-
} catch {
|
|
250
|
-
return new Intl.DateTimeFormat("en", {
|
|
251
|
-
weekday: "short",
|
|
252
|
-
month: "short",
|
|
253
|
-
day: "numeric"
|
|
254
|
-
}).format(t);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
function q(t, e, s) {
|
|
258
|
-
if (t.label !== void 0) return t.label;
|
|
259
|
-
const a = v(t.start);
|
|
260
|
-
try {
|
|
261
|
-
const n = new Intl.DateTimeFormat(e, {
|
|
262
|
-
hour: "numeric",
|
|
263
|
-
minute: "2-digit",
|
|
264
|
-
timeZone: s
|
|
265
|
-
});
|
|
266
|
-
if (t.end) {
|
|
267
|
-
const d = v(t.end);
|
|
268
|
-
if (typeof n.formatRange == "function")
|
|
269
|
-
try {
|
|
270
|
-
return n.formatRange(a, d);
|
|
271
|
-
} catch {
|
|
272
|
-
}
|
|
273
|
-
return `${n.format(a)} – ${n.format(d)}`;
|
|
274
|
-
}
|
|
275
|
-
return n.format(a);
|
|
276
|
-
} catch {
|
|
277
|
-
return a.toISOString();
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
function He(t, e, s, a, n) {
|
|
281
|
-
if (t.ariaLabel !== void 0) return t.ariaLabel;
|
|
282
|
-
const d = q(t, s, a), l = e.label !== void 0 ? e.label : X(v(e.date), s, a);
|
|
283
|
-
return n({ time: d, day: l });
|
|
284
|
-
}
|
|
285
|
-
function _e() {
|
|
286
|
-
return /* @__PURE__ */ i(
|
|
287
|
-
"svg",
|
|
288
|
-
{
|
|
289
|
-
"aria-hidden": "true",
|
|
290
|
-
viewBox: "0 0 24 24",
|
|
291
|
-
fill: "none",
|
|
292
|
-
stroke: "currentColor",
|
|
293
|
-
strokeWidth: "2",
|
|
294
|
-
strokeLinecap: "round",
|
|
295
|
-
strokeLinejoin: "round",
|
|
296
|
-
className: "ds:size-4",
|
|
297
|
-
children: /* @__PURE__ */ i("path", { d: "M15 18l-6-6 6-6" })
|
|
298
|
-
}
|
|
299
|
-
);
|
|
300
|
-
}
|
|
301
|
-
function Ke() {
|
|
302
|
-
return /* @__PURE__ */ i(
|
|
303
|
-
"svg",
|
|
304
|
-
{
|
|
305
|
-
"aria-hidden": "true",
|
|
306
|
-
viewBox: "0 0 24 24",
|
|
307
|
-
fill: "none",
|
|
308
|
-
stroke: "currentColor",
|
|
309
|
-
strokeWidth: "2",
|
|
310
|
-
strokeLinecap: "round",
|
|
311
|
-
strokeLinejoin: "round",
|
|
312
|
-
className: "ds:size-4",
|
|
313
|
-
children: /* @__PURE__ */ i("path", { d: "M9 6l6 6-6 6" })
|
|
314
|
-
}
|
|
315
|
-
);
|
|
316
|
-
}
|
|
317
|
-
const Ze = pe(
|
|
318
|
-
({
|
|
319
|
-
days: t,
|
|
320
|
-
state: e = "default",
|
|
321
|
-
size: s = "md",
|
|
322
|
-
selectedSlotId: a,
|
|
323
|
-
maxInitialSlotsPerDay: n = 6,
|
|
324
|
-
locale: d,
|
|
325
|
-
timeZone: l,
|
|
326
|
-
hasPrevious: u = !1,
|
|
327
|
-
hasNext: f = !1,
|
|
328
|
-
showNextAvailable: o = !1,
|
|
329
|
-
ariaLabel: x,
|
|
330
|
-
onSlotSelect: y,
|
|
331
|
-
onPreviousDays: Q,
|
|
332
|
-
onNextDays: P,
|
|
333
|
-
onShowMore: N,
|
|
334
|
-
onJumpToNextAvailable: ee,
|
|
335
|
-
className: te,
|
|
336
|
-
...se
|
|
337
|
-
}, ae) => {
|
|
338
|
-
const { t: m, i18n: ne } = be(), T = d ?? ne.language ?? "en", re = he(), [ie, de] = ve({}), U = e === "loading", G = e === "disabled", h = U || G, oe = e === "empty" || t.length === 0 || t.every((r) => r.slots.length === 0), le = x ?? m("slotGrid.ariaLabel"), I = S(
|
|
339
|
-
(r, c) => {
|
|
340
|
-
h || r.available !== !1 && (y == null || y(r, c));
|
|
341
|
-
},
|
|
342
|
-
[h, y]
|
|
343
|
-
), ce = S(
|
|
344
|
-
(r, c) => {
|
|
345
|
-
de((g) => ({ ...g, [c]: !0 })), N == null || N(r);
|
|
346
|
-
},
|
|
347
|
-
[N]
|
|
348
|
-
), ue = S(
|
|
349
|
-
(r, c, g) => {
|
|
350
|
-
(r.key === "Enter" || r.key === " ") && (r.preventDefault(), I(c, g));
|
|
351
|
-
},
|
|
352
|
-
[I]
|
|
353
|
-
), V = Ae(t.length || 1), j = Ye({ cols: V });
|
|
354
|
-
let w;
|
|
355
|
-
return U ? w = /* @__PURE__ */ i(
|
|
356
|
-
"div",
|
|
357
|
-
{
|
|
358
|
-
className: j,
|
|
359
|
-
"data-state": "loading",
|
|
360
|
-
role: "status",
|
|
361
|
-
"aria-live": "polite",
|
|
362
|
-
"aria-label": m("common.loading"),
|
|
363
|
-
children: Array.from({ length: V }, (r, c) => /* @__PURE__ */ C("div", { className: H(), children: [
|
|
364
|
-
/* @__PURE__ */ i(B, { variant: "text", size: s, width: "60%" }),
|
|
365
|
-
/* @__PURE__ */ i("div", { className: _(), children: Array.from(
|
|
366
|
-
{ length: Math.min(n, 4) },
|
|
367
|
-
(g, z) => /* @__PURE__ */ i(
|
|
368
|
-
B,
|
|
369
|
-
{
|
|
370
|
-
variant: "rounded",
|
|
371
|
-
size: s,
|
|
372
|
-
height: "40px"
|
|
373
|
-
},
|
|
374
|
-
`loading-slot-${c}-${z}`
|
|
375
|
-
)
|
|
376
|
-
) })
|
|
377
|
-
] }, `loading-col-${c}`))
|
|
378
|
-
}
|
|
379
|
-
) : oe ? w = /* @__PURE__ */ i("div", { "data-state": "empty", children: /* @__PURE__ */ i(xe, { variant: "no-results", title: m("slotGrid.noSlots") }) }) : w = /* @__PURE__ */ i(
|
|
380
|
-
"div",
|
|
381
|
-
{
|
|
382
|
-
className: j,
|
|
383
|
-
"data-state": G ? "disabled" : "default",
|
|
384
|
-
children: t.map((r, c) => {
|
|
385
|
-
const g = `${v(r.date).toISOString()}-${c}`, z = r.label ?? X(v(r.date), T, l), E = `${re}-day-${c}-header`, F = ie[g] ?? !1 ? r.slots : r.slots.slice(0, n), R = r.slots.length - F.length, M = r.slots.length === 0;
|
|
386
|
-
return (
|
|
387
|
-
// Use a plain <div role="group"> rather than <section> — a
|
|
388
|
-
// <section> with aria-labelledby is a landmark, and nesting many
|
|
389
|
-
// landmarks inside the outer slot-grid landmark fails axe's
|
|
390
|
-
// landmark-unique rule.
|
|
391
|
-
/* @__PURE__ */ C(
|
|
392
|
-
"div",
|
|
393
|
-
{
|
|
394
|
-
role: "group",
|
|
395
|
-
className: H(),
|
|
396
|
-
"aria-labelledby": E,
|
|
397
|
-
"data-empty": M || void 0,
|
|
398
|
-
children: [
|
|
399
|
-
/* @__PURE__ */ i("h3", { id: E, className: Be({ size: s }), children: z }),
|
|
400
|
-
M ? /* @__PURE__ */ i("p", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:m-0", children: m("slotGrid.noSlots") }) : null,
|
|
401
|
-
/* @__PURE__ */ i("ul", { className: _(), children: F.map((p) => {
|
|
402
|
-
const me = He(
|
|
403
|
-
p,
|
|
404
|
-
r,
|
|
405
|
-
T,
|
|
406
|
-
l,
|
|
407
|
-
({ time: L, day: ge }) => m("slotGrid.slotLabel", { time: L, day: ge })
|
|
408
|
-
), fe = a === p.id, O = p.available === !1 || h;
|
|
409
|
-
return /* @__PURE__ */ i("li", { children: /* @__PURE__ */ i(
|
|
410
|
-
"button",
|
|
411
|
-
{
|
|
412
|
-
type: "button",
|
|
413
|
-
className: We({ size: s }),
|
|
414
|
-
"aria-label": me,
|
|
415
|
-
"aria-pressed": fe,
|
|
416
|
-
disabled: O,
|
|
417
|
-
"aria-disabled": O || void 0,
|
|
418
|
-
"data-slot-id": p.id,
|
|
419
|
-
onClick: () => I(p, r),
|
|
420
|
-
onKeyDown: (L) => ue(L, p, r),
|
|
421
|
-
children: q(p, T, l)
|
|
422
|
-
}
|
|
423
|
-
) }, p.id);
|
|
424
|
-
}) }),
|
|
425
|
-
R > 0 ? /* @__PURE__ */ i(
|
|
426
|
-
Y,
|
|
427
|
-
{
|
|
428
|
-
intent: "ghost",
|
|
429
|
-
size: s === "lg" ? "md" : "sm",
|
|
430
|
-
onClick: () => ce(r, g),
|
|
431
|
-
disabled: h,
|
|
432
|
-
children: m("slotGrid.showMore", { count: R })
|
|
433
|
-
}
|
|
434
|
-
) : null
|
|
435
|
-
]
|
|
436
|
-
},
|
|
437
|
-
g
|
|
438
|
-
)
|
|
439
|
-
);
|
|
440
|
-
})
|
|
441
|
-
}
|
|
442
|
-
), /* @__PURE__ */ C(
|
|
443
|
-
"div",
|
|
444
|
-
{
|
|
445
|
-
ref: ae,
|
|
446
|
-
role: "region",
|
|
447
|
-
"aria-label": le,
|
|
448
|
-
className: Re({ size: s, className: te }),
|
|
449
|
-
"data-component": "slot-grid",
|
|
450
|
-
"data-state": e,
|
|
451
|
-
...se,
|
|
452
|
-
children: [
|
|
453
|
-
/* @__PURE__ */ C("div", { className: Me(), children: [
|
|
454
|
-
/* @__PURE__ */ i(
|
|
455
|
-
A,
|
|
456
|
-
{
|
|
457
|
-
icon: /* @__PURE__ */ i(_e, {}),
|
|
458
|
-
"aria-label": m("slotGrid.previousDays"),
|
|
459
|
-
size: s === "lg" ? "md" : "sm",
|
|
460
|
-
intent: "ghost",
|
|
461
|
-
flipIconInRtl: !0,
|
|
462
|
-
disabled: !u || h,
|
|
463
|
-
onClick: Q
|
|
464
|
-
}
|
|
465
|
-
),
|
|
466
|
-
o ? /* @__PURE__ */ i(
|
|
467
|
-
Y,
|
|
468
|
-
{
|
|
469
|
-
intent: "secondary",
|
|
470
|
-
size: s === "lg" ? "md" : "sm",
|
|
471
|
-
disabled: h,
|
|
472
|
-
onClick: ee,
|
|
473
|
-
children: m("slotGrid.nextAvailable")
|
|
474
|
-
}
|
|
475
|
-
) : /* @__PURE__ */ i("span", { "aria-hidden": "true" }),
|
|
476
|
-
/* @__PURE__ */ i(
|
|
477
|
-
A,
|
|
478
|
-
{
|
|
479
|
-
icon: /* @__PURE__ */ i(Ke, {}),
|
|
480
|
-
"aria-label": m("slotGrid.nextDays"),
|
|
481
|
-
size: s === "lg" ? "md" : "sm",
|
|
482
|
-
intent: "ghost",
|
|
483
|
-
flipIconInRtl: !0,
|
|
484
|
-
disabled: !f || h,
|
|
485
|
-
onClick: P
|
|
486
|
-
}
|
|
487
|
-
)
|
|
488
|
-
] }),
|
|
489
|
-
w
|
|
490
|
-
]
|
|
491
|
-
}
|
|
492
|
-
);
|
|
493
|
-
}
|
|
494
|
-
);
|
|
495
|
-
Ze.displayName = "SlotGrid";
|
|
496
|
-
export {
|
|
497
|
-
Ze as S,
|
|
498
|
-
it as f,
|
|
499
|
-
rt as i,
|
|
500
|
-
Ne as p
|
|
501
|
-
};
|
|
502
|
-
//# sourceMappingURL=slot-grid-CQSULZjd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slot-grid-CQSULZjd.js","sources":["../../node_modules/date-fns/parseISO.js","../../src/components/slot-grid/slot-grid.tsx"],"sourcesContent":["import {\n millisecondsInHour,\n millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const invalidDate = () => constructFrom(options?.in, NaN);\n\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(+date)) return invalidDate();\n\n const timestamp = +date;\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) return invalidDate();\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) return invalidDate();\n } else {\n const tmpDate = new Date(timestamp + time);\n const result = toDate(0, options?.in);\n result.setFullYear(\n tmpDate.getUTCFullYear(),\n tmpDate.getUTCMonth(),\n tmpDate.getUTCDate(),\n );\n result.setHours(\n tmpDate.getUTCHours(),\n tmpDate.getUTCMinutes(),\n tmpDate.getUTCSeconds(),\n tmpDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","/* ------------------------------------------------------------------ */\n/* SlotGrid — multi-day time-slot picker for patient booking. */\n/* */\n/* Renders N day columns side-by-side. Each column shows a day header */\n/* (formatted via `Intl.DateTimeFormat(locale)`) plus a vertical list */\n/* of slot buttons. Long days collapse to `maxInitialSlotsPerDay` and */\n/* reveal the rest via a \"Show more\" button (progressive disclosure). */\n/* */\n/* Navigation arrows (`onPreviousDays` / `onNextDays`) let the consumer */\n/* page the window of days; the optional \"Next available\" CTA jumps to */\n/* the first day with an open slot. */\n/* */\n/* Purely presentational — no business logic, no data fetching. Date */\n/* comparisons use `date-fns` (never moment.js) and the rendered labels */\n/* come exclusively from `Intl.DateTimeFormat` or the `ui.slotGrid` */\n/* namespace via `useTranslation()`. */\n/* ------------------------------------------------------------------ */\n\nimport {\n forwardRef,\n useCallback,\n useId,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { isSameDay, parseISO } from 'date-fns';\nimport { Button } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { Skeleton } from '../skeleton/skeleton';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type SlotGridState = 'default' | 'loading' | 'disabled' | 'empty';\n\nexport type SlotGridSize = 'sm' | 'md' | 'lg';\n\nexport interface SlotGridSlot {\n /** Stable identity — used by consumers to resolve selection. */\n id: string;\n /** Slot start — ISO string or `Date`. Rendered via `Intl.DateTimeFormat`. */\n start: string | Date;\n /** Optional slot end — if omitted only the start time is announced. */\n end?: string | Date;\n /** Defaults to `true`. Unavailable slots render disabled and are not focusable. */\n available?: boolean;\n /** Override the default `Intl`-formatted time label. */\n label?: string;\n /** Override the accessible name of the slot button. */\n ariaLabel?: string;\n}\n\nexport interface SlotGridDay {\n /** The calendar day the column represents. */\n date: string | Date;\n /** Slots for this day, in chronological order. Empty array ⇒ empty day. */\n slots: SlotGridSlot[];\n /** Override the default `Intl`-formatted day header. */\n label?: string;\n}\n\nexport interface SlotGridProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'aria-label' | 'onSelect'>,\n VariantProps<typeof slotGridVariants> {\n /** Days to render, one column per entry. */\n days: SlotGridDay[];\n /** Visual / interactive state. Defaults to `'default'`. */\n state?: SlotGridState;\n /** Density of the slot buttons and day headers. Defaults to `'md'`. */\n size?: SlotGridSize;\n /** Id of the currently selected slot (controlled). */\n selectedSlotId?: string;\n /**\n * Initial number of slots to render per day before the \"Show more\"\n * progressive-disclosure control collapses the rest. Defaults to `6`.\n */\n maxInitialSlotsPerDay?: number;\n /**\n * BCP-47 locale tag for `Intl.DateTimeFormat`. Defaults to the active\n * i18next language.\n */\n locale?: string;\n /** IANA time zone for `Intl.DateTimeFormat`. Optional. */\n timeZone?: string;\n /** Whether the \"previous days\" navigation arrow should be enabled. */\n hasPrevious?: boolean;\n /** Whether the \"next days\" navigation arrow should be enabled. */\n hasNext?: boolean;\n /**\n * When `true`, renders the \"Next available\" CTA at the end of the\n * toolbar. Only emits a callback — the consumer owns the navigation.\n */\n showNextAvailable?: boolean;\n /** Accessible label for the outer grid region. */\n ariaLabel?: string;\n /** Fires when the user selects an available slot. */\n onSlotSelect?: (slot: SlotGridSlot, day: SlotGridDay) => void;\n /** Fires when the user clicks the \"previous days\" arrow. */\n onPreviousDays?: () => void;\n /** Fires when the user clicks the \"next days\" arrow. */\n onNextDays?: () => void;\n /** Fires when the user clicks a day's \"Show more\" button. */\n onShowMore?: (day: SlotGridDay) => void;\n /** Fires when the user clicks the \"Next available\" CTA. */\n onJumpToNextAvailable?: () => void;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst slotGridVariants = cva(\n [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n 'ds:text-[var(--foreground)]',\n 'ds:w-full',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:text-[length:var(--font-size-sm)]',\n md: 'ds:text-[length:var(--font-size-base)]',\n lg: 'ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst toolbarVariants = cva(\n 'ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:w-full',\n);\n\n/**\n * Column-count is dynamic (1–12), so it is declared as a full CVA variant —\n * this keeps every `grid-cols-N` string statically visible to Tailwind's\n * JIT and keeps the variant table inside CVA rather than hand-rolled.\n */\nconst COLS_MAX = 12;\n\nconst columnsVariants = cva(\n 'ds:grid ds:gap-[var(--spacing-sm)] ds:w-full ds:auto-rows-min ds:items-start',\n {\n variants: {\n cols: {\n 1: 'ds:grid-cols-1',\n 2: 'ds:grid-cols-2',\n 3: 'ds:grid-cols-3',\n 4: 'ds:grid-cols-4',\n 5: 'ds:grid-cols-5',\n 6: 'ds:grid-cols-6',\n 7: 'ds:grid-cols-7',\n 8: 'ds:grid-cols-8',\n 9: 'ds:grid-cols-9',\n 10: 'ds:grid-cols-10',\n 11: 'ds:grid-cols-11',\n 12: 'ds:grid-cols-12',\n },\n },\n defaultVariants: { cols: 1 },\n },\n);\n\ntype ColumnsCount = NonNullable<VariantProps<typeof columnsVariants>['cols']>;\n\nfunction clampCols(count: number): ColumnsCount {\n return Math.max(1, Math.min(count, COLS_MAX)) as ColumnsCount;\n}\n\nconst columnVariants = cva(\n [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:bg-[var(--card)]',\n 'ds:min-w-0',\n ].join(' '),\n);\n\nconst dayHeaderVariants = cva(\n [\n 'ds:font-[var(--font-weight-semibold)]',\n 'ds:text-[var(--foreground)]',\n 'ds:text-start',\n 'ds:truncate',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:text-[length:var(--font-size-xs)]',\n md: 'ds:text-[length:var(--font-size-sm)]',\n lg: 'ds:text-[length:var(--font-size-base)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst slotListVariants = cva(\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full ds:m-0 ds:p-0 ds:list-none',\n);\n\nconst slotButtonVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:w-full',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:font-[var(--font-weight-medium)]',\n 'ds:bg-[var(--secondary)]',\n 'ds:shadow-[var(--shadow-sm)]',\n 'ds:text-[var(--foreground)]',\n 'ds:transition-[background-color,color,box-shadow]',\n 'ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)]',\n 'ds:focus-visible:outline-offset-[var(--focus-ring-offset)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed ds:disabled:shadow-none',\n 'ds:aria-disabled:opacity-50 ds:aria-disabled:cursor-not-allowed ds:aria-disabled:shadow-none',\n 'ds:hover:enabled:shadow-[var(--shadow-md)]',\n 'ds:aria-pressed:bg-[var(--primary)] ds:aria-pressed:text-[var(--primary-foreground)]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:text-[length:var(--font-size-xs)] ds:h-8',\n md: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-sm)] ds:h-10',\n lg: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-base)] ds:h-12',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction toDate(value: string | Date): Date {\n return value instanceof Date ? value : parseISO(value);\n}\n\n/** Is `a` the same calendar day as `b`? Uses `date-fns`, locale-agnostic. */\nexport function isSameDate(a: string | Date, b: string | Date): boolean {\n return isSameDay(toDate(a), toDate(b));\n}\n\n/** Find the first day in a list that has at least one available slot. */\nexport function findFirstAvailable(\n days: SlotGridDay[],\n): { day: SlotGridDay; slot: SlotGridSlot } | undefined {\n for (const day of days) {\n const slot = day.slots.find((s) => s.available !== false);\n if (slot) return { day, slot };\n }\n return undefined;\n}\n\nfunction formatDayHeader(\n date: Date,\n locale: string,\n timeZone?: string,\n): string {\n try {\n return new Intl.DateTimeFormat(locale, {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n timeZone,\n }).format(date);\n } catch {\n return new Intl.DateTimeFormat('en', {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n }).format(date);\n }\n}\n\nfunction formatSlotTime(\n slot: SlotGridSlot,\n locale: string,\n timeZone?: string,\n): string {\n if (slot.label !== undefined) return slot.label;\n const start = toDate(slot.start);\n try {\n const fmt = new Intl.DateTimeFormat(locale, {\n hour: 'numeric',\n minute: '2-digit',\n timeZone,\n });\n if (slot.end) {\n const end = toDate(slot.end);\n if (typeof fmt.formatRange === 'function') {\n try {\n return fmt.formatRange(start, end);\n } catch {\n /* fall through */\n }\n }\n return `${fmt.format(start)} – ${fmt.format(end)}`;\n }\n return fmt.format(start);\n } catch {\n return start.toISOString();\n }\n}\n\nfunction formatSlotAriaLabel(\n slot: SlotGridSlot,\n day: SlotGridDay,\n locale: string,\n timeZone: string | undefined,\n template: (opts: { time: string; day: string }) => string,\n): string {\n if (slot.ariaLabel !== undefined) return slot.ariaLabel;\n const time = formatSlotTime(slot, locale, timeZone);\n const dayLabel =\n day.label !== undefined\n ? day.label\n : formatDayHeader(toDate(day.date), locale, timeZone);\n return template({ time, day: dayLabel });\n}\n\n/* ------------------------------------------------------------------ */\n/* Glyphs — logical-direction arrows */\n/* ------------------------------------------------------------------ */\n\nfunction ChevronStartIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"ds:size-4\"\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n );\n}\n\nfunction ChevronEndIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"ds:size-4\"\n >\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const SlotGrid = forwardRef<HTMLDivElement, SlotGridProps>(\n (\n {\n days,\n state = 'default',\n size = 'md',\n selectedSlotId,\n maxInitialSlotsPerDay = 6,\n locale: localeProp,\n timeZone,\n hasPrevious = false,\n hasNext = false,\n showNextAvailable = false,\n ariaLabel,\n onSlotSelect,\n onPreviousDays,\n onNextDays,\n onShowMore,\n onJumpToNextAvailable,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const locale = localeProp ?? i18n.language ?? 'en';\n const idBase = useId();\n\n const [expanded, setExpanded] = useState<Record<string, boolean>>({});\n\n const isLoading = state === 'loading';\n const isDisabled = state === 'disabled';\n const isInteractionSuppressed = isLoading || isDisabled;\n const isEmpty =\n state === 'empty' ||\n days.length === 0 ||\n days.every((day) => day.slots.length === 0);\n\n const resolvedAriaLabel = ariaLabel ?? t('slotGrid.ariaLabel');\n\n const handleSlotClick = useCallback(\n (slot: SlotGridSlot, day: SlotGridDay) => {\n if (isInteractionSuppressed) return;\n if (slot.available === false) return;\n onSlotSelect?.(slot, day);\n },\n [isInteractionSuppressed, onSlotSelect],\n );\n\n const handleShowMore = useCallback(\n (day: SlotGridDay, key: string) => {\n setExpanded((prev) => ({ ...prev, [key]: true }));\n onShowMore?.(day);\n },\n [onShowMore],\n );\n\n const handleSlotKeyDown = useCallback(\n (\n event: KeyboardEvent<HTMLButtonElement>,\n slot: SlotGridSlot,\n day: SlotGridDay,\n ) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleSlotClick(slot, day);\n }\n },\n [handleSlotClick],\n );\n\n const columnCount = clampCols(days.length || 1);\n const columnsClass = columnsVariants({ cols: columnCount });\n\n /* ---- Rendered content ------------------------------------------ */\n\n let body: ReactNode;\n if (isLoading) {\n body = (\n <div\n className={columnsClass}\n data-state=\"loading\"\n role=\"status\"\n aria-live=\"polite\"\n aria-label={t('common.loading')}\n >\n {Array.from({ length: columnCount }, (_, colIdx) => (\n <div key={`loading-col-${colIdx}`} className={columnVariants()}>\n <Skeleton variant=\"text\" size={size} width=\"60%\" />\n <div className={slotListVariants()}>\n {Array.from(\n { length: Math.min(maxInitialSlotsPerDay, 4) },\n (_, rowIdx) => (\n <Skeleton\n key={`loading-slot-${colIdx}-${rowIdx}`}\n variant=\"rounded\"\n size={size}\n height=\"40px\"\n />\n ),\n )}\n </div>\n </div>\n ))}\n </div>\n );\n } else if (isEmpty) {\n body = (\n <div data-state=\"empty\">\n <EmptyState variant=\"no-results\" title={t('slotGrid.noSlots')} />\n </div>\n );\n } else {\n body = (\n <div\n className={columnsClass}\n data-state={isDisabled ? 'disabled' : 'default'}\n >\n {days.map((day, dayIdx) => {\n const dayKey = `${toDate(day.date).toISOString()}-${dayIdx}`;\n const headerLabel =\n day.label ?? formatDayHeader(toDate(day.date), locale, timeZone);\n const headerId = `${idBase}-day-${dayIdx}-header`;\n const isExpanded = expanded[dayKey] ?? false;\n const visibleSlots = isExpanded\n ? day.slots\n : day.slots.slice(0, maxInitialSlotsPerDay);\n const hiddenCount = day.slots.length - visibleSlots.length;\n\n const isDayEmpty = day.slots.length === 0;\n\n return (\n // Use a plain <div role=\"group\"> rather than <section> — a\n // <section> with aria-labelledby is a landmark, and nesting many\n // landmarks inside the outer slot-grid landmark fails axe's\n // landmark-unique rule.\n <div\n key={dayKey}\n role=\"group\"\n className={columnVariants()}\n aria-labelledby={headerId}\n data-empty={isDayEmpty || undefined}\n >\n <h3 id={headerId} className={dayHeaderVariants({ size })}>\n {headerLabel}\n </h3>\n {isDayEmpty ? (\n <p className=\"type-body-sm ds:text-[var(--muted-foreground)] ds:m-0\">\n {t('slotGrid.noSlots')}\n </p>\n ) : null}\n <ul className={slotListVariants()}>\n {visibleSlots.map((slot) => {\n const ariaLabelSlot = formatSlotAriaLabel(\n slot,\n day,\n locale,\n timeZone,\n ({ time, day: dayLabel }) =>\n t('slotGrid.slotLabel', { time, day: dayLabel }),\n );\n const isSelected = selectedSlotId === slot.id;\n const isSlotDisabled =\n slot.available === false || isInteractionSuppressed;\n return (\n <li key={slot.id}>\n <button\n type=\"button\"\n className={slotButtonVariants({ size })}\n aria-label={ariaLabelSlot}\n aria-pressed={isSelected}\n disabled={isSlotDisabled}\n aria-disabled={isSlotDisabled || undefined}\n data-slot-id={slot.id}\n onClick={() => handleSlotClick(slot, day)}\n onKeyDown={(event) =>\n handleSlotKeyDown(event, slot, day)\n }\n >\n {formatSlotTime(slot, locale, timeZone)}\n </button>\n </li>\n );\n })}\n </ul>\n {hiddenCount > 0 ? (\n <Button\n intent=\"ghost\"\n size={size === 'lg' ? 'md' : 'sm'}\n onClick={() => handleShowMore(day, dayKey)}\n disabled={isInteractionSuppressed}\n >\n {t('slotGrid.showMore', { count: hiddenCount })}\n </Button>\n ) : null}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"region\"\n aria-label={resolvedAriaLabel}\n className={slotGridVariants({ size, className })}\n data-component=\"slot-grid\"\n data-state={state}\n {...rest}\n >\n <div className={toolbarVariants()}>\n <IconButton\n icon={<ChevronStartIcon />}\n aria-label={t('slotGrid.previousDays')}\n size={size === 'lg' ? 'md' : 'sm'}\n intent=\"ghost\"\n flipIconInRtl\n disabled={!hasPrevious || isInteractionSuppressed}\n onClick={onPreviousDays}\n />\n {showNextAvailable ? (\n <Button\n intent=\"secondary\"\n size={size === 'lg' ? 'md' : 'sm'}\n disabled={isInteractionSuppressed}\n onClick={onJumpToNextAvailable}\n >\n {t('slotGrid.nextAvailable')}\n </Button>\n ) : (\n <span aria-hidden=\"true\" />\n )}\n <IconButton\n icon={<ChevronEndIcon />}\n aria-label={t('slotGrid.nextDays')}\n size={size === 'lg' ? 'md' : 'sm'}\n intent=\"ghost\"\n flipIconInRtl\n disabled={!hasNext || isInteractionSuppressed}\n onClick={onNextDays}\n />\n </div>\n\n {body}\n </div>\n );\n },\n);\n\nSlotGrid.displayName = 'SlotGrid';\n"],"names":["parseISO","argument","options","invalidDate","constructFrom","dateStrings","splitDateString","date","parseYearResult","parseYear","parseDate","timestamp","time","offset","parseTime","parseTimezone","tmpDate","result","toDate","patterns","dateRegex","timeRegex","timezoneRegex","dateString","array","timeString","token","additionalDigits","regex","captures","year","century","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","value","hours","parseTimeUnit","minutes","seconds","validateTime","millisecondsInHour","millisecondsInMinute","timezoneString","sign","validateTimezone","isoWeekYear","fourthOfJanuaryDay","diff","daysInMonths","isLeapYearIndex","_year","_hours","slotGridVariants","cva","toolbarVariants","COLS_MAX","columnsVariants","clampCols","count","columnVariants","dayHeaderVariants","slotListVariants","slotButtonVariants","isSameDate","a","b","isSameDay","findFirstAvailable","days","slot","s","formatDayHeader","locale","timeZone","formatSlotTime","start","fmt","end","formatSlotAriaLabel","template","dayLabel","ChevronStartIcon","jsx","ChevronEndIcon","SlotGrid","forwardRef","state","size","selectedSlotId","maxInitialSlotsPerDay","localeProp","hasPrevious","hasNext","showNextAvailable","ariaLabel","onSlotSelect","onPreviousDays","onNextDays","onShowMore","onJumpToNextAvailable","className","rest","ref","t","i18n","useTranslation","idBase","useId","expanded","setExpanded","useState","isLoading","isDisabled","isInteractionSuppressed","isEmpty","resolvedAriaLabel","handleSlotClick","useCallback","handleShowMore","key","prev","handleSlotKeyDown","event","columnCount","columnsClass","body","_","colIdx","jsxs","Skeleton","rowIdx","EmptyState","dayIdx","dayKey","headerLabel","headerId","visibleSlots","hiddenCount","isDayEmpty","ariaLabelSlot","isSelected","isSlotDisabled","Button","IconButton"],"mappings":"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","x_google_ignoreList":[0]}
|