@alfadocs/ui-kit-debug 1.128.0 → 1.130.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/{appointment-card-0PebvrOS.js → appointment-card-vbUsDh70.js} +49 -72
- package/dist/_chunks/appointment-card-vbUsDh70.js.map +1 -0
- package/dist/_chunks/{appointment-timeline-Czd4PBkF.js → appointment-timeline-B5pfBl-b.js} +2 -2
- package/dist/_chunks/{appointment-timeline-Czd4PBkF.js.map → appointment-timeline-B5pfBl-b.js.map} +1 -1
- package/dist/_chunks/{appointment-tray-B04zKY7g.js → appointment-tray-BhiXetjs.js} +2 -2
- package/dist/_chunks/{appointment-tray-B04zKY7g.js.map → appointment-tray-BhiXetjs.js.map} +1 -1
- package/dist/_chunks/{calendar-_sgjuH3L.js → calendar-DzR-vdJ5.js} +614 -563
- package/dist/_chunks/calendar-DzR-vdJ5.js.map +1 -0
- package/dist/_chunks/calendar-appointment-editor-dialog-CXch4Pmu.js +13663 -0
- package/dist/_chunks/calendar-appointment-editor-dialog-CXch4Pmu.js.map +1 -0
- package/dist/_chunks/{calendar-event-card-DXAYWH6k.js → calendar-event-card-BNEzkjm-.js} +142 -132
- package/dist/_chunks/calendar-event-card-BNEzkjm-.js.map +1 -0
- package/dist/_chunks/{care-plan-card-bGTIliXc.js → care-plan-card-CwgkImOD.js} +2 -2
- package/dist/_chunks/{care-plan-card-bGTIliXc.js.map → care-plan-card-CwgkImOD.js.map} +1 -1
- package/dist/_chunks/{care-plan-header-k8FslxsU.js → care-plan-header-Dx5OMkc9.js} +2 -2
- package/dist/_chunks/{care-plan-header-k8FslxsU.js.map → care-plan-header-Dx5OMkc9.js.map} +1 -1
- package/dist/_chunks/{clinical-note-card-DHn5W_bv.js → clinical-note-card-pPaeWWnu.js} +2 -2
- package/dist/_chunks/{clinical-note-card-DHn5W_bv.js.map → clinical-note-card-pPaeWWnu.js.map} +1 -1
- package/dist/_chunks/{contact-card-CGpbYuxl.js → contact-card-BSY2YpLZ.js} +2 -2
- package/dist/_chunks/{contact-card-CGpbYuxl.js.map → contact-card-BSY2YpLZ.js.map} +1 -1
- package/dist/_chunks/{contact-profile-card-CCgf0Ntt.js → contact-profile-card-CsZNMlws.js} +2 -2
- package/dist/_chunks/{contact-profile-card-CCgf0Ntt.js.map → contact-profile-card-CsZNMlws.js.map} +1 -1
- package/dist/_chunks/contact-round-DiSvB3LP.js +18 -0
- package/dist/_chunks/contact-round-DiSvB3LP.js.map +1 -0
- package/dist/_chunks/{default-tabs-DOuHEKI5.js → default-tabs-BnB6FUEW.js} +2 -2
- package/dist/_chunks/{default-tabs-DOuHEKI5.js.map → default-tabs-BnB6FUEW.js.map} +1 -1
- package/dist/_chunks/{entity-summary-BanguTa6.js → entity-summary-KHM0PnSI.js} +56 -68
- package/dist/_chunks/entity-summary-KHM0PnSI.js.map +1 -0
- package/dist/_chunks/file-pen-line-k4uMBM3h.js +29 -0
- package/dist/_chunks/file-pen-line-k4uMBM3h.js.map +1 -0
- package/dist/_chunks/{header-settings-DsvheAOt.js → header-settings-ZGvYAuKF.js} +101 -97
- package/dist/_chunks/header-settings-ZGvYAuKF.js.map +1 -0
- package/dist/_chunks/{info-tip-C-MPkShR.js → info-tip-B3cn3fY2.js} +2 -2
- package/dist/_chunks/{info-tip-C-MPkShR.js.map → info-tip-B3cn3fY2.js.map} +1 -1
- package/dist/_chunks/{link-DtCfnLnF.js → link-CeV7FoI6.js} +2 -2
- package/dist/_chunks/{link-DtCfnLnF.js.map → link-CeV7FoI6.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-BOBWmzoT.js → marketplace-app-shell-D_HA8CKx.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-BOBWmzoT.js.map → marketplace-app-shell-D_HA8CKx.js.map} +1 -1
- package/dist/_chunks/{nav-grid-D2xVcHTO.js → nav-grid-dEgDAri3.js} +2 -2
- package/dist/_chunks/{nav-grid-D2xVcHTO.js.map → nav-grid-dEgDAri3.js.map} +1 -1
- package/dist/_chunks/{note-attachment-cnj2JRrg.js → note-attachment-MNTIqdSz.js} +2 -2
- package/dist/_chunks/{note-attachment-cnj2JRrg.js.map → note-attachment-MNTIqdSz.js.map} +1 -1
- package/dist/_chunks/{note-timeline-BrjHBQfx.js → note-timeline-BQeW0VZY.js} +2 -2
- package/dist/_chunks/{note-timeline-BrjHBQfx.js.map → note-timeline-BQeW0VZY.js.map} +1 -1
- package/dist/_chunks/{notes-panel-n1JFNQ5u.js → notes-panel-DIY7eNsq.js} +2 -2
- package/dist/_chunks/{notes-panel-n1JFNQ5u.js.map → notes-panel-DIY7eNsq.js.map} +1 -1
- package/dist/_chunks/{patient-details-Cba9HQj_.js → patient-details-DBtEITfE.js} +2 -2
- package/dist/_chunks/{patient-details-Cba9HQj_.js.map → patient-details-DBtEITfE.js.map} +1 -1
- package/dist/_chunks/{patient-field-row-CtDihADs.js → patient-field-row-a5d4QijH.js} +2 -2
- package/dist/_chunks/{patient-field-row-CtDihADs.js.map → patient-field-row-a5d4QijH.js.map} +1 -1
- package/dist/_chunks/{patient-search-D_S7joff.js → patient-search-OAwFgOW3.js} +2 -2
- package/dist/_chunks/{patient-search-D_S7joff.js.map → patient-search-OAwFgOW3.js.map} +1 -1
- package/dist/_chunks/{patient-summary-card-DnLdbtsw.js → patient-summary-card-BUcZ-gaL.js} +3 -3
- package/dist/_chunks/{patient-summary-card-DnLdbtsw.js.map → patient-summary-card-BUcZ-gaL.js.map} +1 -1
- package/dist/_chunks/{payment-request-card-CEIalOtr.js → payment-request-card-Dv4WbRBe.js} +2 -2
- package/dist/_chunks/{payment-request-card-CEIalOtr.js.map → payment-request-card-Dv4WbRBe.js.map} +1 -1
- package/dist/_chunks/{product-hub-panel-CqRJlmb7.js → product-hub-panel-a8wdVOUt.js} +2 -2
- package/dist/_chunks/{product-hub-panel-CqRJlmb7.js.map → product-hub-panel-a8wdVOUt.js.map} +1 -1
- package/dist/_chunks/{public-footer-C8UIzqLJ.js → public-footer-D0cqScpz.js} +2 -2
- package/dist/_chunks/{public-footer-C8UIzqLJ.js.map → public-footer-D0cqScpz.js.map} +1 -1
- package/dist/_chunks/{signature-request-Dzs0jZsd.js → signature-request-DW2PSp66.js} +3 -3
- package/dist/_chunks/{signature-request-Dzs0jZsd.js.map → signature-request-DW2PSp66.js.map} +1 -1
- package/dist/_chunks/{signed-out-frame-fUf7tqs3.js → signed-out-frame-Oa2e1yps.js} +2 -2
- package/dist/_chunks/{signed-out-frame-fUf7tqs3.js.map → signed-out-frame-Oa2e1yps.js.map} +1 -1
- package/dist/_chunks/task-editor-CVRrDqpe.js +1256 -0
- package/dist/_chunks/task-editor-CVRrDqpe.js.map +1 -0
- package/dist/_chunks/{toast-BNoN8Qjh.js → toast-DQ1Zu1kk.js} +264 -251
- package/dist/_chunks/{toast-BNoN8Qjh.js.map → toast-DQ1Zu1kk.js.map} +1 -1
- package/dist/_chunks/{treatment-receipt-1VnuinhY.js → treatment-receipt-BZzwvsnY.js} +73 -56
- package/dist/_chunks/treatment-receipt-BZzwvsnY.js.map +1 -0
- package/dist/_chunks/use-appointment-details-read-BrykoTOR.js +2475 -0
- package/dist/_chunks/use-appointment-details-read-BrykoTOR.js.map +1 -0
- package/dist/_chunks/{whatsapp-button-DV9JFmtq.js → whatsapp-button-XbozeDl_.js} +32 -25
- package/dist/_chunks/whatsapp-button-XbozeDl_.js.map +1 -0
- package/dist/agent-catalog.json +49 -16
- package/dist/agent-i18n/en.json +5 -5
- package/dist/browser-support.js +1 -1
- package/dist/components/_shared/patient-picker.d.ts +10 -0
- package/dist/components/_shared/patient-picker.d.ts.map +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-details-panel/appointment-details-panel.d.ts +30 -1
- package/dist/components/appointment-details-panel/appointment-details-panel.d.ts.map +1 -1
- package/dist/components/appointment-details-panel/appointment-details-panel.links.d.ts +15 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.links.d.ts.map +1 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.recurrence.d.ts +9 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.recurrence.d.ts.map +1 -0
- package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts +12 -3
- package/dist/components/appointment-details-panel/appointment-details-panel.sections.d.ts.map +1 -1
- package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts +63 -1
- package/dist/components/appointment-details-panel/appointment-details-panel.types.d.ts.map +1 -1
- package/dist/components/appointment-details-panel/index.d.ts +2 -1
- package/dist/components/appointment-details-panel/index.d.ts.map +1 -1
- package/dist/components/appointment-details-panel/index.js +5 -4
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/bill-table/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts +22 -0
- package/dist/components/calendar/calendar.d.ts.map +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/calendar-event-card.d.ts +8 -0
- package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
- package/dist/components/calendar-event-card/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/clinical-note-card/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/entity-summary/index.js +1 -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/info-tip/index.js +1 -1
- package/dist/components/link/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/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/payment-card/index.js +1 -1
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/public-footer/index.js +1 -1
- package/dist/components/task-editor/index.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/treatment-receipt/index.d.ts +2 -2
- package/dist/components/treatment-receipt/index.d.ts.map +1 -1
- package/dist/components/treatment-receipt/index.js +2 -1
- package/dist/components/treatment-receipt/treatment-receipt.d.ts +11 -1
- package/dist/components/treatment-receipt/treatment-receipt.d.ts.map +1 -1
- package/dist/components/whatsapp-button/index.js +1 -1
- package/dist/components/whatsapp-button/whatsapp-button.d.ts.map +1 -1
- package/dist/core.css +1 -1
- package/dist/fullcalendar.css +5 -1
- package/dist/host-compat.css +4 -1
- package/dist/i18n/locales/ar.d.ts +119 -4
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +130 -15
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +119 -4
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +130 -15
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +119 -4
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +130 -15
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +119 -4
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +122 -10
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +119 -4
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +130 -15
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +119 -4
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +130 -15
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +119 -4
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +130 -15
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +119 -4
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +130 -15
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +119 -4
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +130 -15
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +119 -4
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +130 -15
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +119 -4
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +130 -15
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +119 -4
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +130 -15
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +119 -4
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +130 -15
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +119 -4
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +130 -15
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +119 -4
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +130 -15
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +119 -4
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +130 -15
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +119 -4
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +130 -15
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +119 -4
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +130 -15
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +1112 -1107
- package/dist/locales/ar.json +130 -15
- package/dist/locales/de.json +130 -15
- package/dist/locales/el.json +130 -15
- package/dist/locales/en.json +122 -7
- package/dist/locales/es.json +130 -15
- package/dist/locales/fr.json +130 -15
- package/dist/locales/hi.json +130 -15
- package/dist/locales/it.json +130 -15
- package/dist/locales/ja.json +130 -15
- package/dist/locales/nl.json +130 -15
- package/dist/locales/pl.json +130 -15
- package/dist/locales/pt.json +130 -15
- package/dist/locales/ro.json +130 -15
- package/dist/locales/ru.json +130 -15
- package/dist/locales/sq.json +130 -15
- package/dist/locales/sv.json +130 -15
- package/dist/locales/tr.json +130 -15
- package/dist/locales/zh.json +130 -15
- package/dist/patterns/calendar/calendar-appointment-details.d.ts +83 -2
- package/dist/patterns/calendar/calendar-appointment-details.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-appointment-editor-dialog.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-archive.d.ts +12 -0
- package/dist/patterns/calendar/calendar-archive.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-bookings-panel.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-care-rules.d.ts +19 -23
- package/dist/patterns/calendar/calendar-care-rules.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-delete-confirm.d.ts +18 -0
- package/dist/patterns/calendar/calendar-delete-confirm.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-document-scope-confirm.d.ts +12 -0
- package/dist/patterns/calendar/calendar-document-scope-confirm.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-editor-guard.d.ts +12 -0
- package/dist/patterns/calendar/calendar-editor-guard.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-editor-hydration.d.ts +13 -2
- package/dist/patterns/calendar/calendar-editor-hydration.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-load-error.d.ts +11 -0
- package/dist/patterns/calendar/calendar-load-error.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-patient-locked.d.ts +13 -0
- package/dist/patterns/calendar/calendar-patient-locked.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-patient-picker.d.ts +6 -1
- package/dist/patterns/calendar/calendar-patient-picker.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-prompts.d.ts +11 -0
- package/dist/patterns/calendar/calendar-prompts.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-settings-ical.d.ts +11 -0
- package/dist/patterns/calendar/calendar-settings-ical.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-settings-overlay.d.ts +73 -0
- package/dist/patterns/calendar/calendar-settings-overlay.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-settings-panel.d.ts +62 -0
- package/dist/patterns/calendar/calendar-settings-panel.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-settings-practice.d.ts +20 -0
- package/dist/patterns/calendar/calendar-settings-practice.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-status-colours.d.ts +18 -0
- package/dist/patterns/calendar/calendar-status-colours.d.ts.map +1 -0
- package/dist/patterns/calendar/calendar-upcoming-panel.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-waiting-list-panel.d.ts +17 -2
- package/dist/patterns/calendar/calendar-waiting-list-panel.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-workspace.d.ts +285 -6
- package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar-workspace.model.d.ts +103 -17
- package/dist/patterns/calendar/calendar-workspace.model.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.data.d.ts +9 -3
- package/dist/patterns/calendar/calendar.data.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.journey.d.ts +69 -5
- package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.model.d.ts +129 -22
- package/dist/patterns/calendar/calendar.model.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.preferences.d.ts +4 -0
- package/dist/patterns/calendar/calendar.preferences.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.sheets.d.ts +129 -18
- package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.surface.d.ts +64 -6
- package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
- package/dist/patterns/calendar/calendar.types.d.ts +231 -6
- package/dist/patterns/calendar/calendar.types.d.ts.map +1 -1
- package/dist/patterns/calendar/index.d.ts +9 -6
- package/dist/patterns/calendar/index.d.ts.map +1 -1
- package/dist/patterns/calendar/index.js +18 -15
- package/dist/patterns/marketplace-app-shell/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/tokens.css +5 -1
- package/package.json +1 -1
- package/dist/_chunks/appointment-card-0PebvrOS.js.map +0 -1
- package/dist/_chunks/calendar-_sgjuH3L.js.map +0 -1
- package/dist/_chunks/calendar-appointment-editor-dialog-CGDDGMdo.js +0 -10974
- package/dist/_chunks/calendar-appointment-editor-dialog-CGDDGMdo.js.map +0 -1
- package/dist/_chunks/calendar-event-card-DXAYWH6k.js.map +0 -1
- package/dist/_chunks/entity-summary-BanguTa6.js.map +0 -1
- package/dist/_chunks/header-settings-DsvheAOt.js.map +0 -1
- package/dist/_chunks/task-editor-C05yx7JJ.js +0 -1218
- package/dist/_chunks/task-editor-C05yx7JJ.js.map +0 -1
- package/dist/_chunks/treatment-receipt-1VnuinhY.js.map +0 -1
- package/dist/_chunks/use-appointment-details-read-Bm408XzX.js +0 -2198
- package/dist/_chunks/use-appointment-details-read-Bm408XzX.js.map +0 -1
- package/dist/_chunks/whatsapp-button-DV9JFmtq.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
1
|
+
import { jsx as t, jsxs as m, Fragment as X } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as le, useRef as d, useImperativeHandle as de, useState as ue, useCallback as pe, useMemo as me } from "react";
|
|
3
3
|
import { c as A } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as ee } from "react-i18next";
|
|
5
5
|
import { B as ge } from "./button-DohK_Ak_.js";
|
|
6
6
|
import { I as he } from "./icon-button-S8_weU3g.js";
|
|
7
|
-
import { D as
|
|
7
|
+
import { D as n } from "./dropdown-menu-Dw6sgQwJ.js";
|
|
8
8
|
import { u as fe, p as ye, d as S, r as be, b as te } from "./locale-picker-C86h8Yt1.js";
|
|
9
9
|
import { u as we } from "./use-media-query-CcAx5SMM.js";
|
|
10
10
|
import { u as ve } from "./use-locale-BExNy9Dl.js";
|
|
@@ -143,7 +143,7 @@ function Ke(a) {
|
|
|
143
143
|
const i = document.documentElement;
|
|
144
144
|
i.lang = a, i.dir = S[a].dir;
|
|
145
145
|
}
|
|
146
|
-
const
|
|
146
|
+
const _e = A("ds:inline-flex ds:items-center", {
|
|
147
147
|
variants: {
|
|
148
148
|
align: {
|
|
149
149
|
start: "",
|
|
@@ -151,7 +151,7 @@ const Ne = A("ds:inline-flex ds:items-center", {
|
|
|
151
151
|
}
|
|
152
152
|
},
|
|
153
153
|
defaultVariants: { align: "end" }
|
|
154
|
-
}),
|
|
154
|
+
}), ze = A("", {
|
|
155
155
|
variants: {
|
|
156
156
|
size: {
|
|
157
157
|
// Button sm is 44px tall on phones; IconButton sm is only 32px wide.
|
|
@@ -163,27 +163,29 @@ const Ne = A("ds:inline-flex ds:items-center", {
|
|
|
163
163
|
}
|
|
164
164
|
},
|
|
165
165
|
defaultVariants: { size: "md" }
|
|
166
|
-
}),
|
|
166
|
+
}), Ne = "ds:w-[var(--popover-size-md)]", Pe = A("", {
|
|
167
167
|
variants: {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
168
|
+
width: {
|
|
169
|
+
content: "",
|
|
170
|
+
language: "ds:[inline-size:var(--popover-size-md)] ds:[min-inline-size:0] ds:[max-inline-size:calc(100vw_-_2_*_var(--spacing-lg))] ds:[&_input]:min-w-0",
|
|
171
|
+
phone: "ds:[inline-size:calc(100vw_-_2_*_var(--spacing-lg))] ds:[min-inline-size:0] ds:[max-inline-size:none] ds:[&_input]:min-w-0"
|
|
171
172
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
173
|
+
},
|
|
174
|
+
defaultVariants: { width: "content" }
|
|
175
|
+
}), xe = A(
|
|
174
176
|
"ds:flex ds:flex-1 ds:min-w-0 ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]"
|
|
175
177
|
);
|
|
176
178
|
function R({
|
|
177
179
|
label: a,
|
|
178
180
|
value: i,
|
|
179
|
-
lang:
|
|
181
|
+
lang: g
|
|
180
182
|
}) {
|
|
181
|
-
return /* @__PURE__ */
|
|
183
|
+
return /* @__PURE__ */ m("span", { className: xe(), children: [
|
|
182
184
|
/* @__PURE__ */ t("span", { className: "ds:truncate", children: a }),
|
|
183
185
|
/* @__PURE__ */ t(
|
|
184
186
|
"span",
|
|
185
187
|
{
|
|
186
|
-
lang:
|
|
188
|
+
lang: g,
|
|
187
189
|
className: "ds:shrink-0 ds:text-muted-foreground ds:[[data-highlighted]_&]:text-current",
|
|
188
190
|
children: i
|
|
189
191
|
}
|
|
@@ -193,91 +195,91 @@ function R({
|
|
|
193
195
|
function ae(a) {
|
|
194
196
|
return Object.prototype.hasOwnProperty.call(S, a);
|
|
195
197
|
}
|
|
196
|
-
function
|
|
198
|
+
function Ee({
|
|
197
199
|
locale: a,
|
|
198
200
|
onLocaleChange: i
|
|
199
201
|
}) {
|
|
200
|
-
const { t:
|
|
202
|
+
const { t: g } = ee("ui"), h = S[ae(a) ? a : "en"], D = (s) => {
|
|
201
203
|
var o;
|
|
202
|
-
|
|
203
|
-
}, I = (
|
|
204
|
-
const o =
|
|
204
|
+
s.target === s.currentTarget && ((o = s.currentTarget.querySelector("input")) == null || o.focus({ preventScroll: !0 }));
|
|
205
|
+
}, I = (s) => {
|
|
206
|
+
const o = s.target;
|
|
205
207
|
if (o instanceof HTMLInputElement) {
|
|
206
|
-
if (
|
|
207
|
-
|
|
208
|
+
if (s.nativeEvent.isComposing) {
|
|
209
|
+
s.stopPropagation();
|
|
208
210
|
return;
|
|
209
211
|
}
|
|
210
|
-
|
|
212
|
+
s.key !== "ArrowLeft" && s.key !== "ArrowRight" || (o.selectionStart !== 0 || o.selectionEnd !== 0) && s.stopPropagation();
|
|
211
213
|
}
|
|
212
214
|
};
|
|
213
|
-
return /* @__PURE__ */
|
|
214
|
-
/* @__PURE__ */ t(
|
|
215
|
-
/* @__PURE__ */ t("span", { className: "ds:truncate", children:
|
|
215
|
+
return /* @__PURE__ */ m(n.Sub, { children: [
|
|
216
|
+
/* @__PURE__ */ t(n.SubTrigger, { "aria-haspopup": "dialog", "data-value": h.code, children: /* @__PURE__ */ m("span", { className: "ds:flex ds:min-w-0 ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
|
|
217
|
+
/* @__PURE__ */ t("span", { className: "ds:truncate", children: g("navigation.headerSettings.language.label") }),
|
|
216
218
|
/* @__PURE__ */ t(
|
|
217
219
|
"span",
|
|
218
220
|
{
|
|
219
|
-
lang:
|
|
221
|
+
lang: h.code,
|
|
220
222
|
className: "ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:[[data-highlighted]_&]:text-current",
|
|
221
|
-
children:
|
|
223
|
+
children: h.nativeName
|
|
222
224
|
}
|
|
223
225
|
)
|
|
224
226
|
] }) }),
|
|
225
227
|
/* @__PURE__ */ t(
|
|
226
|
-
|
|
228
|
+
n.SubContent,
|
|
227
229
|
{
|
|
228
230
|
role: "dialog",
|
|
229
231
|
"aria-orientation": void 0,
|
|
230
|
-
className:
|
|
232
|
+
className: Ne,
|
|
231
233
|
onFocus: D,
|
|
232
234
|
onKeyDownCapture: I,
|
|
233
|
-
onEscapeKeyDown: (
|
|
234
|
-
|
|
235
|
+
onEscapeKeyDown: (s) => {
|
|
236
|
+
s.isComposing && s.preventDefault();
|
|
235
237
|
},
|
|
236
238
|
children: /* @__PURE__ */ t(te.SearchList, { onLocaleChange: i })
|
|
237
239
|
}
|
|
238
240
|
)
|
|
239
241
|
] });
|
|
240
242
|
}
|
|
241
|
-
const
|
|
243
|
+
const He = le(
|
|
242
244
|
(a, i) => {
|
|
243
245
|
var G;
|
|
244
246
|
const {
|
|
245
|
-
align:
|
|
246
|
-
size:
|
|
247
|
+
align: g = "end",
|
|
248
|
+
size: h = "md",
|
|
247
249
|
disabled: D = !1,
|
|
248
250
|
initialLocaleFromHtmlLang: I = !1,
|
|
249
|
-
followHtmlLang:
|
|
251
|
+
followHtmlLang: s = !1,
|
|
250
252
|
onLocaleChange: o,
|
|
251
|
-
className:
|
|
252
|
-
id:
|
|
253
|
-
...
|
|
253
|
+
className: ne,
|
|
254
|
+
id: H,
|
|
255
|
+
...se
|
|
254
256
|
} = a, { t: u } = ee("ui"), c = Se(), { locale: w, setLocale: M } = ve();
|
|
255
|
-
fe(I,
|
|
256
|
-
const
|
|
257
|
-
|
|
257
|
+
fe(I, s);
|
|
258
|
+
const V = d(o);
|
|
259
|
+
V.current = o;
|
|
258
260
|
const K = d(null);
|
|
259
261
|
de(i, () => K.current, []);
|
|
260
|
-
const
|
|
262
|
+
const p = we("(width < 48rem)"), F = Le(), [L, f] = ue("main"), l = p ? L : "main", k = d(null), j = d(null), q = d(null), y = d(null), T = d("keyboard");
|
|
261
263
|
ke(() => {
|
|
262
264
|
var e, r, v, Q, W;
|
|
263
|
-
if (!
|
|
265
|
+
if (!p && L !== "main" && (y.current = L, f("main")), l === "language")
|
|
264
266
|
(r = (e = k.current) == null ? void 0 : e.querySelector(
|
|
265
267
|
T.current === "keyboard" ? "input" : "button"
|
|
266
268
|
)) == null || r.focus({ preventScroll: !0 });
|
|
267
269
|
else if (l === "appearance")
|
|
268
270
|
(Q = (v = k.current) == null ? void 0 : v.querySelector('[role="menuitem"]')) == null || Q.focus({ preventScroll: !0 });
|
|
269
271
|
else if (y.current) {
|
|
270
|
-
const J = y.current,
|
|
272
|
+
const J = y.current, E = p ? (J === "language" ? j : q).current : (W = k.current) == null ? void 0 : W.querySelector(
|
|
271
273
|
`[role="menuitem"][aria-haspopup="${J === "language" ? "dialog" : "menu"}"]`
|
|
272
274
|
);
|
|
273
|
-
|
|
275
|
+
E == null || E.focus({ preventScroll: !0 }), y.current = null;
|
|
274
276
|
}
|
|
275
|
-
}, [
|
|
277
|
+
}, [p, L, l]);
|
|
276
278
|
const O = (e, r) => {
|
|
277
279
|
if (e.nativeEvent.isComposing) return;
|
|
278
|
-
const v =
|
|
280
|
+
const v = F === "rtl" ? "ArrowLeft" : "ArrowRight";
|
|
279
281
|
(e.key === "Enter" || e.key === " " || e.key === v) && (T.current = "keyboard"), e.key === v && (e.preventDefault(), f(r));
|
|
280
|
-
},
|
|
282
|
+
}, _ = () => {
|
|
281
283
|
l !== "main" && (y.current = l, f("main"));
|
|
282
284
|
}, re = (e) => {
|
|
283
285
|
if (l === "main") return;
|
|
@@ -285,10 +287,10 @@ const _e = le(
|
|
|
285
287
|
e.stopPropagation();
|
|
286
288
|
return;
|
|
287
289
|
}
|
|
288
|
-
if (e.key !== (
|
|
290
|
+
if (e.key !== (F === "rtl" ? "ArrowRight" : "ArrowLeft"))
|
|
289
291
|
return;
|
|
290
292
|
const r = e.target;
|
|
291
|
-
r instanceof HTMLInputElement && (r.selectionStart !== 0 || r.selectionEnd !== 0) || (e.preventDefault(), e.stopPropagation(),
|
|
293
|
+
r instanceof HTMLInputElement && (r.selectionStart !== 0 || r.selectionEnd !== 0) || (e.preventDefault(), e.stopPropagation(), _());
|
|
292
294
|
}, B = pe(
|
|
293
295
|
(e) => {
|
|
294
296
|
M(e), Ke(e), ye(e);
|
|
@@ -296,17 +298,17 @@ const _e = le(
|
|
|
296
298
|
[M]
|
|
297
299
|
), $ = d(B);
|
|
298
300
|
$.current = B;
|
|
299
|
-
const
|
|
300
|
-
|
|
301
|
+
const z = d(w);
|
|
302
|
+
z.current = w;
|
|
301
303
|
const b = d(c);
|
|
302
304
|
b.current = c;
|
|
303
305
|
const ie = me(
|
|
304
306
|
() => ({
|
|
305
307
|
setLocale: (e) => {
|
|
306
308
|
if (Object.prototype.hasOwnProperty.call(S, e)) {
|
|
307
|
-
const r =
|
|
309
|
+
const r = z.current;
|
|
308
310
|
$.current(e), be(
|
|
309
|
-
|
|
311
|
+
V.current,
|
|
310
312
|
e,
|
|
311
313
|
r
|
|
312
314
|
);
|
|
@@ -319,15 +321,15 @@ const _e = le(
|
|
|
319
321
|
// class, so `theme: 'system'` and `theme: 'light'` both paint
|
|
320
322
|
// `.theme-light`. Without these an agent cannot tell a switch
|
|
321
323
|
// that landed from one that was dropped.
|
|
322
|
-
getLocale: () =>
|
|
324
|
+
getLocale: () => z.current,
|
|
323
325
|
getTheme: () => b.current.theme,
|
|
324
326
|
getAccessibility: () => b.current.accessibility,
|
|
325
327
|
getResolvedTheme: () => b.current.resolvedTheme
|
|
326
328
|
}),
|
|
327
329
|
[]
|
|
328
330
|
);
|
|
329
|
-
Te(Ie, ie,
|
|
330
|
-
const oe = c.accessibility === "accessible", ce = Ce("--spacing-lg", K, 24),
|
|
331
|
+
Te(Ie, ie, H);
|
|
332
|
+
const oe = c.accessibility === "accessible", ce = Ce("--spacing-lg", K, 24), N = u("navigation.headerSettings.language.label"), C = u("navigation.headerSettings.appearance.label"), P = S[ae(w) ? w : "en"], x = [
|
|
331
333
|
{
|
|
332
334
|
value: "light",
|
|
333
335
|
label: u("navigation.headerSettings.appearance.light")
|
|
@@ -343,44 +345,46 @@ const _e = le(
|
|
|
343
345
|
{
|
|
344
346
|
ref: K,
|
|
345
347
|
"data-component": "header-settings",
|
|
346
|
-
"data-component-id":
|
|
347
|
-
className:
|
|
348
|
-
...
|
|
349
|
-
children: /* @__PURE__ */
|
|
350
|
-
|
|
348
|
+
"data-component-id": H,
|
|
349
|
+
className: _e({ align: g, className: ne }),
|
|
350
|
+
...se,
|
|
351
|
+
children: /* @__PURE__ */ m(
|
|
352
|
+
n.Root,
|
|
351
353
|
{
|
|
352
354
|
onOpenChange: (e) => {
|
|
353
355
|
e || (y.current = null, f("main"));
|
|
354
356
|
},
|
|
355
357
|
children: [
|
|
356
|
-
/* @__PURE__ */ t(
|
|
358
|
+
/* @__PURE__ */ t(n.Trigger, { asChild: !0, children: /* @__PURE__ */ t(
|
|
357
359
|
he,
|
|
358
360
|
{
|
|
359
|
-
size:
|
|
360
|
-
className:
|
|
361
|
+
size: h,
|
|
362
|
+
className: ze({ size: h }),
|
|
361
363
|
disabled: D,
|
|
362
364
|
icon: /* @__PURE__ */ t(De, { "aria-hidden": !0 }),
|
|
363
365
|
"aria-label": u("navigation.headerSettings.trigger")
|
|
364
366
|
}
|
|
365
367
|
) }),
|
|
366
368
|
/* @__PURE__ */ t(
|
|
367
|
-
|
|
369
|
+
n.Content,
|
|
368
370
|
{
|
|
369
371
|
ref: k,
|
|
370
|
-
align:
|
|
372
|
+
align: g,
|
|
371
373
|
collisionPadding: ce,
|
|
372
|
-
className:
|
|
374
|
+
className: Pe({
|
|
375
|
+
width: p ? "phone" : l === "language" ? "language" : "content"
|
|
376
|
+
}),
|
|
373
377
|
...l === "language" ? {
|
|
374
378
|
role: "dialog",
|
|
375
379
|
"aria-orientation": void 0,
|
|
376
|
-
"aria-label":
|
|
380
|
+
"aria-label": N,
|
|
377
381
|
"aria-labelledby": void 0
|
|
378
382
|
} : {},
|
|
379
383
|
onKeyDownCapture: re,
|
|
380
384
|
onEscapeKeyDown: (e) => {
|
|
381
385
|
e.isComposing && e.preventDefault();
|
|
382
386
|
},
|
|
383
|
-
children: l === "language" ? /* @__PURE__ */
|
|
387
|
+
children: l === "language" ? /* @__PURE__ */ m(
|
|
384
388
|
"div",
|
|
385
389
|
{
|
|
386
390
|
role: "presentation",
|
|
@@ -399,17 +403,17 @@ const _e = le(
|
|
|
399
403
|
className: "ds:w-full ds:justify-start ds:text-start ds:font-normal ds:min-h-[var(--min-target-size)] ds:sm:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:gap-[var(--spacing-sm)] ds:[&>span:last-child]:flex-1",
|
|
400
404
|
startIcon: /* @__PURE__ */ t(Y, { "aria-hidden": !0, className: "ds:size-4" }),
|
|
401
405
|
flipIconInRtl: !0,
|
|
402
|
-
onClick:
|
|
403
|
-
children: /* @__PURE__ */ t(R, { label: U, value:
|
|
406
|
+
onClick: _,
|
|
407
|
+
children: /* @__PURE__ */ t(R, { label: U, value: N })
|
|
404
408
|
}
|
|
405
409
|
),
|
|
406
|
-
/* @__PURE__ */ t(
|
|
410
|
+
/* @__PURE__ */ t(n.Separator, {}),
|
|
407
411
|
/* @__PURE__ */ t(te.SearchList, { onLocaleChange: o })
|
|
408
412
|
]
|
|
409
413
|
}
|
|
410
|
-
) : l === "appearance" ? /* @__PURE__ */
|
|
414
|
+
) : l === "appearance" ? /* @__PURE__ */ m(X, { children: [
|
|
411
415
|
/* @__PURE__ */ t(
|
|
412
|
-
|
|
416
|
+
n.Item,
|
|
413
417
|
{
|
|
414
418
|
startIcon: /* @__PURE__ */ t(
|
|
415
419
|
Y,
|
|
@@ -419,20 +423,20 @@ const _e = le(
|
|
|
419
423
|
}
|
|
420
424
|
),
|
|
421
425
|
onSelect: (e) => {
|
|
422
|
-
e.preventDefault(),
|
|
426
|
+
e.preventDefault(), _();
|
|
423
427
|
},
|
|
424
428
|
children: /* @__PURE__ */ t(R, { label: U, value: C })
|
|
425
429
|
}
|
|
426
430
|
),
|
|
427
|
-
/* @__PURE__ */ t(
|
|
431
|
+
/* @__PURE__ */ t(n.Separator, {}),
|
|
428
432
|
/* @__PURE__ */ t(
|
|
429
|
-
|
|
433
|
+
n.RadioGroup,
|
|
430
434
|
{
|
|
431
435
|
"aria-label": C,
|
|
432
436
|
value: c.theme,
|
|
433
437
|
onValueChange: (e) => c.setTheme(e),
|
|
434
|
-
children:
|
|
435
|
-
|
|
438
|
+
children: x.map((e) => /* @__PURE__ */ t(
|
|
439
|
+
n.RadioItem,
|
|
436
440
|
{
|
|
437
441
|
value: e.value,
|
|
438
442
|
onSelect: (r) => r.preventDefault(),
|
|
@@ -442,13 +446,13 @@ const _e = le(
|
|
|
442
446
|
))
|
|
443
447
|
}
|
|
444
448
|
)
|
|
445
|
-
] }) : /* @__PURE__ */
|
|
446
|
-
|
|
447
|
-
|
|
449
|
+
] }) : /* @__PURE__ */ m(X, { children: [
|
|
450
|
+
p ? /* @__PURE__ */ t(
|
|
451
|
+
n.Item,
|
|
448
452
|
{
|
|
449
453
|
ref: j,
|
|
450
454
|
"aria-haspopup": "dialog",
|
|
451
|
-
"data-value":
|
|
455
|
+
"data-value": P.code,
|
|
452
456
|
endIcon: /* @__PURE__ */ t(
|
|
453
457
|
Z,
|
|
454
458
|
{
|
|
@@ -466,22 +470,22 @@ const _e = le(
|
|
|
466
470
|
children: /* @__PURE__ */ t(
|
|
467
471
|
R,
|
|
468
472
|
{
|
|
469
|
-
label:
|
|
470
|
-
value:
|
|
471
|
-
lang:
|
|
473
|
+
label: N,
|
|
474
|
+
value: P.nativeName,
|
|
475
|
+
lang: P.code
|
|
472
476
|
}
|
|
473
477
|
)
|
|
474
478
|
}
|
|
475
479
|
) : /* @__PURE__ */ t(
|
|
476
|
-
|
|
480
|
+
Ee,
|
|
477
481
|
{
|
|
478
482
|
locale: w,
|
|
479
483
|
onLocaleChange: o
|
|
480
484
|
}
|
|
481
485
|
),
|
|
482
|
-
/* @__PURE__ */ t(
|
|
483
|
-
|
|
484
|
-
|
|
486
|
+
/* @__PURE__ */ t(n.Separator, {}),
|
|
487
|
+
p ? /* @__PURE__ */ t(
|
|
488
|
+
n.Item,
|
|
485
489
|
{
|
|
486
490
|
ref: q,
|
|
487
491
|
"aria-haspopup": "menu",
|
|
@@ -504,23 +508,23 @@ const _e = le(
|
|
|
504
508
|
R,
|
|
505
509
|
{
|
|
506
510
|
label: C,
|
|
507
|
-
value: ((G =
|
|
511
|
+
value: ((G = x.find(
|
|
508
512
|
(e) => e.value === c.theme
|
|
509
513
|
)) == null ? void 0 : G.label) ?? ""
|
|
510
514
|
}
|
|
511
515
|
)
|
|
512
516
|
}
|
|
513
517
|
) : /* @__PURE__ */ t(
|
|
514
|
-
|
|
518
|
+
n.ChoiceSub,
|
|
515
519
|
{
|
|
516
520
|
label: C,
|
|
517
521
|
value: c.theme,
|
|
518
522
|
onValueChange: c.setTheme,
|
|
519
|
-
options:
|
|
523
|
+
options: x
|
|
520
524
|
}
|
|
521
525
|
),
|
|
522
526
|
/* @__PURE__ */ t(
|
|
523
|
-
|
|
527
|
+
n.SwitchItem,
|
|
524
528
|
{
|
|
525
529
|
checked: oe,
|
|
526
530
|
onCheckedChange: (e) => c.setAccessibility(e ? "accessible" : "default"),
|
|
@@ -537,8 +541,8 @@ const _e = le(
|
|
|
537
541
|
);
|
|
538
542
|
}
|
|
539
543
|
);
|
|
540
|
-
|
|
544
|
+
He.displayName = "HeaderSettings";
|
|
541
545
|
export {
|
|
542
|
-
|
|
546
|
+
He as H
|
|
543
547
|
};
|
|
544
|
-
//# sourceMappingURL=header-settings-
|
|
548
|
+
//# sourceMappingURL=header-settings-ZGvYAuKF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-settings-ZGvYAuKF.js","sources":["../../src/components/header-settings/header-settings.agent.ts","../../src/components/header-settings/header-settings.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — HeaderSettings. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { HeaderSettingsHandle } from './header-settings';\n\nexport const headerSettingsAgent: AgentAdapter<HeaderSettingsHandle> = {\n id: 'header-settings',\n // Each setter persists a single preference value (locale / theme /\n // accessibility) — `set_value` semantics, not an ephemeral view switch.\n capabilities: ['set_value'],\n // Read-back for all three setters. None of these preferences is\n // recoverable from the DOM — `useTheme` resolves preference + OS into\n // a single applied class, so `theme: 'system'` and `theme: 'light'`\n // both paint `.theme-light` — and `set_locale` swallows unknown tags.\n // Without these slots an agent cannot distinguish \"switched to\n // Italian\" from \"the tag was dropped on the floor\". All four are UI\n // preferences: no PHI, no patient-identifiable data (§7).\n state: {\n locale: {\n type: 'string',\n descriptionKey: 'ui.agent.headerSettings.state.locale',\n description:\n 'Active IETF language tag (e.g. \"en\", \"it\", \"ar\"). Initially uses HTML lang first when followHtmlLang is enabled; otherwise storage, then HTML lang when initialLocaleFromHtmlLang is enabled, then the browser. Read after set_locale to confirm the switch; unknown tags leave it unchanged.',\n read: (handle) => handle.getLocale(),\n },\n theme: {\n type: \"'light' | 'dark' | 'system'\",\n descriptionKey: 'ui.agent.headerSettings.state.theme',\n description:\n \"Stored base-theme preference. `'system'` means no override is set and the OS decides — read `resolvedTheme` for what is actually painted.\",\n read: (handle) => handle.getTheme(),\n },\n accessibility: {\n type: \"'default' | 'accessible' | 'system'\",\n descriptionKey: 'ui.agent.headerSettings.state.accessibility',\n description:\n \"Stored AAA-contrast preference. `'system'` means no override is set and `prefers-contrast` decides.\",\n read: (handle) => handle.getAccessibility(),\n },\n resolvedTheme: {\n type: \"'light' | 'dark' | 'light-accessible' | 'dark-accessible'\",\n descriptionKey: 'ui.agent.headerSettings.state.resolvedTheme',\n description:\n 'The theme actually applied to the document once preference and OS signals resolve. This is what makes a `set_theme(\"system\")` or `set_accessibility(\"system\")` write verifiable.',\n read: (handle) => handle.getResolvedTheme(),\n },\n },\n actions: {\n set_locale: {\n safety: 'write',\n argsType: '{ locale: string }',\n argsSchema: {\n type: 'object',\n properties: {\n locale: {\n type: 'string',\n description:\n 'IETF language tag (e.g. \"en\", \"it\", \"ar\"). Unknown tags are silently dropped.',\n },\n },\n required: ['locale'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.headerSettings.actions.setLocale',\n description:\n \"Switch the active locale to the given IETF tag. Unknown tags are silently dropped — read the `locale` state slot afterwards to confirm. On a site with one address per language, the host may then load that language's address.\",\n errors: [\n 'Silently ignored when the tag names a locale the kit ships no bundle for — `locale` is unchanged.',\n ],\n examples: [{ args: { locale: 'it' }, note: 'Switch to Italian.' }],\n invoke: (handle, args: { locale: string }) => {\n // Validation happens inside the handle so the agent surface\n // accepts arbitrary tags and silently drops unknown ones.\n handle.setLocale(args.locale);\n },\n },\n set_theme: {\n safety: 'write',\n argsType: '{ theme: \"light\" | \"dark\" | \"system\" }',\n argsSchema: {\n type: 'object',\n properties: { theme: { enum: ['light', 'dark', 'system'] } },\n required: ['theme'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.headerSettings.actions.setTheme',\n description:\n 'Switch the theme preference. Verify with the `theme` slot (the stored preference) and `resolvedTheme` (what is actually painted).',\n examples: [\n { args: { theme: 'dark' }, note: 'Switch to the dark theme.' },\n ],\n invoke: (handle, args: { theme: 'light' | 'dark' | 'system' }) => {\n handle.setTheme(args.theme);\n },\n },\n set_accessibility: {\n safety: 'write',\n argsType: '{ accessibility: \"default\" | \"accessible\" | \"system\" }',\n argsSchema: {\n type: 'object',\n properties: {\n accessibility: {\n enum: ['default', 'accessible', 'system'],\n description:\n \"`'system'` clears the override and follows `prefers-contrast`.\",\n },\n },\n required: ['accessibility'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.headerSettings.actions.setAccessibility',\n description:\n 'Switch the accessibility preference. Verify with the `accessibility` slot (the stored preference) and `resolvedTheme` (what is actually painted).',\n examples: [\n {\n args: { accessibility: 'accessible' },\n note: 'Enable the AAA-accessible profile.',\n },\n ],\n invoke: (\n handle,\n args: { accessibility: 'default' | 'accessible' | 'system' },\n ) => {\n handle.setAccessibility(args.accessibility);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'header-settings',\n description: 'Marks the HeaderSettings wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop (forwarded via HTMLAttributes).',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type HTMLAttributes,\n type KeyboardEvent,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ArrowLeft, ChevronRight, Settings } from 'lucide-react';\nimport { Button } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { DropdownMenu } from '../dropdown-menu/dropdown-menu';\nimport {\n LocalePicker,\n persistLocalePreference,\n reportLocaleChange,\n type LocaleChangeHandler,\n useInitialLocale,\n} from '../locale-picker/locale-picker';\nimport {\n useTheme,\n type AccessibilityPreference,\n type ResolvedTheme,\n type ThemePreference,\n} from '../../hooks';\nimport { useLocale } from '../../hooks/use-locale';\nimport { useMediaQuery } from '../../hooks/use-media-query';\nimport { useDocumentDirection } from '../../hooks/use-direction';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { LOCALE_META, type Locale } from '../../i18n/locale-meta';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { headerSettingsAgent } from './header-settings.agent';\nimport { useLengthTokenPx } from '../_shared/length-token';\nimport {\n accessibleTargetSquareClass,\n accessibleTargetSquareFromSmClass,\n} from '../_shared/accessible-target';\n\nfunction applyDocumentAttrs(locale: Locale): void {\n if (typeof document === 'undefined') return;\n const root = document.documentElement;\n root.lang = locale;\n root.dir = LOCALE_META[locale].dir;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst wrapperVariants = cva('ds:inline-flex ds:items-center', {\n variants: {\n align: {\n start: '',\n end: '',\n },\n },\n defaultVariants: { align: 'end' },\n});\n\n// In the standard themes the cog keeps its IconButton box at every size, so\n// `sm` is as tall as a `Button size=\"sm\"` beside it: 44px on phones, 32px\n// from `sm:` up. The hit area still reaches --min-target-size at every width.\n// IconButton hides its `::before` hit box from `sm:` up; this rule is keyed\n// on the button's own marker, so it outranks that rule whatever order the\n// CSS is emitted in (as in DashboardGrid). The box reaches 6px past each\n// edge, no more than the header's --spacing-sm gap.\n// In the accessible themes the cog grows to the 48px target instead, as the\n// kit's other compact controls do (RowActions, DataGrid), so it never looks\n// smaller there than it did before. `lg` (48px) already meets the target.\nconst triggerVariants = cva('', {\n variants: {\n size: {\n // Button sm is 44px tall on phones; IconButton sm is only 32px wide.\n // The unscoped floor's `auto` fallback would undo that phone minimum,\n // so `sm` takes the floor scoped from `sm:` up.\n sm: `ds:min-w-[var(--min-target-size)] ds:sm:min-w-0 ds:data-[component=icon-button]:sm:before:block ${accessibleTargetSquareFromSmClass}`,\n md: `ds:data-[component=icon-button]:sm:before:block ${accessibleTargetSquareClass}`,\n lg: '',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n// The language flyout hosts the searchable locale list, so it takes a\n// popover width rather than the menu's minimum.\nconst languageFlyoutClasses = 'ds:w-[var(--popover-size-md)]';\n\n/* The panel's width. Language holds the searchable locale list, so it\n takes a popover width on every screen. On a phone every view (main,\n language, appearance) spans the screen less the side margins, so the\n panel can only sit in one place: a content-sized or anchor-aligned\n phone panel moved when the view changed (103 px, then 7 px, with Linux\n fonts; HTP-6741). */\nconst panelVariants = cva('', {\n variants: {\n width: {\n content: '',\n language:\n 'ds:[inline-size:var(--popover-size-md)] ds:[min-inline-size:0] ds:[max-inline-size:calc(100vw_-_2_*_var(--spacing-lg))] ds:[&_input]:min-w-0',\n phone:\n 'ds:[inline-size:calc(100vw_-_2_*_var(--spacing-lg))] ds:[min-inline-size:0] ds:[max-inline-size:none] ds:[&_input]:min-w-0',\n },\n },\n defaultVariants: { width: 'content' },\n});\n\ntype PhoneView = 'main' | 'language' | 'appearance';\n\nconst phoneRowClasses = cva(\n 'ds:flex ds:flex-1 ds:min-w-0 ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]',\n);\n\nfunction SettingRowLabel({\n label,\n value,\n lang,\n}: {\n label: string;\n value: string;\n lang?: string;\n}) {\n return (\n <span className={phoneRowClasses()}>\n <span className=\"ds:truncate\">{label}</span>\n <span\n lang={lang}\n className=\"ds:shrink-0 ds:text-muted-foreground ds:[[data-highlighted]_&]:text-current\"\n >\n {value}\n </span>\n </span>\n );\n}\n\nfunction isLocale(tag: string): tag is Locale {\n return Object.prototype.hasOwnProperty.call(LOCALE_META, tag);\n}\n\n/* ------------------------------------------------------------------ */\n/* LanguageSub */\n/* */\n/* One menu row naming the setting and showing the current language */\n/* (\"Language · English ›\"), laid out like DropdownMenu.ChoiceSub. It */\n/* opens a flyout beside the menu holding LocalePicker.SearchList, so */\n/* the 18 locales stay searchable. The flyout is a dialog, not a menu: */\n/* it holds a search combobox and a listbox, which a menu may not own. */\n/* ------------------------------------------------------------------ */\n\nfunction LanguageSub({\n locale,\n onLocaleChange,\n}: {\n locale: string;\n onLocaleChange?: LocaleChangeHandler;\n}) {\n const { t } = useTranslation('ui');\n const current = LOCALE_META[isLocale(locale) ? locale : 'en'];\n\n // Radix focuses the flyout itself when a keyboard user opens it. Hand\n // that focus on to the search field so typing filters at once.\n const handleFocus = (event: FocusEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) return;\n event.currentTarget\n .querySelector<HTMLInputElement>('input')\n ?.focus({ preventScroll: true });\n };\n\n // The flyout closes on the \"back\" arrow (ArrowLeft, or ArrowRight in\n // RTL). Inside the search field that key moves the caret instead,\n // unless the caret is already at the start of the field. Capture\n // phase, so Radix's own handler on the flyout never sees the key.\n const handleKeyDownCapture = (event: KeyboardEvent<HTMLDivElement>) => {\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) return;\n // Keys pressed while an IME is composing (Japanese, Chinese) belong to\n // the composition, never to the menu.\n if (event.nativeEvent.isComposing) {\n event.stopPropagation();\n return;\n }\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n if (target.selectionStart !== 0 || target.selectionEnd !== 0) {\n event.stopPropagation();\n }\n };\n\n return (\n <DropdownMenu.Sub>\n <DropdownMenu.SubTrigger aria-haspopup=\"dialog\" data-value={current.code}>\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]\">\n <span className=\"ds:truncate\">\n {t('navigation.headerSettings.language.label')}\n </span>\n <span\n lang={current.code}\n className=\"ds:shrink-0 ds:text-[color:var(--muted-foreground)] ds:[[data-highlighted]_&]:text-current\"\n >\n {current.nativeName}\n </span>\n </span>\n </DropdownMenu.SubTrigger>\n {/* Radix renders a `menu`; override to `dialog` and drop the\n menu-only `aria-orientation`, which a dialog may not carry. */}\n <DropdownMenu.SubContent\n role=\"dialog\"\n aria-orientation={undefined}\n className={languageFlyoutClasses}\n onFocus={handleFocus}\n onKeyDownCapture={handleKeyDownCapture}\n // Escape that cancels an IME conversion must not close the menu.\n onEscapeKeyDown={(escapeEvent) => {\n if (escapeEvent.isComposing) escapeEvent.preventDefault();\n }}\n >\n <LocalePicker.SearchList onLocaleChange={onLocaleChange} />\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport interface HeaderSettingsProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>,\n VariantProps<typeof wrapperVariants> {\n /** Anchor side for the dropdown. Defaults to `end` (matches LTR + RTL). */\n align?: 'start' | 'end';\n /**\n * Size of the cog trigger only. Forwards to the underlying\n * `IconButton`. In the standard themes the cog shows that button's own\n * box; in the accessible themes `sm` and `md` grow to the 48px target.\n * Defaults to `md`. The hit area always meets `--min-target-size`,\n * including on desktop: where the cog is smaller, an invisible box\n * around it makes up the difference.\n * Use `sm` when composing alongside other `<Button size=\"sm\">`\n * actions in a header row: in the standard themes the cog is then as\n * tall as those buttons.\n *\n * The menu itself (language, appearance and accessible-mode rows)\n * stays at kit defaults regardless — this prop only sizes the\n * trigger.\n */\n size?: 'sm' | 'md' | 'lg';\n /** Disable the trigger entirely. */\n disabled?: boolean;\n /**\n * With no saved choice, start from the page's HTML lang before falling back\n * to the browser. Defaults to false. The first locale surface's mount effect\n * decides for the app lifecycle; pass the same option to LocalePicker.\n */\n initialLocaleFromHtmlLang?: boolean;\n /**\n * The page's HTML lang decides the starting locale, ahead of a saved\n * choice. For sites with one address per language, where the address\n * decides. Defaults to false. Pass the same option to LocalePicker.\n */\n followHtmlLang?: boolean;\n /**\n * Called after a language picked in the menu (or set through the agent\n * handle) has been applied and changed the language. Not called for the\n * starting locale. A site with one address per language navigates to\n * `resolved` here.\n */\n onLocaleChange?: LocaleChangeHandler;\n}\n\nexport interface HeaderSettingsHandle {\n /**\n * Switch the active locale. Widened to `string` (vs. `Locale`) so\n * agent surfaces with untyped inputs can call through without\n * extra casting — invalid tags no-op silently.\n */\n setLocale: (next: string) => void;\n setTheme: (next: ThemePreference) => void;\n setAccessibility: (next: AccessibilityPreference) => void;\n /* ---- read-back for the three setters above -------------------- */\n /** Active IETF language tag, as i18next resolved it. */\n getLocale: () => string;\n /** Stored base-theme preference (`'system'` when no override is set). */\n getTheme: () => ThemePreference;\n /** Stored AAA-contrast preference (`'system'` when no override is set). */\n getAccessibility: () => AccessibilityPreference;\n /**\n * The theme actually painted once preference + OS signals resolve.\n * `theme: 'system'` and `theme: 'light'` both render `.theme-light`,\n * so this is what makes a `setTheme('system')` write verifiable.\n */\n getResolvedTheme: () => ResolvedTheme;\n}\n\n/* ------------------------------------------------------------------ */\n/* HeaderSettings */\n/* */\n/* Single button → single DropdownMenu surface, laid out as a View */\n/* menu: Language, Appearance (light / dark / system) and an Accessible */\n/* mode SwitchItem. On phones the lists replace the panel with a Back */\n/* row; on larger screens they open beside it. Every row uses the hooks */\n/* (`useLocale`, `useTheme`) as the standalone components, so there is */\n/* no state duplication. */\n/* ------------------------------------------------------------------ */\n\nexport const HeaderSettings = forwardRef<HTMLDivElement, HeaderSettingsProps>(\n (props, ref) => {\n const {\n align = 'end',\n size = 'md',\n disabled = false,\n initialLocaleFromHtmlLang = false,\n followHtmlLang = false,\n onLocaleChange,\n className,\n id,\n ...rest\n } = props as HeaderSettingsProps & { id?: string };\n\n const { t } = useTranslation('ui');\n const theme = useTheme();\n const { locale, setLocale: setLocaleI18n } = useLocale();\n // The language search only mounts with its flyout, so apply the saved\n // (or HTML/browser) language here, on mount.\n useInitialLocale(initialLocaleFromHtmlLang, followHtmlLang);\n const onLocaleChangeRef = useRef(onLocaleChange);\n onLocaleChangeRef.current = onLocaleChange;\n\n const forwardedRef = useRef<HTMLDivElement | null>(null);\n useImperativeHandle(ref, () => forwardedRef.current as HTMLDivElement, []);\n\n // PublicHeader uses ds:md:hidden / ds:hidden ds:md:flex for its phone\n // sheet and inline actions. Match that same Tailwind md boundary (768px).\n const isPhone = useMediaQuery('(width < 48rem)');\n const direction = useDocumentDirection();\n const [phoneView, setPhoneView] = useState<PhoneView>('main');\n const view = isPhone ? phoneView : 'main';\n const panelRef = useRef<HTMLDivElement>(null);\n const languageRowRef = useRef<HTMLDivElement>(null);\n const appearanceRowRef = useRef<HTMLDivElement>(null);\n const returnFocusRef = useRef<Exclude<PhoneView, 'main'> | null>(null);\n const activationRef = useRef('keyboard');\n\n useIsomorphicLayoutEffect(() => {\n if (!isPhone && phoneView !== 'main') {\n returnFocusRef.current = phoneView;\n setPhoneView('main');\n }\n if (view === 'language') {\n panelRef.current\n ?.querySelector<HTMLElement>(\n activationRef.current === 'keyboard' ? 'input' : 'button',\n )\n ?.focus({ preventScroll: true });\n } else if (view === 'appearance') {\n panelRef.current\n ?.querySelector<HTMLElement>('[role=\"menuitem\"]')\n ?.focus({ preventScroll: true });\n } else if (returnFocusRef.current) {\n const section = returnFocusRef.current;\n // Desktop renders SubTrigger/ChoiceSub in place of the phone rows.\n const row = isPhone\n ? (section === 'language' ? languageRowRef : appearanceRowRef).current\n : panelRef.current?.querySelector<HTMLElement>(\n `[role=\"menuitem\"][aria-haspopup=\"${section === 'language' ? 'dialog' : 'menu'}\"]`,\n );\n row?.focus({ preventScroll: true });\n returnFocusRef.current = null;\n }\n }, [isPhone, phoneView, view]);\n\n const handlePhoneRowKeyDown = (\n event: KeyboardEvent<HTMLDivElement>,\n section: Exclude<PhoneView, 'main'>,\n ) => {\n if (event.nativeEvent.isComposing) return;\n const forwardKey = direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n if (\n event.key === 'Enter' ||\n event.key === ' ' ||\n event.key === forwardKey\n )\n activationRef.current = 'keyboard';\n if (event.key === forwardKey) {\n event.preventDefault();\n setPhoneView(section);\n }\n };\n\n const goBack = () => {\n if (view === 'main') return;\n returnFocusRef.current = view;\n setPhoneView('main');\n };\n\n const handlePhoneKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (view === 'main') return;\n if (event.nativeEvent.isComposing) {\n event.stopPropagation();\n return;\n }\n if (event.key !== (direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft'))\n return;\n const target = event.target;\n // As in LanguageSub, leave the caret alone until it reaches the start.\n if (\n target instanceof HTMLInputElement &&\n (target.selectionStart !== 0 || target.selectionEnd !== 0)\n )\n return;\n event.preventDefault();\n event.stopPropagation();\n goBack();\n };\n\n // Same side-effect chain as LocalePicker's internal helper:\n // i18next.changeLanguage → document.dir/lang → persist.\n // Share persistence and session preference with every locale picker.\n const setLocaleWithPersistence = useCallback(\n (next: Locale) => {\n void setLocaleI18n(next);\n applyDocumentAttrs(next);\n persistLocalePreference(next);\n },\n [setLocaleI18n],\n );\n const setLocaleRef = useRef(setLocaleWithPersistence);\n setLocaleRef.current = setLocaleWithPersistence;\n // Assigned during render (not in an effect) so an agent reading the\n // slot immediately after `set_locale` sees the settled value rather\n // than the pre-commit one.\n const localeRef = useRef(locale);\n localeRef.current = locale;\n\n const themeRef = useRef(theme);\n themeRef.current = theme;\n const agentHandle = useMemo<HeaderSettingsHandle>(\n () => ({\n setLocale: (next: string) => {\n // Mirrors LocalePicker's gating — silently drop unknown tags\n // rather than crash mid-cascade. `LOCALES_WITH_BUNDLES` is\n // re-imported via the LOCALE_META keys so this file doesn't\n // need the resources module on the build-agent-catalog path.\n if (Object.prototype.hasOwnProperty.call(LOCALE_META, next)) {\n const previous = localeRef.current;\n setLocaleRef.current(next as Locale);\n reportLocaleChange(\n onLocaleChangeRef.current,\n next as Locale,\n previous as Locale,\n );\n }\n },\n setTheme: (next) => themeRef.current.setTheme(next),\n setAccessibility: (next) => themeRef.current.setAccessibility(next),\n // Read-back. None of the three preferences is recoverable from\n // the DOM: `useTheme` resolves preference + OS into one applied\n // class, so `theme: 'system'` and `theme: 'light'` both paint\n // `.theme-light`. Without these an agent cannot tell a switch\n // that landed from one that was dropped.\n getLocale: () => localeRef.current,\n getTheme: () => themeRef.current.theme,\n getAccessibility: () => themeRef.current.accessibility,\n getResolvedTheme: () => themeRef.current.resolvedTheme,\n }),\n [],\n );\n useAgentRegistration(headerSettingsAgent, agentHandle, id);\n\n const accessibleChecked = theme.accessibility === 'accessible';\n // Keep the panel clear of the screen edge by the phone menu's own\n // side margin. In the PublicHeader sheet the gear is\n // 24px from the edge and an end-aligned 224px panel would otherwise be\n // pushed flush against it. On desktop it never reaches the edge.\n const edgeMargin = useLengthTokenPx('--spacing-lg', forwardedRef, 24);\n const languageLabel = t('navigation.headerSettings.language.label');\n const appearanceLabel = t('navigation.headerSettings.appearance.label');\n const currentLocale = LOCALE_META[isLocale(locale) ? locale : 'en'];\n const appearanceOptions = [\n {\n value: 'light',\n label: t('navigation.headerSettings.appearance.light'),\n },\n { value: 'dark', label: t('navigation.headerSettings.appearance.dark') },\n {\n value: 'system',\n label: t('navigation.headerSettings.appearance.system'),\n },\n ] as const;\n const backLabel = t('navigation.headerSettings.back');\n\n return (\n <div\n ref={forwardedRef}\n data-component=\"header-settings\"\n data-component-id={id}\n className={wrapperVariants({ align, className })}\n {...rest}\n >\n <DropdownMenu.Root\n onOpenChange={(open) => {\n if (!open) {\n returnFocusRef.current = null;\n setPhoneView('main');\n }\n }}\n >\n <DropdownMenu.Trigger asChild>\n <IconButton\n size={size}\n className={triggerVariants({ size })}\n disabled={disabled}\n icon={<Settings aria-hidden />}\n aria-label={t('navigation.headerSettings.trigger')}\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content\n ref={panelRef}\n align={align}\n collisionPadding={edgeMargin}\n className={panelVariants({\n width: isPhone\n ? 'phone'\n : view === 'language'\n ? 'language'\n : 'content',\n })}\n {...(view === 'language'\n ? {\n role: 'dialog',\n 'aria-orientation': undefined,\n 'aria-label': languageLabel,\n 'aria-labelledby': undefined,\n }\n : {})}\n onKeyDownCapture={handlePhoneKeyDown}\n onEscapeKeyDown={(event) => {\n if (event.isComposing) event.preventDefault();\n }}\n >\n {view === 'language' ? (\n <div\n role=\"presentation\"\n onKeyDown={(event) => {\n // The dialog owns typing and Tab, not Radix's menu\n // typeahead. Its two tab stops are Back and search.\n if (\n event.key === 'Tab' &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey\n ) {\n event.preventDefault();\n event.currentTarget\n .querySelector<HTMLElement>(\n event.target instanceof HTMLInputElement\n ? 'button'\n : 'input',\n )\n ?.focus();\n }\n event.stopPropagation();\n }}\n >\n <Button\n intent=\"ghost\"\n size=\"sm\"\n className=\"ds:w-full ds:justify-start ds:text-start ds:font-normal ds:min-h-[var(--min-target-size)] ds:sm:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:gap-[var(--spacing-sm)] ds:[&>span:last-child]:flex-1\"\n startIcon={<ArrowLeft aria-hidden className=\"ds:size-4\" />}\n flipIconInRtl\n onClick={goBack}\n >\n <SettingRowLabel label={backLabel} value={languageLabel} />\n </Button>\n <DropdownMenu.Separator />\n <LocalePicker.SearchList onLocaleChange={onLocaleChange} />\n </div>\n ) : view === 'appearance' ? (\n <>\n <DropdownMenu.Item\n startIcon={\n <ArrowLeft\n aria-hidden\n className=\"ds:size-4 ds:rtl:-scale-x-100\"\n />\n }\n onSelect={(event) => {\n event.preventDefault();\n goBack();\n }}\n >\n <SettingRowLabel label={backLabel} value={appearanceLabel} />\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.RadioGroup\n aria-label={appearanceLabel}\n value={theme.theme}\n onValueChange={(next) =>\n theme.setTheme(next as ThemePreference)\n }\n >\n {appearanceOptions.map((option) => (\n <DropdownMenu.RadioItem\n key={option.value}\n value={option.value}\n onSelect={(event) => event.preventDefault()}\n >\n {option.label}\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </>\n ) : (\n <>\n {isPhone ? (\n <DropdownMenu.Item\n ref={languageRowRef}\n aria-haspopup=\"dialog\"\n data-value={currentLocale.code}\n endIcon={\n <ChevronRight\n aria-hidden\n className=\"ds:size-4 ds:rtl:-scale-x-100\"\n />\n }\n onPointerDown={(event) => {\n activationRef.current = event.pointerType;\n }}\n onKeyDown={(event) =>\n handlePhoneRowKeyDown(event, 'language')\n }\n onSelect={(event) => {\n event.preventDefault();\n setPhoneView('language');\n }}\n >\n <SettingRowLabel\n label={languageLabel}\n value={currentLocale.nativeName}\n lang={currentLocale.code}\n />\n </DropdownMenu.Item>\n ) : (\n <LanguageSub\n locale={locale}\n onLocaleChange={onLocaleChange}\n />\n )}\n <DropdownMenu.Separator />\n {isPhone ? (\n <DropdownMenu.Item\n ref={appearanceRowRef}\n aria-haspopup=\"menu\"\n data-value={theme.theme}\n endIcon={\n <ChevronRight\n aria-hidden\n className=\"ds:size-4 ds:rtl:-scale-x-100\"\n />\n }\n onPointerDown={(event) => {\n activationRef.current = event.pointerType;\n }}\n onKeyDown={(event) =>\n handlePhoneRowKeyDown(event, 'appearance')\n }\n onSelect={(event) => {\n event.preventDefault();\n setPhoneView('appearance');\n }}\n >\n <SettingRowLabel\n label={appearanceLabel}\n value={\n appearanceOptions.find(\n (option) => option.value === theme.theme,\n )?.label ?? ''\n }\n />\n </DropdownMenu.Item>\n ) : (\n <DropdownMenu.ChoiceSub\n label={appearanceLabel}\n value={theme.theme}\n onValueChange={theme.setTheme}\n options={appearanceOptions}\n />\n )}\n {/* Writes through useTheme, so the document gets the\n `theme-accessible` class at once (including the Lexend\n swap for Latin scripts, see src/tokens/index.css). */}\n <DropdownMenu.SwitchItem\n checked={accessibleChecked}\n onCheckedChange={(next) =>\n theme.setAccessibility(next ? 'accessible' : 'default')\n }\n >\n {t('navigation.headerSettings.appearance.accessible')}\n </DropdownMenu.SwitchItem>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n </div>\n );\n },\n);\n\nHeaderSettings.displayName = 'HeaderSettings';\n"],"names":["headerSettingsAgent","handle","args","applyDocumentAttrs","locale","root","LOCALE_META","wrapperVariants","cva","triggerVariants","accessibleTargetSquareFromSmClass","accessibleTargetSquareClass","languageFlyoutClasses","panelVariants","phoneRowClasses","SettingRowLabel","label","value","lang","jsxs","jsx","isLocale","tag","LanguageSub","onLocaleChange","t","useTranslation","current","handleFocus","event","_a","handleKeyDownCapture","target","DropdownMenu","escapeEvent","LocalePicker","HeaderSettings","forwardRef","props","ref","align","size","disabled","initialLocaleFromHtmlLang","followHtmlLang","className","id","rest","theme","useTheme","setLocaleI18n","useLocale","useInitialLocale","onLocaleChangeRef","useRef","forwardedRef","useImperativeHandle","isPhone","useMediaQuery","direction","useDocumentDirection","phoneView","setPhoneView","useState","view","panelRef","languageRowRef","appearanceRowRef","returnFocusRef","activationRef","useIsomorphicLayoutEffect","_b","_d","_c","section","row","_e","handlePhoneRowKeyDown","forwardKey","goBack","handlePhoneKeyDown","setLocaleWithPersistence","useCallback","next","persistLocalePreference","setLocaleRef","localeRef","themeRef","agentHandle","useMemo","previous","reportLocaleChange","useAgentRegistration","accessibleChecked","edgeMargin","useLengthTokenPx","languageLabel","appearanceLabel","currentLocale","appearanceOptions","backLabel","open","IconButton","Settings","Button","ArrowLeft","Fragment","option","ChevronRight"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { forwardRef as E, useState as F, useRef as i, useEffect as M, useMemo as
|
|
|
3
3
|
import { c as _ } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as H } from "react-i18next";
|
|
5
5
|
import { P as f } from "./popover-CN5IsOeS.js";
|
|
6
|
-
import { L as V } from "./link-
|
|
6
|
+
import { L as V } from "./link-CeV7FoI6.js";
|
|
7
7
|
import { S as q } from "./scroll-area-CY5SLYNw.js";
|
|
8
8
|
import { c as $ } from "./compose-refs-C0k0tdqF.js";
|
|
9
9
|
import { u as G } from "./registry-DvAUVLHh.js";
|
|
@@ -263,4 +263,4 @@ export {
|
|
|
263
263
|
Z as I,
|
|
264
264
|
Q as i
|
|
265
265
|
};
|
|
266
|
-
//# sourceMappingURL=info-tip-
|
|
266
|
+
//# sourceMappingURL=info-tip-B3cn3fY2.js.map
|