@mieweb/ui 0.9.0 → 0.10.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +112 -0
- package/agent/mieweb-ui.instructions.md +2 -1
- package/dist/{Animated-Cs-naa2g.d.cts → Animated-XmH6k8pZ.d.cts} +16 -3
- package/dist/{Animated-Cs-naa2g.d.ts → Animated-XmH6k8pZ.d.ts} +16 -3
- package/dist/{CsvBlock-QXXZ7ZUM.cjs → CsvBlock-CVYA3HYS.cjs} +3 -2
- package/dist/{CsvBlock-QXXZ7ZUM.cjs.map → CsvBlock-CVYA3HYS.cjs.map} +1 -1
- package/dist/{CsvBlock-D7Z6ZCRP.js → CsvBlock-SM4NKSHA.js} +3 -2
- package/dist/{CsvBlock-D7Z6ZCRP.js.map → CsvBlock-SM4NKSHA.js.map} +1 -1
- package/dist/{HtmlPreviewBlock-F5VDM2EN.js → HtmlPreviewBlock-FAMF4W24.js} +3 -2
- package/dist/{HtmlPreviewBlock-F5VDM2EN.js.map → HtmlPreviewBlock-FAMF4W24.js.map} +1 -1
- package/dist/{HtmlPreviewBlock-AADG7MVB.cjs → HtmlPreviewBlock-JF454L2L.cjs} +3 -2
- package/dist/{HtmlPreviewBlock-AADG7MVB.cjs.map → HtmlPreviewBlock-JF454L2L.cjs.map} +1 -1
- package/dist/{MermaidBlock-6PLITRBZ.js → MermaidBlock-7V5G4K5A.js} +3 -2
- package/dist/{MermaidBlock-6PLITRBZ.js.map → MermaidBlock-7V5G4K5A.js.map} +1 -1
- package/dist/{MermaidBlock-TQ2O5CLV.cjs → MermaidBlock-FR5SQX4Q.cjs} +3 -2
- package/dist/{MermaidBlock-TQ2O5CLV.cjs.map → MermaidBlock-FR5SQX4Q.cjs.map} +1 -1
- package/dist/{SurveyBlock-W5PSQ62F.js → SurveyBlock-6K2POV7S.js} +3 -2
- package/dist/{SurveyBlock-W5PSQ62F.js.map → SurveyBlock-6K2POV7S.js.map} +1 -1
- package/dist/{SurveyBlock-OYL3VNU5.cjs → SurveyBlock-MCJVWR7H.cjs} +3 -2
- package/dist/{SurveyBlock-OYL3VNU5.cjs.map → SurveyBlock-MCJVWR7H.cjs.map} +1 -1
- package/dist/ag-grid.cjs +1 -0
- package/dist/ag-grid.cjs.map +1 -1
- package/dist/ag-grid.js +1 -0
- package/dist/ag-grid.js.map +1 -1
- package/dist/brands/bluehive.cjs +1 -0
- package/dist/brands/bluehive.js +1 -0
- package/dist/brands/ccme.cjs +1 -0
- package/dist/brands/ccme.js +1 -0
- package/dist/brands/index.cjs +3 -2
- package/dist/brands/index.js +2 -1
- package/dist/brands/ozwell.cjs +1 -0
- package/dist/brands/ozwell.js +1 -0
- package/dist/brands/types.cjs +1 -0
- package/dist/brands/types.js +1 -0
- package/dist/{chunk-XUVEF2RQ.js → chunk-24SEAAOH.js} +2 -2
- package/dist/{chunk-XUVEF2RQ.js.map → chunk-24SEAAOH.js.map} +1 -1
- package/dist/{chunk-IUDY6S7I.cjs → chunk-37UZHCLM.cjs} +35 -14
- package/dist/chunk-37UZHCLM.cjs.map +1 -0
- package/dist/{chunk-ODYQYLO2.js → chunk-7KWNY3HG.js} +9 -5
- package/dist/chunk-7KWNY3HG.js.map +1 -0
- package/dist/{chunk-L52N6BEN.cjs → chunk-AUOTJQGO.cjs} +7 -7
- package/dist/{chunk-L52N6BEN.cjs.map → chunk-AUOTJQGO.cjs.map} +1 -1
- package/dist/{chunk-O7XHHTTP.cjs → chunk-AZP3DDBT.cjs} +6 -6
- package/dist/{chunk-O7XHHTTP.cjs.map → chunk-AZP3DDBT.cjs.map} +1 -1
- package/dist/chunk-C6CTTLH2.js +44645 -0
- package/dist/chunk-C6CTTLH2.js.map +1 -0
- package/dist/{chunk-6XDPJWSC.cjs → chunk-E3KC2XLN.cjs} +34 -30
- package/dist/chunk-E3KC2XLN.cjs.map +1 -0
- package/dist/chunk-EUAMEVVI.cjs +41 -0
- package/dist/chunk-EUAMEVVI.cjs.map +1 -0
- package/dist/{chunk-DFYMIRMW.js → chunk-IGNWT6RP.js} +7 -2
- package/dist/chunk-IGNWT6RP.js.map +1 -0
- package/dist/{chunk-XEEVDZDK.cjs → chunk-IGSIWNX3.cjs} +7 -2
- package/dist/chunk-IGSIWNX3.cjs.map +1 -0
- package/dist/chunk-IIFQ6BSJ.js +1888 -0
- package/dist/chunk-IIFQ6BSJ.js.map +1 -0
- package/dist/{chunk-FUFBRKOG.cjs → chunk-KLJGJJHN.cjs} +24 -24
- package/dist/{chunk-FUFBRKOG.cjs.map → chunk-KLJGJJHN.cjs.map} +1 -1
- package/dist/chunk-LECJMLNE.js +15 -0
- package/dist/{chunk-CYMZ2QS5.js.map → chunk-LECJMLNE.js.map} +1 -1
- package/dist/{chunk-BJKAVWED.js → chunk-MBWF36DJ.js} +35 -14
- package/dist/chunk-MBWF36DJ.js.map +1 -0
- package/dist/chunk-NV2CWBI2.cjs +290 -0
- package/dist/chunk-NV2CWBI2.cjs.map +1 -0
- package/dist/{chunk-FQBTGS3E.cjs → chunk-OFUKTVBN.cjs} +363 -285
- package/dist/chunk-OFUKTVBN.cjs.map +1 -0
- package/dist/{chunk-7KN6J7XV.cjs → chunk-OMAACCFW.cjs} +7 -7
- package/dist/{chunk-7KN6J7XV.cjs.map → chunk-OMAACCFW.cjs.map} +1 -1
- package/dist/chunk-OYQ7GYAA.cjs +1921 -0
- package/dist/chunk-OYQ7GYAA.cjs.map +1 -0
- package/dist/{chunk-YJP6DUFO.cjs → chunk-PKD3JLS2.cjs} +6 -6
- package/dist/{chunk-YJP6DUFO.cjs.map → chunk-PKD3JLS2.cjs.map} +1 -1
- package/dist/chunk-PN2PIE2L.cjs +44670 -0
- package/dist/chunk-PN2PIE2L.cjs.map +1 -0
- package/dist/chunk-PX6F3LHL.js +37 -0
- package/dist/chunk-PX6F3LHL.js.map +1 -0
- package/dist/{chunk-CXDMZT45.cjs → chunk-PY7XAG4D.cjs} +27 -4
- package/dist/chunk-PY7XAG4D.cjs.map +1 -0
- package/dist/{chunk-5H7SAEQO.js → chunk-QKFJDQEK.js} +3 -3
- package/dist/{chunk-5H7SAEQO.js.map → chunk-QKFJDQEK.js.map} +1 -1
- package/dist/{chunk-XJTFZLWH.cjs → chunk-QO6PRHDX.cjs} +2 -2
- package/dist/{chunk-XJTFZLWH.cjs.map → chunk-QO6PRHDX.cjs.map} +1 -1
- package/dist/{chunk-ONNY7UO4.js → chunk-QSVQABXD.js} +4 -4
- package/dist/{chunk-ONNY7UO4.js.map → chunk-QSVQABXD.js.map} +1 -1
- package/dist/{chunk-OHDIJOGG.js → chunk-RD3JDFYJ.js} +3 -3
- package/dist/{chunk-OHDIJOGG.js.map → chunk-RD3JDFYJ.js.map} +1 -1
- package/dist/{chunk-4SM3I7WE.cjs → chunk-RXPEZXAB.cjs} +67 -38
- package/dist/chunk-RXPEZXAB.cjs.map +1 -0
- package/dist/{chunk-VTR2KGLY.cjs → chunk-S3BCHPXT.cjs} +9 -9
- package/dist/{chunk-VTR2KGLY.cjs.map → chunk-S3BCHPXT.cjs.map} +1 -1
- package/dist/{chunk-KU3XRHWA.js → chunk-TZX76ZNZ.js} +67 -38
- package/dist/chunk-TZX76ZNZ.js.map +1 -0
- package/dist/chunk-VNAREBLV.cjs +17 -0
- package/dist/{chunk-SNEQXSC5.cjs.map → chunk-VNAREBLV.cjs.map} +1 -1
- package/dist/{chunk-MXQ7J4BB.js → chunk-VSVGMMNO.js} +361 -284
- package/dist/chunk-VSVGMMNO.js.map +1 -0
- package/dist/{chunk-Q7G56ZIO.js → chunk-WUBMDOTG.js} +3 -3
- package/dist/{chunk-Q7G56ZIO.js.map → chunk-WUBMDOTG.js.map} +1 -1
- package/dist/{chunk-DGRXAIWK.js → chunk-X5YM3KXY.js} +27 -4
- package/dist/chunk-X5YM3KXY.js.map +1 -0
- package/dist/chunk-XCP454Q6.js +263 -0
- package/dist/chunk-XCP454Q6.js.map +1 -0
- package/dist/{chunk-I3DQXUSC.js → chunk-Y6DFMDMH.js} +3 -3
- package/dist/{chunk-I3DQXUSC.js.map → chunk-Y6DFMDMH.js.map} +1 -1
- package/dist/{chunk-D25WH7MH.js → chunk-ZX2XRFE5.js} +6 -6
- package/dist/{chunk-D25WH7MH.js.map → chunk-ZX2XRFE5.js.map} +1 -1
- package/dist/{collabKit-Q4A36LDA.cjs → collabKit-GCRHP25F.cjs} +3 -3
- package/dist/{collabKit-Q4A36LDA.cjs.map → collabKit-GCRHP25F.cjs.map} +1 -1
- package/dist/{collabKit-A643VH2I.js → collabKit-SJPDPXU4.js} +3 -3
- package/dist/{collabKit-A643VH2I.js.map → collabKit-SJPDPXU4.js.map} +1 -1
- package/dist/components/Accordion/index.cjs +1 -0
- package/dist/components/Accordion/index.js +1 -0
- package/dist/components/Alert/index.cjs +1 -0
- package/dist/components/Alert/index.js +1 -0
- package/dist/components/AlertDialog/index.cjs +5 -4
- package/dist/components/AlertDialog/index.js +4 -3
- package/dist/components/AudioPlayer/index.cjs +1 -0
- package/dist/components/AudioPlayer/index.js +1 -0
- package/dist/components/AudioRecorder/index.cjs +1 -0
- package/dist/components/AudioRecorder/index.js +1 -0
- package/dist/components/Autocomplete/index.cjs +1 -0
- package/dist/components/Autocomplete/index.js +1 -0
- package/dist/components/Avatar/index.cjs +1 -0
- package/dist/components/Avatar/index.js +1 -0
- package/dist/components/Badge/index.cjs +1 -0
- package/dist/components/Badge/index.js +1 -0
- package/dist/components/Breadcrumb/index.cjs +1 -0
- package/dist/components/Breadcrumb/index.js +1 -0
- package/dist/components/Button/index.cjs +1 -0
- package/dist/components/Button/index.js +1 -0
- package/dist/components/Card/index.cjs +1 -0
- package/dist/components/Card/index.js +1 -0
- package/dist/components/Checkbox/index.cjs +1 -0
- package/dist/components/Checkbox/index.js +1 -0
- package/dist/components/ClampedText/index.cjs +1 -0
- package/dist/components/ClampedText/index.js +1 -0
- package/dist/components/CollabStatus/index.cjs +1 -0
- package/dist/components/CollabStatus/index.js +1 -0
- package/dist/components/Collapsible/index.cjs +7 -4
- package/dist/components/Collapsible/index.js +4 -1
- package/dist/components/CopyButton/index.cjs +1 -0
- package/dist/components/CopyButton/index.js +1 -0
- package/dist/components/CountryCodeDropdown/index.cjs +1 -0
- package/dist/components/CountryCodeDropdown/index.js +1 -0
- package/dist/components/CustomizableDashboard/index.cjs +1 -0
- package/dist/components/CustomizableDashboard/index.js +1 -0
- package/dist/components/DateInput/index.cjs +1 -0
- package/dist/components/DateInput/index.js +1 -0
- package/dist/components/Dropdown/index.cjs +10 -8
- package/dist/components/Dropdown/index.js +3 -1
- package/dist/components/FilterSummaryBar/index.cjs +1 -0
- package/dist/components/FilterSummaryBar/index.js +1 -0
- package/dist/components/FloatingWindow/index.cjs +1 -0
- package/dist/components/FloatingWindow/index.js +1 -0
- package/dist/components/FreshnessBadge/index.cjs +1 -0
- package/dist/components/FreshnessBadge/index.js +1 -0
- package/dist/components/GlossaryTooltip/index.cjs +1 -0
- package/dist/components/GlossaryTooltip/index.js +1 -0
- package/dist/components/Input/index.cjs +1 -0
- package/dist/components/Input/index.js +1 -0
- package/dist/components/KeyboardShortcutsOverlay/index.cjs +6 -5
- package/dist/components/KeyboardShortcutsOverlay/index.js +4 -3
- package/dist/components/Label/index.cjs +1 -0
- package/dist/components/Label/index.js +1 -0
- package/dist/components/Markdown/index.cjs +6 -5
- package/dist/components/Markdown/index.js +2 -1
- package/dist/components/MediaEditor/index.cjs +10 -9
- package/dist/components/MediaEditor/index.js +5 -4
- package/dist/components/MediaPlayer/index.cjs +1 -0
- package/dist/components/MediaPlayer/index.js +1 -0
- package/dist/components/Modal/index.cjs +11 -10
- package/dist/components/Modal/index.js +3 -2
- package/dist/components/Pagination/index.cjs +1 -0
- package/dist/components/Pagination/index.js +1 -0
- package/dist/components/PhoneInput/index.cjs +1 -0
- package/dist/components/PhoneInput/index.js +1 -0
- package/dist/components/Progress/index.cjs +1 -0
- package/dist/components/Progress/index.js +1 -0
- package/dist/components/Q/index.cjs +1 -0
- package/dist/components/Q/index.js +1 -0
- package/dist/components/QuickAction/index.cjs +1 -0
- package/dist/components/QuickAction/index.js +1 -0
- package/dist/components/Radio/index.cjs +1 -0
- package/dist/components/Radio/index.js +1 -0
- package/dist/components/ReadingProgressBar/index.cjs +1 -0
- package/dist/components/ReadingProgressBar/index.js +1 -0
- package/dist/components/RecordButton/index.cjs +1 -0
- package/dist/components/RecordButton/index.js +1 -0
- package/dist/components/RichTextEditor/index.cjs +7 -5
- package/dist/components/RichTextEditor/index.js +4 -2
- package/dist/components/SchedulePicker/index.cjs +1 -0
- package/dist/components/SchedulePicker/index.js +1 -0
- package/dist/components/ScrollArea/index.cjs +1 -0
- package/dist/components/ScrollArea/index.js +1 -0
- package/dist/components/SectionSpyNav/index.cjs +1 -0
- package/dist/components/SectionSpyNav/index.js +1 -0
- package/dist/components/Select/index.cjs +4 -3
- package/dist/components/Select/index.js +2 -1
- package/dist/components/Separator/index.cjs +1 -0
- package/dist/components/Separator/index.js +1 -0
- package/dist/components/Sheet/index.cjs +1 -0
- package/dist/components/Sheet/index.js +1 -0
- package/dist/components/Skeleton/index.cjs +1 -0
- package/dist/components/Skeleton/index.js +1 -0
- package/dist/components/Slider/index.cjs +1 -0
- package/dist/components/Slider/index.js +1 -0
- package/dist/components/SourceTip/index.cjs +1 -0
- package/dist/components/SourceTip/index.js +1 -0
- package/dist/components/Sparkline/index.cjs +1 -0
- package/dist/components/Sparkline/index.js +1 -0
- package/dist/components/Spinner/index.cjs +1 -0
- package/dist/components/Spinner/index.js +1 -0
- package/dist/components/SuperChat/index.cjs +41 -17
- package/dist/components/SuperChat/index.cjs.map +1 -1
- package/dist/components/SuperChat/index.d.cts +20 -7
- package/dist/components/SuperChat/index.d.ts +20 -7
- package/dist/components/SuperChat/index.js +36 -12
- package/dist/components/SuperChat/index.js.map +1 -1
- package/dist/components/SuperChat/plugins/index.cjs +12 -4
- package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
- package/dist/components/SuperChat/plugins/index.d.cts +3 -3
- package/dist/components/SuperChat/plugins/index.d.ts +3 -3
- package/dist/components/SuperChat/plugins/index.js +11 -3
- package/dist/components/SuperChat/plugins/index.js.map +1 -1
- package/dist/components/Switch/index.cjs +1 -0
- package/dist/components/Switch/index.js +1 -0
- package/dist/components/Table/index.cjs +1 -0
- package/dist/components/Table/index.js +1 -0
- package/dist/components/Tabs/index.cjs +1 -0
- package/dist/components/Tabs/index.js +1 -0
- package/dist/components/Text/index.cjs +1 -0
- package/dist/components/Text/index.js +1 -0
- package/dist/components/Textarea/index.cjs +1 -0
- package/dist/components/Textarea/index.js +1 -0
- package/dist/components/ThemeProvider/index.cjs +1 -0
- package/dist/components/ThemeProvider/index.js +1 -0
- package/dist/components/Toggle/index.cjs +1 -0
- package/dist/components/Toggle/index.js +1 -0
- package/dist/components/Tooltip/index.cjs +1 -0
- package/dist/components/Tooltip/index.js +1 -0
- package/dist/components/TranscriptView/index.cjs +1 -0
- package/dist/components/TranscriptView/index.js +1 -0
- package/dist/components/VisuallyHidden/index.cjs +1 -0
- package/dist/components/VisuallyHidden/index.js +1 -0
- package/dist/datavis.cjs +13 -8
- package/dist/datavis.cjs.map +1 -1
- package/dist/datavis.d.cts +647 -22
- package/dist/datavis.d.ts +647 -22
- package/dist/datavis.js +6 -5
- package/dist/datavis.js.map +1 -1
- package/dist/{default-BTEIFIZJ.cjs → default-CCMUBXP6.cjs} +3 -2
- package/dist/{default-BTEIFIZJ.cjs.map → default-CCMUBXP6.cjs.map} +1 -1
- package/dist/default-N2LW7ZFU.js +4 -0
- package/dist/{default-ORBRVZRZ.js.map → default-N2LW7ZFU.js.map} +1 -1
- package/dist/{enterprise-health-UDI25OCV.cjs → enterprise-health-75VYWAVG.cjs} +3 -2
- package/dist/{enterprise-health-UDI25OCV.cjs.map → enterprise-health-75VYWAVG.cjs.map} +1 -1
- package/dist/enterprise-health-CWLUB77O.js +4 -0
- package/dist/{enterprise-health-ORQQOLM3.js.map → enterprise-health-CWLUB77O.js.map} +1 -1
- package/dist/esheet.cjs +8 -7
- package/dist/esheet.cjs.map +1 -1
- package/dist/esheet.js +5 -4
- package/dist/esheet.js.map +1 -1
- package/dist/{hey-buddy-CLUVAY2X.cjs → hey-buddy-INNUFFJJ.cjs} +3 -2
- package/dist/hey-buddy-INNUFFJJ.cjs.map +1 -0
- package/dist/{hey-buddy-NMSWZ4TN.js → hey-buddy-V6FC5UKB.js} +3 -2
- package/dist/hey-buddy-V6FC5UKB.js.map +1 -0
- package/dist/hooks/index.cjs +14 -13
- package/dist/hooks/index.js +2 -1
- package/dist/index.cjs +753 -1703
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +347 -347
- package/dist/index.d.ts +347 -347
- package/dist/index.js +465 -1410
- package/dist/index.js.map +1 -1
- package/dist/kerebron.cjs +2 -1
- package/dist/kerebron.cjs.map +1 -1
- package/dist/kerebron.js +2 -1
- package/dist/kerebron.js.map +1 -1
- package/dist/{mieweb-6JCRWKSO.cjs → mieweb-72YOL44I.cjs} +3 -2
- package/dist/{mieweb-6JCRWKSO.cjs.map → mieweb-72YOL44I.cjs.map} +1 -1
- package/dist/mieweb-EZDLSSA6.js +4 -0
- package/dist/{mieweb-GIKY6EMN.js.map → mieweb-EZDLSSA6.js.map} +1 -1
- package/dist/motion.cjs +8 -7
- package/dist/motion.cjs.map +1 -1
- package/dist/motion.d.cts +1 -1
- package/dist/motion.d.ts +1 -1
- package/dist/motion.js +3 -2
- package/dist/motion.js.map +1 -1
- package/dist/{nitroTableGrid-SIMT7635.js → nitroTableGrid-LVYKKCGF.js} +5 -4
- package/dist/nitroTableGrid-LVYKKCGF.js.map +1 -0
- package/dist/{nitroTableGrid-3J2GY6CK.cjs → nitroTableGrid-SQADULEY.cjs} +5 -4
- package/dist/nitroTableGrid-SQADULEY.cjs.map +1 -0
- package/dist/q.cjs +1 -0
- package/dist/q.js +1 -0
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +5 -4
- package/dist/tailwind-preset.js +2 -1
- package/dist/{types-DZDroUW8.d.cts → types-B97JNRNQ.d.cts} +1 -1
- package/dist/{types-B2RLmdVd.d.ts → types-CnPEwzlp.d.cts} +6 -2
- package/dist/{types-B2RLmdVd.d.cts → types-CnPEwzlp.d.ts} +6 -2
- package/dist/{types-9vK_YdEb.d.ts → types-gZXrfLj6.d.ts} +1 -1
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/{waggleline-I7QWD3YX.cjs → waggleline-5CBT4MNN.cjs} +3 -2
- package/dist/{waggleline-I7QWD3YX.cjs.map → waggleline-5CBT4MNN.cjs.map} +1 -1
- package/dist/waggleline-JMPCNV3J.js +4 -0
- package/dist/{waggleline-2MLRNVCV.js.map → waggleline-JMPCNV3J.js.map} +1 -1
- package/dist/webchart-2CVQ2TT3.js +4 -0
- package/dist/{webchart-72YMJ45P.js.map → webchart-2CVQ2TT3.js.map} +1 -1
- package/dist/{webchart-37OYZ42V.cjs → webchart-AXXOQHU6.cjs} +3 -2
- package/dist/{webchart-37OYZ42V.cjs.map → webchart-AXXOQHU6.cjs.map} +1 -1
- package/package.json +9 -14
- package/dist/chunk-4SM3I7WE.cjs.map +0 -1
- package/dist/chunk-5BVFVXHN.cjs +0 -1244
- package/dist/chunk-5BVFVXHN.cjs.map +0 -1
- package/dist/chunk-6XDPJWSC.cjs.map +0 -1
- package/dist/chunk-BJKAVWED.js.map +0 -1
- package/dist/chunk-BN75TLUN.cjs +0 -163
- package/dist/chunk-BN75TLUN.cjs.map +0 -1
- package/dist/chunk-CXDMZT45.cjs.map +0 -1
- package/dist/chunk-CYMZ2QS5.js +0 -15
- package/dist/chunk-DFYMIRMW.js.map +0 -1
- package/dist/chunk-DGRXAIWK.js.map +0 -1
- package/dist/chunk-FQBTGS3E.cjs.map +0 -1
- package/dist/chunk-IUDY6S7I.cjs.map +0 -1
- package/dist/chunk-KU3XRHWA.js.map +0 -1
- package/dist/chunk-MXQ7J4BB.js.map +0 -1
- package/dist/chunk-O6GJ4IYS.js +0 -1210
- package/dist/chunk-O6GJ4IYS.js.map +0 -1
- package/dist/chunk-ODYQYLO2.js.map +0 -1
- package/dist/chunk-SNEQXSC5.cjs +0 -17
- package/dist/chunk-VJOVJTFP.cjs +0 -370
- package/dist/chunk-VJOVJTFP.cjs.map +0 -1
- package/dist/chunk-WYMO3IIK.js +0 -136
- package/dist/chunk-WYMO3IIK.js.map +0 -1
- package/dist/chunk-XEEVDZDK.cjs.map +0 -1
- package/dist/chunk-YBLIDESO.js +0 -365
- package/dist/chunk-YBLIDESO.js.map +0 -1
- package/dist/default-ORBRVZRZ.js +0 -3
- package/dist/enterprise-health-ORQQOLM3.js +0 -3
- package/dist/hey-buddy-CLUVAY2X.cjs.map +0 -1
- package/dist/hey-buddy-NMSWZ4TN.js.map +0 -1
- package/dist/mieweb-GIKY6EMN.js +0 -3
- package/dist/nitroTableGrid-3J2GY6CK.cjs.map +0 -1
- package/dist/nitroTableGrid-SIMT7635.js.map +0 -1
- package/dist/waggleline-2MLRNVCV.js +0 -3
- package/dist/webchart-72YMJ45P.js +0 -3
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { VisuallyHidden } from './chunk-H2CIKJQI.js';
|
|
2
|
-
export { brands } from './chunk-
|
|
2
|
+
export { brands } from './chunk-LECJMLNE.js';
|
|
3
3
|
export { webchartBrand } from './chunk-CW66SO5O.js';
|
|
4
4
|
export { defaultBrand } from './chunk-PSTGFXQG.js';
|
|
5
5
|
export { enterpriseHealthBrand } from './chunk-MTZPVOP6.js';
|
|
@@ -27,13 +27,13 @@ import { Spinner, SpinnerWithLabel } from './chunk-UA7E7PDS.js';
|
|
|
27
27
|
export { FullPageSpinner, Spinner, SpinnerWithLabel, spinnerVariants } from './chunk-UA7E7PDS.js';
|
|
28
28
|
import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay } from './chunk-22CYDCXA.js';
|
|
29
29
|
export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChevronIcon, CloseIcon, CollapsiblePill, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-22CYDCXA.js';
|
|
30
|
-
import { EmptyState } from './chunk-
|
|
31
|
-
export { AttachmentPreview, ConversationHeader, ConversationListItem, ConversationListSkeleton, DateSeparator, EmptyState, LightboxModal, LoadMoreButton, MessageBubble, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, ReadReceiptIndicator, SkeletonMessage, TypingIndicator, bubbleVariants, formatDateLabel, formatFileSize, formatLastSeen, getConversationSubtitle, getConversationTitle, groupMessagesByDate, headerVariants, isSameSenderGroup, useMessageScroll, useMessages, useReadReceipts, useTypingIndicator } from './chunk-
|
|
32
|
-
import {
|
|
33
|
-
export { AttachmentPicker, AttachmentPreviewItem, CameraButton,
|
|
30
|
+
import { useTypingEmulation, EmptyState } from './chunk-VSVGMMNO.js';
|
|
31
|
+
export { AttachmentPreview, ConversationHeader, ConversationListItem, ConversationListSkeleton, DateSeparator, EmptyState, LightboxModal, LoadMoreButton, MessageBubble, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, ReadReceiptIndicator, SkeletonMessage, TypingIndicator, bubbleVariants, formatDateLabel, formatFileSize, formatLastSeen, getConversationSubtitle, getConversationTitle, groupMessagesByDate, headerVariants, isSameSenderGroup, useMessageScroll, useMessages, useReadReceipts, useTypingEmulation, useTypingIndicator } from './chunk-VSVGMMNO.js';
|
|
32
|
+
import { notifyComposerMigrationOnce, ChatComposer, DEFAULT_MAX_FILE_SIZE, DEFAULT_ACCEPTED_FILE_TYPES } from './chunk-IIFQ6BSJ.js';
|
|
33
|
+
export { AttachmentPicker, AttachmentPreviewItem, CameraButton, ChatComposer, ComposerModelSelector, DragDropZone, generateAttachmentId, getFileType, validateFile } from './chunk-IIFQ6BSJ.js';
|
|
34
34
|
import { RecordButton } from './chunk-VNWJTCBQ.js';
|
|
35
35
|
export { RecordButton, formatDuration, recordButtonVariants } from './chunk-VNWJTCBQ.js';
|
|
36
|
-
export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-
|
|
36
|
+
export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-QKFJDQEK.js';
|
|
37
37
|
export { DateButton, DatePicker, RadioOption, SchedulePicker, TimeButton, TimePicker, dateButtonVariants, radioOptionVariants, timeButtonVariants } from './chunk-23AYDOCH.js';
|
|
38
38
|
export { ScrollArea, scrollAreaVariants } from './chunk-HS25RPDW.js';
|
|
39
39
|
export { SectionSpyNav } from './chunk-3RB35GYK.js';
|
|
@@ -46,18 +46,18 @@ export { QuickAction, QuickActionGroup, QuickActionIcons, quickActionIconVariant
|
|
|
46
46
|
export { ReadingProgressBar } from './chunk-WKSUL2ZN.js';
|
|
47
47
|
export { FreshnessBadge, FreshnessDot, daysSince, freshnessLevel } from './chunk-HQ3XPCHG.js';
|
|
48
48
|
export { GlossaryTooltip } from './chunk-L5W7TJQ5.js';
|
|
49
|
-
export { Kbd, KeyboardShortcutsOverlay } from './chunk-
|
|
50
|
-
export { CodeBlock, MarkdownRenderer, highlightCode, useMarkdown } from './chunk-
|
|
49
|
+
export { Kbd, KeyboardShortcutsOverlay } from './chunk-Y6DFMDMH.js';
|
|
50
|
+
export { CodeBlock, MarkdownRenderer, highlightCode, useMarkdown } from './chunk-ZX2XRFE5.js';
|
|
51
51
|
export { CsvBlock } from './chunk-NHN6A3ZO.js';
|
|
52
52
|
export { HtmlPreviewBlock } from './chunk-EG7XFZ3W.js';
|
|
53
53
|
export { MermaidBlock } from './chunk-ZB54MTMQ.js';
|
|
54
54
|
export { SurveyBlock } from './chunk-OSPTA4UR.js';
|
|
55
55
|
export { FenceBlock } from './chunk-CK3KLRNF.js';
|
|
56
|
-
export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal } from './chunk-
|
|
56
|
+
export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal } from './chunk-QSVQABXD.js';
|
|
57
57
|
export { Slider, sliderRangeVariants, sliderThumbVariants, sliderTrackVariants } from './chunk-2BPIVWAK.js';
|
|
58
58
|
import './chunk-RISZWWEQ.js';
|
|
59
59
|
export { MediaPlayer, inferMediaKind, mediaPlayerVariants } from './chunk-5WOB4UBD.js';
|
|
60
|
-
export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-
|
|
60
|
+
export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-MBWF36DJ.js';
|
|
61
61
|
export { CopyButton } from './chunk-5QZ73PZC.js';
|
|
62
62
|
import { CountryDropdownBase } from './chunk-QAKASRE6.js';
|
|
63
63
|
export { CountryCodeDropdown, formatE164, validatePhoneNumber } from './chunk-QAKASRE6.js';
|
|
@@ -65,8 +65,8 @@ export { CustomizableDashboard, DashboardCustomizePanel, consolidateColumns, mer
|
|
|
65
65
|
import { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
|
|
66
66
|
export { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
|
|
67
67
|
export { Sheet, SheetBody, SheetClose, SheetDescription, SheetFooter, SheetHeader, SheetTitle, sheetContentVariants, sheetOverlayVariants } from './chunk-ON4JULCA.js';
|
|
68
|
-
import { Dropdown, DropdownItem, DropdownSeparator, DropdownContent, DropdownHeader } from './chunk-
|
|
69
|
-
export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator, DropdownSubmenu } from './chunk-
|
|
68
|
+
import { Dropdown, DropdownItem, DropdownSeparator, DropdownContent, DropdownHeader } from './chunk-TZX76ZNZ.js';
|
|
69
|
+
export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator, DropdownSubmenu } from './chunk-TZX76ZNZ.js';
|
|
70
70
|
export { FilterSummaryBar } from './chunk-6SCQ7FKT.js';
|
|
71
71
|
export { FloatingWindow, MinimizedWindow } from './chunk-PYHFVYVZ.js';
|
|
72
72
|
import { Avatar } from './chunk-HZ4MBUC3.js';
|
|
@@ -81,19 +81,19 @@ export { CollabStatus, defaultCollabStatusLabels, useYjsCollabStatus } from './c
|
|
|
81
81
|
import './chunk-7XUN3OQT.js';
|
|
82
82
|
export { isHtmlEmpty, stripHtmlTags } from './chunk-ERLPVXOV.js';
|
|
83
83
|
export { formatPhoneNumber, isPhoneNumberEmpty, isValidPhoneNumber, unformatPhoneNumber } from './chunk-ZVPJ2MH6.js';
|
|
84
|
-
export { miewebUIPreset, miewebUISafelist } from './chunk-
|
|
84
|
+
export { miewebUIPreset, miewebUISafelist } from './chunk-X5YM3KXY.js';
|
|
85
85
|
export { Accordion } from './chunk-KRU6IGV7.js';
|
|
86
86
|
import { Alert, AlertTitle, AlertDescription } from './chunk-3JWAABYI.js';
|
|
87
87
|
export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-3JWAABYI.js';
|
|
88
|
-
import { AlertDialog } from './chunk-
|
|
89
|
-
export { AlertDialog } from './chunk-
|
|
88
|
+
import { AlertDialog } from './chunk-RD3JDFYJ.js';
|
|
89
|
+
export { AlertDialog } from './chunk-RD3JDFYJ.js';
|
|
90
90
|
export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime as formatAudioTime, playButtonVariants } from './chunk-VVDE4CHU.js';
|
|
91
91
|
export { AudioRecorder, audioRecorderVariants, controlButtonVariants, formatTime, waveformContainerVariants } from './chunk-2DW4PUJD.js';
|
|
92
92
|
export { Autocomplete } from './chunk-QAQOCS2J.js';
|
|
93
93
|
import { evaluateDue, completedKeys, normalizeOrders } from './chunk-Y5KEFV5O.js';
|
|
94
94
|
export { buildChartOrderRows, buildEncounterOrderRows, dueForOrder, evaluateDue, evaluateProgram, isApplicable } from './chunk-Y5KEFV5O.js';
|
|
95
|
-
import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-
|
|
96
|
-
export { ALLERGY_TYPE_LABELS, AllergyList, AllergyManager, CodeLookupProvider, MEDICATION_STATUS_LABELS, MedicationEditor, MedicationList, MedicationReconciliation, RowActionToolbar, RowIconButton, labelToMedicationFields, lookupToMedicationFields, parseMedicationLabel, parseSig, toolbarKeyNav, useCodeLookupConfig } from './chunk-
|
|
95
|
+
import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-7KWNY3HG.js';
|
|
96
|
+
export { ALLERGY_TYPE_LABELS, AllergyList, AllergyManager, CodeLookupProvider, MEDICATION_STATUS_LABELS, MedicationEditor, MedicationList, MedicationReconciliation, RowActionToolbar, RowIconButton, labelToMedicationFields, lookupToMedicationFields, parseMedicationLabel, parseSig, toolbarKeyNav, useCodeLookupConfig } from './chunk-7KWNY3HG.js';
|
|
97
97
|
import { Textarea } from './chunk-H3YO5GBM.js';
|
|
98
98
|
export { Textarea, textareaVariants } from './chunk-H3YO5GBM.js';
|
|
99
99
|
import { Tooltip } from './chunk-MUIDWFYJ.js';
|
|
@@ -102,31 +102,31 @@ import { RadioGroup, Radio } from './chunk-EPSB4WTL.js';
|
|
|
102
102
|
export { Radio, RadioGroup, radioVariants } from './chunk-EPSB4WTL.js';
|
|
103
103
|
import { Label } from './chunk-I3WGZPI6.js';
|
|
104
104
|
export { Label, labelVariants } from './chunk-I3WGZPI6.js';
|
|
105
|
-
import { Select } from './chunk-
|
|
106
|
-
export { Select, selectTriggerVariants } from './chunk-
|
|
105
|
+
import { Select } from './chunk-IGNWT6RP.js';
|
|
106
|
+
export { Select, selectTriggerVariants } from './chunk-IGNWT6RP.js';
|
|
107
107
|
import { DateInput } from './chunk-OAZUDUGX.js';
|
|
108
108
|
export { DateInput } from './chunk-OAZUDUGX.js';
|
|
109
109
|
import { Card, CardHeader, CardContent, CardTitle } from './chunk-QYSUYB3S.js';
|
|
110
110
|
export { Card, CardActions, CardBadge, CardCollapsible, CardContent, CardDescription, CardDivider, CardFooter, CardHeader, CardMedia, CardStat, CardTitle, cardAccentVariants, cardVariants } from './chunk-QYSUYB3S.js';
|
|
111
111
|
import { dateToDisplayFormat, isValidDate, displayFormatToDateString } from './chunk-RC2YMOMS.js';
|
|
112
112
|
export { calculateAge, dateToDisplayFormat, displayFormatToDateString, formatDateValue, isDateEmpty, isDateInFuture, isDateInPast, isValidDate, isValidDrivingAge, parseDateValue } from './chunk-RC2YMOMS.js';
|
|
113
|
-
import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } from './chunk-
|
|
114
|
-
export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-
|
|
113
|
+
import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } from './chunk-WUBMDOTG.js';
|
|
114
|
+
export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-WUBMDOTG.js';
|
|
115
115
|
import './chunk-6NZXWKUE.js';
|
|
116
116
|
import { Input, inputVariants } from './chunk-3IMM2PM4.js';
|
|
117
117
|
export { Input, RequiredMark, floatingGroupLabelVariants, floatingGroupVariants, floatingLabelVariants, inputVariants } from './chunk-3IMM2PM4.js';
|
|
118
|
-
import { Plus, GripVertical, RefreshCw, Pencil, AlertCircle, ArrowLeft, Users, FilePlus, CheckCircle, ChevronDown,
|
|
118
|
+
import { Plus, GripVertical, RefreshCw, Pencil, Trash2, AlertCircle, ArrowLeft, Users, FilePlus, CheckCircle, ChevronDown, Clock, FileText, ClipboardList, Stethoscope, Mail, Phone, ClipboardCheck, Eye, Info, Link, ChevronUp, History, StickyNote, ExternalLink, MoreVertical, Send, Scan, TestTube2, Pill, Share, User, Download, ChevronRight, Calendar, Printer, ClipboardPlus, FileCheck, Wheat, Bell, FileHeart, HeartPulse, Paperclip, HelpCircle, MoreHorizontal, AlertTriangle, Upload as Upload$1, Camera, Check as Check$1, X as X$1, ScanLine, Image } from './chunk-BKSPDTX4.js';
|
|
119
119
|
export { Accessibility as AccessibilityIcon, Activity as ActivityIcon, AlertCircle as AlertCircleIcon, AlertTriangle as AlertTriangleIcon, Wheat as AllergyIcon, WheatOff as AllergyOffIcon, Ambulance as AmbulanceIcon, ArrowLeft as ArrowLeftIcon, ArrowRight as ArrowRightIcon, ArrowUpDown as ArrowUpDownIcon, ArrowUp as ArrowUpIcon, AtSign as AtSignIcon, Baby as BabyIcon, BadgeAlert as BadgeAlertIcon, BadgeCheck as BadgeCheckIcon, BadgeMinus as BadgeMinusIcon, BadgePlus as BadgePlusIcon, BadgeX as BadgeXIcon, Ban as BanIcon, Bandage as BandageIcon, BedDouble as BedDoubleIcon, Bed as BedIcon, BedSingle as BedSingleIcon, Bell as BellIcon, BellOff as BellOffIcon, Biohazard as BiohazardIcon, Bone as BoneIcon, BookOpenCheck as BookOpenCheckIcon, BookOpen as BookOpenIcon, Bookmark as BookmarkIcon, Bot as BotIcon, Brain as BrainIcon, Briefcase as BriefcaseIcon, BriefcaseMedical as BriefcaseMedicalIcon, Building as BuildingIcon, CalendarCheck as CalendarCheckIcon, Calendar as CalendarIcon, Camera as CameraIcon, Cannabis as CannabisIcon, BarChart3 as ChartIcon, CheckCircle as CheckCircleIcon, Check as CheckIcon, ChevronDown as ChevronDownIcon, ChevronLeft as ChevronLeftIcon, ChevronRight as ChevronRightIcon, ChevronUp as ChevronUpIcon, Cigarette as CigaretteIcon, CigaretteOff as CigaretteOffIcon, CircleDotDashed as CircleDotDashedIcon, CircleDot as CircleDotIcon, CircleUser as CircleUserIcon, ClipboardCheck as ClipboardCheckIcon, Clipboard as ClipboardIcon, ClipboardList as ClipboardListIcon, ClipboardPlus as ClipboardPlusIcon, Clock as ClockIcon, Cog as CogIcon, Columns as ColumnsIcon, Copy as CopyIcon, CreditCard as CreditCardIcon, Cross as CrossIcon, Dna as DnaIcon, DollarSign as DollarSignIcon, Download as DownloadIcon, Droplet as DropletIcon, Droplets as DropletsIcon, Ear as EarIcon, ExternalLink as ExternalLinkIcon, Eye as EyeIcon, EyeOff as EyeOffIcon, FileCheck2 as FileCheck2Icon, FileCheck as FileCheckIcon, FileHeart as FileHeartIcon, File as FileIcon, FilePlus2 as FilePlus2Icon, FilePlus as FilePlusIcon, FileText as FileTextIcon, Filter as FilterIcon, Fingerprint as FingerprintIcon, Flag as FlagIcon, FlaskConical as FlaskIcon, FlaskRound as FlaskRoundIcon, Folder as FolderIcon, FolderOpen as FolderOpenIcon, Footprints as FootprintsIcon, Glasses as GlassesIcon, Globe as GlobeIcon, LayoutGrid as GridIcon, GripVertical as GripVerticalIcon, Hand as HandIcon, HandMetal as HandMetalIcon, Hash as HashIcon, Heart as HeartIcon, HeartOff as HeartOffIcon, HeartPulse as HeartPulseIcon, HelpCircle as HelpCircleIcon, History as HistoryIcon, Home as HomeIcon, Hospital as HospitalIcon, Image as ImageIcon, Info as InfoIcon, Key as KeyIcon, Link as LinkIcon, List as ListIcon, Loader2 as LoaderIcon, Lock as LockIcon, LogIn as LogInIcon, LogOut as LogOutIcon, Mail as MailIcon, MapPin as MapPinIcon, Maximize as MaximizeIcon, Menu as MenuIcon, MessageSquare as MessageIcon, Mic as MicIcon, Microscope as MicroscopeIcon, Minimize as MinimizeIcon, Minus as MinusIcon, Monitor as MonitorIcon, Moon as MoonIcon, MoreHorizontal as MoreHorizontalIcon, MoreVertical as MoreVerticalIcon, NotebookPen as NotebookPenIcon, Palette as PaletteIcon, Paperclip as PaperclipIcon, CircleUserRound as PatientIcon, Pencil as PencilIcon, UserRound as PersonIcon, Phone as PhoneIcon, PieChart as PieChartIcon, Pill as PillIcon, Plus as PlusIcon, Printer as PrinterIcon, Radiation as RadiationIcon, Ruler as RulerIcon, Save as SaveIcon, Scale as ScaleIcon, Scaling as ScalingIcon, ScanEye as ScanEyeIcon, Scan as ScanIcon, ScanLine as ScanLineIcon, Search as SearchIcon, Settings as SettingsIcon, Share as ShareIcon, ShieldCheck as ShieldCheckIcon, Shield as ShieldIcon, ShieldPlus as ShieldPlusIcon, Sliders as SlidersIcon, Sparkle as SparkleIcon, Star as StarIcon, Stethoscope as StethoscopeIcon, StickyNote as StickyNoteIcon, Square as StopIcon, Sun as SunIcon, Syringe as SyringeIcon, Table as TableIcon, Tablets as TabletsIcon, Tag as TagIcon, TestTube2 as TestTubeIcon, TestTubes as TestTubesIcon, Thermometer as ThermometerIcon, ThermometerSun as ThermometerSunIcon, ThumbsDown as ThumbsDownIcon, ThumbsUp as ThumbsUpIcon, Timer as TimerIcon, Trash2 as TrashIcon, TrendingDown as TrendingDownIcon, TrendingUp as TrendingUpIcon, Truck as TruckIcon, Unlock as UnlockIcon, Upload as UploadIcon, UserCheck as UserCheckIcon, User as UserIcon, UserMinus as UserMinusIcon, UserPlus as UserPlusIcon, UserRoundCheck as UserRoundCheckIcon, UserRoundMinus as UserRoundMinusIcon, UserRoundPlus as UserRoundPlusIcon, UserRoundX as UserRoundXIcon, Users as UsersIcon, Weight as WeightIcon, Wrench as WrenchIcon, XCircle as XCircleIcon, X2 as XIcon, Zap as ZapIcon } from './chunk-BKSPDTX4.js';
|
|
120
120
|
import { Badge } from './chunk-BMSG4NBH.js';
|
|
121
121
|
export { Badge, badgeVariants } from './chunk-BMSG4NBH.js';
|
|
122
122
|
import { Button, buttonVariants } from './chunk-KREUYVMZ.js';
|
|
123
123
|
export { Button, buttonVariants } from './chunk-KREUYVMZ.js';
|
|
124
|
-
import { AnimatedPresence, Animated } from './chunk-
|
|
125
|
-
export { Animated, AnimatedPresence, motionPresets, useMotionRuntime } from './chunk-
|
|
124
|
+
import { AnimatedPresence, Animated } from './chunk-XCP454Q6.js';
|
|
125
|
+
export { Animated, AnimatedPresence, motionPresets, useMotionRuntime } from './chunk-XCP454Q6.js';
|
|
126
126
|
import { cn } from './chunk-TQONQSJO.js';
|
|
127
127
|
export { cn, miewebUITwMergeConflicts } from './chunk-TQONQSJO.js';
|
|
128
|
-
import { useCommandK, useIsMobile, useMediaQuery
|
|
129
|
-
export { RTL_LOCALES, isRtlLocale, useCommandK, useDirection, useIsDesktop, useIsLargeDesktop, useIsMobile, useIsMobileOrTablet, useIsSmallTablet, useIsTablet, useKeyboardShortcut, useMediaQuery } from './chunk-
|
|
128
|
+
import { useDirection, useCommandK, useIsMobile, useMediaQuery } from './chunk-24SEAAOH.js';
|
|
129
|
+
export { RTL_LOCALES, isRtlLocale, useCommandK, useDirection, useIsDesktop, useIsLargeDesktop, useIsMobile, useIsMobileOrTablet, useIsSmallTablet, useIsTablet, useKeyboardShortcut, useMediaQuery } from './chunk-24SEAAOH.js';
|
|
130
130
|
export { useTheme } from './chunk-KJZNEVYM.js';
|
|
131
131
|
import { useScrollSpy } from './chunk-WBGUYSWY.js';
|
|
132
132
|
export { useScrollSpy } from './chunk-WBGUYSWY.js';
|
|
@@ -147,13 +147,14 @@ export { useClickOutside } from './chunk-62ZOA6PX.js';
|
|
|
147
147
|
import { useAnchoredPosition } from './chunk-WSNMQQ4P.js';
|
|
148
148
|
export { useAnchoredPosition } from './chunk-WSNMQQ4P.js';
|
|
149
149
|
export { isDarkMode, useIsDarkMode } from './chunk-RUGHNFQG.js';
|
|
150
|
+
import './chunk-PX6F3LHL.js';
|
|
150
151
|
import * as React13 from 'react';
|
|
151
152
|
import React13__default, { createContext, useState, useEffect, useCallback, useMemo, useContext, useRef } from 'react';
|
|
152
153
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
153
154
|
import { cva } from 'class-variance-authority';
|
|
154
155
|
import * as ReactDOM from 'react-dom';
|
|
155
156
|
import { createPortal } from 'react-dom';
|
|
156
|
-
import { FileUp, X, AlertCircle as AlertCircle$1,
|
|
157
|
+
import { FileUp, X, AlertCircle as AlertCircle$1, Calendar as Calendar$1, ChevronLeft, ChevronRight as ChevronRight$1, ChevronDown as ChevronDown$1, Maximize2, Minimize2, FolderUp, Upload, Edit2, Check, ChevronUp as ChevronUp$1, Phone as Phone$1, Mail as Mail$1, Clock as Clock$1, MapPin, Shield, Building2, SlidersHorizontal, Trash2 as Trash2$1, Pencil as Pencil$1, Plus as Plus$1, Link as Link$1, AlertTriangle as AlertTriangle$1, RefreshCw as RefreshCw$1 } from 'lucide-react';
|
|
157
158
|
|
|
158
159
|
var SEX_OPTIONS = [
|
|
159
160
|
{ value: "F", label: "Female" },
|
|
@@ -1464,6 +1465,7 @@ var chatVariants = cva("flex flex-col", {
|
|
|
1464
1465
|
size: "full"
|
|
1465
1466
|
}
|
|
1466
1467
|
});
|
|
1468
|
+
var normalizeLegacySlot = (node) => node || void 0;
|
|
1467
1469
|
function AIChat({
|
|
1468
1470
|
session,
|
|
1469
1471
|
messages: messagesProp,
|
|
@@ -1493,6 +1495,9 @@ function AIChat({
|
|
|
1493
1495
|
renderMessageFooter
|
|
1494
1496
|
}) {
|
|
1495
1497
|
const messagesContainerRef = React13.useRef(null);
|
|
1498
|
+
React13.useEffect(() => {
|
|
1499
|
+
notifyComposerMigrationOnce("AIChat");
|
|
1500
|
+
}, []);
|
|
1496
1501
|
const messages = React13.useMemo(
|
|
1497
1502
|
() => session?.messages || messagesProp || [],
|
|
1498
1503
|
[session?.messages, messagesProp]
|
|
@@ -1502,11 +1507,64 @@ function AIChat({
|
|
|
1502
1507
|
const container = messagesContainerRef.current;
|
|
1503
1508
|
if (container) container.scrollTop = container.scrollHeight;
|
|
1504
1509
|
}, [messages]);
|
|
1505
|
-
const
|
|
1506
|
-
|
|
1507
|
-
|
|
1510
|
+
const {
|
|
1511
|
+
showAttachmentPicker,
|
|
1512
|
+
inputTrailing,
|
|
1513
|
+
onTypingStart,
|
|
1514
|
+
onTypingStop,
|
|
1515
|
+
value: hostValue,
|
|
1516
|
+
onValueChange: hostOnValueChange,
|
|
1517
|
+
onSend: hostOnSend,
|
|
1518
|
+
micSlot: hostMicSlot,
|
|
1519
|
+
...composerRest
|
|
1520
|
+
} = composerProps ?? {};
|
|
1521
|
+
delete composerRest.showCameraButton;
|
|
1522
|
+
delete composerRest.variant;
|
|
1523
|
+
const hasInputTrailing = !!composerProps && "inputTrailing" in composerProps;
|
|
1524
|
+
const legacyAttachments = !!composerProps && "showAttachmentPicker" in composerProps ? showAttachmentPicker ?? true : false;
|
|
1525
|
+
const [draft, setDraft] = React13.useState("");
|
|
1526
|
+
const draftEpochRef = React13.useRef(0);
|
|
1527
|
+
const composerValue = hostValue ?? draft;
|
|
1528
|
+
const isHostControlled = hostValue !== void 0;
|
|
1529
|
+
const handleComposerValueChange = React13.useCallback(
|
|
1530
|
+
(value) => {
|
|
1531
|
+
draftEpochRef.current += 1;
|
|
1532
|
+
setDraft(value);
|
|
1533
|
+
if (isHostControlled) hostOnValueChange?.(value);
|
|
1534
|
+
},
|
|
1535
|
+
[isHostControlled, hostOnValueChange]
|
|
1536
|
+
);
|
|
1537
|
+
const { stopTyping } = useTypingEmulation({
|
|
1538
|
+
value: composerValue,
|
|
1539
|
+
onTypingStart,
|
|
1540
|
+
onTypingStop
|
|
1541
|
+
});
|
|
1542
|
+
const sendWithRestore = async (message, send) => {
|
|
1543
|
+
stopTyping();
|
|
1544
|
+
const epoch = draftEpochRef.current;
|
|
1545
|
+
try {
|
|
1546
|
+
await Promise.resolve(send(message));
|
|
1547
|
+
} catch (error) {
|
|
1548
|
+
if (draftEpochRef.current === epoch) {
|
|
1549
|
+
setDraft(message.content);
|
|
1550
|
+
if (isHostControlled) hostOnValueChange?.(message.content);
|
|
1551
|
+
}
|
|
1552
|
+
throw error;
|
|
1508
1553
|
}
|
|
1509
1554
|
};
|
|
1555
|
+
const handleSend = async (message) => {
|
|
1556
|
+
if (!onSendMessage) return;
|
|
1557
|
+
const content = message.content.trim();
|
|
1558
|
+
const attachments = message.attachments?.length ? message.attachments : void 0;
|
|
1559
|
+
if (!content && !attachments) return;
|
|
1560
|
+
await sendWithRestore(
|
|
1561
|
+
message,
|
|
1562
|
+
() => (
|
|
1563
|
+
// Keep the exact legacy call shape for text-only sends.
|
|
1564
|
+
attachments ? onSendMessage(content, attachments) : onSendMessage(content)
|
|
1565
|
+
)
|
|
1566
|
+
);
|
|
1567
|
+
};
|
|
1510
1568
|
const handleSuggestionSelect = (action) => {
|
|
1511
1569
|
if (onSuggestedAction) {
|
|
1512
1570
|
onSuggestedAction(action);
|
|
@@ -1625,18 +1683,14 @@ function AIChat({
|
|
|
1625
1683
|
onSelect: handleSuggestionSelect
|
|
1626
1684
|
}
|
|
1627
1685
|
) }),
|
|
1628
|
-
/* @__PURE__ */ jsx(
|
|
1629
|
-
|
|
1686
|
+
/* @__PURE__ */ jsx("div", { "data-slot": "ai-chat-composer", className: "p-3", children: /* @__PURE__ */ jsx(
|
|
1687
|
+
ChatComposer,
|
|
1630
1688
|
{
|
|
1631
|
-
onSend: handleSend,
|
|
1689
|
+
onSend: hostOnSend ? (message) => sendWithRestore(message, hostOnSend) : handleSend,
|
|
1632
1690
|
placeholder: inputPlaceholder,
|
|
1633
1691
|
disabled: isGenerating,
|
|
1634
1692
|
isSending: isGenerating,
|
|
1635
|
-
|
|
1636
|
-
showCameraButton: false,
|
|
1637
|
-
showCharacterCount: false,
|
|
1638
|
-
variant: "minimal",
|
|
1639
|
-
inputTrailing: talkToText ? /* @__PURE__ */ jsx(
|
|
1693
|
+
micSlot: hostMicSlot !== void 0 ? hostMicSlot : hasInputTrailing ? normalizeLegacySlot(inputTrailing) : talkToText ? /* @__PURE__ */ jsx(
|
|
1640
1694
|
RecordButton,
|
|
1641
1695
|
{
|
|
1642
1696
|
variant: "ghost",
|
|
@@ -1648,9 +1702,16 @@ function AIChat({
|
|
|
1648
1702
|
onRecordingComplete
|
|
1649
1703
|
}
|
|
1650
1704
|
) : void 0,
|
|
1651
|
-
...
|
|
1705
|
+
...composerRest,
|
|
1706
|
+
allowAttachments: composerRest.allowAttachments ?? legacyAttachments,
|
|
1707
|
+
maxLength: composerRest.maxLength ?? 1600,
|
|
1708
|
+
inputLabel: composerRest.inputLabel ?? "Message",
|
|
1709
|
+
acceptedFileTypes: composerRest.acceptedFileTypes ?? (legacyAttachments ? DEFAULT_ACCEPTED_FILE_TYPES : void 0),
|
|
1710
|
+
maxFileSize: composerRest.maxFileSize ?? (legacyAttachments ? DEFAULT_MAX_FILE_SIZE : void 0),
|
|
1711
|
+
value: composerValue,
|
|
1712
|
+
onValueChange: handleComposerValueChange
|
|
1652
1713
|
}
|
|
1653
|
-
)
|
|
1714
|
+
) })
|
|
1654
1715
|
]
|
|
1655
1716
|
}
|
|
1656
1717
|
)
|
|
@@ -1909,7 +1970,6 @@ function Toast({
|
|
|
1909
1970
|
className: cn(
|
|
1910
1971
|
"flex items-start gap-3 rounded-lg border p-4 shadow-lg",
|
|
1911
1972
|
"max-w-[420px] min-w-[300px]",
|
|
1912
|
-
"animate-slide-in-right rtl:animate-slide-in-left",
|
|
1913
1973
|
styles.container
|
|
1914
1974
|
),
|
|
1915
1975
|
children: [
|
|
@@ -1954,17 +2014,27 @@ var positionStyles = {
|
|
|
1954
2014
|
"bottom-left": "bottom-4 start-4 items-start",
|
|
1955
2015
|
"bottom-right": "bottom-4 end-4 items-end"
|
|
1956
2016
|
};
|
|
2017
|
+
function toastEdge(position, isRtl) {
|
|
2018
|
+
if (position === "top-center") return "top";
|
|
2019
|
+
if (position === "bottom-center") return "bottom";
|
|
2020
|
+
const isStart = position.endsWith("-start") || position.endsWith("-left");
|
|
2021
|
+
return isStart === isRtl ? "right" : "left";
|
|
2022
|
+
}
|
|
2023
|
+
var TOAST_FALLBACK_ANIMATION = "animate-slide-in-right rtl:animate-slide-in-left";
|
|
1957
2024
|
function ToastContainer({
|
|
1958
2025
|
toasts,
|
|
1959
2026
|
position,
|
|
1960
2027
|
onDismiss
|
|
1961
2028
|
}) {
|
|
1962
2029
|
const context = useOptionalToast();
|
|
2030
|
+
const containerRef = React13__default.useRef(null);
|
|
2031
|
+
const isRtl = useDirection(containerRef) === "rtl";
|
|
1963
2032
|
const resolvedPosition = position ?? context?.position ?? "bottom-end";
|
|
1964
|
-
|
|
2033
|
+
const edge = toastEdge(resolvedPosition, isRtl);
|
|
1965
2034
|
return /* @__PURE__ */ jsx(
|
|
1966
2035
|
"div",
|
|
1967
2036
|
{
|
|
2037
|
+
ref: containerRef,
|
|
1968
2038
|
"data-slot": "toast-container",
|
|
1969
2039
|
className: cn(
|
|
1970
2040
|
"pointer-events-none fixed z-50 flex flex-col gap-2",
|
|
@@ -1972,533 +2042,21 @@ function ToastContainer({
|
|
|
1972
2042
|
),
|
|
1973
2043
|
"aria-live": "polite",
|
|
1974
2044
|
"aria-atomic": "true",
|
|
1975
|
-
children:
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
}
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
}
|
|
1987
|
-
function groupByProvider(models) {
|
|
1988
|
-
const groups = /* @__PURE__ */ new Map();
|
|
1989
|
-
for (const model of models) {
|
|
1990
|
-
const group = groups.get(model.provider);
|
|
1991
|
-
if (group) {
|
|
1992
|
-
group.push(model);
|
|
1993
|
-
} else {
|
|
1994
|
-
groups.set(model.provider, [model]);
|
|
1995
|
-
}
|
|
1996
|
-
}
|
|
1997
|
-
return Array.from(groups, ([provider, options]) => ({ provider, options }));
|
|
1998
|
-
}
|
|
1999
|
-
function getProviderLabel(models, provider) {
|
|
2000
|
-
return models.find((model) => model.provider === provider && model.providerLabel)?.providerLabel ?? provider;
|
|
2001
|
-
}
|
|
2002
|
-
function ComposerModelSelector({
|
|
2003
|
-
models,
|
|
2004
|
-
value,
|
|
2005
|
-
providerFilter,
|
|
2006
|
-
onProviderFilterChange,
|
|
2007
|
-
onChange,
|
|
2008
|
-
disabled = false,
|
|
2009
|
-
variant = "default",
|
|
2010
|
-
className,
|
|
2011
|
-
boundaryRef,
|
|
2012
|
-
placeholder = "Model",
|
|
2013
|
-
anyLabel = "Any",
|
|
2014
|
-
emptyLabel = "No models",
|
|
2015
|
-
ariaLabel = "Model",
|
|
2016
|
-
effortOptions,
|
|
2017
|
-
effort = null,
|
|
2018
|
-
defaultEffort,
|
|
2019
|
-
onEffortChange,
|
|
2020
|
-
effortLabel = "Effort",
|
|
2021
|
-
effortHint,
|
|
2022
|
-
defaultBadgeLabel = "Default",
|
|
2023
|
-
backLabel = "Back"
|
|
2024
|
-
}) {
|
|
2025
|
-
const [open, setOpen] = React13.useState(false);
|
|
2026
|
-
const [view, setView] = React13.useState("models");
|
|
2027
|
-
const [effortHighlight, setEffortHighlight] = React13.useState(0);
|
|
2028
|
-
const [internalProviderFilter, setInternalProviderFilter] = React13.useState(null);
|
|
2029
|
-
const [highlightedIndex, setHighlightedIndex] = React13.useState(0);
|
|
2030
|
-
const listRef = React13.useRef(null);
|
|
2031
|
-
const effortListRef = React13.useRef(null);
|
|
2032
|
-
const menuId = React13.useId();
|
|
2033
|
-
const {
|
|
2034
|
-
anchorRef: triggerRef,
|
|
2035
|
-
floatingRef: menuRef,
|
|
2036
|
-
style: menuStyle
|
|
2037
|
-
} = useAnchoredPosition({
|
|
2038
|
-
open,
|
|
2039
|
-
placement: "top-start",
|
|
2040
|
-
offset: MENU_OFFSET_PX,
|
|
2041
|
-
matchMinWidth: true,
|
|
2042
|
-
maxHeight: MENU_MAX_HEIGHT_PX,
|
|
2043
|
-
allowFlip: false,
|
|
2044
|
-
boundaryRef
|
|
2045
|
-
});
|
|
2046
|
-
const activeProviderFilter = providerFilter === void 0 ? internalProviderFilter : providerFilter;
|
|
2047
|
-
const selectedKey = value ? optionKey(value) : null;
|
|
2048
|
-
const selectedOption = models.find(
|
|
2049
|
-
(model) => optionKey(model) === selectedKey
|
|
2050
|
-
);
|
|
2051
|
-
const providers = React13.useMemo(
|
|
2052
|
-
() => Array.from(new Set(models.map((model) => model.provider))),
|
|
2053
|
-
[models]
|
|
2054
|
-
);
|
|
2055
|
-
const providerLabels = React13.useMemo(
|
|
2056
|
-
() => new Map(
|
|
2057
|
-
providers.map((provider) => [
|
|
2058
|
-
provider,
|
|
2059
|
-
getProviderLabel(models, provider)
|
|
2060
|
-
])
|
|
2061
|
-
),
|
|
2062
|
-
[models, providers]
|
|
2063
|
-
);
|
|
2064
|
-
const filteredModels = React13.useMemo(
|
|
2065
|
-
() => activeProviderFilter === null ? models : models.filter((model) => model.provider === activeProviderFilter),
|
|
2066
|
-
[activeProviderFilter, models]
|
|
2067
|
-
);
|
|
2068
|
-
const groupedModels = React13.useMemo(
|
|
2069
|
-
() => groupByProvider(filteredModels),
|
|
2070
|
-
[filteredModels]
|
|
2071
|
-
);
|
|
2072
|
-
const groupedRenderedModels = React13.useMemo(() => {
|
|
2073
|
-
let index = 0;
|
|
2074
|
-
return groupedModels.map((group) => ({
|
|
2075
|
-
provider: group.provider,
|
|
2076
|
-
options: group.options.map((option) => {
|
|
2077
|
-
const rendered = {
|
|
2078
|
-
option,
|
|
2079
|
-
index,
|
|
2080
|
-
key: renderedOptionKey(option, index)
|
|
2081
|
-
};
|
|
2082
|
-
index += 1;
|
|
2083
|
-
return rendered;
|
|
2084
|
-
})
|
|
2085
|
-
}));
|
|
2086
|
-
}, [groupedModels]);
|
|
2087
|
-
const renderedModels = React13.useMemo(
|
|
2088
|
-
() => groupedRenderedModels.flatMap((group) => group.options),
|
|
2089
|
-
[groupedRenderedModels]
|
|
2090
|
-
);
|
|
2091
|
-
const getOptionId = React13.useCallback(
|
|
2092
|
-
(index) => `${menuId}-option-${index}`,
|
|
2093
|
-
[menuId]
|
|
2094
|
-
);
|
|
2095
|
-
const getEffortOptionId = React13.useCallback(
|
|
2096
|
-
(index) => `${menuId}-effort-option-${index}`,
|
|
2097
|
-
[menuId]
|
|
2098
|
-
);
|
|
2099
|
-
const activeOptionId = open && renderedModels[highlightedIndex] ? getOptionId(highlightedIndex) : void 0;
|
|
2100
|
-
const selectedRenderedIndex = React13.useMemo(
|
|
2101
|
-
() => selectedKey ? renderedModels.findIndex(
|
|
2102
|
-
(renderedModel) => optionKey(renderedModel.option) === selectedKey
|
|
2103
|
-
) : -1,
|
|
2104
|
-
[renderedModels, selectedKey]
|
|
2105
|
-
);
|
|
2106
|
-
const setProvider = React13.useCallback(
|
|
2107
|
-
(provider) => {
|
|
2108
|
-
if (providerFilter === void 0) {
|
|
2109
|
-
setInternalProviderFilter(provider);
|
|
2110
|
-
}
|
|
2111
|
-
onProviderFilterChange?.(provider);
|
|
2112
|
-
},
|
|
2113
|
-
[onProviderFilterChange, providerFilter]
|
|
2114
|
-
);
|
|
2115
|
-
const close = React13.useCallback(
|
|
2116
|
-
(restoreFocus = true) => {
|
|
2117
|
-
setOpen(false);
|
|
2118
|
-
if (restoreFocus) {
|
|
2119
|
-
triggerRef.current?.focus({ preventScroll: true });
|
|
2120
|
-
}
|
|
2121
|
-
},
|
|
2122
|
-
[triggerRef]
|
|
2123
|
-
);
|
|
2124
|
-
const selectModel = React13.useCallback(
|
|
2125
|
-
(model) => {
|
|
2126
|
-
onChange({ provider: model.provider, model: model.model });
|
|
2127
|
-
close();
|
|
2128
|
-
},
|
|
2129
|
-
[close, onChange]
|
|
2130
|
-
);
|
|
2131
|
-
const efforts = React13.useMemo(() => effortOptions ?? [], [effortOptions]);
|
|
2132
|
-
const activeEffortOptionId = open && efforts[effortHighlight] ? getEffortOptionId(effortHighlight) : void 0;
|
|
2133
|
-
const selectedEffortOption = efforts.find(
|
|
2134
|
-
(option) => option.value === effort
|
|
2135
|
-
);
|
|
2136
|
-
const selectEffort = React13.useCallback(
|
|
2137
|
-
(value2) => {
|
|
2138
|
-
onEffortChange?.(value2);
|
|
2139
|
-
close();
|
|
2140
|
-
},
|
|
2141
|
-
[close, onEffortChange]
|
|
2142
|
-
);
|
|
2143
|
-
const handleEffortKeyDown = (event) => {
|
|
2144
|
-
if (efforts.length === 0) return;
|
|
2145
|
-
if (event.key === "ArrowDown") {
|
|
2146
|
-
event.preventDefault();
|
|
2147
|
-
setEffortHighlight((current) => (current + 1) % efforts.length);
|
|
2148
|
-
}
|
|
2149
|
-
if (event.key === "ArrowUp") {
|
|
2150
|
-
event.preventDefault();
|
|
2151
|
-
setEffortHighlight(
|
|
2152
|
-
(current) => (current - 1 + efforts.length) % efforts.length
|
|
2153
|
-
);
|
|
2154
|
-
}
|
|
2155
|
-
if (event.key === "Home") {
|
|
2156
|
-
event.preventDefault();
|
|
2157
|
-
setEffortHighlight(0);
|
|
2158
|
-
}
|
|
2159
|
-
if (event.key === "End") {
|
|
2160
|
-
event.preventDefault();
|
|
2161
|
-
setEffortHighlight(efforts.length - 1);
|
|
2162
|
-
}
|
|
2163
|
-
if (event.key === "ArrowLeft" || event.key === "Backspace") {
|
|
2164
|
-
event.preventDefault();
|
|
2165
|
-
setView("models");
|
|
2166
|
-
}
|
|
2167
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
2168
|
-
event.preventDefault();
|
|
2169
|
-
const highlighted = efforts[effortHighlight];
|
|
2170
|
-
if (highlighted) selectEffort(highlighted.value);
|
|
2045
|
+
children: /* @__PURE__ */ jsx(AnimatedPresence, { children: toasts.map((toast) => /* @__PURE__ */ jsx(
|
|
2046
|
+
Animated,
|
|
2047
|
+
{
|
|
2048
|
+
preset: "toast",
|
|
2049
|
+
mode: "presence",
|
|
2050
|
+
custom: edge,
|
|
2051
|
+
className: "pointer-events-auto",
|
|
2052
|
+
fallbackClassName: TOAST_FALLBACK_ANIMATION,
|
|
2053
|
+
children: /* @__PURE__ */ jsx(Toast, { ...toast, onClose: () => onDismiss(toast.id) })
|
|
2054
|
+
},
|
|
2055
|
+
toast.id
|
|
2056
|
+
)) })
|
|
2171
2057
|
}
|
|
2172
|
-
};
|
|
2173
|
-
const outsideRefs = React13.useMemo(
|
|
2174
|
-
() => [triggerRef, menuRef],
|
|
2175
|
-
[triggerRef, menuRef]
|
|
2176
2058
|
);
|
|
2177
|
-
useClickOutside(outsideRefs, () => close(false), open);
|
|
2178
|
-
useEscapeKey(close, open);
|
|
2179
|
-
React13.useEffect(() => {
|
|
2180
|
-
if (!open) return;
|
|
2181
|
-
setHighlightedIndex(selectedRenderedIndex >= 0 ? selectedRenderedIndex : 0);
|
|
2182
|
-
}, [activeProviderFilter, open, selectedRenderedIndex]);
|
|
2183
|
-
React13.useEffect(() => {
|
|
2184
|
-
if (!open) return;
|
|
2185
|
-
setView("models");
|
|
2186
|
-
}, [open]);
|
|
2187
|
-
React13.useEffect(() => {
|
|
2188
|
-
if (!open) return;
|
|
2189
|
-
const current = efforts.findIndex((option) => option.value === effort);
|
|
2190
|
-
setEffortHighlight(current >= 0 ? current : 0);
|
|
2191
|
-
}, [effort, efforts, open]);
|
|
2192
|
-
React13.useEffect(() => {
|
|
2193
|
-
if (!open) return;
|
|
2194
|
-
setHighlightedIndex(
|
|
2195
|
-
(current) => Math.min(current, Math.max(renderedModels.length - 1, 0))
|
|
2196
|
-
);
|
|
2197
|
-
}, [open, renderedModels.length]);
|
|
2198
|
-
React13.useEffect(() => {
|
|
2199
|
-
if (!open) return;
|
|
2200
|
-
requestAnimationFrame(() => {
|
|
2201
|
-
const target = view === "effort" ? effortListRef.current : listRef.current;
|
|
2202
|
-
target?.focus({ preventScroll: true });
|
|
2203
|
-
});
|
|
2204
|
-
}, [open, view]);
|
|
2205
|
-
const handleTriggerKeyDown = (event) => {
|
|
2206
|
-
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
2207
|
-
event.preventDefault();
|
|
2208
|
-
setOpen(true);
|
|
2209
|
-
}
|
|
2210
|
-
};
|
|
2211
|
-
const handleMenuKeyDown = (event) => {
|
|
2212
|
-
if (renderedModels.length === 0) return;
|
|
2213
|
-
if (event.key === "ArrowDown") {
|
|
2214
|
-
event.preventDefault();
|
|
2215
|
-
setHighlightedIndex((current) => (current + 1) % renderedModels.length);
|
|
2216
|
-
}
|
|
2217
|
-
if (event.key === "ArrowUp") {
|
|
2218
|
-
event.preventDefault();
|
|
2219
|
-
setHighlightedIndex(
|
|
2220
|
-
(current) => (current - 1 + renderedModels.length) % renderedModels.length
|
|
2221
|
-
);
|
|
2222
|
-
}
|
|
2223
|
-
if (event.key === "Home") {
|
|
2224
|
-
event.preventDefault();
|
|
2225
|
-
setHighlightedIndex(0);
|
|
2226
|
-
}
|
|
2227
|
-
if (event.key === "End") {
|
|
2228
|
-
event.preventDefault();
|
|
2229
|
-
setHighlightedIndex(renderedModels.length - 1);
|
|
2230
|
-
}
|
|
2231
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
2232
|
-
event.preventDefault();
|
|
2233
|
-
const highlightedModel = renderedModels[highlightedIndex]?.option;
|
|
2234
|
-
if (highlightedModel) {
|
|
2235
|
-
selectModel(highlightedModel);
|
|
2236
|
-
}
|
|
2237
|
-
}
|
|
2238
|
-
};
|
|
2239
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2240
|
-
/* @__PURE__ */ jsxs(
|
|
2241
|
-
"button",
|
|
2242
|
-
{
|
|
2243
|
-
ref: triggerRef,
|
|
2244
|
-
type: "button",
|
|
2245
|
-
disabled,
|
|
2246
|
-
"aria-haspopup": "listbox",
|
|
2247
|
-
"aria-expanded": open,
|
|
2248
|
-
"aria-controls": open ? menuId : void 0,
|
|
2249
|
-
onClick: () => setOpen((current) => !current),
|
|
2250
|
-
onKeyDown: handleTriggerKeyDown,
|
|
2251
|
-
"data-slot": "composer-model-selector-trigger",
|
|
2252
|
-
className: cn(
|
|
2253
|
-
variant === "ghost" ? [
|
|
2254
|
-
"inline-flex max-w-full min-w-0 items-center gap-1 rounded-md px-2 py-1 text-xs",
|
|
2255
|
-
"text-neutral-600 dark:text-neutral-400",
|
|
2256
|
-
"transition-colors duration-150",
|
|
2257
|
-
"hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-700 dark:hover:text-white",
|
|
2258
|
-
"focus-visible:ring-primary-500 focus-visible:ring-2 focus-visible:outline-none",
|
|
2259
|
-
"disabled:pointer-events-none disabled:opacity-40"
|
|
2260
|
-
] : [
|
|
2261
|
-
"inline-flex h-8 max-w-full items-center gap-1.5 rounded-full border px-2.5 text-sm font-medium",
|
|
2262
|
-
"border-border bg-background text-foreground shadow-sm",
|
|
2263
|
-
"hover:bg-muted/50",
|
|
2264
|
-
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none",
|
|
2265
|
-
"disabled:cursor-not-allowed disabled:opacity-50"
|
|
2266
|
-
],
|
|
2267
|
-
className
|
|
2268
|
-
),
|
|
2269
|
-
children: [
|
|
2270
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: selectedOption?.label ?? selectedOption?.model ?? placeholder }),
|
|
2271
|
-
selectedEffortOption && /* @__PURE__ */ jsx(
|
|
2272
|
-
"span",
|
|
2273
|
-
{
|
|
2274
|
-
"data-slot": "composer-model-selector-trigger-effort",
|
|
2275
|
-
className: "text-muted-foreground min-w-0 truncate font-normal",
|
|
2276
|
-
children: selectedEffortOption.label
|
|
2277
|
-
}
|
|
2278
|
-
),
|
|
2279
|
-
/* @__PURE__ */ jsx(
|
|
2280
|
-
ChevronUp$1,
|
|
2281
|
-
{
|
|
2282
|
-
"aria-hidden": "true",
|
|
2283
|
-
className: cn(
|
|
2284
|
-
"shrink-0",
|
|
2285
|
-
variant === "ghost" ? "h-3 w-3" : "h-3.5 w-3.5"
|
|
2286
|
-
)
|
|
2287
|
-
}
|
|
2288
|
-
)
|
|
2289
|
-
]
|
|
2290
|
-
}
|
|
2291
|
-
),
|
|
2292
|
-
open && createPortal(
|
|
2293
|
-
/* @__PURE__ */ jsxs(
|
|
2294
|
-
"div",
|
|
2295
|
-
{
|
|
2296
|
-
ref: menuRef,
|
|
2297
|
-
style: menuStyle,
|
|
2298
|
-
"data-slot": "composer-model-selector-menu",
|
|
2299
|
-
className: cn(
|
|
2300
|
-
"border-border bg-card text-card-foreground flex w-80 max-w-full flex-col rounded-lg border shadow-lg",
|
|
2301
|
-
"animate-in fade-in overflow-hidden duration-100"
|
|
2302
|
-
),
|
|
2303
|
-
children: [
|
|
2304
|
-
view === "models" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2305
|
-
/* @__PURE__ */ jsx(
|
|
2306
|
-
"div",
|
|
2307
|
-
{
|
|
2308
|
-
"data-slot": "composer-model-selector-provider-filter",
|
|
2309
|
-
className: "border-border flex min-h-9 items-center gap-1 overflow-x-auto overflow-y-hidden border-b p-2",
|
|
2310
|
-
children: [null, ...providers].map((provider) => {
|
|
2311
|
-
const selected = activeProviderFilter === provider;
|
|
2312
|
-
return /* @__PURE__ */ jsx(
|
|
2313
|
-
"button",
|
|
2314
|
-
{
|
|
2315
|
-
type: "button",
|
|
2316
|
-
"aria-pressed": selected,
|
|
2317
|
-
onMouseDown: (event) => event.preventDefault(),
|
|
2318
|
-
onClick: () => setProvider(provider),
|
|
2319
|
-
className: cn(
|
|
2320
|
-
"inline-flex h-6 shrink-0 items-center justify-center rounded-full px-2.5 text-xs font-medium whitespace-nowrap transition-colors",
|
|
2321
|
-
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none",
|
|
2322
|
-
selected ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
2323
|
-
),
|
|
2324
|
-
children: provider === null ? anyLabel : providerLabels.get(provider) ?? provider
|
|
2325
|
-
},
|
|
2326
|
-
provider ?? "all-providers"
|
|
2327
|
-
);
|
|
2328
|
-
})
|
|
2329
|
-
}
|
|
2330
|
-
),
|
|
2331
|
-
/* @__PURE__ */ jsx(
|
|
2332
|
-
"div",
|
|
2333
|
-
{
|
|
2334
|
-
ref: listRef,
|
|
2335
|
-
id: menuId,
|
|
2336
|
-
role: "listbox",
|
|
2337
|
-
"aria-label": ariaLabel,
|
|
2338
|
-
"aria-activedescendant": activeOptionId,
|
|
2339
|
-
tabIndex: -1,
|
|
2340
|
-
onKeyDown: handleMenuKeyDown,
|
|
2341
|
-
className: "min-h-0 flex-1 overflow-y-auto p-1",
|
|
2342
|
-
children: groupedModels.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-muted-foreground px-3 py-4 text-center text-sm", children: emptyLabel }) : groupedRenderedModels.map((group) => /* @__PURE__ */ jsxs(
|
|
2343
|
-
"div",
|
|
2344
|
-
{
|
|
2345
|
-
role: "group",
|
|
2346
|
-
"aria-label": providerLabels.get(group.provider) ?? group.provider,
|
|
2347
|
-
children: [
|
|
2348
|
-
/* @__PURE__ */ jsx("div", { className: "text-muted-foreground px-3 py-1.5 text-xs font-semibold uppercase", children: providerLabels.get(group.provider) ?? group.provider }),
|
|
2349
|
-
group.options.map((renderedModel) => {
|
|
2350
|
-
const { index, key, option: model } = renderedModel;
|
|
2351
|
-
const selected = optionKey(model) === selectedKey;
|
|
2352
|
-
const highlighted = index === highlightedIndex;
|
|
2353
|
-
return /* @__PURE__ */ jsxs(
|
|
2354
|
-
"button",
|
|
2355
|
-
{
|
|
2356
|
-
id: getOptionId(index),
|
|
2357
|
-
type: "button",
|
|
2358
|
-
role: "option",
|
|
2359
|
-
"aria-selected": selected,
|
|
2360
|
-
onMouseDown: (event) => event.preventDefault(),
|
|
2361
|
-
onClick: () => selectModel(model),
|
|
2362
|
-
onMouseEnter: () => setHighlightedIndex(index),
|
|
2363
|
-
className: cn(
|
|
2364
|
-
"flex w-full items-center gap-2 rounded-md px-3 py-2 text-start text-sm",
|
|
2365
|
-
"focus-visible:ring-ring transition-colors focus-visible:ring-2 focus-visible:outline-none",
|
|
2366
|
-
highlighted && "bg-muted",
|
|
2367
|
-
selected && "bg-primary/10 text-primary"
|
|
2368
|
-
),
|
|
2369
|
-
children: [
|
|
2370
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate", children: model.label ?? model.model }),
|
|
2371
|
-
selected && /* @__PURE__ */ jsx(
|
|
2372
|
-
Check$1,
|
|
2373
|
-
{
|
|
2374
|
-
"aria-hidden": "true",
|
|
2375
|
-
className: "text-primary h-4 w-4 shrink-0"
|
|
2376
|
-
}
|
|
2377
|
-
)
|
|
2378
|
-
]
|
|
2379
|
-
},
|
|
2380
|
-
key
|
|
2381
|
-
);
|
|
2382
|
-
})
|
|
2383
|
-
]
|
|
2384
|
-
},
|
|
2385
|
-
group.provider
|
|
2386
|
-
))
|
|
2387
|
-
}
|
|
2388
|
-
),
|
|
2389
|
-
efforts.length > 0 && /* @__PURE__ */ jsx("div", { className: "border-border border-t p-1", children: /* @__PURE__ */ jsxs(
|
|
2390
|
-
"button",
|
|
2391
|
-
{
|
|
2392
|
-
type: "button",
|
|
2393
|
-
"data-slot": "composer-model-selector-effort-row",
|
|
2394
|
-
"aria-haspopup": "listbox",
|
|
2395
|
-
onMouseDown: (event) => event.preventDefault(),
|
|
2396
|
-
onClick: () => setView("effort"),
|
|
2397
|
-
className: cn(
|
|
2398
|
-
"flex w-full items-center gap-2 rounded-md px-3 py-2 text-start text-sm",
|
|
2399
|
-
"hover:bg-muted transition-colors",
|
|
2400
|
-
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none"
|
|
2401
|
-
),
|
|
2402
|
-
children: [
|
|
2403
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate", children: effortLabel }),
|
|
2404
|
-
selectedEffortOption && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground min-w-0 truncate", children: selectedEffortOption.label }),
|
|
2405
|
-
/* @__PURE__ */ jsx(
|
|
2406
|
-
ChevronRight,
|
|
2407
|
-
{
|
|
2408
|
-
"aria-hidden": "true",
|
|
2409
|
-
className: "text-muted-foreground h-4 w-4 shrink-0 rtl:-scale-x-100"
|
|
2410
|
-
}
|
|
2411
|
-
)
|
|
2412
|
-
]
|
|
2413
|
-
}
|
|
2414
|
-
) })
|
|
2415
|
-
] }),
|
|
2416
|
-
view === "effort" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2417
|
-
/* @__PURE__ */ jsx("div", { className: "border-border flex items-center gap-1 border-b p-2", children: /* @__PURE__ */ jsxs(
|
|
2418
|
-
"button",
|
|
2419
|
-
{
|
|
2420
|
-
type: "button",
|
|
2421
|
-
"data-slot": "composer-model-selector-effort-back",
|
|
2422
|
-
"aria-label": backLabel,
|
|
2423
|
-
onMouseDown: (event) => event.preventDefault(),
|
|
2424
|
-
onClick: () => setView("models"),
|
|
2425
|
-
className: cn(
|
|
2426
|
-
"inline-flex h-6 shrink-0 items-center gap-1 rounded-full px-2 text-xs font-medium",
|
|
2427
|
-
"text-muted-foreground hover:bg-muted hover:text-foreground transition-colors",
|
|
2428
|
-
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none"
|
|
2429
|
-
),
|
|
2430
|
-
children: [
|
|
2431
|
-
/* @__PURE__ */ jsx(
|
|
2432
|
-
ChevronLeft,
|
|
2433
|
-
{
|
|
2434
|
-
"aria-hidden": "true",
|
|
2435
|
-
className: "h-3.5 w-3.5 rtl:-scale-x-100"
|
|
2436
|
-
}
|
|
2437
|
-
),
|
|
2438
|
-
effortLabel
|
|
2439
|
-
]
|
|
2440
|
-
}
|
|
2441
|
-
) }),
|
|
2442
|
-
effortHint && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground px-3 pt-2 text-xs", children: effortHint }),
|
|
2443
|
-
/* @__PURE__ */ jsx(
|
|
2444
|
-
"div",
|
|
2445
|
-
{
|
|
2446
|
-
ref: effortListRef,
|
|
2447
|
-
id: menuId,
|
|
2448
|
-
role: "listbox",
|
|
2449
|
-
"aria-label": effortLabel,
|
|
2450
|
-
"aria-activedescendant": activeEffortOptionId,
|
|
2451
|
-
tabIndex: -1,
|
|
2452
|
-
onKeyDown: handleEffortKeyDown,
|
|
2453
|
-
className: "min-h-0 flex-1 overflow-y-auto p-1",
|
|
2454
|
-
children: efforts.map((option, index) => {
|
|
2455
|
-
const selected = option.value === effort;
|
|
2456
|
-
const highlighted = index === effortHighlight;
|
|
2457
|
-
return /* @__PURE__ */ jsxs(
|
|
2458
|
-
"button",
|
|
2459
|
-
{
|
|
2460
|
-
id: getEffortOptionId(index),
|
|
2461
|
-
type: "button",
|
|
2462
|
-
role: "option",
|
|
2463
|
-
"aria-selected": selected,
|
|
2464
|
-
onMouseDown: (event) => event.preventDefault(),
|
|
2465
|
-
onClick: () => selectEffort(option.value),
|
|
2466
|
-
onMouseEnter: () => setEffortHighlight(index),
|
|
2467
|
-
className: cn(
|
|
2468
|
-
"flex w-full items-center gap-2 rounded-md px-3 py-2 text-start text-sm",
|
|
2469
|
-
"focus-visible:ring-ring transition-colors focus-visible:ring-2 focus-visible:outline-none",
|
|
2470
|
-
highlighted && "bg-muted",
|
|
2471
|
-
selected && "bg-primary/10 text-primary"
|
|
2472
|
-
),
|
|
2473
|
-
children: [
|
|
2474
|
-
/* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
|
|
2475
|
-
/* @__PURE__ */ jsx("span", { className: "block truncate", children: option.label }),
|
|
2476
|
-
option.description && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground block truncate text-xs", children: option.description })
|
|
2477
|
-
] }),
|
|
2478
|
-
option.value === defaultEffort && /* @__PURE__ */ jsx("span", { className: "bg-muted text-muted-foreground shrink-0 rounded px-1.5 py-0.5 text-xs", children: defaultBadgeLabel }),
|
|
2479
|
-
selected && /* @__PURE__ */ jsx(
|
|
2480
|
-
Check$1,
|
|
2481
|
-
{
|
|
2482
|
-
"aria-hidden": "true",
|
|
2483
|
-
className: "text-primary h-4 w-4 shrink-0"
|
|
2484
|
-
}
|
|
2485
|
-
)
|
|
2486
|
-
]
|
|
2487
|
-
},
|
|
2488
|
-
option.value
|
|
2489
|
-
);
|
|
2490
|
-
})
|
|
2491
|
-
}
|
|
2492
|
-
)
|
|
2493
|
-
] })
|
|
2494
|
-
]
|
|
2495
|
-
}
|
|
2496
|
-
),
|
|
2497
|
-
document.body
|
|
2498
|
-
)
|
|
2499
|
-
] });
|
|
2500
2059
|
}
|
|
2501
|
-
ComposerModelSelector.displayName = "ComposerModelSelector";
|
|
2502
2060
|
var THINKING_OPTIONS = [
|
|
2503
2061
|
{
|
|
2504
2062
|
value: "never",
|
|
@@ -2619,20 +2177,17 @@ function OzwellChat({
|
|
|
2619
2177
|
});
|
|
2620
2178
|
setMessagesMenuOpen(false);
|
|
2621
2179
|
};
|
|
2622
|
-
const
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
className: "border-border bg-card text-foreground max-w-[min(142px,38vw)] shadow-sm"
|
|
2634
|
-
}
|
|
2635
|
-
) : void 0;
|
|
2180
|
+
const modelSelectorProps = showModelSelector && models ? {
|
|
2181
|
+
models: models.options,
|
|
2182
|
+
value: models.value,
|
|
2183
|
+
onChange: models.onChange,
|
|
2184
|
+
...models.providerFilter !== void 0 ? {
|
|
2185
|
+
providerFilter: models.providerFilter,
|
|
2186
|
+
onProviderFilterChange: models.onProviderFilterChange
|
|
2187
|
+
} : { onProviderFilterChange: models.onProviderFilterChange },
|
|
2188
|
+
boundaryRef: shellRef,
|
|
2189
|
+
className: "max-w-[min(160px,44vw)]"
|
|
2190
|
+
} : void 0;
|
|
2636
2191
|
const startQueuedMessageEdit = () => {
|
|
2637
2192
|
setQueuedMessageDraft(queuedMessage ?? "");
|
|
2638
2193
|
setIsEditingQueuedMessage(true);
|
|
@@ -2678,7 +2233,7 @@ function OzwellChat({
|
|
|
2678
2233
|
variant: "ghost",
|
|
2679
2234
|
"aria-label": "Save queued message",
|
|
2680
2235
|
onClick: saveQueuedMessage,
|
|
2681
|
-
children: /* @__PURE__ */ jsx(Check, { size: 14, "aria-hidden": "true" })
|
|
2236
|
+
children: /* @__PURE__ */ jsx(Check$1, { size: 14, "aria-hidden": "true" })
|
|
2682
2237
|
}
|
|
2683
2238
|
) }),
|
|
2684
2239
|
/* @__PURE__ */ jsx(Tooltip, { content: "Cancel editing", children: /* @__PURE__ */ jsx(
|
|
@@ -2846,7 +2401,6 @@ function OzwellChat({
|
|
|
2846
2401
|
{
|
|
2847
2402
|
messages: chatMessages,
|
|
2848
2403
|
isGenerating,
|
|
2849
|
-
className: showModelSelector ? '[&_[data-slot="composer-input"]]:pe-[min(160px,44vw)]' : void 0,
|
|
2850
2404
|
showHeader: false,
|
|
2851
2405
|
height: "100%",
|
|
2852
2406
|
variant: "embedded",
|
|
@@ -2856,9 +2410,9 @@ function OzwellChat({
|
|
|
2856
2410
|
renderTextContent: renderMessageTextContent,
|
|
2857
2411
|
renderMessageFooter: renderQueuedMessageFooter,
|
|
2858
2412
|
composerProps: {
|
|
2859
|
-
inputTrailing: modelSelector,
|
|
2860
2413
|
disabled: false,
|
|
2861
|
-
isSending: false
|
|
2414
|
+
isSending: false,
|
|
2415
|
+
...modelSelectorProps ? { showModelSelector: true, modelSelectorProps } : {}
|
|
2862
2416
|
}
|
|
2863
2417
|
}
|
|
2864
2418
|
),
|
|
@@ -3557,7 +3111,7 @@ function useWakeWord(opts = {}) {
|
|
|
3557
3111
|
try {
|
|
3558
3112
|
await ensureOrt();
|
|
3559
3113
|
if (cancelled) return;
|
|
3560
|
-
const { HeyBuddy } = await import('./hey-buddy-
|
|
3114
|
+
const { HeyBuddy } = await import('./hey-buddy-V6FC5UKB.js');
|
|
3561
3115
|
if (cancelled) return;
|
|
3562
3116
|
const ASSET = resolveAssetBase(assetBase);
|
|
3563
3117
|
const hb = new HeyBuddy({
|
|
@@ -6245,9 +5799,9 @@ function HandsFreeChat({
|
|
|
6245
5799
|
// Controlled input (value/onValueChange) comes from the hook — it fills the box with the live
|
|
6246
5800
|
// caption while dictating, else the typed text. We only add the mic button here.
|
|
6247
5801
|
...oz.chatProps.composerProps,
|
|
6248
|
-
// The composer's OWN mic
|
|
5802
|
+
// The composer's OWN mic slot, driven by our shared stream (controlled mode disables its
|
|
6249
5803
|
// internal recorder). So the built-in mic and "hey ozwell" both do the same thing — one mic.
|
|
6250
|
-
|
|
5804
|
+
micSlot: /* @__PURE__ */ jsx(
|
|
6251
5805
|
"span",
|
|
6252
5806
|
{
|
|
6253
5807
|
onClickCapture: () => {
|
|
@@ -8399,11 +7953,11 @@ function OrderRow({
|
|
|
8399
7953
|
"aria-label": `Edit order ${order.display}`,
|
|
8400
7954
|
className: "flex flex-1 flex-wrap items-center gap-1.5",
|
|
8401
7955
|
children: [
|
|
8402
|
-
/* @__PURE__ */ jsx(
|
|
8403
|
-
|
|
7956
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-40 flex-1", children: /* @__PURE__ */ jsx(
|
|
7957
|
+
Input,
|
|
8404
7958
|
{
|
|
8405
|
-
type: "text",
|
|
8406
7959
|
autoFocus: true,
|
|
7960
|
+
size: "sm",
|
|
8407
7961
|
value: editing.display,
|
|
8408
7962
|
onChange: (e) => setEditing(
|
|
8409
7963
|
(prev) => prev ? { ...prev, display: e.target.value } : prev
|
|
@@ -8413,17 +7967,13 @@ function OrderRow({
|
|
|
8413
7967
|
else if (e.key === "Escape") setEditing(null);
|
|
8414
7968
|
},
|
|
8415
7969
|
"aria-label": "Order description",
|
|
8416
|
-
className:
|
|
8417
|
-
"border-border bg-background text-foreground",
|
|
8418
|
-
"h-7 min-w-40 flex-1 rounded-md border px-2 text-sm",
|
|
8419
|
-
"focus:ring-ring focus:ring-2 focus:outline-none"
|
|
8420
|
-
)
|
|
7970
|
+
className: "h-7"
|
|
8421
7971
|
}
|
|
8422
|
-
),
|
|
8423
|
-
/* @__PURE__ */ jsx(
|
|
8424
|
-
|
|
7972
|
+
) }),
|
|
7973
|
+
/* @__PURE__ */ jsx("div", { className: "w-40", children: /* @__PURE__ */ jsx(
|
|
7974
|
+
Input,
|
|
8425
7975
|
{
|
|
8426
|
-
|
|
7976
|
+
size: "sm",
|
|
8427
7977
|
value: editing.detail,
|
|
8428
7978
|
onChange: (e) => setEditing(
|
|
8429
7979
|
(prev) => prev ? { ...prev, detail: e.target.value } : prev
|
|
@@ -8434,13 +7984,9 @@ function OrderRow({
|
|
|
8434
7984
|
},
|
|
8435
7985
|
placeholder: "detail (sig, timing\u2026)",
|
|
8436
7986
|
"aria-label": "Order detail",
|
|
8437
|
-
className:
|
|
8438
|
-
"border-border bg-background text-foreground placeholder:text-muted-foreground",
|
|
8439
|
-
"h-7 w-40 rounded-md border px-2 text-xs",
|
|
8440
|
-
"focus:ring-ring focus:ring-2 focus:outline-none"
|
|
8441
|
-
)
|
|
7987
|
+
className: "h-7 text-xs"
|
|
8442
7988
|
}
|
|
8443
|
-
),
|
|
7989
|
+
) }),
|
|
8444
7990
|
/* @__PURE__ */ jsx(
|
|
8445
7991
|
Button,
|
|
8446
7992
|
{
|
|
@@ -8559,6 +8105,7 @@ function OrderRow({
|
|
|
8559
8105
|
);
|
|
8560
8106
|
}
|
|
8561
8107
|
function AddOrderForm({
|
|
8108
|
+
id,
|
|
8562
8109
|
problemText,
|
|
8563
8110
|
onSubmit,
|
|
8564
8111
|
onCancel,
|
|
@@ -8593,6 +8140,7 @@ function AddOrderForm({
|
|
|
8593
8140
|
return /* @__PURE__ */ jsxs(
|
|
8594
8141
|
"div",
|
|
8595
8142
|
{
|
|
8143
|
+
id,
|
|
8596
8144
|
role: "form",
|
|
8597
8145
|
"aria-label": `Add order for ${problemText}`,
|
|
8598
8146
|
className: "border-border bg-muted/40 ms-2.5 mt-1.5 flex flex-wrap items-center gap-1.5 rounded-md border border-dashed p-2",
|
|
@@ -8631,12 +8179,11 @@ function AddOrderForm({
|
|
|
8631
8179
|
});
|
|
8632
8180
|
}
|
|
8633
8181
|
}) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8634
|
-
/* @__PURE__ */ jsx(
|
|
8635
|
-
|
|
8182
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-48 flex-1", children: /* @__PURE__ */ jsx(
|
|
8183
|
+
Input,
|
|
8636
8184
|
{
|
|
8637
8185
|
ref: inputRef,
|
|
8638
|
-
|
|
8639
|
-
"data-slot": "input",
|
|
8186
|
+
size: "sm",
|
|
8640
8187
|
value: display,
|
|
8641
8188
|
onChange: (e) => setDisplay(e.target.value),
|
|
8642
8189
|
onKeyDown: (e) => {
|
|
@@ -8644,14 +8191,9 @@ function AddOrderForm({
|
|
|
8644
8191
|
else if (e.key === "Escape") onCancel();
|
|
8645
8192
|
},
|
|
8646
8193
|
placeholder: "e.g. lisinopril 10 mg tablet \u2014 1 po daily",
|
|
8647
|
-
"aria-label": "Order description"
|
|
8648
|
-
className: cn(
|
|
8649
|
-
"border-border bg-background text-foreground placeholder:text-muted-foreground",
|
|
8650
|
-
"h-8 min-w-48 flex-1 rounded-md border px-2.5 text-sm",
|
|
8651
|
-
"focus:ring-ring focus:ring-2 focus:outline-none"
|
|
8652
|
-
)
|
|
8194
|
+
"aria-label": "Order description"
|
|
8653
8195
|
}
|
|
8654
|
-
),
|
|
8196
|
+
) }),
|
|
8655
8197
|
/* @__PURE__ */ jsx(
|
|
8656
8198
|
Button,
|
|
8657
8199
|
{
|
|
@@ -8688,6 +8230,7 @@ var Assessment = React13.forwardRef(
|
|
|
8688
8230
|
showPlan = true,
|
|
8689
8231
|
onShowPlanChange,
|
|
8690
8232
|
onAction,
|
|
8233
|
+
onRemoveAssessment,
|
|
8691
8234
|
onAddOrder,
|
|
8692
8235
|
onAddAssessment,
|
|
8693
8236
|
onLinkOrder,
|
|
@@ -8704,6 +8247,7 @@ var Assessment = React13.forwardRef(
|
|
|
8704
8247
|
"data-testid": dataTestId,
|
|
8705
8248
|
...props
|
|
8706
8249
|
}, ref) => {
|
|
8250
|
+
const instanceId = React13.useId();
|
|
8707
8251
|
const [addingFor, setAddingFor] = React13.useState(null);
|
|
8708
8252
|
const [addMode, setAddMode] = React13.useState(
|
|
8709
8253
|
defaultAddMode
|
|
@@ -8904,18 +8448,15 @@ var Assessment = React13.forwardRef(
|
|
|
8904
8448
|
children: [
|
|
8905
8449
|
title !== null && /* @__PURE__ */ jsxs(CardHeader, { className: "border-border bg-muted/50 flex flex-row items-center justify-between border-b px-4 py-3", children: [
|
|
8906
8450
|
/* @__PURE__ */ jsx("h3", { className: "text-foreground text-sm font-semibold tracking-wide uppercase", children: title }),
|
|
8907
|
-
onShowPlanChange && /* @__PURE__ */
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8911
|
-
|
|
8912
|
-
|
|
8913
|
-
|
|
8914
|
-
|
|
8915
|
-
|
|
8916
|
-
),
|
|
8917
|
-
"Show plan"
|
|
8918
|
-
] })
|
|
8451
|
+
onShowPlanChange && /* @__PURE__ */ jsx(
|
|
8452
|
+
Checkbox,
|
|
8453
|
+
{
|
|
8454
|
+
size: "sm",
|
|
8455
|
+
checked: showPlan,
|
|
8456
|
+
onChange: (e) => onShowPlanChange(e.target.checked),
|
|
8457
|
+
label: "Show plan"
|
|
8458
|
+
}
|
|
8459
|
+
)
|
|
8919
8460
|
] }),
|
|
8920
8461
|
/* @__PURE__ */ jsxs(CardContent, { className: "space-y-4 px-4 py-4", children: [
|
|
8921
8462
|
items.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: "No problems assessed this visit." }),
|
|
@@ -8927,6 +8468,7 @@ var Assessment = React13.forwardRef(
|
|
|
8927
8468
|
);
|
|
8928
8469
|
const bp = blockProps(item.concernId);
|
|
8929
8470
|
const formOpen = addingFor === item.concernId;
|
|
8471
|
+
const addOrderFormId = `${instanceId}-add-order-${item.concernId}`;
|
|
8930
8472
|
return /* @__PURE__ */ jsxs(
|
|
8931
8473
|
"li",
|
|
8932
8474
|
{
|
|
@@ -8967,36 +8509,62 @@ var Assessment = React13.forwardRef(
|
|
|
8967
8509
|
/* @__PURE__ */ jsx("span", { className: "text-foreground font-medium", children: assertion.text }),
|
|
8968
8510
|
assertion.verificationStatus !== "confirmed" && /* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", children: assertion.verificationStatus }),
|
|
8969
8511
|
/* @__PURE__ */ jsx(CodingChips, { coding: assertion.coding }),
|
|
8970
|
-
!readOnly && /* @__PURE__ */
|
|
8512
|
+
!readOnly && (onAction || onAddOrder || onRemoveAssessment) && /* @__PURE__ */ jsxs(
|
|
8971
8513
|
RowActionToolbar,
|
|
8972
8514
|
{
|
|
8973
8515
|
label: `Actions for ${assertion.text}`,
|
|
8974
8516
|
align: "top",
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
|
|
8989
|
-
|
|
8990
|
-
|
|
8991
|
-
|
|
8992
|
-
|
|
8517
|
+
className: cn(
|
|
8518
|
+
"pointer-fine:group-has-[[data-order-id]:hover]:pointer-events-none",
|
|
8519
|
+
"pointer-fine:group-has-[[data-order-id]:hover]:opacity-0",
|
|
8520
|
+
"pointer-fine:group-has-[[data-order-id]:focus-within]:pointer-events-none",
|
|
8521
|
+
"pointer-fine:group-has-[[data-order-id]:focus-within]:opacity-0"
|
|
8522
|
+
),
|
|
8523
|
+
children: [
|
|
8524
|
+
Object.keys(ACTION_META2).map(
|
|
8525
|
+
(action) => {
|
|
8526
|
+
const meta = ACTION_META2[action];
|
|
8527
|
+
if (action !== "add-order" && !onAction)
|
|
8528
|
+
return null;
|
|
8529
|
+
if (action === "add-order" && !onAddOrder && !onAction)
|
|
8530
|
+
return null;
|
|
8531
|
+
return /* @__PURE__ */ jsx(
|
|
8532
|
+
RowIconButton,
|
|
8533
|
+
{
|
|
8534
|
+
label: meta.label,
|
|
8535
|
+
icon: meta.icon,
|
|
8536
|
+
size: "sm",
|
|
8537
|
+
expanded: action === "add-order" && onAddOrder ? addingFor === item.concernId : void 0,
|
|
8538
|
+
controls: action === "add-order" && onAddOrder ? addOrderFormId : void 0,
|
|
8539
|
+
onClick: () => {
|
|
8540
|
+
if (action === "add-order" && onAddOrder) {
|
|
8541
|
+
setAddingFor(
|
|
8542
|
+
(prev) => prev === item.concernId ? null : item.concernId
|
|
8543
|
+
);
|
|
8544
|
+
} else {
|
|
8545
|
+
onAction?.(item, action);
|
|
8546
|
+
}
|
|
8993
8547
|
}
|
|
8994
|
-
}
|
|
8995
|
-
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
8548
|
+
},
|
|
8549
|
+
action
|
|
8550
|
+
);
|
|
8551
|
+
}
|
|
8552
|
+
),
|
|
8553
|
+
onRemoveAssessment && /* @__PURE__ */ jsx(
|
|
8554
|
+
RowIconButton,
|
|
8555
|
+
{
|
|
8556
|
+
label: `Remove ${assertion.text} from assessment`,
|
|
8557
|
+
icon: Trash2,
|
|
8558
|
+
size: "sm",
|
|
8559
|
+
onClick: () => {
|
|
8560
|
+
onRemoveAssessment(item);
|
|
8561
|
+
setAnnouncement(
|
|
8562
|
+
`${assertion.text} removed from assessment`
|
|
8563
|
+
);
|
|
8564
|
+
}
|
|
8565
|
+
}
|
|
8566
|
+
)
|
|
8567
|
+
]
|
|
9000
8568
|
}
|
|
9001
8569
|
)
|
|
9002
8570
|
]
|
|
@@ -9022,8 +8590,15 @@ var Assessment = React13.forwardRef(
|
|
|
9022
8590
|
!readOnly && onAddOrder && addingFor === item.concernId && /* @__PURE__ */ jsx(
|
|
9023
8591
|
AddOrderForm,
|
|
9024
8592
|
{
|
|
8593
|
+
id: addOrderFormId,
|
|
9025
8594
|
problemText: assertion.text,
|
|
9026
|
-
onSubmit: (order) =>
|
|
8595
|
+
onSubmit: (order) => {
|
|
8596
|
+
onAddOrder(item, order);
|
|
8597
|
+
setAnnouncement(
|
|
8598
|
+
`${order.display} added to ${assertion.text}`
|
|
8599
|
+
);
|
|
8600
|
+
setAddingFor(null);
|
|
8601
|
+
},
|
|
9027
8602
|
onCancel: () => setAddingFor(null),
|
|
9028
8603
|
renderSearch: effectiveRenderOrderSearch
|
|
9029
8604
|
}
|
|
@@ -12499,599 +12074,6 @@ var CaseManagementHeader = React13.forwardRef(
|
|
|
12499
12074
|
}
|
|
12500
12075
|
);
|
|
12501
12076
|
CaseManagementHeader.displayName = "CaseManagementHeader";
|
|
12502
|
-
var iconButtonClasses = cn(
|
|
12503
|
-
"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg",
|
|
12504
|
-
"text-neutral-500 dark:text-neutral-400",
|
|
12505
|
-
"transition-colors duration-150",
|
|
12506
|
-
"hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-700 dark:hover:text-white",
|
|
12507
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
|
|
12508
|
-
"disabled:pointer-events-none disabled:opacity-40"
|
|
12509
|
-
);
|
|
12510
|
-
var selectorTriggerClasses = cn(
|
|
12511
|
-
"flex min-w-0 items-center gap-1 rounded-md px-2 py-1 text-xs",
|
|
12512
|
-
"text-neutral-600 dark:text-neutral-400",
|
|
12513
|
-
"transition-colors duration-150",
|
|
12514
|
-
"hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-700 dark:hover:text-white",
|
|
12515
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
|
|
12516
|
-
"disabled:pointer-events-none disabled:opacity-40"
|
|
12517
|
-
);
|
|
12518
|
-
var MAX_INPUT_HEIGHT = 160;
|
|
12519
|
-
var ChatComposer = React13.forwardRef(function ChatComposer2({
|
|
12520
|
-
onSend,
|
|
12521
|
-
value: controlledValue,
|
|
12522
|
-
onValueChange,
|
|
12523
|
-
placeholder = "Type a message\u2026",
|
|
12524
|
-
disabled = false,
|
|
12525
|
-
isSending = false,
|
|
12526
|
-
autoFocus = false,
|
|
12527
|
-
maxLength,
|
|
12528
|
-
showCharacterCount = false,
|
|
12529
|
-
canSendWhenEmpty = false,
|
|
12530
|
-
maxHeight = MAX_INPUT_HEIGHT,
|
|
12531
|
-
textareaProps,
|
|
12532
|
-
addMenuItems,
|
|
12533
|
-
allowAttachments = true,
|
|
12534
|
-
acceptedFileTypes,
|
|
12535
|
-
maxFileSize,
|
|
12536
|
-
maxAttachments = 10,
|
|
12537
|
-
mentionOptions,
|
|
12538
|
-
showMic = false,
|
|
12539
|
-
onMicClick,
|
|
12540
|
-
micSlot,
|
|
12541
|
-
micBehavior = "always",
|
|
12542
|
-
isStreaming = false,
|
|
12543
|
-
onStop,
|
|
12544
|
-
showAgentSelector = false,
|
|
12545
|
-
agents = [],
|
|
12546
|
-
selectedAgent = null,
|
|
12547
|
-
onAgentChange,
|
|
12548
|
-
showModelSelector = false,
|
|
12549
|
-
modelSelectorProps,
|
|
12550
|
-
readOnly = false,
|
|
12551
|
-
readOnlyMessage = "You have read-only access and cannot send messages.",
|
|
12552
|
-
onError,
|
|
12553
|
-
attachmentLimitLabel,
|
|
12554
|
-
sendFailedLabel = "Failed to send message",
|
|
12555
|
-
sendingLabel = "Sending message\u2026",
|
|
12556
|
-
inputLabel = "Message input",
|
|
12557
|
-
addMenuLabel = "Add to message",
|
|
12558
|
-
attachFilesLabel = "Attach files",
|
|
12559
|
-
micLabel = "Start voice input",
|
|
12560
|
-
sendLabel = "Send message",
|
|
12561
|
-
stopLabel = "Stop generating",
|
|
12562
|
-
agentSelectorLabel = "Select agent",
|
|
12563
|
-
mentionListLabel = "Mention",
|
|
12564
|
-
dropFilesLabel = "Drop files here",
|
|
12565
|
-
className
|
|
12566
|
-
}, ref) {
|
|
12567
|
-
const [internalValue, setInternalValue] = React13.useState("");
|
|
12568
|
-
const isControlled = controlledValue !== void 0;
|
|
12569
|
-
const value = isControlled ? controlledValue : internalValue;
|
|
12570
|
-
const [attachments, setAttachments] = React13.useState([]);
|
|
12571
|
-
const attachmentsRef = React13.useRef(attachments);
|
|
12572
|
-
attachmentsRef.current = attachments;
|
|
12573
|
-
const textareaRef = React13.useRef(null);
|
|
12574
|
-
const fileInputRef = React13.useRef(null);
|
|
12575
|
-
const [addMenuOpen, setAddMenuOpen] = React13.useState(false);
|
|
12576
|
-
const [agentMenuOpen, setAgentMenuOpen] = React13.useState(false);
|
|
12577
|
-
const hasText = value.trim().length > 0;
|
|
12578
|
-
const hasContent = hasText || attachments.length > 0;
|
|
12579
|
-
const isOverLimit = maxLength !== void 0 && value.length > maxLength;
|
|
12580
|
-
const canSend = (hasContent || canSendWhenEmpty) && onSend !== void 0 && !disabled && !isSending && !isStreaming && !isOverLimit;
|
|
12581
|
-
const setValue = React13.useCallback(
|
|
12582
|
-
(next) => {
|
|
12583
|
-
if (!isControlled) setInternalValue(next);
|
|
12584
|
-
onValueChange?.(next);
|
|
12585
|
-
},
|
|
12586
|
-
[isControlled, onValueChange]
|
|
12587
|
-
);
|
|
12588
|
-
const mention = useMentionAutocomplete({
|
|
12589
|
-
options: mentionOptions,
|
|
12590
|
-
value,
|
|
12591
|
-
setValue,
|
|
12592
|
-
textareaRef
|
|
12593
|
-
});
|
|
12594
|
-
const resizeTextarea = React13.useCallback(() => {
|
|
12595
|
-
const textarea = textareaRef.current;
|
|
12596
|
-
if (!textarea) return;
|
|
12597
|
-
textarea.style.height = "auto";
|
|
12598
|
-
if (textarea.scrollHeight === 0) return;
|
|
12599
|
-
textarea.style.height = `${textarea.scrollHeight}px`;
|
|
12600
|
-
}, []);
|
|
12601
|
-
React13.useLayoutEffect(resizeTextarea, [resizeTextarea, value]);
|
|
12602
|
-
React13.useEffect(() => {
|
|
12603
|
-
const textarea = textareaRef.current;
|
|
12604
|
-
if (!textarea || typeof ResizeObserver === "undefined") return;
|
|
12605
|
-
let frame = 0;
|
|
12606
|
-
const observer = new ResizeObserver(() => {
|
|
12607
|
-
cancelAnimationFrame(frame);
|
|
12608
|
-
frame = requestAnimationFrame(resizeTextarea);
|
|
12609
|
-
});
|
|
12610
|
-
observer.observe(textarea);
|
|
12611
|
-
return () => {
|
|
12612
|
-
cancelAnimationFrame(frame);
|
|
12613
|
-
observer.disconnect();
|
|
12614
|
-
};
|
|
12615
|
-
}, [resizeTextarea]);
|
|
12616
|
-
const addFiles = React13.useCallback(
|
|
12617
|
-
(files) => {
|
|
12618
|
-
if (!allowAttachments || files.length === 0) return;
|
|
12619
|
-
const limitMessage = attachmentLimitLabel ?? `Attachment limit reached (max ${maxAttachments})`;
|
|
12620
|
-
const room = maxAttachments - attachmentsRef.current.length;
|
|
12621
|
-
if (files.length > room) {
|
|
12622
|
-
onError?.(limitMessage, { reason: "attachment-limit" });
|
|
12623
|
-
if (room <= 0) return;
|
|
12624
|
-
}
|
|
12625
|
-
const staged = [];
|
|
12626
|
-
for (const file of files.slice(0, Math.max(room, 0))) {
|
|
12627
|
-
const typeCheck = validateFile(file, acceptedFileTypes, void 0);
|
|
12628
|
-
if (!typeCheck.valid) {
|
|
12629
|
-
onError?.(`${file.name}: ${typeCheck.error}`, {
|
|
12630
|
-
reason: "file-type",
|
|
12631
|
-
file
|
|
12632
|
-
});
|
|
12633
|
-
continue;
|
|
12634
|
-
}
|
|
12635
|
-
const sizeCheck = validateFile(file, void 0, maxFileSize);
|
|
12636
|
-
if (!sizeCheck.valid) {
|
|
12637
|
-
onError?.(`${file.name}: ${sizeCheck.error}`, {
|
|
12638
|
-
reason: "file-size",
|
|
12639
|
-
file
|
|
12640
|
-
});
|
|
12641
|
-
continue;
|
|
12642
|
-
}
|
|
12643
|
-
const type = getFileType(file.type);
|
|
12644
|
-
staged.push({
|
|
12645
|
-
id: generateAttachmentId(),
|
|
12646
|
-
file,
|
|
12647
|
-
type,
|
|
12648
|
-
previewUrl: type === "image" || type === "video" ? URL.createObjectURL(file) : void 0
|
|
12649
|
-
});
|
|
12650
|
-
}
|
|
12651
|
-
if (staged.length > 0) {
|
|
12652
|
-
attachmentsRef.current = [...attachmentsRef.current, ...staged];
|
|
12653
|
-
setAttachments((current) => [...current, ...staged]);
|
|
12654
|
-
}
|
|
12655
|
-
},
|
|
12656
|
-
[
|
|
12657
|
-
allowAttachments,
|
|
12658
|
-
maxAttachments,
|
|
12659
|
-
acceptedFileTypes,
|
|
12660
|
-
maxFileSize,
|
|
12661
|
-
onError,
|
|
12662
|
-
attachmentLimitLabel
|
|
12663
|
-
]
|
|
12664
|
-
);
|
|
12665
|
-
const removeAttachment = React13.useCallback((id) => {
|
|
12666
|
-
const target = attachmentsRef.current.find(
|
|
12667
|
-
(attachment) => attachment.id === id
|
|
12668
|
-
);
|
|
12669
|
-
if (target?.previewUrl) URL.revokeObjectURL(target.previewUrl);
|
|
12670
|
-
attachmentsRef.current = attachmentsRef.current.filter(
|
|
12671
|
-
(attachment) => attachment.id !== id
|
|
12672
|
-
);
|
|
12673
|
-
setAttachments(
|
|
12674
|
-
(current) => current.filter((attachment) => attachment.id !== id)
|
|
12675
|
-
);
|
|
12676
|
-
}, []);
|
|
12677
|
-
React13.useEffect(() => {
|
|
12678
|
-
return () => {
|
|
12679
|
-
for (const attachment of attachmentsRef.current) {
|
|
12680
|
-
if (attachment.previewUrl) URL.revokeObjectURL(attachment.previewUrl);
|
|
12681
|
-
}
|
|
12682
|
-
};
|
|
12683
|
-
}, []);
|
|
12684
|
-
const handleFileInputChange = (event) => {
|
|
12685
|
-
const files = Array.from(event.target.files ?? []);
|
|
12686
|
-
addFiles(files);
|
|
12687
|
-
event.target.value = "";
|
|
12688
|
-
};
|
|
12689
|
-
const handlePaste = (event) => {
|
|
12690
|
-
if (!allowAttachments) return;
|
|
12691
|
-
const files = Array.from(event.clipboardData.files);
|
|
12692
|
-
if (files.length > 0) {
|
|
12693
|
-
event.preventDefault();
|
|
12694
|
-
addFiles(files);
|
|
12695
|
-
}
|
|
12696
|
-
};
|
|
12697
|
-
React13.useImperativeHandle(
|
|
12698
|
-
ref,
|
|
12699
|
-
() => ({
|
|
12700
|
-
addFiles,
|
|
12701
|
-
focus: () => textareaRef.current?.focus(),
|
|
12702
|
-
getTextarea: () => textareaRef.current
|
|
12703
|
-
}),
|
|
12704
|
-
[addFiles]
|
|
12705
|
-
);
|
|
12706
|
-
const handleSend = () => {
|
|
12707
|
-
if (!canSend || !onSend) return;
|
|
12708
|
-
const message = {
|
|
12709
|
-
content: value.trim(),
|
|
12710
|
-
attachments: attachments.map((attachment) => attachment.file)
|
|
12711
|
-
};
|
|
12712
|
-
for (const attachment of attachments) {
|
|
12713
|
-
if (attachment.previewUrl) URL.revokeObjectURL(attachment.previewUrl);
|
|
12714
|
-
}
|
|
12715
|
-
attachmentsRef.current = [];
|
|
12716
|
-
setAttachments([]);
|
|
12717
|
-
setValue("");
|
|
12718
|
-
try {
|
|
12719
|
-
Promise.resolve(onSend(message)).catch(() => {
|
|
12720
|
-
onError?.(sendFailedLabel, { reason: "send-failed" });
|
|
12721
|
-
});
|
|
12722
|
-
} catch {
|
|
12723
|
-
onError?.(sendFailedLabel, { reason: "send-failed" });
|
|
12724
|
-
}
|
|
12725
|
-
textareaRef.current?.focus();
|
|
12726
|
-
};
|
|
12727
|
-
const handleKeyDown = (event) => {
|
|
12728
|
-
if (mention.handleKeyDown(event)) return;
|
|
12729
|
-
if (event.key === "Enter" && !event.shiftKey) {
|
|
12730
|
-
event.preventDefault();
|
|
12731
|
-
handleSend();
|
|
12732
|
-
}
|
|
12733
|
-
};
|
|
12734
|
-
if (readOnly) {
|
|
12735
|
-
return /* @__PURE__ */ jsxs(
|
|
12736
|
-
"div",
|
|
12737
|
-
{
|
|
12738
|
-
"data-slot": "chat-composer",
|
|
12739
|
-
role: "status",
|
|
12740
|
-
className: cn(
|
|
12741
|
-
"flex items-center gap-2 rounded-xl border px-4 py-3 text-sm",
|
|
12742
|
-
"border-amber-300 bg-amber-50 text-amber-900",
|
|
12743
|
-
"dark:border-amber-700 dark:bg-amber-950 dark:text-amber-200",
|
|
12744
|
-
className
|
|
12745
|
-
),
|
|
12746
|
-
children: [
|
|
12747
|
-
/* @__PURE__ */ jsx(AlertTriangle, { className: "h-4 w-4 shrink-0", "aria-hidden": "true" }),
|
|
12748
|
-
/* @__PURE__ */ jsx("span", { "data-slot": "chat-composer-readonly", children: readOnlyMessage })
|
|
12749
|
-
]
|
|
12750
|
-
}
|
|
12751
|
-
);
|
|
12752
|
-
}
|
|
12753
|
-
const showAddMenu = allowAttachments || addMenuItems && addMenuItems.length > 0;
|
|
12754
|
-
const micVisible = (showMic || onMicClick !== void 0 || micSlot !== void 0) && (micBehavior === "always" || !hasContent);
|
|
12755
|
-
const showSelectorRow = showAgentSelector || showModelSelector;
|
|
12756
|
-
const selectedAgentOption = agents.find((agent) => agent.id === selectedAgent) ?? null;
|
|
12757
|
-
const cells = {
|
|
12758
|
-
input: "col-span-3 col-start-1 row-start-1 px-1 pt-1 md:col-span-1 md:col-start-2 md:self-end md:px-0 md:py-1.5",
|
|
12759
|
-
textarea: "px-2 pt-2 pb-1 md:py-1.5",
|
|
12760
|
-
add: "col-start-1 row-start-2 pb-2 ps-2 md:row-start-1 md:self-end md:p-1.5 md:pe-0.5",
|
|
12761
|
-
actions: "col-start-3 row-start-2 flex items-center gap-1 pb-2 pe-2 md:row-start-1 md:self-end md:gap-0.5 md:p-1.5 md:ps-0.5"
|
|
12762
|
-
};
|
|
12763
|
-
const composerCard = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12764
|
-
attachments.length > 0 && /* @__PURE__ */ jsx(
|
|
12765
|
-
"div",
|
|
12766
|
-
{
|
|
12767
|
-
"data-slot": "chat-composer-attachments",
|
|
12768
|
-
className: "flex flex-wrap gap-2 px-3 pt-3",
|
|
12769
|
-
children: attachments.map((attachment) => /* @__PURE__ */ jsx(
|
|
12770
|
-
AttachmentPreviewItem,
|
|
12771
|
-
{
|
|
12772
|
-
attachment: { ...attachment, state: "pending" },
|
|
12773
|
-
onRemove: () => removeAttachment(attachment.id),
|
|
12774
|
-
disabled
|
|
12775
|
-
},
|
|
12776
|
-
attachment.id
|
|
12777
|
-
))
|
|
12778
|
-
}
|
|
12779
|
-
),
|
|
12780
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[auto_minmax(0,1fr)_auto]", children: [
|
|
12781
|
-
/* @__PURE__ */ jsxs("div", { className: cells.input, ref: mention.anchorRef, children: [
|
|
12782
|
-
/* @__PURE__ */ jsx(
|
|
12783
|
-
MentionMenu,
|
|
12784
|
-
{
|
|
12785
|
-
mention,
|
|
12786
|
-
label: mentionListLabel,
|
|
12787
|
-
dataSlot: "chat-composer-mention-list"
|
|
12788
|
-
}
|
|
12789
|
-
),
|
|
12790
|
-
/* @__PURE__ */ jsx(
|
|
12791
|
-
"textarea",
|
|
12792
|
-
{
|
|
12793
|
-
...textareaProps,
|
|
12794
|
-
ref: textareaRef,
|
|
12795
|
-
"data-slot": "chat-composer-input",
|
|
12796
|
-
value,
|
|
12797
|
-
onChange: (event) => {
|
|
12798
|
-
textareaProps?.onChange?.(event);
|
|
12799
|
-
setValue(event.target.value);
|
|
12800
|
-
mention.sync(
|
|
12801
|
-
event.target.value,
|
|
12802
|
-
event.target.selectionStart ?? event.target.value.length
|
|
12803
|
-
);
|
|
12804
|
-
},
|
|
12805
|
-
onKeyDown: (event) => {
|
|
12806
|
-
textareaProps?.onKeyDown?.(event);
|
|
12807
|
-
if (event.defaultPrevented) return;
|
|
12808
|
-
handleKeyDown(event);
|
|
12809
|
-
},
|
|
12810
|
-
onClick: (event) => {
|
|
12811
|
-
textareaProps?.onClick?.(event);
|
|
12812
|
-
if (event.defaultPrevented) return;
|
|
12813
|
-
const el = event.currentTarget;
|
|
12814
|
-
mention.sync(el.value, el.selectionStart ?? el.value.length);
|
|
12815
|
-
},
|
|
12816
|
-
onPaste: (event) => {
|
|
12817
|
-
textareaProps?.onPaste?.(event);
|
|
12818
|
-
if (event.defaultPrevented) return;
|
|
12819
|
-
handlePaste(event);
|
|
12820
|
-
},
|
|
12821
|
-
placeholder,
|
|
12822
|
-
disabled,
|
|
12823
|
-
autoFocus,
|
|
12824
|
-
rows: 1,
|
|
12825
|
-
"aria-label": inputLabel,
|
|
12826
|
-
...mention.inputProps,
|
|
12827
|
-
style: {
|
|
12828
|
-
...textareaProps?.style,
|
|
12829
|
-
maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight
|
|
12830
|
-
},
|
|
12831
|
-
className: cn(
|
|
12832
|
-
"block w-full resize-none bg-transparent",
|
|
12833
|
-
"rounded-lg text-sm",
|
|
12834
|
-
cells.textarea,
|
|
12835
|
-
"text-neutral-900 placeholder:text-neutral-400 dark:text-white dark:placeholder:text-neutral-500",
|
|
12836
|
-
// Ring the input itself on focus rather than the whole shell.
|
|
12837
|
-
"focus:ring-primary-500 focus:ring-1 focus:outline-none",
|
|
12838
|
-
"disabled:cursor-not-allowed",
|
|
12839
|
-
textareaProps?.className
|
|
12840
|
-
)
|
|
12841
|
-
}
|
|
12842
|
-
)
|
|
12843
|
-
] }),
|
|
12844
|
-
showAddMenu && /* @__PURE__ */ jsx("div", { className: cells.add, children: /* @__PURE__ */ jsxs(
|
|
12845
|
-
Dropdown,
|
|
12846
|
-
{
|
|
12847
|
-
placement: "top-start",
|
|
12848
|
-
open: addMenuOpen,
|
|
12849
|
-
onOpenChange: setAddMenuOpen,
|
|
12850
|
-
trigger: /* @__PURE__ */ jsx(
|
|
12851
|
-
"button",
|
|
12852
|
-
{
|
|
12853
|
-
type: "button",
|
|
12854
|
-
"data-slot": "chat-composer-add-button",
|
|
12855
|
-
"aria-label": addMenuLabel,
|
|
12856
|
-
disabled,
|
|
12857
|
-
className: iconButtonClasses,
|
|
12858
|
-
children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
12859
|
-
}
|
|
12860
|
-
),
|
|
12861
|
-
children: [
|
|
12862
|
-
allowAttachments && /* @__PURE__ */ jsx(
|
|
12863
|
-
DropdownItem,
|
|
12864
|
-
{
|
|
12865
|
-
icon: /* @__PURE__ */ jsx(Paperclip, { className: "h-4 w-4", "aria-hidden": "true" }),
|
|
12866
|
-
onClick: () => {
|
|
12867
|
-
setAddMenuOpen(false);
|
|
12868
|
-
fileInputRef.current?.click();
|
|
12869
|
-
},
|
|
12870
|
-
children: attachFilesLabel
|
|
12871
|
-
}
|
|
12872
|
-
),
|
|
12873
|
-
allowAttachments && addMenuItems && addMenuItems.length > 0 && /* @__PURE__ */ jsx(DropdownSeparator, {}),
|
|
12874
|
-
addMenuItems?.map((item) => /* @__PURE__ */ jsx(
|
|
12875
|
-
DropdownItem,
|
|
12876
|
-
{
|
|
12877
|
-
icon: item.icon,
|
|
12878
|
-
disabled: item.disabled,
|
|
12879
|
-
variant: item.variant,
|
|
12880
|
-
checked: item.checked,
|
|
12881
|
-
onClick: () => {
|
|
12882
|
-
setAddMenuOpen(false);
|
|
12883
|
-
item.onSelect?.();
|
|
12884
|
-
},
|
|
12885
|
-
children: /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: item.label })
|
|
12886
|
-
},
|
|
12887
|
-
item.id
|
|
12888
|
-
))
|
|
12889
|
-
]
|
|
12890
|
-
}
|
|
12891
|
-
) }),
|
|
12892
|
-
allowAttachments && /* @__PURE__ */ jsx(
|
|
12893
|
-
"input",
|
|
12894
|
-
{
|
|
12895
|
-
ref: fileInputRef,
|
|
12896
|
-
type: "file",
|
|
12897
|
-
multiple: true,
|
|
12898
|
-
accept: acceptedFileTypes?.join(","),
|
|
12899
|
-
onChange: handleFileInputChange,
|
|
12900
|
-
className: "hidden",
|
|
12901
|
-
"aria-hidden": "true",
|
|
12902
|
-
tabIndex: -1
|
|
12903
|
-
}
|
|
12904
|
-
),
|
|
12905
|
-
/* @__PURE__ */ jsxs("div", { className: cells.actions, children: [
|
|
12906
|
-
showCharacterCount && maxLength !== void 0 && /* @__PURE__ */ jsxs(
|
|
12907
|
-
"span",
|
|
12908
|
-
{
|
|
12909
|
-
"data-slot": "chat-composer-char-count",
|
|
12910
|
-
"aria-live": "polite",
|
|
12911
|
-
className: cn(
|
|
12912
|
-
"pe-1 text-xs tabular-nums",
|
|
12913
|
-
isOverLimit ? "font-medium text-red-700 dark:text-red-400" : "text-neutral-500 dark:text-neutral-400"
|
|
12914
|
-
),
|
|
12915
|
-
children: [
|
|
12916
|
-
value.length,
|
|
12917
|
-
"/",
|
|
12918
|
-
maxLength
|
|
12919
|
-
]
|
|
12920
|
-
}
|
|
12921
|
-
),
|
|
12922
|
-
micVisible && (micSlot != null ? (
|
|
12923
|
-
// Normalize slot content (e.g. a RecordButton) to the 32px
|
|
12924
|
-
// control row: taller content overflow-centers instead of
|
|
12925
|
-
// inflating the pill and pushing the other cells apart. A div
|
|
12926
|
-
// so block-level slot content stays valid HTML.
|
|
12927
|
-
/* @__PURE__ */ jsx(
|
|
12928
|
-
"div",
|
|
12929
|
-
{
|
|
12930
|
-
"data-slot": "chat-composer-mic-slot",
|
|
12931
|
-
className: "flex h-8 shrink-0 items-center",
|
|
12932
|
-
children: micSlot
|
|
12933
|
-
}
|
|
12934
|
-
)
|
|
12935
|
-
) : /* @__PURE__ */ jsx(
|
|
12936
|
-
"button",
|
|
12937
|
-
{
|
|
12938
|
-
type: "button",
|
|
12939
|
-
"data-slot": "chat-composer-mic-button",
|
|
12940
|
-
"aria-label": micLabel,
|
|
12941
|
-
disabled,
|
|
12942
|
-
onClick: onMicClick,
|
|
12943
|
-
className: iconButtonClasses,
|
|
12944
|
-
children: /* @__PURE__ */ jsx(Mic, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
12945
|
-
}
|
|
12946
|
-
)),
|
|
12947
|
-
isStreaming && onStop ? /* @__PURE__ */ jsx(
|
|
12948
|
-
"button",
|
|
12949
|
-
{
|
|
12950
|
-
type: "button",
|
|
12951
|
-
"data-slot": "chat-composer-stop-button",
|
|
12952
|
-
"aria-label": stopLabel,
|
|
12953
|
-
disabled,
|
|
12954
|
-
onClick: onStop,
|
|
12955
|
-
className: cn(
|
|
12956
|
-
iconButtonClasses,
|
|
12957
|
-
"text-neutral-700 dark:text-neutral-200"
|
|
12958
|
-
),
|
|
12959
|
-
children: /* @__PURE__ */ jsx(
|
|
12960
|
-
Square,
|
|
12961
|
-
{
|
|
12962
|
-
className: "h-3.5 w-3.5 fill-current",
|
|
12963
|
-
"aria-hidden": "true"
|
|
12964
|
-
}
|
|
12965
|
-
)
|
|
12966
|
-
}
|
|
12967
|
-
) : /* @__PURE__ */ jsx(
|
|
12968
|
-
"button",
|
|
12969
|
-
{
|
|
12970
|
-
type: "button",
|
|
12971
|
-
"data-slot": "chat-composer-send-button",
|
|
12972
|
-
"aria-label": isSending ? sendingLabel : sendLabel,
|
|
12973
|
-
"aria-busy": isSending || void 0,
|
|
12974
|
-
disabled: !canSend,
|
|
12975
|
-
onClick: handleSend,
|
|
12976
|
-
className: cn(
|
|
12977
|
-
iconButtonClasses,
|
|
12978
|
-
canSend && "bg-primary-800 hover:bg-primary-700 dark:bg-primary-600 dark:hover:bg-primary-500 text-white hover:text-white dark:hover:text-white"
|
|
12979
|
-
),
|
|
12980
|
-
children: isSending ? /* @__PURE__ */ jsx(
|
|
12981
|
-
Loader2,
|
|
12982
|
-
{
|
|
12983
|
-
className: "h-4 w-4 animate-spin",
|
|
12984
|
-
"aria-hidden": "true"
|
|
12985
|
-
}
|
|
12986
|
-
) : /* @__PURE__ */ jsx(ArrowUp, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
12987
|
-
}
|
|
12988
|
-
)
|
|
12989
|
-
] })
|
|
12990
|
-
] })
|
|
12991
|
-
] });
|
|
12992
|
-
const selectorsRow = showSelectorRow && /* @__PURE__ */ jsxs(
|
|
12993
|
-
"div",
|
|
12994
|
-
{
|
|
12995
|
-
"data-slot": "chat-composer-selectors",
|
|
12996
|
-
className: "flex items-center justify-between gap-2 px-2 pt-1",
|
|
12997
|
-
children: [
|
|
12998
|
-
showAgentSelector ? /* @__PURE__ */ jsx(
|
|
12999
|
-
Dropdown,
|
|
13000
|
-
{
|
|
13001
|
-
placement: "top-start",
|
|
13002
|
-
open: agentMenuOpen,
|
|
13003
|
-
onOpenChange: setAgentMenuOpen,
|
|
13004
|
-
trigger: /* @__PURE__ */ jsxs(
|
|
13005
|
-
"button",
|
|
13006
|
-
{
|
|
13007
|
-
type: "button",
|
|
13008
|
-
"data-slot": "chat-composer-agent-trigger",
|
|
13009
|
-
"aria-label": selectedAgentOption ? `${agentSelectorLabel}: ${selectedAgentOption.label}` : agentSelectorLabel,
|
|
13010
|
-
disabled,
|
|
13011
|
-
className: selectorTriggerClasses,
|
|
13012
|
-
children: [
|
|
13013
|
-
selectedAgentOption?.icon ?? /* @__PURE__ */ jsx(Bot, { className: "h-3.5 w-3.5", "aria-hidden": "true" }),
|
|
13014
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: selectedAgentOption?.label ?? agentSelectorLabel }),
|
|
13015
|
-
/* @__PURE__ */ jsx(ChevronUp, { className: "h-3 w-3 shrink-0", "aria-hidden": "true" })
|
|
13016
|
-
]
|
|
13017
|
-
}
|
|
13018
|
-
),
|
|
13019
|
-
children: agents.map((agent) => /* @__PURE__ */ jsx(
|
|
13020
|
-
DropdownItem,
|
|
13021
|
-
{
|
|
13022
|
-
icon: agent.icon,
|
|
13023
|
-
role: "menuitemradio",
|
|
13024
|
-
"aria-checked": agent.id === selectedAgent,
|
|
13025
|
-
onClick: () => {
|
|
13026
|
-
setAgentMenuOpen(false);
|
|
13027
|
-
onAgentChange?.(agent.id);
|
|
13028
|
-
},
|
|
13029
|
-
children: /* @__PURE__ */ jsxs("span", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
13030
|
-
/* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
|
|
13031
|
-
/* @__PURE__ */ jsx("span", { className: "block truncate", children: agent.label }),
|
|
13032
|
-
agent.description && /* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-neutral-500 dark:text-neutral-400", children: agent.description })
|
|
13033
|
-
] }),
|
|
13034
|
-
agent.id === selectedAgent && /* @__PURE__ */ jsx(
|
|
13035
|
-
Check,
|
|
13036
|
-
{
|
|
13037
|
-
className: "text-primary-600 dark:text-primary-400 h-4 w-4 shrink-0",
|
|
13038
|
-
"aria-hidden": "true"
|
|
13039
|
-
}
|
|
13040
|
-
)
|
|
13041
|
-
] })
|
|
13042
|
-
},
|
|
13043
|
-
agent.id
|
|
13044
|
-
))
|
|
13045
|
-
}
|
|
13046
|
-
) : /* @__PURE__ */ jsx("span", { "aria-hidden": "true" }),
|
|
13047
|
-
showModelSelector && modelSelectorProps && /* @__PURE__ */ jsx(
|
|
13048
|
-
ComposerModelSelector,
|
|
13049
|
-
{
|
|
13050
|
-
variant: "ghost",
|
|
13051
|
-
...modelSelectorProps,
|
|
13052
|
-
disabled: disabled || modelSelectorProps.disabled
|
|
13053
|
-
}
|
|
13054
|
-
)
|
|
13055
|
-
]
|
|
13056
|
-
}
|
|
13057
|
-
);
|
|
13058
|
-
const card = /* @__PURE__ */ jsx(
|
|
13059
|
-
"div",
|
|
13060
|
-
{
|
|
13061
|
-
"data-slot": "chat-composer-card",
|
|
13062
|
-
className: cn(
|
|
13063
|
-
"rounded-2xl border border-neutral-200 bg-white shadow-sm",
|
|
13064
|
-
"dark:border-[#2e2e30] dark:bg-[#1c1c1e]"
|
|
13065
|
-
),
|
|
13066
|
-
children: composerCard
|
|
13067
|
-
}
|
|
13068
|
-
);
|
|
13069
|
-
return /* @__PURE__ */ jsxs(
|
|
13070
|
-
"div",
|
|
13071
|
-
{
|
|
13072
|
-
"data-slot": "chat-composer",
|
|
13073
|
-
className: cn(
|
|
13074
|
-
"flex w-full flex-col",
|
|
13075
|
-
disabled && "opacity-60",
|
|
13076
|
-
className
|
|
13077
|
-
),
|
|
13078
|
-
children: [
|
|
13079
|
-
allowAttachments ? /* @__PURE__ */ jsx(
|
|
13080
|
-
DragDropZone,
|
|
13081
|
-
{
|
|
13082
|
-
onFilesDropped: addFiles,
|
|
13083
|
-
maxFiles: Number.MAX_SAFE_INTEGER,
|
|
13084
|
-
disabled,
|
|
13085
|
-
overlayLabel: dropFilesLabel,
|
|
13086
|
-
children: card
|
|
13087
|
-
}
|
|
13088
|
-
) : card,
|
|
13089
|
-
selectorsRow
|
|
13090
|
-
]
|
|
13091
|
-
}
|
|
13092
|
-
);
|
|
13093
|
-
});
|
|
13094
|
-
ChatComposer.displayName = "ChatComposer";
|
|
13095
12077
|
var MODE_META = {
|
|
13096
12078
|
add: { title: "Add problem", changeType: void 0 },
|
|
13097
12079
|
observe: { title: "Progress observation", changeType: void 0 },
|
|
@@ -13114,13 +12096,24 @@ var RELATIONSHIP_OPTIONS = [
|
|
|
13114
12096
|
];
|
|
13115
12097
|
var SEVERITIES = ["mild", "moderate", "severe"];
|
|
13116
12098
|
var CONFIDENCES = ["low", "medium", "high"];
|
|
13117
|
-
function
|
|
12099
|
+
function normalizeConditionCodingSystem(codetype) {
|
|
13118
12100
|
const ct = codetype.toUpperCase().replace(/[^A-Z0-9]/g, "");
|
|
13119
12101
|
if (ct === "ICD10" || ct === "ICD10CM") return "ICD-10-CM";
|
|
13120
12102
|
if (ct === "ICD11") return "ICD-11";
|
|
13121
|
-
if (ct === "SNOMED" || ct === "SNOMEDCT"
|
|
12103
|
+
if (ct === "SNOMED" || ct === "SNOMEDCT" || ct === "SNOMEDUS") {
|
|
12104
|
+
return "SNOMED";
|
|
12105
|
+
}
|
|
13122
12106
|
return codetype;
|
|
13123
12107
|
}
|
|
12108
|
+
function withSinglePrimary(coding) {
|
|
12109
|
+
if (coding.length === 0) return coding;
|
|
12110
|
+
const primaryIndex = coding.findIndex((entry) => entry.primary);
|
|
12111
|
+
const selectedIndex = primaryIndex >= 0 ? primaryIndex : 0;
|
|
12112
|
+
return coding.map((entry, index) => ({
|
|
12113
|
+
...entry,
|
|
12114
|
+
primary: index === selectedIndex
|
|
12115
|
+
}));
|
|
12116
|
+
}
|
|
13124
12117
|
function contextConditionCodeSearch(ctx) {
|
|
13125
12118
|
const ContextConditionCodeSearch = ({
|
|
13126
12119
|
placeholder,
|
|
@@ -13174,7 +12167,7 @@ function FieldFlag({
|
|
|
13174
12167
|
),
|
|
13175
12168
|
className: cn(
|
|
13176
12169
|
"rounded-full border px-2 py-0.5 text-[11px] font-medium transition-colors",
|
|
13177
|
-
unknown ? "border-
|
|
12170
|
+
unknown ? "border-warning/50 bg-warning/10 text-warning-800 dark:text-warning-200" : "border-border text-muted-foreground hover:text-foreground"
|
|
13178
12171
|
),
|
|
13179
12172
|
children: "Unknown"
|
|
13180
12173
|
}
|
|
@@ -13247,13 +12240,14 @@ function ConditionEditor({
|
|
|
13247
12240
|
React13.useEffect(() => {
|
|
13248
12241
|
if (!open) return;
|
|
13249
12242
|
setText(prior?.text ?? "");
|
|
13250
|
-
setCoding(prior?.coding ?? []);
|
|
12243
|
+
setCoding(withSinglePrimary(prior?.coding ?? []));
|
|
13251
12244
|
setVerification(
|
|
13252
12245
|
mode === "add" ? "unconfirmed" : prior?.verificationStatus ?? "confirmed"
|
|
13253
12246
|
);
|
|
13254
12247
|
setSeverity(prior?.severity);
|
|
13255
|
-
|
|
13256
|
-
|
|
12248
|
+
const priorOnsetDate = prior?.onset?.date;
|
|
12249
|
+
setOnsetDate(priorOnsetDate ? dateToDisplayFormat(priorOnsetDate) : "");
|
|
12250
|
+
setOnsetFuzzy(priorOnsetDate ? "" : prior?.onset?.fuzzy ?? "");
|
|
13257
12251
|
setNote("");
|
|
13258
12252
|
setProgression(false);
|
|
13259
12253
|
setFields(prior?.uncertainty?.fields ?? {});
|
|
@@ -13269,18 +12263,14 @@ function ConditionEditor({
|
|
|
13269
12263
|
});
|
|
13270
12264
|
const updateCoding = (i, patch) => setCoding((prev) => prev.map((c, j) => j === i ? { ...c, ...patch } : c));
|
|
13271
12265
|
const codingUnknown = fields.coding?.known === false;
|
|
12266
|
+
const hasInvalidOnsetDate = fields.onset?.known !== false && Boolean(onsetDate) && !isValidDate(onsetDate);
|
|
13272
12267
|
const handleCodePick = (pick) => {
|
|
13273
|
-
const system =
|
|
12268
|
+
const system = normalizeConditionCodingSystem(pick.codetype);
|
|
13274
12269
|
setCoding(
|
|
13275
|
-
(prev) => prev.some((c) => c.system === system && c.code === pick.fullcode) ? prev : [
|
|
12270
|
+
(prev) => prev.some((c) => c.system === system && c.code === pick.fullcode) ? prev : withSinglePrimary([
|
|
13276
12271
|
...prev,
|
|
13277
|
-
{
|
|
13278
|
-
|
|
13279
|
-
code: pick.fullcode,
|
|
13280
|
-
display: pick.label,
|
|
13281
|
-
primary: prev.length === 0
|
|
13282
|
-
}
|
|
13283
|
-
]
|
|
12272
|
+
{ system, code: pick.fullcode, display: pick.label }
|
|
12273
|
+
])
|
|
13284
12274
|
);
|
|
13285
12275
|
setText((prev) => prev || pick.label);
|
|
13286
12276
|
setFields((prev) => {
|
|
@@ -13303,7 +12293,7 @@ function ConditionEditor({
|
|
|
13303
12293
|
onOpenChange(false);
|
|
13304
12294
|
return;
|
|
13305
12295
|
}
|
|
13306
|
-
if (!text.trim()) return;
|
|
12296
|
+
if (!text.trim() || hasInvalidOnsetDate) return;
|
|
13307
12297
|
if (observation.trim()) onAddObservation?.(observation.trim());
|
|
13308
12298
|
const uncertainty = Object.keys(fields).length > 0 ? { fields } : void 0;
|
|
13309
12299
|
onSave?.({
|
|
@@ -13312,41 +12302,46 @@ function ConditionEditor({
|
|
|
13312
12302
|
// checks downstream. A field marked explicitly unknown must not carry a
|
|
13313
12303
|
// value (e.g. one seeded from the prior assertion): value + "unknown"
|
|
13314
12304
|
// would be contradictory, so unknown wins and the value is dropped.
|
|
13315
|
-
coding: fields.coding?.known === false ? [] :
|
|
13316
|
-
|
|
13317
|
-
|
|
13318
|
-
|
|
13319
|
-
|
|
13320
|
-
|
|
12305
|
+
coding: fields.coding?.known === false ? [] : withSinglePrimary(
|
|
12306
|
+
coding.filter((c) => c.code.trim()).map((c) => ({
|
|
12307
|
+
...c,
|
|
12308
|
+
code: c.code.trim(),
|
|
12309
|
+
display: c.display?.trim() || void 0,
|
|
12310
|
+
mappedFrom: c.mappedFrom?.trim() || void 0
|
|
12311
|
+
}))
|
|
12312
|
+
),
|
|
13321
12313
|
verificationStatus: verification,
|
|
13322
12314
|
changeType: mode === "refine" ? progression ? "progression" : "refinement" : MODE_META[mode].changeType,
|
|
13323
12315
|
supersedes: prior?.id,
|
|
13324
12316
|
severity: fields.severity?.known === false ? void 0 : severity,
|
|
13325
|
-
onset: fields.onset?.known === false ? void 0 : onsetDate || onsetFuzzy ? {
|
|
12317
|
+
onset: fields.onset?.known === false ? void 0 : onsetDate || onsetFuzzy ? {
|
|
12318
|
+
date: onsetDate ? displayFormatToDateString(onsetDate) : void 0,
|
|
12319
|
+
fuzzy: onsetFuzzy || void 0
|
|
12320
|
+
} : void 0,
|
|
13326
12321
|
uncertainty,
|
|
13327
12322
|
note: note.trim() || void 0
|
|
13328
12323
|
});
|
|
13329
12324
|
onOpenChange(false);
|
|
13330
12325
|
};
|
|
13331
|
-
const saveDisabled = mode === "relate" ? !relTarget : mode === "observe" ? !observation.trim() : !text.trim();
|
|
12326
|
+
const saveDisabled = mode === "relate" ? !relTarget : mode === "observe" ? !observation.trim() : !text.trim() || hasInvalidOnsetDate;
|
|
13332
12327
|
return /* @__PURE__ */ jsxs(
|
|
13333
12328
|
Modal,
|
|
13334
12329
|
{
|
|
13335
12330
|
open,
|
|
13336
12331
|
onOpenChange,
|
|
13337
|
-
size: "
|
|
12332
|
+
size: "2xl",
|
|
13338
12333
|
className,
|
|
13339
12334
|
children: [
|
|
13340
12335
|
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsxs(ModalTitle, { children: [
|
|
13341
12336
|
MODE_META[mode].title,
|
|
13342
12337
|
prior ? ` \u2014 ${prior.text}` : ""
|
|
13343
12338
|
] }) }),
|
|
13344
|
-
/* @__PURE__ */ jsx(ModalBody, { "data-testid": dataTestId, children: /* @__PURE__ */ jsxs("div", { className: "space-y-
|
|
12339
|
+
/* @__PURE__ */ jsx(ModalBody, { "data-testid": dataTestId, className: "space-y-5", children: /* @__PURE__ */ jsxs("div", { className: "space-y-5", children: [
|
|
13345
12340
|
mode === "revise" && /* @__PURE__ */ jsxs(
|
|
13346
12341
|
"div",
|
|
13347
12342
|
{
|
|
13348
12343
|
role: "alert",
|
|
13349
|
-
className: "flex items-start gap-2 rounded-md border
|
|
12344
|
+
className: "border-warning/30 bg-warning/10 text-warning-800 dark:text-warning-200 flex items-start gap-2 rounded-md border px-3 py-2 text-sm",
|
|
13350
12345
|
children: [
|
|
13351
12346
|
/* @__PURE__ */ jsx(AlertTriangle, { size: 16 }),
|
|
13352
12347
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
@@ -13419,21 +12414,19 @@ function ConditionEditor({
|
|
|
13419
12414
|
placeholder: "e.g. Type 1 diabetes mellitus with neuropathy"
|
|
13420
12415
|
}
|
|
13421
12416
|
),
|
|
13422
|
-
mode === "refine" && /* @__PURE__ */
|
|
13423
|
-
|
|
13424
|
-
|
|
13425
|
-
|
|
13426
|
-
|
|
13427
|
-
|
|
13428
|
-
|
|
13429
|
-
|
|
13430
|
-
|
|
13431
|
-
|
|
13432
|
-
|
|
13433
|
-
|
|
13434
|
-
|
|
13435
|
-
/* @__PURE__ */ jsxs("legend", { className: "flex w-full items-center justify-between text-sm font-medium", children: [
|
|
13436
|
-
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
|
|
12417
|
+
mode === "refine" && /* @__PURE__ */ jsx(
|
|
12418
|
+
Checkbox,
|
|
12419
|
+
{
|
|
12420
|
+
size: "sm",
|
|
12421
|
+
checked: progression,
|
|
12422
|
+
onChange: (e) => setProgression(e.target.checked),
|
|
12423
|
+
label: "Disease progressed (e.g. new complication) rather than a more specific diagnosis"
|
|
12424
|
+
}
|
|
12425
|
+
),
|
|
12426
|
+
/* @__PURE__ */ jsxs("fieldset", { className: "space-y-3", children: [
|
|
12427
|
+
/* @__PURE__ */ jsx("legend", { className: "sr-only", children: "Coding" }),
|
|
12428
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
|
|
12429
|
+
/* @__PURE__ */ jsxs("span", { className: "flex flex-wrap items-center gap-2 text-sm font-medium", children: [
|
|
13437
12430
|
"Coding",
|
|
13438
12431
|
/* @__PURE__ */ jsx(
|
|
13439
12432
|
FieldFlag,
|
|
@@ -13460,82 +12453,136 @@ function ConditionEditor({
|
|
|
13460
12453
|
}
|
|
13461
12454
|
]),
|
|
13462
12455
|
leftIcon: /* @__PURE__ */ jsx(Plus, { size: 12 }),
|
|
13463
|
-
className: "h-
|
|
12456
|
+
className: "h-8 shrink-0 text-xs",
|
|
13464
12457
|
children: "Add code"
|
|
13465
12458
|
}
|
|
13466
12459
|
)
|
|
13467
12460
|
] }),
|
|
13468
|
-
effectiveRenderCodeSearch && !(mode === "add" && !text.trim()) && /* @__PURE__ */ jsx("div", {
|
|
12461
|
+
effectiveRenderCodeSearch && !(mode === "add" && !text.trim()) && /* @__PURE__ */ jsx("div", { children: effectiveRenderCodeSearch({
|
|
13469
12462
|
placeholder: "Search codes \u2014 ICD-10-CM / SNOMED\u2026",
|
|
13470
12463
|
onPick: handleCodePick,
|
|
13471
12464
|
onFreeText: (t) => setText((prev) => prev || t)
|
|
13472
12465
|
}) }),
|
|
13473
12466
|
coding.length === 0 && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Optional \u2014 a name-only problem is valid. Codes can be added any time." }),
|
|
13474
|
-
coding.
|
|
13475
|
-
|
|
13476
|
-
|
|
13477
|
-
|
|
13478
|
-
|
|
13479
|
-
|
|
13480
|
-
|
|
13481
|
-
|
|
13482
|
-
})
|
|
13483
|
-
|
|
13484
|
-
|
|
13485
|
-
|
|
13486
|
-
|
|
13487
|
-
|
|
13488
|
-
|
|
13489
|
-
|
|
13490
|
-
|
|
13491
|
-
|
|
13492
|
-
|
|
13493
|
-
|
|
13494
|
-
|
|
13495
|
-
|
|
13496
|
-
|
|
13497
|
-
|
|
13498
|
-
|
|
13499
|
-
),
|
|
13500
|
-
/* @__PURE__ */ jsx(
|
|
13501
|
-
Input,
|
|
13502
|
-
{
|
|
13503
|
-
"aria-label": `Display ${i + 1}`,
|
|
13504
|
-
value: c.display ?? "",
|
|
13505
|
-
onChange: (e) => updateCoding(i, { display: e.target.value }),
|
|
13506
|
-
placeholder: "Display",
|
|
13507
|
-
disabled: codingUnknown,
|
|
13508
|
-
className: "min-w-32 flex-1"
|
|
13509
|
-
}
|
|
13510
|
-
),
|
|
13511
|
-
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs", children: [
|
|
13512
|
-
/* @__PURE__ */ jsx(
|
|
13513
|
-
"input",
|
|
13514
|
-
{
|
|
13515
|
-
type: "radio",
|
|
13516
|
-
name: "primary-coding",
|
|
13517
|
-
checked: Boolean(c.primary),
|
|
13518
|
-
disabled: codingUnknown,
|
|
13519
|
-
onChange: () => setCoding(
|
|
13520
|
-
(prev) => prev.map((cc, j) => ({ ...cc, primary: j === i }))
|
|
13521
|
-
),
|
|
13522
|
-
className: "accent-primary-600"
|
|
13523
|
-
}
|
|
12467
|
+
coding.length > 0 && /* @__PURE__ */ jsxs(
|
|
12468
|
+
"div",
|
|
12469
|
+
{
|
|
12470
|
+
"aria-hidden": "true",
|
|
12471
|
+
"data-slot": "condition-coding-header",
|
|
12472
|
+
className: "text-muted-foreground hidden grid-cols-[minmax(8rem,1.1fr)_minmax(7rem,0.9fr)_minmax(10rem,1.5fr)_5.5rem_2.5rem] items-center gap-2 px-1 text-xs font-medium sm:!grid",
|
|
12473
|
+
children: [
|
|
12474
|
+
/* @__PURE__ */ jsx("span", { children: "System" }),
|
|
12475
|
+
/* @__PURE__ */ jsx("span", { children: "Code" }),
|
|
12476
|
+
/* @__PURE__ */ jsx("span", { children: "Display" }),
|
|
12477
|
+
/* @__PURE__ */ jsx("span", { className: "text-center", children: "Primary code" }),
|
|
12478
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Actions" })
|
|
12479
|
+
]
|
|
12480
|
+
}
|
|
12481
|
+
),
|
|
12482
|
+
coding.length > 0 && /* @__PURE__ */ jsx(
|
|
12483
|
+
RadioGroup,
|
|
12484
|
+
{
|
|
12485
|
+
name: "primary-coding",
|
|
12486
|
+
label: "Primary display code",
|
|
12487
|
+
value: String(
|
|
12488
|
+
Math.max(
|
|
12489
|
+
0,
|
|
12490
|
+
coding.findIndex((entry) => entry.primary)
|
|
12491
|
+
)
|
|
13524
12492
|
),
|
|
13525
|
-
|
|
13526
|
-
|
|
13527
|
-
|
|
13528
|
-
|
|
13529
|
-
|
|
13530
|
-
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
|
|
13535
|
-
|
|
13536
|
-
|
|
13537
|
-
|
|
13538
|
-
|
|
12493
|
+
onValueChange: (value) => {
|
|
12494
|
+
const selectedIndex = Number(value);
|
|
12495
|
+
setCoding(
|
|
12496
|
+
(prev) => prev.map((entry, index) => ({
|
|
12497
|
+
...entry,
|
|
12498
|
+
primary: index === selectedIndex
|
|
12499
|
+
}))
|
|
12500
|
+
);
|
|
12501
|
+
},
|
|
12502
|
+
size: "sm",
|
|
12503
|
+
className: "gap-2 [&_[data-slot=radio-group-items]]:gap-2 sm:[&_[data-slot=radio-group-legend]]:sr-only",
|
|
12504
|
+
children: coding.map((c, i) => /* @__PURE__ */ jsxs(
|
|
12505
|
+
"div",
|
|
12506
|
+
{
|
|
12507
|
+
"data-slot": "condition-coding-row",
|
|
12508
|
+
className: "border-border/70 grid grid-cols-1 gap-2 rounded-md border p-2 sm:grid-cols-[minmax(8rem,1.1fr)_minmax(7rem,0.9fr)_minmax(10rem,1.5fr)_5.5rem_2.5rem] sm:items-center sm:border-0 sm:p-0",
|
|
12509
|
+
children: [
|
|
12510
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
12511
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs sm:hidden", children: "System" }),
|
|
12512
|
+
/* @__PURE__ */ jsx(
|
|
12513
|
+
Select,
|
|
12514
|
+
{
|
|
12515
|
+
"aria-label": `Coding system ${i + 1}`,
|
|
12516
|
+
options: CODING_SYSTEMS.map((s) => ({
|
|
12517
|
+
value: s,
|
|
12518
|
+
label: s
|
|
12519
|
+
})),
|
|
12520
|
+
value: c.system,
|
|
12521
|
+
onValueChange: (v) => updateCoding(i, { system: v }),
|
|
12522
|
+
disabled: codingUnknown
|
|
12523
|
+
}
|
|
12524
|
+
)
|
|
12525
|
+
] }),
|
|
12526
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
12527
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs sm:hidden", children: "Code" }),
|
|
12528
|
+
/* @__PURE__ */ jsx(
|
|
12529
|
+
Input,
|
|
12530
|
+
{
|
|
12531
|
+
"aria-label": `Code ${i + 1}`,
|
|
12532
|
+
value: c.code,
|
|
12533
|
+
onChange: (e) => updateCoding(i, { code: e.target.value }),
|
|
12534
|
+
placeholder: "Code",
|
|
12535
|
+
disabled: codingUnknown,
|
|
12536
|
+
className: "font-mono"
|
|
12537
|
+
}
|
|
12538
|
+
)
|
|
12539
|
+
] }),
|
|
12540
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
12541
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs sm:hidden", children: "Display" }),
|
|
12542
|
+
/* @__PURE__ */ jsx(
|
|
12543
|
+
Input,
|
|
12544
|
+
{
|
|
12545
|
+
"aria-label": `Display ${i + 1}`,
|
|
12546
|
+
value: c.display ?? "",
|
|
12547
|
+
onChange: (e) => updateCoding(i, { display: e.target.value }),
|
|
12548
|
+
placeholder: "Display",
|
|
12549
|
+
disabled: codingUnknown
|
|
12550
|
+
}
|
|
12551
|
+
)
|
|
12552
|
+
] }),
|
|
12553
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-h-10 items-center gap-1.5 text-xs sm:justify-center", children: [
|
|
12554
|
+
/* @__PURE__ */ jsx(
|
|
12555
|
+
Radio,
|
|
12556
|
+
{
|
|
12557
|
+
value: String(i),
|
|
12558
|
+
"aria-label": `Primary code: ${c.system} ${c.code || `row ${i + 1}`}`,
|
|
12559
|
+
disabled: codingUnknown
|
|
12560
|
+
}
|
|
12561
|
+
),
|
|
12562
|
+
/* @__PURE__ */ jsx("span", { className: "sm:sr-only", children: "Primary code" })
|
|
12563
|
+
] }),
|
|
12564
|
+
/* @__PURE__ */ jsx(
|
|
12565
|
+
Button,
|
|
12566
|
+
{
|
|
12567
|
+
variant: "ghost",
|
|
12568
|
+
size: "icon",
|
|
12569
|
+
"aria-label": `Remove code ${i + 1}`,
|
|
12570
|
+
disabled: codingUnknown,
|
|
12571
|
+
onClick: () => setCoding(
|
|
12572
|
+
(prev) => withSinglePrimary(
|
|
12573
|
+
prev.filter((_, index) => index !== i)
|
|
12574
|
+
)
|
|
12575
|
+
),
|
|
12576
|
+
className: "h-10 w-10 justify-self-start sm:justify-self-center",
|
|
12577
|
+
children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
|
|
12578
|
+
}
|
|
12579
|
+
)
|
|
12580
|
+
]
|
|
12581
|
+
},
|
|
12582
|
+
i
|
|
12583
|
+
))
|
|
12584
|
+
}
|
|
12585
|
+
)
|
|
13539
12586
|
] }),
|
|
13540
12587
|
/* @__PURE__ */ jsx(
|
|
13541
12588
|
Select,
|
|
@@ -13546,9 +12593,39 @@ function ConditionEditor({
|
|
|
13546
12593
|
onValueChange: (v) => setVerification(v)
|
|
13547
12594
|
}
|
|
13548
12595
|
),
|
|
13549
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
13550
|
-
/* @__PURE__ */ jsxs("
|
|
13551
|
-
"Severity",
|
|
12596
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-end gap-x-4 gap-y-2", children: [
|
|
12597
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
12598
|
+
/* @__PURE__ */ jsx("span", { className: "block text-sm font-medium", children: "Severity" }),
|
|
12599
|
+
/* @__PURE__ */ jsx(
|
|
12600
|
+
"div",
|
|
12601
|
+
{
|
|
12602
|
+
role: "group",
|
|
12603
|
+
"aria-label": "Severity",
|
|
12604
|
+
className: "border-border inline-flex items-center overflow-hidden rounded-md border",
|
|
12605
|
+
children: SEVERITIES.map((s) => {
|
|
12606
|
+
const active = severity === s;
|
|
12607
|
+
return /* @__PURE__ */ jsx(
|
|
12608
|
+
"button",
|
|
12609
|
+
{
|
|
12610
|
+
type: "button",
|
|
12611
|
+
"aria-pressed": active,
|
|
12612
|
+
disabled: fields.severity?.known === false,
|
|
12613
|
+
onClick: () => setSeverity(active ? void 0 : s),
|
|
12614
|
+
className: cn(
|
|
12615
|
+
"border-border border-s px-2.5 py-1 text-xs font-medium capitalize transition-colors first:border-s-0",
|
|
12616
|
+
"disabled:opacity-40",
|
|
12617
|
+
active ? "bg-primary-600 text-white" : "bg-background text-muted-foreground hover:text-foreground"
|
|
12618
|
+
),
|
|
12619
|
+
children: s
|
|
12620
|
+
},
|
|
12621
|
+
s
|
|
12622
|
+
);
|
|
12623
|
+
})
|
|
12624
|
+
}
|
|
12625
|
+
)
|
|
12626
|
+
] }),
|
|
12627
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
12628
|
+
/* @__PURE__ */ jsx("span", { className: "block text-sm font-medium", children: "Certainty" }),
|
|
13552
12629
|
/* @__PURE__ */ jsx(
|
|
13553
12630
|
FieldFlag,
|
|
13554
12631
|
{
|
|
@@ -13558,34 +12635,7 @@ function ConditionEditor({
|
|
|
13558
12635
|
hasValue: Boolean(severity)
|
|
13559
12636
|
}
|
|
13560
12637
|
)
|
|
13561
|
-
] })
|
|
13562
|
-
/* @__PURE__ */ jsx(
|
|
13563
|
-
"div",
|
|
13564
|
-
{
|
|
13565
|
-
role: "group",
|
|
13566
|
-
"aria-label": "Severity",
|
|
13567
|
-
className: "border-border inline-flex items-center overflow-hidden rounded-md border",
|
|
13568
|
-
children: SEVERITIES.map((s) => {
|
|
13569
|
-
const active = severity === s;
|
|
13570
|
-
return /* @__PURE__ */ jsx(
|
|
13571
|
-
"button",
|
|
13572
|
-
{
|
|
13573
|
-
type: "button",
|
|
13574
|
-
"aria-pressed": active,
|
|
13575
|
-
disabled: fields.severity?.known === false,
|
|
13576
|
-
onClick: () => setSeverity(active ? void 0 : s),
|
|
13577
|
-
className: cn(
|
|
13578
|
-
"border-border border-s px-2.5 py-1 text-xs font-medium capitalize transition-colors first:border-s-0",
|
|
13579
|
-
"disabled:opacity-40",
|
|
13580
|
-
active ? "bg-primary-600 text-white" : "bg-background text-muted-foreground hover:text-foreground"
|
|
13581
|
-
),
|
|
13582
|
-
children: s
|
|
13583
|
-
},
|
|
13584
|
-
s
|
|
13585
|
-
);
|
|
13586
|
-
})
|
|
13587
|
-
}
|
|
13588
|
-
)
|
|
12638
|
+
] })
|
|
13589
12639
|
] }),
|
|
13590
12640
|
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
13591
12641
|
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2 text-sm font-medium", children: [
|
|
@@ -13600,28 +12650,33 @@ function ConditionEditor({
|
|
|
13600
12650
|
}
|
|
13601
12651
|
)
|
|
13602
12652
|
] }),
|
|
13603
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
12653
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-end gap-2 sm:grid-cols-[minmax(10rem,0.8fr)_auto_minmax(14rem,1.2fr)]", children: [
|
|
13604
12654
|
/* @__PURE__ */ jsx(
|
|
13605
|
-
|
|
12655
|
+
DateInput,
|
|
13606
12656
|
{
|
|
13607
|
-
type: "date",
|
|
13608
12657
|
"aria-label": "Onset date (exact)",
|
|
13609
12658
|
value: onsetDate,
|
|
13610
|
-
onChange: (
|
|
12659
|
+
onChange: (value) => {
|
|
12660
|
+
setOnsetDate(value);
|
|
12661
|
+
if (value) setOnsetFuzzy("");
|
|
12662
|
+
},
|
|
13611
12663
|
disabled: fields.onset?.known === false,
|
|
13612
|
-
|
|
12664
|
+
validateOnBlur: true,
|
|
12665
|
+
width: "full"
|
|
13613
12666
|
}
|
|
13614
12667
|
),
|
|
13615
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs", children: "or" }),
|
|
12668
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground pb-3 text-center text-xs", children: "or" }),
|
|
13616
12669
|
/* @__PURE__ */ jsx(
|
|
13617
12670
|
Input,
|
|
13618
12671
|
{
|
|
13619
12672
|
"aria-label": "Onset (fuzzy)",
|
|
13620
12673
|
value: onsetFuzzy,
|
|
13621
|
-
onChange: (e) =>
|
|
12674
|
+
onChange: (e) => {
|
|
12675
|
+
setOnsetFuzzy(e.target.value);
|
|
12676
|
+
if (e.target.value) setOnsetDate("");
|
|
12677
|
+
},
|
|
13622
12678
|
disabled: fields.onset?.known === false,
|
|
13623
|
-
placeholder: 'Fuzzy \u2014 "since her twenties", "~3 months ago"'
|
|
13624
|
-
className: "min-w-48 flex-1"
|
|
12679
|
+
placeholder: 'Fuzzy \u2014 "since her twenties", "~3 months ago"'
|
|
13625
12680
|
}
|
|
13626
12681
|
)
|
|
13627
12682
|
] })
|
|
@@ -13642,7 +12697,7 @@ function ConditionEditor({
|
|
|
13642
12697
|
"Uncertainty recorded:",
|
|
13643
12698
|
" ",
|
|
13644
12699
|
Object.entries(fields).map(
|
|
13645
|
-
([k, f]) => f?.known === false ? `${k} unknown` : `${
|
|
12700
|
+
([k, f]) => f?.known === false ? `${k} unknown` : `${f?.confidence ?? "unspecified"} confidence in ${k}`
|
|
13646
12701
|
).join(", ")
|
|
13647
12702
|
] })
|
|
13648
12703
|
] })
|
|
@@ -17845,7 +16900,7 @@ function DateRangePicker({
|
|
|
17845
16900
|
className: "hover:bg-muted rounded-md p-1 transition-colors",
|
|
17846
16901
|
"aria-label": "Next month",
|
|
17847
16902
|
"data-slot": "date-range-nav",
|
|
17848
|
-
children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 rtl:-scale-x-100" })
|
|
16903
|
+
children: /* @__PURE__ */ jsx(ChevronRight$1, { className: "h-4 w-4 rtl:-scale-x-100" })
|
|
17849
16904
|
}
|
|
17850
16905
|
)
|
|
17851
16906
|
]
|
|
@@ -17976,7 +17031,7 @@ function DateRangePicker({
|
|
|
17976
17031
|
className: "hover:bg-muted rounded-md p-1 transition-colors md:hidden",
|
|
17977
17032
|
"aria-label": "Next month",
|
|
17978
17033
|
"data-slot": "date-range-nav",
|
|
17979
|
-
children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 rtl:-scale-x-100" })
|
|
17034
|
+
children: /* @__PURE__ */ jsx(ChevronRight$1, { className: "h-4 w-4 rtl:-scale-x-100" })
|
|
17980
17035
|
}
|
|
17981
17036
|
)
|
|
17982
17037
|
]
|
|
@@ -18011,7 +17066,7 @@ function DateRangePicker({
|
|
|
18011
17066
|
className: "hover:bg-muted rounded-md p-1 transition-colors",
|
|
18012
17067
|
"aria-label": "Next month",
|
|
18013
17068
|
"data-slot": "date-range-nav",
|
|
18014
|
-
children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 rtl:-scale-x-100" })
|
|
17069
|
+
children: /* @__PURE__ */ jsx(ChevronRight$1, { className: "h-4 w-4 rtl:-scale-x-100" })
|
|
18015
17070
|
}
|
|
18016
17071
|
)
|
|
18017
17072
|
]
|
|
@@ -18976,7 +18031,7 @@ function PhotoPreview({
|
|
|
18976
18031
|
{
|
|
18977
18032
|
variant: "primary",
|
|
18978
18033
|
onClick: onConfirm,
|
|
18979
|
-
leftIcon: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }),
|
|
18034
|
+
leftIcon: /* @__PURE__ */ jsx(Check$1, { className: "h-4 w-4" }),
|
|
18980
18035
|
children: "Use this photo"
|
|
18981
18036
|
}
|
|
18982
18037
|
)
|
|
@@ -19207,7 +18262,7 @@ function WebcamModal({
|
|
|
19207
18262
|
WebcamModal.displayName = "WebcamModal";
|
|
19208
18263
|
|
|
19209
18264
|
// src/components/DocumentScanner/types.ts
|
|
19210
|
-
var
|
|
18265
|
+
var DEFAULT_ACCEPTED_FILE_TYPES2 = [
|
|
19211
18266
|
"image/jpeg",
|
|
19212
18267
|
"image/jpg",
|
|
19213
18268
|
"image/png",
|
|
@@ -19243,7 +18298,7 @@ function createPreviewUrl(file) {
|
|
|
19243
18298
|
return URL.createObjectURL(file);
|
|
19244
18299
|
}
|
|
19245
18300
|
function useFileUpload({
|
|
19246
|
-
acceptedFileTypes = [...
|
|
18301
|
+
acceptedFileTypes = [...DEFAULT_ACCEPTED_FILE_TYPES2],
|
|
19247
18302
|
maxFileSizeMb = DEFAULT_MAX_FILE_SIZE_MB,
|
|
19248
18303
|
multiple = false,
|
|
19249
18304
|
onValidationError
|
|
@@ -19326,7 +18381,7 @@ function DocumentScanner({
|
|
|
19326
18381
|
onScan,
|
|
19327
18382
|
onResult,
|
|
19328
18383
|
multiple = false,
|
|
19329
|
-
acceptedFileTypes = [...
|
|
18384
|
+
acceptedFileTypes = [...DEFAULT_ACCEPTED_FILE_TYPES2],
|
|
19330
18385
|
maxFileSizeMb = DEFAULT_MAX_FILE_SIZE_MB,
|
|
19331
18386
|
disabled = false,
|
|
19332
18387
|
enableWebcam = true,
|
|
@@ -21825,7 +20880,7 @@ function EmployeeProfileCard({
|
|
|
21825
20880
|
"flex h-5 w-5 items-center justify-center rounded-full text-white",
|
|
21826
20881
|
employee.isActive ? "bg-success" : "bg-destructive"
|
|
21827
20882
|
),
|
|
21828
|
-
children: employee.isActive ? /* @__PURE__ */ jsx(Check
|
|
20883
|
+
children: employee.isActive ? /* @__PURE__ */ jsx(Check, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx(X, { className: "h-3 w-3" })
|
|
21829
20884
|
}
|
|
21830
20885
|
),
|
|
21831
20886
|
/* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold", children: fullName })
|
|
@@ -21939,7 +20994,7 @@ function EmployeeProfileCard({
|
|
|
21939
20994
|
"data-cy": "header-payment-status",
|
|
21940
20995
|
"data-slot": "employee-card-detail-row",
|
|
21941
20996
|
children: employee.isPaid ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
21942
|
-
/* @__PURE__ */ jsx(Check
|
|
20997
|
+
/* @__PURE__ */ jsx(Check, { className: "text-success-700 dark:text-success-400 h-4 w-4" }),
|
|
21943
20998
|
/* @__PURE__ */ jsx("span", { className: "text-success-700 dark:text-success-400", children: paid })
|
|
21944
20999
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
21945
21000
|
/* @__PURE__ */ jsx(Clock$1, { className: "text-muted-foreground h-4 w-4" }),
|
|
@@ -24252,7 +23307,7 @@ var HealthSurveillance = React13.forwardRef(
|
|
|
24252
23307
|
"aria-expanded": isOpen,
|
|
24253
23308
|
"aria-label": `${isOpen ? "Hide" : "Show"} orders for ${programLabel(item.key)}`,
|
|
24254
23309
|
className: "text-muted-foreground hover:text-foreground shrink-0",
|
|
24255
|
-
children: isOpen ? /* @__PURE__ */ jsx(ChevronDown, { size: 14 }) : /* @__PURE__ */ jsx(ChevronRight
|
|
23310
|
+
children: isOpen ? /* @__PURE__ */ jsx(ChevronDown, { size: 14 }) : /* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "rtl:-scale-x-100" })
|
|
24256
23311
|
}
|
|
24257
23312
|
) : /* @__PURE__ */ jsx("span", { className: "w-3.5 shrink-0" }),
|
|
24258
23313
|
/* @__PURE__ */ jsx(Badge, { variant: badge.variant, size: "sm", children: badge.label }),
|
|
@@ -31660,7 +30715,7 @@ function PermissionItem({
|
|
|
31660
30715
|
"aria-expanded": isExpanded,
|
|
31661
30716
|
"aria-label": isExpanded ? `Collapse ${permission.name}` : `Expand ${permission.name}`,
|
|
31662
30717
|
"data-slot": "perm-item-toggle",
|
|
31663
|
-
children: isExpanded ? /* @__PURE__ */ jsx(ChevronDown$1, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronRight, { className: "text-muted-foreground h-4 w-4 rtl:-scale-x-100" })
|
|
30718
|
+
children: isExpanded ? /* @__PURE__ */ jsx(ChevronDown$1, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronRight$1, { className: "text-muted-foreground h-4 w-4 rtl:-scale-x-100" })
|
|
31664
30719
|
}
|
|
31665
30720
|
),
|
|
31666
30721
|
!hasChildren && /* @__PURE__ */ jsx("span", { className: "w-5" }),
|
|
@@ -31804,7 +30859,7 @@ function PermissionsEditor({
|
|
|
31804
30859
|
className: "hover:bg-muted/50 -ms-2 flex w-full items-center gap-2 rounded py-2 ps-2 text-start",
|
|
31805
30860
|
"data-slot": "perm-group-header",
|
|
31806
30861
|
children: [
|
|
31807
|
-
expandedGroups.has(group.id) ? /* @__PURE__ */ jsx(ChevronDown$1, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronRight, { className: "text-muted-foreground h-4 w-4 rtl:-scale-x-100" }),
|
|
30862
|
+
expandedGroups.has(group.id) ? /* @__PURE__ */ jsx(ChevronDown$1, { className: "text-muted-foreground h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronRight$1, { className: "text-muted-foreground h-4 w-4 rtl:-scale-x-100" }),
|
|
31808
30863
|
/* @__PURE__ */ jsx("span", { className: "font-semibold", "data-slot": "perm-group-name", children: group.name })
|
|
31809
30864
|
]
|
|
31810
30865
|
}
|
|
@@ -44852,7 +43907,7 @@ function WebChartReportViewer({
|
|
|
44852
43907
|
className: "flex items-center gap-3",
|
|
44853
43908
|
children: [
|
|
44854
43909
|
/* @__PURE__ */ jsx(ModalTitle, { children: currentReport?.name || "Report Results" }),
|
|
44855
|
-
reportResult?.error ? /* @__PURE__ */ jsx(AlertTriangle$1, { className: "h-5 w-5 text-yellow-500" }) : reportResult?.success ? /* @__PURE__ */ jsx(Check
|
|
43910
|
+
reportResult?.error ? /* @__PURE__ */ jsx(AlertTriangle$1, { className: "h-5 w-5 text-yellow-500" }) : reportResult?.success ? /* @__PURE__ */ jsx(Check, { className: "h-5 w-5 text-green-500" }) : null
|
|
44856
43911
|
]
|
|
44857
43912
|
}
|
|
44858
43913
|
),
|
|
@@ -45310,6 +44365,6 @@ function WebsiteInputGroup({
|
|
|
45310
44365
|
}
|
|
45311
44366
|
WebsiteInputGroup.displayName = "WebsiteInputGroup";
|
|
45312
44367
|
|
|
45313
|
-
export { AIChat, AIChatModal, AIChatTrigger, AIReconciliationPanel, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, Assessment, AuthButtons, AuthDialog, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, ButtonGroup, CHANGE_TYPE_LABELS, CONCERN_STATUS_LABELS, CSVColumnMapper, CSVFileUpload, CardSkeleton, CaseContextBar, CaseManagementHeader,
|
|
44368
|
+
export { AIChat, AIChatModal, AIChatTrigger, AIReconciliationPanel, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, Assessment, AuthButtons, AuthDialog, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, ButtonGroup, CHANGE_TYPE_LABELS, CONCERN_STATUS_LABELS, CSVColumnMapper, CSVFileUpload, CardSkeleton, CaseContextBar, CaseManagementHeader, CheckrIntegration, ClaimListingButton, ClaimProviderForm, CodingChips, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ConditionEditor, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, CookieConsentBanner, CopyrightText, CountBadge, CountryDropdown, CreateInvoiceModal, CreateReferralModal, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DialogOverlay, DisclaimerText, DockablePanel, DocumentDetectionOverlay, DocumentScanner, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HandsFreeChat, HealthSurveillance, HelpSupportPanel, HeroSearchBar, HeyOzwell, HeyOzwellToggle, HoursSummary, ImagingOrderEditor, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LabOrderEditor, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MODEL_MANIFEST, MaintenancePage, MobileBackButton, MobileMenuButton, MobileMenuPanel, ModelInfoList, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, ORDER_TYPE_META, ORDER_TYPE_SEARCH_DOMAINS, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderEditor, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, OzwellChat, OzwellSettingsMenu, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PillSelect, PresentingProblems, ProblemList, ProcedureOrderEditor, ProductVersion, ProductVersionBadge, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, RELEVANCE_LABELS, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, ReferralEditor, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ReportTimeRange, ResultsEntryCard, ResultsEntryForm, ResultsEntryModal, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, ServerErrorPage, ServiceAccordion, ServiceBadge, ServiceBadgeGroup, ServiceCard, ServiceCategoryBadge, ServiceGeneralSettings, ServiceGrid, ServiceLink, ServiceList, ServiceMultiSelect, ServicePicker, ServicePricingManager, ServiceSelect, ServiceShippingSettings, ServiceTagCloud, ServiceTagCloudBadges, SetupServiceModal, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMobileToggle, SidebarNav, SidebarNavGroup, SidebarNavItem, SidebarProvider, SidebarSearch, SidebarToggle, SimpleFooter, SiteFooter, SiteHeader, SiteLogo, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, UncertaintyBadge, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, VisitScribe, VoiceManager, VoiceSetup, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, askOzwell, askOzwellStream, attributeSegments, calculateDateRange, centroid, chime, clearVoiceprints, clearWhatPrints, clusterEmbeddings, concernGroupKey, concernHistoryContent, cosine, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, currentAssertion, decodeTo16kMono, defaultCaseManagementHeaderLabels, defaultOrderTabs, defaultReconciliationIsEqual, endsWithDone, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, generateId, getDefaultPresets, getDictationLoad, getExtendedPresets, getGoogleMapsSearchUrl, getGoogleMapsUrl, getOzwellConfig, getVoiceprints, getWakeWarm, inferSpeakerRoles, isConditionCodetype, isOzwellConfigured, isValidUrl, isWhisperLoaded, labelClusters, loadWhatPrints, medicationToOrder, mergeTurns, normalizeConditionCodingSystem, openRollingRecorder, orderToMedication, orderTypeForCodetype, panelVariants as reconciliationPanelVariants, saveWhatPrints, setVoiceprints, stripStopPhrase, subscribeDictationLoad, subscribeWakeWarm, toOzwellMessages, transcribeBlob, transcribeGate, transcribeSamples, transcribeSegments, transcribeServer, trimTrailingStopPhrase, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDiarization, useDocumentDetection, useDropzone, useFileUpload, useHeyOzwell, useOptionalToast, useSidebar, useSpeakerVerify, useToast, useVisitScribe, useVoiceSetup, useWakeWord, warmStopGate, warmWakeModels, warmWhisper, widgetVariants };
|
|
45314
44369
|
//# sourceMappingURL=index.js.map
|
|
45315
44370
|
//# sourceMappingURL=index.js.map
|