@alfadocs/ui-kit 0.69.0 → 0.70.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/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
- package/dist/_chunks/{agenda-tray-g0kg7HwB.js → agenda-tray-CGXRk58j.js} +2 -2
- package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js → ai-consent-banner-Be-h9mRI.js} +3 -3
- package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
- package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
- package/dist/_chunks/{anamnesis-card-DRmE24OQ.js → anamnesis-card-DvYCa16e.js} +2 -2
- package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
- package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
- package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
- package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
- package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
- package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
- package/dist/_chunks/{audio-recorder-DYXXnGug.js → audio-recorder-Cpdk5qpQ.js} +2 -2
- package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
- package/dist/_chunks/{bishop-score-PJI3AXzA.js → bishop-score-DnYWtZa_.js} +2 -2
- package/dist/_chunks/{bmi-calculator-BZtIJ53x.js → bmi-calculator-zjeY4E7J.js} +2 -2
- package/dist/_chunks/{booking-C3VqFReX.js → booking-DUBI0oqt.js} +4 -4
- package/dist/_chunks/{care-plan-card-CvFGXa2z.js → care-plan-card-C5sTfY9G.js} +5 -5
- package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js → care-plan-entry-card-CXnxGCWA.js} +5 -5
- package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
- package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
- package/dist/_chunks/{contact-profile-card-Dramqa9C.js → contact-profile-card-DDPwRFiP.js} +2 -2
- package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
- package/dist/_chunks/{cycle-calculator-DmRGJNaT.js → cycle-calculator-CCmPwcBl.js} +2 -2
- package/dist/_chunks/{dependent-selector-CG_FOHya.js → dependent-selector-DUV4thxX.js} +2 -2
- package/dist/_chunks/{document-scanner-CTubA0-N.js → document-scanner-C_AxLooF.js} +3 -3
- package/dist/_chunks/{due-date-calculator-BTmsIQqD.js → due-date-calculator-Brdj-euS.js} +3 -3
- package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
- package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
- package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
- package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
- package/dist/_chunks/{fetal-weight-CRz7KE2D.js → fetal-weight-DNCkyeVo.js} +2 -2
- package/dist/_chunks/field-value-NXYczdpO.js +415 -0
- package/dist/_chunks/{file-upload-5ScQd4fE.js → file-upload-DwZcAK8D.js} +2 -1
- package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js → freemium-paywall-WYlNO7yT.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js → gestational-age-calculator-CF2ISaYQ.js} +3 -3
- package/dist/_chunks/hash-CysBBS_N.js +17 -0
- package/dist/_chunks/{hcg-doubling-CnjDXX6U.js → hcg-doubling-C7bmuaU3.js} +2 -2
- package/dist/_chunks/{actions-cell-renderer-DrcaxB0w.js → link-cell-renderer-CTXqtXV-.js} +715 -592
- package/dist/_chunks/lock-CKOIn0IK.js +15 -0
- package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js → marketplace-app-shell-Skhfp6vK.js} +3 -3
- package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
- package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
- package/dist/_chunks/{notification-tray-Btb9oQeZ.js → notification-tray-AEun6DN2.js} +2 -2
- package/dist/_chunks/{operator-hero-CP2Nhupm.js → operator-hero-CR0Rqh4-.js} +3 -3
- package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
- package/dist/_chunks/{patient-search-CBC_ySF6.js → patient-search-Be6cLrHR.js} +2 -2
- package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
- package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
- package/dist/_chunks/{payment-form-DvjwYVIT.js → payment-form-CxqIXqw7.js} +2 -2
- package/dist/_chunks/{payment-request-card-DioWKBUq.js → payment-request-card-BcZJwu9z.js} +125 -136
- package/dist/_chunks/{pdf-viewer-D6BPfW2D.js → pdf-viewer-QfebdLOd.js} +192 -214
- package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js → periodontal-chart-card-hRRJY1NN.js} +2 -2
- package/dist/_chunks/{practice-results-KrTHqZua.js → practice-results-C6qDfxos.js} +3 -3
- package/dist/_chunks/{pregnancy-dating-DORUAOHB.js → pregnancy-dating-CRVWswD-.js} +3 -3
- package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js → pregnancy-weight-gain-BUNpTsH-.js} +2 -2
- package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
- package/dist/_chunks/{rich-text-editor-BsV7zUdg.js → rich-text-editor-DlCqPixb.js} +410 -394
- package/dist/_chunks/{sign-document-B4DeRhTe.js → sign-document-By6hMOra.js} +2 -2
- package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
- package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
- package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
- package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
- package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
- package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
- package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
- package/dist/_chunks/{warning-stack-BsgaEbL8.js → warning-stack--sTrrBDA.js} +86 -101
- package/dist/_chunks/{workflow-map-Bdam9pGp.js → workflow-map-Dy8mLCqF.js} +3 -3
- package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
- package/dist/agent/index.js +5 -4
- package/dist/agent/types.d.ts +19 -2
- package/dist/agent-catalog.json +1253 -86
- package/dist/agent-i18n/en.json +108 -6
- package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
- package/dist/components/_shared/entity-card/index.d.ts +1 -1
- package/dist/components/_shared/field-value.d.ts +21 -0
- package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
- package/dist/components/_shared/field-visibility.d.ts +36 -0
- package/dist/components/_shared/patient-fields.d.ts +119 -0
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-consent-banner/index.js +1 -1
- package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
- package/dist/components/ai-tools-rail/index.js +1 -1
- package/dist/components/alert/alert.d.ts +5 -0
- package/dist/components/alert/index.js +1 -1
- package/dist/components/anamnesis-card/index.js +1 -1
- package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
- package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
- package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
- package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
- package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
- package/dist/components/anatomy-scheme/index.d.ts +6 -0
- package/dist/components/anatomy-scheme/index.js +17 -0
- package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
- package/dist/components/annotation-marker/index.d.ts +3 -0
- package/dist/components/annotation-marker/index.js +7 -0
- package/dist/components/appointment-card/appointment-card.d.ts +25 -1
- package/dist/components/appointment-card/index.js +6 -5
- package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
- package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
- package/dist/components/appointment-timeline/index.d.ts +4 -0
- package/dist/components/appointment-timeline/index.js +6 -0
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/badge/badge.d.ts +6 -2
- package/dist/components/badge/index.js +1 -1
- package/dist/components/bishop-score/index.js +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/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/care-plan-header/care-plan-header.agent.d.ts +4 -0
- package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
- package/dist/components/care-plan-header/index.d.ts +4 -0
- package/dist/components/care-plan-header/index.js +6 -0
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
- package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
- package/dist/components/control-room-rail/index.d.ts +5 -0
- package/dist/components/control-room-rail/index.js +9 -0
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
- package/dist/components/data-table/index.d.ts +1 -1
- package/dist/components/data-table/index.js +32 -31
- package/dist/components/dependent-selector/index.js +1 -1
- package/dist/components/document-scanner/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- package/dist/components/email-input/index.js +1 -1
- package/dist/components/entity-summary/entity-summary.d.ts +43 -0
- package/dist/components/entity-summary/index.d.ts +3 -0
- package/dist/components/entity-summary/index.js +5 -0
- package/dist/components/fetal-weight/index.js +1 -1
- package/dist/components/file-upload/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/hcg-doubling/index.js +1 -1
- package/dist/components/index.d.ts +9 -0
- package/dist/components/notes-panel/index.d.ts +3 -0
- package/dist/components/notes-panel/index.js +5 -0
- package/dist/components/notes-panel/notes-panel.d.ts +64 -0
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/patient-details/index.d.ts +5 -0
- package/dist/components/patient-details/index.js +6 -0
- package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
- package/dist/components/patient-details/patient-details.d.ts +96 -0
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
- package/dist/components/patient-table/columns.d.ts +69 -40
- package/dist/components/patient-table/index.d.ts +2 -6
- package/dist/components/patient-table/index.js +8 -9
- package/dist/components/patient-table/patient-table.d.ts +38 -4
- package/dist/components/patient-table/types.d.ts +52 -2
- package/dist/components/patient-table/use-responsive-columns.d.ts +8 -6
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/periodontal-chart-card/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +1 -1
- package/dist/components/radiograph-panel/index.d.ts +4 -0
- package/dist/components/radiograph-panel/index.js +7 -0
- package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
- package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/stepper-accordion/index.js +1 -1
- package/dist/components/tab-bar/index.js +1 -1
- package/dist/components/tab-bar/tab-bar.d.ts +18 -1
- package/dist/components/tooth-scheme/index.d.ts +2 -2
- package/dist/components/tooth-scheme/index.js +30 -23
- package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
- package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
- package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
- package/dist/components/transaction-chip/index.js +1 -1
- package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/warning-stack/warning-stack.d.ts +10 -7
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +24 -22
- package/dist/hooks/use-clamp-overflow.d.ts +19 -0
- package/dist/hooks/use-overflow-collapse.d.ts +46 -0
- package/dist/hooks/use-persistent-state.d.ts +7 -1
- package/dist/hooks/use-scroll-overflow.d.ts +36 -0
- package/dist/i18n/locales/ar.d.ts +308 -24
- package/dist/i18n/locales/ar.js +322 -27
- package/dist/i18n/locales/de.d.ts +308 -24
- package/dist/i18n/locales/de.js +322 -27
- package/dist/i18n/locales/el.d.ts +308 -24
- package/dist/i18n/locales/el.js +322 -27
- package/dist/i18n/locales/en.d.ts +309 -32
- package/dist/i18n/locales/en.js +323 -35
- package/dist/i18n/locales/es.d.ts +308 -24
- package/dist/i18n/locales/es.js +322 -27
- package/dist/i18n/locales/fr.d.ts +308 -24
- package/dist/i18n/locales/fr.js +322 -27
- package/dist/i18n/locales/hi.d.ts +308 -24
- package/dist/i18n/locales/hi.js +322 -27
- package/dist/i18n/locales/it.d.ts +308 -24
- package/dist/i18n/locales/it.js +322 -27
- package/dist/i18n/locales/ja.d.ts +308 -24
- package/dist/i18n/locales/ja.js +322 -27
- package/dist/i18n/locales/nl.d.ts +308 -24
- package/dist/i18n/locales/nl.js +322 -27
- package/dist/i18n/locales/pl.d.ts +308 -24
- package/dist/i18n/locales/pl.js +322 -27
- package/dist/i18n/locales/pt.d.ts +308 -24
- package/dist/i18n/locales/pt.js +322 -27
- package/dist/i18n/locales/ro.d.ts +308 -24
- package/dist/i18n/locales/ro.js +322 -27
- package/dist/i18n/locales/ru.d.ts +308 -24
- package/dist/i18n/locales/ru.js +322 -27
- package/dist/i18n/locales/sq.d.ts +308 -24
- package/dist/i18n/locales/sq.js +322 -27
- package/dist/i18n/locales/sv.d.ts +308 -24
- package/dist/i18n/locales/sv.js +322 -27
- package/dist/i18n/locales/tr.d.ts +308 -24
- package/dist/i18n/locales/tr.js +322 -27
- package/dist/i18n/locales/zh.d.ts +308 -24
- package/dist/i18n/locales/zh.js +322 -27
- package/dist/index.js +672 -623
- package/dist/locales/ar.json +311 -27
- package/dist/locales/de.json +311 -27
- package/dist/locales/el.json +311 -27
- package/dist/locales/en.json +311 -27
- package/dist/locales/es.json +311 -27
- package/dist/locales/fr.json +311 -27
- package/dist/locales/hi.json +311 -27
- package/dist/locales/it.json +311 -27
- package/dist/locales/ja.json +311 -27
- package/dist/locales/nl.json +311 -27
- package/dist/locales/pl.json +311 -27
- package/dist/locales/pt.json +311 -27
- package/dist/locales/ro.json +311 -27
- package/dist/locales/ru.json +311 -27
- package/dist/locales/sq.json +311 -27
- package/dist/locales/sv.json +311 -27
- package/dist/locales/tr.json +311 -27
- package/dist/locales/zh.json +311 -27
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +37 -1
- package/dist/_chunks/ai-tools-rail-BA_sqy1A.js +0 -373
- package/dist/_chunks/appointment-tray-CZtvtaH-.js +0 -431
- package/dist/_chunks/clinical-note-card-DqQYf_D4.js +0 -333
- package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +0 -448
- package/dist/_chunks/email-input-B_Y55f5G.js +0 -396
- package/dist/_chunks/patient-summary-card-B836_fDB.js +0 -435
- package/dist/_chunks/patient-table-CDuosVru.js +0 -889
- package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
- package/dist/_chunks/tooth-scheme-yBr53cvv.js +0 -1330
- package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
- package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +0 -45
- package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +0 -26
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AgentAdapter } from '../../agent/types';
|
|
2
|
+
import type { RadiographPanelHandle } from './radiograph-panel';
|
|
3
|
+
import type { Radiograph } from '../tooth-scheme';
|
|
4
|
+
/**
|
|
5
|
+
* The Imaging panel for the Control Room rail. It DISPLAYS the selected tooth's
|
|
6
|
+
* radiographs and drives the fullscreen viewer; uploads and deletes are the
|
|
7
|
+
* host's responsibility (the `onAddRadiograph` / `onDeleteRadiograph` props),
|
|
8
|
+
* so they are not exposed here — the consuming pattern/app owns those `write` /
|
|
9
|
+
* `destructive` workflows and their `radiograph.*` API contracts.
|
|
10
|
+
*/
|
|
11
|
+
export declare const radiographPanelAgent: AgentAdapter<RadiographPanelHandle>;
|
|
12
|
+
export type { Radiograph };
|
|
13
|
+
//# sourceMappingURL=radiograph-panel.agent.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
import { Radiation } from 'lucide-react';
|
|
3
|
+
import type { FdiId, Radiograph } from '../tooth-scheme';
|
|
4
|
+
export interface RadiographPanelHandle {
|
|
5
|
+
/** Read the films currently shown (after the host's `radiographs` prop). */
|
|
6
|
+
getRadiographs: () => Radiograph[];
|
|
7
|
+
/** Open the fullscreen viewer on a film by id. */
|
|
8
|
+
openViewer: (id: string) => void;
|
|
9
|
+
/** Close the fullscreen viewer. */
|
|
10
|
+
closeViewer: () => void;
|
|
11
|
+
}
|
|
12
|
+
export interface RadiographPanelProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'children'> {
|
|
13
|
+
/** Instance id — emitted as `data-component-id` for the agent registry. */
|
|
14
|
+
id?: string;
|
|
15
|
+
/** The tooth whose films are shown (FDI id). Null → a "select a tooth" prompt. */
|
|
16
|
+
toothId?: FdiId | null;
|
|
17
|
+
/** Display label for the selected tooth. Defaults to the localised "Tooth {{id}}". */
|
|
18
|
+
toothLabel?: string;
|
|
19
|
+
/** The selected tooth's films. The panel sorts + filters; order in is irrelevant. */
|
|
20
|
+
radiographs?: Radiograph[];
|
|
21
|
+
/** Commit a new film (the host persists it). Omit to hide the upload composer. */
|
|
22
|
+
onAddRadiograph?: (draft: {
|
|
23
|
+
fileName: string;
|
|
24
|
+
date?: string;
|
|
25
|
+
note?: string;
|
|
26
|
+
}) => void;
|
|
27
|
+
/** Remove a film by id. Omit to hide the delete affordance. */
|
|
28
|
+
onDeleteRadiograph?: (id: string) => void;
|
|
29
|
+
/** Panel heading. Defaults to the localised "Imaging". */
|
|
30
|
+
title?: string;
|
|
31
|
+
/** Accessible name for the panel region (defaults to `title`). */
|
|
32
|
+
'aria-label'?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare const RadiographPanel: import("react").ForwardRefExoticComponent<RadiographPanelProps & import("react").RefAttributes<RadiographPanelHandle>>;
|
|
35
|
+
export { Radiation as RadiographPanelIcon };
|
|
36
|
+
//# sourceMappingURL=radiograph-panel.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { S as r, a as i, b as s, c as d, d as S, e as b, f as t, g as o, h as m, i as n, j as p, k as l, l as c, m as g, n as u, o as I, p as P, q as f, s as h, u as B } from "../../_chunks/sidebar-DY9jGjgt.js";
|
|
2
|
-
import { u as k } from "../../_chunks/use-persistent-state-
|
|
2
|
+
import { u as k } from "../../_chunks/use-persistent-state-nZwZAnE9.js";
|
|
3
3
|
export {
|
|
4
4
|
r as Sidebar,
|
|
5
5
|
i as SidebarBody,
|
|
@@ -14,13 +14,18 @@
|
|
|
14
14
|
* Use this when the tab set is open-ended (e.g. a marketplace app's routes).
|
|
15
15
|
* - `fill`: equal-width tabs that fill the bar and always stack the label under
|
|
16
16
|
* the icon — a fixed, always-visible set that fits any column width without
|
|
17
|
-
* scrolling (e.g. a patient portal's
|
|
17
|
+
* scrolling (e.g. a patient portal's handful of sections).
|
|
18
18
|
*
|
|
19
19
|
* Tabs render as links when given an `href` (real navigation) or as buttons
|
|
20
20
|
* otherwise (in-app view switching via `onSelect`). Use it as a header (top,
|
|
21
21
|
* default) for section navigation; `position="bottom"` floats it from the
|
|
22
22
|
* bottom edge for a footer.
|
|
23
23
|
*
|
|
24
|
+
* With `collapseToMenu`, the strip folds into a single DropdownMenu whenever the
|
|
25
|
+
* tabs don't fit — below the `sm` breakpoint OR when they overflow their
|
|
26
|
+
* container at any width (a narrow column on a wide screen, e.g. a page squeezed
|
|
27
|
+
* between two sidebars, clips the tabs just the same as a small viewport).
|
|
28
|
+
*
|
|
24
29
|
* SPA / consumer-router links: pass `renderLink` and TabBar hands each `href`
|
|
25
30
|
* tab off to your router's `<Link>` instead of rendering its own `<a>` — the
|
|
26
31
|
* embedded MarketplaceAppShell strip uses this so a tab click is a client-side
|
|
@@ -97,6 +102,18 @@ export interface TabBarProps {
|
|
|
97
102
|
* `'bottom'` gutters from the bottom edge for a footer.
|
|
98
103
|
*/
|
|
99
104
|
position?: 'top' | 'bottom';
|
|
105
|
+
/**
|
|
106
|
+
* Collapse the tab strip into a single DropdownMenu whenever the tabs don't
|
|
107
|
+
* fit — below the `sm` breakpoint (≤640px) OR when they overflow their
|
|
108
|
+
* container at any viewport width (a narrow column between two sidebars clips
|
|
109
|
+
* the tabs the same as a small screen). The trigger shows the active tab; the
|
|
110
|
+
* menu lists them all. Off (default) keeps the content-width / scroll
|
|
111
|
+
* behaviour at every width, so existing consumers are unaffected. Designed for
|
|
112
|
+
* button (`onSelect`) tabs; in the collapsed menu an `href` tab navigates with
|
|
113
|
+
* a full page load, so `renderLink` (SPA routing) and a per-item `onClick`
|
|
114
|
+
* apply only to the expanded strip.
|
|
115
|
+
*/
|
|
116
|
+
collapseToMenu?: boolean;
|
|
100
117
|
/** Extra classes merged onto the outer strip (e.g. sticky/fixed positioning). */
|
|
101
118
|
className?: string;
|
|
102
119
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './tooth-scheme';
|
|
2
|
-
export { FDI_TO_META, FDI_TO_UNIVERSAL, FDI_TO_PALMER, CONDITION_COLORS, CONDITION_TOKENS, CONDITION_SIDE_SYMBOL, CONDITION_PLAN_FOLDER, SURFACE_ASSET_NAME, toothImageUrl, conditionSymbolUrl, surfaceSymbolUrl, zonesForTooth, zoneSurface, zonePath, chartFromConditions, emptyChart, labelFor, layoutTeeth, } from './tooth-data';
|
|
3
|
-
export type { Anatomy, Arch, Quadrant, Side, Surface, SurfaceZone, Projection, SideSymbolSpec, ToothMeta, PositionedTooth, } from './tooth-data';
|
|
2
|
+
export { FDI_TO_META, FDI_TO_UNIVERSAL, FDI_TO_PALMER, CONDITION_COLORS, CONDITION_TOKENS, CONDITION_SIDE_SYMBOL, CONDITION_PLAN_FOLDER, SURFACE_ASSET_NAME, toothImageUrl, conditionSymbolUrl, surfaceSymbolUrl, zonesForTooth, zoneSurface, zonePath, chartFromConditions, emptyChart, labelFor, layoutTeeth, layoutSpecials, specialsForRow, specialIconUrl, generalElement, isSpecialElement, SPECIAL_ELEMENTS, SPECIAL_BY_ID, } from './tooth-data';
|
|
3
|
+
export type { Anatomy, Arch, Quadrant, Side, Surface, SurfaceZone, Projection, Radiograph, RadiographKind, SideSymbolSpec, SpecialElement, SpecialElementKind, PositionedSpecial, ToothMeta, PositionedTooth, } from './tooth-data';
|
|
4
4
|
export { toothSchemeAgent } from './tooth-scheme.agent';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,27 +1,34 @@
|
|
|
1
|
-
import { C as o, a as
|
|
1
|
+
import { C as o, a as e, b as t, c as E, F as S, d as T, e as I, P as _, f as l, S as r, g as O, h as N, T as n, i as c, j as h, k as m, l as A, m as i, n as C, o as D, p as F, s as L, q as R, r as P, t as p, u as M, v as U, z as u, w as y, x as b } from "../../_chunks/tooth-scheme-BhQoPNBD.js";
|
|
2
2
|
export {
|
|
3
3
|
o as CONDITION_COLORS,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
r as
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
4
|
+
e as CONDITION_PLAN_FOLDER,
|
|
5
|
+
t as CONDITION_SIDE_SYMBOL,
|
|
6
|
+
E as CONDITION_TOKENS,
|
|
7
|
+
S as FDI_TO_META,
|
|
8
|
+
T as FDI_TO_PALMER,
|
|
9
|
+
I as FDI_TO_UNIVERSAL,
|
|
10
|
+
_ as PERMANENT_TEETH,
|
|
11
|
+
l as PRIMARY_TEETH,
|
|
12
|
+
r as SPECIAL_BY_ID,
|
|
13
|
+
O as SPECIAL_ELEMENTS,
|
|
14
|
+
N as SURFACE_ASSET_NAME,
|
|
15
|
+
n as ToothScheme,
|
|
16
|
+
c as chartFromConditions,
|
|
17
|
+
h as conditionSymbolUrl,
|
|
18
|
+
m as emptyChart,
|
|
19
|
+
A as generalElement,
|
|
20
|
+
i as isSpecialElement,
|
|
21
|
+
C as labelFor,
|
|
22
|
+
D as layoutSpecials,
|
|
23
|
+
F as layoutTeeth,
|
|
24
|
+
L as specialIconUrl,
|
|
25
|
+
R as specialsForRow,
|
|
26
|
+
P as surfaceSymbolUrl,
|
|
27
|
+
p as toothImageUrl,
|
|
28
|
+
M as toothSchemeAgent,
|
|
29
|
+
U as toothSchemeVariants,
|
|
30
|
+
u as zonePath,
|
|
31
|
+
y as zoneSurface,
|
|
32
|
+
b as zonesForTooth
|
|
26
33
|
};
|
|
27
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -10,6 +10,35 @@ export interface ToothState {
|
|
|
10
10
|
notes?: string;
|
|
11
11
|
}
|
|
12
12
|
export type ToothChart = Record<FdiId, ToothState>;
|
|
13
|
+
/** Radiograph (x-ray) type. `'periapical'` is the intraoral *endorale*. */
|
|
14
|
+
export type RadiographKind = 'periapical' | 'bitewing' | 'panoramic' | 'other';
|
|
15
|
+
/**
|
|
16
|
+
* A single radiograph attached to a tooth. Image urls are opaque,
|
|
17
|
+
* consumer-hosted strings, interpolated into an SVG `<image href>` / `<img src>`
|
|
18
|
+
* (which cannot execute scripts) — never bundled and never runtime-validated.
|
|
19
|
+
* Real radiographs are PHI: stories and demos must use synthetic placeholders.
|
|
20
|
+
*/
|
|
21
|
+
export interface Radiograph {
|
|
22
|
+
/** Stable id — keys the archive list and the imperative open call. */
|
|
23
|
+
id: string;
|
|
24
|
+
/** Full-resolution image url. */
|
|
25
|
+
url: string;
|
|
26
|
+
/** Optional smaller preview url (falls back to `url`). */
|
|
27
|
+
thumbnailUrl?: string;
|
|
28
|
+
/** ISO acquisition date (`YYYY-MM-DD`). */
|
|
29
|
+
date?: string;
|
|
30
|
+
/** Free-text clinical note. */
|
|
31
|
+
note?: string;
|
|
32
|
+
/** Radiograph type. Default `'periapical'` (an *endorale*). */
|
|
33
|
+
kind?: RadiographKind;
|
|
34
|
+
/**
|
|
35
|
+
* Accessible description for the FULL-SIZE image, consumed by a downstream
|
|
36
|
+
* viewer (e.g. the Dental Imaging Hub archive `<img>`). The chart's slot
|
|
37
|
+
* render is decorative (`aria-hidden` — the tooth's accessible name carries
|
|
38
|
+
* the radiograph count), so `alt` is intentionally not read by the chart.
|
|
39
|
+
*/
|
|
40
|
+
alt?: string;
|
|
41
|
+
}
|
|
13
42
|
export type Anatomy = 'incisor' | 'canine' | 'premolar' | 'molar';
|
|
14
43
|
export type Arch = 'upper' | 'lower';
|
|
15
44
|
export type Side = 'right' | 'left';
|
|
@@ -141,11 +170,93 @@ export interface PositionedTooth {
|
|
|
141
170
|
* is preserved: the patient's right sits on the viewer's left in both
|
|
142
171
|
* arches, regardless of document direction.
|
|
143
172
|
*/
|
|
144
|
-
export declare function layoutTeeth(dentition: Dentition, slotHeight?: number
|
|
173
|
+
export declare function layoutTeeth(dentition: Dentition, slotHeight?: number, options?: {
|
|
174
|
+
arch?: Arch;
|
|
175
|
+
}): {
|
|
145
176
|
teeth: PositionedTooth[];
|
|
146
177
|
width: number;
|
|
147
178
|
height: number;
|
|
148
179
|
};
|
|
180
|
+
export type SpecialElementKind = 'quadrant' | 'sextant' | 'arch' | 'general';
|
|
181
|
+
export interface SpecialElement {
|
|
182
|
+
/**
|
|
183
|
+
* Stable id — a chart key and the value emitted by `onSelect`. Permanent:
|
|
184
|
+
* `Q1`–`Q4`, `S1`–`S6`, `AS`, `AI`, `general`. Primary mirrors with an `m`
|
|
185
|
+
* prefix: `mQ1`…, `mS1`…, `mAS`, `mAI`, `mGeneral`.
|
|
186
|
+
*/
|
|
187
|
+
id: string;
|
|
188
|
+
kind: SpecialElementKind;
|
|
189
|
+
arch: Arch;
|
|
190
|
+
dentition: 'permanent' | 'primary';
|
|
191
|
+
/** i18n token under `toothScheme.special.*` for the accessible name. */
|
|
192
|
+
labelKey: 'quadrant' | 'sextant' | 'archUpper' | 'archLower' | 'general';
|
|
193
|
+
/** Interpolated into the `{{n}}` of quadrant / sextant labels (e.g. `1`). */
|
|
194
|
+
labelIndex?: number;
|
|
195
|
+
/** Short code shown in the slot, e.g. `Q1`, `S3`, `AS`, `Gen.`. */
|
|
196
|
+
code: string;
|
|
197
|
+
/**
|
|
198
|
+
* Member teeth (FDI) — informational for consumers that highlight or expand a
|
|
199
|
+
* region. Selection itself keys on `id`; the platform expands membership
|
|
200
|
+
* server-side. Sextants follow the WHO/CPITN convention.
|
|
201
|
+
*/
|
|
202
|
+
teeth: FdiId[];
|
|
203
|
+
/**
|
|
204
|
+
* Column within the special-element block. Quadrant and its paired sextant
|
|
205
|
+
* share a column so they stack (Q1↕S1, Q2↕S2, AS↕S3 / S4↕Q4, S5↕Q3, S6↕AI).
|
|
206
|
+
*/
|
|
207
|
+
column: number;
|
|
208
|
+
/** Row the element attaches to: side (quadrant/arch/general) or plan (sextant). */
|
|
209
|
+
row: Projection;
|
|
210
|
+
}
|
|
211
|
+
/** Every special element, flat — permanent then primary. */
|
|
212
|
+
export declare const SPECIAL_ELEMENTS: SpecialElement[];
|
|
213
|
+
/** Lookup a special element by its id (`Q1`, `mS3`, `AS`, `general`…). */
|
|
214
|
+
export declare const SPECIAL_BY_ID: Record<string, SpecialElement>;
|
|
215
|
+
/** True when an id names a special element rather than a tooth. */
|
|
216
|
+
export declare function isSpecialElement(id: string): boolean;
|
|
217
|
+
/**
|
|
218
|
+
* The special-element SLOTS that attach to a given row, ordered by column.
|
|
219
|
+
* Quadrant / arch live on the `side` row; sextants on the `plan` row. The
|
|
220
|
+
* whole-mouth `general` element is excluded — it renders as a switch beneath the
|
|
221
|
+
* chart (see `generalElement`), not as a column. Mixed dentition reuses the
|
|
222
|
+
* permanent set (the platform has no mixed view).
|
|
223
|
+
*/
|
|
224
|
+
export declare function specialsForRow(dentition: Dentition, arch: Arch, projection: Projection): SpecialElement[];
|
|
225
|
+
/**
|
|
226
|
+
* The whole-mouth `general` element for a dentition. It is rendered as a switch
|
|
227
|
+
* beneath the chart rather than as a cramped icon column (the platform's vertical
|
|
228
|
+
* "GENERALE" glyph is illegible at column width).
|
|
229
|
+
*/
|
|
230
|
+
export declare function generalElement(dentition: Dentition): SpecialElement;
|
|
231
|
+
/** A special-element slot placed in an SVG, to the inline-end of the teeth. */
|
|
232
|
+
export interface PositionedSpecial {
|
|
233
|
+
element: SpecialElement;
|
|
234
|
+
x: number;
|
|
235
|
+
y: number;
|
|
236
|
+
}
|
|
237
|
+
/** Special-element slot block-size — matches a tooth slot so icons read clearly. */
|
|
238
|
+
export declare const SPECIAL_SLOT_WIDTH = 36;
|
|
239
|
+
/**
|
|
240
|
+
* Resolve the photoreal icon URL for a special element, or `null` when it has
|
|
241
|
+
* none (sextants are label-only — the platform ships no sextant icon). Icons
|
|
242
|
+
* live in the `global/` sibling of the `teeth/` render folder; quadrants and
|
|
243
|
+
* arches reuse their code as the file stem (`Q1`, `AS`, …), general resolves to
|
|
244
|
+
* `general`, and primary elements reuse the permanent art.
|
|
245
|
+
*/
|
|
246
|
+
export declare function specialIconUrl(element: SpecialElement, assetBaseUrl: string): string | null;
|
|
247
|
+
/** Gap between the last tooth and the first special-element column. */
|
|
248
|
+
export declare const SPECIAL_GAP = 8;
|
|
249
|
+
/** Column pitch within the special-element block. */
|
|
250
|
+
export declare const SPECIAL_PITCH: number;
|
|
251
|
+
/**
|
|
252
|
+
* Place a row's special elements after the teeth (inline-end) and report the
|
|
253
|
+
* total row width. Columns are derived from `element.column`, so a quadrant and
|
|
254
|
+
* its paired sextant share an x and stack across the two rows.
|
|
255
|
+
*/
|
|
256
|
+
export declare function layoutSpecials(specials: SpecialElement[], teethWidth: number): {
|
|
257
|
+
specials: PositionedSpecial[];
|
|
258
|
+
width: number;
|
|
259
|
+
};
|
|
149
260
|
export declare function labelFor(id: FdiId, numbering: Numbering): string;
|
|
150
261
|
export declare function emptyChart(): ToothChart;
|
|
151
262
|
export declare function chartFromConditions(conditions: Partial<Record<FdiId, ToothCondition[]>>): ToothChart;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentAdapter } from '../../agent/types';
|
|
2
2
|
import type { ToothSchemeHandle } from './tooth-scheme';
|
|
3
|
-
import type { Surface, ToothCondition } from './tooth-data';
|
|
3
|
+
import type { Radiograph, Surface, ToothCondition } from './tooth-data';
|
|
4
4
|
export declare const toothSchemeAgent: AgentAdapter<ToothSchemeHandle>;
|
|
5
|
-
export type { Surface, ToothCondition };
|
|
5
|
+
export type { Radiograph, Surface, ToothCondition };
|
|
6
6
|
//# sourceMappingURL=tooth-scheme.agent.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PERMANENT_TEETH, PRIMARY_TEETH, type ViewMode, type Dentition, type FdiId, type Numbering, type Surface, type ToothChart, type ToothCondition, type ToothMode } from './tooth-data';
|
|
1
|
+
import { PERMANENT_TEETH, PRIMARY_TEETH, type Arch, type ViewMode, type Dentition, type FdiId, type Numbering, type Radiograph, type Surface, type ToothChart, type ToothCondition, type ToothMode } from './tooth-data';
|
|
2
2
|
export interface ToothSchemeProps {
|
|
3
3
|
/** Opaque instance id — emitted as `data-component-id` for the agent registry. */
|
|
4
4
|
id?: string;
|
|
@@ -10,21 +10,59 @@ export interface ToothSchemeProps {
|
|
|
10
10
|
mode?: ToothMode;
|
|
11
11
|
/**
|
|
12
12
|
* `'side'` shows the facial view (whole-tooth findings); `'plan'` shows the
|
|
13
|
-
* occlusal view (per-surface caries / fillings); `'both'`
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* occlusal view (per-surface caries / fillings); `'both'` lays the two facial
|
|
14
|
+
* rows on the outside with the two occlusal rows between them (upper side →
|
|
15
|
+
* upper occlusal → lower occlusal → lower side), bracketed by tooth numbers
|
|
16
|
+
* above and below. Default `'side'`.
|
|
16
17
|
*/
|
|
17
18
|
projection?: ViewMode;
|
|
19
|
+
/**
|
|
20
|
+
* Show the selectable special-element slots (quadrants, sextants, arches,
|
|
21
|
+
* whole-mouth) to the inline-end of each arch row. When unset, they show in
|
|
22
|
+
* `both` view and hide in the single side / plan views; pass `true` / `false`
|
|
23
|
+
* to force it. They share the chart data and emit `onSelect` like a tooth.
|
|
24
|
+
*/
|
|
25
|
+
specialElements?: boolean;
|
|
18
26
|
/** Controlled chart state — the full `Record<FdiId, ToothState>`. */
|
|
19
27
|
value?: ToothChart;
|
|
20
28
|
/** Uncontrolled initial chart state. */
|
|
21
29
|
defaultValue?: ToothChart;
|
|
22
30
|
/** Fired whenever the chart changes — always emits FDI ids. */
|
|
23
31
|
onChange?: (next: ToothChart) => void;
|
|
24
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Fired when a tooth OR special element is focused / clicked. Special
|
|
34
|
+
* elements emit their id (`Q1`, `S3`, `AS`, `general`, …).
|
|
35
|
+
*/
|
|
25
36
|
onSelect?: (toothId: FdiId) => void;
|
|
26
37
|
/** Shortcut for pre-populating conditions: `{ '16': ['caries'], '36': ['filled'] }`. */
|
|
27
38
|
conditions?: Partial<Record<FdiId, ToothCondition[]>>;
|
|
39
|
+
/**
|
|
40
|
+
* Per-tooth radiographs (x-rays / *endorali*), keyed by FDI id — mirrors the
|
|
41
|
+
* `conditions` shape. Teeth carrying at least one radiograph get a corner
|
|
42
|
+
* count badge; in `radiographDisplay="thumbnail"` the most-recent film also
|
|
43
|
+
* fills the slot. Image urls are opaque / consumer-hosted — never bundle real
|
|
44
|
+
* scans (PHI).
|
|
45
|
+
*/
|
|
46
|
+
radiographs?: Partial<Record<FdiId, Radiograph[]>>;
|
|
47
|
+
/**
|
|
48
|
+
* How a tooth carrying radiographs is marked. `'badge'` (default) keeps the
|
|
49
|
+
* photoreal tooth render and adds a corner count badge; `'thumbnail'` shows
|
|
50
|
+
* the most-recent radiograph inset in the slot (still badged).
|
|
51
|
+
*/
|
|
52
|
+
radiographDisplay?: 'badge' | 'thumbnail';
|
|
53
|
+
/**
|
|
54
|
+
* Fired when a tooth's radiograph archive is opened — i.e. a tooth is
|
|
55
|
+
* activated (click / Enter / Space) in `mode="display"`. Wire this to a
|
|
56
|
+
* Sheet/Dialog that manages the tooth's films. Setting this makes display-mode
|
|
57
|
+
* teeth focusable buttons; it is mutually exclusive with interactive
|
|
58
|
+
* findings-editing (`mode="interactive"` / `activeCondition`).
|
|
59
|
+
*
|
|
60
|
+
* EVERY tooth becomes an open-archive button — including unfilmed teeth, so the
|
|
61
|
+
* user can add the first film to an empty tooth (matching a real imaging hub).
|
|
62
|
+
* Filmed teeth are distinguished by the radiograph count folded into their
|
|
63
|
+
* accessible name and tooltip.
|
|
64
|
+
*/
|
|
65
|
+
onOpenRadiographs?: (toothId: FdiId) => void;
|
|
28
66
|
/**
|
|
29
67
|
* The finding a tooth-click applies in interactive mode (the selected
|
|
30
68
|
* tool in a Findings / "Stato dentale" panel). Clicking a tooth toggles
|
|
@@ -49,10 +87,10 @@ export interface ToothSchemeProps {
|
|
|
49
87
|
legend?: boolean;
|
|
50
88
|
/**
|
|
51
89
|
* Render a built-in options affordance: a gear button that opens a popover
|
|
52
|
-
* letting the END USER toggle the legend
|
|
53
|
-
* projection. Opt-in — when on, those
|
|
54
|
-
* from the props); when off, the props drive the
|
|
55
|
-
* `false`.
|
|
90
|
+
* letting the END USER toggle the legend + special elements and switch
|
|
91
|
+
* dentition / numbering / projection. Opt-in — when on, those become
|
|
92
|
+
* user-overridable (seeded from the props); when off, the props drive the
|
|
93
|
+
* chart directly. Default `false`.
|
|
56
94
|
*/
|
|
57
95
|
controls?: boolean;
|
|
58
96
|
/** Accessible label override for the chart region. */
|
|
@@ -60,6 +98,26 @@ export interface ToothSchemeProps {
|
|
|
60
98
|
/** Extra class names on the wrapper. */
|
|
61
99
|
className?: string;
|
|
62
100
|
}
|
|
101
|
+
/** Number-label placement for a sub-chart. */
|
|
102
|
+
type NumbersPosition = 'between' | 'above' | 'below' | 'none';
|
|
103
|
+
/**
|
|
104
|
+
* Internal-only props (prefixed `_`) used when the component composes itself
|
|
105
|
+
* into the four-row `both` view — never part of the public API.
|
|
106
|
+
*/
|
|
107
|
+
interface ToothSchemeInternalProps {
|
|
108
|
+
/** Render a single arch (the `both` view stacks one arch per sub-chart). */
|
|
109
|
+
_arch?: Arch;
|
|
110
|
+
/** Number-label placement for this sub-chart. */
|
|
111
|
+
_numbersPosition?: NumbersPosition;
|
|
112
|
+
/** Render only the `<svg>` (no region wrapper, controls, legend, or chrome). */
|
|
113
|
+
_inner?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Force the SVG content width (the `both` view shares one width across all
|
|
116
|
+
* four sub-charts so they scale identically and stay column-aligned —
|
|
117
|
+
* otherwise rows with fewer special-element columns would scale up larger).
|
|
118
|
+
*/
|
|
119
|
+
_contentWidth?: number;
|
|
120
|
+
}
|
|
63
121
|
export interface ToothSchemeHandle {
|
|
64
122
|
/** Programmatically focus a tooth by FDI id. */
|
|
65
123
|
focusTooth: (id: FdiId) => void;
|
|
@@ -75,9 +133,15 @@ export interface ToothSchemeHandle {
|
|
|
75
133
|
removeFinding: (id: FdiId, condition: ToothCondition) => void;
|
|
76
134
|
/** Clear every finding from a tooth. */
|
|
77
135
|
clearTooth: (id: FdiId) => void;
|
|
136
|
+
/** Read the radiographs attached to one tooth (empty array if none). */
|
|
137
|
+
getRadiographs: (id: FdiId) => Radiograph[];
|
|
138
|
+
/** Read the FDI ids of every tooth carrying at least one radiograph. */
|
|
139
|
+
teethWithRadiographs: () => FdiId[];
|
|
140
|
+
/** Focus a tooth and open its radiograph archive (fires `onOpenRadiographs`). */
|
|
141
|
+
openRadiographs: (id: FdiId) => void;
|
|
78
142
|
}
|
|
79
143
|
declare const rootVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
80
|
-
export declare const ToothScheme: import("react").ForwardRefExoticComponent<ToothSchemeProps & import("react").RefAttributes<ToothSchemeHandle>>;
|
|
144
|
+
export declare const ToothScheme: import("react").ForwardRefExoticComponent<ToothSchemeProps & ToothSchemeInternalProps & import("react").RefAttributes<ToothSchemeHandle>>;
|
|
81
145
|
export { rootVariants as toothSchemeVariants, PERMANENT_TEETH, PRIMARY_TEETH };
|
|
82
|
-
export type { Dentition, FdiId, Numbering, ToothChart, ToothCondition, ToothMode, ToothState, } from './tooth-data';
|
|
146
|
+
export type { Dentition, FdiId, Numbering, SpecialElement, ToothChart, ToothCondition, ToothMode, ToothState, } from './tooth-data';
|
|
83
147
|
//# sourceMappingURL=tooth-scheme.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
-
export type TransactionState = 'debt' | 'credit' | 'to-invoice' | 'to-deliver' | 'settled';
|
|
3
|
+
export type TransactionState = 'debt' | 'credit' | 'to-invoice' | 'to-deliver' | 'settled' | 'discount';
|
|
4
4
|
declare const chipVariants: (props?: ({
|
|
5
|
-
state?: "debt" | "credit" | "to-invoice" | "to-deliver" | "settled" | null | undefined;
|
|
5
|
+
state?: "debt" | "credit" | "to-invoice" | "to-deliver" | "settled" | "discount" | null | undefined;
|
|
6
6
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
7
|
bold?: boolean | null | undefined;
|
|
8
8
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -11,7 +11,6 @@ export interface WarningStackItem {
|
|
|
11
11
|
dismissible?: boolean;
|
|
12
12
|
}
|
|
13
13
|
declare const stackVariants: (props?: ({
|
|
14
|
-
size?: "sm" | "md" | null | undefined;
|
|
15
14
|
stretch?: boolean | null | undefined;
|
|
16
15
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
16
|
export interface WarningStackProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'role' | 'title'>, VariantProps<typeof stackVariants> {
|
|
@@ -26,17 +25,21 @@ export interface WarningStackProps extends Omit<HTMLAttributes<HTMLDivElement>,
|
|
|
26
25
|
title?: ReactNode;
|
|
27
26
|
/** Optional short description rendered under the title. */
|
|
28
27
|
description?: ReactNode;
|
|
29
|
-
/** Cap on visible items before a "Show N more" toggle appears.
|
|
28
|
+
/** Cap on visible items before a "Show N more" toggle appears. Defaults to
|
|
29
|
+
* `2`; pass a larger number (or `Infinity`) to show more before collapsing. */
|
|
30
30
|
maxVisible?: number;
|
|
31
31
|
/** Whether the stack starts collapsed when items exceed `maxVisible`. */
|
|
32
32
|
defaultCollapsed?: boolean;
|
|
33
33
|
/** Fires when a dismissible item's close control is activated. */
|
|
34
34
|
onDismiss?: (item: WarningStackItem) => void;
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
/** Whether the whole-stack close control is shown at the header's inline-end.
|
|
36
|
+
* Defaults to `true` — the tray is closable. Set `false` for stacks that
|
|
37
|
+
* carry notices which must not be bulk-cleared (e.g. hard compliance blocks). */
|
|
38
|
+
closable?: boolean;
|
|
39
|
+
/** Fires when the whole-stack close control is activated, after every
|
|
40
|
+
* currently-visible notice has been dismissed (folding the region away).
|
|
41
|
+
* Optional — the fold happens internally regardless; supply this only to
|
|
42
|
+
* mirror the bulk dismissal into the consumer's own store. */
|
|
40
43
|
onDismissAll?: () => void;
|
|
41
44
|
/** Accessible label for the whole-stack close control. Defaults to the
|
|
42
45
|
* localised "Dismiss all notices". */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-
|
|
1
|
+
import { C as r, W as e, a as s, b as d, c as w, i as t, l as f, m as l, r as i, w as k, d as n, e as A, f as C } from "../../_chunks/workflow-map-Dy8mLCqF.js";
|
|
2
2
|
export {
|
|
3
3
|
r as CORE_PATIENT_FIELDS,
|
|
4
4
|
e as WorkflowCard,
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export { useFocusTrap, type UseFocusTrapOptions } from './use-focus-trap';
|
|
|
16
16
|
export { useDirection, useDocumentDirection, type Direction, } from './use-direction';
|
|
17
17
|
export { usePersistentState } from './use-persistent-state';
|
|
18
18
|
export { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';
|
|
19
|
+
export { useOverflowCollapse, type UseOverflowCollapseReturn, } from './use-overflow-collapse';
|
|
19
20
|
export { useWebOtp, type UseWebOtpOptions } from './use-web-otp';
|
|
20
21
|
export { useEdgeResize, type UseEdgeResizeOptions, type UseEdgeResizeReturn, type EdgeResizeSeparatorProps, } from './use-edge-resize';
|
|
21
22
|
export { useSigningSession, type SigningField, type SigningFieldBase, type UseSigningSessionReturn, } from './use-signing-session';
|