formanitor 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/BpeChartWidget-HATASHAC.mjs +7 -0
  2. package/dist/BpeChartWidget-HATASHAC.mjs.map +1 -0
  3. package/dist/BpeChartWidget-VZRH7M7L.cjs +28 -0
  4. package/dist/BpeChartWidget-VZRH7M7L.cjs.map +1 -0
  5. package/dist/{DateTimeWidget-3AUBZYYK.mjs → DateTimeWidget-KRX4O6OD.mjs} +5 -4
  6. package/dist/DateTimeWidget-KRX4O6OD.mjs.map +1 -0
  7. package/dist/{DateTimeWidget-OS7ER5F6.cjs → DateTimeWidget-RJ7SATVA.cjs} +6 -5
  8. package/dist/DateTimeWidget-RJ7SATVA.cjs.map +1 -0
  9. package/dist/{DateWidget-KCTE6N5G.mjs → DateWidget-JEKDKPNS.mjs} +4 -3
  10. package/dist/DateWidget-JEKDKPNS.mjs.map +1 -0
  11. package/dist/{DateWidget-UNLX544Z.cjs → DateWidget-T7IQUWEA.cjs} +8 -7
  12. package/dist/DateWidget-T7IQUWEA.cjs.map +1 -0
  13. package/dist/DentalChartWidget-LYLOFWZU.cjs +21 -0
  14. package/dist/DentalChartWidget-LYLOFWZU.cjs.map +1 -0
  15. package/dist/DentalChartWidget-P2YPKAMO.mjs +8 -0
  16. package/dist/DentalChartWidget-P2YPKAMO.mjs.map +1 -0
  17. package/dist/{EditableTable-VQ72UEFF.cjs → EditableTable-OW5LC6OC.cjs} +6 -5
  18. package/dist/EditableTable-OW5LC6OC.cjs.map +1 -0
  19. package/dist/{EditableTable-XFCPKSUY.mjs → EditableTable-VZ66IXYI.mjs} +5 -4
  20. package/dist/EditableTable-VZ66IXYI.mjs.map +1 -0
  21. package/dist/ExtraOralExamWidget-JVKJ4ZWC.mjs +438 -0
  22. package/dist/ExtraOralExamWidget-JVKJ4ZWC.mjs.map +1 -0
  23. package/dist/ExtraOralExamWidget-ZIOSKMIO.cjs +440 -0
  24. package/dist/ExtraOralExamWidget-ZIOSKMIO.cjs.map +1 -0
  25. package/dist/{FollowupWidget-MAYTHM2E.cjs → FollowupWidget-2STSJSDY.cjs} +8 -7
  26. package/dist/FollowupWidget-2STSJSDY.cjs.map +1 -0
  27. package/dist/{FollowupWidget-BFZ6P2JE.mjs → FollowupWidget-GCGPWZVY.mjs} +4 -3
  28. package/dist/FollowupWidget-GCGPWZVY.mjs.map +1 -0
  29. package/dist/{OBGPathwayWidget-X67XKRIH.mjs → OBGPathwayWidget-QJNWUIEM.mjs} +4 -3
  30. package/dist/OBGPathwayWidget-QJNWUIEM.mjs.map +1 -0
  31. package/dist/{OBGPathwayWidget-XGN3HEWS.cjs → OBGPathwayWidget-YRU36UL7.cjs} +13 -12
  32. package/dist/OBGPathwayWidget-YRU36UL7.cjs.map +1 -0
  33. package/dist/{ObstetricHistoryWidget-Z4VAXH3E.mjs → ObstetricHistoryWidget-EW6JLNQ7.mjs} +4 -3
  34. package/dist/ObstetricHistoryWidget-EW6JLNQ7.mjs.map +1 -0
  35. package/dist/{ObstetricHistoryWidget-RP7NY4PV.cjs → ObstetricHistoryWidget-OOWCVFRB.cjs} +10 -9
  36. package/dist/ObstetricHistoryWidget-OOWCVFRB.cjs.map +1 -0
  37. package/dist/PregnancyStatusWidget-QTTVFBOE.cjs +96 -0
  38. package/dist/PregnancyStatusWidget-QTTVFBOE.cjs.map +1 -0
  39. package/dist/PregnancyStatusWidget-U2BEJGBJ.mjs +94 -0
  40. package/dist/PregnancyStatusWidget-U2BEJGBJ.mjs.map +1 -0
  41. package/dist/{SuggestionTextareaWidget-DY6M5JPO.cjs → SuggestionTextareaWidget-FWRZ46MV.cjs} +5 -5
  42. package/dist/{SuggestionTextareaWidget-DY6M5JPO.cjs.map → SuggestionTextareaWidget-FWRZ46MV.cjs.map} +1 -1
  43. package/dist/{SuggestionTextareaWidget-GQTWCFBG.mjs → SuggestionTextareaWidget-UNL3FZRI.mjs} +3 -3
  44. package/dist/{SuggestionTextareaWidget-GQTWCFBG.mjs.map → SuggestionTextareaWidget-UNL3FZRI.mjs.map} +1 -1
  45. package/dist/TreatmentPlanWidget-665HLKYV.mjs +317 -0
  46. package/dist/TreatmentPlanWidget-665HLKYV.mjs.map +1 -0
  47. package/dist/TreatmentPlanWidget-TATWSPLY.cjs +319 -0
  48. package/dist/TreatmentPlanWidget-TATWSPLY.cjs.map +1 -0
  49. package/dist/{chunk-4PMNVBJD.mjs → chunk-2OMQV2ZB.mjs} +4 -3
  50. package/dist/chunk-2OMQV2ZB.mjs.map +1 -0
  51. package/dist/chunk-5RT3S67O.cjs +30 -0
  52. package/dist/chunk-5RT3S67O.cjs.map +1 -0
  53. package/dist/chunk-6YUVILN5.mjs +42 -0
  54. package/dist/chunk-6YUVILN5.mjs.map +1 -0
  55. package/dist/{chunk-YEFM2ERQ.cjs → chunk-7OQFO6TM.cjs} +8 -7
  56. package/dist/chunk-7OQFO6TM.cjs.map +1 -0
  57. package/dist/chunk-BBD3Y37O.cjs +220 -0
  58. package/dist/chunk-BBD3Y37O.cjs.map +1 -0
  59. package/dist/chunk-EJ7MKHER.mjs +45 -0
  60. package/dist/chunk-EJ7MKHER.mjs.map +1 -0
  61. package/dist/{chunk-XN2QLBLT.mjs → chunk-G6Y4UJPN.mjs} +5 -4
  62. package/dist/chunk-G6Y4UJPN.mjs.map +1 -0
  63. package/dist/{chunk-AZSAPO2V.cjs → chunk-HXY3IX3G.cjs} +3 -44
  64. package/dist/chunk-HXY3IX3G.cjs.map +1 -0
  65. package/dist/{chunk-BMNY7F6H.mjs → chunk-JM7WNDNT.mjs} +4 -21
  66. package/dist/chunk-JM7WNDNT.mjs.map +1 -0
  67. package/dist/chunk-MQHZ7HD2.mjs +215 -0
  68. package/dist/chunk-MQHZ7HD2.mjs.map +1 -0
  69. package/dist/{chunk-ML47UEDU.cjs → chunk-O4FSJPU3.cjs} +2 -27
  70. package/dist/chunk-O4FSJPU3.cjs.map +1 -0
  71. package/dist/chunk-Q66LXMRR.mjs +28 -0
  72. package/dist/chunk-Q66LXMRR.mjs.map +1 -0
  73. package/dist/chunk-RILRMRXB.cjs +50 -0
  74. package/dist/chunk-RILRMRXB.cjs.map +1 -0
  75. package/dist/chunk-SQ2KNAUD.cjs +64 -0
  76. package/dist/chunk-SQ2KNAUD.cjs.map +1 -0
  77. package/dist/{chunk-TVFUWRTE.cjs → chunk-TCQQUJCL.cjs} +5 -4
  78. package/dist/chunk-TCQQUJCL.cjs.map +1 -0
  79. package/dist/chunk-UKSP3B3W.mjs +600 -0
  80. package/dist/chunk-UKSP3B3W.mjs.map +1 -0
  81. package/dist/chunk-X4AJCTON.cjs +607 -0
  82. package/dist/chunk-X4AJCTON.cjs.map +1 -0
  83. package/dist/chunk-ZZX3IG2T.mjs +25 -0
  84. package/dist/chunk-ZZX3IG2T.mjs.map +1 -0
  85. package/dist/index.cjs +104 -46
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.cts +67 -3
  88. package/dist/index.d.ts +67 -3
  89. package/dist/index.mjs +70 -42
  90. package/dist/index.mjs.map +1 -1
  91. package/dist/read-only-table.d.cts +1 -1
  92. package/dist/read-only-table.d.ts +1 -1
  93. package/dist/smart.d.cts +1 -1
  94. package/dist/smart.d.ts +1 -1
  95. package/dist/{types-CYtJk8H9.d.ts → types-BbOnd5IN.d.cts} +53 -3
  96. package/dist/{types-CYtJk8H9.d.cts → types-BbOnd5IN.d.ts} +53 -3
  97. package/package.json +1 -1
  98. package/dist/DateTimeWidget-3AUBZYYK.mjs.map +0 -1
  99. package/dist/DateTimeWidget-OS7ER5F6.cjs.map +0 -1
  100. package/dist/DateWidget-KCTE6N5G.mjs.map +0 -1
  101. package/dist/DateWidget-UNLX544Z.cjs.map +0 -1
  102. package/dist/EditableTable-VQ72UEFF.cjs.map +0 -1
  103. package/dist/EditableTable-XFCPKSUY.mjs.map +0 -1
  104. package/dist/FollowupWidget-BFZ6P2JE.mjs.map +0 -1
  105. package/dist/FollowupWidget-MAYTHM2E.cjs.map +0 -1
  106. package/dist/OBGPathwayWidget-X67XKRIH.mjs.map +0 -1
  107. package/dist/OBGPathwayWidget-XGN3HEWS.cjs.map +0 -1
  108. package/dist/ObstetricHistoryWidget-RP7NY4PV.cjs.map +0 -1
  109. package/dist/ObstetricHistoryWidget-Z4VAXH3E.mjs.map +0 -1
  110. package/dist/chunk-4HDMR2LX.mjs +0 -69
  111. package/dist/chunk-4HDMR2LX.mjs.map +0 -1
  112. package/dist/chunk-4PMNVBJD.mjs.map +0 -1
  113. package/dist/chunk-AZSAPO2V.cjs.map +0 -1
  114. package/dist/chunk-BMNY7F6H.mjs.map +0 -1
  115. package/dist/chunk-ML47UEDU.cjs.map +0 -1
  116. package/dist/chunk-TVFUWRTE.cjs.map +0 -1
  117. package/dist/chunk-XN2QLBLT.mjs.map +0 -1
  118. package/dist/chunk-YEFM2ERQ.cjs.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as FormValues, I as FormDef, K as FormState, F as FieldDef, aK as WorkflowTransition, ak as Rule, r as DoctorFrequentItems, o as DiagnosticPackage, B as BaseFieldDef, a1 as MedicationFrequentItem, V as InvestigationFrequentItem } from './types-CYtJk8H9.cjs';
2
- export { a as BiometryIolWorkupFieldDef, b as BiometryIolWorkupValue, c as BiometryMethod, C as CampDateOption, d as CampDateSelection, e as CampDatesFieldDef, f as CampTimeSlotOption, g as CampTimeSlotsFieldDef, h as CheckboxFieldDef, i as ColumnLayout, j as Computation, k as Condition, D as DataSource, l as DiagnosisGradeSelection, m as DiagnosisTextareaFieldDef, n as DiagnosisTextareaValue, p as DiagnosticPackageTest, q as DifferentialDiagnosisFieldDef, E as EditableTableColumnDef, s as EditableTableFieldDef, t as EventDefinition, u as ExtractedKeywordMatch, v as FieldPrefill, w as FieldState, x as FieldStyleClassNames, y as FieldStyleConfig, z as FieldType, A as FileUploadFieldDef, G as FollowupFieldDef, H as FollowupValue, J as FormErrors, M as FormulaComputation, N as FormulaExpr, O as FunctionalImpairmentDimension, P as FunctionalImpairmentScoreFieldDef, Q as FunctionalImpairmentScoreValue, R as GeneralSurgeryExaminationFieldDef, S as GeneralSurgeryGradingFieldDef, T as GeneralSurgerySmartHistoryFieldDef, U as ImageUploadFieldDef, W as InvestigationsFieldDef, X as LayoutNode, Y as LensAssessmentFieldDef, Z as LensAssessmentValue, _ as LocsGrades, $ as MatchedCondition, a0 as MediaUploadFieldDef, a2 as MedicationsFieldDef, a3 as MultiStepLayoutNode, a4 as MultiStepNode, a5 as NumberFieldDef, a6 as OBGExaminationFieldDef, a7 as OBGPathwayFieldDef, a8 as OtpInputFieldDef, a9 as OtpVerifiedValue, aa as PainScaleFlagsFieldDef, ab as Permission, ac as PhoneInputFieldDef, ad as ProcedureFrequentItem, ae as ProceduresFieldDef, af as RadioFieldDef, ag as ReferralFieldDef, ah as ReferralItem, ai as RepeatableFieldDef, aj as RichTextFieldDef, al as RuleAction, am as ScoreComputation, an as ScoreRange, ao as Section, ap as SectionChild, aq as SelectFieldDef, ar as SelectOption, as as SignatureFieldDef, at as SliderFieldDef, au as SmartTextareaFieldDef, av as SmartTextareaValue, aw as StaticTextFieldDef, ax as SuggestionTextareaFieldDef, ay as SumComputation, az as SurgicalRiskFlagsFieldDef, aA as SurgicalRiskFlagsValue, aB as TextFieldDef, aC as ToggleFieldDef, aD as UrologyExaminationFieldDef, aE as UrologyPathwayFieldDef, aF as UrologySmartHistoryFieldDef, aG as ValidationRule, aH as VitalsFieldDef, aI as WebhookDef, aJ as Workflow } from './types-CYtJk8H9.cjs';
1
+ import { O as FormValues, L as FormDef, N as FormState, F as FieldDef, aT as WorkflowTransition, ap as Rule, u as DoctorFrequentItems, r as DiagnosticPackage, B as BaseFieldDef, a4 as MedicationFrequentItem, Y as InvestigationFrequentItem, m as DentalChartData, aJ as ToothCondition } from './types-BbOnd5IN.cjs';
2
+ export { a as BiometryIolWorkupFieldDef, b as BiometryIolWorkupValue, c as BiometryMethod, d as BpeChartFieldDef, C as CampDateOption, e as CampDateSelection, f as CampDatesFieldDef, g as CampTimeSlotOption, h as CampTimeSlotsFieldDef, i as CheckboxFieldDef, j as ColumnLayout, k as Computation, l as Condition, D as DataSource, n as DentalChartFieldDef, o as DiagnosisGradeSelection, p as DiagnosisTextareaFieldDef, q as DiagnosisTextareaValue, s as DiagnosticPackageTest, t as DifferentialDiagnosisFieldDef, E as EditableTableColumnDef, v as EditableTableFieldDef, w as EventDefinition, x as ExtractedKeywordMatch, y as FieldPrefill, z as FieldState, A as FieldStyleClassNames, G as FieldStyleConfig, H as FieldType, I as FileUploadFieldDef, J as FollowupFieldDef, K as FollowupValue, M as FormErrors, P as FormulaComputation, Q as FormulaExpr, R as FunctionalImpairmentDimension, S as FunctionalImpairmentScoreFieldDef, T as FunctionalImpairmentScoreValue, U as GeneralSurgeryExaminationFieldDef, V as GeneralSurgeryGradingFieldDef, W as GeneralSurgerySmartHistoryFieldDef, X as ImageUploadFieldDef, Z as InvestigationsFieldDef, _ as LayoutNode, $ as LensAssessmentFieldDef, a0 as LensAssessmentValue, a1 as LocsGrades, a2 as MatchedCondition, a3 as MediaUploadFieldDef, a5 as MedicationsFieldDef, a6 as MultiStepLayoutNode, a7 as MultiStepNode, a8 as NumberFieldDef, a9 as OBGExaminationFieldDef, aa as OBGPathwayFieldDef, ab as OtpInputFieldDef, ac as OtpVerifiedValue, ad as PainScaleFlagsFieldDef, ae as Permission, af as PhoneInputFieldDef, ag as PregnancyStatusFieldDef, ah as PregnancyStatusValue, ai as ProcedureFrequentItem, aj as ProceduresFieldDef, ak as RadioFieldDef, al as ReferralFieldDef, am as ReferralItem, an as RepeatableFieldDef, ao as RichTextFieldDef, aq as RuleAction, ar as ScoreComputation, as as ScoreRange, at as Section, au as SectionChild, av as SelectFieldDef, aw as SelectOption, ax as SignatureFieldDef, ay as SliderFieldDef, az as SmartTextareaFieldDef, aA as SmartTextareaValue, aB as SocialHistoryFieldDef, aC as StaticTextFieldDef, aD as SuggestionTextareaFieldDef, aE as SumComputation, aF as SurgicalRiskFlagsFieldDef, aG as SurgicalRiskFlagsValue, aH as TextFieldDef, aI as ToggleFieldDef, aK as ToothEntry, aL as TreatmentPlanFieldDef, aM as UrologyExaminationFieldDef, aN as UrologyPathwayFieldDef, aO as UrologySmartHistoryFieldDef, aP as ValidationRule, aQ as VitalsFieldDef, aR as WebhookDef, aS as Workflow } from './types-BbOnd5IN.cjs';
3
3
  import React from 'react';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  export { r as richTextHtmlClassName } from './richTextClassName--8wkuHkW.cjs';
@@ -678,4 +678,68 @@ type DifferentialDiagnosisProps = {
678
678
  */
679
679
  declare const DifferentialDiagnosis: React.FC<DifferentialDiagnosisProps>;
680
680
 
681
- export { type AIDifferentialDiagnosisItem, AddInvestigationField, type AddInvestigationFieldProps, AddMedicationField, type AddMedicationFieldProps, BaseFieldDef, type CampBookingConfig, CampBookingPersistenceProvider, type CreateUploadHandlerOptions, DiagnosticPackage, DifferentialDiagnosis, type DifferentialDiagnosisItem, type DifferentialDiagnosisProps, DoctorFrequentItems, DynamicForm, DynamicFormV2, type DynamicFormV2Props, type DynamicFormV2SectionMode, EMAIL_REGEX, FieldDef, type FieldHandler, type FieldHandlersMap, FieldRenderer, FieldRequiredIndicator, FormControls, type FormControlsProps, FormDef, FormFileUploadWidget, FormProvider, FormState, FormStore, FormValues, ImageUploadWidget, type Investigation, InvestigationFrequentItem, type InvestigationSearchResult, MAR_MEDICATION_ORDERS_META_KEY, MediaUploadWidget, type Medication, MedicationFrequentItem, type MedicationSearchResult, MultiStepForm, type MultiStepFormProps, type PresignedUploadResponse, ReadOnlyForm, ReadOnlyImageUpload, ReadOnlyMediaUpload, ReadOnlySignature, Rule, type RuleResult, SignatureUploadWidget, SmartForm, type SmartFormProps, type StoreAuthConfig, type StoreCampsConfig, type StoreConfig, type SubmissionData, Upload, type UploadProps, WorkflowTransition, createUploadHandler, evaluateRules, fieldControlClass, fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldMetaRequestsMarMedicationOrdersButton, fieldWrapperClass, isLabelVisible, useField, useFieldHandlers, useForm, useFormStore, useFrequentItems, usePackages, validateField, validateForm };
681
+ declare function DentalChartReadOnly({ data, className, }: {
682
+ data: DentalChartData;
683
+ className?: string;
684
+ }): react_jsx_runtime.JSX.Element;
685
+
686
+ declare const CONDITION_CONFIG: Record<ToothCondition, {
687
+ label: string;
688
+ color: string;
689
+ }>;
690
+ /** FDI quadrant tooth numbers, ordered from midline outward */
691
+ declare const QUADRANTS: {
692
+ upperRight: readonly [11, 12, 13, 14, 15, 16, 17, 18];
693
+ upperLeft: readonly [21, 22, 23, 24, 25, 26, 27, 28];
694
+ lowerLeft: readonly [31, 32, 33, 34, 35, 36, 37, 38];
695
+ lowerRight: readonly [41, 42, 43, 44, 45, 46, 47, 48];
696
+ };
697
+ declare function toothLabel(id: number): string;
698
+ /** Coerces an unknown value into a valid `DentalChartData` shape. */
699
+ declare function normalizeDentalChart(value: unknown): DentalChartData;
700
+
701
+ declare const BPE_SCORES: readonly ["0", "1", "2", "3", "4", "*"];
702
+ type BpeScore = (typeof BPE_SCORES)[number];
703
+ declare const SEXTANTS: readonly [{
704
+ readonly key: "upper_right";
705
+ readonly label: "UR";
706
+ readonly arch: "upper";
707
+ readonly teeth: "17–14";
708
+ }, {
709
+ readonly key: "upper_anterior";
710
+ readonly label: "UA";
711
+ readonly arch: "upper";
712
+ readonly teeth: "13–23";
713
+ }, {
714
+ readonly key: "upper_left";
715
+ readonly label: "UL";
716
+ readonly arch: "upper";
717
+ readonly teeth: "24–27";
718
+ }, {
719
+ readonly key: "lower_right";
720
+ readonly label: "LR";
721
+ readonly arch: "lower";
722
+ readonly teeth: "44–47";
723
+ }, {
724
+ readonly key: "lower_anterior";
725
+ readonly label: "LA";
726
+ readonly arch: "lower";
727
+ readonly teeth: "33–43";
728
+ }, {
729
+ readonly key: "lower_left";
730
+ readonly label: "LL";
731
+ readonly arch: "lower";
732
+ readonly teeth: "34–37";
733
+ }];
734
+ type SextantKey = (typeof SEXTANTS)[number]['key'];
735
+ type BpeChartData = {
736
+ scores: Partial<Record<SextantKey, BpeScore>>;
737
+ bleeding: Partial<Record<SextantKey, boolean>>;
738
+ };
739
+ declare function BpeChartReadOnly({ data: rawData, label, className, }: {
740
+ data: unknown;
741
+ label?: string;
742
+ className?: string;
743
+ }): react_jsx_runtime.JSX.Element;
744
+
745
+ export { type AIDifferentialDiagnosisItem, AddInvestigationField, type AddInvestigationFieldProps, AddMedicationField, type AddMedicationFieldProps, BPE_SCORES, BaseFieldDef, type BpeChartData, BpeChartReadOnly, type BpeScore, type CampBookingConfig, CampBookingPersistenceProvider, type CreateUploadHandlerOptions, CONDITION_CONFIG as DENTAL_CONDITION_CONFIG, QUADRANTS as DENTAL_QUADRANTS, DentalChartData, DentalChartReadOnly, DiagnosticPackage, DifferentialDiagnosis, type DifferentialDiagnosisItem, type DifferentialDiagnosisProps, DoctorFrequentItems, DynamicForm, DynamicFormV2, type DynamicFormV2Props, type DynamicFormV2SectionMode, EMAIL_REGEX, FieldDef, type FieldHandler, type FieldHandlersMap, FieldRenderer, FieldRequiredIndicator, FormControls, type FormControlsProps, FormDef, FormFileUploadWidget, FormProvider, FormState, FormStore, FormValues, ImageUploadWidget, type Investigation, InvestigationFrequentItem, type InvestigationSearchResult, MAR_MEDICATION_ORDERS_META_KEY, MediaUploadWidget, type Medication, MedicationFrequentItem, type MedicationSearchResult, MultiStepForm, type MultiStepFormProps, type PresignedUploadResponse, ReadOnlyForm, ReadOnlyImageUpload, ReadOnlyMediaUpload, ReadOnlySignature, Rule, type RuleResult, SEXTANTS, type SextantKey, SignatureUploadWidget, SmartForm, type SmartFormProps, type StoreAuthConfig, type StoreCampsConfig, type StoreConfig, type SubmissionData, ToothCondition, Upload, type UploadProps, WorkflowTransition, createUploadHandler, evaluateRules, fieldControlClass, fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldMetaRequestsMarMedicationOrdersButton, fieldWrapperClass, isLabelVisible, normalizeDentalChart, toothLabel, useField, useFieldHandlers, useForm, useFormStore, useFrequentItems, usePackages, validateField, validateForm };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { L as FormValues, I as FormDef, K as FormState, F as FieldDef, aK as WorkflowTransition, ak as Rule, r as DoctorFrequentItems, o as DiagnosticPackage, B as BaseFieldDef, a1 as MedicationFrequentItem, V as InvestigationFrequentItem } from './types-CYtJk8H9.js';
2
- export { a as BiometryIolWorkupFieldDef, b as BiometryIolWorkupValue, c as BiometryMethod, C as CampDateOption, d as CampDateSelection, e as CampDatesFieldDef, f as CampTimeSlotOption, g as CampTimeSlotsFieldDef, h as CheckboxFieldDef, i as ColumnLayout, j as Computation, k as Condition, D as DataSource, l as DiagnosisGradeSelection, m as DiagnosisTextareaFieldDef, n as DiagnosisTextareaValue, p as DiagnosticPackageTest, q as DifferentialDiagnosisFieldDef, E as EditableTableColumnDef, s as EditableTableFieldDef, t as EventDefinition, u as ExtractedKeywordMatch, v as FieldPrefill, w as FieldState, x as FieldStyleClassNames, y as FieldStyleConfig, z as FieldType, A as FileUploadFieldDef, G as FollowupFieldDef, H as FollowupValue, J as FormErrors, M as FormulaComputation, N as FormulaExpr, O as FunctionalImpairmentDimension, P as FunctionalImpairmentScoreFieldDef, Q as FunctionalImpairmentScoreValue, R as GeneralSurgeryExaminationFieldDef, S as GeneralSurgeryGradingFieldDef, T as GeneralSurgerySmartHistoryFieldDef, U as ImageUploadFieldDef, W as InvestigationsFieldDef, X as LayoutNode, Y as LensAssessmentFieldDef, Z as LensAssessmentValue, _ as LocsGrades, $ as MatchedCondition, a0 as MediaUploadFieldDef, a2 as MedicationsFieldDef, a3 as MultiStepLayoutNode, a4 as MultiStepNode, a5 as NumberFieldDef, a6 as OBGExaminationFieldDef, a7 as OBGPathwayFieldDef, a8 as OtpInputFieldDef, a9 as OtpVerifiedValue, aa as PainScaleFlagsFieldDef, ab as Permission, ac as PhoneInputFieldDef, ad as ProcedureFrequentItem, ae as ProceduresFieldDef, af as RadioFieldDef, ag as ReferralFieldDef, ah as ReferralItem, ai as RepeatableFieldDef, aj as RichTextFieldDef, al as RuleAction, am as ScoreComputation, an as ScoreRange, ao as Section, ap as SectionChild, aq as SelectFieldDef, ar as SelectOption, as as SignatureFieldDef, at as SliderFieldDef, au as SmartTextareaFieldDef, av as SmartTextareaValue, aw as StaticTextFieldDef, ax as SuggestionTextareaFieldDef, ay as SumComputation, az as SurgicalRiskFlagsFieldDef, aA as SurgicalRiskFlagsValue, aB as TextFieldDef, aC as ToggleFieldDef, aD as UrologyExaminationFieldDef, aE as UrologyPathwayFieldDef, aF as UrologySmartHistoryFieldDef, aG as ValidationRule, aH as VitalsFieldDef, aI as WebhookDef, aJ as Workflow } from './types-CYtJk8H9.js';
1
+ import { O as FormValues, L as FormDef, N as FormState, F as FieldDef, aT as WorkflowTransition, ap as Rule, u as DoctorFrequentItems, r as DiagnosticPackage, B as BaseFieldDef, a4 as MedicationFrequentItem, Y as InvestigationFrequentItem, m as DentalChartData, aJ as ToothCondition } from './types-BbOnd5IN.js';
2
+ export { a as BiometryIolWorkupFieldDef, b as BiometryIolWorkupValue, c as BiometryMethod, d as BpeChartFieldDef, C as CampDateOption, e as CampDateSelection, f as CampDatesFieldDef, g as CampTimeSlotOption, h as CampTimeSlotsFieldDef, i as CheckboxFieldDef, j as ColumnLayout, k as Computation, l as Condition, D as DataSource, n as DentalChartFieldDef, o as DiagnosisGradeSelection, p as DiagnosisTextareaFieldDef, q as DiagnosisTextareaValue, s as DiagnosticPackageTest, t as DifferentialDiagnosisFieldDef, E as EditableTableColumnDef, v as EditableTableFieldDef, w as EventDefinition, x as ExtractedKeywordMatch, y as FieldPrefill, z as FieldState, A as FieldStyleClassNames, G as FieldStyleConfig, H as FieldType, I as FileUploadFieldDef, J as FollowupFieldDef, K as FollowupValue, M as FormErrors, P as FormulaComputation, Q as FormulaExpr, R as FunctionalImpairmentDimension, S as FunctionalImpairmentScoreFieldDef, T as FunctionalImpairmentScoreValue, U as GeneralSurgeryExaminationFieldDef, V as GeneralSurgeryGradingFieldDef, W as GeneralSurgerySmartHistoryFieldDef, X as ImageUploadFieldDef, Z as InvestigationsFieldDef, _ as LayoutNode, $ as LensAssessmentFieldDef, a0 as LensAssessmentValue, a1 as LocsGrades, a2 as MatchedCondition, a3 as MediaUploadFieldDef, a5 as MedicationsFieldDef, a6 as MultiStepLayoutNode, a7 as MultiStepNode, a8 as NumberFieldDef, a9 as OBGExaminationFieldDef, aa as OBGPathwayFieldDef, ab as OtpInputFieldDef, ac as OtpVerifiedValue, ad as PainScaleFlagsFieldDef, ae as Permission, af as PhoneInputFieldDef, ag as PregnancyStatusFieldDef, ah as PregnancyStatusValue, ai as ProcedureFrequentItem, aj as ProceduresFieldDef, ak as RadioFieldDef, al as ReferralFieldDef, am as ReferralItem, an as RepeatableFieldDef, ao as RichTextFieldDef, aq as RuleAction, ar as ScoreComputation, as as ScoreRange, at as Section, au as SectionChild, av as SelectFieldDef, aw as SelectOption, ax as SignatureFieldDef, ay as SliderFieldDef, az as SmartTextareaFieldDef, aA as SmartTextareaValue, aB as SocialHistoryFieldDef, aC as StaticTextFieldDef, aD as SuggestionTextareaFieldDef, aE as SumComputation, aF as SurgicalRiskFlagsFieldDef, aG as SurgicalRiskFlagsValue, aH as TextFieldDef, aI as ToggleFieldDef, aK as ToothEntry, aL as TreatmentPlanFieldDef, aM as UrologyExaminationFieldDef, aN as UrologyPathwayFieldDef, aO as UrologySmartHistoryFieldDef, aP as ValidationRule, aQ as VitalsFieldDef, aR as WebhookDef, aS as Workflow } from './types-BbOnd5IN.js';
3
3
  import React from 'react';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  export { r as richTextHtmlClassName } from './richTextClassName--8wkuHkW.js';
@@ -678,4 +678,68 @@ type DifferentialDiagnosisProps = {
678
678
  */
679
679
  declare const DifferentialDiagnosis: React.FC<DifferentialDiagnosisProps>;
680
680
 
681
- export { type AIDifferentialDiagnosisItem, AddInvestigationField, type AddInvestigationFieldProps, AddMedicationField, type AddMedicationFieldProps, BaseFieldDef, type CampBookingConfig, CampBookingPersistenceProvider, type CreateUploadHandlerOptions, DiagnosticPackage, DifferentialDiagnosis, type DifferentialDiagnosisItem, type DifferentialDiagnosisProps, DoctorFrequentItems, DynamicForm, DynamicFormV2, type DynamicFormV2Props, type DynamicFormV2SectionMode, EMAIL_REGEX, FieldDef, type FieldHandler, type FieldHandlersMap, FieldRenderer, FieldRequiredIndicator, FormControls, type FormControlsProps, FormDef, FormFileUploadWidget, FormProvider, FormState, FormStore, FormValues, ImageUploadWidget, type Investigation, InvestigationFrequentItem, type InvestigationSearchResult, MAR_MEDICATION_ORDERS_META_KEY, MediaUploadWidget, type Medication, MedicationFrequentItem, type MedicationSearchResult, MultiStepForm, type MultiStepFormProps, type PresignedUploadResponse, ReadOnlyForm, ReadOnlyImageUpload, ReadOnlyMediaUpload, ReadOnlySignature, Rule, type RuleResult, SignatureUploadWidget, SmartForm, type SmartFormProps, type StoreAuthConfig, type StoreCampsConfig, type StoreConfig, type SubmissionData, Upload, type UploadProps, WorkflowTransition, createUploadHandler, evaluateRules, fieldControlClass, fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldMetaRequestsMarMedicationOrdersButton, fieldWrapperClass, isLabelVisible, useField, useFieldHandlers, useForm, useFormStore, useFrequentItems, usePackages, validateField, validateForm };
681
+ declare function DentalChartReadOnly({ data, className, }: {
682
+ data: DentalChartData;
683
+ className?: string;
684
+ }): react_jsx_runtime.JSX.Element;
685
+
686
+ declare const CONDITION_CONFIG: Record<ToothCondition, {
687
+ label: string;
688
+ color: string;
689
+ }>;
690
+ /** FDI quadrant tooth numbers, ordered from midline outward */
691
+ declare const QUADRANTS: {
692
+ upperRight: readonly [11, 12, 13, 14, 15, 16, 17, 18];
693
+ upperLeft: readonly [21, 22, 23, 24, 25, 26, 27, 28];
694
+ lowerLeft: readonly [31, 32, 33, 34, 35, 36, 37, 38];
695
+ lowerRight: readonly [41, 42, 43, 44, 45, 46, 47, 48];
696
+ };
697
+ declare function toothLabel(id: number): string;
698
+ /** Coerces an unknown value into a valid `DentalChartData` shape. */
699
+ declare function normalizeDentalChart(value: unknown): DentalChartData;
700
+
701
+ declare const BPE_SCORES: readonly ["0", "1", "2", "3", "4", "*"];
702
+ type BpeScore = (typeof BPE_SCORES)[number];
703
+ declare const SEXTANTS: readonly [{
704
+ readonly key: "upper_right";
705
+ readonly label: "UR";
706
+ readonly arch: "upper";
707
+ readonly teeth: "17–14";
708
+ }, {
709
+ readonly key: "upper_anterior";
710
+ readonly label: "UA";
711
+ readonly arch: "upper";
712
+ readonly teeth: "13–23";
713
+ }, {
714
+ readonly key: "upper_left";
715
+ readonly label: "UL";
716
+ readonly arch: "upper";
717
+ readonly teeth: "24–27";
718
+ }, {
719
+ readonly key: "lower_right";
720
+ readonly label: "LR";
721
+ readonly arch: "lower";
722
+ readonly teeth: "44–47";
723
+ }, {
724
+ readonly key: "lower_anterior";
725
+ readonly label: "LA";
726
+ readonly arch: "lower";
727
+ readonly teeth: "33–43";
728
+ }, {
729
+ readonly key: "lower_left";
730
+ readonly label: "LL";
731
+ readonly arch: "lower";
732
+ readonly teeth: "34–37";
733
+ }];
734
+ type SextantKey = (typeof SEXTANTS)[number]['key'];
735
+ type BpeChartData = {
736
+ scores: Partial<Record<SextantKey, BpeScore>>;
737
+ bleeding: Partial<Record<SextantKey, boolean>>;
738
+ };
739
+ declare function BpeChartReadOnly({ data: rawData, label, className, }: {
740
+ data: unknown;
741
+ label?: string;
742
+ className?: string;
743
+ }): react_jsx_runtime.JSX.Element;
744
+
745
+ export { type AIDifferentialDiagnosisItem, AddInvestigationField, type AddInvestigationFieldProps, AddMedicationField, type AddMedicationFieldProps, BPE_SCORES, BaseFieldDef, type BpeChartData, BpeChartReadOnly, type BpeScore, type CampBookingConfig, CampBookingPersistenceProvider, type CreateUploadHandlerOptions, CONDITION_CONFIG as DENTAL_CONDITION_CONFIG, QUADRANTS as DENTAL_QUADRANTS, DentalChartData, DentalChartReadOnly, DiagnosticPackage, DifferentialDiagnosis, type DifferentialDiagnosisItem, type DifferentialDiagnosisProps, DoctorFrequentItems, DynamicForm, DynamicFormV2, type DynamicFormV2Props, type DynamicFormV2SectionMode, EMAIL_REGEX, FieldDef, type FieldHandler, type FieldHandlersMap, FieldRenderer, FieldRequiredIndicator, FormControls, type FormControlsProps, FormDef, FormFileUploadWidget, FormProvider, FormState, FormStore, FormValues, ImageUploadWidget, type Investigation, InvestigationFrequentItem, type InvestigationSearchResult, MAR_MEDICATION_ORDERS_META_KEY, MediaUploadWidget, type Medication, MedicationFrequentItem, type MedicationSearchResult, MultiStepForm, type MultiStepFormProps, type PresignedUploadResponse, ReadOnlyForm, ReadOnlyImageUpload, ReadOnlyMediaUpload, ReadOnlySignature, Rule, type RuleResult, SEXTANTS, type SextantKey, SignatureUploadWidget, SmartForm, type SmartFormProps, type StoreAuthConfig, type StoreCampsConfig, type StoreConfig, type SubmissionData, ToothCondition, Upload, type UploadProps, WorkflowTransition, createUploadHandler, evaluateRules, fieldControlClass, fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldMetaRequestsMarMedicationOrdersButton, fieldWrapperClass, isLabelVisible, normalizeDentalChart, toothLabel, useField, useFieldHandlers, useForm, useFormStore, useFrequentItems, usePackages, validateField, validateForm };
package/dist/index.mjs CHANGED
@@ -1,4 +1,9 @@
1
- import { SelectWidget, TextWidget } from './chunk-XN2QLBLT.mjs';
1
+ import { Switch } from './chunk-6YUVILN5.mjs';
2
+ import { BpeChartReadOnly } from './chunk-MQHZ7HD2.mjs';
3
+ export { BPE_SCORES, BpeChartReadOnly, SEXTANTS } from './chunk-MQHZ7HD2.mjs';
4
+ import { normalizeDentalChart, DentalChartReadOnly } from './chunk-UKSP3B3W.mjs';
5
+ export { CONDITION_CONFIG as DENTAL_CONDITION_CONFIG, QUADRANTS as DENTAL_QUADRANTS, DentalChartReadOnly, normalizeDentalChart, toothLabel } from './chunk-UKSP3B3W.mjs';
6
+ import { TextWidget, SelectWidget } from './chunk-G6Y4UJPN.mjs';
2
7
  import { parseFunctionalImpairmentScore, functionalImpairmentTotal } from './chunk-LQYWMYEC.mjs';
3
8
  import { normalizeObgPathway } from './chunk-IKAKE7TR.mjs';
4
9
  import { Checkbox } from './chunk-GNZWSVTB.mjs';
@@ -20,6 +25,7 @@ import { useForm } from './chunk-T3UHPMFX.mjs';
20
25
  export { useForm } from './chunk-T3UHPMFX.mjs';
21
26
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-UULLSS4O.mjs';
22
27
  import { Input } from './chunk-VNFBUAZD.mjs';
28
+ import './chunk-ZZX3IG2T.mjs';
23
29
  import './chunk-AZHTIUOL.mjs';
24
30
  import { Button } from './chunk-GXXWMHAA.mjs';
25
31
  import { useField, useFormStore, parseCampDateValue, normalizeGeneralSurgerySmartHistory, normalizeUrologySmartHistory, normalizePainScaleFlags, campDateSelectionFromOption, MOCK_CAMP_TIME_SLOTS, MOCK_CAMP_DATES } from './chunk-2BGJZ44Q.mjs';
@@ -2163,47 +2169,13 @@ var CampTimeSlotsWidget = ({ fieldId }) => {
2163
2169
  showError ? /* @__PURE__ */ jsx("p", { className: fieldErrorClass(fieldDef, "text-xs text-red-500"), children: error }) : null
2164
2170
  ] });
2165
2171
  };
2166
- var Switch = React6.forwardRef(
2167
- ({ className, checked, onCheckedChange, disabled, ...props }, ref) => {
2168
- return /* @__PURE__ */ jsx(
2169
- "button",
2170
- {
2171
- type: "button",
2172
- role: "switch",
2173
- "aria-checked": checked,
2174
- "data-state": checked ? "checked" : "unchecked",
2175
- disabled,
2176
- ref,
2177
- onClick: () => {
2178
- if (!disabled && onCheckedChange) {
2179
- onCheckedChange(!checked);
2180
- }
2181
- },
2182
- className: cn(
2183
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
2184
- className
2185
- ),
2186
- ...props,
2187
- children: /* @__PURE__ */ jsx(
2188
- "span",
2189
- {
2190
- "data-state": checked ? "checked" : "unchecked",
2191
- className: "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform",
2192
- style: { transform: checked ? "translateX(1rem)" : "translateX(0)" }
2193
- }
2194
- )
2195
- }
2196
- );
2197
- }
2198
- );
2199
- Switch.displayName = "Switch";
2200
2172
  function lazyNamed(loader, name) {
2201
2173
  return React6__default.lazy(async () => ({ default: (await loader())[name] }));
2202
2174
  }
2203
2175
  var RichTextWidget = lazyNamed(() => import('./RichTextWidget-ZBX554ZJ.mjs'), "RichTextWidget");
2204
- var DateWidget = lazyNamed(() => import('./DateWidget-KCTE6N5G.mjs'), "DateWidget");
2205
- var DateTimeWidget = lazyNamed(() => import('./DateTimeWidget-3AUBZYYK.mjs'), "DateTimeWidget");
2206
- var EditableTableWidget = lazyNamed(() => import('./EditableTable-XFCPKSUY.mjs'), "EditableTableWidget");
2176
+ var DateWidget = lazyNamed(() => import('./DateWidget-JEKDKPNS.mjs'), "DateWidget");
2177
+ var DateTimeWidget = lazyNamed(() => import('./DateTimeWidget-KRX4O6OD.mjs'), "DateTimeWidget");
2178
+ var EditableTableWidget = lazyNamed(() => import('./EditableTable-VZ66IXYI.mjs'), "EditableTableWidget");
2207
2179
  var AddMedicationWidget = lazyNamed(() => import('./AddMedicationWidget-B5RXRYBK.mjs'), "AddMedicationWidget");
2208
2180
  var DischargeMedicationOrdersWidget = lazyNamed(() => import('./DischargeMedicationOrdersWidget-KA3HANHE.mjs'), "DischargeMedicationOrdersWidget");
2209
2181
  var AddInvestigationWidget = lazyNamed(() => import('./AddInvestigationWidget-FABXZDEZ.mjs'), "AddInvestigationWidget");
@@ -2212,15 +2184,15 @@ var DifferentialDiagnosisWidget = lazyNamed(() => import('./DifferentialDiagnosi
2212
2184
  var VitalsWidget = lazyNamed(() => import('./VitalsWidget-63HTXK2M.mjs'), "VitalsWidget");
2213
2185
  var HiddenVitalsWidget = lazyNamed(() => import('./HiddenVitalsWidget-CIE3KERT.mjs'), "HiddenVitalsWidget");
2214
2186
  var ReferralWidget = lazyNamed(() => import('./ReferralWidget-GU3JYED2.mjs'), "ReferralWidget");
2215
- var FollowupWidget = lazyNamed(() => import('./FollowupWidget-BFZ6P2JE.mjs'), "FollowupWidget");
2187
+ var FollowupWidget = lazyNamed(() => import('./FollowupWidget-GCGPWZVY.mjs'), "FollowupWidget");
2216
2188
  var SmartTextareaWidget = lazyNamed(() => import('./SmartTextarea-LQDXFCYT.mjs'), "SmartTextareaWidget");
2217
2189
  var DiagnosisTextareaWidget = lazyNamed(() => import('./DiagnosisTextareaWidget-6UCYCCSB.mjs'), "DiagnosisTextareaWidget");
2218
- var ObstetricHistoryWidget = lazyNamed(() => import('./ObstetricHistoryWidget-Z4VAXH3E.mjs'), "ObstetricHistoryWidget");
2190
+ var ObstetricHistoryWidget = lazyNamed(() => import('./ObstetricHistoryWidget-EW6JLNQ7.mjs'), "ObstetricHistoryWidget");
2219
2191
  var OphthalmologyWidget = lazyNamed(() => import('./OphthalmologyWidget-27ZN2E3F.mjs'), "OphthalmologyWidget");
2220
2192
  var OphthalDiagnosisWidget = lazyNamed(() => import('./OphthalDiagnosisWidget-MZYBQTFV.mjs'), "OphthalDiagnosisWidget");
2221
2193
  var OrthopedicExamWidget = lazyNamed(() => import('./OrthopedicExamWidget-WM55M3Y4.mjs'), "OrthopedicExamWidget");
2222
2194
  var MarMedicationOrdersWidget = lazyNamed(() => import('./MarMedicationOrdersWidget-LG3WOXN7.mjs'), "MarMedicationOrdersWidget");
2223
- var SuggestionTextareaWidget = lazyNamed(() => import('./SuggestionTextareaWidget-GQTWCFBG.mjs'), "SuggestionTextareaWidget");
2195
+ var SuggestionTextareaWidget = lazyNamed(() => import('./SuggestionTextareaWidget-UNL3FZRI.mjs'), "SuggestionTextareaWidget");
2224
2196
  var LensAssessmentWidget = lazyNamed(() => import('./LensAssessmentWidget-B4OMHTOE.mjs'), "LensAssessmentWidget");
2225
2197
  var FunctionalImpairmentScoreWidget = lazyNamed(() => import('./FunctionalImpairmentScoreWidget-TKS6KE7K.mjs'), "FunctionalImpairmentScoreWidget");
2226
2198
  var BiometryIolWorkupWidget = lazyNamed(() => import('./BiometryIolWorkupWidget-5RZP34FF.mjs'), "BiometryIolWorkupWidget");
@@ -2233,7 +2205,12 @@ var UrologySmartHistoryWidget = lazyNamed(() => import('./UrologySmartHistoryWid
2233
2205
  var UrologyExaminationWidget = lazyNamed(() => import('./UrologyExaminationWidget-GRBL2SDG.mjs'), "UrologyExaminationWidget");
2234
2206
  var UrologyPathwayWidget = lazyNamed(() => import('./UrologyPathwayWidget-PEO5BVQX.mjs'), "UrologyPathwayWidget");
2235
2207
  var OBGExaminationWidget = lazyNamed(() => import('./OBGExaminationWidget-HQKTHSOZ.mjs'), "OBGExaminationWidget");
2236
- var OBGPathwayWidget = lazyNamed(() => import('./OBGPathwayWidget-X67XKRIH.mjs'), "OBGPathwayWidget");
2208
+ var OBGPathwayWidget = lazyNamed(() => import('./OBGPathwayWidget-QJNWUIEM.mjs'), "OBGPathwayWidget");
2209
+ var DentalChartWidget = lazyNamed(() => import('./DentalChartWidget-P2YPKAMO.mjs'), "DentalChartWidget");
2210
+ var TreatmentPlanWidget = lazyNamed(() => import('./TreatmentPlanWidget-665HLKYV.mjs'), "TreatmentPlanWidget");
2211
+ var PregnancyStatusWidget = lazyNamed(() => import('./PregnancyStatusWidget-U2BEJGBJ.mjs'), "PregnancyStatusWidget");
2212
+ var BpeChartWidget = lazyNamed(() => import('./BpeChartWidget-HATASHAC.mjs'), "BpeChartWidget");
2213
+ var ExtraOralExamWidget = lazyNamed(() => import('./ExtraOralExamWidget-JVKJ4ZWC.mjs'), "ExtraOralExamWidget");
2237
2214
  function lazyWidget(node) {
2238
2215
  return /* @__PURE__ */ jsx(React6__default.Suspense, { fallback: null, children: node });
2239
2216
  }
@@ -2330,6 +2307,18 @@ function renderWidget(fieldId, fieldDef) {
2330
2307
  return lazyWidget(/* @__PURE__ */ jsx(OBGExaminationWidget, { fieldId }));
2331
2308
  case "obg_pathway":
2332
2309
  return lazyWidget(/* @__PURE__ */ jsx(OBGPathwayWidget, { fieldId }));
2310
+ case "dental_chart":
2311
+ return lazyWidget(/* @__PURE__ */ jsx(DentalChartWidget, { fieldId }));
2312
+ case "bpe_chart":
2313
+ return lazyWidget(/* @__PURE__ */ jsx(BpeChartWidget, { fieldId }));
2314
+ case "extra_oral_exam":
2315
+ return lazyWidget(/* @__PURE__ */ jsx(ExtraOralExamWidget, { fieldId }));
2316
+ case "social_history":
2317
+ return /* @__PURE__ */ jsx(TextWidget, { fieldId });
2318
+ case "treatment_plan":
2319
+ return lazyWidget(/* @__PURE__ */ jsx(TreatmentPlanWidget, { fieldId }));
2320
+ case "pregnancy_status":
2321
+ return lazyWidget(/* @__PURE__ */ jsx(PregnancyStatusWidget, { fieldId }));
2333
2322
  case "phone_input":
2334
2323
  return /* @__PURE__ */ jsx(PhoneInputWidget, { fieldId });
2335
2324
  case "otp_input":
@@ -3616,6 +3605,45 @@ var ReadOnlyFieldRenderer = ({
3616
3605
  ] }) : null
3617
3606
  ] });
3618
3607
  }
3608
+ case "bpe_chart":
3609
+ return /* @__PURE__ */ jsx(
3610
+ BpeChartReadOnly,
3611
+ {
3612
+ data: value && typeof value === "object" && !Array.isArray(value) ? value : {},
3613
+ label: fieldDef.label
3614
+ }
3615
+ );
3616
+ case "social_history":
3617
+ return /* @__PURE__ */ jsx(ReadOnlyText, { fieldDef, value });
3618
+ case "treatment_plan": {
3619
+ const items = Array.isArray(value) ? value.filter((v) => typeof v === "string") : typeof value === "string" && value ? [value] : [];
3620
+ return /* @__PURE__ */ jsx(
3621
+ ReadOnlyText,
3622
+ {
3623
+ fieldDef,
3624
+ value: items.length > 0 ? items.join(", ") : "\u2014"
3625
+ }
3626
+ );
3627
+ }
3628
+ case "pregnancy_status": {
3629
+ const ps = value && typeof value === "object" && !Array.isArray(value) ? value : { is_pregnant: false, is_breastfeeding: false };
3630
+ const parts = [];
3631
+ if (ps.is_pregnant) parts.push("Pregnant");
3632
+ if (ps.is_breastfeeding) parts.push("Breastfeeding");
3633
+ return /* @__PURE__ */ jsx(
3634
+ ReadOnlyText,
3635
+ {
3636
+ fieldDef,
3637
+ value: parts.length > 0 ? parts.join(", ") : "No"
3638
+ }
3639
+ );
3640
+ }
3641
+ case "dental_chart": {
3642
+ const safe = normalizeDentalChart(value);
3643
+ const hasFindings = Object.keys(safe.teeth).length > 0;
3644
+ if (!hasFindings) return /* @__PURE__ */ jsx(ReadOnlyText, { fieldDef, value: "No dental findings recorded" });
3645
+ return /* @__PURE__ */ jsx(DentalChartReadOnly, { data: safe });
3646
+ }
3619
3647
  case "static_text": {
3620
3648
  const def = fieldDef;
3621
3649
  const size = def.size ?? "regular";