@mieweb/ui 0.9.0-dev.2 → 0.9.0-dev.3

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 (96) hide show
  1. package/dist/{Animated-Cs-naa2g.d.cts → Animated-XmH6k8pZ.d.cts} +16 -3
  2. package/dist/{Animated-Cs-naa2g.d.ts → Animated-XmH6k8pZ.d.ts} +16 -3
  3. package/dist/{chunk-XUVEF2RQ.js → chunk-24SEAAOH.js} +2 -2
  4. package/dist/{chunk-XUVEF2RQ.js.map → chunk-24SEAAOH.js.map} +1 -1
  5. package/dist/{chunk-FUFBRKOG.cjs → chunk-2WBPNXO2.cjs} +21 -21
  6. package/dist/{chunk-FUFBRKOG.cjs.map → chunk-2WBPNXO2.cjs.map} +1 -1
  7. package/dist/{chunk-IUDY6S7I.cjs → chunk-37UZHCLM.cjs} +35 -14
  8. package/dist/chunk-37UZHCLM.cjs.map +1 -0
  9. package/dist/{chunk-L52N6BEN.cjs → chunk-AUOTJQGO.cjs} +7 -7
  10. package/dist/{chunk-L52N6BEN.cjs.map → chunk-AUOTJQGO.cjs.map} +1 -1
  11. package/dist/{chunk-2A2FLQJC.cjs → chunk-B67VPJCZ.cjs} +9 -9
  12. package/dist/{chunk-2A2FLQJC.cjs.map → chunk-B67VPJCZ.cjs.map} +1 -1
  13. package/dist/{chunk-ADUEASXF.cjs → chunk-E7G22IQM.cjs} +27 -27
  14. package/dist/{chunk-ADUEASXF.cjs.map → chunk-E7G22IQM.cjs.map} +1 -1
  15. package/dist/{chunk-ONNY7UO4.js → chunk-JDJQTKTX.js} +3 -3
  16. package/dist/{chunk-ONNY7UO4.js.map → chunk-JDJQTKTX.js.map} +1 -1
  17. package/dist/{chunk-BJKAVWED.js → chunk-MBWF36DJ.js} +35 -14
  18. package/dist/chunk-MBWF36DJ.js.map +1 -0
  19. package/dist/{chunk-XRKBHECB.cjs → chunk-NPHZUCF3.cjs} +10 -2
  20. package/dist/chunk-NPHZUCF3.cjs.map +1 -0
  21. package/dist/chunk-NV2CWBI2.cjs +290 -0
  22. package/dist/chunk-NV2CWBI2.cjs.map +1 -0
  23. package/dist/{chunk-7KN6J7XV.cjs → chunk-OMAACCFW.cjs} +7 -7
  24. package/dist/{chunk-7KN6J7XV.cjs.map → chunk-OMAACCFW.cjs.map} +1 -1
  25. package/dist/{chunk-YJP6DUFO.cjs → chunk-PKD3JLS2.cjs} +6 -6
  26. package/dist/{chunk-YJP6DUFO.cjs.map → chunk-PKD3JLS2.cjs.map} +1 -1
  27. package/dist/{chunk-5H7SAEQO.js → chunk-QKFJDQEK.js} +3 -3
  28. package/dist/{chunk-5H7SAEQO.js.map → chunk-QKFJDQEK.js.map} +1 -1
  29. package/dist/{chunk-XJTFZLWH.cjs → chunk-QO6PRHDX.cjs} +2 -2
  30. package/dist/{chunk-XJTFZLWH.cjs.map → chunk-QO6PRHDX.cjs.map} +1 -1
  31. package/dist/{chunk-OHDIJOGG.js → chunk-RD3JDFYJ.js} +3 -3
  32. package/dist/{chunk-OHDIJOGG.js.map → chunk-RD3JDFYJ.js.map} +1 -1
  33. package/dist/{chunk-4SM3I7WE.cjs → chunk-RXPEZXAB.cjs} +67 -38
  34. package/dist/chunk-RXPEZXAB.cjs.map +1 -0
  35. package/dist/{chunk-VTR2KGLY.cjs → chunk-S3BCHPXT.cjs} +9 -9
  36. package/dist/{chunk-VTR2KGLY.cjs.map → chunk-S3BCHPXT.cjs.map} +1 -1
  37. package/dist/{chunk-KU3XRHWA.js → chunk-TZX76ZNZ.js} +67 -38
  38. package/dist/chunk-TZX76ZNZ.js.map +1 -0
  39. package/dist/{chunk-KI5ES4GR.js → chunk-UHHYJ42E.js} +10 -2
  40. package/dist/chunk-UHHYJ42E.js.map +1 -0
  41. package/dist/{chunk-KATEJG2F.js → chunk-VMQZAOFM.js} +3 -3
  42. package/dist/{chunk-KATEJG2F.js.map → chunk-VMQZAOFM.js.map} +1 -1
  43. package/dist/{chunk-Q7G56ZIO.js → chunk-WUBMDOTG.js} +3 -3
  44. package/dist/{chunk-Q7G56ZIO.js.map → chunk-WUBMDOTG.js.map} +1 -1
  45. package/dist/chunk-XCP454Q6.js +263 -0
  46. package/dist/chunk-XCP454Q6.js.map +1 -0
  47. package/dist/{chunk-I3DQXUSC.js → chunk-Y6DFMDMH.js} +3 -3
  48. package/dist/{chunk-I3DQXUSC.js.map → chunk-Y6DFMDMH.js.map} +1 -1
  49. package/dist/{chunk-2KQWEROH.js → chunk-YSEMAI4I.js} +3 -3
  50. package/dist/{chunk-2KQWEROH.js.map → chunk-YSEMAI4I.js.map} +1 -1
  51. package/dist/components/AlertDialog/index.cjs +4 -4
  52. package/dist/components/AlertDialog/index.js +3 -3
  53. package/dist/components/Collapsible/index.cjs +6 -4
  54. package/dist/components/Collapsible/index.js +3 -1
  55. package/dist/components/Dropdown/index.cjs +9 -8
  56. package/dist/components/Dropdown/index.js +2 -1
  57. package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
  58. package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
  59. package/dist/components/MediaEditor/index.cjs +8 -8
  60. package/dist/components/MediaEditor/index.js +3 -3
  61. package/dist/components/Modal/index.cjs +10 -10
  62. package/dist/components/Modal/index.js +2 -2
  63. package/dist/components/RichTextEditor/index.cjs +6 -5
  64. package/dist/components/RichTextEditor/index.js +3 -2
  65. package/dist/components/SuperChat/index.cjs +14 -13
  66. package/dist/components/SuperChat/index.cjs.map +1 -1
  67. package/dist/components/SuperChat/index.js +3 -2
  68. package/dist/components/SuperChat/index.js.map +1 -1
  69. package/dist/esheet.cjs +6 -6
  70. package/dist/esheet.js +3 -3
  71. package/dist/hooks/index.cjs +13 -13
  72. package/dist/hooks/index.js +1 -1
  73. package/dist/index.cjs +1032 -1012
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.cts +10 -2
  76. package/dist/index.d.ts +10 -2
  77. package/dist/index.js +687 -667
  78. package/dist/index.js.map +1 -1
  79. package/dist/motion.cjs +7 -7
  80. package/dist/motion.d.cts +1 -1
  81. package/dist/motion.d.ts +1 -1
  82. package/dist/motion.js +2 -2
  83. package/dist/styles.css +1 -1
  84. package/dist/tailwind-preset.cjs +4 -4
  85. package/dist/tailwind-preset.js +1 -1
  86. package/package.json +1 -1
  87. package/dist/chunk-4SM3I7WE.cjs.map +0 -1
  88. package/dist/chunk-BJKAVWED.js.map +0 -1
  89. package/dist/chunk-BN75TLUN.cjs +0 -163
  90. package/dist/chunk-BN75TLUN.cjs.map +0 -1
  91. package/dist/chunk-IUDY6S7I.cjs.map +0 -1
  92. package/dist/chunk-KI5ES4GR.js.map +0 -1
  93. package/dist/chunk-KU3XRHWA.js.map +0 -1
  94. package/dist/chunk-WYMO3IIK.js +0 -136
  95. package/dist/chunk-WYMO3IIK.js.map +0 -1
  96. package/dist/chunk-XRKBHECB.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -25,14 +25,14 @@ export { SourceTip } from './chunk-PHK4XBO5.js';
25
25
  export { Sparkline } from './chunk-CG4ZKJLE.js';
26
26
  import { Spinner, SpinnerWithLabel } from './chunk-UA7E7PDS.js';
27
27
  export { FullPageSpinner, Spinner, SpinnerWithLabel, spinnerVariants } from './chunk-UA7E7PDS.js';
28
- import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay, ComposerModelSelector } from './chunk-KATEJG2F.js';
29
- export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChatComposer, ChevronIcon, CloseIcon, CollapsiblePill, ComposerModelSelector, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-KATEJG2F.js';
28
+ import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay, ComposerModelSelector } from './chunk-VMQZAOFM.js';
29
+ export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChatComposer, ChevronIcon, CloseIcon, CollapsiblePill, ComposerModelSelector, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-VMQZAOFM.js';
30
30
  import { MessageComposer, EmptyState } from './chunk-RPG2ZP2T.js';
31
31
  export { AttachmentPreview, CharacterCounter, ConversationHeader, ConversationListItem, ConversationListSkeleton, DateSeparator, EmptyState, LightboxModal, LoadMoreButton, MessageBubble, MessageComposer, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, ReadReceiptIndicator, SendButton, SkeletonMessage, TypingIndicator, bubbleVariants, formatDateLabel, formatFileSize, formatLastSeen, getConversationSubtitle, getConversationTitle, groupMessagesByDate, headerVariants, isSameSenderGroup, sendButtonVariants, useMessageScroll, useMessages, useReadReceipts, useTypingIndicator } from './chunk-RPG2ZP2T.js';
32
32
  export { AttachmentPicker, AttachmentPreviewItem, CameraButton, DragDropZone, generateAttachmentId, getFileType, validateFile } from './chunk-IF3X2WZP.js';
33
33
  import { RecordButton } from './chunk-VNWJTCBQ.js';
34
34
  export { RecordButton, formatDuration, recordButtonVariants } from './chunk-VNWJTCBQ.js';
35
- export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-5H7SAEQO.js';
35
+ export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-QKFJDQEK.js';
36
36
  export { DateButton, DatePicker, RadioOption, SchedulePicker, TimeButton, TimePicker, dateButtonVariants, radioOptionVariants, timeButtonVariants } from './chunk-23AYDOCH.js';
37
37
  export { ScrollArea, scrollAreaVariants } from './chunk-HS25RPDW.js';
38
38
  export { SectionSpyNav } from './chunk-3RB35GYK.js';
@@ -45,18 +45,18 @@ export { QuickAction, QuickActionGroup, QuickActionIcons, quickActionIconVariant
45
45
  export { ReadingProgressBar } from './chunk-WKSUL2ZN.js';
46
46
  export { FreshnessBadge, FreshnessDot, daysSince, freshnessLevel } from './chunk-HQ3XPCHG.js';
47
47
  export { GlossaryTooltip } from './chunk-L5W7TJQ5.js';
48
- export { Kbd, KeyboardShortcutsOverlay } from './chunk-I3DQXUSC.js';
48
+ export { Kbd, KeyboardShortcutsOverlay } from './chunk-Y6DFMDMH.js';
49
49
  export { CodeBlock, MarkdownRenderer, highlightCode, useMarkdown } from './chunk-D25WH7MH.js';
50
50
  export { CsvBlock } from './chunk-NHN6A3ZO.js';
51
51
  export { HtmlPreviewBlock } from './chunk-EG7XFZ3W.js';
52
52
  export { MermaidBlock } from './chunk-ZB54MTMQ.js';
53
53
  export { SurveyBlock } from './chunk-OSPTA4UR.js';
54
54
  export { FenceBlock } from './chunk-CK3KLRNF.js';
55
- export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal } from './chunk-ONNY7UO4.js';
55
+ export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal } from './chunk-JDJQTKTX.js';
56
56
  export { Slider, sliderRangeVariants, sliderThumbVariants, sliderTrackVariants } from './chunk-2BPIVWAK.js';
57
57
  import './chunk-RISZWWEQ.js';
58
58
  export { MediaPlayer, inferMediaKind, mediaPlayerVariants } from './chunk-5WOB4UBD.js';
59
- export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-BJKAVWED.js';
59
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-MBWF36DJ.js';
60
60
  export { CopyButton } from './chunk-5QZ73PZC.js';
61
61
  import { CountryDropdownBase } from './chunk-QAKASRE6.js';
62
62
  export { CountryCodeDropdown, formatE164, validatePhoneNumber } from './chunk-QAKASRE6.js';
@@ -64,8 +64,8 @@ export { CustomizableDashboard, DashboardCustomizePanel, consolidateColumns, mer
64
64
  import { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
65
65
  export { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
66
66
  export { Sheet, SheetBody, SheetClose, SheetDescription, SheetFooter, SheetHeader, SheetTitle, sheetContentVariants, sheetOverlayVariants } from './chunk-ON4JULCA.js';
67
- import { Dropdown, DropdownItem, DropdownSeparator, DropdownContent, DropdownHeader } from './chunk-KU3XRHWA.js';
68
- export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator, DropdownSubmenu } from './chunk-KU3XRHWA.js';
67
+ import { Dropdown, DropdownItem, DropdownSeparator, DropdownContent, DropdownHeader } from './chunk-TZX76ZNZ.js';
68
+ export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator, DropdownSubmenu } from './chunk-TZX76ZNZ.js';
69
69
  export { FilterSummaryBar } from './chunk-6SCQ7FKT.js';
70
70
  export { FloatingWindow, MinimizedWindow } from './chunk-PYHFVYVZ.js';
71
71
  import { Avatar } from './chunk-HZ4MBUC3.js';
@@ -80,19 +80,19 @@ export { CollabStatus, defaultCollabStatusLabels, useYjsCollabStatus } from './c
80
80
  import './chunk-7XUN3OQT.js';
81
81
  export { isHtmlEmpty, stripHtmlTags } from './chunk-ERLPVXOV.js';
82
82
  export { formatPhoneNumber, isPhoneNumberEmpty, isValidPhoneNumber, unformatPhoneNumber } from './chunk-ZVPJ2MH6.js';
83
- export { miewebUIPreset, miewebUISafelist } from './chunk-KI5ES4GR.js';
83
+ export { miewebUIPreset, miewebUISafelist } from './chunk-UHHYJ42E.js';
84
84
  export { Accordion } from './chunk-KRU6IGV7.js';
85
85
  import { Alert, AlertTitle, AlertDescription } from './chunk-3JWAABYI.js';
86
86
  export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-3JWAABYI.js';
87
- import { AlertDialog } from './chunk-OHDIJOGG.js';
88
- export { AlertDialog } from './chunk-OHDIJOGG.js';
87
+ import { AlertDialog } from './chunk-RD3JDFYJ.js';
88
+ export { AlertDialog } from './chunk-RD3JDFYJ.js';
89
89
  export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime as formatAudioTime, playButtonVariants } from './chunk-VVDE4CHU.js';
90
90
  export { AudioRecorder, audioRecorderVariants, controlButtonVariants, formatTime, waveformContainerVariants } from './chunk-2DW4PUJD.js';
91
91
  export { Autocomplete } from './chunk-QAQOCS2J.js';
92
92
  import { evaluateDue, completedKeys, normalizeOrders } from './chunk-Y5KEFV5O.js';
93
93
  export { buildChartOrderRows, buildEncounterOrderRows, dueForOrder, evaluateDue, evaluateProgram, isApplicable } from './chunk-Y5KEFV5O.js';
94
- import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-2KQWEROH.js';
95
- export { ALLERGY_TYPE_LABELS, AllergyList, AllergyManager, CodeLookupProvider, MEDICATION_STATUS_LABELS, MedicationEditor, MedicationList, MedicationReconciliation, RowActionToolbar, RowIconButton, labelToMedicationFields, lookupToMedicationFields, parseMedicationLabel, parseSig, toolbarKeyNav, useCodeLookupConfig } from './chunk-2KQWEROH.js';
94
+ import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-YSEMAI4I.js';
95
+ export { ALLERGY_TYPE_LABELS, AllergyList, AllergyManager, CodeLookupProvider, MEDICATION_STATUS_LABELS, MedicationEditor, MedicationList, MedicationReconciliation, RowActionToolbar, RowIconButton, labelToMedicationFields, lookupToMedicationFields, parseMedicationLabel, parseSig, toolbarKeyNav, useCodeLookupConfig } from './chunk-YSEMAI4I.js';
96
96
  import { Textarea } from './chunk-H3YO5GBM.js';
97
97
  export { Textarea, textareaVariants } from './chunk-H3YO5GBM.js';
98
98
  import { Tooltip } from './chunk-MUIDWFYJ.js';
@@ -109,8 +109,8 @@ import { Card, CardHeader, CardContent, CardTitle } from './chunk-QYSUYB3S.js';
109
109
  export { Card, CardActions, CardBadge, CardCollapsible, CardContent, CardDescription, CardDivider, CardFooter, CardHeader, CardMedia, CardStat, CardTitle, cardAccentVariants, cardVariants } from './chunk-QYSUYB3S.js';
110
110
  import { dateToDisplayFormat, isValidDate, displayFormatToDateString } from './chunk-RC2YMOMS.js';
111
111
  export { calculateAge, dateToDisplayFormat, displayFormatToDateString, formatDateValue, isDateEmpty, isDateInFuture, isDateInPast, isValidDate, isValidDrivingAge, parseDateValue } from './chunk-RC2YMOMS.js';
112
- import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } from './chunk-Q7G56ZIO.js';
113
- export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-Q7G56ZIO.js';
112
+ import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } from './chunk-WUBMDOTG.js';
113
+ export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-WUBMDOTG.js';
114
114
  import './chunk-6NZXWKUE.js';
115
115
  import { Input, inputVariants } from './chunk-3IMM2PM4.js';
116
116
  export { Input, RequiredMark, floatingGroupLabelVariants, floatingGroupVariants, floatingLabelVariants, inputVariants } from './chunk-3IMM2PM4.js';
@@ -120,12 +120,12 @@ import { Badge } from './chunk-BMSG4NBH.js';
120
120
  export { Badge, badgeVariants } from './chunk-BMSG4NBH.js';
121
121
  import { Button, buttonVariants } from './chunk-KREUYVMZ.js';
122
122
  export { Button, buttonVariants } from './chunk-KREUYVMZ.js';
123
- import { AnimatedPresence, Animated } from './chunk-WYMO3IIK.js';
124
- export { Animated, AnimatedPresence, motionPresets, useMotionRuntime } from './chunk-WYMO3IIK.js';
123
+ import { AnimatedPresence, Animated } from './chunk-XCP454Q6.js';
124
+ export { Animated, AnimatedPresence, motionPresets, useMotionRuntime } from './chunk-XCP454Q6.js';
125
125
  import { cn } from './chunk-TQONQSJO.js';
126
126
  export { cn, miewebUITwMergeConflicts } from './chunk-TQONQSJO.js';
127
- import { useCommandK, useIsMobile, useMediaQuery, useDirection } from './chunk-XUVEF2RQ.js';
128
- export { RTL_LOCALES, isRtlLocale, useCommandK, useDirection, useIsDesktop, useIsLargeDesktop, useIsMobile, useIsMobileOrTablet, useIsSmallTablet, useIsTablet, useKeyboardShortcut, useMediaQuery } from './chunk-XUVEF2RQ.js';
127
+ import { useDirection, useCommandK, useIsMobile, useMediaQuery } from './chunk-24SEAAOH.js';
128
+ export { RTL_LOCALES, isRtlLocale, useCommandK, useDirection, useIsDesktop, useIsLargeDesktop, useIsMobile, useIsMobileOrTablet, useIsSmallTablet, useIsTablet, useKeyboardShortcut, useMediaQuery } from './chunk-24SEAAOH.js';
129
129
  export { useTheme } from './chunk-KJZNEVYM.js';
130
130
  import { useScrollSpy } from './chunk-WBGUYSWY.js';
131
131
  export { useScrollSpy } from './chunk-WBGUYSWY.js';
@@ -146,8 +146,8 @@ export { useClickOutside } from './chunk-62ZOA6PX.js';
146
146
  import { useAnchoredPosition } from './chunk-WSNMQQ4P.js';
147
147
  export { useAnchoredPosition } from './chunk-WSNMQQ4P.js';
148
148
  export { isDarkMode, useIsDarkMode } from './chunk-RUGHNFQG.js';
149
- import * as React12 from 'react';
150
- import React12__default, { createContext, useState, useEffect, useCallback, useMemo, useContext, useRef } from 'react';
149
+ import * as React13 from 'react';
150
+ import React13__default, { createContext, useState, useEffect, useCallback, useMemo, useContext, useRef } from 'react';
151
151
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
152
152
  import { cva } from 'class-variance-authority';
153
153
  import * as ReactDOM from 'react-dom';
@@ -621,8 +621,8 @@ function AdditionalFields({
621
621
  className,
622
622
  collapsible = true
623
623
  }) {
624
- const [isExpanded, setIsExpanded] = React12.useState(defaultExpanded);
625
- const contentId = React12.useId();
624
+ const [isExpanded, setIsExpanded] = React13.useState(defaultExpanded);
625
+ const contentId = React13.useId();
626
626
  const handleNameChange = (id, name) => {
627
627
  const updated = value.map(
628
628
  (entry) => entry.id === id ? { ...entry, name } : entry
@@ -1060,10 +1060,10 @@ function AddressForm({
1060
1060
  className,
1061
1061
  googlePlaces
1062
1062
  }) {
1063
- const generatedId = React12.useId();
1063
+ const generatedId = React13.useId();
1064
1064
  const idPrefix = id || generatedId;
1065
- const autocompleteRef = React12.useRef(null);
1066
- const inputRef = React12.useRef(null);
1065
+ const autocompleteRef = React13.useRef(null);
1066
+ const inputRef = React13.useRef(null);
1067
1067
  const mergedLabels = { ...DEFAULT_LABELS, ...labels };
1068
1068
  const mergedPlaceholders = { ...DEFAULT_PLACEHOLDERS, ...placeholders };
1069
1069
  const handleChange = (field, fieldValue) => {
@@ -1072,7 +1072,7 @@ function AddressForm({
1072
1072
  [field]: fieldValue
1073
1073
  });
1074
1074
  };
1075
- React12.useEffect(() => {
1075
+ React13.useEffect(() => {
1076
1076
  if (!googlePlaces?.enabled || !inputRef.current) return;
1077
1077
  const googleMaps = globalThis.window?.google;
1078
1078
  if (!googleMaps?.maps?.places?.Autocomplete) {
@@ -1491,13 +1491,13 @@ function AIChat({
1491
1491
  renderTextContent,
1492
1492
  renderMessageFooter
1493
1493
  }) {
1494
- const messagesContainerRef = React12.useRef(null);
1495
- const messages = React12.useMemo(
1494
+ const messagesContainerRef = React13.useRef(null);
1495
+ const messages = React13.useMemo(
1496
1496
  () => session?.messages || messagesProp || [],
1497
1497
  [session?.messages, messagesProp]
1498
1498
  );
1499
1499
  const isGenerating = session?.isGenerating || isGeneratingProp || false;
1500
- React12.useEffect(() => {
1500
+ React13.useEffect(() => {
1501
1501
  const container = messagesContainerRef.current;
1502
1502
  if (container) container.scrollTop = container.scrollHeight;
1503
1503
  }, [messages]);
@@ -1908,7 +1908,6 @@ function Toast({
1908
1908
  className: cn(
1909
1909
  "flex items-start gap-3 rounded-lg border p-4 shadow-lg",
1910
1910
  "max-w-[420px] min-w-[300px]",
1911
- "animate-slide-in-right rtl:animate-slide-in-left",
1912
1911
  styles.container
1913
1912
  ),
1914
1913
  children: [
@@ -1953,17 +1952,27 @@ var positionStyles = {
1953
1952
  "bottom-left": "bottom-4 start-4 items-start",
1954
1953
  "bottom-right": "bottom-4 end-4 items-end"
1955
1954
  };
1955
+ function toastEdge(position, isRtl) {
1956
+ if (position === "top-center") return "top";
1957
+ if (position === "bottom-center") return "bottom";
1958
+ const isStart = position.endsWith("-start") || position.endsWith("-left");
1959
+ return isStart === isRtl ? "right" : "left";
1960
+ }
1961
+ var TOAST_FALLBACK_ANIMATION = "animate-slide-in-right rtl:animate-slide-in-left";
1956
1962
  function ToastContainer({
1957
1963
  toasts,
1958
1964
  position,
1959
1965
  onDismiss
1960
1966
  }) {
1961
1967
  const context = useOptionalToast();
1968
+ const containerRef = React13__default.useRef(null);
1969
+ const isRtl = useDirection(containerRef) === "rtl";
1962
1970
  const resolvedPosition = position ?? context?.position ?? "bottom-end";
1963
- if (toasts.length === 0) return null;
1971
+ const edge = toastEdge(resolvedPosition, isRtl);
1964
1972
  return /* @__PURE__ */ jsx(
1965
1973
  "div",
1966
1974
  {
1975
+ ref: containerRef,
1967
1976
  "data-slot": "toast-container",
1968
1977
  className: cn(
1969
1978
  "pointer-events-none fixed z-50 flex flex-col gap-2",
@@ -1971,7 +1980,18 @@ function ToastContainer({
1971
1980
  ),
1972
1981
  "aria-live": "polite",
1973
1982
  "aria-atomic": "true",
1974
- children: toasts.map((toast) => /* @__PURE__ */ jsx("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx(Toast, { ...toast, onClose: () => onDismiss(toast.id) }) }, toast.id))
1983
+ children: /* @__PURE__ */ jsx(AnimatedPresence, { children: toasts.map((toast) => /* @__PURE__ */ jsx(
1984
+ Animated,
1985
+ {
1986
+ preset: "toast",
1987
+ mode: "presence",
1988
+ custom: edge,
1989
+ className: "pointer-events-auto",
1990
+ fallbackClassName: TOAST_FALLBACK_ANIMATION,
1991
+ children: /* @__PURE__ */ jsx(Toast, { ...toast, onClose: () => onDismiss(toast.id) })
1992
+ },
1993
+ toast.id
1994
+ )) })
1975
1995
  }
1976
1996
  );
1977
1997
  }
@@ -2031,19 +2051,19 @@ function OzwellChat({
2031
2051
  footer = "Powered by Ozwell",
2032
2052
  className
2033
2053
  }) {
2034
- const shellRef = React12.useRef(null);
2035
- const [thinkingMenuOpen, setThinkingMenuOpen] = React12.useState(false);
2036
- const [messagesMenuOpen, setMessagesMenuOpen] = React12.useState(false);
2037
- const [messagesButtonFlare, setMessagesButtonFlare] = React12.useState(false);
2038
- const [isEditingQueuedMessage, setIsEditingQueuedMessage] = React12.useState(false);
2039
- const [queuedMessageDraft, setQueuedMessageDraft] = React12.useState("");
2040
- const hasFlaredRef = React12.useRef(false);
2041
- const queuedMessageEditorRef = React12.useRef(null);
2042
- const displayedMessages = React12.useMemo(
2054
+ const shellRef = React13.useRef(null);
2055
+ const [thinkingMenuOpen, setThinkingMenuOpen] = React13.useState(false);
2056
+ const [messagesMenuOpen, setMessagesMenuOpen] = React13.useState(false);
2057
+ const [messagesButtonFlare, setMessagesButtonFlare] = React13.useState(false);
2058
+ const [isEditingQueuedMessage, setIsEditingQueuedMessage] = React13.useState(false);
2059
+ const [queuedMessageDraft, setQueuedMessageDraft] = React13.useState("");
2060
+ const hasFlaredRef = React13.useRef(false);
2061
+ const queuedMessageEditorRef = React13.useRef(null);
2062
+ const displayedMessages = React13.useMemo(
2043
2063
  () => applyThinkingMode(messages, thinking?.mode ?? "auto"),
2044
2064
  [messages, thinking?.mode]
2045
2065
  );
2046
- const userMessageItems = React12.useMemo(
2066
+ const userMessageItems = React13.useMemo(
2047
2067
  () => displayedMessages.flatMap((message, chatIndex) => {
2048
2068
  if (message.role !== "user") return [];
2049
2069
  const text = message.content.filter((block) => block.type === "text" && block.text).map((block) => block.text).join(" ").trim();
@@ -2052,7 +2072,7 @@ function OzwellChat({
2052
2072
  [displayedMessages]
2053
2073
  );
2054
2074
  const showMessagesNav = userMessageItems.length >= 3;
2055
- const chatMessages = React12.useMemo(
2075
+ const chatMessages = React13.useMemo(
2056
2076
  () => queuedMessage ? [
2057
2077
  ...displayedMessages,
2058
2078
  {
@@ -2069,13 +2089,13 @@ function OzwellChat({
2069
2089
  (option) => option.value === thinking?.mode
2070
2090
  );
2071
2091
  const showModelSelector = Boolean(models?.value && models.options.length > 1);
2072
- React12.useEffect(() => {
2092
+ React13.useEffect(() => {
2073
2093
  if (!queuedMessage) setIsEditingQueuedMessage(false);
2074
2094
  }, [queuedMessage]);
2075
- React12.useEffect(() => {
2095
+ React13.useEffect(() => {
2076
2096
  if (isEditingQueuedMessage) queuedMessageEditorRef.current?.focus();
2077
2097
  }, [isEditingQueuedMessage]);
2078
- React12.useEffect(() => {
2098
+ React13.useEffect(() => {
2079
2099
  if (!showMessagesNav || hasFlaredRef.current) return;
2080
2100
  hasFlaredRef.current = true;
2081
2101
  setMessagesButtonFlare(true);
@@ -2351,8 +2371,8 @@ function OzwellLogo({
2351
2371
  style,
2352
2372
  className
2353
2373
  }) {
2354
- const [failed, setFailed] = React12.useState(false);
2355
- React12.useEffect(() => setFailed(false), [src]);
2374
+ const [failed, setFailed] = React13.useState(false);
2375
+ React13.useEffect(() => setFailed(false), [src]);
2356
2376
  if (failed) {
2357
2377
  return /* @__PURE__ */ jsx(
2358
2378
  "span",
@@ -2409,9 +2429,9 @@ function HeyOzwellToggle({
2409
2429
  const octoScale = 1 + Math.min(0.28, lv * 2.2);
2410
2430
  const glowOpacity = active ? 0.4 + Math.min(0.55, lv * 4) : 0;
2411
2431
  const glowScale = 1 + Math.min(0.7, lv * 3);
2412
- const [doneFlash, setDoneFlash] = React12.useState(false);
2413
- const wasLoading = React12.useRef(loading);
2414
- React12.useEffect(() => {
2432
+ const [doneFlash, setDoneFlash] = React13.useState(false);
2433
+ const wasLoading = React13.useRef(loading);
2434
+ React13.useEffect(() => {
2415
2435
  if (wasLoading.current && !loading) {
2416
2436
  setDoneFlash(true);
2417
2437
  const t = window.setTimeout(() => setDoneFlash(false), 700);
@@ -2420,9 +2440,9 @@ function HeyOzwellToggle({
2420
2440
  }
2421
2441
  wasLoading.current = loading;
2422
2442
  }, [loading]);
2423
- const [warmFade, setWarmFade] = React12.useState(false);
2424
- const wasWarm = React12.useRef(warmActive);
2425
- React12.useEffect(() => {
2443
+ const [warmFade, setWarmFade] = React13.useState(false);
2444
+ const wasWarm = React13.useRef(warmActive);
2445
+ React13.useEffect(() => {
2426
2446
  if (wasWarm.current && !warmActive) {
2427
2447
  setWarmFade(true);
2428
2448
  const t = window.setTimeout(() => setWarmFade(false), 500);
@@ -2437,8 +2457,8 @@ function HeyOzwellToggle({
2437
2457
  const ringC = 2 * Math.PI * ringR;
2438
2458
  const hasProgress = typeof loadProgress === "number";
2439
2459
  const p = hasProgress ? Math.max(0, Math.min(1, loadProgress)) : 0;
2440
- const [synthP, setSynthP] = React12.useState(0);
2441
- React12.useEffect(() => {
2460
+ const [synthP, setSynthP] = React13.useState(0);
2461
+ React13.useEffect(() => {
2442
2462
  if (!(loading && !hasProgress)) {
2443
2463
  setSynthP(0);
2444
2464
  return;
@@ -2456,9 +2476,9 @@ function HeyOzwellToggle({
2456
2476
  const warmR = (warmBox - warmStroke) / 2;
2457
2477
  const warmC = 2 * Math.PI * warmR;
2458
2478
  const wp = typeof warmProgress === "number" ? Math.max(0, Math.min(1, warmProgress)) : 0;
2459
- const pressTimer = React12.useRef(void 0);
2460
- const longFiredRef = React12.useRef(false);
2461
- React12.useEffect(
2479
+ const pressTimer = React13.useRef(void 0);
2480
+ const longFiredRef = React13.useRef(false);
2481
+ React13.useEffect(
2462
2482
  () => () => {
2463
2483
  if (pressTimer.current) window.clearTimeout(pressTimer.current);
2464
2484
  },
@@ -2787,18 +2807,18 @@ function OzwellSettingsMenu({
2787
2807
  modelStatus,
2788
2808
  onManageVoices
2789
2809
  }) {
2790
- const [modelsOpen, setModelsOpen] = React12.useState(false);
2791
- const modelsRegionId = React12.useId();
2792
- const scrollRef = React12.useRef(null);
2793
- const [hasMore, setHasMore] = React12.useState(false);
2794
- const updateHasMore = React12.useCallback(() => {
2810
+ const [modelsOpen, setModelsOpen] = React13.useState(false);
2811
+ const modelsRegionId = React13.useId();
2812
+ const scrollRef = React13.useRef(null);
2813
+ const [hasMore, setHasMore] = React13.useState(false);
2814
+ const updateHasMore = React13.useCallback(() => {
2795
2815
  const el = scrollRef.current;
2796
2816
  if (el) setHasMore(el.scrollTop + el.clientHeight < el.scrollHeight - 4);
2797
2817
  }, []);
2798
- React12.useEffect(() => {
2818
+ React13.useEffect(() => {
2799
2819
  updateHasMore();
2800
2820
  }, [modelsOpen, open, modelStatus, updateHasMore]);
2801
- React12.useEffect(() => {
2821
+ React13.useEffect(() => {
2802
2822
  if (!open) setModelsOpen(false);
2803
2823
  }, [open]);
2804
2824
  const act = (fn) => () => {
@@ -3008,19 +3028,19 @@ function useWakeWord(opts = {}) {
3008
3028
  assetBase,
3009
3029
  registerServiceWorker = true
3010
3030
  } = opts;
3011
- const [state, setState] = React12.useState({
3031
+ const [state, setState] = React13.useState({
3012
3032
  ready: false,
3013
3033
  error: null,
3014
3034
  speech: 0,
3015
3035
  probs: {}
3016
3036
  });
3017
- const onWakeRef = React12.useRef(onWake);
3037
+ const onWakeRef = React13.useRef(onWake);
3018
3038
  onWakeRef.current = onWake;
3019
- const onUtteranceRef = React12.useRef(onUtterance);
3039
+ const onUtteranceRef = React13.useRef(onUtterance);
3020
3040
  onUtteranceRef.current = onUtterance;
3021
- const lastFiredRef = React12.useRef(null);
3022
- const hbRef = React12.useRef(null);
3023
- React12.useEffect(() => {
3041
+ const lastFiredRef = React13.useRef(null);
3042
+ const hbRef = React13.useRef(null);
3043
+ React13.useEffect(() => {
3024
3044
  if (!enabled) {
3025
3045
  setState(
3026
3046
  (s) => s.ready || s.error || s.speech ? { ready: false, error: null, speech: 0, probs: {} } : s
@@ -3132,7 +3152,7 @@ function useWakeWord(opts = {}) {
3132
3152
  }
3133
3153
  };
3134
3154
  }, [enabled, assetBase]);
3135
- React12.useEffect(() => {
3155
+ React13.useEffect(() => {
3136
3156
  const hb = hbRef.current;
3137
3157
  if (!hb) return;
3138
3158
  if (thresholds) hb.wakeWordThresholds = { ...thresholds };
@@ -3853,10 +3873,10 @@ function endsWithDone(text) {
3853
3873
  }
3854
3874
  function useSpeakerVerify(opts = {}) {
3855
3875
  const { enabled = true } = opts;
3856
- const [ready, setReady] = React12.useState(false);
3857
- const [error, setError] = React12.useState(null);
3858
- const svRef = React12.useRef(null);
3859
- React12.useEffect(() => {
3876
+ const [ready, setReady] = React13.useState(false);
3877
+ const [error, setError] = React13.useState(null);
3878
+ const svRef = React13.useRef(null);
3879
+ React13.useEffect(() => {
3860
3880
  if (!enabled) return;
3861
3881
  let cancelled = false;
3862
3882
  (async () => {
@@ -4076,15 +4096,15 @@ function useDiarization(options = {}) {
4076
4096
  minSegmentSeconds = 1
4077
4097
  } = options;
4078
4098
  const sv = useSpeakerVerify({ enabled });
4079
- const svRef = React12.useRef(sv);
4099
+ const svRef = React13.useRef(sv);
4080
4100
  svRef.current = sv;
4081
- const [busy, setBusy] = React12.useState(false);
4082
- const [error, setError] = React12.useState(null);
4083
- const [result, setResult] = React12.useState(null);
4084
- React12.useEffect(() => {
4101
+ const [busy, setBusy] = React13.useState(false);
4102
+ const [error, setError] = React13.useState(null);
4103
+ const [result, setResult] = React13.useState(null);
4104
+ React13.useEffect(() => {
4085
4105
  if (enabled) warmWhisper();
4086
4106
  }, [enabled]);
4087
- const diarize = React12.useCallback(
4107
+ const diarize = React13.useCallback(
4088
4108
  async (blob) => {
4089
4109
  setBusy(true);
4090
4110
  setError(null);
@@ -4432,11 +4452,11 @@ function stopTrimLeadIn() {
4432
4452
  return typeof v === "number" ? v : 0.35;
4433
4453
  }
4434
4454
  function useRoomLevel(getStream, ready) {
4435
- const [level, setLevel] = React12.useState(0);
4436
- const [listening, setListening] = React12.useState(false);
4437
- const getStreamRef = React12.useRef(getStream);
4455
+ const [level, setLevel] = React13.useState(0);
4456
+ const [listening, setListening] = React13.useState(false);
4457
+ const getStreamRef = React13.useRef(getStream);
4438
4458
  getStreamRef.current = getStream;
4439
- React12.useEffect(() => {
4459
+ React13.useEffect(() => {
4440
4460
  if (!ready) {
4441
4461
  setLevel(0);
4442
4462
  setListening(false);
@@ -4501,20 +4521,20 @@ function useHeyOzwell(options = {}) {
4501
4521
  reviewBeforeSend = false,
4502
4522
  diarizationOptions
4503
4523
  } = options;
4504
- const [active, setActive] = React12.useState(autoStart);
4505
- const [chatOpen, setChatOpen] = React12.useState(false);
4506
- const [settingsOpen, setSettingsOpen] = React12.useState(false);
4507
- const [messages, setMessages] = React12.useState([]);
4508
- const [generating, setGenerating] = React12.useState(false);
4509
- const [phase, setPhase] = React12.useState("listening");
4510
- const [typed, setTyped] = React12.useState("");
4511
- const dictLoad = React12.useSyncExternalStore(
4524
+ const [active, setActive] = React13.useState(autoStart);
4525
+ const [chatOpen, setChatOpen] = React13.useState(false);
4526
+ const [settingsOpen, setSettingsOpen] = React13.useState(false);
4527
+ const [messages, setMessages] = React13.useState([]);
4528
+ const [generating, setGenerating] = React13.useState(false);
4529
+ const [phase, setPhase] = React13.useState("listening");
4530
+ const [typed, setTyped] = React13.useState("");
4531
+ const dictLoad = React13.useSyncExternalStore(
4512
4532
  subscribeDictationLoad,
4513
4533
  getDictationLoad
4514
4534
  );
4515
- const wakeWarm2 = React12.useSyncExternalStore(subscribeWakeWarm, getWakeWarm);
4516
- const counterRef = React12.useRef(0);
4517
- const mkMsg = React12.useCallback(
4535
+ const wakeWarm2 = React13.useSyncExternalStore(subscribeWakeWarm, getWakeWarm);
4536
+ const counterRef = React13.useRef(0);
4537
+ const mkMsg = React13.useCallback(
4518
4538
  (role, text) => ({
4519
4539
  id: `${role}-${++counterRef.current}`,
4520
4540
  role,
@@ -4524,20 +4544,20 @@ function useHeyOzwell(options = {}) {
4524
4544
  }),
4525
4545
  []
4526
4546
  );
4527
- const messagesRef = React12.useRef(messages);
4547
+ const messagesRef = React13.useRef(messages);
4528
4548
  messagesRef.current = messages;
4529
- const phaseRef = React12.useRef(phase);
4549
+ const phaseRef = React13.useRef(phase);
4530
4550
  phaseRef.current = phase;
4531
- const recRef = React12.useRef(null);
4532
- const chunksRef = React12.useRef([]);
4533
- const streamAbortRef = React12.useRef(null);
4534
- const [liveText, setLiveText] = React12.useState("");
4535
- const liveRecRef = React12.useRef(null);
4536
- const liveTimerRef = React12.useRef(null);
4537
- const liveCommittedRef = React12.useRef("");
4538
- const liveCursorRef = React12.useRef(0);
4539
- const liveBusyRef = React12.useRef(false);
4540
- const stopLive = React12.useCallback(() => {
4551
+ const recRef = React13.useRef(null);
4552
+ const chunksRef = React13.useRef([]);
4553
+ const streamAbortRef = React13.useRef(null);
4554
+ const [liveText, setLiveText] = React13.useState("");
4555
+ const liveRecRef = React13.useRef(null);
4556
+ const liveTimerRef = React13.useRef(null);
4557
+ const liveCommittedRef = React13.useRef("");
4558
+ const liveCursorRef = React13.useRef(0);
4559
+ const liveBusyRef = React13.useRef(false);
4560
+ const stopLive = React13.useCallback(() => {
4541
4561
  if (liveTimerRef.current) window.clearInterval(liveTimerRef.current);
4542
4562
  liveTimerRef.current = null;
4543
4563
  liveRecRef.current?.close();
@@ -4547,18 +4567,18 @@ function useHeyOzwell(options = {}) {
4547
4567
  liveBusyRef.current = false;
4548
4568
  setLiveText("");
4549
4569
  }, []);
4550
- const wakeRef = React12.useRef(null);
4570
+ const wakeRef = React13.useRef(null);
4551
4571
  const sv = useSpeakerVerify({ enabled: requireDoctor });
4552
- const svRef = React12.useRef(sv);
4572
+ const svRef = React13.useRef(sv);
4553
4573
  svRef.current = sv;
4554
- const rollRef = React12.useRef(null);
4574
+ const rollRef = React13.useRef(null);
4555
4575
  const diar = useDiarization({
4556
4576
  ...diarizationOptions,
4557
4577
  enabled: conversationMode
4558
4578
  });
4559
- const diarRef = React12.useRef(diar);
4579
+ const diarRef = React13.useRef(diar);
4560
4580
  diarRef.current = diar;
4561
- const verified = React12.useCallback(
4581
+ const verified = React13.useCallback(
4562
4582
  (name) => {
4563
4583
  if (!requireDoctor) return true;
4564
4584
  const svh = svRef.current;
@@ -4580,9 +4600,9 @@ function useHeyOzwell(options = {}) {
4580
4600
  },
4581
4601
  [requireDoctor]
4582
4602
  );
4583
- const onSendRef = React12.useRef(onSend);
4603
+ const onSendRef = React13.useRef(onSend);
4584
4604
  onSendRef.current = onSend;
4585
- const send = React12.useCallback(
4605
+ const send = React13.useCallback(
4586
4606
  (text) => {
4587
4607
  const t = text.trim();
4588
4608
  if (!t) return;
@@ -4640,7 +4660,7 @@ function useHeyOzwell(options = {}) {
4640
4660
  },
4641
4661
  [mkMsg]
4642
4662
  );
4643
- const startDictation = React12.useCallback(() => {
4663
+ const startDictation = React13.useCallback(() => {
4644
4664
  const stream = wakeRef.current?.getStream();
4645
4665
  if (!stream) return;
4646
4666
  chunksRef.current = [];
@@ -4686,7 +4706,7 @@ function useHeyOzwell(options = {}) {
4686
4706
  }, 800);
4687
4707
  }
4688
4708
  }, [liveTranscript, transcription]);
4689
- const stopDictation = React12.useCallback(
4709
+ const stopDictation = React13.useCallback(
4690
4710
  (viaPhrase = false) => {
4691
4711
  const rec = recRef.current;
4692
4712
  if (!rec) return;
@@ -4762,7 +4782,7 @@ function useHeyOzwell(options = {}) {
4762
4782
  });
4763
4783
  wakeRef.current = wake;
4764
4784
  const { level, listening } = useRoomLevel(wake.getStream, wake.ready);
4765
- React12.useEffect(() => {
4785
+ React13.useEffect(() => {
4766
4786
  if (!requireDoctor || !active || !wake.ready) return;
4767
4787
  let cancelled = false;
4768
4788
  let tries = 0;
@@ -4783,11 +4803,11 @@ function useHeyOzwell(options = {}) {
4783
4803
  rollRef.current = null;
4784
4804
  };
4785
4805
  }, [requireDoctor, active, wake.ready]);
4786
- const hasListenedRef = React12.useRef(false);
4787
- React12.useEffect(() => {
4806
+ const hasListenedRef = React13.useRef(false);
4807
+ React13.useEffect(() => {
4788
4808
  if (listening) hasListenedRef.current = true;
4789
4809
  }, [listening]);
4790
- React12.useEffect(() => {
4810
+ React13.useEffect(() => {
4791
4811
  if (!active) hasListenedRef.current = false;
4792
4812
  }, [active]);
4793
4813
  const coldStarting = active && !listening && !hasListenedRef.current;
@@ -4801,13 +4821,13 @@ function useHeyOzwell(options = {}) {
4801
4821
  wake: wakeWarm2.done || wake.ready ? "ready" : ozLoading ? "loading" : "idle",
4802
4822
  transcription: dictLoad.done ? "ready" : dictLoad.active ? "loading" : "idle"
4803
4823
  };
4804
- React12.useEffect(() => {
4824
+ React13.useEffect(() => {
4805
4825
  void warmWakeModels(assetBase);
4806
4826
  }, [assetBase]);
4807
- React12.useEffect(() => {
4827
+ React13.useEffect(() => {
4808
4828
  if (active) warmWhisper();
4809
4829
  }, [active]);
4810
- const toggle = React12.useCallback(
4830
+ const toggle = React13.useCallback(
4811
4831
  (next) => {
4812
4832
  setActive(next);
4813
4833
  if (!next) {
@@ -5002,7 +5022,7 @@ function FloatingAIChat({
5002
5022
  pulse = false,
5003
5023
  ...chatProps
5004
5024
  }) {
5005
- const [internalOpen, setInternalOpen] = React12.useState(defaultOpen);
5025
+ const [internalOpen, setInternalOpen] = React13.useState(defaultOpen);
5006
5026
  const isControlled = controlledOpen !== void 0;
5007
5027
  const isOpen = isControlled ? controlledOpen : internalOpen;
5008
5028
  const handleOpenChange = (open) => {
@@ -5075,36 +5095,36 @@ var TIMEOUT_MS = 5e3;
5075
5095
  var delay = (ms) => new Promise((r) => setTimeout(r, ms));
5076
5096
  function useVoiceSetup(options = {}) {
5077
5097
  const { startAdding = false, voiceId, label } = options;
5078
- const [enrollVoiceId] = React12.useState(
5098
+ const [enrollVoiceId] = React13.useState(
5079
5099
  () => voiceId || (startAdding ? `voice-${Date.now()}-${Math.floor(Math.random() * 1e4)}` : "you")
5080
5100
  );
5081
5101
  const sv = useSpeakerVerify();
5082
- const expectRef = React12.useRef(null);
5083
- const resolveRef = React12.useRef(null);
5084
- const whatRef = React12.useRef({});
5085
- const recRef = React12.useRef(null);
5086
- const abortRef = React12.useRef(false);
5087
- const [level, setLevel] = React12.useState(0);
5102
+ const expectRef = React13.useRef(null);
5103
+ const resolveRef = React13.useRef(null);
5104
+ const whatRef = React13.useRef({});
5105
+ const recRef = React13.useRef(null);
5106
+ const abortRef = React13.useRef(false);
5107
+ const [level, setLevel] = React13.useState(0);
5088
5108
  const wake = useWakeWord({
5089
5109
  onWake: (name) => {
5090
5110
  if (expectRef.current && resolveRef.current) resolveRef.current(name);
5091
5111
  }
5092
5112
  });
5093
- const wakeRef = React12.useRef(wake);
5113
+ const wakeRef = React13.useRef(wake);
5094
5114
  wakeRef.current = wake;
5095
5115
  const bothReady = sv.ready && wake.ready;
5096
- const [phase, setPhase] = React12.useState("intro");
5097
- const [phrase, setPhrase] = React12.useState("hey ozwell");
5098
- const [step, setStep] = React12.useState(0);
5099
- const [adding, setAdding] = React12.useState(startAdding);
5116
+ const [phase, setPhase] = React13.useState("intro");
5117
+ const [phrase, setPhrase] = React13.useState("hey ozwell");
5118
+ const [step, setStep] = React13.useState(0);
5119
+ const [adding, setAdding] = React13.useState(startAdding);
5100
5120
  const total = PHRASES2.length * REPS;
5101
- React12.useEffect(() => {
5121
+ React13.useEffect(() => {
5102
5122
  warmWhisper();
5103
5123
  void loadWhatPrints().then((w) => {
5104
5124
  whatRef.current = w;
5105
5125
  });
5106
5126
  }, []);
5107
- React12.useEffect(() => {
5127
+ React13.useEffect(() => {
5108
5128
  if (!wake.ready) {
5109
5129
  setLevel(0);
5110
5130
  return;
@@ -5171,7 +5191,7 @@ function useVoiceSetup(options = {}) {
5171
5191
  };
5172
5192
  });
5173
5193
  };
5174
- const start = React12.useCallback(async () => {
5194
+ const start = React13.useCallback(async () => {
5175
5195
  if (!bothReady || phase !== "intro") return;
5176
5196
  for (let i = 0; i < 20 && !recRef.current; i++) await delay(50);
5177
5197
  if (!recRef.current) return;
@@ -5219,11 +5239,11 @@ function useVoiceSetup(options = {}) {
5219
5239
  setAdding(false);
5220
5240
  setPhase("done");
5221
5241
  }, [bothReady, phase, adding, sv, enrollVoiceId, label]);
5222
- const addAnotherSpot = React12.useCallback(() => {
5242
+ const addAnotherSpot = React13.useCallback(() => {
5223
5243
  setAdding(true);
5224
5244
  setPhase("intro");
5225
5245
  }, []);
5226
- const cancel = React12.useCallback(() => {
5246
+ const cancel = React13.useCallback(() => {
5227
5247
  abortRef.current = true;
5228
5248
  resolveRef.current?.("__cancelled__");
5229
5249
  setPhase("intro");
@@ -5471,12 +5491,12 @@ var ozBtn2 = "bg-ozwell hover:bg-ozwell active:bg-ozwell text-ozwell-foreground
5471
5491
  var dangerOutline = "border-destructive text-destructive hover:bg-destructive/10 hover:text-destructive";
5472
5492
  function VoiceManager({ logoSrc }) {
5473
5493
  const sv = useSpeakerVerify();
5474
- const [inSetup, setInSetup] = React12.useState(null);
5475
- const [, setTick] = React12.useState(0);
5476
- const [addName, setAddName] = React12.useState("");
5477
- const [editingId, setEditingId] = React12.useState(null);
5478
- const [editLabel, setEditLabel] = React12.useState("");
5479
- const [confirm, setConfirm] = React12.useState(null);
5494
+ const [inSetup, setInSetup] = React13.useState(null);
5495
+ const [, setTick] = React13.useState(0);
5496
+ const [addName, setAddName] = React13.useState("");
5497
+ const [editingId, setEditingId] = React13.useState(null);
5498
+ const [editLabel, setEditLabel] = React13.useState("");
5499
+ const [confirm, setConfirm] = React13.useState(null);
5480
5500
  const voices = sv.ready ? sv.listVoices() : [];
5481
5501
  if (inSetup) {
5482
5502
  return /* @__PURE__ */ jsx(
@@ -5685,7 +5705,7 @@ function HandsFreeChat({
5685
5705
  reviewBeforeSend
5686
5706
  });
5687
5707
  const { phase, ready, error } = oz;
5688
- const [voicesOpen, setVoicesOpen] = React12.useState(false);
5708
+ const [voicesOpen, setVoicesOpen] = React13.useState(false);
5689
5709
  const placeholder = !oz.active ? "Ozwell is off \u2014 tap the octopus to listen" : phase === "listening" ? ready ? "Say \u201Chey ozwell\u201D, or type\u2026" : error ? `\u26A0\uFE0F ${error}` : "\u2026 loading models" : oz.chatProps.inputPlaceholder;
5690
5710
  return /* @__PURE__ */ jsxs("div", { style: { height: "100vh", display: "flex", flexDirection: "column" }, children: [
5691
5711
  /* @__PURE__ */ jsxs("div", { style: { flex: 1, minHeight: 0, position: "relative" }, children: [
@@ -5761,30 +5781,30 @@ var LIVE_CHUNK_SECONDS = 7;
5761
5781
  function useVisitScribe(options = {}) {
5762
5782
  const { liveTranscript = false, ...diarOptions } = options;
5763
5783
  const diar = useDiarization(diarOptions);
5764
- const diarRef = React12.useRef(diar);
5784
+ const diarRef = React13.useRef(diar);
5765
5785
  diarRef.current = diar;
5766
- const liveOnRef = React12.useRef(liveTranscript);
5786
+ const liveOnRef = React13.useRef(liveTranscript);
5767
5787
  liveOnRef.current = liveTranscript;
5768
- const [recording, setRecording] = React12.useState(false);
5769
- const [elapsedMs, setElapsedMs] = React12.useState(0);
5770
- const [liveText, setLiveText] = React12.useState("");
5771
- const [startError, setStartError] = React12.useState(null);
5772
- const recRef = React12.useRef(null);
5773
- const streamRef = React12.useRef(null);
5774
- const chunksRef = React12.useRef([]);
5775
- const startedAtRef = React12.useRef(0);
5776
- const timerRef = React12.useRef(null);
5777
- const lastBlobRef = React12.useRef(null);
5778
- const [canReanalyze, setCanReanalyze] = React12.useState(false);
5779
- const liveRecRef = React12.useRef(null);
5780
- const liveTimerRef = React12.useRef(null);
5781
- const liveCursorRef = React12.useRef(0);
5782
- const liveBusyRef = React12.useRef(false);
5783
- const clearTimer = React12.useCallback(() => {
5788
+ const [recording, setRecording] = React13.useState(false);
5789
+ const [elapsedMs, setElapsedMs] = React13.useState(0);
5790
+ const [liveText, setLiveText] = React13.useState("");
5791
+ const [startError, setStartError] = React13.useState(null);
5792
+ const recRef = React13.useRef(null);
5793
+ const streamRef = React13.useRef(null);
5794
+ const chunksRef = React13.useRef([]);
5795
+ const startedAtRef = React13.useRef(0);
5796
+ const timerRef = React13.useRef(null);
5797
+ const lastBlobRef = React13.useRef(null);
5798
+ const [canReanalyze, setCanReanalyze] = React13.useState(false);
5799
+ const liveRecRef = React13.useRef(null);
5800
+ const liveTimerRef = React13.useRef(null);
5801
+ const liveCursorRef = React13.useRef(0);
5802
+ const liveBusyRef = React13.useRef(false);
5803
+ const clearTimer = React13.useCallback(() => {
5784
5804
  if (timerRef.current) window.clearInterval(timerRef.current);
5785
5805
  timerRef.current = null;
5786
5806
  }, []);
5787
- const stopLive = React12.useCallback(() => {
5807
+ const stopLive = React13.useCallback(() => {
5788
5808
  if (liveTimerRef.current) window.clearInterval(liveTimerRef.current);
5789
5809
  liveTimerRef.current = null;
5790
5810
  liveRecRef.current?.close();
@@ -5792,8 +5812,8 @@ function useVisitScribe(options = {}) {
5792
5812
  liveCursorRef.current = 0;
5793
5813
  liveBusyRef.current = false;
5794
5814
  }, []);
5795
- const startingRef = React12.useRef(false);
5796
- const start = React12.useCallback(async () => {
5815
+ const startingRef = React13.useRef(false);
5816
+ const start = React13.useCallback(async () => {
5797
5817
  if (startingRef.current || recRef.current) return;
5798
5818
  startingRef.current = true;
5799
5819
  setStartError(null);
@@ -5886,7 +5906,7 @@ function useVisitScribe(options = {}) {
5886
5906
  setRecording(true);
5887
5907
  startingRef.current = false;
5888
5908
  }, [clearTimer]);
5889
- const stop = React12.useCallback(() => {
5909
+ const stop = React13.useCallback(() => {
5890
5910
  clearTimer();
5891
5911
  stopLive();
5892
5912
  setRecording(false);
@@ -5898,19 +5918,19 @@ function useVisitScribe(options = {}) {
5898
5918
  streamRef.current?.getTracks().forEach((t) => t.stop());
5899
5919
  streamRef.current = null;
5900
5920
  }, [clearTimer, stopLive]);
5901
- const reanalyze = React12.useCallback(() => {
5921
+ const reanalyze = React13.useCallback(() => {
5902
5922
  const blob = lastBlobRef.current;
5903
5923
  if (blob) void diarRef.current.diarize(blob).catch(() => {
5904
5924
  });
5905
5925
  }, []);
5906
- const reset = React12.useCallback(() => {
5926
+ const reset = React13.useCallback(() => {
5907
5927
  setElapsedMs(0);
5908
5928
  setLiveText("");
5909
5929
  setStartError(null);
5910
5930
  lastBlobRef.current = null;
5911
5931
  setCanReanalyze(false);
5912
5932
  }, []);
5913
- React12.useEffect(() => {
5933
+ React13.useEffect(() => {
5914
5934
  return () => {
5915
5935
  clearTimer();
5916
5936
  stopLive();
@@ -5992,13 +6012,13 @@ function VisitScribe({
5992
6012
  diarizationOptions,
5993
6013
  className
5994
6014
  }) {
5995
- const [inferRoles, setInferRoles] = React12.useState(inferRolesProp);
5996
- const [live, setLive] = React12.useState(liveTranscriptProp);
5997
- const [showAdvanced, setShowAdvanced] = React12.useState(false);
5998
- const [threshold, setThreshold] = React12.useState(
6015
+ const [inferRoles, setInferRoles] = React13.useState(inferRolesProp);
6016
+ const [live, setLive] = React13.useState(liveTranscriptProp);
6017
+ const [showAdvanced, setShowAdvanced] = React13.useState(false);
6018
+ const [threshold, setThreshold] = React13.useState(
5999
6019
  diarizationOptions?.threshold ?? 0.65
6000
6020
  );
6001
- const [maxSpeakers, setMaxSpeakers] = React12.useState(
6021
+ const [maxSpeakers, setMaxSpeakers] = React13.useState(
6002
6022
  diarizationOptions?.maxSpeakers
6003
6023
  );
6004
6024
  const scribe = useVisitScribe({
@@ -6018,43 +6038,43 @@ function VisitScribe({
6018
6038
  elapsedMs,
6019
6039
  canReanalyze
6020
6040
  } = scribe;
6021
- const [labels, setLabels] = React12.useState({});
6022
- const [turnSpeaker, setTurnSpeaker] = React12.useState(
6041
+ const [labels, setLabels] = React13.useState({});
6042
+ const [turnSpeaker, setTurnSpeaker] = React13.useState(
6023
6043
  {}
6024
6044
  );
6025
- const [editing, setEditing] = React12.useState(false);
6026
- React12.useEffect(() => {
6045
+ const [editing, setEditing] = React13.useState(false);
6046
+ React13.useEffect(() => {
6027
6047
  setLabels({});
6028
6048
  setTurnSpeaker({});
6029
6049
  setEditing(false);
6030
6050
  }, [result]);
6031
- const effective = React12.useCallback(
6051
+ const effective = React13.useCallback(
6032
6052
  (sp) => labels[sp]?.trim() || sp,
6033
6053
  [labels]
6034
6054
  );
6035
- const speakers = React12.useMemo(() => {
6055
+ const speakers = React13.useMemo(() => {
6036
6056
  const seen = [];
6037
6057
  result?.forEach((t) => {
6038
6058
  if (!seen.includes(t.speaker)) seen.push(t.speaker);
6039
6059
  });
6040
6060
  return seen;
6041
6061
  }, [result]);
6042
- const origOf = React12.useCallback(
6062
+ const origOf = React13.useCallback(
6043
6063
  (i) => turnSpeaker[i] ?? result?.[i]?.speaker ?? "",
6044
6064
  [turnSpeaker, result]
6045
6065
  );
6046
- const resolved = React12.useMemo(
6066
+ const resolved = React13.useMemo(
6047
6067
  () => (result ?? []).map((t, i) => effective(turnSpeaker[i] ?? t.speaker)),
6048
6068
  [result, turnSpeaker, effective]
6049
6069
  );
6050
- const distinctLabels = React12.useMemo(() => {
6070
+ const distinctLabels = React13.useMemo(() => {
6051
6071
  const seen = [];
6052
6072
  resolved.forEach((l) => {
6053
6073
  if (!seen.includes(l)) seen.push(l);
6054
6074
  });
6055
6075
  return seen;
6056
6076
  }, [resolved]);
6057
- const colorByLabel = React12.useMemo(() => {
6077
+ const colorByLabel = React13.useMemo(() => {
6058
6078
  const m = /* @__PURE__ */ new Map();
6059
6079
  distinctLabels.forEach(
6060
6080
  (l, idx) => m.set(l, SPEAKER_COLORS[idx % SPEAKER_COLORS.length])
@@ -6413,7 +6433,7 @@ function ReconciliationProposalRow({
6413
6433
  editing: false,
6414
6434
  value: proposal.proposed
6415
6435
  };
6416
- const rowId = React12.useId();
6436
+ const rowId = React13.useId();
6417
6437
  const checkboxId = `${rowId}-accept`;
6418
6438
  const level = resolveConfidenceLevel(proposal);
6419
6439
  const render = proposal.renderValue ?? formatValueDefault;
@@ -6592,17 +6612,17 @@ function AIReconciliationPanel({
6592
6612
  onNothingToReconcile,
6593
6613
  className
6594
6614
  }) {
6595
- const effective = React12.useMemo(
6615
+ const effective = React13.useMemo(
6596
6616
  () => proposals.filter((p) => !isEqual(p.current, p.proposed)),
6597
6617
  [proposals, isEqual]
6598
6618
  );
6599
- const stateSignature = React12.useMemo(
6619
+ const stateSignature = React13.useMemo(
6600
6620
  () => effective.map(
6601
6621
  (p) => `${p.id}\u241F${safeStableStringify(p.proposed)}\u241F${p.defaultAccepted ?? ""}\u241F${p.required ?? ""}\u241F${p.confidence ?? ""}\u241F${p.confidenceLevel ?? ""}`
6602
6622
  ).join("|"),
6603
6623
  [effective]
6604
6624
  );
6605
- const [rowStates, setRowStates] = React12.useState(
6625
+ const [rowStates, setRowStates] = React13.useState(
6606
6626
  () => Object.fromEntries(
6607
6627
  effective.map((p) => [
6608
6628
  p.id,
@@ -6614,7 +6634,7 @@ function AIReconciliationPanel({
6614
6634
  ])
6615
6635
  )
6616
6636
  );
6617
- React12.useEffect(() => {
6637
+ React13.useEffect(() => {
6618
6638
  setRowStates(
6619
6639
  Object.fromEntries(
6620
6640
  effective.map((p) => [
@@ -6628,20 +6648,20 @@ function AIReconciliationPanel({
6628
6648
  )
6629
6649
  );
6630
6650
  }, [stateSignature]);
6631
- const reportedEmpty = React12.useRef(false);
6632
- React12.useEffect(() => {
6651
+ const reportedEmpty = React13.useRef(false);
6652
+ React13.useEffect(() => {
6633
6653
  if (effective.length === 0 && !reportedEmpty.current) {
6634
6654
  reportedEmpty.current = true;
6635
6655
  onNothingToReconcile?.();
6636
6656
  }
6637
6657
  if (effective.length > 0) reportedEmpty.current = false;
6638
6658
  }, [effective.length, onNothingToReconcile]);
6639
- const acceptedCount = React12.useMemo(
6659
+ const acceptedCount = React13.useMemo(
6640
6660
  () => Object.values(rowStates).filter((s) => s.accepted).length,
6641
6661
  [rowStates]
6642
6662
  );
6643
- const [submitting, setSubmitting] = React12.useState(false);
6644
- const setAllAccepted = React12.useCallback(
6663
+ const [submitting, setSubmitting] = React13.useState(false);
6664
+ const setAllAccepted = React13.useCallback(
6645
6665
  (accepted) => {
6646
6666
  setRowStates((prev) => {
6647
6667
  const next = { ...prev };
@@ -6659,7 +6679,7 @@ function AIReconciliationPanel({
6659
6679
  },
6660
6680
  [effective]
6661
6681
  );
6662
- const setRowAccepted = React12.useCallback(
6682
+ const setRowAccepted = React13.useCallback(
6663
6683
  (id, accepted) => {
6664
6684
  const proposal = effective.find((p) => p.id === id);
6665
6685
  setRowStates((prev) => {
@@ -6673,7 +6693,7 @@ function AIReconciliationPanel({
6673
6693
  },
6674
6694
  [effective]
6675
6695
  );
6676
- const setRowValue = React12.useCallback(
6696
+ const setRowValue = React13.useCallback(
6677
6697
  (id, value) => {
6678
6698
  const proposal = effective.find((p) => p.id === id);
6679
6699
  setRowStates((prev) => {
@@ -6687,7 +6707,7 @@ function AIReconciliationPanel({
6687
6707
  },
6688
6708
  [effective]
6689
6709
  );
6690
- const toggleRowEditing = React12.useCallback(
6710
+ const toggleRowEditing = React13.useCallback(
6691
6711
  (id) => {
6692
6712
  const proposal = effective.find((p) => p.id === id);
6693
6713
  setRowStates((prev) => {
@@ -6701,7 +6721,7 @@ function AIReconciliationPanel({
6701
6721
  },
6702
6722
  [effective]
6703
6723
  );
6704
- const handleApply = React12.useCallback(async () => {
6724
+ const handleApply = React13.useCallback(async () => {
6705
6725
  const accepted = effective.filter((p) => rowStates[p.id]?.accepted).map((p) => ({
6706
6726
  id: p.id,
6707
6727
  value: rowStates[p.id]?.value ?? p.proposed
@@ -6714,8 +6734,8 @@ function AIReconciliationPanel({
6714
6734
  setSubmitting(false);
6715
6735
  }
6716
6736
  }, [effective, rowStates, onApply]);
6717
- const containerRef = React12.useRef(null);
6718
- React12.useEffect(() => {
6737
+ const containerRef = React13.useRef(null);
6738
+ React13.useEffect(() => {
6719
6739
  const el = containerRef.current;
6720
6740
  if (!el) return void 0;
6721
6741
  const handler = (e) => {
@@ -6747,7 +6767,7 @@ function AIReconciliationPanel({
6747
6767
  const allAccepted = effective.length > 0 && acceptedCount === effective.length;
6748
6768
  const someAccepted = acceptedCount > 0 && !allAccepted;
6749
6769
  const resolvedApplyLabel = applyLabel ?? (acceptedCount === 1 ? "Apply 1 update" : `Apply ${acceptedCount} updates`);
6750
- const grouped = React12.useMemo(() => {
6770
+ const grouped = React13.useMemo(() => {
6751
6771
  const map = /* @__PURE__ */ new Map();
6752
6772
  for (const p of effective) {
6753
6773
  const key = p.group;
@@ -6798,7 +6818,7 @@ function AIReconciliationPanel({
6798
6818
  {
6799
6819
  "data-slot": "reconciliation-rows",
6800
6820
  className: "divide-border max-h-[60vh] overflow-y-auto",
6801
- children: grouped.map(([groupKey, items]) => /* @__PURE__ */ jsxs(React12.Fragment, { children: [
6821
+ children: grouped.map(([groupKey, items]) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
6802
6822
  groupKey && /* @__PURE__ */ jsx(
6803
6823
  "li",
6804
6824
  {
@@ -7416,7 +7436,7 @@ function ConcernRow({
7416
7436
  drag,
7417
7437
  onAction
7418
7438
  }) {
7419
- const [expanded, setExpanded] = React12.useState(false);
7439
+ const [expanded, setExpanded] = React13.useState(false);
7420
7440
  const current = currentAssertion(concern);
7421
7441
  const hasHistory = concern.assertions.length > 1;
7422
7442
  const visibleActions = actions.filter(
@@ -7534,7 +7554,7 @@ function ConcernRow({
7534
7554
  )
7535
7555
  );
7536
7556
  }
7537
- var ProblemList = React12.forwardRef(
7557
+ var ProblemList = React13.forwardRef(
7538
7558
  ({
7539
7559
  concerns,
7540
7560
  title = "Problem list",
@@ -7548,7 +7568,7 @@ var ProblemList = React12.forwardRef(
7548
7568
  "data-testid": dataTestId,
7549
7569
  ...props
7550
7570
  }, ref) => {
7551
- const [draft, setDraft] = React12.useState("");
7571
+ const [draft, setDraft] = React13.useState("");
7552
7572
  const [announcement, setAnnouncement] = useLiveAnnouncement();
7553
7573
  const submitDraft = () => {
7554
7574
  const text = draft.trim();
@@ -7556,7 +7576,7 @@ var ProblemList = React12.forwardRef(
7556
7576
  onAddProblem?.(text);
7557
7577
  setDraft("");
7558
7578
  };
7559
- const moveConcern = React12.useCallback(
7579
+ const moveConcern = React13.useCallback(
7560
7580
  (concern, dir) => {
7561
7581
  if (!onReorder || readOnly) return;
7562
7582
  const groupKey = concernGroupKey(concern);
@@ -7576,7 +7596,7 @@ var ProblemList = React12.forwardRef(
7576
7596
  },
7577
7597
  [concerns, onReorder, readOnly, setAnnouncement]
7578
7598
  );
7579
- const handleAction = React12.useCallback(
7599
+ const handleAction = React13.useCallback(
7580
7600
  (concern, action) => {
7581
7601
  if (action === "move-up") moveConcern(concern, -1);
7582
7602
  else if (action === "move-down") moveConcern(concern, 1);
@@ -7584,13 +7604,13 @@ var ProblemList = React12.forwardRef(
7584
7604
  },
7585
7605
  [moveConcern, onAction]
7586
7606
  );
7587
- const groupById = React12.useMemo(
7607
+ const groupById = React13.useMemo(
7588
7608
  () => new Map(
7589
7609
  concerns.map((c) => [c.concernId, concernGroupKey(c)])
7590
7610
  ),
7591
7611
  [concerns]
7592
7612
  );
7593
- const groupOf = React12.useCallback(
7613
+ const groupOf = React13.useCallback(
7594
7614
  (id) => groupById.get(id),
7595
7615
  [groupById]
7596
7616
  );
@@ -7795,8 +7815,8 @@ function OrderRow({
7795
7815
  controls?.moveWithin || controls?.moveToProblem || controls?.edit || controls?.editStart || controls?.remove
7796
7816
  );
7797
7817
  const canEdit = Boolean(controls?.edit || controls?.editStart);
7798
- const [editing, setEditing] = React12.useState(null);
7799
- const [menuOpen, setMenuOpen] = React12.useState(false);
7818
+ const [editing, setEditing] = React13.useState(null);
7819
+ const [menuOpen, setMenuOpen] = React13.useState(false);
7800
7820
  const pick = (fn) => () => {
7801
7821
  setMenuOpen(false);
7802
7822
  fn();
@@ -8033,12 +8053,12 @@ function AddOrderForm({
8033
8053
  onCancel,
8034
8054
  renderSearch
8035
8055
  }) {
8036
- const [type, setType] = React12.useState(
8056
+ const [type, setType] = React13.useState(
8037
8057
  renderSearch ? "auto" : "medication"
8038
8058
  );
8039
- const [display, setDisplay] = React12.useState("");
8040
- const inputRef = React12.useRef(null);
8041
- React12.useEffect(() => {
8059
+ const [display, setDisplay] = React13.useState("");
8060
+ const inputRef = React13.useRef(null);
8061
+ React13.useEffect(() => {
8042
8062
  inputRef.current?.focus();
8043
8063
  }, []);
8044
8064
  const submit = () => {
@@ -8143,7 +8163,7 @@ function AddOrderForm({
8143
8163
  }
8144
8164
  );
8145
8165
  }
8146
- var Assessment = React12.forwardRef(
8166
+ var Assessment = React13.forwardRef(
8147
8167
  ({
8148
8168
  concerns,
8149
8169
  items,
@@ -8169,18 +8189,18 @@ var Assessment = React12.forwardRef(
8169
8189
  "data-testid": dataTestId,
8170
8190
  ...props
8171
8191
  }, ref) => {
8172
- const instanceId = React12.useId();
8173
- const [addingFor, setAddingFor] = React12.useState(null);
8174
- const [addMode, setAddMode] = React12.useState(
8192
+ const instanceId = React13.useId();
8193
+ const [addingFor, setAddingFor] = React13.useState(null);
8194
+ const [addMode, setAddMode] = React13.useState(
8175
8195
  defaultAddMode
8176
8196
  );
8177
- const [pendingFreeText, setPendingFreeText] = React12.useState(
8197
+ const [pendingFreeText, setPendingFreeText] = React13.useState(
8178
8198
  null
8179
8199
  );
8180
8200
  const [announcement, setAnnouncement] = useLiveAnnouncement();
8181
8201
  const ambientCodeLookup = useCodeLookupConfig();
8182
8202
  const effectiveRenderOrderSearch = renderOrderSearch === false ? void 0 : renderOrderSearch ?? (ambientCodeLookup ? contextOrderSearch(ambientCodeLookup) : void 0);
8183
- const concernById = React12.useMemo(
8203
+ const concernById = React13.useMemo(
8184
8204
  () => new Map(concerns.map((c) => [c.concernId, c])),
8185
8205
  [concerns]
8186
8206
  );
@@ -8195,7 +8215,7 @@ var Assessment = React12.forwardRef(
8195
8215
  onReorderItems(ids);
8196
8216
  }
8197
8217
  });
8198
- const problemLabel = React12.useCallback(
8218
+ const problemLabel = React13.useCallback(
8199
8219
  (concernId) => concernById.get(concernId)?.assertions.find(
8200
8220
  (a) => items.some(
8201
8221
  (i) => i.concernId === concernId && i.assertionId === a.id
@@ -8247,11 +8267,11 @@ var Assessment = React12.forwardRef(
8247
8267
  }))
8248
8268
  };
8249
8269
  const orderDragEnabled = !readOnly && Boolean(onReorderOrders || onLinkOrder);
8250
- const [draggingOrderId, setDraggingOrderId] = React12.useState(
8270
+ const [draggingOrderId, setDraggingOrderId] = React13.useState(
8251
8271
  null
8252
8272
  );
8253
- const draggingOrderRef = React12.useRef(null);
8254
- const [orderOver, setOrderOver] = React12.useState(null);
8273
+ const draggingOrderRef = React13.useRef(null);
8274
+ const [orderOver, setOrderOver] = React13.useState(null);
8255
8275
  const resetOrderDrag = () => {
8256
8276
  draggingOrderRef.current = null;
8257
8277
  setDraggingOrderId(null);
@@ -8727,10 +8747,10 @@ function AuthDialog({
8727
8747
  requireEmailVerification = false,
8728
8748
  className
8729
8749
  }) {
8730
- const [internalMode, setInternalMode] = React12.useState("login");
8731
- const [isLoading, setIsLoading] = React12.useState(false);
8732
- const [error, setError] = React12.useState(null);
8733
- const [success, setSuccess] = React12.useState(null);
8750
+ const [internalMode, setInternalMode] = React13.useState("login");
8751
+ const [isLoading, setIsLoading] = React13.useState(false);
8752
+ const [error, setError] = React13.useState(null);
8753
+ const [success, setSuccess] = React13.useState(null);
8734
8754
  const mode = controlledMode ?? internalMode;
8735
8755
  const setMode = (newMode) => {
8736
8756
  setError(null);
@@ -8741,14 +8761,14 @@ function AuthDialog({
8741
8761
  setInternalMode(newMode);
8742
8762
  }
8743
8763
  };
8744
- React12.useEffect(() => {
8764
+ React13.useEffect(() => {
8745
8765
  const handleEscape = (e) => {
8746
8766
  if (e.key === "Escape" && isOpen) onClose();
8747
8767
  };
8748
8768
  document.addEventListener("keydown", handleEscape);
8749
8769
  return () => document.removeEventListener("keydown", handleEscape);
8750
8770
  }, [isOpen, onClose]);
8751
- React12.useEffect(() => {
8771
+ React13.useEffect(() => {
8752
8772
  if (isOpen) {
8753
8773
  document.body.style.overflow = "hidden";
8754
8774
  } else {
@@ -8974,9 +8994,9 @@ function AuthDialog({
8974
8994
  );
8975
8995
  }
8976
8996
  function LoginForm({ onSubmit, isLoading, onForgotPassword }) {
8977
- const [email, setEmail] = React12.useState("");
8978
- const [password, setPassword] = React12.useState("");
8979
- const [showPassword, setShowPassword] = React12.useState(false);
8997
+ const [email, setEmail] = React13.useState("");
8998
+ const [password, setPassword] = React13.useState("");
8999
+ const [showPassword, setShowPassword] = React13.useState(false);
8980
9000
  const handleSubmit = (e) => {
8981
9001
  e.preventDefault();
8982
9002
  onSubmit(email, password);
@@ -9078,11 +9098,11 @@ function SignupForm({
9078
9098
  termsUrl,
9079
9099
  privacyUrl
9080
9100
  }) {
9081
- const [email, setEmail] = React12.useState("");
9082
- const [password, setPassword] = React12.useState("");
9083
- const [confirmPassword, setConfirmPassword] = React12.useState("");
9084
- const [acceptedTerms, setAcceptedTerms] = React12.useState(false);
9085
- const [showPassword, setShowPassword] = React12.useState(false);
9101
+ const [email, setEmail] = React13.useState("");
9102
+ const [password, setPassword] = React13.useState("");
9103
+ const [confirmPassword, setConfirmPassword] = React13.useState("");
9104
+ const [acceptedTerms, setAcceptedTerms] = React13.useState(false);
9105
+ const [showPassword, setShowPassword] = React13.useState(false);
9086
9106
  const passwordsMatch = password === confirmPassword;
9087
9107
  const handleSubmit = (e) => {
9088
9108
  e.preventDefault();
@@ -9231,7 +9251,7 @@ function ForgotPasswordForm({
9231
9251
  isLoading,
9232
9252
  onBack
9233
9253
  }) {
9234
- const [email, setEmail] = React12.useState("");
9254
+ const [email, setEmail] = React13.useState("");
9235
9255
  const handleSubmit = (e) => {
9236
9256
  e.preventDefault();
9237
9257
  onSubmit(email);
@@ -9282,9 +9302,9 @@ function ForgotPasswordForm({
9282
9302
  ] });
9283
9303
  }
9284
9304
  function ResetPasswordForm({ onSubmit, isLoading }) {
9285
- const [password, setPassword] = React12.useState("");
9286
- const [confirmPassword, setConfirmPassword] = React12.useState("");
9287
- const [showPassword, setShowPassword] = React12.useState(false);
9305
+ const [password, setPassword] = React13.useState("");
9306
+ const [confirmPassword, setConfirmPassword] = React13.useState("");
9307
+ const [showPassword, setShowPassword] = React13.useState(false);
9288
9308
  const passwordsMatch = password === confirmPassword;
9289
9309
  const handleSubmit = (e) => {
9290
9310
  e.preventDefault();
@@ -9650,10 +9670,10 @@ function ServiceSelect({
9650
9670
  error,
9651
9671
  className
9652
9672
  }) {
9653
- const [isOpen, setIsOpen] = React12.useState(false);
9654
- const dropdownRef = React12.useRef(null);
9673
+ const [isOpen, setIsOpen] = React13.useState(false);
9674
+ const dropdownRef = React13.useRef(null);
9655
9675
  const { anchorRef, floatingRef, style } = useAnchoredPosition({ open: isOpen, matchWidth: true, maxHeight: 240 });
9656
- const outsideRefs = React12.useMemo(
9676
+ const outsideRefs = React13.useMemo(
9657
9677
  () => [dropdownRef, floatingRef],
9658
9678
  [floatingRef]
9659
9679
  );
@@ -9832,7 +9852,7 @@ function DialogOverlay({
9832
9852
  className,
9833
9853
  titleId
9834
9854
  }) {
9835
- React12.useEffect(() => {
9855
+ React13.useEffect(() => {
9836
9856
  if (!isOpen || isStorybookDocsMode()) {
9837
9857
  return void 0;
9838
9858
  }
@@ -9886,8 +9906,8 @@ function BookingDialog({
9886
9906
  isLoading = false,
9887
9907
  className
9888
9908
  }) {
9889
- const titleId = React12.useId();
9890
- const [formData, setFormData] = React12.useState({
9909
+ const titleId = React13.useId();
9910
+ const [formData, setFormData] = React13.useState({
9891
9911
  firstName: defaultValues?.firstName || "",
9892
9912
  lastName: defaultValues?.lastName || "",
9893
9913
  phoneNumber: defaultValues?.phoneNumber || "",
@@ -9896,7 +9916,7 @@ function BookingDialog({
9896
9916
  consentEmail: defaultValues?.consentEmail ?? false,
9897
9917
  consentSms: defaultValues?.consentSms ?? false
9898
9918
  });
9899
- const [errors, setErrors] = React12.useState({});
9919
+ const [errors, setErrors] = React13.useState({});
9900
9920
  const validate = () => {
9901
9921
  const newErrors = {};
9902
9922
  if (!formData.firstName.trim()) {
@@ -10164,7 +10184,7 @@ function InlineBookingForm({
10164
10184
  isLoading = false,
10165
10185
  className
10166
10186
  }) {
10167
- const [formData, setFormData] = React12.useState({
10187
+ const [formData, setFormData] = React13.useState({
10168
10188
  firstName: defaultValues?.firstName || "",
10169
10189
  lastName: defaultValues?.lastName || "",
10170
10190
  phoneNumber: defaultValues?.phoneNumber || "",
@@ -10173,7 +10193,7 @@ function InlineBookingForm({
10173
10193
  consentEmail: defaultValues?.consentEmail ?? false,
10174
10194
  consentSms: defaultValues?.consentSms ?? false
10175
10195
  });
10176
- const [errors, setErrors] = React12.useState({});
10196
+ const [errors, setErrors] = React13.useState({});
10177
10197
  const validate = () => {
10178
10198
  const newErrors = {};
10179
10199
  if (!formData.firstName.trim()) {
@@ -11011,7 +11031,7 @@ function HoursSummary({
11011
11031
  defaultExpanded = false,
11012
11032
  className
11013
11033
  }) {
11014
- const [isExpanded, setIsExpanded] = React12.useState(defaultExpanded);
11034
+ const [isExpanded, setIsExpanded] = React13.useState(defaultExpanded);
11015
11035
  const isOpen = isCurrentlyOpen(schedule.officeHours);
11016
11036
  const todayHours = getTodayHours(schedule.officeHours, use24Hour);
11017
11037
  const hasStructuredHours = schedule.officeHours && schedule.officeHours.length > 0;
@@ -11405,12 +11425,12 @@ function BusinessHoursRulesEditor({
11405
11425
  className,
11406
11426
  addHoursLabel = "Add Hours"
11407
11427
  }) {
11408
- const [rules, setRules] = React12.useState(
11428
+ const [rules, setRules] = React13.useState(
11409
11429
  () => scheduleToRules(value)
11410
11430
  );
11411
11431
  const timeFormat = use24Hour ? "24-hour" : "12-hour";
11412
- const lastScheduleRef = React12.useRef(normalizeSchedule(value));
11413
- React12.useEffect(() => {
11432
+ const lastScheduleRef = React13.useRef(normalizeSchedule(value));
11433
+ React13.useEffect(() => {
11414
11434
  const incoming = normalizeSchedule(value);
11415
11435
  if (incoming !== lastScheduleRef.current) {
11416
11436
  lastScheduleRef.current = incoming;
@@ -11652,13 +11672,13 @@ function CopyIcon({ className }) {
11652
11672
  }
11653
11673
  );
11654
11674
  }
11655
- var ButtonGroup = React12.forwardRef(
11675
+ var ButtonGroup = React13.forwardRef(
11656
11676
  ({ orientation = "auto", split, className, children, ...props }, ref) => {
11657
- const innerRef = React12.useRef(null);
11658
- React12.useImperativeHandle(ref, () => innerRef.current);
11659
- const [stacked, setStacked] = React12.useState(false);
11660
- const requiredWidth = React12.useRef(0);
11661
- React12.useLayoutEffect(() => {
11677
+ const innerRef = React13.useRef(null);
11678
+ React13.useImperativeHandle(ref, () => innerRef.current);
11679
+ const [stacked, setStacked] = React13.useState(false);
11680
+ const requiredWidth = React13.useRef(0);
11681
+ React13.useLayoutEffect(() => {
11662
11682
  if (orientation !== "auto") return;
11663
11683
  const el = innerRef.current;
11664
11684
  if (!el) return;
@@ -11685,7 +11705,7 @@ var ButtonGroup = React12.forwardRef(
11685
11705
  return () => observer.disconnect();
11686
11706
  }, [orientation, stacked, children]);
11687
11707
  const isStacked = orientation === "vertical" || orientation === "auto" && stacked;
11688
- const items = React12.Children.toArray(children);
11708
+ const items = React13.Children.toArray(children);
11689
11709
  const splitCount = split === true ? 1 : typeof split === "number" ? split : 0;
11690
11710
  const splitIndex = !isStacked && splitCount > 0 && splitCount < items.length ? splitCount : 0;
11691
11711
  return /* @__PURE__ */ jsx(
@@ -11765,7 +11785,7 @@ function HeaderActionButton({
11765
11785
  )
11766
11786
  ] });
11767
11787
  }
11768
- var CaseContextBar = React12.forwardRef(
11788
+ var CaseContextBar = React13.forwardRef(
11769
11789
  ({
11770
11790
  caseInfo,
11771
11791
  showBackButton = false,
@@ -11832,7 +11852,7 @@ var CaseContextBar = React12.forwardRef(
11832
11852
  }
11833
11853
  );
11834
11854
  CaseContextBar.displayName = "CaseContextBar";
11835
- var CaseManagementHeader = React12.forwardRef(
11855
+ var CaseManagementHeader = React13.forwardRef(
11836
11856
  ({
11837
11857
  caseInfo,
11838
11858
  patient,
@@ -11856,9 +11876,9 @@ var CaseManagementHeader = React12.forwardRef(
11856
11876
  ...props
11857
11877
  }, ref) => {
11858
11878
  const l = { ...defaultCaseManagementHeaderLabels, ...labels };
11859
- const [internalExpanded, setInternalExpanded] = React12.useState(defaultExpanded);
11879
+ const [internalExpanded, setInternalExpanded] = React13.useState(defaultExpanded);
11860
11880
  const isExpanded = expanded ?? internalExpanded;
11861
- const detailsId = React12.useId();
11881
+ const detailsId = React13.useId();
11862
11882
  const days = caseInfo.daysOpen ?? computeDaysOpen(caseInfo.openedDate);
11863
11883
  const allDetails = days != null ? [...details, { label: l.daysOpenTerm, value: days }] : details;
11864
11884
  const hasDetails = allDetails.length > 0;
@@ -12147,19 +12167,19 @@ function ConditionEditor({
12147
12167
  const prior = concern ? currentAssertion(concern) : void 0;
12148
12168
  const ambientCodeLookup = useCodeLookupConfig();
12149
12169
  const effectiveRenderCodeSearch = renderCodeSearch === false ? void 0 : renderCodeSearch ?? (ambientCodeLookup ? contextConditionCodeSearch(ambientCodeLookup) : void 0);
12150
- const [text, setText] = React12.useState("");
12151
- const [coding, setCoding] = React12.useState([]);
12152
- const [verification, setVerification] = React12.useState("confirmed");
12153
- const [severity, setSeverity] = React12.useState();
12154
- const [onsetDate, setOnsetDate] = React12.useState("");
12155
- const [onsetFuzzy, setOnsetFuzzy] = React12.useState("");
12156
- const [note, setNote] = React12.useState("");
12157
- const [progression, setProgression] = React12.useState(false);
12158
- const [fields, setFields] = React12.useState({});
12159
- const [relType, setRelType] = React12.useState("caused-by");
12160
- const [relTarget, setRelTarget] = React12.useState("");
12161
- const [observation, setObservation] = React12.useState("");
12162
- React12.useEffect(() => {
12170
+ const [text, setText] = React13.useState("");
12171
+ const [coding, setCoding] = React13.useState([]);
12172
+ const [verification, setVerification] = React13.useState("confirmed");
12173
+ const [severity, setSeverity] = React13.useState();
12174
+ const [onsetDate, setOnsetDate] = React13.useState("");
12175
+ const [onsetFuzzy, setOnsetFuzzy] = React13.useState("");
12176
+ const [note, setNote] = React13.useState("");
12177
+ const [progression, setProgression] = React13.useState(false);
12178
+ const [fields, setFields] = React13.useState({});
12179
+ const [relType, setRelType] = React13.useState("caused-by");
12180
+ const [relTarget, setRelTarget] = React13.useState("");
12181
+ const [observation, setObservation] = React13.useState("");
12182
+ React13.useEffect(() => {
12163
12183
  if (!open) return;
12164
12184
  setText(prior?.text ?? "");
12165
12185
  setCoding(withSinglePrimary(prior?.coding ?? []));
@@ -12677,17 +12697,17 @@ function CheckrIntegration({
12677
12697
  viewDetails = "View Details",
12678
12698
  noReportsSelected = "No reports selected"
12679
12699
  } = labels;
12680
- const [showInviteModal, setShowInviteModal] = React12.useState(false);
12681
- const [candidateName, setCandidateName] = React12.useState("");
12682
- const [candidateEmail, setCandidateEmail] = React12.useState("");
12683
- const [candidatePhone, setCandidatePhone] = React12.useState("");
12684
- const [selectedPackage, setSelectedPackage] = React12.useState(
12700
+ const [showInviteModal, setShowInviteModal] = React13.useState(false);
12701
+ const [candidateName, setCandidateName] = React13.useState("");
12702
+ const [candidateEmail, setCandidateEmail] = React13.useState("");
12703
+ const [candidatePhone, setCandidatePhone] = React13.useState("");
12704
+ const [selectedPackage, setSelectedPackage] = React13.useState(
12685
12705
  packages[0]?.id || ""
12686
12706
  );
12687
- const [selectedReports, setSelectedReports] = React12.useState(
12707
+ const [selectedReports, setSelectedReports] = React13.useState(
12688
12708
  /* @__PURE__ */ new Set()
12689
12709
  );
12690
- React12.useEffect(() => {
12710
+ React13.useEffect(() => {
12691
12711
  setSelectedReports((prev) => prev.size > 0 ? /* @__PURE__ */ new Set() : prev);
12692
12712
  }, [reports, connected]);
12693
12713
  const statusLabels = {
@@ -12721,7 +12741,7 @@ function CheckrIntegration({
12721
12741
  failed: "bg-destructive",
12722
12742
  expired: "bg-muted-foreground"
12723
12743
  };
12724
- const statusCounts = React12.useMemo(() => {
12744
+ const statusCounts = React13.useMemo(() => {
12725
12745
  const counts = {
12726
12746
  pending: 0,
12727
12747
  running: 0,
@@ -13260,7 +13280,7 @@ function CommandPaletteProvider({
13260
13280
  }
13261
13281
  }, [isOpen, open, close]);
13262
13282
  useCommandK(toggle, enableShortcut);
13263
- React12__default.useEffect(() => {
13283
+ React13__default.useEffect(() => {
13264
13284
  if (!customEventName) return;
13265
13285
  const handler = () => open();
13266
13286
  document.addEventListener(customEventName, handler);
@@ -14172,11 +14192,11 @@ function formatRetryTime(time) {
14172
14192
  }
14173
14193
  function useConnectionStatus(options = {}) {
14174
14194
  const { onDisconnect, onReconnect } = options;
14175
- const [isOnline, setIsOnline] = React12.useState(() => {
14195
+ const [isOnline, setIsOnline] = React13.useState(() => {
14176
14196
  if (typeof window === "undefined") return true;
14177
14197
  return navigator.onLine;
14178
14198
  });
14179
- React12.useEffect(() => {
14199
+ React13.useEffect(() => {
14180
14200
  const handleOnline = () => {
14181
14201
  setIsOnline(true);
14182
14202
  onReconnect?.();
@@ -14295,12 +14315,12 @@ function RowActionMenu({
14295
14315
  item,
14296
14316
  actions
14297
14317
  }) {
14298
- const [open, setOpen] = React12.useState(false);
14299
- const menuRef = React12.useRef(null);
14300
- const buttonRef = React12.useRef(null);
14301
- const outsideRefs = React12.useMemo(() => [menuRef, buttonRef], []);
14318
+ const [open, setOpen] = React13.useState(false);
14319
+ const menuRef = React13.useRef(null);
14320
+ const buttonRef = React13.useRef(null);
14321
+ const outsideRefs = React13.useMemo(() => [menuRef, buttonRef], []);
14302
14322
  useClickOutside(outsideRefs, () => setOpen(false), open);
14303
- React12.useEffect(() => {
14323
+ React13.useEffect(() => {
14304
14324
  if (!open) return;
14305
14325
  function handleKey(e) {
14306
14326
  if (e.key === "Escape") setOpen(false);
@@ -14308,8 +14328,8 @@ function RowActionMenu({
14308
14328
  document.addEventListener("keydown", handleKey);
14309
14329
  return () => document.removeEventListener("keydown", handleKey);
14310
14330
  }, [open]);
14311
- const [menuPos, setMenuPos] = React12.useState(null);
14312
- React12.useLayoutEffect(() => {
14331
+ const [menuPos, setMenuPos] = React13.useState(null);
14332
+ React13.useLayoutEffect(() => {
14313
14333
  if (!open || !buttonRef.current) return;
14314
14334
  const rect = buttonRef.current.getBoundingClientRect();
14315
14335
  setMenuPos({
@@ -14496,8 +14516,8 @@ function buildDefaultActions(onView, onEdit, onDelete) {
14496
14516
  function ViewModalActions({
14497
14517
  viewTarget
14498
14518
  }) {
14499
- const [shareOpen, setShareOpen] = React12.useState(false);
14500
- const shareRef = React12.useRef(null);
14519
+ const [shareOpen, setShareOpen] = React13.useState(false);
14520
+ const shareRef = React13.useRef(null);
14501
14521
  const {
14502
14522
  anchorRef: shareAnchorRef,
14503
14523
  floatingRef: shareFloatingRef,
@@ -14505,7 +14525,7 @@ function ViewModalActions({
14505
14525
  } = useAnchoredPosition({
14506
14526
  open: shareOpen
14507
14527
  });
14508
- const shareOutsideRefs = React12.useMemo(
14528
+ const shareOutsideRefs = React13.useMemo(
14509
14529
  () => [shareRef, shareFloatingRef],
14510
14530
  [shareFloatingRef]
14511
14531
  );
@@ -14651,7 +14671,7 @@ function ViewModalActions({
14651
14671
  )
14652
14672
  ] });
14653
14673
  }
14654
- var CountBadge = React12.forwardRef(
14674
+ var CountBadge = React13.forwardRef(
14655
14675
  ({
14656
14676
  className,
14657
14677
  variant,
@@ -14668,19 +14688,19 @@ var CountBadge = React12.forwardRef(
14668
14688
  showZero = false,
14669
14689
  ...props
14670
14690
  }, ref) => {
14671
- const [open, setOpen] = React12.useState(false);
14672
- const containerRef = React12.useRef(null);
14673
- const [deleteTarget, setDeleteTarget] = React12.useState(null);
14674
- const [editTarget, setEditTarget] = React12.useState(
14691
+ const [open, setOpen] = React13.useState(false);
14692
+ const containerRef = React13.useRef(null);
14693
+ const [deleteTarget, setDeleteTarget] = React13.useState(null);
14694
+ const [editTarget, setEditTarget] = React13.useState(
14675
14695
  null
14676
14696
  );
14677
- const [editForm, setEditForm] = React12.useState({});
14678
- const [viewTarget, setViewTarget] = React12.useState(
14697
+ const [editForm, setEditForm] = React13.useState({});
14698
+ const [viewTarget, setViewTarget] = React13.useState(
14679
14699
  null
14680
14700
  );
14681
14701
  const showMenu = items && items.length > 0;
14682
14702
  const hidden = count === 0 && !showZero;
14683
- React12.useEffect(() => {
14703
+ React13.useEffect(() => {
14684
14704
  if (hidden) setOpen(false);
14685
14705
  }, [hidden]);
14686
14706
  const {
@@ -14692,12 +14712,12 @@ var CountBadge = React12.forwardRef(
14692
14712
  placement: "bottom-end",
14693
14713
  offset: 8
14694
14714
  });
14695
- const outsideRefs = React12.useMemo(
14715
+ const outsideRefs = React13.useMemo(
14696
14716
  () => [containerRef, floatingRef],
14697
14717
  [floatingRef]
14698
14718
  );
14699
14719
  useClickOutside(outsideRefs, () => setOpen(false), open);
14700
- React12.useEffect(() => {
14720
+ React13.useEffect(() => {
14701
14721
  if (!open) return;
14702
14722
  const handleEscape = (e) => {
14703
14723
  if (e.key === "Escape") setOpen(false);
@@ -14705,13 +14725,13 @@ var CountBadge = React12.forwardRef(
14705
14725
  document.addEventListener("keydown", handleEscape);
14706
14726
  return () => document.removeEventListener("keydown", handleEscape);
14707
14727
  }, [open]);
14708
- const handleDeleteRequest = React12.useCallback((item) => {
14728
+ const handleDeleteRequest = React13.useCallback((item) => {
14709
14729
  setDeleteTarget(item);
14710
14730
  }, []);
14711
- const handleViewRequest = React12.useCallback((item) => {
14731
+ const handleViewRequest = React13.useCallback((item) => {
14712
14732
  setViewTarget(item);
14713
14733
  }, []);
14714
- const handleEditRequest = React12.useCallback((item) => {
14734
+ const handleEditRequest = React13.useCallback((item) => {
14715
14735
  setEditTarget(item);
14716
14736
  setEditForm({
14717
14737
  label: item.label,
@@ -15170,7 +15190,7 @@ function CookieConsentBanner({
15170
15190
  isMobileApp = false,
15171
15191
  className
15172
15192
  }) {
15173
- const [isAnimating, setIsAnimating] = React12.useState(false);
15193
+ const [isAnimating, setIsAnimating] = React13.useState(false);
15174
15194
  const handleAccept = () => {
15175
15195
  setIsAnimating(true);
15176
15196
  setTimeout(() => {
@@ -15229,7 +15249,7 @@ function CookieConsentBanner({
15229
15249
  appName,
15230
15250
  " you are agreeing to our",
15231
15251
  " ",
15232
- legalLinks.map((link, index) => /* @__PURE__ */ jsxs(React12.Fragment, { children: [
15252
+ legalLinks.map((link, index) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
15233
15253
  index > 0 && (index === legalLinks.length - 1 ? " and " : ", "),
15234
15254
  /* @__PURE__ */ jsx(
15235
15255
  "a",
@@ -15353,20 +15373,20 @@ function CompactCookieBanner({
15353
15373
  var COOKIE_CONSENT_KEY = "cookie-consent-accepted";
15354
15374
  function useCookieConsent(options = {}) {
15355
15375
  const { storageKey = COOKIE_CONSENT_KEY, onConsent } = options;
15356
- const [hasConsented, setHasConsented] = React12.useState(() => {
15376
+ const [hasConsented, setHasConsented] = React13.useState(() => {
15357
15377
  if (typeof window === "undefined") return false;
15358
15378
  return localStorage.getItem(storageKey) === "true";
15359
15379
  });
15360
- const acceptCookies = React12.useCallback(() => {
15380
+ const acceptCookies = React13.useCallback(() => {
15361
15381
  localStorage.setItem(storageKey, "true");
15362
15382
  setHasConsented(true);
15363
15383
  onConsent?.();
15364
15384
  }, [storageKey, onConsent]);
15365
- const declineCookies = React12.useCallback(() => {
15385
+ const declineCookies = React13.useCallback(() => {
15366
15386
  localStorage.setItem(storageKey, "declined");
15367
15387
  setHasConsented(true);
15368
15388
  }, [storageKey]);
15369
- const resetConsent = React12.useCallback(() => {
15389
+ const resetConsent = React13.useCallback(() => {
15370
15390
  localStorage.removeItem(storageKey);
15371
15391
  setHasConsented(false);
15372
15392
  }, [storageKey]);
@@ -15753,9 +15773,9 @@ function CSVFileUpload({
15753
15773
  selectFile = "Select a file to upload or drag and drop",
15754
15774
  selectButton = "Select File to Upload"
15755
15775
  } = labels;
15756
- const inputRef = React12.useRef(null);
15757
- const [isDragging, setIsDragging] = React12.useState(false);
15758
- const handleDrop = React12.useCallback(
15776
+ const inputRef = React13.useRef(null);
15777
+ const [isDragging, setIsDragging] = React13.useState(false);
15778
+ const handleDrop = React13.useCallback(
15759
15779
  (e) => {
15760
15780
  e.preventDefault();
15761
15781
  setIsDragging(false);
@@ -15766,14 +15786,14 @@ function CSVFileUpload({
15766
15786
  },
15767
15787
  [onFileSelect]
15768
15788
  );
15769
- const handleDragOver = React12.useCallback((e) => {
15789
+ const handleDragOver = React13.useCallback((e) => {
15770
15790
  e.preventDefault();
15771
15791
  setIsDragging(true);
15772
15792
  }, []);
15773
- const handleDragLeave = React12.useCallback(() => {
15793
+ const handleDragLeave = React13.useCallback(() => {
15774
15794
  setIsDragging(false);
15775
15795
  }, []);
15776
- const handleFileChange = React12.useCallback(
15796
+ const handleFileChange = React13.useCallback(
15777
15797
  (e) => {
15778
15798
  const file = e.target.files?.[0];
15779
15799
  if (file) {
@@ -15838,7 +15858,7 @@ var widgetVariants = cva("", {
15838
15858
  size: "md"
15839
15859
  }
15840
15860
  });
15841
- var DashboardWidget = React12.forwardRef(
15861
+ var DashboardWidget = React13.forwardRef(
15842
15862
  ({
15843
15863
  className,
15844
15864
  size,
@@ -15933,7 +15953,7 @@ var DashboardWidget = React12.forwardRef(
15933
15953
  }
15934
15954
  );
15935
15955
  DashboardWidget.displayName = "DashboardWidget";
15936
- var DashboardWidgetInfo = React12.forwardRef(({ className, items, columns = 2, layout = "stacked", ...props }, ref) => {
15956
+ var DashboardWidgetInfo = React13.forwardRef(({ className, items, columns = 2, layout = "stacked", ...props }, ref) => {
15937
15957
  const gridCols = {
15938
15958
  1: "grid-cols-1",
15939
15959
  2: "grid-cols-2",
@@ -16067,10 +16087,10 @@ function WidgetRowActionMenu({
16067
16087
  rowIndex,
16068
16088
  actions
16069
16089
  }) {
16070
- const [open, setOpen] = React12.useState(false);
16071
- const menuRef = React12.useRef(null);
16072
- const buttonRef = React12.useRef(null);
16073
- React12.useEffect(() => {
16090
+ const [open, setOpen] = React13.useState(false);
16091
+ const menuRef = React13.useRef(null);
16092
+ const buttonRef = React13.useRef(null);
16093
+ React13.useEffect(() => {
16074
16094
  if (!open) return;
16075
16095
  function handleClick(e) {
16076
16096
  if (menuRef.current && !menuRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
@@ -16080,7 +16100,7 @@ function WidgetRowActionMenu({
16080
16100
  document.addEventListener("mousedown", handleClick);
16081
16101
  return () => document.removeEventListener("mousedown", handleClick);
16082
16102
  }, [open]);
16083
- React12.useEffect(() => {
16103
+ React13.useEffect(() => {
16084
16104
  if (!open) return;
16085
16105
  function handleKey(e) {
16086
16106
  if (e.key === "Escape") setOpen(false);
@@ -16088,8 +16108,8 @@ function WidgetRowActionMenu({
16088
16108
  document.addEventListener("keydown", handleKey);
16089
16109
  return () => document.removeEventListener("keydown", handleKey);
16090
16110
  }, [open]);
16091
- const [menuPos, setMenuPos] = React12.useState(null);
16092
- React12.useLayoutEffect(() => {
16111
+ const [menuPos, setMenuPos] = React13.useState(null);
16112
+ React13.useLayoutEffect(() => {
16093
16113
  if (!open || !buttonRef.current) return;
16094
16114
  const rect = buttonRef.current.getBoundingClientRect();
16095
16115
  setMenuPos({
@@ -16170,7 +16190,7 @@ function WidgetRowActionMenu({
16170
16190
  )
16171
16191
  ] });
16172
16192
  }
16173
- var DashboardWidgetTable = React12.forwardRef(DashboardWidgetTableInner);
16193
+ var DashboardWidgetTable = React13.forwardRef(DashboardWidgetTableInner);
16174
16194
  var actionColorMap = {
16175
16195
  primary: "bg-primary-100 text-primary-900 dark:bg-primary-900/40 dark:text-primary-300",
16176
16196
  green: "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300",
@@ -16181,7 +16201,7 @@ var actionColorMap = {
16181
16201
  amber: "bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",
16182
16202
  neutral: "bg-neutral-100 text-neutral-700 dark:bg-neutral-800 dark:text-neutral-300"
16183
16203
  };
16184
- var DashboardWidgetActions = React12.forwardRef(({ className, actions, columns = 2, ...props }, ref) => {
16204
+ var DashboardWidgetActions = React13.forwardRef(({ className, actions, columns = 2, ...props }, ref) => {
16185
16205
  const gridCols = {
16186
16206
  1: "grid-cols-1",
16187
16207
  2: "grid-cols-2",
@@ -16234,7 +16254,7 @@ var DashboardWidgetActions = React12.forwardRef(({ className, actions, columns =
16234
16254
  );
16235
16255
  });
16236
16256
  DashboardWidgetActions.displayName = "DashboardWidgetActions";
16237
- var DashboardWidgetDataCards = React12.forwardRef(({ className, items, columns = 2, footer, ...props }, ref) => {
16257
+ var DashboardWidgetDataCards = React13.forwardRef(({ className, items, columns = 2, footer, ...props }, ref) => {
16238
16258
  const gridCols = {
16239
16259
  2: "grid-cols-2",
16240
16260
  3: "grid-cols-3",
@@ -16436,24 +16456,24 @@ function DateRangePicker({
16436
16456
  labels = {}
16437
16457
  }) {
16438
16458
  const finalPresets = presets || getDefaultPresets(labels);
16439
- const [isCalendarOpen, setIsCalendarOpen] = React12.useState(false);
16440
- const [leftMonth, setLeftMonth] = React12.useState(
16459
+ const [isCalendarOpen, setIsCalendarOpen] = React13.useState(false);
16460
+ const [leftMonth, setLeftMonth] = React13.useState(
16441
16461
  () => value?.start?.getMonth() ?? (/* @__PURE__ */ new Date()).getMonth()
16442
16462
  );
16443
- const [leftYear, setLeftYear] = React12.useState(
16463
+ const [leftYear, setLeftYear] = React13.useState(
16444
16464
  () => value?.start?.getFullYear() ?? (/* @__PURE__ */ new Date()).getFullYear()
16445
16465
  );
16446
- const [rangeStart, setRangeStart] = React12.useState(
16466
+ const [rangeStart, setRangeStart] = React13.useState(
16447
16467
  value?.start ?? null
16448
16468
  );
16449
- const [rangeEnd, setRangeEnd] = React12.useState(
16469
+ const [rangeEnd, setRangeEnd] = React13.useState(
16450
16470
  value?.end ?? null
16451
16471
  );
16452
- const [selectingEnd, setSelectingEnd] = React12.useState(false);
16453
- const [hoverDate, setHoverDate] = React12.useState(null);
16454
- const calendarRef = React12.useRef(null);
16455
- const triggerRef = React12.useRef(null);
16456
- const [resolvedAlign, setResolvedAlign] = React12.useState(
16472
+ const [selectingEnd, setSelectingEnd] = React13.useState(false);
16473
+ const [hoverDate, setHoverDate] = React13.useState(null);
16474
+ const calendarRef = React13.useRef(null);
16475
+ const triggerRef = React13.useRef(null);
16476
+ const [resolvedAlign, setResolvedAlign] = React13.useState(
16457
16477
  align === "end" ? "end" : "start"
16458
16478
  );
16459
16479
  const isMobileVariant = variant === "mobile";
@@ -16463,7 +16483,7 @@ function DateRangePicker({
16463
16483
  );
16464
16484
  const rightMonth = leftMonth === 11 ? 0 : leftMonth + 1;
16465
16485
  const rightYear = leftMonth === 11 ? leftYear + 1 : leftYear;
16466
- React12.useEffect(() => {
16486
+ React13.useEffect(() => {
16467
16487
  if (!value) {
16468
16488
  setRangeStart(null);
16469
16489
  setRangeEnd(null);
@@ -16472,8 +16492,8 @@ function DateRangePicker({
16472
16492
  setRangeStart(value.start ?? null);
16473
16493
  setRangeEnd(value.end ?? null);
16474
16494
  }, [value]);
16475
- const wrapperRef = React12.useRef(null);
16476
- const outsideRefs = React12.useMemo(
16495
+ const wrapperRef = React13.useRef(null);
16496
+ const outsideRefs = React13.useMemo(
16477
16497
  () => [wrapperRef, calendarRef],
16478
16498
  [calendarRef]
16479
16499
  );
@@ -16494,7 +16514,7 @@ function DateRangePicker({
16494
16514
  setSelectingEnd(false);
16495
16515
  triggerRef.current?.focus();
16496
16516
  }, isCalendarOpen);
16497
- React12.useEffect(() => {
16517
+ React13.useEffect(() => {
16498
16518
  if (isStorybookDocsMode()) return;
16499
16519
  if (isMobileVariant && isCalendarOpen) {
16500
16520
  const prev = document.body.style.overflow;
@@ -16504,7 +16524,7 @@ function DateRangePicker({
16504
16524
  };
16505
16525
  }
16506
16526
  }, [isMobileVariant, isCalendarOpen]);
16507
- React12.useLayoutEffect(() => {
16527
+ React13.useLayoutEffect(() => {
16508
16528
  if (isMobileVariant || !isCalendarOpen) return;
16509
16529
  if (align === "start" || align === "end") {
16510
16530
  setResolvedAlign(align);
@@ -16609,7 +16629,7 @@ function DateRangePicker({
16609
16629
  return isSameDay(date, today);
16610
16630
  };
16611
16631
  const displayValue = value ? formatDateRange(value) : "";
16612
- const monthNames = React12.useMemo(
16632
+ const monthNames = React13.useMemo(
16613
16633
  () => Array.from(
16614
16634
  { length: 12 },
16615
16635
  (_, i) => new Intl.DateTimeFormat(void 0, { month: "long" }).format(
@@ -16618,7 +16638,7 @@ function DateRangePicker({
16618
16638
  ),
16619
16639
  []
16620
16640
  );
16621
- const weekdayNames = React12.useMemo(
16641
+ const weekdayNames = React13.useMemo(
16622
16642
  () => Array.from(
16623
16643
  { length: 7 },
16624
16644
  (_, i) => new Intl.DateTimeFormat(void 0, { weekday: "short" }).format(
@@ -17056,11 +17076,11 @@ function DropZone({
17056
17076
  className,
17057
17077
  children
17058
17078
  }) {
17059
- const [isDragging, setIsDragging] = React12.useState(false);
17060
- const inputRef = React12.useRef(null);
17061
- const dropZoneRef = React12.useRef(null);
17062
- const dragCounter = React12.useRef(0);
17063
- const handleDragEnter = React12.useCallback(
17079
+ const [isDragging, setIsDragging] = React13.useState(false);
17080
+ const inputRef = React13.useRef(null);
17081
+ const dropZoneRef = React13.useRef(null);
17082
+ const dragCounter = React13.useRef(0);
17083
+ const handleDragEnter = React13.useCallback(
17064
17084
  (e) => {
17065
17085
  e.preventDefault();
17066
17086
  e.stopPropagation();
@@ -17072,7 +17092,7 @@ function DropZone({
17072
17092
  },
17073
17093
  [disabled]
17074
17094
  );
17075
- const handleDragLeave = React12.useCallback(
17095
+ const handleDragLeave = React13.useCallback(
17076
17096
  (e) => {
17077
17097
  e.preventDefault();
17078
17098
  e.stopPropagation();
@@ -17084,11 +17104,11 @@ function DropZone({
17084
17104
  },
17085
17105
  [disabled]
17086
17106
  );
17087
- const handleDragOver = React12.useCallback((e) => {
17107
+ const handleDragOver = React13.useCallback((e) => {
17088
17108
  e.preventDefault();
17089
17109
  e.stopPropagation();
17090
17110
  }, []);
17091
- const handleDrop = React12.useCallback(
17111
+ const handleDrop = React13.useCallback(
17092
17112
  (e) => {
17093
17113
  e.preventDefault();
17094
17114
  e.stopPropagation();
@@ -17101,12 +17121,12 @@ function DropZone({
17101
17121
  },
17102
17122
  [disabled, onFilesSelected]
17103
17123
  );
17104
- const handleClick = React12.useCallback(() => {
17124
+ const handleClick = React13.useCallback(() => {
17105
17125
  if (!disabled) {
17106
17126
  inputRef.current?.click();
17107
17127
  }
17108
17128
  }, [disabled]);
17109
- const handleKeyDown = React12.useCallback(
17129
+ const handleKeyDown = React13.useCallback(
17110
17130
  (e) => {
17111
17131
  if ((e.key === "Enter" || e.key === " ") && !disabled) {
17112
17132
  e.preventDefault();
@@ -17115,7 +17135,7 @@ function DropZone({
17115
17135
  },
17116
17136
  [disabled]
17117
17137
  );
17118
- const handleInputChange = React12.useCallback(
17138
+ const handleInputChange = React13.useCallback(
17119
17139
  (e) => {
17120
17140
  if (e.target.files && e.target.files.length > 0) {
17121
17141
  onFilesSelected(e.target.files);
@@ -17206,7 +17226,7 @@ DropZone.displayName = "DropZone";
17206
17226
  function FilePreviewItem({ file, onRemove, disabled }) {
17207
17227
  const isPdf = file.file.type === "application/pdf";
17208
17228
  const isImage = file.file.type.startsWith("image/");
17209
- const handleRemove = React12.useCallback(() => {
17229
+ const handleRemove = React13.useCallback(() => {
17210
17230
  onRemove(file.id);
17211
17231
  }, [file.id, onRemove]);
17212
17232
  return /* @__PURE__ */ jsxs(
@@ -17352,24 +17372,24 @@ function useCamera({
17352
17372
  width = 1920,
17353
17373
  height = 1080
17354
17374
  } = {}) {
17355
- const [permission, setPermission] = React12.useState("prompt");
17356
- const [stream, setStream] = React12.useState(null);
17357
- const [isReady, setIsReady] = React12.useState(false);
17358
- const [error, setError] = React12.useState(null);
17359
- const [currentFacingMode, setCurrentFacingMode] = React12.useState(initialFacingMode);
17360
- const videoRef = React12.useRef(null);
17361
- const canvasRef = React12.useRef(null);
17362
- React12.useEffect(() => {
17375
+ const [permission, setPermission] = React13.useState("prompt");
17376
+ const [stream, setStream] = React13.useState(null);
17377
+ const [isReady, setIsReady] = React13.useState(false);
17378
+ const [error, setError] = React13.useState(null);
17379
+ const [currentFacingMode, setCurrentFacingMode] = React13.useState(initialFacingMode);
17380
+ const videoRef = React13.useRef(null);
17381
+ const canvasRef = React13.useRef(null);
17382
+ React13.useEffect(() => {
17363
17383
  checkCameraPermission().then(setPermission);
17364
17384
  }, []);
17365
- React12.useEffect(() => {
17385
+ React13.useEffect(() => {
17366
17386
  return () => {
17367
17387
  if (stream) {
17368
17388
  stream.getTracks().forEach((track) => track.stop());
17369
17389
  }
17370
17390
  };
17371
17391
  }, [stream]);
17372
- const startCamera = React12.useCallback(async () => {
17392
+ const startCamera = React13.useCallback(async () => {
17373
17393
  if (!hasCameraSupport()) {
17374
17394
  setPermission("unavailable");
17375
17395
  setError(new Error("Camera is not supported on this device"));
@@ -17403,7 +17423,7 @@ function useCamera({
17403
17423
  }
17404
17424
  }
17405
17425
  }, [currentFacingMode, width, height]);
17406
- const stopCamera = React12.useCallback(() => {
17426
+ const stopCamera = React13.useCallback(() => {
17407
17427
  if (stream) {
17408
17428
  stream.getTracks().forEach((track) => track.stop());
17409
17429
  setStream(null);
@@ -17413,8 +17433,8 @@ function useCamera({
17413
17433
  videoRef.current.srcObject = null;
17414
17434
  }
17415
17435
  }, [stream]);
17416
- const shouldRestartRef = React12.useRef(false);
17417
- const switchCamera = React12.useCallback(() => {
17436
+ const shouldRestartRef = React13.useRef(false);
17437
+ const switchCamera = React13.useCallback(() => {
17418
17438
  const newFacingMode = currentFacingMode === "user" ? "environment" : "user";
17419
17439
  if (stream) {
17420
17440
  stream.getTracks().forEach((track) => track.stop());
@@ -17427,13 +17447,13 @@ function useCamera({
17427
17447
  }
17428
17448
  setCurrentFacingMode(newFacingMode);
17429
17449
  }, [currentFacingMode, stream]);
17430
- React12.useEffect(() => {
17450
+ React13.useEffect(() => {
17431
17451
  if (shouldRestartRef.current && !stream) {
17432
17452
  shouldRestartRef.current = false;
17433
17453
  startCamera();
17434
17454
  }
17435
17455
  }, [currentFacingMode, stream, startCamera]);
17436
- const capturePhoto = React12.useCallback(() => {
17456
+ const capturePhoto = React13.useCallback(() => {
17437
17457
  if (!videoRef.current || !isReady) {
17438
17458
  return null;
17439
17459
  }
@@ -17980,14 +18000,14 @@ function WebcamModal({
17980
18000
  width: 1920,
17981
18001
  height: 1080
17982
18002
  });
17983
- const [capturedFile, setCapturedFile] = React12.useState(null);
17984
- const [previewUrl, setPreviewUrl] = React12.useState(null);
17985
- const [autoDetectEnabled, setAutoDetectEnabled] = React12.useState(enableAutoCapture);
17986
- const [videoDimensions, setVideoDimensions] = React12.useState({
18003
+ const [capturedFile, setCapturedFile] = React13.useState(null);
18004
+ const [previewUrl, setPreviewUrl] = React13.useState(null);
18005
+ const [autoDetectEnabled, setAutoDetectEnabled] = React13.useState(enableAutoCapture);
18006
+ const [videoDimensions, setVideoDimensions] = React13.useState({
17987
18007
  width: 0,
17988
18008
  height: 0
17989
18009
  });
17990
- const handleAutoCapture = React12.useCallback(() => {
18010
+ const handleAutoCapture = React13.useCallback(() => {
17991
18011
  const file = capturePhoto();
17992
18012
  if (file) {
17993
18013
  setCapturedFile(file);
@@ -18008,8 +18028,8 @@ function WebcamModal({
18008
18028
  },
18009
18029
  handleAutoCapture
18010
18030
  );
18011
- const hasStartedRef = React12.useRef(false);
18012
- React12.useEffect(() => {
18031
+ const hasStartedRef = React13.useRef(false);
18032
+ React13.useEffect(() => {
18013
18033
  const video = videoRef.current;
18014
18034
  if (video && isReady) {
18015
18035
  const updateDimensions = () => {
@@ -18023,7 +18043,7 @@ function WebcamModal({
18023
18043
  return () => video.removeEventListener("resize", updateDimensions);
18024
18044
  }
18025
18045
  }, [isReady, videoRef]);
18026
- React12.useEffect(() => {
18046
+ React13.useEffect(() => {
18027
18047
  if (open && permission !== "denied" && permission !== "unavailable") {
18028
18048
  if (!hasStartedRef.current) {
18029
18049
  hasStartedRef.current = true;
@@ -18042,7 +18062,7 @@ function WebcamModal({
18042
18062
  });
18043
18063
  }
18044
18064
  }, [open, permission]);
18045
- React12.useEffect(() => {
18065
+ React13.useEffect(() => {
18046
18066
  if (isReady && autoDetectEnabled && !capturedFile) {
18047
18067
  detection.startDetection();
18048
18068
  }
@@ -18050,7 +18070,7 @@ function WebcamModal({
18050
18070
  detection.stopDetection();
18051
18071
  };
18052
18072
  }, [isReady, autoDetectEnabled, capturedFile]);
18053
- const handleCapture = React12.useCallback(() => {
18073
+ const handleCapture = React13.useCallback(() => {
18054
18074
  const file = capturePhoto();
18055
18075
  if (file) {
18056
18076
  setCapturedFile(file);
@@ -18058,7 +18078,7 @@ function WebcamModal({
18058
18078
  stopCamera();
18059
18079
  }
18060
18080
  }, [capturePhoto, stopCamera]);
18061
- const handleRetake = React12.useCallback(() => {
18081
+ const handleRetake = React13.useCallback(() => {
18062
18082
  if (previewUrl) {
18063
18083
  URL.revokeObjectURL(previewUrl);
18064
18084
  }
@@ -18067,13 +18087,13 @@ function WebcamModal({
18067
18087
  detection.resetDetection();
18068
18088
  startCamera();
18069
18089
  }, [previewUrl, startCamera, detection]);
18070
- const handleConfirm = React12.useCallback(() => {
18090
+ const handleConfirm = React13.useCallback(() => {
18071
18091
  if (capturedFile) {
18072
18092
  onCapture(capturedFile);
18073
18093
  onOpenChange(false);
18074
18094
  }
18075
18095
  }, [capturedFile, onCapture, onOpenChange]);
18076
- const handleClose = React12.useCallback(() => {
18096
+ const handleClose = React13.useCallback(() => {
18077
18097
  stopCamera();
18078
18098
  detection.stopDetection();
18079
18099
  if (previewUrl) {
@@ -18225,13 +18245,13 @@ function useFileUpload({
18225
18245
  multiple = false,
18226
18246
  onValidationError
18227
18247
  } = {}) {
18228
- const [files, setFiles] = React12.useState([]);
18229
- React12.useEffect(() => {
18248
+ const [files, setFiles] = React13.useState([]);
18249
+ React13.useEffect(() => {
18230
18250
  return () => {
18231
18251
  files.forEach((f) => URL.revokeObjectURL(f.previewUrl));
18232
18252
  };
18233
18253
  }, []);
18234
- const addFiles = React12.useCallback(
18254
+ const addFiles = React13.useCallback(
18235
18255
  (fileList, source = "upload") => {
18236
18256
  const newFiles = [];
18237
18257
  const errors = [];
@@ -18263,7 +18283,7 @@ function useFileUpload({
18263
18283
  },
18264
18284
  [acceptedFileTypes, maxFileSizeMb, multiple, onValidationError]
18265
18285
  );
18266
- const addFile = React12.useCallback(
18286
+ const addFile = React13.useCallback(
18267
18287
  (file, source = "upload") => {
18268
18288
  const dataTransfer = new DataTransfer();
18269
18289
  dataTransfer.items.add(file);
@@ -18271,7 +18291,7 @@ function useFileUpload({
18271
18291
  },
18272
18292
  [addFiles]
18273
18293
  );
18274
- const removeFile = React12.useCallback((id) => {
18294
+ const removeFile = React13.useCallback((id) => {
18275
18295
  setFiles((prev) => {
18276
18296
  const fileToRemove = prev.find((f) => f.id === id);
18277
18297
  if (fileToRemove) {
@@ -18280,13 +18300,13 @@ function useFileUpload({
18280
18300
  return prev.filter((f) => f.id !== id);
18281
18301
  });
18282
18302
  }, []);
18283
- const clearFiles = React12.useCallback(() => {
18303
+ const clearFiles = React13.useCallback(() => {
18284
18304
  setFiles((prev) => {
18285
18305
  prev.forEach((f) => URL.revokeObjectURL(f.previewUrl));
18286
18306
  return [];
18287
18307
  });
18288
18308
  }, []);
18289
- const getFiles = React12.useCallback(() => {
18309
+ const getFiles = React13.useCallback(() => {
18290
18310
  return files.map((f) => f.file);
18291
18311
  }, [files]);
18292
18312
  return {
@@ -18314,12 +18334,12 @@ function DocumentScanner({
18314
18334
  onValidationError,
18315
18335
  onStateChange
18316
18336
  }) {
18317
- const [state, setState] = React12.useState("idle");
18318
- const [error, setError] = React12.useState(null);
18319
- const [isWebcamOpen, setIsWebcamOpen] = React12.useState(false);
18320
- const [validationErrors, setValidationErrors] = React12.useState([]);
18337
+ const [state, setState] = React13.useState("idle");
18338
+ const [error, setError] = React13.useState(null);
18339
+ const [isWebcamOpen, setIsWebcamOpen] = React13.useState(false);
18340
+ const [validationErrors, setValidationErrors] = React13.useState([]);
18321
18341
  const isMobile = useIsMobile();
18322
- const cameraInputRef = React12.useRef(null);
18342
+ const cameraInputRef = React13.useRef(null);
18323
18343
  const {
18324
18344
  files,
18325
18345
  addFiles,
@@ -18337,17 +18357,17 @@ function DocumentScanner({
18337
18357
  onValidationError?.(errors);
18338
18358
  }
18339
18359
  });
18340
- React12.useEffect(() => {
18360
+ React13.useEffect(() => {
18341
18361
  onStateChange?.(state);
18342
18362
  }, [state, onStateChange]);
18343
- React12.useEffect(() => {
18363
+ React13.useEffect(() => {
18344
18364
  if (hasFiles && state === "idle") {
18345
18365
  setState("preview");
18346
18366
  } else if (!hasFiles && state === "preview") {
18347
18367
  setState("idle");
18348
18368
  }
18349
18369
  }, [hasFiles, state]);
18350
- const handleFilesSelected = React12.useCallback(
18370
+ const handleFilesSelected = React13.useCallback(
18351
18371
  (fileList) => {
18352
18372
  setError(null);
18353
18373
  setValidationErrors([]);
@@ -18355,10 +18375,10 @@ function DocumentScanner({
18355
18375
  },
18356
18376
  [addFiles]
18357
18377
  );
18358
- const handleCameraCapture = React12.useCallback(() => {
18378
+ const handleCameraCapture = React13.useCallback(() => {
18359
18379
  cameraInputRef.current?.click();
18360
18380
  }, []);
18361
- const handleCameraInputChange = React12.useCallback(
18381
+ const handleCameraInputChange = React13.useCallback(
18362
18382
  (e) => {
18363
18383
  if (e.target.files && e.target.files.length > 0) {
18364
18384
  setError(null);
@@ -18369,7 +18389,7 @@ function DocumentScanner({
18369
18389
  },
18370
18390
  [addFiles]
18371
18391
  );
18372
- const handleWebcamCapture = React12.useCallback(
18392
+ const handleWebcamCapture = React13.useCallback(
18373
18393
  (file) => {
18374
18394
  setError(null);
18375
18395
  setValidationErrors([]);
@@ -18377,7 +18397,7 @@ function DocumentScanner({
18377
18397
  },
18378
18398
  [addFile]
18379
18399
  );
18380
- const handleScan = React12.useCallback(async () => {
18400
+ const handleScan = React13.useCallback(async () => {
18381
18401
  if (!hasFiles) return;
18382
18402
  try {
18383
18403
  setState("processing");
@@ -18396,11 +18416,11 @@ function DocumentScanner({
18396
18416
  setError(errorMessage);
18397
18417
  }
18398
18418
  }, [hasFiles, getFiles, onScan, onResult, clearFiles]);
18399
- const handleRetry = React12.useCallback(() => {
18419
+ const handleRetry = React13.useCallback(() => {
18400
18420
  setState("preview");
18401
18421
  setError(null);
18402
18422
  }, []);
18403
- const handleClearAll = React12.useCallback(() => {
18423
+ const handleClearAll = React13.useCallback(() => {
18404
18424
  clearFiles();
18405
18425
  setError(null);
18406
18426
  setValidationErrors([]);
@@ -18692,30 +18712,30 @@ function DockablePanel({
18692
18712
  container,
18693
18713
  className
18694
18714
  }) {
18695
- const panelRef = React12.useRef(null);
18696
- const contentRef = React12.useRef(null);
18697
- const onCloseRef = React12.useRef(onClose);
18715
+ const panelRef = React13.useRef(null);
18716
+ const contentRef = React13.useRef(null);
18717
+ const onCloseRef = React13.useRef(onClose);
18698
18718
  onCloseRef.current = onClose;
18699
- const onModeChangeRef = React12.useRef(onModeChange);
18719
+ const onModeChangeRef = React13.useRef(onModeChange);
18700
18720
  onModeChangeRef.current = onModeChange;
18701
- const dirtyRef = React12.useRef(dirty);
18721
+ const dirtyRef = React13.useRef(dirty);
18702
18722
  dirtyRef.current = dirty;
18703
- const modeRef = React12.useRef(mode);
18723
+ const modeRef = React13.useRef(mode);
18704
18724
  modeRef.current = mode;
18705
- const discardRef = React12.useRef(discardMessage);
18725
+ const discardRef = React13.useRef(discardMessage);
18706
18726
  discardRef.current = discardMessage;
18707
18727
  const dockable = Boolean(onModeChange);
18708
18728
  const docked = dockable && mode === "docked";
18709
- const contentId = React12.useId();
18729
+ const contentId = React13.useId();
18710
18730
  const [announcement, announce] = useLiveAnnouncement();
18711
- const requestClose = React12.useCallback(() => {
18731
+ const requestClose = React13.useCallback(() => {
18712
18732
  const view = panelRef.current?.ownerDocument.defaultView;
18713
18733
  if (dirtyRef.current && view?.confirm && !view.confirm(discardRef.current ?? `Discard ${title}?`)) {
18714
18734
  return;
18715
18735
  }
18716
18736
  onCloseRef.current();
18717
18737
  }, [title]);
18718
- React12.useEffect(() => {
18738
+ React13.useEffect(() => {
18719
18739
  const handleKeyDown = (event) => {
18720
18740
  if (event.key !== "Escape") return;
18721
18741
  if (modeRef.current === "docked" && !panelRef.current?.contains(event.target)) {
@@ -18731,7 +18751,7 @@ function DockablePanel({
18731
18751
  doc.addEventListener("keydown", handleKeyDown);
18732
18752
  return () => doc.removeEventListener("keydown", handleKeyDown);
18733
18753
  }, [dockable, requestClose]);
18734
- React12.useEffect(() => {
18754
+ React13.useEffect(() => {
18735
18755
  if (!dirty || typeof window === "undefined") return;
18736
18756
  const handleBeforeUnload = (event) => {
18737
18757
  event.preventDefault();
@@ -18740,7 +18760,7 @@ function DockablePanel({
18740
18760
  window.addEventListener("beforeunload", handleBeforeUnload);
18741
18761
  return () => window.removeEventListener("beforeunload", handleBeforeUnload);
18742
18762
  }, [dirty]);
18743
- React12.useEffect(() => {
18763
+ React13.useEffect(() => {
18744
18764
  const panel2 = panelRef.current;
18745
18765
  if (!panel2 || mode !== "full") return;
18746
18766
  const root = panel2.closest('[data-slot="dockable-panel-dock"]') ?? panel2;
@@ -18754,15 +18774,15 @@ function DockablePanel({
18754
18774
  for (const element of inerted) releaseInert(element);
18755
18775
  };
18756
18776
  }, [mode]);
18757
- React12.useEffect(() => {
18777
+ React13.useEffect(() => {
18758
18778
  contentRef.current?.toggleAttribute("inert", docked);
18759
18779
  }, [docked]);
18760
- React12.useEffect(() => {
18780
+ React13.useEffect(() => {
18761
18781
  if (docked) return;
18762
18782
  const target2 = contentRef.current?.querySelector(FOCUSABLE_SELECTOR) ?? panelRef.current;
18763
18783
  target2?.focus();
18764
18784
  }, [docked]);
18765
- React12.useEffect(() => {
18785
+ React13.useEffect(() => {
18766
18786
  if (!docked) return;
18767
18787
  announce(`${title} collapsed to dock`);
18768
18788
  panelRef.current?.querySelector('[data-slot="dockable-panel-restore"]')?.focus();
@@ -18959,10 +18979,10 @@ function useDropzone({
18959
18979
  multiple = false,
18960
18980
  disabled = false
18961
18981
  }) {
18962
- const [isDragging, setIsDragging] = React12.useState(false);
18963
- const inputRef = React12.useRef(null);
18964
- const dragCounter = React12.useRef(0);
18965
- const handleDragEnter = React12.useCallback(
18982
+ const [isDragging, setIsDragging] = React13.useState(false);
18983
+ const inputRef = React13.useRef(null);
18984
+ const dragCounter = React13.useRef(0);
18985
+ const handleDragEnter = React13.useCallback(
18966
18986
  (e) => {
18967
18987
  e.preventDefault();
18968
18988
  e.stopPropagation();
@@ -18974,11 +18994,11 @@ function useDropzone({
18974
18994
  },
18975
18995
  [disabled]
18976
18996
  );
18977
- const handleDragOver = React12.useCallback((e) => {
18997
+ const handleDragOver = React13.useCallback((e) => {
18978
18998
  e.preventDefault();
18979
18999
  e.stopPropagation();
18980
19000
  }, []);
18981
- const handleDragLeave = React12.useCallback((e) => {
19001
+ const handleDragLeave = React13.useCallback((e) => {
18982
19002
  e.preventDefault();
18983
19003
  e.stopPropagation();
18984
19004
  dragCounter.current--;
@@ -18986,7 +19006,7 @@ function useDropzone({
18986
19006
  setIsDragging(false);
18987
19007
  }
18988
19008
  }, []);
18989
- const handleDrop = React12.useCallback(
19009
+ const handleDrop = React13.useCallback(
18990
19010
  (e) => {
18991
19011
  e.preventDefault();
18992
19012
  e.stopPropagation();
@@ -19000,7 +19020,7 @@ function useDropzone({
19000
19020
  },
19001
19021
  [disabled, multiple, onDrop]
19002
19022
  );
19003
- const handleInputChange = React12.useCallback(
19023
+ const handleInputChange = React13.useCallback(
19004
19024
  (e) => {
19005
19025
  const files = e.target.files ? Array.from(e.target.files) : [];
19006
19026
  if (files.length > 0) {
@@ -19010,7 +19030,7 @@ function useDropzone({
19010
19030
  },
19011
19031
  [onDrop]
19012
19032
  );
19013
- const open = React12.useCallback(() => {
19033
+ const open = React13.useCallback(() => {
19014
19034
  if (!disabled) {
19015
19035
  inputRef.current?.click();
19016
19036
  }
@@ -19060,7 +19080,7 @@ function ClaimProviderForm({
19060
19080
  termsUrl = "/terms",
19061
19081
  className = ""
19062
19082
  }) {
19063
- const [formData, setFormData] = React12.useState({
19083
+ const [formData, setFormData] = React13.useState({
19064
19084
  firstName: "",
19065
19085
  lastName: "",
19066
19086
  email: "",
@@ -19363,14 +19383,14 @@ function CreateInvoiceModal({
19363
19383
  initialStep = 1,
19364
19384
  initialEmployerId = ""
19365
19385
  }) {
19366
- const [step, setStep] = React12.useState(initialStep);
19367
- const [employerId, setEmployerId] = React12.useState(initialEmployerId);
19368
- const [selectedOrders, setSelectedOrders] = React12.useState(
19386
+ const [step, setStep] = React13.useState(initialStep);
19387
+ const [employerId, setEmployerId] = React13.useState(initialEmployerId);
19388
+ const [selectedOrders, setSelectedOrders] = React13.useState(
19369
19389
  /* @__PURE__ */ new Set()
19370
19390
  );
19371
- const [dueDate, setDueDate] = React12.useState("");
19372
- const [notes, setNotes] = React12.useState("");
19373
- React12.useEffect(() => {
19391
+ const [dueDate, setDueDate] = React13.useState("");
19392
+ const [notes, setNotes] = React13.useState("");
19393
+ React13.useEffect(() => {
19374
19394
  if (!open) {
19375
19395
  setStep(initialStep);
19376
19396
  setEmployerId(initialEmployerId);
@@ -19379,7 +19399,7 @@ function CreateInvoiceModal({
19379
19399
  setNotes("");
19380
19400
  }
19381
19401
  }, [open, initialStep, initialEmployerId]);
19382
- React12.useEffect(() => {
19402
+ React13.useEffect(() => {
19383
19403
  if (!dueDate && open) {
19384
19404
  const date = /* @__PURE__ */ new Date();
19385
19405
  date.setDate(date.getDate() + defaultDueDays);
@@ -19802,14 +19822,14 @@ function CreateReferralModal({
19802
19822
  errorMessage,
19803
19823
  currency = "$"
19804
19824
  }) {
19805
- const [selectedServices, setSelectedServices] = React12.useState(
19825
+ const [selectedServices, setSelectedServices] = React13.useState(
19806
19826
  /* @__PURE__ */ new Set()
19807
19827
  );
19808
- const [notes, setNotes] = React12.useState("");
19809
- const [priority, setPriority] = React12.useState(
19828
+ const [notes, setNotes] = React13.useState("");
19829
+ const [priority, setPriority] = React13.useState(
19810
19830
  "normal"
19811
19831
  );
19812
- React12.useEffect(() => {
19832
+ React13.useEffect(() => {
19813
19833
  if (!open) {
19814
19834
  setSelectedServices(/* @__PURE__ */ new Set());
19815
19835
  setNotes("");
@@ -20110,15 +20130,15 @@ function EditUserRoleModal({
20110
20130
  isSubmitting = false,
20111
20131
  errorMessage
20112
20132
  }) {
20113
- const [selectedRoleId, setSelectedRoleId] = React12.useState(
20133
+ const [selectedRoleId, setSelectedRoleId] = React13.useState(
20114
20134
  user?.currentRoleId || ""
20115
20135
  );
20116
- React12.useEffect(() => {
20136
+ React13.useEffect(() => {
20117
20137
  if (user?.currentRoleId) {
20118
20138
  setSelectedRoleId(user.currentRoleId);
20119
20139
  }
20120
20140
  }, [user?.currentRoleId]);
20121
- React12.useEffect(() => {
20141
+ React13.useEffect(() => {
20122
20142
  if (!open && user?.currentRoleId) {
20123
20143
  setSelectedRoleId(user.currentRoleId);
20124
20144
  }
@@ -20289,24 +20309,24 @@ function EmployeeForm({
20289
20309
  emailRequired = "Email is required",
20290
20310
  dobRequired = "Date of birth is required"
20291
20311
  } = labels;
20292
- const [firstName, setFirstName] = React12.useState(initialData.firstName ?? "");
20293
- const [lastName, setLastName] = React12.useState(initialData.lastName ?? "");
20294
- const [email, setEmail] = React12.useState(initialData.email ?? "");
20295
- const [dob, setDob] = React12.useState(initialData.dob ?? "");
20296
- const [selectedDepartments, setSelectedDepartments] = React12.useState(initialData.departments ?? []);
20297
- const [title, setTitle] = React12.useState(initialData.title ?? "");
20298
- const [address, setAddress] = React12.useState(
20312
+ const [firstName, setFirstName] = React13.useState(initialData.firstName ?? "");
20313
+ const [lastName, setLastName] = React13.useState(initialData.lastName ?? "");
20314
+ const [email, setEmail] = React13.useState(initialData.email ?? "");
20315
+ const [dob, setDob] = React13.useState(initialData.dob ?? "");
20316
+ const [selectedDepartments, setSelectedDepartments] = React13.useState(initialData.departments ?? []);
20317
+ const [title, setTitle] = React13.useState(initialData.title ?? "");
20318
+ const [address, setAddress] = React13.useState(
20299
20319
  initialData.address ?? {}
20300
20320
  );
20301
- const [phones, setPhones] = React12.useState(
20321
+ const [phones, setPhones] = React13.useState(
20302
20322
  initialData.phones ?? [{ number: "", type: "cell" }]
20303
20323
  );
20304
- const [isActive, setIsActive] = React12.useState(initialData.isActive ?? true);
20305
- const [additionalInfo, setAdditionalInfo] = React12.useState(
20324
+ const [isActive, setIsActive] = React13.useState(initialData.isActive ?? true);
20325
+ const [additionalInfo, setAdditionalInfo] = React13.useState(
20306
20326
  initialData.additionalInfo ?? ""
20307
20327
  );
20308
- const [sendInvite, setSendInvite] = React12.useState(false);
20309
- const [errors, setErrors] = React12.useState({});
20328
+ const [sendInvite, setSendInvite] = React13.useState(false);
20329
+ const [errors, setErrors] = React13.useState({});
20310
20330
  const validate = () => {
20311
20331
  const newErrors = {};
20312
20332
  if (!firstName.trim()) newErrors.firstName = firstNameRequired;
@@ -20725,8 +20745,8 @@ function EmployeeProfileCard({
20725
20745
  className,
20726
20746
  labels = {}
20727
20747
  }) {
20728
- const [isExpanded, setIsExpanded] = React12.useState(defaultExpanded);
20729
- const fileInputRef = React12.useRef(null);
20748
+ const [isExpanded, setIsExpanded] = React13.useState(defaultExpanded);
20749
+ const fileInputRef = React13.useRef(null);
20730
20750
  const {
20731
20751
  moreDetails = "more details",
20732
20752
  lessDetails = "less details",
@@ -21259,13 +21279,13 @@ function EmployerList({
21259
21279
  emptyMessage = "No employers linked yet",
21260
21280
  className = ""
21261
21281
  }) {
21262
- const [searchQuery, setSearchQuery] = React12.useState("");
21282
+ const [searchQuery, setSearchQuery] = React13.useState("");
21263
21283
  const handleSearch = (e) => {
21264
21284
  const query = e.target.value;
21265
21285
  setSearchQuery(query);
21266
21286
  onSearch?.(query);
21267
21287
  };
21268
- const filteredEmployers = React12.useMemo(() => {
21288
+ const filteredEmployers = React13.useMemo(() => {
21269
21289
  if (!searchQuery.trim()) return employers;
21270
21290
  const q = searchQuery.toLowerCase();
21271
21291
  return employers.filter(
@@ -21914,7 +21934,7 @@ function EmployerServiceModal({
21914
21934
  isSubmitting = false,
21915
21935
  errorMessage
21916
21936
  }) {
21917
- const [config, setConfig] = React12.useState({
21937
+ const [config, setConfig] = React13.useState({
21918
21938
  serviceId: service?.id || "",
21919
21939
  employerId: employer?.id || "",
21920
21940
  customPrice: existingConfig?.customPrice,
@@ -21926,7 +21946,7 @@ function EmployerServiceModal({
21926
21946
  notes: existingConfig?.notes,
21927
21947
  billingCode: existingConfig?.billingCode
21928
21948
  });
21929
- React12.useEffect(() => {
21949
+ React13.useEffect(() => {
21930
21950
  setConfig({
21931
21951
  serviceId: service?.id || "",
21932
21952
  employerId: employer?.id || "",
@@ -22803,8 +22823,8 @@ function FileManager({
22803
22823
  errorMessage,
22804
22824
  className = ""
22805
22825
  }) {
22806
- const [isDragging, setIsDragging] = React12.useState(false);
22807
- const fileInputRef = React12.useRef(null);
22826
+ const [isDragging, setIsDragging] = React13.useState(false);
22827
+ const fileInputRef = React13.useRef(null);
22808
22828
  const hasActions = !!(onPreview || onDownload || onDelete);
22809
22829
  const handleDragOver = (e) => {
22810
22830
  e.preventDefault();
@@ -22989,10 +23009,10 @@ function FileRowActionMenu({
22989
23009
  onDownload,
22990
23010
  onDelete
22991
23011
  }) {
22992
- const [open, setOpen] = React12.useState(false);
22993
- const menuRef = React12.useRef(null);
22994
- const buttonRef = React12.useRef(null);
22995
- React12.useEffect(() => {
23012
+ const [open, setOpen] = React13.useState(false);
23013
+ const menuRef = React13.useRef(null);
23014
+ const buttonRef = React13.useRef(null);
23015
+ React13.useEffect(() => {
22996
23016
  if (!open) return;
22997
23017
  function handleClick(e) {
22998
23018
  if (menuRef.current && !menuRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
@@ -23002,7 +23022,7 @@ function FileRowActionMenu({
23002
23022
  document.addEventListener("mousedown", handleClick);
23003
23023
  return () => document.removeEventListener("mousedown", handleClick);
23004
23024
  }, [open]);
23005
- React12.useEffect(() => {
23025
+ React13.useEffect(() => {
23006
23026
  if (!open) return;
23007
23027
  function handleKey(e) {
23008
23028
  if (e.key === "Escape") setOpen(false);
@@ -23010,8 +23030,8 @@ function FileRowActionMenu({
23010
23030
  document.addEventListener("keydown", handleKey);
23011
23031
  return () => document.removeEventListener("keydown", handleKey);
23012
23032
  }, [open]);
23013
- const [menuPos, setMenuPos] = React12.useState(null);
23014
- React12.useLayoutEffect(() => {
23033
+ const [menuPos, setMenuPos] = React13.useState(null);
23034
+ React13.useLayoutEffect(() => {
23015
23035
  if (!open || !buttonRef.current) return;
23016
23036
  function updatePosition() {
23017
23037
  if (!buttonRef.current) return;
@@ -23137,7 +23157,7 @@ function fmtDate(iso) {
23137
23157
  if (!iso) return null;
23138
23158
  return iso.slice(0, 10);
23139
23159
  }
23140
- var HealthSurveillance = React12.forwardRef(
23160
+ var HealthSurveillance = React13.forwardRef(
23141
23161
  ({
23142
23162
  history,
23143
23163
  programs,
@@ -23151,13 +23171,13 @@ var HealthSurveillance = React12.forwardRef(
23151
23171
  "data-testid": dataTestId,
23152
23172
  ...props
23153
23173
  }, ref) => {
23154
- const items = React12.useMemo(
23174
+ const items = React13.useMemo(
23155
23175
  () => evaluateDue(history, programs, { enrolledKeys, now }),
23156
23176
  [history, programs, enrolledKeys, now]
23157
23177
  );
23158
23178
  const actionable = items.filter((i) => i.status !== "satisfied");
23159
23179
  const done = items.filter((i) => i.status === "satisfied");
23160
- const historyLabels = React12.useMemo(() => {
23180
+ const historyLabels = React13.useMemo(() => {
23161
23181
  const m = /* @__PURE__ */ new Map();
23162
23182
  const scan = (list) => {
23163
23183
  for (const e of list ?? []) {
@@ -23172,9 +23192,9 @@ var HealthSurveillance = React12.forwardRef(
23172
23192
  }, [history]);
23173
23193
  const orderLabel = (key) => orderLabels?.[key] ?? historyLabels.get(key) ?? key;
23174
23194
  const programLabel = (key) => programLabels?.[key] ?? key;
23175
- const [expanded, setExpanded] = React12.useState(null);
23176
- const [checked, setChecked] = React12.useState(/* @__PURE__ */ new Set());
23177
- const completedSet = React12.useMemo(() => completedKeys(history), [history]);
23195
+ const [expanded, setExpanded] = React13.useState(null);
23196
+ const [checked, setChecked] = React13.useState(/* @__PURE__ */ new Set());
23197
+ const completedSet = React13.useMemo(() => completedKeys(history), [history]);
23178
23198
  const specLevel = (spec, specs) => {
23179
23199
  let level = 0;
23180
23200
  let cur = spec.after;
@@ -23361,14 +23381,14 @@ function HelpSupportPanel({
23361
23381
  successMessage,
23362
23382
  className = ""
23363
23383
  }) {
23364
- const [searchTerm, setSearchTerm] = React12.useState("");
23365
- const [expandedFaq, setExpandedFaq] = React12.useState(null);
23366
- const [formData, setFormData] = React12.useState({
23384
+ const [searchTerm, setSearchTerm] = React13.useState("");
23385
+ const [expandedFaq, setExpandedFaq] = React13.useState(null);
23386
+ const [formData, setFormData] = React13.useState({
23367
23387
  subject: "",
23368
23388
  message: "",
23369
23389
  email: ""
23370
23390
  });
23371
- const [showSuccess, setShowSuccess] = React12.useState(false);
23391
+ const [showSuccess, setShowSuccess] = React13.useState(false);
23372
23392
  const filteredFaqs = faqs.filter(
23373
23393
  (faq) => faq.question.toLowerCase().includes(searchTerm.toLowerCase()) || faq.answer.toLowerCase().includes(searchTerm.toLowerCase())
23374
23394
  );
@@ -23840,7 +23860,7 @@ function HRISProviderSelector({
23840
23860
  syncPending = "We are still waiting on data from your HRIS Provider. Please check back later.",
23841
23861
  supportEmail = "support@bluehive.com"
23842
23862
  } = labels;
23843
- const filteredProviders = React12.useMemo(() => {
23863
+ const filteredProviders = React13.useMemo(() => {
23844
23864
  if (!searchQuery.trim()) return providers;
23845
23865
  const query = searchQuery.toLowerCase();
23846
23866
  return providers.filter((p) => p.displayName.toLowerCase().includes(query));
@@ -24127,11 +24147,11 @@ function InventoryManager({
24127
24147
  isLoading = false,
24128
24148
  className = ""
24129
24149
  }) {
24130
- const [updateType, setUpdateType] = React12.useState(
24150
+ const [updateType, setUpdateType] = React13.useState(
24131
24151
  "credit"
24132
24152
  );
24133
- const [updateAmount, setUpdateAmount] = React12.useState("");
24134
- const [updateMemo, setUpdateMemo] = React12.useState("");
24153
+ const [updateAmount, setUpdateAmount] = React13.useState("");
24154
+ const [updateMemo, setUpdateMemo] = React13.useState("");
24135
24155
  const handleSubmit = () => {
24136
24156
  if (!updateAmount || !onUpdateSubmit) return;
24137
24157
  const amount = parseInt(updateAmount, 10);
@@ -24197,7 +24217,7 @@ function InventoryManager({
24197
24217
  /* @__PURE__ */ jsx("th", { className: "text-muted-foreground py-2 text-start text-xs font-medium tracking-wider uppercase", children: "Change" }),
24198
24218
  /* @__PURE__ */ jsx("th", { className: "text-muted-foreground py-2 text-end text-xs font-medium tracking-wider uppercase", children: "Quantity" })
24199
24219
  ] }) }),
24200
- /* @__PURE__ */ jsx("tbody", { className: "divide-border/50 divide-y", children: logEntries.map((entry) => /* @__PURE__ */ jsxs(React12.Fragment, { children: [
24220
+ /* @__PURE__ */ jsx("tbody", { className: "divide-border/50 divide-y", children: logEntries.map((entry) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
24201
24221
  /* @__PURE__ */ jsxs("tr", { children: [
24202
24222
  /* @__PURE__ */ jsx(
24203
24223
  "td",
@@ -24431,12 +24451,12 @@ function InviteUserModal({
24431
24451
  errorMessage,
24432
24452
  successMessage
24433
24453
  }) {
24434
- const [email, setEmail] = React12.useState("");
24435
- const [firstName, setFirstName] = React12.useState("");
24436
- const [lastName, setLastName] = React12.useState("");
24437
- const [roleId, setRoleId] = React12.useState(defaultRoleId || "");
24438
- const [message, setMessage] = React12.useState("");
24439
- React12.useEffect(() => {
24454
+ const [email, setEmail] = React13.useState("");
24455
+ const [firstName, setFirstName] = React13.useState("");
24456
+ const [lastName, setLastName] = React13.useState("");
24457
+ const [roleId, setRoleId] = React13.useState(defaultRoleId || "");
24458
+ const [message, setMessage] = React13.useState("");
24459
+ React13.useEffect(() => {
24440
24460
  if (!open) {
24441
24461
  setEmail("");
24442
24462
  setFirstName("");
@@ -24676,7 +24696,7 @@ function InvoiceList({
24676
24696
  currency = "$",
24677
24697
  className = ""
24678
24698
  }) {
24679
- const [searchQuery, setSearchQuery] = React12.useState("");
24699
+ const [searchQuery, setSearchQuery] = React13.useState("");
24680
24700
  const handleSearch = (e) => {
24681
24701
  const query = e.target.value;
24682
24702
  setSearchQuery(query);
@@ -24713,7 +24733,7 @@ function InvoiceList({
24713
24733
  { value: "overdue", label: "Overdue" },
24714
24734
  { value: "cancelled", label: "Cancelled" }
24715
24735
  ];
24716
- const filteredInvoices = React12.useMemo(() => {
24736
+ const filteredInvoices = React13.useMemo(() => {
24717
24737
  let result = invoices;
24718
24738
  if (statusFilter !== "all") {
24719
24739
  result = result.filter((inv) => inv.status === statusFilter);
@@ -24726,7 +24746,7 @@ function InvoiceList({
24726
24746
  }
24727
24747
  return result;
24728
24748
  }, [invoices, statusFilter, searchQuery]);
24729
- const totals = React12.useMemo(() => {
24749
+ const totals = React13.useMemo(() => {
24730
24750
  return {
24731
24751
  total: filteredInvoices.reduce((sum, inv) => sum + inv.amount, 0),
24732
24752
  paid: filteredInvoices.filter((inv) => inv.status === "paid").reduce((sum, inv) => sum + inv.amount, 0),
@@ -24950,16 +24970,16 @@ function InvoicePaymentPage({
24950
24970
  showStripeBranding = true,
24951
24971
  className = ""
24952
24972
  }) {
24953
- const [paymentMethod, setPaymentMethod] = React12.useState(
24973
+ const [paymentMethod, setPaymentMethod] = React13.useState(
24954
24974
  acceptedMethods[0] || "card"
24955
24975
  );
24956
- const [name, setName] = React12.useState("");
24957
- const [email, setEmail] = React12.useState("");
24958
- const [cardNumber, setCardNumber] = React12.useState("");
24959
- const [expiry, setExpiry] = React12.useState("");
24960
- const [cvc, setCvc] = React12.useState("");
24961
- const [routingNumber, setRoutingNumber] = React12.useState("");
24962
- const [accountNumber, setAccountNumber] = React12.useState("");
24976
+ const [name, setName] = React13.useState("");
24977
+ const [email, setEmail] = React13.useState("");
24978
+ const [cardNumber, setCardNumber] = React13.useState("");
24979
+ const [expiry, setExpiry] = React13.useState("");
24980
+ const [cvc, setCvc] = React13.useState("");
24981
+ const [routingNumber, setRoutingNumber] = React13.useState("");
24982
+ const [accountNumber, setAccountNumber] = React13.useState("");
24963
24983
  const formatCurrency3 = (amount) => {
24964
24984
  return `${currency}${amount.toLocaleString(void 0, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
24965
24985
  };
@@ -25764,16 +25784,16 @@ function LanguageSelector({
25764
25784
  disabled = false,
25765
25785
  className
25766
25786
  }) {
25767
- const [isOpen, setIsOpen] = React12.useState(false);
25768
- const containerRef = React12.useRef(null);
25787
+ const [isOpen, setIsOpen] = React13.useState(false);
25788
+ const containerRef = React13.useRef(null);
25769
25789
  const { anchorRef, floatingRef, style } = useAnchoredPosition({ open: isOpen, matchMinWidth: true, maxHeight: 240 });
25770
25790
  const selectedLanguage = languages.find((l) => l.code === value);
25771
- const outsideRefs = React12.useMemo(
25791
+ const outsideRefs = React13.useMemo(
25772
25792
  () => [containerRef, floatingRef],
25773
25793
  [floatingRef]
25774
25794
  );
25775
25795
  useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
25776
- React12.useEffect(() => {
25796
+ React13.useEffect(() => {
25777
25797
  const handleEscape = (e) => {
25778
25798
  if (e.key === "Escape") setIsOpen(false);
25779
25799
  };
@@ -27189,13 +27209,13 @@ function OrderConfirmationWizard({
27189
27209
  stepTitles = ["Verify Employee", "Consent & ID", "Confirmation"],
27190
27210
  className = ""
27191
27211
  }) {
27192
- const [step, setStep] = React12.useState(initialStep);
27193
- const [employeeVerified, setEmployeeVerified] = React12.useState(false);
27194
- const [verificationNotes, setVerificationNotes] = React12.useState("");
27195
- const [consentObtained, setConsentObtained] = React12.useState(false);
27196
- const [idVerified, setIdVerified] = React12.useState(false);
27197
- const [idType, setIdType] = React12.useState("");
27198
- const [confirmationNotes, setConfirmationNotes] = React12.useState("");
27212
+ const [step, setStep] = React13.useState(initialStep);
27213
+ const [employeeVerified, setEmployeeVerified] = React13.useState(false);
27214
+ const [verificationNotes, setVerificationNotes] = React13.useState("");
27215
+ const [consentObtained, setConsentObtained] = React13.useState(false);
27216
+ const [idVerified, setIdVerified] = React13.useState(false);
27217
+ const [idType, setIdType] = React13.useState("");
27218
+ const [confirmationNotes, setConfirmationNotes] = React13.useState("");
27199
27219
  const handleStepChange = (newStep) => {
27200
27220
  setStep(newStep);
27201
27221
  onStepChange?.(newStep);
@@ -27223,7 +27243,7 @@ function OrderConfirmationWizard({
27223
27243
  const stepNum = index + 1;
27224
27244
  const isActive = step === stepNum;
27225
27245
  const isComplete = step > stepNum;
27226
- return /* @__PURE__ */ jsxs(React12.Fragment, { children: [
27246
+ return /* @__PURE__ */ jsxs(React13.Fragment, { children: [
27227
27247
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
27228
27248
  /* @__PURE__ */ jsx(
27229
27249
  "div",
@@ -27808,7 +27828,7 @@ function OrderList({
27808
27828
  actions,
27809
27829
  className
27810
27830
  }) {
27811
- const filteredOrders = React12.useMemo(() => {
27831
+ const filteredOrders = React13.useMemo(() => {
27812
27832
  const activeTabConfig = tabs.find((t) => t.id === activeTab);
27813
27833
  if (!activeTabConfig?.statuses || !getOrderStatus) {
27814
27834
  return orders;
@@ -27817,7 +27837,7 @@ function OrderList({
27817
27837
  (order) => activeTabConfig.statuses.includes(getOrderStatus(order))
27818
27838
  );
27819
27839
  }, [orders, activeTab, tabs, getOrderStatus]);
27820
- const tabCounts = React12.useMemo(() => {
27840
+ const tabCounts = React13.useMemo(() => {
27821
27841
  if (!getOrderStatus) return {};
27822
27842
  const counts = {};
27823
27843
  tabs.forEach((tab) => {
@@ -28113,15 +28133,15 @@ function BaseOrderEditor({
28113
28133
  const config = TYPE_CONFIG[type];
28114
28134
  const ambientCodeLookup = useCodeLookupConfig();
28115
28135
  const effectiveCodeLookup = codeLookup === false ? void 0 : codeLookup ?? ambientCodeLookup ?? void 0;
28116
- const [draft, setDraft] = React12.useState(
28136
+ const [draft, setDraft] = React13.useState(
28117
28137
  () => order ?? {
28118
28138
  orderId: newId(),
28119
28139
  type,
28120
28140
  display: ""
28121
28141
  }
28122
28142
  );
28123
- const bodyRef = React12.useRef(null);
28124
- React12.useEffect(() => {
28143
+ const bodyRef = React13.useRef(null);
28144
+ React13.useEffect(() => {
28125
28145
  const input = bodyRef.current?.querySelector("input");
28126
28146
  input?.focus();
28127
28147
  }, []);
@@ -28349,7 +28369,7 @@ function OrderLookupForm({
28349
28369
  welcomeMessage = "Look up your order by entering the information below.",
28350
28370
  className = ""
28351
28371
  }) {
28352
- const [formData, setFormData] = React12.useState({
28372
+ const [formData, setFormData] = React13.useState({
28353
28373
  orderNumber: "",
28354
28374
  dateOfBirth: "",
28355
28375
  lastName: ""
@@ -28883,20 +28903,20 @@ function OverflowMenuItem({
28883
28903
  function PatientOverflowMenu({
28884
28904
  onAction
28885
28905
  }) {
28886
- const [open, setOpen] = React12.useState(false);
28887
- const menuRef = React12.useRef(null);
28906
+ const [open, setOpen] = React13.useState(false);
28907
+ const menuRef = React13.useRef(null);
28888
28908
  const { anchorRef, floatingRef, style } = useAnchoredPosition({ open, placement: "bottom-end" });
28889
- const outsideRefs = React12.useMemo(
28909
+ const outsideRefs = React13.useMemo(
28890
28910
  () => [menuRef, floatingRef],
28891
28911
  [floatingRef]
28892
28912
  );
28893
28913
  useClickOutside(
28894
28914
  outsideRefs,
28895
- React12.useCallback(() => setOpen(false), []),
28915
+ React13.useCallback(() => setOpen(false), []),
28896
28916
  open
28897
28917
  );
28898
28918
  useEscapeKey(
28899
- React12.useCallback(() => setOpen(false), []),
28919
+ React13.useCallback(() => setOpen(false), []),
28900
28920
  open
28901
28921
  );
28902
28922
  const handleAction = (action) => {
@@ -29095,7 +29115,7 @@ function AlertRow({ comments }) {
29095
29115
  /* @__PURE__ */ jsx("span", { className: "text-foreground text-sm", children: comments.join("; ") })
29096
29116
  ] });
29097
29117
  }
29098
- var PatientHeader = React12.forwardRef(
29118
+ var PatientHeader = React13.forwardRef(
29099
29119
  ({
29100
29120
  patient,
29101
29121
  allergies = [],
@@ -29125,13 +29145,13 @@ var PatientHeader = React12.forwardRef(
29125
29145
  const hasComments = showCommentsBanner && comments.length > 0;
29126
29146
  const hasProviders = showProviderBanner && !!(patient.attendingProvider || patient.familyProvider);
29127
29147
  const hasInfoRows = hasAllergies || hasMedications || hasComments || hasProviders;
29128
- const [addModalType, setAddModalType] = React12.useState(null);
29129
- const [addForm, setAddForm] = React12.useState({});
29148
+ const [addModalType, setAddModalType] = React13.useState(null);
29149
+ const [addForm, setAddForm] = React13.useState({});
29130
29150
  const addEntityLabel = addModalType ? ADD_ENTITY_LABELS[addModalType] ?? "" : "";
29131
- const [contactModalOpen, setContactModalOpen] = React12.useState(false);
29132
- const [editPatientOpen, setEditPatientOpen] = React12.useState(false);
29133
- const [editPatientForm, setEditPatientForm] = React12.useState({});
29134
- const handleOverflowAction = React12.useCallback(
29151
+ const [contactModalOpen, setContactModalOpen] = React13.useState(false);
29152
+ const [editPatientOpen, setEditPatientOpen] = React13.useState(false);
29153
+ const [editPatientForm, setEditPatientForm] = React13.useState({});
29154
+ const handleOverflowAction = React13.useCallback(
29135
29155
  (action) => {
29136
29156
  if (action === "contact") {
29137
29157
  setContactModalOpen(true);
@@ -30614,7 +30634,7 @@ function PermissionItem({
30614
30634
  parentChecked
30615
30635
  }) {
30616
30636
  const hasChildren = permission.children && permission.children.length > 0;
30617
- const [isExpanded, setIsExpanded] = React12.useState(true);
30637
+ const [isExpanded, setIsExpanded] = React13.useState(true);
30618
30638
  const handleChange = (checked) => {
30619
30639
  onToggle(permission.id, checked);
30620
30640
  if (!checked && hasChildren) {
@@ -30696,12 +30716,12 @@ function PermissionsEditor({
30696
30716
  summary = "Summary",
30697
30717
  all = "All"
30698
30718
  } = labels;
30699
- const [expandedGroups, setExpandedGroups] = React12.useState(
30719
+ const [expandedGroups, setExpandedGroups] = React13.useState(
30700
30720
  () => new Set(
30701
30721
  groups.filter((g) => g.defaultExpanded !== false).map((g) => g.id)
30702
30722
  )
30703
30723
  );
30704
- const permissionMap = React12.useMemo(() => {
30724
+ const permissionMap = React13.useMemo(() => {
30705
30725
  const map = /* @__PURE__ */ new Map();
30706
30726
  const processPermissions = (permissions) => {
30707
30727
  permissions.forEach((perm) => {
@@ -30745,7 +30765,7 @@ function PermissionsEditor({
30745
30765
  onEmployersChange([...selectedEmployers, employerId]);
30746
30766
  }
30747
30767
  };
30748
- const assignedPermissionNames = React12.useMemo(() => {
30768
+ const assignedPermissionNames = React13.useMemo(() => {
30749
30769
  return assignedPermissions.map((id) => permissionMap.get(id)?.name).filter(Boolean);
30750
30770
  }, [assignedPermissions, permissionMap]);
30751
30771
  return /* @__PURE__ */ jsxs("div", { className: cn("space-y-6", className), "data-slot": "perm-editor", children: [
@@ -30989,7 +31009,7 @@ function RelevanceControl({
30989
31009
  }
30990
31010
  );
30991
31011
  }
30992
- var PresentingProblems = React12.forwardRef(
31012
+ var PresentingProblems = React13.forwardRef(
30993
31013
  ({
30994
31014
  patientConcerns,
30995
31015
  presenting,
@@ -31005,11 +31025,11 @@ var PresentingProblems = React12.forwardRef(
31005
31025
  "data-testid": dataTestId,
31006
31026
  ...props
31007
31027
  }, ref) => {
31008
- const [draft, setDraft] = React12.useState("");
31028
+ const [draft, setDraft] = React13.useState("");
31009
31029
  const [announcement, setAnnouncement] = useLiveAnnouncement();
31010
31030
  const scopeMeta = SCOPE_META[scope];
31011
31031
  const ScopeIcon = scopeMeta.icon;
31012
- const relevanceById = React12.useMemo(
31032
+ const relevanceById = React13.useMemo(
31013
31033
  () => new Map(presenting.map((p) => [p.concernId, p.relevance])),
31014
31034
  [presenting]
31015
31035
  );
@@ -31468,7 +31488,7 @@ var logoContainerVariants = cva(
31468
31488
  }
31469
31489
  );
31470
31490
  var ProviderLogo = ({ logoURL, name, variant }) => {
31471
- const [hasError, setHasError] = React12.useState(false);
31491
+ const [hasError, setHasError] = React13.useState(false);
31472
31492
  if (!logoURL || hasError) {
31473
31493
  return /* @__PURE__ */ jsx(
31474
31494
  "div",
@@ -31603,7 +31623,7 @@ function formatAddressSingleLine2(address) {
31603
31623
  parts.push(`${address.city}, ${address.state} ${address.postalCode}`);
31604
31624
  return parts.join(", ");
31605
31625
  }
31606
- var ProviderCard = React12.forwardRef(
31626
+ var ProviderCard = React13.forwardRef(
31607
31627
  ({
31608
31628
  provider,
31609
31629
  variant = "compact",
@@ -32088,7 +32108,7 @@ function ProviderLogo2({
32088
32108
  size = "md",
32089
32109
  className
32090
32110
  }) {
32091
- const [hasError, setHasError] = React12.useState(false);
32111
+ const [hasError, setHasError] = React13.useState(false);
32092
32112
  const initials = name.split(" ").map((word) => word[0]).join("").toUpperCase().slice(0, 2);
32093
32113
  if (!src || hasError) {
32094
32114
  return /* @__PURE__ */ jsx(
@@ -32526,7 +32546,7 @@ function ProviderDetailHeaderSkeleton({
32526
32546
  /* @__PURE__ */ jsx("div", { className: "h-3 w-12 rounded bg-gray-200 dark:bg-gray-700" })
32527
32547
  ] }, i)) }),
32528
32548
  /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-4 py-6", children: [
32529
- /* @__PURE__ */ jsx("div", { className: "mb-4 hidden items-center gap-2 sm:flex", children: [1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxs(React12.Fragment, { children: [
32549
+ /* @__PURE__ */ jsx("div", { className: "mb-4 hidden items-center gap-2 sm:flex", children: [1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
32530
32550
  i > 1 && /* @__PURE__ */ jsx("div", { className: "h-4 w-4 rounded-full bg-gray-200 dark:bg-gray-700" }),
32531
32551
  /* @__PURE__ */ jsx("div", { className: "h-4 w-16 rounded bg-gray-200 dark:bg-gray-700" })
32532
32552
  ] }, i)) }),
@@ -33452,7 +33472,7 @@ var SearchResultsMessage = ({
33452
33472
  }
33453
33473
  );
33454
33474
  };
33455
- var ProviderSearchBar = React12.forwardRef(
33475
+ var ProviderSearchBar = React13.forwardRef(
33456
33476
  ({
33457
33477
  onSearch,
33458
33478
  onGeolocate,
@@ -33473,10 +33493,10 @@ var ProviderSearchBar = React12.forwardRef(
33473
33493
  className,
33474
33494
  ...props
33475
33495
  }, ref) => {
33476
- const [internalValue, setInternalValue] = React12.useState(
33496
+ const [internalValue, setInternalValue] = React13.useState(
33477
33497
  defaultValue || ""
33478
33498
  );
33479
- const [validationError, setValidationError] = React12.useState(
33499
+ const [validationError, setValidationError] = React13.useState(
33480
33500
  null
33481
33501
  );
33482
33502
  const zipValue = value ?? internalValue;
@@ -33756,7 +33776,7 @@ function XMarkIcon({ className }) {
33756
33776
  );
33757
33777
  }
33758
33778
  function InputField({ label, icon, className, id, ...props }) {
33759
- const generatedId = React12.useId();
33779
+ const generatedId = React13.useId();
33760
33780
  const inputId = id || generatedId;
33761
33781
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
33762
33782
  label && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: labelVariants2(), children: label }),
@@ -33780,7 +33800,7 @@ function SelectField({
33780
33800
  id,
33781
33801
  ...props
33782
33802
  }) {
33783
- const generatedId = React12.useId();
33803
+ const generatedId = React13.useId();
33784
33804
  const selectId = id || generatedId;
33785
33805
  return /* @__PURE__ */ jsxs("div", { children: [
33786
33806
  label && /* @__PURE__ */ jsx("label", { htmlFor: selectId, className: labelVariants2(), children: label }),
@@ -33833,25 +33853,25 @@ function ServiceMultiSelect({
33833
33853
  disabled = false,
33834
33854
  showCounts = false
33835
33855
  }) {
33836
- const [isOpen, setIsOpen] = React12.useState(false);
33837
- const [searchTerm, setSearchTerm] = React12.useState("");
33838
- const containerRef = React12.useRef(null);
33839
- const inputRef = React12.useRef(null);
33840
- const listboxId = React12.useId();
33856
+ const [isOpen, setIsOpen] = React13.useState(false);
33857
+ const [searchTerm, setSearchTerm] = React13.useState("");
33858
+ const containerRef = React13.useRef(null);
33859
+ const inputRef = React13.useRef(null);
33860
+ const listboxId = React13.useId();
33841
33861
  const { anchorRef, floatingRef, style } = useAnchoredPosition({ open: isOpen, matchWidth: true, maxHeight: 240 });
33842
- const outsideRefs = React12.useMemo(
33862
+ const outsideRefs = React13.useMemo(
33843
33863
  () => [containerRef, floatingRef],
33844
33864
  [floatingRef]
33845
33865
  );
33846
33866
  useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
33847
- const filteredServices = React12.useMemo(() => {
33867
+ const filteredServices = React13.useMemo(() => {
33848
33868
  if (!searchTerm) return services;
33849
33869
  const lowerSearch = searchTerm.toLowerCase();
33850
33870
  return services.filter(
33851
33871
  (service) => service.label.toLowerCase().includes(lowerSearch) || service.category?.toLowerCase().includes(lowerSearch)
33852
33872
  );
33853
33873
  }, [services, searchTerm]);
33854
- const groupedServices = React12.useMemo(() => {
33874
+ const groupedServices = React13.useMemo(() => {
33855
33875
  const groups = {};
33856
33876
  filteredServices.forEach((service) => {
33857
33877
  const category = service.category || "Other";
@@ -33860,7 +33880,7 @@ function ServiceMultiSelect({
33860
33880
  });
33861
33881
  return groups;
33862
33882
  }, [filteredServices]);
33863
- const selectedServiceObjects = React12.useMemo(
33883
+ const selectedServiceObjects = React13.useMemo(
33864
33884
  () => services.filter((s) => selectedServices.includes(s.value)),
33865
33885
  [services, selectedServices]
33866
33886
  );
@@ -34376,16 +34396,16 @@ function ProviderSelector({
34376
34396
  size = "md",
34377
34397
  className
34378
34398
  }) {
34379
- const [isOpen, setIsOpen] = React12.useState(false);
34380
- const [searchQuery, setSearchQuery] = React12.useState("");
34381
- const containerRef = React12.useRef(null);
34399
+ const [isOpen, setIsOpen] = React13.useState(false);
34400
+ const [searchQuery, setSearchQuery] = React13.useState("");
34401
+ const containerRef = React13.useRef(null);
34382
34402
  const { anchorRef, floatingRef, style } = useAnchoredPosition({ open: isOpen, matchWidth: true });
34383
- const outsideRefs = React12.useMemo(
34403
+ const outsideRefs = React13.useMemo(
34384
34404
  () => [containerRef, floatingRef],
34385
34405
  [floatingRef]
34386
34406
  );
34387
34407
  useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
34388
- React12.useEffect(() => {
34408
+ React13.useEffect(() => {
34389
34409
  function handleEscape(event) {
34390
34410
  if (event.key === "Escape") {
34391
34411
  setIsOpen(false);
@@ -34394,12 +34414,12 @@ function ProviderSelector({
34394
34414
  document.addEventListener("keydown", handleEscape);
34395
34415
  return () => document.removeEventListener("keydown", handleEscape);
34396
34416
  }, []);
34397
- React12.useEffect(() => {
34417
+ React13.useEffect(() => {
34398
34418
  if (!isOpen) {
34399
34419
  setSearchQuery("");
34400
34420
  }
34401
34421
  }, [isOpen]);
34402
- const filteredProviders = React12.useMemo(() => {
34422
+ const filteredProviders = React13.useMemo(() => {
34403
34423
  if (!searchQuery) return providers;
34404
34424
  const query = searchQuery.toLowerCase();
34405
34425
  return providers.filter(
@@ -34697,9 +34717,9 @@ function ProviderSettings({
34697
34717
  defaultTab = "general",
34698
34718
  className = ""
34699
34719
  }) {
34700
- const [settings, setSettings] = React12.useState(initialSettings);
34701
- const [hasChanges, setHasChanges] = React12.useState(false);
34702
- React12.useEffect(() => {
34720
+ const [settings, setSettings] = React13.useState(initialSettings);
34721
+ const [hasChanges, setHasChanges] = React13.useState(false);
34722
+ React13.useEffect(() => {
34703
34723
  setSettings(initialSettings);
34704
34724
  setHasChanges(false);
34705
34725
  }, [initialSettings]);
@@ -35931,11 +35951,11 @@ function RecurringServiceSetupModal({
35931
35951
  cancel = "Cancel",
35932
35952
  save = "Save"
35933
35953
  } = labels;
35934
- const instanceId = React12.useId();
35954
+ const instanceId = React13.useId();
35935
35955
  const providerSelectId = `${instanceId}-provider`;
35936
35956
  const serviceSelectId = `${instanceId}-service`;
35937
35957
  const occurrenceSelectId = `${instanceId}-occurrence`;
35938
- const [formData, setFormData] = React12.useState(
35958
+ const [formData, setFormData] = React13.useState(
35939
35959
  initialData || {
35940
35960
  providerId: "",
35941
35961
  serviceId: "",
@@ -35943,7 +35963,7 @@ function RecurringServiceSetupModal({
35943
35963
  overrideConsent: false
35944
35964
  }
35945
35965
  );
35946
- React12.useEffect(() => {
35966
+ React13.useEffect(() => {
35947
35967
  if (initialData) {
35948
35968
  setFormData(initialData);
35949
35969
  } else {
@@ -36156,9 +36176,9 @@ function RejectionModal({
36156
36176
  isSubmitting = false,
36157
36177
  variant = "danger"
36158
36178
  }) {
36159
- const [selectedReasonId, setSelectedReasonId] = React12.useState("");
36160
- const [details, setDetails] = React12.useState("");
36161
- React12.useEffect(() => {
36179
+ const [selectedReasonId, setSelectedReasonId] = React13.useState("");
36180
+ const [details, setDetails] = React13.useState("");
36181
+ React13.useEffect(() => {
36162
36182
  if (!open) {
36163
36183
  setSelectedReasonId("");
36164
36184
  setDetails("");
@@ -36615,7 +36635,7 @@ function ReportDashboard({
36615
36635
  )
36616
36636
  ] });
36617
36637
  }
36618
- var ResultsEntryForm = React12.forwardRef(function ResultsEntryForm2({
36638
+ var ResultsEntryForm = React13.forwardRef(function ResultsEntryForm2({
36619
36639
  employeeFirstName,
36620
36640
  employeeLastName,
36621
36641
  initialData = {},
@@ -36643,30 +36663,30 @@ var ResultsEntryForm = React12.forwardRef(function ResultsEntryForm2({
36643
36663
  addProviderContact = "Click here to add a provider contact",
36644
36664
  pleaseSelectResult = "Please select a result"
36645
36665
  } = labels;
36646
- const [result, setResult] = React12.useState(
36666
+ const [result, setResult] = React13.useState(
36647
36667
  initialData.result ?? null
36648
36668
  );
36649
- const [alternateText, setAlternateText] = React12.useState(
36669
+ const [alternateText, setAlternateText] = React13.useState(
36650
36670
  initialData.alternateText ?? ""
36651
36671
  );
36652
- const [dateDrawnValue, setDateDrawnValue] = React12.useState(
36672
+ const [dateDrawnValue, setDateDrawnValue] = React13.useState(
36653
36673
  initialData.dateDrawn ?? ""
36654
36674
  );
36655
- const [dateCompletedValue, setDateCompletedValue] = React12.useState(
36675
+ const [dateCompletedValue, setDateCompletedValue] = React13.useState(
36656
36676
  initialData.dateCompleted ?? ""
36657
36677
  );
36658
- const [recommendations, setRecommendations] = React12.useState(
36678
+ const [recommendations, setRecommendations] = React13.useState(
36659
36679
  initialData.recommendations ?? ""
36660
36680
  );
36661
- const [files, setFiles] = React12.useState(initialData.files ?? []);
36662
- const [selectedContacts, setSelectedContacts] = React12.useState(
36681
+ const [files, setFiles] = React13.useState(initialData.files ?? []);
36682
+ const [selectedContacts, setSelectedContacts] = React13.useState(
36663
36683
  initialData.providerContacts ?? []
36664
36684
  );
36665
- const [applyToAll, setApplyToAll] = React12.useState(
36685
+ const [applyToAll, setApplyToAll] = React13.useState(
36666
36686
  initialData.applyToAllServices ?? false
36667
36687
  );
36668
- const [showError, setShowError] = React12.useState(false);
36669
- const fileInputRef = React12.useRef(null);
36688
+ const [showError, setShowError] = React13.useState(false);
36689
+ const fileInputRef = React13.useRef(null);
36670
36690
  const handleFileSelect = (e) => {
36671
36691
  const selectedFiles = Array.from(e.target.files || []);
36672
36692
  setFiles((prev) => [...prev, ...selectedFiles]);
@@ -36682,7 +36702,7 @@ var ResultsEntryForm = React12.forwardRef(function ResultsEntryForm2({
36682
36702
  (prev) => prev.includes(contactId) ? prev.filter((id) => id !== contactId) : [...prev, contactId]
36683
36703
  );
36684
36704
  };
36685
- const validateAndSubmit = React12.useCallback(() => {
36705
+ const validateAndSubmit = React13.useCallback(() => {
36686
36706
  if (!result) {
36687
36707
  setShowError(true);
36688
36708
  return;
@@ -36709,7 +36729,7 @@ var ResultsEntryForm = React12.forwardRef(function ResultsEntryForm2({
36709
36729
  applyToAll,
36710
36730
  onSubmit
36711
36731
  ]);
36712
- React12.useImperativeHandle(
36732
+ React13.useImperativeHandle(
36713
36733
  ref,
36714
36734
  () => ({
36715
36735
  submit: validateAndSubmit
@@ -36985,7 +37005,7 @@ function ResultsEntryModal({
36985
37005
  ...props
36986
37006
  }) {
36987
37007
  const { submit = "Submit", close = "Close" } = labels;
36988
- const formRef = React12.useRef(null);
37008
+ const formRef = React13.useRef(null);
36989
37009
  const employeeName = employeeFirstName || employeeLastName ? `${employeeFirstName ?? ""} ${employeeLastName ?? ""}`.trim() : void 0;
36990
37010
  const handleSubmitClick = () => {
36991
37011
  formRef.current?.submit();
@@ -37115,7 +37135,7 @@ function ScheduleCalendar({
37115
37135
  isLoading = false,
37116
37136
  className = ""
37117
37137
  }) {
37118
- const [currentDate, setCurrentDate] = React12.useState(selectedDate);
37138
+ const [currentDate, setCurrentDate] = React13.useState(selectedDate);
37119
37139
  const formatTime4 = (date) => {
37120
37140
  const d = typeof date === "string" ? new Date(date) : date;
37121
37141
  return d.toLocaleTimeString("en-US", {
@@ -37455,19 +37475,19 @@ function PillSelect({
37455
37475
  disabled = false,
37456
37476
  className
37457
37477
  }) {
37458
- const [internalValue, setInternalValue] = React12.useState(
37478
+ const [internalValue, setInternalValue] = React13.useState(
37459
37479
  defaultValue ?? options[0]?.value ?? ""
37460
37480
  );
37461
- const [expanded, setExpanded] = React12.useState(false);
37462
- const triggerRef = React12.useRef(null);
37463
- const menuRef = React12.useRef(null);
37464
- const selectedOptionRef = React12.useRef(null);
37465
- const firstEnabledOptionRef = React12.useRef(null);
37466
- const listboxId = React12.useId();
37467
- const [menuStyle, setMenuStyle] = React12.useState({});
37481
+ const [expanded, setExpanded] = React13.useState(false);
37482
+ const triggerRef = React13.useRef(null);
37483
+ const menuRef = React13.useRef(null);
37484
+ const selectedOptionRef = React13.useRef(null);
37485
+ const firstEnabledOptionRef = React13.useRef(null);
37486
+ const listboxId = React13.useId();
37487
+ const [menuStyle, setMenuStyle] = React13.useState({});
37468
37488
  const value = controlledValue !== void 0 ? controlledValue : internalValue;
37469
37489
  const selectedOption = options.find((o) => o.value === value);
37470
- const close = React12.useCallback((restoreFocus = false) => {
37490
+ const close = React13.useCallback((restoreFocus = false) => {
37471
37491
  setExpanded(false);
37472
37492
  if (restoreFocus) {
37473
37493
  requestAnimationFrame(
@@ -37475,7 +37495,7 @@ function PillSelect({
37475
37495
  );
37476
37496
  }
37477
37497
  }, []);
37478
- const updateMenuPosition = React12.useCallback(() => {
37498
+ const updateMenuPosition = React13.useCallback(() => {
37479
37499
  const trigger = triggerRef.current;
37480
37500
  if (!trigger) return;
37481
37501
  const rect = trigger.getBoundingClientRect();
@@ -37496,7 +37516,7 @@ function PillSelect({
37496
37516
  zIndex: 9999
37497
37517
  });
37498
37518
  }, []);
37499
- React12.useEffect(() => {
37519
+ React13.useEffect(() => {
37500
37520
  if (!expanded) return;
37501
37521
  updateMenuPosition();
37502
37522
  window.addEventListener("scroll", updateMenuPosition, true);
@@ -37506,7 +37526,7 @@ function PillSelect({
37506
37526
  window.removeEventListener("resize", updateMenuPosition);
37507
37527
  };
37508
37528
  }, [expanded, updateMenuPosition]);
37509
- React12.useEffect(() => {
37529
+ React13.useEffect(() => {
37510
37530
  if (!expanded) return;
37511
37531
  const handleClickOutside = (event) => {
37512
37532
  const target = event.target;
@@ -37518,7 +37538,7 @@ function PillSelect({
37518
37538
  document.addEventListener("mousedown", handleClickOutside);
37519
37539
  return () => document.removeEventListener("mousedown", handleClickOutside);
37520
37540
  }, [close, expanded]);
37521
- React12.useEffect(() => {
37541
+ React13.useEffect(() => {
37522
37542
  if (!expanded) return;
37523
37543
  requestAnimationFrame(() => {
37524
37544
  (selectedOptionRef.current ?? firstEnabledOptionRef.current)?.focus({
@@ -37737,7 +37757,7 @@ function SubCategoryAccordion({
37737
37757
  onServiceClick,
37738
37758
  index
37739
37759
  }) {
37740
- const [isExpanded, setIsExpanded] = React12.useState(
37760
+ const [isExpanded, setIsExpanded] = React13.useState(
37741
37761
  subCategory.defaultExpanded ?? false
37742
37762
  );
37743
37763
  const contentId = `sub-content-${index}`;
@@ -37804,7 +37824,7 @@ function CategoryAccordionItem({
37804
37824
  onExpandChange
37805
37825
  }) {
37806
37826
  const isControlled = expandedCategories !== void 0;
37807
- const [internalExpanded, setInternalExpanded] = React12.useState(
37827
+ const [internalExpanded, setInternalExpanded] = React13.useState(
37808
37828
  category.defaultExpanded ?? false
37809
37829
  );
37810
37830
  const isExpanded = isControlled ? expandedCategories.includes(category.name) : internalExpanded;
@@ -37902,7 +37922,7 @@ function ServiceAccordion({
37902
37922
  className,
37903
37923
  "aria-label": ariaLabel = "Service categories"
37904
37924
  }) {
37905
- const [internalExpanded, setInternalExpanded] = React12.useState([]);
37925
+ const [internalExpanded, setInternalExpanded] = React13.useState([]);
37906
37926
  const isControlled = controlledExpanded !== void 0;
37907
37927
  const expanded = isControlled ? controlledExpanded : internalExpanded;
37908
37928
  const handleExpandChange = (categoryName, isExpanded) => {
@@ -38194,7 +38214,7 @@ function ServiceBadgeGroup({
38194
38214
  size = "md",
38195
38215
  onShowMore
38196
38216
  }) {
38197
- const badges = React12.Children.toArray(children);
38217
+ const badges = React13.Children.toArray(children);
38198
38218
  const visibleBadges = maxVisible ? badges.slice(0, maxVisible) : badges;
38199
38219
  const hiddenCount = maxVisible ? badges.length - maxVisible : 0;
38200
38220
  return /* @__PURE__ */ jsxs(
@@ -39047,15 +39067,15 @@ function ServicePicker({
39047
39067
  fullWidth = false,
39048
39068
  className
39049
39069
  }) {
39050
- const [searchQuery, setSearchQuery] = React12.useState("");
39051
- const [expandedGroups, setExpandedGroups] = React12.useState(
39070
+ const [searchQuery, setSearchQuery] = React13.useState("");
39071
+ const [expandedGroups, setExpandedGroups] = React13.useState(
39052
39072
  /* @__PURE__ */ new Set()
39053
39073
  );
39054
- const filteredGroups = React12.useMemo(
39074
+ const filteredGroups = React13.useMemo(
39055
39075
  () => filterServices(groups, searchQuery),
39056
39076
  [groups, searchQuery]
39057
39077
  );
39058
- const searchResults = React12.useMemo(
39078
+ const searchResults = React13.useMemo(
39059
39079
  () => searchQuery ? flattenServices(filteredGroups) : [],
39060
39080
  [filteredGroups, searchQuery]
39061
39081
  );
@@ -39504,16 +39524,16 @@ function ServicePricingManager({
39504
39524
  categories: _categories = [],
39505
39525
  className = ""
39506
39526
  }) {
39507
- const [searchTerm, setSearchTerm] = React12.useState("");
39508
- const [selectedCategory, setSelectedCategory] = React12.useState(
39527
+ const [searchTerm, setSearchTerm] = React13.useState("");
39528
+ const [selectedCategory, setSelectedCategory] = React13.useState(
39509
39529
  null
39510
39530
  );
39511
- const [editingService, setEditingService] = React12.useState(null);
39512
- const [editPrice, setEditPrice] = React12.useState("");
39513
- const [editEmployerPrice, setEditEmployerPrice] = React12.useState("");
39514
- const [showBulkModal, setShowBulkModal] = React12.useState(false);
39515
- const [bulkAdjustment, setBulkAdjustment] = React12.useState("");
39516
- const [bulkAdjustmentType, setBulkAdjustmentType] = React12.useState("percent");
39531
+ const [editingService, setEditingService] = React13.useState(null);
39532
+ const [editPrice, setEditPrice] = React13.useState("");
39533
+ const [editEmployerPrice, setEditEmployerPrice] = React13.useState("");
39534
+ const [showBulkModal, setShowBulkModal] = React13.useState(false);
39535
+ const [bulkAdjustment, setBulkAdjustment] = React13.useState("");
39536
+ const [bulkAdjustmentType, setBulkAdjustmentType] = React13.useState("percent");
39517
39537
  const formatCurrency3 = (amount) => {
39518
39538
  return new Intl.NumberFormat("en-US", {
39519
39539
  style: "currency",
@@ -39904,7 +39924,7 @@ function ServiceShippingSettings({
39904
39924
  isSaving = false,
39905
39925
  className = ""
39906
39926
  }) {
39907
- const [address, setAddress] = React12.useState(
39927
+ const [address, setAddress] = React13.useState(
39908
39928
  defaultAddress || {
39909
39929
  name: "",
39910
39930
  street1: "",
@@ -40106,7 +40126,7 @@ function SetupServiceModal({
40106
40126
  errorMessage,
40107
40127
  title = "Add New Service"
40108
40128
  }) {
40109
- const [formData, setFormData] = React12.useState({
40129
+ const [formData, setFormData] = React13.useState({
40110
40130
  name: "",
40111
40131
  description: "",
40112
40132
  price: 0,
@@ -40116,7 +40136,7 @@ function SetupServiceModal({
40116
40136
  initialInventory: void 0,
40117
40137
  autoAcceptReferrals: false
40118
40138
  });
40119
- React12.useEffect(() => {
40139
+ React13.useEffect(() => {
40120
40140
  if (!open) {
40121
40141
  setFormData({
40122
40142
  name: "",
@@ -41152,7 +41172,7 @@ function NewsletterForm({
41152
41172
  isLoading = false,
41153
41173
  className
41154
41174
  }) {
41155
- const [email, setEmail] = React12.useState("");
41175
+ const [email, setEmail] = React13.useState("");
41156
41176
  function handleSubmit(e) {
41157
41177
  e.preventDefault();
41158
41178
  if (email.trim()) {
@@ -41277,7 +41297,7 @@ function LegalLinks({
41277
41297
  {
41278
41298
  "data-slot": "site-footer-legal",
41279
41299
  className: cn("flex flex-wrap items-center gap-x-4 gap-y-1", className),
41280
- children: links.map((link, index) => /* @__PURE__ */ jsxs(React12.Fragment, { children: [
41300
+ children: links.map((link, index) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
41281
41301
  index > 0 && /* @__PURE__ */ jsx(
41282
41302
  "span",
41283
41303
  {
@@ -41768,9 +41788,9 @@ function UserMenu({
41768
41788
  menuItems = [],
41769
41789
  className
41770
41790
  }) {
41771
- const [isOpen, setIsOpen] = React12.useState(false);
41772
- const menuRef = React12.useRef(null);
41773
- React12.useEffect(() => {
41791
+ const [isOpen, setIsOpen] = React13.useState(false);
41792
+ const menuRef = React13.useRef(null);
41793
+ React13.useEffect(() => {
41774
41794
  function handleClickOutside(event) {
41775
41795
  if (menuRef.current && !menuRef.current.contains(event.target)) {
41776
41796
  setIsOpen(false);
@@ -42063,7 +42083,7 @@ function SiteHeader({
42063
42083
  userMenuItems,
42064
42084
  className
42065
42085
  }) {
42066
- const [mobileMenuOpen, setMobileMenuOpen] = React12.useState(false);
42086
+ const [mobileMenuOpen, setMobileMenuOpen] = React13.useState(false);
42067
42087
  const colorVariant = variant === "primary" || variant === "transparent" ? "light" : "dark";
42068
42088
  return /* @__PURE__ */ jsxs(Fragment, { children: [
42069
42089
  /* @__PURE__ */ jsx("div", { "data-slot": "site-header-spacer", className: "h-16", "aria-hidden": "true" }),
@@ -42435,29 +42455,29 @@ function SSOConfigForm({
42435
42455
  delete: deleteLabel = "Delete SSO",
42436
42456
  cancel = "Cancel"
42437
42457
  } = labels;
42438
- const [clientDomain, setClientDomain] = React12.useState(
42458
+ const [clientDomain, setClientDomain] = React13.useState(
42439
42459
  initialData.clientDomain ?? ""
42440
42460
  );
42441
- const [ssoLoginUrl, setSsoLoginUrl] = React12.useState(
42461
+ const [ssoLoginUrl, setSsoLoginUrl] = React13.useState(
42442
42462
  initialData.ssoLoginUrl ?? ""
42443
42463
  );
42444
- const [ssoLogoutUrl, setSsoLogoutUrl] = React12.useState(
42464
+ const [ssoLogoutUrl, setSsoLogoutUrl] = React13.useState(
42445
42465
  initialData.ssoLogoutUrl ?? ""
42446
42466
  );
42447
- const [forceReauth, setForceReauth] = React12.useState(
42467
+ const [forceReauth, setForceReauth] = React13.useState(
42448
42468
  initialData.forceReauthentication ?? false
42449
42469
  );
42450
- const [idpSigns, setIdpSigns] = React12.useState(
42470
+ const [idpSigns, setIdpSigns] = React13.useState(
42451
42471
  initialData.idpSignsRequest ?? false
42452
42472
  );
42453
- const [allowUnencrypted, setAllowUnencrypted] = React12.useState(
42473
+ const [allowUnencrypted, setAllowUnencrypted] = React13.useState(
42454
42474
  initialData.allowUnencryptedAssertion ?? false
42455
42475
  );
42456
- const [certificateFile, setCertificateFile] = React12.useState(
42476
+ const [certificateFile, setCertificateFile] = React13.useState(
42457
42477
  null
42458
42478
  );
42459
- const fileInputRef = React12.useRef(null);
42460
- const [errors, setErrors] = React12.useState({});
42479
+ const fileInputRef = React13.useRef(null);
42480
+ const [errors, setErrors] = React13.useState({});
42461
42481
  const validate = () => {
42462
42482
  const newErrors = {};
42463
42483
  if (!clientDomain.trim()) {
@@ -42815,7 +42835,7 @@ function StepIndicator({
42815
42835
  const status = getStepStatus(index);
42816
42836
  const isLast = index === steps.length - 1;
42817
42837
  const clickable = isClickable(index);
42818
- return /* @__PURE__ */ jsxs(React12.Fragment, { children: [
42838
+ return /* @__PURE__ */ jsxs(React13.Fragment, { children: [
42819
42839
  /* @__PURE__ */ jsxs("div", { className: `flex flex-row items-center ${sizes.gap}`, children: [
42820
42840
  circleButton(step, index, status, clickable),
42821
42841
  stepLabel(step, status, false)
@@ -43032,10 +43052,10 @@ function TableOfContents({
43032
43052
  scrollSpyOptions,
43033
43053
  className
43034
43054
  }) {
43035
- const [discoveredItems, setDiscoveredItems] = React12.useState([]);
43055
+ const [discoveredItems, setDiscoveredItems] = React13.useState([]);
43036
43056
  const flatItems = manualItems ?? discoveredItems;
43037
43057
  const contentEl = contentRef?.current ?? null;
43038
- React12.useEffect(() => {
43058
+ React13.useEffect(() => {
43039
43059
  if (manualItems) return;
43040
43060
  const container = contentEl ?? document;
43041
43061
  let frameId = null;
@@ -43066,7 +43086,7 @@ function TableOfContents({
43066
43086
  if (frameId !== null) cancelAnimationFrame(frameId);
43067
43087
  };
43068
43088
  }, [manualItems, selector, maxDepth, contentEl]);
43069
- const ids = React12.useMemo(() => flatItems.map((i) => i.id), [flatItems]);
43089
+ const ids = React13.useMemo(() => flatItems.map((i) => i.id), [flatItems]);
43070
43090
  const isControlled = controlledActiveId !== void 0;
43071
43091
  const { activeId: spyActiveId } = useScrollSpy({
43072
43092
  ids,
@@ -43075,12 +43095,12 @@ function TableOfContents({
43075
43095
  ...scrollSpyOptions
43076
43096
  });
43077
43097
  const activeId = isControlled ? controlledActiveId : spyActiveId;
43078
- React12.useEffect(() => {
43098
+ React13.useEffect(() => {
43079
43099
  if (!isControlled && onActiveChange) {
43080
43100
  onActiveChange(spyActiveId);
43081
43101
  }
43082
43102
  }, [spyActiveId, isControlled, onActiveChange]);
43083
- const handleClick = React12.useCallback(
43103
+ const handleClick = React13.useCallback(
43084
43104
  (e, id) => {
43085
43105
  if (e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) {
43086
43106
  return;
@@ -43101,7 +43121,7 @@ function TableOfContents({
43101
43121
  },
43102
43122
  [contentEl, scrollOffset, smooth]
43103
43123
  );
43104
- const tree = React12.useMemo(() => nestItems(flatItems), [flatItems]);
43124
+ const tree = React13.useMemo(() => nestItems(flatItems), [flatItems]);
43105
43125
  if (hideWhenEmpty && tree.length === 0) return null;
43106
43126
  return /* @__PURE__ */ jsxs("nav", { "aria-label": "Table of contents", className: cn("text-sm", className), children: [
43107
43127
  title && /* @__PURE__ */ jsx("p", { className: "text-foreground mb-3 font-semibold", children: title }),
@@ -43706,7 +43726,7 @@ function WebChartReportViewer({
43706
43726
  dateFrom = "From",
43707
43727
  dateTo = "To"
43708
43728
  } = labels;
43709
- const [modalOpen, setModalOpen] = React12.useState(false);
43729
+ const [modalOpen, setModalOpen] = React13.useState(false);
43710
43730
  const handleReportClick = (report) => {
43711
43731
  onReportSelect?.(report);
43712
43732
  setModalOpen(true);
@@ -43944,7 +43964,7 @@ function ReportTimeRange({
43944
43964
  ],
43945
43965
  className
43946
43966
  }) {
43947
- const [preset, setPreset] = React12.useState("this-month");
43967
+ const [preset, setPreset] = React13.useState("this-month");
43948
43968
  const handlePresetChange = (value) => {
43949
43969
  setPreset(value);
43950
43970
  const now = /* @__PURE__ */ new Date();
@@ -44046,7 +44066,7 @@ function isValidUrl(url) {
44046
44066
  }
44047
44067
  }
44048
44068
  }
44049
- var WebsiteInput = React12.forwardRef(
44069
+ var WebsiteInput = React13.forwardRef(
44050
44070
  ({
44051
44071
  value = "",
44052
44072
  onChange,
@@ -44057,7 +44077,7 @@ var WebsiteInput = React12.forwardRef(
44057
44077
  error,
44058
44078
  ...props
44059
44079
  }, ref) => {
44060
- const [localError, setLocalError] = React12.useState();
44080
+ const [localError, setLocalError] = React13.useState();
44061
44081
  const handleChange = (e) => {
44062
44082
  onChange?.(e.target.value);
44063
44083
  if (localError) {
@@ -44139,7 +44159,7 @@ function WebsiteInputGroup({
44139
44159
  typeLabels,
44140
44160
  className
44141
44161
  }) {
44142
- const websites = React12.useMemo(() => {
44162
+ const websites = React13.useMemo(() => {
44143
44163
  if (value.length >= minEntries) return value;
44144
44164
  const padding = Array(minEntries - value.length).fill(null).map(() => ({ url: "", type: "website" }));
44145
44165
  return [...value, ...padding];