@mieweb/ui 0.7.2-dev.3 → 0.7.2-dev.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/brands/index.cjs +17 -17
  2. package/dist/brands/index.js +4 -4
  3. package/dist/{chunk-TH5GXHVQ.js → chunk-6MMIWE7H.js} +8 -3
  4. package/dist/chunk-6MMIWE7H.js.map +1 -0
  5. package/dist/chunk-7C226TQI.js +76 -0
  6. package/dist/chunk-7C226TQI.js.map +1 -0
  7. package/dist/{chunk-VA7QN4DX.cjs → chunk-JDHIBJ5K.cjs} +2 -2
  8. package/dist/{chunk-VA7QN4DX.cjs.map → chunk-JDHIBJ5K.cjs.map} +1 -1
  9. package/dist/{chunk-HVIQZZ47.cjs → chunk-LJDBD2DD.cjs} +8 -3
  10. package/dist/chunk-LJDBD2DD.cjs.map +1 -0
  11. package/dist/{chunk-BCJFOSZX.js → chunk-MO65V64I.js} +2 -2
  12. package/dist/{chunk-BCJFOSZX.js.map → chunk-MO65V64I.js.map} +1 -1
  13. package/dist/chunk-SEN7FIF3.cjs +158 -0
  14. package/dist/chunk-SEN7FIF3.cjs.map +1 -0
  15. package/dist/components/Q/index.cjs +109 -0
  16. package/dist/components/Q/index.cjs.map +1 -0
  17. package/dist/components/Q/index.d.cts +27 -0
  18. package/dist/components/Q/index.d.ts +27 -0
  19. package/dist/components/Q/index.js +4 -0
  20. package/dist/components/Q/index.js.map +1 -0
  21. package/dist/index.cjs +355 -290
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +20 -2
  24. package/dist/index.d.ts +20 -2
  25. package/dist/index.js +87 -22
  26. package/dist/index.js.map +1 -1
  27. package/dist/q.cjs +109 -0
  28. package/dist/q.cjs.map +1 -0
  29. package/dist/q.d.cts +5 -0
  30. package/dist/q.d.ts +5 -0
  31. package/dist/q.js +4 -0
  32. package/dist/q.js.map +1 -0
  33. package/dist/styles.css +1 -1
  34. package/dist/tailwind-preset.cjs +4 -4
  35. package/dist/tailwind-preset.js +1 -1
  36. package/package.json +19 -4
  37. package/dist/chunk-HVIQZZ47.cjs.map +0 -1
  38. package/dist/chunk-TH5GXHVQ.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -2969,6 +2969,8 @@ interface CasePatient {
2969
2969
  mrn?: string;
2970
2970
  /** Date of birth (display string) */
2971
2971
  dob?: string;
2972
+ /** Age shown next to the DOB, e.g. 48 */
2973
+ age?: number | string;
2972
2974
  }
2973
2975
  /** One label/value pair in the expandable case details grid */
2974
2976
  interface CaseDetailItem {
@@ -2985,6 +2987,12 @@ interface CaseManagementHeaderLabels {
2985
2987
  mrn: string;
2986
2988
  /** DOB field label */
2987
2989
  dob: string;
2990
+ /** Age rendered next to the DOB, e.g. `(48 y.o.)` */
2991
+ formatAge: (age: number | string) => string;
2992
+ /** Label of the built-in add-case-note action */
2993
+ addCaseNote: string;
2994
+ /** Label of the built-in close-case action */
2995
+ closeCase: string;
2988
2996
  /** Accessible name of the back button */
2989
2997
  back: string;
2990
2998
  /** Accessible name of the details toggle while collapsed */
@@ -3035,7 +3043,17 @@ interface CaseManagementHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivE
3035
3043
  showBackButton?: boolean;
3036
3044
  /** Called when the back button is clicked */
3037
3045
  onBack?: () => void;
3038
- /** Slot for action buttons on the right, e.g. "Add Case Note" */
3046
+ /**
3047
+ * Renders the built-in "Add Case Note" action (text button on `md`+, an
3048
+ * icon-only button below) and is called when it is clicked.
3049
+ */
3050
+ onAddCaseNote?: () => void;
3051
+ /**
3052
+ * Renders the built-in "Close Case" action (text button on `md`+, an
3053
+ * icon-only button below) and is called when it is clicked.
3054
+ */
3055
+ onCloseCase?: () => void;
3056
+ /** Slot for extra action buttons, rendered after the built-in actions */
3039
3057
  actions?: React$1.ReactNode;
3040
3058
  /** Names of other users currently editing the case, shown on the context bar */
3041
3059
  editingUsers?: string[];
@@ -3083,7 +3101,7 @@ interface CaseManagementHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivE
3083
3101
  * { label: 'Case Manager', value: 'Unassigned' },
3084
3102
  * { label: 'Opened', value: 'Jan 21, 2025' },
3085
3103
  * ]}
3086
- * actions={<Button variant="ghost">+ Add Case Note</Button>}
3104
+ * onAddCaseNote={() => openNoteEditor()}
3087
3105
  * />
3088
3106
  * ```
3089
3107
  */
package/dist/index.d.ts CHANGED
@@ -2969,6 +2969,8 @@ interface CasePatient {
2969
2969
  mrn?: string;
2970
2970
  /** Date of birth (display string) */
2971
2971
  dob?: string;
2972
+ /** Age shown next to the DOB, e.g. 48 */
2973
+ age?: number | string;
2972
2974
  }
2973
2975
  /** One label/value pair in the expandable case details grid */
2974
2976
  interface CaseDetailItem {
@@ -2985,6 +2987,12 @@ interface CaseManagementHeaderLabels {
2985
2987
  mrn: string;
2986
2988
  /** DOB field label */
2987
2989
  dob: string;
2990
+ /** Age rendered next to the DOB, e.g. `(48 y.o.)` */
2991
+ formatAge: (age: number | string) => string;
2992
+ /** Label of the built-in add-case-note action */
2993
+ addCaseNote: string;
2994
+ /** Label of the built-in close-case action */
2995
+ closeCase: string;
2988
2996
  /** Accessible name of the back button */
2989
2997
  back: string;
2990
2998
  /** Accessible name of the details toggle while collapsed */
@@ -3035,7 +3043,17 @@ interface CaseManagementHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivE
3035
3043
  showBackButton?: boolean;
3036
3044
  /** Called when the back button is clicked */
3037
3045
  onBack?: () => void;
3038
- /** Slot for action buttons on the right, e.g. "Add Case Note" */
3046
+ /**
3047
+ * Renders the built-in "Add Case Note" action (text button on `md`+, an
3048
+ * icon-only button below) and is called when it is clicked.
3049
+ */
3050
+ onAddCaseNote?: () => void;
3051
+ /**
3052
+ * Renders the built-in "Close Case" action (text button on `md`+, an
3053
+ * icon-only button below) and is called when it is clicked.
3054
+ */
3055
+ onCloseCase?: () => void;
3056
+ /** Slot for extra action buttons, rendered after the built-in actions */
3039
3057
  actions?: React$1.ReactNode;
3040
3058
  /** Names of other users currently editing the case, shown on the context bar */
3041
3059
  editingUsers?: string[];
@@ -3083,7 +3101,7 @@ interface CaseManagementHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivE
3083
3101
  * { label: 'Case Manager', value: 'Unassigned' },
3084
3102
  * { label: 'Opened', value: 'Jan 21, 2025' },
3085
3103
  * ]}
3086
- * actions={<Button variant="ghost">+ Add Case Note</Button>}
3104
+ * onAddCaseNote={() => openNoteEditor()}
3087
3105
  * />
3088
3106
  * ```
3089
3107
  */
package/dist/index.js CHANGED
@@ -1,16 +1,23 @@
1
+ import { getModelBytes } from './chunk-6I7IDZ4A.js';
2
+ export { Toggle, toggleVariants } from './chunk-PTZB2GKL.js';
1
3
  export { TranscriptView, formatTimestampMs } from './chunk-SEPYBAML.js';
2
4
  export { VisuallyHidden } from './chunk-H2CIKJQI.js';
3
- export { brands } from './chunk-BCJFOSZX.js';
5
+ export { brands } from './chunk-MO65V64I.js';
6
+ export { enterpriseHealthBrand } from './chunk-MTZPVOP6.js';
7
+ export { miewebBrand } from './chunk-NERS5ZT6.js';
4
8
  export { wagglelineBrand } from './chunk-2NTYAALC.js';
5
9
  export { webchartBrand } from './chunk-CW66SO5O.js';
10
+ export { ozwellBrand } from './chunk-5YUBQIC7.js';
6
11
  export { defaultBrand } from './chunk-PSTGFXQG.js';
7
- export { enterpriseHealthBrand } from './chunk-MTZPVOP6.js';
8
- export { miewebBrand } from './chunk-NERS5ZT6.js';
9
12
  export { createBrandPreset, generateBrandCSS, generateTailwindTheme } from './chunk-WOYUQ4AT.js';
10
13
  export { bluehiveBrand } from './chunk-3T7QGLNB.js';
11
14
  export { ccmeBrand } from './chunk-SCQRJPSV.js';
12
- export { ozwellBrand } from './chunk-5YUBQIC7.js';
13
- import { getModelBytes } from './chunk-6I7IDZ4A.js';
15
+ import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay } from './chunk-RZJXCI53.js';
16
+ export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChevronIcon, CloseIcon, CollapsiblePill, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-RZJXCI53.js';
17
+ import { EmptyState } from './chunk-FDV7EQWH.js';
18
+ 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-FDV7EQWH.js';
19
+ import { MessageComposer } from './chunk-EKRT7K2K.js';
20
+ export { AttachmentPicker, AttachmentPreviewItem, CameraButton, CharacterCounter, DragDropZone, MessageComposer, SendButton, generateAttachmentId, getFileType, sendButtonVariants, validateFile } from './chunk-EKRT7K2K.js';
14
21
  import { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
15
22
  export { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
16
23
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-TNUL4LGG.js';
@@ -20,18 +27,14 @@ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTrigger
20
27
  import { Text } from './chunk-3YSIZ2CK.js';
21
28
  export { SmallMuted, Text, textVariants } from './chunk-3YSIZ2CK.js';
22
29
  export { ThemeProvider, ThemeProviderContext, ThemeToggle, themeToggleIconVariants, themeToggleVariants, useThemeContext } from './chunk-SH6B4MG5.js';
23
- export { Toggle, toggleVariants } from './chunk-PTZB2GKL.js';
30
+ export { DateButton, DatePicker, RadioOption, SchedulePicker, TimeButton, TimePicker, dateButtonVariants, radioOptionVariants, timeButtonVariants } from './chunk-23AYDOCH.js';
31
+ export { ScrollArea, scrollAreaVariants } from './chunk-HS25RPDW.js';
24
32
  export { Sheet, SheetBody, SheetClose, SheetDescription, SheetFooter, SheetHeader, SheetTitle, sheetContentVariants, sheetOverlayVariants } from './chunk-LMBXJZLG.js';
25
33
  import { Skeleton } from './chunk-ZIUADGAR.js';
26
34
  export { Skeleton, SkeletonCard, SkeletonTable, SkeletonText, skeletonVariants } from './chunk-ZIUADGAR.js';
27
35
  import { Spinner, SpinnerWithLabel } from './chunk-UA7E7PDS.js';
28
36
  export { FullPageSpinner, Spinner, SpinnerWithLabel, spinnerVariants } from './chunk-UA7E7PDS.js';
29
- import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay } from './chunk-RZJXCI53.js';
30
- export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChevronIcon, CloseIcon, CollapsiblePill, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-RZJXCI53.js';
31
- import { EmptyState } from './chunk-FDV7EQWH.js';
32
- 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-FDV7EQWH.js';
33
- import { MessageComposer } from './chunk-EKRT7K2K.js';
34
- export { AttachmentPicker, AttachmentPreviewItem, CameraButton, CharacterCounter, DragDropZone, MessageComposer, SendButton, generateAttachmentId, getFileType, sendButtonVariants, validateFile } from './chunk-EKRT7K2K.js';
37
+ export { Pagination, SimplePagination, paginationButtonVariants } from './chunk-FDUA6OGN.js';
35
38
  export { PhoneInput, PhoneInputGroup } from './chunk-3D4ITDLO.js';
36
39
  import { Progress } from './chunk-CEQJGUAS.js';
37
40
  export { CircularProgress, Progress, circularProgressVariants, progressBarFillVariants, progressBarTrackVariants } from './chunk-CEQJGUAS.js';
@@ -40,8 +43,8 @@ import { RecordButton } from './chunk-VNWJTCBQ.js';
40
43
  export { RecordButton, formatDuration, recordButtonVariants } from './chunk-VNWJTCBQ.js';
41
44
  export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-FTRGZOVJ.js';
42
45
  export { Separator, separatorVariants } from './chunk-OQWZYKJM.js';
43
- export { DateButton, DatePicker, RadioOption, SchedulePicker, TimeButton, TimePicker, dateButtonVariants, radioOptionVariants, timeButtonVariants } from './chunk-23AYDOCH.js';
44
- export { ScrollArea, scrollAreaVariants } from './chunk-HS25RPDW.js';
46
+ import { Dropdown, DropdownItem, DropdownSeparator, DropdownHeader } from './chunk-HIDV32ZX.js';
47
+ export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator } from './chunk-HIDV32ZX.js';
45
48
  export { FloatingWindow, MinimizedWindow } from './chunk-N3Y43KOB.js';
46
49
  export { CodeBlock, MarkdownRenderer, highlightCode, useMarkdown } from './chunk-Z4PECE5S.js';
47
50
  export { CsvBlock } from './chunk-5J5PEUUA.js';
@@ -53,15 +56,14 @@ export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, W
53
56
  export { Slider, sliderRangeVariants, sliderThumbVariants, sliderTrackVariants } from './chunk-OTQ72WX3.js';
54
57
  import './chunk-RISZWWEQ.js';
55
58
  export { MediaPlayer, inferMediaKind, mediaPlayerVariants } from './chunk-EMMYFHOT.js';
56
- export { Pagination, SimplePagination, paginationButtonVariants } from './chunk-FDUA6OGN.js';
59
+ export { Breadcrumb, BreadcrumbSlash } from './chunk-5Y5FSR4N.js';
57
60
  import './chunk-OF7NTZ2I.js';
58
61
  import { Checkbox } from './chunk-KFLDXJEE.js';
59
62
  export { Checkbox, CheckboxGroup, checkboxVariants } from './chunk-KFLDXJEE.js';
60
63
  export { CollabStatus, defaultCollabStatusLabels, useYjsCollabStatus } from './chunk-SVSHA7XV.js';
61
64
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-BJKAVWED.js';
62
65
  export { CountryCodeDropdown, formatE164, validatePhoneNumber } from './chunk-BMRQ4VME.js';
63
- import { Dropdown, DropdownItem, DropdownSeparator, DropdownHeader } from './chunk-HIDV32ZX.js';
64
- export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator } from './chunk-HIDV32ZX.js';
66
+ export { miewebUIPreset, miewebUISafelist } from './chunk-6MMIWE7H.js';
65
67
  import { Alert, AlertTitle, AlertDescription } from './chunk-6EWJGRC3.js';
66
68
  export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-6EWJGRC3.js';
67
69
  import { AlertDialog } from './chunk-FPVRQCCL.js';
@@ -72,7 +74,6 @@ export { Autocomplete } from './chunk-P6L74SKG.js';
72
74
  import { Avatar } from './chunk-DCBMTFLE.js';
73
75
  export { Avatar, AvatarGroup, avatarVariants, getInitials } from './chunk-DCBMTFLE.js';
74
76
  import './chunk-IQ4KQJAO.js';
75
- export { Breadcrumb, BreadcrumbSlash } from './chunk-5Y5FSR4N.js';
76
77
  import { evaluateDue, completedKeys, normalizeOrders } from './chunk-Y5KEFV5O.js';
77
78
  export { buildChartOrderRows, buildEncounterOrderRows, dueForOrder, evaluateDue, evaluateProgram, isApplicable } from './chunk-Y5KEFV5O.js';
78
79
  import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-KRGKPUJH.js';
@@ -95,7 +96,7 @@ import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } fr
95
96
  export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-XMCIXHGH.js';
96
97
  import { Input, inputVariants } from './chunk-YXCE2HSK.js';
97
98
  export { Input, inputVariants } from './chunk-YXCE2HSK.js';
98
- import { Plus, GripVertical, RefreshCw, Pencil, AlertCircle, ArrowLeft, Users, ChevronDown, Clock, FileText, ClipboardList, Stethoscope, Mail, Phone, ClipboardCheck, Eye, Info, Link, ChevronUp, History, CheckCircle, StickyNote, ExternalLink, MoreVertical, Trash2, Send, Scan, TestTube2, Pill, Share, User, Download, ChevronRight, Calendar, Printer, ClipboardPlus, FilePlus, FileCheck, Wheat, Bell, FileHeart, HeartPulse, Paperclip, HelpCircle, MoreHorizontal, AlertTriangle, Upload as Upload$1, Camera, ScanLine, Image, X as X$1, Check as Check$1 } from './chunk-3PXOIAF6.js';
99
+ import { Plus, GripVertical, RefreshCw, Pencil, AlertCircle, ArrowLeft, Users, FilePlus, CheckCircle, ChevronDown, Clock, FileText, ClipboardList, Stethoscope, Mail, Phone, ClipboardCheck, Eye, Info, Link, ChevronUp, History, StickyNote, ExternalLink, MoreVertical, Trash2, 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, ScanLine, Image, X as X$1, Check as Check$1 } from './chunk-3PXOIAF6.js';
99
100
  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, 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, 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, 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, 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-3PXOIAF6.js';
100
101
  import { Button, buttonVariants } from './chunk-D2GID3YK.js';
101
102
  export { Button, buttonVariants } from './chunk-D2GID3YK.js';
@@ -127,7 +128,6 @@ import { cn } from './chunk-TQONQSJO.js';
127
128
  export { cn, miewebUITwMergeConflicts } from './chunk-TQONQSJO.js';
128
129
  import { isStorybookDocsMode } from './chunk-VSQF22GL.js';
129
130
  export { isStorybookDocsMode } from './chunk-VSQF22GL.js';
130
- export { miewebUIPreset, miewebUISafelist } from './chunk-TH5GXHVQ.js';
131
131
  import * as React10 from 'react';
132
132
  import React10__default, { createContext, useState, useEffect, useCallback, useMemo, useContext, useRef } from 'react';
133
133
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -11294,6 +11294,9 @@ var defaultCaseManagementHeaderLabels = {
11294
11294
  daysOpenTerm: "Days Open",
11295
11295
  mrn: "MRN",
11296
11296
  dob: "DOB",
11297
+ formatAge: (age) => `(${age} y.o.)`,
11298
+ addCaseNote: "Add Case Note",
11299
+ closeCase: "Close Case",
11297
11300
  back: "Go back",
11298
11301
  expandDetails: "Show case details",
11299
11302
  collapseDetails: "Hide case details",
@@ -11310,6 +11313,37 @@ function computeDaysOpen(openedDate) {
11310
11313
  function BarDivider() {
11311
11314
  return /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "bg-border h-4 w-px shrink-0" });
11312
11315
  }
11316
+ function HeaderActionButton({
11317
+ label,
11318
+ mobileIcon,
11319
+ desktopLeftIcon,
11320
+ onClick
11321
+ }) {
11322
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
11323
+ /* @__PURE__ */ jsx(
11324
+ Button,
11325
+ {
11326
+ variant: "ghost",
11327
+ size: "icon",
11328
+ onClick,
11329
+ "aria-label": label,
11330
+ className: "h-8 w-8 md:hidden",
11331
+ children: mobileIcon
11332
+ }
11333
+ ),
11334
+ /* @__PURE__ */ jsx(
11335
+ Button,
11336
+ {
11337
+ variant: "ghost",
11338
+ size: "sm",
11339
+ onClick,
11340
+ leftIcon: desktopLeftIcon,
11341
+ className: "hidden md:inline-flex",
11342
+ children: label
11343
+ }
11344
+ )
11345
+ ] });
11346
+ }
11313
11347
  var CaseContextBar = React10.forwardRef(
11314
11348
  ({
11315
11349
  caseInfo,
@@ -11385,6 +11419,8 @@ var CaseManagementHeader = React10.forwardRef(
11385
11419
  sticky = false,
11386
11420
  showBackButton = false,
11387
11421
  onBack,
11422
+ onAddCaseNote,
11423
+ onCloseCase,
11388
11424
  actions,
11389
11425
  editingUsers,
11390
11426
  collabStatus,
@@ -11461,10 +11497,39 @@ var CaseManagementHeader = React10.forwardRef(
11461
11497
  /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground text-sm whitespace-nowrap", children: [
11462
11498
  l.dob,
11463
11499
  ": ",
11464
- patient.dob ?? l.emptyValue
11500
+ patient.dob ?? l.emptyValue,
11501
+ patient.age != null && ` ${l.formatAge(patient.age)}`
11465
11502
  ] })
11466
11503
  ] }),
11467
- actions && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2", children: actions }),
11504
+ (onAddCaseNote || onCloseCase || actions) && // Horizontal always: long labels truncate (Button's built-in
11505
+ // ellipsis) instead of stacking or starving the identity block.
11506
+ /* @__PURE__ */ jsxs(
11507
+ ButtonGroup,
11508
+ {
11509
+ orientation: "horizontal",
11510
+ className: "max-w-[60%] min-w-0 gap-2",
11511
+ children: [
11512
+ onAddCaseNote && /* @__PURE__ */ jsx(
11513
+ HeaderActionButton,
11514
+ {
11515
+ label: l.addCaseNote,
11516
+ mobileIcon: /* @__PURE__ */ jsx(FilePlus, { size: 16 }),
11517
+ desktopLeftIcon: /* @__PURE__ */ jsx(Plus, { size: 16 }),
11518
+ onClick: onAddCaseNote
11519
+ }
11520
+ ),
11521
+ onCloseCase && /* @__PURE__ */ jsx(
11522
+ HeaderActionButton,
11523
+ {
11524
+ label: l.closeCase,
11525
+ mobileIcon: /* @__PURE__ */ jsx(CheckCircle, { size: 16 }),
11526
+ onClick: onCloseCase
11527
+ }
11528
+ ),
11529
+ actions
11530
+ ]
11531
+ }
11532
+ ),
11468
11533
  hasDetails && /* @__PURE__ */ jsx(
11469
11534
  Button,
11470
11535
  {