@mieweb/ui 0.7.1-dev.9 → 0.7.2-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ag-grid.cjs +5 -5
- package/dist/ag-grid.js +1 -1
- package/dist/{chunk-XCVBCY7L.cjs → chunk-26DPQUSB.cjs} +4 -4
- package/dist/{chunk-XCVBCY7L.cjs.map → chunk-26DPQUSB.cjs.map} +1 -1
- package/dist/{chunk-YTLTI5Q2.js → chunk-3D4ITDLO.js} +3 -3
- package/dist/{chunk-YTLTI5Q2.js.map → chunk-3D4ITDLO.js.map} +1 -1
- package/dist/{chunk-KZ7QKUJS.cjs → chunk-3IAA3KCE.cjs} +13 -4
- package/dist/chunk-3IAA3KCE.cjs.map +1 -0
- package/dist/chunk-3PXOIAF6.js +3 -0
- package/dist/{chunk-DHKYGVP7.js.map → chunk-3PXOIAF6.js.map} +1 -1
- package/dist/{chunk-7OIUA7PW.js → chunk-3SRBIXQX.js} +9 -9
- package/dist/{chunk-7OIUA7PW.js.map → chunk-3SRBIXQX.js.map} +1 -1
- package/dist/{chunk-7V6SUOBV.js → chunk-3YSIZ2CK.js} +13 -4
- package/dist/chunk-3YSIZ2CK.js.map +1 -0
- package/dist/{chunk-3OME4UHL.cjs → chunk-54OW6ZPL.cjs} +99 -3
- package/dist/chunk-54OW6ZPL.cjs.map +1 -0
- package/dist/{chunk-IVDIT3TJ.js → chunk-5BDCQBYW.js} +3 -3
- package/dist/{chunk-IVDIT3TJ.js.map → chunk-5BDCQBYW.js.map} +1 -1
- package/dist/{chunk-5PHGIWDN.cjs → chunk-6ECKH4DJ.cjs} +3 -3
- package/dist/{chunk-5PHGIWDN.cjs.map → chunk-6ECKH4DJ.cjs.map} +1 -1
- package/dist/{chunk-2GQ7VPCS.cjs → chunk-6J7UGYT5.cjs} +6 -6
- package/dist/{chunk-2GQ7VPCS.cjs.map → chunk-6J7UGYT5.cjs.map} +1 -1
- package/dist/{chunk-HIAUNNOW.cjs → chunk-AIJAFPGJ.cjs} +3 -3
- package/dist/{chunk-HIAUNNOW.cjs.map → chunk-AIJAFPGJ.cjs.map} +1 -1
- package/dist/{chunk-BS5NOKZD.js → chunk-AQ564XO7.js} +5 -5
- package/dist/chunk-AQ564XO7.js.map +1 -0
- package/dist/{chunk-JJNCQMR5.js → chunk-BMRQ4VME.js} +3 -3
- package/dist/{chunk-JJNCQMR5.js.map → chunk-BMRQ4VME.js.map} +1 -1
- package/dist/{chunk-REPZI2YO.js → chunk-BMSG4NBH.js} +3 -3
- package/dist/{chunk-REPZI2YO.js.map → chunk-BMSG4NBH.js.map} +1 -1
- package/dist/{chunk-QA6ZDHFP.js → chunk-BOOJDRJO.js} +35 -11
- package/dist/chunk-BOOJDRJO.js.map +1 -0
- package/dist/{chunk-34LGPMO4.js → chunk-DLBV42JD.js} +3 -3
- package/dist/{chunk-34LGPMO4.js.map → chunk-DLBV42JD.js.map} +1 -1
- package/dist/{chunk-2YDKLURF.js → chunk-DWIF6VXZ.js} +99 -3
- package/dist/chunk-DWIF6VXZ.js.map +1 -0
- package/dist/{chunk-KQGGKE36.js → chunk-EGWWTIWS.js} +118 -74
- package/dist/chunk-EGWWTIWS.js.map +1 -0
- package/dist/{chunk-IXWRD4AP.js → chunk-EKRT7K2K.js} +3 -3
- package/dist/{chunk-IXWRD4AP.js.map → chunk-EKRT7K2K.js.map} +1 -1
- package/dist/{chunk-MHD5HZ4X.js → chunk-FDV7EQWH.js} +3 -3
- package/dist/{chunk-MHD5HZ4X.js.map → chunk-FDV7EQWH.js.map} +1 -1
- package/dist/{chunk-STCRP652.cjs → chunk-FKLUSYFP.cjs} +4 -4
- package/dist/{chunk-STCRP652.cjs.map → chunk-FKLUSYFP.cjs.map} +1 -1
- package/dist/{chunk-DKICBJTM.js → chunk-HIDV32ZX.js} +4 -4
- package/dist/{chunk-DKICBJTM.js.map → chunk-HIDV32ZX.js.map} +1 -1
- package/dist/{chunk-XPNKDFRL.js → chunk-I3WGZPI6.js} +3 -3
- package/dist/{chunk-XPNKDFRL.js.map → chunk-I3WGZPI6.js.map} +1 -1
- package/dist/{chunk-62TFTZWT.cjs → chunk-IJYTASQQ.cjs} +5 -5
- package/dist/{chunk-62TFTZWT.cjs.map → chunk-IJYTASQQ.cjs.map} +1 -1
- package/dist/{chunk-SAJSA4TS.js → chunk-LMBXJZLG.js} +8 -4
- package/dist/chunk-LMBXJZLG.js.map +1 -0
- package/dist/{chunk-CPUDOVWH.cjs → chunk-MJWFNV3L.cjs} +12 -8
- package/dist/chunk-MJWFNV3L.cjs.map +1 -0
- package/dist/{chunk-ZDEYV373.cjs → chunk-MYFZYUPR.cjs} +35 -11
- package/dist/chunk-MYFZYUPR.cjs.map +1 -0
- package/dist/{chunk-QNUPTRW7.js → chunk-NGLI2MSM.js} +24 -14
- package/dist/chunk-NGLI2MSM.js.map +1 -0
- package/dist/{chunk-PGETZ2FP.cjs → chunk-OAHORW4N.cjs} +120 -76
- package/dist/chunk-OAHORW4N.cjs.map +1 -0
- package/dist/{chunk-G45PAVQI.js → chunk-P6L74SKG.js} +4 -4
- package/dist/{chunk-G45PAVQI.js.map → chunk-P6L74SKG.js.map} +1 -1
- package/dist/chunk-PAM5UUBL.cjs +740 -0
- package/dist/{chunk-UTYUT5YY.cjs.map → chunk-PAM5UUBL.cjs.map} +1 -1
- package/dist/{chunk-JY4U2QWO.cjs → chunk-PLMXN23Q.cjs} +5 -5
- package/dist/chunk-PLMXN23Q.cjs.map +1 -0
- package/dist/{chunk-PNJAFZDC.cjs → chunk-Q5VBO3I5.cjs} +30 -20
- package/dist/chunk-Q5VBO3I5.cjs.map +1 -0
- package/dist/{chunk-XD6GRTH2.cjs → chunk-QI2SB6U3.cjs} +7 -7
- package/dist/{chunk-XD6GRTH2.cjs.map → chunk-QI2SB6U3.cjs.map} +1 -1
- package/dist/{chunk-6XGESZ4S.js → chunk-QYSUYB3S.js} +12 -8
- package/dist/chunk-QYSUYB3S.js.map +1 -0
- package/dist/{chunk-Y5F2OASC.cjs → chunk-RBS3GHDZ.cjs} +6 -6
- package/dist/{chunk-Y5F2OASC.cjs.map → chunk-RBS3GHDZ.cjs.map} +1 -1
- package/dist/{chunk-NGPEXCC7.cjs → chunk-RS5VA6QU.cjs} +8 -4
- package/dist/chunk-RS5VA6QU.cjs.map +1 -0
- package/dist/{chunk-YXHX2DAK.cjs → chunk-RYQ3S3KO.cjs} +5 -5
- package/dist/{chunk-YXHX2DAK.cjs.map → chunk-RYQ3S3KO.cjs.map} +1 -1
- package/dist/{chunk-QKKYMNR2.js → chunk-RZJXCI53.js} +189 -202
- package/dist/chunk-RZJXCI53.js.map +1 -0
- package/dist/{chunk-ET5JGGVL.js → chunk-TNUL4LGG.js} +5 -5
- package/dist/{chunk-ET5JGGVL.js.map → chunk-TNUL4LGG.js.map} +1 -1
- package/dist/{chunk-C2NNNOSU.cjs → chunk-VVI32P7L.cjs} +4 -4
- package/dist/{chunk-C2NNNOSU.cjs.map → chunk-VVI32P7L.cjs.map} +1 -1
- package/dist/{chunk-X732DPW4.cjs → chunk-VWCMOWGH.cjs} +77 -77
- package/dist/{chunk-X732DPW4.cjs.map → chunk-VWCMOWGH.cjs.map} +1 -1
- package/dist/{chunk-HEV52I7A.cjs → chunk-XS35KPBZ.cjs} +190 -202
- package/dist/chunk-XS35KPBZ.cjs.map +1 -0
- package/dist/{chunk-EFEKAPS2.cjs → chunk-YVL3XATO.cjs} +3 -3
- package/dist/{chunk-EFEKAPS2.cjs.map → chunk-YVL3XATO.cjs.map} +1 -1
- package/dist/{chunk-EJPV3QY3.js → chunk-YXCE2HSK.js} +3 -3
- package/dist/{chunk-EJPV3QY3.js.map → chunk-YXCE2HSK.js.map} +1 -1
- package/dist/{chunk-OJEXXH5D.cjs → chunk-ZBI52NP2.cjs} +4 -4
- package/dist/{chunk-OJEXXH5D.cjs.map → chunk-ZBI52NP2.cjs.map} +1 -1
- package/dist/components/Autocomplete/index.cjs +4 -4
- package/dist/components/Autocomplete/index.js +3 -3
- package/dist/components/Badge/index.cjs +3 -3
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/Card/index.cjs +15 -15
- package/dist/components/Card/index.d.cts +8 -3
- package/dist/components/Card/index.d.ts +8 -3
- package/dist/components/Card/index.js +1 -1
- package/dist/components/CountryCodeDropdown/index.cjs +5 -5
- package/dist/components/CountryCodeDropdown/index.js +2 -2
- package/dist/components/DateInput/index.cjs +4 -4
- package/dist/components/DateInput/index.d.cts +3 -1
- package/dist/components/DateInput/index.d.ts +3 -1
- package/dist/components/DateInput/index.js +3 -3
- package/dist/components/Dropdown/index.cjs +9 -9
- package/dist/components/Dropdown/index.d.cts +1 -1
- package/dist/components/Dropdown/index.d.ts +1 -1
- package/dist/components/Dropdown/index.js +3 -3
- package/dist/components/Input/index.cjs +3 -3
- package/dist/components/Input/index.js +1 -1
- package/dist/components/Label/index.cjs +3 -3
- package/dist/components/Label/index.js +1 -1
- package/dist/components/MediaEditor/index.cjs +9 -9
- package/dist/components/MediaEditor/index.js +4 -4
- package/dist/components/PhoneInput/index.cjs +4 -4
- package/dist/components/PhoneInput/index.js +2 -2
- package/dist/components/RichTextEditor/index.cjs +7 -7
- package/dist/components/RichTextEditor/index.js +4 -4
- package/dist/components/Select/index.cjs +4 -4
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Sheet/index.cjs +10 -10
- package/dist/components/Sheet/index.d.cts +1 -1
- package/dist/components/Sheet/index.d.ts +1 -1
- package/dist/components/Sheet/index.js +1 -1
- package/dist/components/SuperChat/index.cjs +17 -17
- package/dist/components/SuperChat/index.d.cts +4 -4
- package/dist/components/SuperChat/index.d.ts +4 -4
- package/dist/components/SuperChat/index.js +6 -6
- package/dist/components/SuperChat/plugins/index.cjs +4 -4
- package/dist/components/SuperChat/plugins/index.d.cts +3 -3
- package/dist/components/SuperChat/plugins/index.d.ts +3 -3
- package/dist/components/SuperChat/plugins/index.js +3 -3
- package/dist/components/Switch/index.cjs +4 -4
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Table/index.cjs +9 -9
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Text/index.cjs +4 -4
- package/dist/components/Text/index.d.cts +1 -1
- package/dist/components/Text/index.d.ts +1 -1
- package/dist/components/Text/index.js +1 -1
- package/dist/datavis.cjs +2 -2
- package/dist/datavis.js +1 -1
- package/dist/esheet.cjs +12 -12
- package/dist/esheet.js +9 -9
- package/dist/hooks/index.cjs +2 -2
- package/dist/hooks/index.d.cts +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +2294 -776
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +104 -17
- package/dist/index.d.ts +104 -17
- package/dist/index.js +860 -67
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/dist/{types-BYnLjEFg.d.cts → types-B2RLmdVd.d.cts} +3 -1
- package/dist/{types-BYnLjEFg.d.ts → types-B2RLmdVd.d.ts} +3 -1
- package/dist/{types-CyCwYBlr.d.ts → types-BoTeTPdH.d.ts} +1 -1
- package/dist/{types-CBh8Zlje.d.cts → types-DyIB9HYT.d.cts} +1 -1
- package/dist/{useAnchoredPosition-nXdSFKHf.d.ts → useAnchoredPosition-C7PNglzD.d.cts} +6 -2
- package/dist/{useAnchoredPosition-nXdSFKHf.d.cts → useAnchoredPosition-C7PNglzD.d.ts} +6 -2
- package/package.json +6 -6
- package/dist/chunk-2YDKLURF.js.map +0 -1
- package/dist/chunk-3OME4UHL.cjs.map +0 -1
- package/dist/chunk-6XGESZ4S.js.map +0 -1
- package/dist/chunk-7V6SUOBV.js.map +0 -1
- package/dist/chunk-BS5NOKZD.js.map +0 -1
- package/dist/chunk-CPUDOVWH.cjs.map +0 -1
- package/dist/chunk-DHKYGVP7.js +0 -3
- package/dist/chunk-HEV52I7A.cjs.map +0 -1
- package/dist/chunk-JY4U2QWO.cjs.map +0 -1
- package/dist/chunk-KQGGKE36.js.map +0 -1
- package/dist/chunk-KZ7QKUJS.cjs.map +0 -1
- package/dist/chunk-NGPEXCC7.cjs.map +0 -1
- package/dist/chunk-PGETZ2FP.cjs.map +0 -1
- package/dist/chunk-PNJAFZDC.cjs.map +0 -1
- package/dist/chunk-QA6ZDHFP.js.map +0 -1
- package/dist/chunk-QKKYMNR2.js.map +0 -1
- package/dist/chunk-QNUPTRW7.js.map +0 -1
- package/dist/chunk-SAJSA4TS.js.map +0 -1
- package/dist/chunk-UTYUT5YY.cjs +0 -240
- package/dist/chunk-ZDEYV373.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -11,34 +11,34 @@ export { bluehiveBrand } from './chunk-3T7QGLNB.js';
|
|
|
11
11
|
export { ccmeBrand } from './chunk-SCQRJPSV.js';
|
|
12
12
|
export { ozwellBrand } from './chunk-5YUBQIC7.js';
|
|
13
13
|
import { getModelBytes } from './chunk-6I7IDZ4A.js';
|
|
14
|
-
import { Switch, switchThumbVariants, switchTrackVariants } from './chunk-
|
|
15
|
-
export { Switch, switchThumbVariants, switchTrackVariants } from './chunk-
|
|
16
|
-
import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-
|
|
17
|
-
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-
|
|
14
|
+
import { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
|
|
15
|
+
export { Switch, switchThumbVariants, switchTrackVariants } from './chunk-AQ564XO7.js';
|
|
16
|
+
import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-TNUL4LGG.js';
|
|
17
|
+
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-TNUL4LGG.js';
|
|
18
18
|
import { Tabs, TabsList, TabsTrigger, TabsContent } from './chunk-DVOQ3JNO.js';
|
|
19
19
|
export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from './chunk-DVOQ3JNO.js';
|
|
20
|
-
import { Text } from './chunk-
|
|
21
|
-
export { SmallMuted, Text, textVariants } from './chunk-
|
|
20
|
+
import { Text } from './chunk-3YSIZ2CK.js';
|
|
21
|
+
export { SmallMuted, Text, textVariants } from './chunk-3YSIZ2CK.js';
|
|
22
22
|
export { ThemeProvider, ThemeProviderContext, ThemeToggle, themeToggleIconVariants, themeToggleVariants, useThemeContext } from './chunk-SH6B4MG5.js';
|
|
23
23
|
export { Toggle, toggleVariants } from './chunk-PTZB2GKL.js';
|
|
24
|
-
export { Sheet, SheetBody, SheetClose, SheetDescription, SheetFooter, SheetHeader, SheetTitle, sheetContentVariants, sheetOverlayVariants } from './chunk-
|
|
24
|
+
export { Sheet, SheetBody, SheetClose, SheetDescription, SheetFooter, SheetHeader, SheetTitle, sheetContentVariants, sheetOverlayVariants } from './chunk-LMBXJZLG.js';
|
|
25
25
|
import { Skeleton } from './chunk-ZIUADGAR.js';
|
|
26
26
|
export { Skeleton, SkeletonCard, SkeletonTable, SkeletonText, skeletonVariants } from './chunk-ZIUADGAR.js';
|
|
27
27
|
import { Spinner, SpinnerWithLabel } from './chunk-UA7E7PDS.js';
|
|
28
28
|
export { FullPageSpinner, Spinner, SpinnerWithLabel, spinnerVariants } from './chunk-UA7E7PDS.js';
|
|
29
|
-
import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay } from './chunk-
|
|
30
|
-
export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChevronIcon, CloseIcon, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-
|
|
31
|
-
import { EmptyState } from './chunk-
|
|
32
|
-
export { AttachmentPreview, ConversationHeader, ConversationListItem, ConversationListSkeleton, DateSeparator, EmptyState, LightboxModal, LoadMoreButton, MessageBubble, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, ReadReceiptIndicator, SkeletonMessage, TypingIndicator, bubbleVariants, formatDateLabel, formatFileSize, formatLastSeen, getConversationSubtitle, getConversationTitle, groupMessagesByDate, headerVariants, isSameSenderGroup, useMessageScroll, useMessages, useReadReceipts, useTypingIndicator } from './chunk-
|
|
33
|
-
import { MessageComposer } from './chunk-
|
|
34
|
-
export { AttachmentPicker, AttachmentPreviewItem, CameraButton, CharacterCounter, DragDropZone, MessageComposer, SendButton, generateAttachmentId, getFileType, sendButtonVariants, validateFile } from './chunk-
|
|
35
|
-
export { PhoneInput, PhoneInputGroup } from './chunk-
|
|
29
|
+
import { SparklesIcon, RefreshIcon, CloseIcon, AIMessageDisplay } from './chunk-RZJXCI53.js';
|
|
30
|
+
export { AILogoIcon, AIMessageDisplay, AITypingIndicator, ChatBubble, ChevronIcon, CloseIcon, CollapsiblePill, MCPToolCallDisplay, MessageAvatar, RefreshIcon, ResourceLink, SendIcon, SparklesIcon, SpinnerIcon, ToolStatusIcon, getToolIcon } from './chunk-RZJXCI53.js';
|
|
31
|
+
import { EmptyState } from './chunk-FDV7EQWH.js';
|
|
32
|
+
export { AttachmentPreview, ConversationHeader, ConversationListItem, ConversationListSkeleton, DateSeparator, EmptyState, LightboxModal, LoadMoreButton, MessageBubble, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, ReadReceiptIndicator, SkeletonMessage, TypingIndicator, bubbleVariants, formatDateLabel, formatFileSize, formatLastSeen, getConversationSubtitle, getConversationTitle, groupMessagesByDate, headerVariants, isSameSenderGroup, useMessageScroll, useMessages, useReadReceipts, useTypingIndicator } from './chunk-FDV7EQWH.js';
|
|
33
|
+
import { MessageComposer } from './chunk-EKRT7K2K.js';
|
|
34
|
+
export { AttachmentPicker, AttachmentPreviewItem, CameraButton, CharacterCounter, DragDropZone, MessageComposer, SendButton, generateAttachmentId, getFileType, sendButtonVariants, validateFile } from './chunk-EKRT7K2K.js';
|
|
35
|
+
export { PhoneInput, PhoneInputGroup } from './chunk-3D4ITDLO.js';
|
|
36
36
|
import { Progress } from './chunk-CEQJGUAS.js';
|
|
37
37
|
export { CircularProgress, Progress, circularProgressVariants, progressBarFillVariants, progressBarTrackVariants } from './chunk-CEQJGUAS.js';
|
|
38
38
|
export { QuickAction, QuickActionGroup, QuickActionIcons, quickActionIconVariants, quickActionVariants } from './chunk-5U6GETAW.js';
|
|
39
39
|
import { RecordButton } from './chunk-VNWJTCBQ.js';
|
|
40
40
|
export { RecordButton, formatDuration, recordButtonVariants } from './chunk-VNWJTCBQ.js';
|
|
41
|
-
export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-
|
|
41
|
+
export { RichTextEditor, convertAngleBracketsToMustache, processDictation } from './chunk-5BDCQBYW.js';
|
|
42
42
|
export { Separator, separatorVariants } from './chunk-OQWZYKJM.js';
|
|
43
43
|
export { DateButton, DatePicker, RadioOption, SchedulePicker, TimeButton, TimePicker, dateButtonVariants, radioOptionVariants, timeButtonVariants } from './chunk-23AYDOCH.js';
|
|
44
44
|
export { ScrollArea, scrollAreaVariants } from './chunk-HS25RPDW.js';
|
|
@@ -49,7 +49,7 @@ export { HtmlPreviewBlock } from './chunk-MWPPOX6F.js';
|
|
|
49
49
|
export { MermaidBlock } from './chunk-NU6QKULE.js';
|
|
50
50
|
export { SurveyBlock } from './chunk-VE6OUO7X.js';
|
|
51
51
|
export { FenceBlock } from './chunk-RZFSJD67.js';
|
|
52
|
-
export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal } from './chunk-
|
|
52
|
+
export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal } from './chunk-NGLI2MSM.js';
|
|
53
53
|
export { Slider, sliderRangeVariants, sliderThumbVariants, sliderTrackVariants } from './chunk-OTQ72WX3.js';
|
|
54
54
|
import './chunk-RISZWWEQ.js';
|
|
55
55
|
export { MediaPlayer, inferMediaKind, mediaPlayerVariants } from './chunk-PS5INHGC.js';
|
|
@@ -59,47 +59,48 @@ import { Checkbox } from './chunk-KFLDXJEE.js';
|
|
|
59
59
|
export { Checkbox, CheckboxGroup, checkboxVariants } from './chunk-KFLDXJEE.js';
|
|
60
60
|
export { CollabStatus, defaultCollabStatusLabels, useYjsCollabStatus } from './chunk-SVSHA7XV.js';
|
|
61
61
|
export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-BJKAVWED.js';
|
|
62
|
-
export { CountryCodeDropdown, formatE164, validatePhoneNumber } from './chunk-
|
|
63
|
-
import { Dropdown, DropdownItem, DropdownSeparator, DropdownHeader } from './chunk-
|
|
64
|
-
export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator } from './chunk-
|
|
62
|
+
export { CountryCodeDropdown, formatE164, validatePhoneNumber } from './chunk-BMRQ4VME.js';
|
|
63
|
+
import { Dropdown, DropdownItem, DropdownSeparator, DropdownHeader } from './chunk-HIDV32ZX.js';
|
|
64
|
+
export { Dropdown, DropdownContent, DropdownHeader, DropdownItem, DropdownLabel, DropdownSeparator } from './chunk-HIDV32ZX.js';
|
|
65
65
|
import { Alert, AlertTitle, AlertDescription } from './chunk-6EWJGRC3.js';
|
|
66
66
|
export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-6EWJGRC3.js';
|
|
67
67
|
import { AlertDialog } from './chunk-H3HF36ZL.js';
|
|
68
68
|
export { AlertDialog } from './chunk-H3HF36ZL.js';
|
|
69
69
|
export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime as formatAudioTime, playButtonVariants } from './chunk-XO3WLK65.js';
|
|
70
70
|
export { AudioRecorder, audioRecorderVariants, controlButtonVariants, formatTime, waveformContainerVariants } from './chunk-2DW4PUJD.js';
|
|
71
|
-
export { Autocomplete } from './chunk-
|
|
71
|
+
export { Autocomplete } from './chunk-P6L74SKG.js';
|
|
72
72
|
import { Avatar } from './chunk-DCBMTFLE.js';
|
|
73
73
|
export { Avatar, AvatarGroup, avatarVariants, getInitials } from './chunk-DCBMTFLE.js';
|
|
74
74
|
import './chunk-IQ4KQJAO.js';
|
|
75
75
|
export { Breadcrumb, BreadcrumbSlash } from './chunk-5Y5FSR4N.js';
|
|
76
76
|
import { evaluateDue, completedKeys, normalizeOrders } from './chunk-Y5KEFV5O.js';
|
|
77
77
|
export { buildChartOrderRows, buildEncounterOrderRows, dueForOrder, evaluateDue, evaluateProgram, isApplicable } from './chunk-Y5KEFV5O.js';
|
|
78
|
-
import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-
|
|
79
|
-
export { ALLERGY_TYPE_LABELS, AllergyList, AllergyManager, CodeLookupProvider, MEDICATION_STATUS_LABELS, MedicationEditor, MedicationList, MedicationReconciliation, RowActionToolbar, RowIconButton, labelToMedicationFields, lookupToMedicationFields, parseMedicationLabel, parseSig, toolbarKeyNav, useCodeLookupConfig } from './chunk-
|
|
78
|
+
import { useCodeLookupConfig, RowActionToolbar, RowIconButton, toolbarKeyNav, parseSig, labelToMedicationFields, MedicationEditor } from './chunk-3SRBIXQX.js';
|
|
79
|
+
export { ALLERGY_TYPE_LABELS, AllergyList, AllergyManager, CodeLookupProvider, MEDICATION_STATUS_LABELS, MedicationEditor, MedicationList, MedicationReconciliation, RowActionToolbar, RowIconButton, labelToMedicationFields, lookupToMedicationFields, parseMedicationLabel, parseSig, toolbarKeyNav, useCodeLookupConfig } from './chunk-3SRBIXQX.js';
|
|
80
80
|
import { Textarea } from './chunk-AFGADE3B.js';
|
|
81
81
|
export { Textarea, textareaVariants } from './chunk-AFGADE3B.js';
|
|
82
82
|
import { Tooltip } from './chunk-FJ7YPVKV.js';
|
|
83
83
|
export { Tooltip } from './chunk-FJ7YPVKV.js';
|
|
84
84
|
import { RadioGroup, Radio } from './chunk-QUUBTNMH.js';
|
|
85
85
|
export { Radio, RadioGroup, radioVariants } from './chunk-QUUBTNMH.js';
|
|
86
|
-
import { Label } from './chunk-
|
|
87
|
-
export { Label, labelVariants } from './chunk-
|
|
88
|
-
import { Select } from './chunk-
|
|
89
|
-
export { Select, selectTriggerVariants } from './chunk-
|
|
90
|
-
import { Card, CardHeader, CardContent, CardTitle } from './chunk-
|
|
91
|
-
export { Card, CardActions, CardBadge, CardCollapsible, CardContent, CardDescription, CardDivider, CardFooter, CardHeader, CardMedia, CardStat, CardTitle, cardAccentVariants, cardVariants } from './chunk-
|
|
92
|
-
import { DateInput } from './chunk-
|
|
93
|
-
export { DateInput } from './chunk-
|
|
86
|
+
import { Label } from './chunk-I3WGZPI6.js';
|
|
87
|
+
export { Label, labelVariants } from './chunk-I3WGZPI6.js';
|
|
88
|
+
import { Select } from './chunk-DLBV42JD.js';
|
|
89
|
+
export { Select, selectTriggerVariants } from './chunk-DLBV42JD.js';
|
|
90
|
+
import { Card, CardHeader, CardContent, CardTitle } from './chunk-QYSUYB3S.js';
|
|
91
|
+
export { Card, CardActions, CardBadge, CardCollapsible, CardContent, CardDescription, CardDivider, CardFooter, CardHeader, CardMedia, CardStat, CardTitle, cardAccentVariants, cardVariants } from './chunk-QYSUYB3S.js';
|
|
92
|
+
import { DateInput } from './chunk-EGWWTIWS.js';
|
|
93
|
+
export { DateInput } from './chunk-EGWWTIWS.js';
|
|
94
94
|
import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } from './chunk-XMCIXHGH.js';
|
|
95
95
|
export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-XMCIXHGH.js';
|
|
96
|
-
import { Input, inputVariants } from './chunk-
|
|
97
|
-
export { Input, inputVariants } from './chunk-
|
|
98
|
-
import { Plus, GripVertical, RefreshCw, Pencil, AlertCircle, Clock, FileText, ClipboardList, ArrowLeft, Stethoscope, Users, Mail, Phone, ClipboardCheck, Eye, Info, Link, ChevronUp, ChevronDown, History, CheckCircle, StickyNote, ExternalLink, MoreVertical, Trash2, Send, Scan, TestTube2, Pill, Share, User, Download, ChevronRight, Calendar, Printer, ClipboardPlus, FilePlus, FileCheck, Wheat, Bell, FileHeart, HeartPulse, Paperclip, HelpCircle, MoreHorizontal, AlertTriangle, Upload as Upload$1, Camera, ScanLine, Image, X as X$1, Check as Check$1 } from './chunk-
|
|
96
|
+
import { Input, inputVariants } from './chunk-YXCE2HSK.js';
|
|
97
|
+
export { Input, inputVariants } from './chunk-YXCE2HSK.js';
|
|
98
|
+
import { Plus, GripVertical, RefreshCw, Pencil, AlertCircle, Clock, FileText, ClipboardList, ArrowLeft, Stethoscope, Users, Mail, Phone, ClipboardCheck, Eye, Info, Link, ChevronUp, ChevronDown, History, CheckCircle, StickyNote, ExternalLink, MoreVertical, Trash2, Send, Scan, TestTube2, Pill, Share, User, Download, ChevronRight, Calendar, Printer, ClipboardPlus, FilePlus, FileCheck, Wheat, Bell, FileHeart, HeartPulse, Paperclip, HelpCircle, MoreHorizontal, AlertTriangle, Upload as Upload$1, Camera, ScanLine, Image, X as X$1, Check as Check$1 } from './chunk-3PXOIAF6.js';
|
|
99
|
+
export { Accessibility as AccessibilityIcon, Activity as ActivityIcon, AlertCircle as AlertCircleIcon, AlertTriangle as AlertTriangleIcon, Wheat as AllergyIcon, WheatOff as AllergyOffIcon, Ambulance as AmbulanceIcon, ArrowLeft as ArrowLeftIcon, ArrowRight as ArrowRightIcon, ArrowUpDown as ArrowUpDownIcon, AtSign as AtSignIcon, Baby as BabyIcon, BadgeAlert as BadgeAlertIcon, BadgeCheck as BadgeCheckIcon, BadgeMinus as BadgeMinusIcon, BadgePlus as BadgePlusIcon, BadgeX as BadgeXIcon, Ban as BanIcon, Bandage as BandageIcon, BedDouble as BedDoubleIcon, Bed as BedIcon, BedSingle as BedSingleIcon, Bell as BellIcon, BellOff as BellOffIcon, Biohazard as BiohazardIcon, Bone as BoneIcon, BookOpenCheck as BookOpenCheckIcon, BookOpen as BookOpenIcon, Bookmark as BookmarkIcon, Brain as BrainIcon, Briefcase as BriefcaseIcon, BriefcaseMedical as BriefcaseMedicalIcon, Building as BuildingIcon, CalendarCheck as CalendarCheckIcon, Calendar as CalendarIcon, Camera as CameraIcon, Cannabis as CannabisIcon, BarChart3 as ChartIcon, CheckCircle as CheckCircleIcon, Check as CheckIcon, ChevronDown as ChevronDownIcon, ChevronLeft as ChevronLeftIcon, ChevronRight as ChevronRightIcon, ChevronUp as ChevronUpIcon, Cigarette as CigaretteIcon, CigaretteOff as CigaretteOffIcon, CircleDotDashed as CircleDotDashedIcon, CircleDot as CircleDotIcon, CircleUser as CircleUserIcon, ClipboardCheck as ClipboardCheckIcon, Clipboard as ClipboardIcon, ClipboardList as ClipboardListIcon, ClipboardPlus as ClipboardPlusIcon, Clock as ClockIcon, Cog as CogIcon, Columns as ColumnsIcon, Copy as CopyIcon, CreditCard as CreditCardIcon, Cross as CrossIcon, Dna as DnaIcon, DollarSign as DollarSignIcon, Download as DownloadIcon, Droplet as DropletIcon, Droplets as DropletsIcon, Ear as EarIcon, ExternalLink as ExternalLinkIcon, Eye as EyeIcon, EyeOff as EyeOffIcon, FileCheck2 as FileCheck2Icon, FileCheck as FileCheckIcon, FileHeart as FileHeartIcon, File as FileIcon, FilePlus2 as FilePlus2Icon, FilePlus as FilePlusIcon, FileText as FileTextIcon, Filter as FilterIcon, Fingerprint as FingerprintIcon, Flag as FlagIcon, FlaskConical as FlaskIcon, FlaskRound as FlaskRoundIcon, Folder as FolderIcon, FolderOpen as FolderOpenIcon, Footprints as FootprintsIcon, Glasses as GlassesIcon, Globe as GlobeIcon, LayoutGrid as GridIcon, GripVertical as GripVerticalIcon, Hand as HandIcon, HandMetal as HandMetalIcon, Hash as HashIcon, Heart as HeartIcon, HeartOff as HeartOffIcon, HeartPulse as HeartPulseIcon, HelpCircle as HelpCircleIcon, History as HistoryIcon, Home as HomeIcon, Hospital as HospitalIcon, Image as ImageIcon, Info as InfoIcon, Key as KeyIcon, Link as LinkIcon, List as ListIcon, Loader2 as LoaderIcon, Lock as LockIcon, LogIn as LogInIcon, LogOut as LogOutIcon, Mail as MailIcon, MapPin as MapPinIcon, Maximize as MaximizeIcon, Menu as MenuIcon, MessageSquare as MessageIcon, Microscope as MicroscopeIcon, Minimize as MinimizeIcon, Minus as MinusIcon, Monitor as MonitorIcon, Moon as MoonIcon, MoreHorizontal as MoreHorizontalIcon, MoreVertical as MoreVerticalIcon, NotebookPen as NotebookPenIcon, Palette as PaletteIcon, Paperclip as PaperclipIcon, CircleUserRound as PatientIcon, Pencil as PencilIcon, UserRound as PersonIcon, Phone as PhoneIcon, PieChart as PieChartIcon, Pill as PillIcon, Plus as PlusIcon, Printer as PrinterIcon, Radiation as RadiationIcon, Ruler as RulerIcon, Save as SaveIcon, Scale as ScaleIcon, Scaling as ScalingIcon, ScanEye as ScanEyeIcon, Scan as ScanIcon, ScanLine as ScanLineIcon, Search as SearchIcon, Settings as SettingsIcon, Share as ShareIcon, ShieldCheck as ShieldCheckIcon, Shield as ShieldIcon, ShieldPlus as ShieldPlusIcon, Sliders as SlidersIcon, Sparkle as SparkleIcon, Star as StarIcon, Stethoscope as StethoscopeIcon, StickyNote as StickyNoteIcon, Sun as SunIcon, Syringe as SyringeIcon, Table as TableIcon, Tablets as TabletsIcon, Tag as TagIcon, TestTube2 as TestTubeIcon, TestTubes as TestTubesIcon, Thermometer as ThermometerIcon, ThermometerSun as ThermometerSunIcon, ThumbsDown as ThumbsDownIcon, ThumbsUp as ThumbsUpIcon, Timer as TimerIcon, Trash2 as TrashIcon, TrendingDown as TrendingDownIcon, TrendingUp as TrendingUpIcon, Truck as TruckIcon, Unlock as UnlockIcon, Upload as UploadIcon, UserCheck as UserCheckIcon, User as UserIcon, UserMinus as UserMinusIcon, UserPlus as UserPlusIcon, UserRoundCheck as UserRoundCheckIcon, UserRoundMinus as UserRoundMinusIcon, UserRoundPlus as UserRoundPlusIcon, UserRoundX as UserRoundXIcon, Users as UsersIcon, Weight as WeightIcon, Wrench as WrenchIcon, XCircle as XCircleIcon, X2 as XIcon, Zap as ZapIcon } from './chunk-3PXOIAF6.js';
|
|
99
100
|
import { Button, buttonVariants } from './chunk-WRYZ2752.js';
|
|
100
101
|
export { Button, buttonVariants } from './chunk-WRYZ2752.js';
|
|
101
|
-
import { Badge } from './chunk-
|
|
102
|
-
export { Badge, badgeVariants } from './chunk-
|
|
102
|
+
import { Badge } from './chunk-BMSG4NBH.js';
|
|
103
|
+
export { Badge, badgeVariants } from './chunk-BMSG4NBH.js';
|
|
103
104
|
import { useCommandK, useIsMobile, useMediaQuery, useScrollSpy } from './chunk-GTHNWP4P.js';
|
|
104
105
|
export { RTL_LOCALES, isRtlLocale, useCommandK, useDirection, useIsDesktop, useIsLargeDesktop, useIsMobile, useIsMobileOrTablet, useIsSmallTablet, useIsTablet, useKeyboardShortcut, useMediaQuery, useScrollSpy } from './chunk-GTHNWP4P.js';
|
|
105
106
|
export { useTheme } from './chunk-KJZNEVYM.js';
|
|
@@ -115,8 +116,8 @@ import { useEscapeKey } from './chunk-T4ME7QCT.js';
|
|
|
115
116
|
export { useEscapeKey } from './chunk-T4ME7QCT.js';
|
|
116
117
|
import { useClickOutside } from './chunk-62ZOA6PX.js';
|
|
117
118
|
export { useClickOutside } from './chunk-62ZOA6PX.js';
|
|
118
|
-
import { useAnchoredPosition } from './chunk-
|
|
119
|
-
export { useAnchoredPosition } from './chunk-
|
|
119
|
+
import { useAnchoredPosition } from './chunk-BOOJDRJO.js';
|
|
120
|
+
export { useAnchoredPosition } from './chunk-BOOJDRJO.js';
|
|
120
121
|
import './chunk-7XUN3OQT.js';
|
|
121
122
|
export { formatPhoneNumber, isPhoneNumberEmpty, isValidPhoneNumber, unformatPhoneNumber } from './chunk-ZVPJ2MH6.js';
|
|
122
123
|
export { isHtmlEmpty, stripHtmlTags } from './chunk-ERLPVXOV.js';
|
|
@@ -126,14 +127,14 @@ import { cn } from './chunk-TQONQSJO.js';
|
|
|
126
127
|
export { cn, miewebUITwMergeConflicts } from './chunk-TQONQSJO.js';
|
|
127
128
|
import { isStorybookDocsMode } from './chunk-VSQF22GL.js';
|
|
128
129
|
export { isStorybookDocsMode } from './chunk-VSQF22GL.js';
|
|
129
|
-
export { miewebUIPreset, miewebUISafelist } from './chunk-
|
|
130
|
+
export { miewebUIPreset, miewebUISafelist } from './chunk-DWIF6VXZ.js';
|
|
130
131
|
import * as React10 from 'react';
|
|
131
132
|
import React10__default, { createContext, useState, useEffect, useCallback, useMemo, useContext, useRef } from 'react';
|
|
132
133
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
133
134
|
import { cva } from 'class-variance-authority';
|
|
134
135
|
import * as ReactDOM from 'react-dom';
|
|
135
136
|
import { createPortal } from 'react-dom';
|
|
136
|
-
import { FileUp, X, AlertCircle as AlertCircle$1, Calendar as Calendar$1, ChevronLeft, ChevronRight as ChevronRight$1, ChevronDown as ChevronDown$1, FolderUp, Upload, Edit2,
|
|
137
|
+
import { FileUp, X, AlertCircle as AlertCircle$1, ChevronUp as ChevronUp$1, Check, Calendar as Calendar$1, ChevronLeft, ChevronRight as ChevronRight$1, ChevronDown as ChevronDown$1, FolderUp, Upload, Edit2, Phone as Phone$1, Mail as Mail$1, Clock as Clock$1, MapPin, Shield, Building2, SlidersHorizontal, Trash2 as Trash2$1, Pencil as Pencil$1, Plus as Plus$1, Link as Link$1, AlertTriangle as AlertTriangle$1, RefreshCw as RefreshCw$1 } from 'lucide-react';
|
|
137
138
|
|
|
138
139
|
var SEX_OPTIONS = [
|
|
139
140
|
{ value: "F", label: "Female" },
|
|
@@ -1469,7 +1470,8 @@ function AIChat({
|
|
|
1469
1470
|
onCancel,
|
|
1470
1471
|
onClear,
|
|
1471
1472
|
onClose,
|
|
1472
|
-
renderTextContent
|
|
1473
|
+
renderTextContent,
|
|
1474
|
+
renderMessageFooter
|
|
1473
1475
|
}) {
|
|
1474
1476
|
const messagesEndRef = React10.useRef(null);
|
|
1475
1477
|
const messages = React10.useMemo(
|
|
@@ -1583,7 +1585,8 @@ function AIChat({
|
|
|
1583
1585
|
userName,
|
|
1584
1586
|
showTimestamp: showTimestamps,
|
|
1585
1587
|
onLinkClick: handleLinkClick,
|
|
1586
|
-
renderTextContent
|
|
1588
|
+
renderTextContent,
|
|
1589
|
+
renderMessageFooter
|
|
1587
1590
|
},
|
|
1588
1591
|
message.id
|
|
1589
1592
|
)),
|
|
@@ -5577,6 +5580,329 @@ function VisitScribe({
|
|
|
5577
5580
|
}
|
|
5578
5581
|
);
|
|
5579
5582
|
}
|
|
5583
|
+
var MENU_OFFSET_PX = 6;
|
|
5584
|
+
var MENU_MAX_HEIGHT_PX = 320;
|
|
5585
|
+
function optionKey(option) {
|
|
5586
|
+
return `${option.provider}\0${option.model}`;
|
|
5587
|
+
}
|
|
5588
|
+
function renderedOptionKey(option, index) {
|
|
5589
|
+
return `${option.id ?? optionKey(option)}\0${index}`;
|
|
5590
|
+
}
|
|
5591
|
+
function groupByProvider(models) {
|
|
5592
|
+
const groups = /* @__PURE__ */ new Map();
|
|
5593
|
+
for (const model of models) {
|
|
5594
|
+
const group = groups.get(model.provider);
|
|
5595
|
+
if (group) {
|
|
5596
|
+
group.push(model);
|
|
5597
|
+
} else {
|
|
5598
|
+
groups.set(model.provider, [model]);
|
|
5599
|
+
}
|
|
5600
|
+
}
|
|
5601
|
+
return Array.from(groups, ([provider, options]) => ({ provider, options }));
|
|
5602
|
+
}
|
|
5603
|
+
function getProviderLabel(models, provider) {
|
|
5604
|
+
return models.find((model) => model.provider === provider && model.providerLabel)?.providerLabel ?? provider;
|
|
5605
|
+
}
|
|
5606
|
+
function ComposerModelSelector({
|
|
5607
|
+
models,
|
|
5608
|
+
value,
|
|
5609
|
+
providerFilter,
|
|
5610
|
+
onProviderFilterChange,
|
|
5611
|
+
onChange,
|
|
5612
|
+
disabled = false,
|
|
5613
|
+
className,
|
|
5614
|
+
boundaryRef,
|
|
5615
|
+
placeholder = "Model",
|
|
5616
|
+
anyLabel = "Any",
|
|
5617
|
+
emptyLabel = "No models",
|
|
5618
|
+
ariaLabel = "Model"
|
|
5619
|
+
}) {
|
|
5620
|
+
const [open, setOpen] = React10.useState(false);
|
|
5621
|
+
const [internalProviderFilter, setInternalProviderFilter] = React10.useState(null);
|
|
5622
|
+
const [highlightedIndex, setHighlightedIndex] = React10.useState(0);
|
|
5623
|
+
const listRef = React10.useRef(null);
|
|
5624
|
+
const menuId = React10.useId();
|
|
5625
|
+
const {
|
|
5626
|
+
anchorRef: triggerRef,
|
|
5627
|
+
floatingRef: menuRef,
|
|
5628
|
+
style: menuStyle
|
|
5629
|
+
} = useAnchoredPosition({
|
|
5630
|
+
open,
|
|
5631
|
+
placement: "top-start",
|
|
5632
|
+
offset: MENU_OFFSET_PX,
|
|
5633
|
+
matchMinWidth: true,
|
|
5634
|
+
maxHeight: MENU_MAX_HEIGHT_PX,
|
|
5635
|
+
allowFlip: false,
|
|
5636
|
+
boundaryRef
|
|
5637
|
+
});
|
|
5638
|
+
const activeProviderFilter = providerFilter === void 0 ? internalProviderFilter : providerFilter;
|
|
5639
|
+
const selectedKey = value ? optionKey(value) : null;
|
|
5640
|
+
const selectedOption = models.find(
|
|
5641
|
+
(model) => optionKey(model) === selectedKey
|
|
5642
|
+
);
|
|
5643
|
+
const providers = React10.useMemo(
|
|
5644
|
+
() => Array.from(new Set(models.map((model) => model.provider))),
|
|
5645
|
+
[models]
|
|
5646
|
+
);
|
|
5647
|
+
const providerLabels = React10.useMemo(
|
|
5648
|
+
() => new Map(
|
|
5649
|
+
providers.map((provider) => [
|
|
5650
|
+
provider,
|
|
5651
|
+
getProviderLabel(models, provider)
|
|
5652
|
+
])
|
|
5653
|
+
),
|
|
5654
|
+
[models, providers]
|
|
5655
|
+
);
|
|
5656
|
+
const filteredModels = React10.useMemo(
|
|
5657
|
+
() => activeProviderFilter === null ? models : models.filter((model) => model.provider === activeProviderFilter),
|
|
5658
|
+
[activeProviderFilter, models]
|
|
5659
|
+
);
|
|
5660
|
+
const groupedModels = React10.useMemo(
|
|
5661
|
+
() => groupByProvider(filteredModels),
|
|
5662
|
+
[filteredModels]
|
|
5663
|
+
);
|
|
5664
|
+
const groupedRenderedModels = React10.useMemo(() => {
|
|
5665
|
+
let index = 0;
|
|
5666
|
+
return groupedModels.map((group) => ({
|
|
5667
|
+
provider: group.provider,
|
|
5668
|
+
options: group.options.map((option) => {
|
|
5669
|
+
const rendered = {
|
|
5670
|
+
option,
|
|
5671
|
+
index,
|
|
5672
|
+
key: renderedOptionKey(option, index)
|
|
5673
|
+
};
|
|
5674
|
+
index += 1;
|
|
5675
|
+
return rendered;
|
|
5676
|
+
})
|
|
5677
|
+
}));
|
|
5678
|
+
}, [groupedModels]);
|
|
5679
|
+
const renderedModels = React10.useMemo(
|
|
5680
|
+
() => groupedRenderedModels.flatMap((group) => group.options),
|
|
5681
|
+
[groupedRenderedModels]
|
|
5682
|
+
);
|
|
5683
|
+
const getOptionId = React10.useCallback(
|
|
5684
|
+
(index) => `${menuId}-option-${index}`,
|
|
5685
|
+
[menuId]
|
|
5686
|
+
);
|
|
5687
|
+
const activeOptionId = open && renderedModels[highlightedIndex] ? getOptionId(highlightedIndex) : void 0;
|
|
5688
|
+
const selectedRenderedIndex = React10.useMemo(
|
|
5689
|
+
() => selectedKey ? renderedModels.findIndex(
|
|
5690
|
+
(renderedModel) => optionKey(renderedModel.option) === selectedKey
|
|
5691
|
+
) : -1,
|
|
5692
|
+
[renderedModels, selectedKey]
|
|
5693
|
+
);
|
|
5694
|
+
const setProvider = React10.useCallback(
|
|
5695
|
+
(provider) => {
|
|
5696
|
+
if (providerFilter === void 0) {
|
|
5697
|
+
setInternalProviderFilter(provider);
|
|
5698
|
+
}
|
|
5699
|
+
onProviderFilterChange?.(provider);
|
|
5700
|
+
},
|
|
5701
|
+
[onProviderFilterChange, providerFilter]
|
|
5702
|
+
);
|
|
5703
|
+
const close = React10.useCallback(
|
|
5704
|
+
(restoreFocus = true) => {
|
|
5705
|
+
setOpen(false);
|
|
5706
|
+
if (restoreFocus) {
|
|
5707
|
+
triggerRef.current?.focus({ preventScroll: true });
|
|
5708
|
+
}
|
|
5709
|
+
},
|
|
5710
|
+
[triggerRef]
|
|
5711
|
+
);
|
|
5712
|
+
const selectModel = React10.useCallback(
|
|
5713
|
+
(model) => {
|
|
5714
|
+
onChange({ provider: model.provider, model: model.model });
|
|
5715
|
+
close();
|
|
5716
|
+
},
|
|
5717
|
+
[close, onChange]
|
|
5718
|
+
);
|
|
5719
|
+
const outsideRefs = React10.useMemo(
|
|
5720
|
+
() => [triggerRef, menuRef],
|
|
5721
|
+
[triggerRef, menuRef]
|
|
5722
|
+
);
|
|
5723
|
+
useClickOutside(outsideRefs, () => close(false), open);
|
|
5724
|
+
useEscapeKey(close, open);
|
|
5725
|
+
React10.useEffect(() => {
|
|
5726
|
+
if (!open) return;
|
|
5727
|
+
setHighlightedIndex(selectedRenderedIndex >= 0 ? selectedRenderedIndex : 0);
|
|
5728
|
+
}, [activeProviderFilter, open, selectedRenderedIndex]);
|
|
5729
|
+
React10.useEffect(() => {
|
|
5730
|
+
if (!open) return;
|
|
5731
|
+
setHighlightedIndex(
|
|
5732
|
+
(current) => Math.min(current, Math.max(renderedModels.length - 1, 0))
|
|
5733
|
+
);
|
|
5734
|
+
}, [open, renderedModels.length]);
|
|
5735
|
+
React10.useEffect(() => {
|
|
5736
|
+
if (!open) return;
|
|
5737
|
+
requestAnimationFrame(
|
|
5738
|
+
() => listRef.current?.focus({ preventScroll: true })
|
|
5739
|
+
);
|
|
5740
|
+
}, [open]);
|
|
5741
|
+
const handleTriggerKeyDown = (event) => {
|
|
5742
|
+
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
5743
|
+
event.preventDefault();
|
|
5744
|
+
setOpen(true);
|
|
5745
|
+
}
|
|
5746
|
+
};
|
|
5747
|
+
const handleMenuKeyDown = (event) => {
|
|
5748
|
+
if (renderedModels.length === 0) return;
|
|
5749
|
+
if (event.key === "ArrowDown") {
|
|
5750
|
+
event.preventDefault();
|
|
5751
|
+
setHighlightedIndex((current) => (current + 1) % renderedModels.length);
|
|
5752
|
+
}
|
|
5753
|
+
if (event.key === "ArrowUp") {
|
|
5754
|
+
event.preventDefault();
|
|
5755
|
+
setHighlightedIndex(
|
|
5756
|
+
(current) => (current - 1 + renderedModels.length) % renderedModels.length
|
|
5757
|
+
);
|
|
5758
|
+
}
|
|
5759
|
+
if (event.key === "Home") {
|
|
5760
|
+
event.preventDefault();
|
|
5761
|
+
setHighlightedIndex(0);
|
|
5762
|
+
}
|
|
5763
|
+
if (event.key === "End") {
|
|
5764
|
+
event.preventDefault();
|
|
5765
|
+
setHighlightedIndex(renderedModels.length - 1);
|
|
5766
|
+
}
|
|
5767
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
5768
|
+
event.preventDefault();
|
|
5769
|
+
const highlightedModel = renderedModels[highlightedIndex]?.option;
|
|
5770
|
+
if (highlightedModel) {
|
|
5771
|
+
selectModel(highlightedModel);
|
|
5772
|
+
}
|
|
5773
|
+
}
|
|
5774
|
+
};
|
|
5775
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5776
|
+
/* @__PURE__ */ jsxs(
|
|
5777
|
+
"button",
|
|
5778
|
+
{
|
|
5779
|
+
ref: triggerRef,
|
|
5780
|
+
type: "button",
|
|
5781
|
+
disabled,
|
|
5782
|
+
"aria-haspopup": "listbox",
|
|
5783
|
+
"aria-expanded": open,
|
|
5784
|
+
"aria-controls": open ? menuId : void 0,
|
|
5785
|
+
onClick: () => setOpen((current) => !current),
|
|
5786
|
+
onKeyDown: handleTriggerKeyDown,
|
|
5787
|
+
"data-slot": "composer-model-selector-trigger",
|
|
5788
|
+
className: cn(
|
|
5789
|
+
"inline-flex h-8 max-w-full items-center gap-1.5 rounded-full border px-2.5 text-sm font-medium",
|
|
5790
|
+
"border-border bg-background text-foreground shadow-sm",
|
|
5791
|
+
"hover:bg-muted/50",
|
|
5792
|
+
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none",
|
|
5793
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
5794
|
+
className
|
|
5795
|
+
),
|
|
5796
|
+
children: [
|
|
5797
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: selectedOption?.label ?? selectedOption?.model ?? placeholder }),
|
|
5798
|
+
/* @__PURE__ */ jsx(ChevronUp$1, { "aria-hidden": "true", className: "h-3.5 w-3.5 shrink-0" })
|
|
5799
|
+
]
|
|
5800
|
+
}
|
|
5801
|
+
),
|
|
5802
|
+
open && createPortal(
|
|
5803
|
+
/* @__PURE__ */ jsxs(
|
|
5804
|
+
"div",
|
|
5805
|
+
{
|
|
5806
|
+
ref: menuRef,
|
|
5807
|
+
style: menuStyle,
|
|
5808
|
+
"data-slot": "composer-model-selector-menu",
|
|
5809
|
+
className: cn(
|
|
5810
|
+
"border-border bg-card text-card-foreground flex w-80 max-w-full flex-col rounded-lg border shadow-lg",
|
|
5811
|
+
"animate-in fade-in overflow-hidden duration-100"
|
|
5812
|
+
),
|
|
5813
|
+
children: [
|
|
5814
|
+
/* @__PURE__ */ jsx(
|
|
5815
|
+
"div",
|
|
5816
|
+
{
|
|
5817
|
+
"data-slot": "composer-model-selector-provider-filter",
|
|
5818
|
+
className: "border-border flex min-h-9 items-center gap-1 overflow-x-auto overflow-y-hidden border-b p-2",
|
|
5819
|
+
children: [null, ...providers].map((provider) => {
|
|
5820
|
+
const selected = activeProviderFilter === provider;
|
|
5821
|
+
return /* @__PURE__ */ jsx(
|
|
5822
|
+
"button",
|
|
5823
|
+
{
|
|
5824
|
+
type: "button",
|
|
5825
|
+
"aria-pressed": selected,
|
|
5826
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
5827
|
+
onClick: () => setProvider(provider),
|
|
5828
|
+
className: cn(
|
|
5829
|
+
"inline-flex h-6 shrink-0 items-center justify-center rounded-full px-2.5 text-xs font-medium whitespace-nowrap transition-colors",
|
|
5830
|
+
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none",
|
|
5831
|
+
selected ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
5832
|
+
),
|
|
5833
|
+
children: provider === null ? anyLabel : providerLabels.get(provider) ?? provider
|
|
5834
|
+
},
|
|
5835
|
+
provider ?? "all-providers"
|
|
5836
|
+
);
|
|
5837
|
+
})
|
|
5838
|
+
}
|
|
5839
|
+
),
|
|
5840
|
+
/* @__PURE__ */ jsx(
|
|
5841
|
+
"div",
|
|
5842
|
+
{
|
|
5843
|
+
ref: listRef,
|
|
5844
|
+
id: menuId,
|
|
5845
|
+
role: "listbox",
|
|
5846
|
+
"aria-label": ariaLabel,
|
|
5847
|
+
"aria-activedescendant": activeOptionId,
|
|
5848
|
+
tabIndex: -1,
|
|
5849
|
+
onKeyDown: handleMenuKeyDown,
|
|
5850
|
+
className: "min-h-0 flex-1 overflow-y-auto p-1",
|
|
5851
|
+
children: groupedModels.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-muted-foreground px-3 py-4 text-center text-sm", children: emptyLabel }) : groupedRenderedModels.map((group) => /* @__PURE__ */ jsxs(
|
|
5852
|
+
"div",
|
|
5853
|
+
{
|
|
5854
|
+
role: "group",
|
|
5855
|
+
"aria-label": providerLabels.get(group.provider) ?? group.provider,
|
|
5856
|
+
children: [
|
|
5857
|
+
/* @__PURE__ */ jsx("div", { className: "text-muted-foreground px-3 py-1.5 text-xs font-semibold uppercase", children: providerLabels.get(group.provider) ?? group.provider }),
|
|
5858
|
+
group.options.map((renderedModel) => {
|
|
5859
|
+
const { index, key, option: model } = renderedModel;
|
|
5860
|
+
const selected = optionKey(model) === selectedKey;
|
|
5861
|
+
const highlighted = index === highlightedIndex;
|
|
5862
|
+
return /* @__PURE__ */ jsxs(
|
|
5863
|
+
"button",
|
|
5864
|
+
{
|
|
5865
|
+
id: getOptionId(index),
|
|
5866
|
+
type: "button",
|
|
5867
|
+
role: "option",
|
|
5868
|
+
"aria-selected": selected,
|
|
5869
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
5870
|
+
onClick: () => selectModel(model),
|
|
5871
|
+
onMouseEnter: () => setHighlightedIndex(index),
|
|
5872
|
+
className: cn(
|
|
5873
|
+
"flex w-full items-center gap-2 rounded-md px-3 py-2 text-start text-sm",
|
|
5874
|
+
"focus-visible:ring-ring transition-colors focus-visible:ring-2 focus-visible:outline-none",
|
|
5875
|
+
highlighted && "bg-muted",
|
|
5876
|
+
selected && "bg-primary/10 text-primary"
|
|
5877
|
+
),
|
|
5878
|
+
children: [
|
|
5879
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate", children: model.label ?? model.model }),
|
|
5880
|
+
selected && /* @__PURE__ */ jsx(
|
|
5881
|
+
Check,
|
|
5882
|
+
{
|
|
5883
|
+
"aria-hidden": "true",
|
|
5884
|
+
className: "text-primary h-4 w-4 shrink-0"
|
|
5885
|
+
}
|
|
5886
|
+
)
|
|
5887
|
+
]
|
|
5888
|
+
},
|
|
5889
|
+
key
|
|
5890
|
+
);
|
|
5891
|
+
})
|
|
5892
|
+
]
|
|
5893
|
+
},
|
|
5894
|
+
group.provider
|
|
5895
|
+
))
|
|
5896
|
+
}
|
|
5897
|
+
)
|
|
5898
|
+
]
|
|
5899
|
+
}
|
|
5900
|
+
),
|
|
5901
|
+
document.body
|
|
5902
|
+
)
|
|
5903
|
+
] });
|
|
5904
|
+
}
|
|
5905
|
+
ComposerModelSelector.displayName = "ComposerModelSelector";
|
|
5580
5906
|
function normalizeString(value) {
|
|
5581
5907
|
return value.trim().replace(/\s+/g, " ").toLowerCase();
|
|
5582
5908
|
}
|
|
@@ -6242,9 +6568,9 @@ function AppHeaderSection({
|
|
|
6242
6568
|
"data-slot": "app-header-section",
|
|
6243
6569
|
className: cn(
|
|
6244
6570
|
"flex items-center gap-3",
|
|
6245
|
-
align === "left" && "
|
|
6571
|
+
align === "left" && "me-auto",
|
|
6246
6572
|
align === "center" && "mx-auto",
|
|
6247
|
-
align === "right" && "
|
|
6573
|
+
align === "right" && "ms-auto",
|
|
6248
6574
|
className
|
|
6249
6575
|
),
|
|
6250
6576
|
children
|
|
@@ -6342,7 +6668,7 @@ function AppHeaderIconButton({
|
|
|
6342
6668
|
"span",
|
|
6343
6669
|
{
|
|
6344
6670
|
className: cn(
|
|
6345
|
-
"absolute -
|
|
6671
|
+
"absolute -end-1 -top-1 flex items-center justify-center",
|
|
6346
6672
|
"h-[18px] min-w-[18px] px-1 text-[10px] font-bold",
|
|
6347
6673
|
"rounded-full bg-red-700 text-white"
|
|
6348
6674
|
),
|
|
@@ -6398,7 +6724,7 @@ function AppHeaderSearch({
|
|
|
6398
6724
|
),
|
|
6399
6725
|
children: [
|
|
6400
6726
|
/* @__PURE__ */ jsx(SearchIcon, {}),
|
|
6401
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 text-
|
|
6727
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 text-start whitespace-nowrap", children: placeholder }),
|
|
6402
6728
|
/* @__PURE__ */ jsxs(
|
|
6403
6729
|
"kbd",
|
|
6404
6730
|
{
|
|
@@ -6461,7 +6787,7 @@ function AppHeaderUserMenu({
|
|
|
6461
6787
|
) : displayInitials
|
|
6462
6788
|
}
|
|
6463
6789
|
),
|
|
6464
|
-
/* @__PURE__ */ jsxs("div", { className: "hidden min-w-0 text-
|
|
6790
|
+
/* @__PURE__ */ jsxs("div", { className: "hidden min-w-0 text-start lg:block", children: [
|
|
6465
6791
|
/* @__PURE__ */ jsx(
|
|
6466
6792
|
"div",
|
|
6467
6793
|
{
|
|
@@ -9687,6 +10013,50 @@ function LoadingSpinner({ className }) {
|
|
|
9687
10013
|
}
|
|
9688
10014
|
);
|
|
9689
10015
|
}
|
|
10016
|
+
|
|
10017
|
+
// src/components/BusinessHoursEditor/scheduleRules.ts
|
|
10018
|
+
function generateId2() {
|
|
10019
|
+
return Math.random().toString(36).substring(2, 9);
|
|
10020
|
+
}
|
|
10021
|
+
function ruleSignature(slot) {
|
|
10022
|
+
return `${slot.start}\0${slot.end}\0${slot.description ?? ""}`;
|
|
10023
|
+
}
|
|
10024
|
+
function scheduleToRules(schedule) {
|
|
10025
|
+
const rulesBySignature = /* @__PURE__ */ new Map();
|
|
10026
|
+
const orderedRules = [];
|
|
10027
|
+
for (const day of schedule) {
|
|
10028
|
+
for (const slot of day.hours) {
|
|
10029
|
+
const signature = ruleSignature(slot);
|
|
10030
|
+
const candidates = rulesBySignature.get(signature) ?? [];
|
|
10031
|
+
let rule = candidates.find((r) => !r.days.includes(day.day));
|
|
10032
|
+
if (!rule) {
|
|
10033
|
+
rule = {
|
|
10034
|
+
id: `rule-${orderedRules.length}`,
|
|
10035
|
+
days: [],
|
|
10036
|
+
start: slot.start,
|
|
10037
|
+
end: slot.end,
|
|
10038
|
+
description: slot.description
|
|
10039
|
+
};
|
|
10040
|
+
candidates.push(rule);
|
|
10041
|
+
rulesBySignature.set(signature, candidates);
|
|
10042
|
+
orderedRules.push(rule);
|
|
10043
|
+
}
|
|
10044
|
+
rule.days.push(day.day);
|
|
10045
|
+
}
|
|
10046
|
+
}
|
|
10047
|
+
return orderedRules;
|
|
10048
|
+
}
|
|
10049
|
+
function rulesToSchedule(rules) {
|
|
10050
|
+
return Array.from({ length: 7 }, (_, day) => ({
|
|
10051
|
+
day,
|
|
10052
|
+
hours: rules.filter((rule) => rule.days.includes(day)).map((rule, index) => ({
|
|
10053
|
+
id: `slot-${day}-${index}`,
|
|
10054
|
+
start: rule.start,
|
|
10055
|
+
end: rule.end,
|
|
10056
|
+
...rule.description ? { description: rule.description } : {}
|
|
10057
|
+
}))
|
|
10058
|
+
}));
|
|
10059
|
+
}
|
|
9690
10060
|
var DAY_NAMES = {
|
|
9691
10061
|
0: "Sunday",
|
|
9692
10062
|
1: "Monday",
|
|
@@ -9954,6 +10324,63 @@ function DayScheduleRow({
|
|
|
9954
10324
|
}
|
|
9955
10325
|
);
|
|
9956
10326
|
}
|
|
10327
|
+
function GroupedScheduleRows({
|
|
10328
|
+
officeHours,
|
|
10329
|
+
useShortDayNames = false,
|
|
10330
|
+
use24Hour = false
|
|
10331
|
+
}) {
|
|
10332
|
+
const normalized = officeHours.map((dayHours) => ({
|
|
10333
|
+
day: parseDayToNumber(dayHours.day),
|
|
10334
|
+
hours: (dayHours.hours ?? []).map((range) => ({
|
|
10335
|
+
start: range.start ?? "",
|
|
10336
|
+
end: range.end ?? "",
|
|
10337
|
+
...range.description ? { description: range.description } : {}
|
|
10338
|
+
}))
|
|
10339
|
+
}));
|
|
10340
|
+
const rules = scheduleToRules(normalized);
|
|
10341
|
+
const closedDays = normalized.filter((dayHours) => dayHours.hours.length === 0).map((dayHours) => dayHours.day);
|
|
10342
|
+
const dayNames = useShortDayNames ? DAY_NAMES_SHORT : DAY_NAMES;
|
|
10343
|
+
const formatDays = (days) => days.map((day) => dayNames[day]).join(", ");
|
|
10344
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10345
|
+
rules.map((rule) => /* @__PURE__ */ jsxs(
|
|
10346
|
+
"div",
|
|
10347
|
+
{
|
|
10348
|
+
"data-slot": "business-hours-grouped-row",
|
|
10349
|
+
className: cn(dayRowVariants({ isToday: false })),
|
|
10350
|
+
children: [
|
|
10351
|
+
/* @__PURE__ */ jsx(
|
|
10352
|
+
"span",
|
|
10353
|
+
{
|
|
10354
|
+
"data-slot": "business-hours-day-name",
|
|
10355
|
+
className: "min-w-[80px] font-medium",
|
|
10356
|
+
children: formatDays(rule.days)
|
|
10357
|
+
}
|
|
10358
|
+
),
|
|
10359
|
+
/* @__PURE__ */ jsx("div", { "data-slot": "business-hours-day-hours", className: "text-end", children: /* @__PURE__ */ jsx(TimeRangeDisplay, { range: rule, use24Hour }) })
|
|
10360
|
+
]
|
|
10361
|
+
},
|
|
10362
|
+
rule.id
|
|
10363
|
+
)),
|
|
10364
|
+
closedDays.length > 0 && /* @__PURE__ */ jsxs(
|
|
10365
|
+
"div",
|
|
10366
|
+
{
|
|
10367
|
+
"data-slot": "business-hours-grouped-row",
|
|
10368
|
+
className: cn(dayRowVariants({ isToday: false })),
|
|
10369
|
+
children: [
|
|
10370
|
+
/* @__PURE__ */ jsx(
|
|
10371
|
+
"span",
|
|
10372
|
+
{
|
|
10373
|
+
"data-slot": "business-hours-day-name",
|
|
10374
|
+
className: "min-w-[80px] font-medium",
|
|
10375
|
+
children: formatDays(closedDays)
|
|
10376
|
+
}
|
|
10377
|
+
),
|
|
10378
|
+
/* @__PURE__ */ jsx("div", { "data-slot": "business-hours-day-hours", className: "text-end", children: /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Closed" }) })
|
|
10379
|
+
]
|
|
10380
|
+
}
|
|
10381
|
+
)
|
|
10382
|
+
] });
|
|
10383
|
+
}
|
|
9957
10384
|
function BusinessHours({
|
|
9958
10385
|
schedule,
|
|
9959
10386
|
variant = "default",
|
|
@@ -9962,6 +10389,7 @@ function BusinessHours({
|
|
|
9962
10389
|
highlightToday = true,
|
|
9963
10390
|
useShortDayNames = false,
|
|
9964
10391
|
use24Hour = false,
|
|
10392
|
+
groupDays = false,
|
|
9965
10393
|
showHeader = true,
|
|
9966
10394
|
headerText = "Hours",
|
|
9967
10395
|
className
|
|
@@ -10097,7 +10525,14 @@ function BusinessHours({
|
|
|
10097
10525
|
{
|
|
10098
10526
|
"data-slot": "business-hours-schedule",
|
|
10099
10527
|
className: "space-y-1 divide-y divide-neutral-100 dark:divide-neutral-800",
|
|
10100
|
-
children:
|
|
10528
|
+
children: groupDays ? /* @__PURE__ */ jsx(
|
|
10529
|
+
GroupedScheduleRows,
|
|
10530
|
+
{
|
|
10531
|
+
officeHours: schedule.officeHours,
|
|
10532
|
+
useShortDayNames,
|
|
10533
|
+
use24Hour
|
|
10534
|
+
}
|
|
10535
|
+
) : schedule.officeHours.map((dayHours, idx) => /* @__PURE__ */ jsx(
|
|
10101
10536
|
DayScheduleRow,
|
|
10102
10537
|
{
|
|
10103
10538
|
dayHours,
|
|
@@ -10234,9 +10669,6 @@ var DAY_NAMES2 = [
|
|
|
10234
10669
|
"Saturday"
|
|
10235
10670
|
];
|
|
10236
10671
|
var DAY_NAMES_SHORT2 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
10237
|
-
function generateId2() {
|
|
10238
|
-
return Math.random().toString(36).substring(2, 9);
|
|
10239
|
-
}
|
|
10240
10672
|
function getOrderedDays(weekStartsOn) {
|
|
10241
10673
|
if (weekStartsOn === 1) {
|
|
10242
10674
|
return [1, 2, 3, 4, 5, 6, 0];
|
|
@@ -10252,6 +10684,15 @@ function ensureAllDays(schedule) {
|
|
|
10252
10684
|
return result;
|
|
10253
10685
|
}
|
|
10254
10686
|
function BusinessHoursEditor({
|
|
10687
|
+
variant = "days",
|
|
10688
|
+
...props
|
|
10689
|
+
}) {
|
|
10690
|
+
if (variant === "rules") {
|
|
10691
|
+
return /* @__PURE__ */ jsx(BusinessHoursRulesEditor, { ...props });
|
|
10692
|
+
}
|
|
10693
|
+
return /* @__PURE__ */ jsx(BusinessHoursDaysEditor, { ...props });
|
|
10694
|
+
}
|
|
10695
|
+
function BusinessHoursDaysEditor({
|
|
10255
10696
|
value,
|
|
10256
10697
|
onChange,
|
|
10257
10698
|
disabled = false,
|
|
@@ -10521,6 +10962,208 @@ function BusinessHoursEditor({
|
|
|
10521
10962
|
}
|
|
10522
10963
|
);
|
|
10523
10964
|
}
|
|
10965
|
+
function normalizeSchedule(schedule) {
|
|
10966
|
+
return JSON.stringify(
|
|
10967
|
+
ensureAllDays(schedule).map((day) => ({
|
|
10968
|
+
day: day.day,
|
|
10969
|
+
hours: day.hours.map((slot) => ({
|
|
10970
|
+
start: slot.start,
|
|
10971
|
+
end: slot.end,
|
|
10972
|
+
description: slot.description ?? ""
|
|
10973
|
+
}))
|
|
10974
|
+
}))
|
|
10975
|
+
);
|
|
10976
|
+
}
|
|
10977
|
+
function BusinessHoursRulesEditor({
|
|
10978
|
+
value,
|
|
10979
|
+
onChange,
|
|
10980
|
+
disabled = false,
|
|
10981
|
+
showDescription = true,
|
|
10982
|
+
use24Hour = false,
|
|
10983
|
+
weekStartsOn = 0,
|
|
10984
|
+
className,
|
|
10985
|
+
addHoursLabel = "Add Hours"
|
|
10986
|
+
}) {
|
|
10987
|
+
const [rules, setRules] = React10.useState(
|
|
10988
|
+
() => scheduleToRules(value)
|
|
10989
|
+
);
|
|
10990
|
+
const timeFormat = use24Hour ? "24-hour" : "12-hour";
|
|
10991
|
+
const lastScheduleRef = React10.useRef(normalizeSchedule(value));
|
|
10992
|
+
React10.useEffect(() => {
|
|
10993
|
+
const incoming = normalizeSchedule(value);
|
|
10994
|
+
if (incoming !== lastScheduleRef.current) {
|
|
10995
|
+
lastScheduleRef.current = incoming;
|
|
10996
|
+
setRules(scheduleToRules(value));
|
|
10997
|
+
}
|
|
10998
|
+
}, [value]);
|
|
10999
|
+
const emit = useCallback(
|
|
11000
|
+
(nextRules) => {
|
|
11001
|
+
setRules(nextRules);
|
|
11002
|
+
const schedule = rulesToSchedule(nextRules);
|
|
11003
|
+
const normalized = normalizeSchedule(schedule);
|
|
11004
|
+
if (normalized !== lastScheduleRef.current) {
|
|
11005
|
+
lastScheduleRef.current = normalized;
|
|
11006
|
+
onChange(schedule);
|
|
11007
|
+
}
|
|
11008
|
+
},
|
|
11009
|
+
[onChange]
|
|
11010
|
+
);
|
|
11011
|
+
const handleAddRule = useCallback(() => {
|
|
11012
|
+
emit([
|
|
11013
|
+
...rules,
|
|
11014
|
+
{ id: generateId2(), days: [], start: "09:00", end: "17:00" }
|
|
11015
|
+
]);
|
|
11016
|
+
}, [emit, rules]);
|
|
11017
|
+
const handleRemoveRule = useCallback(
|
|
11018
|
+
(ruleId) => {
|
|
11019
|
+
emit(rules.filter((rule) => rule.id !== ruleId));
|
|
11020
|
+
},
|
|
11021
|
+
[emit, rules]
|
|
11022
|
+
);
|
|
11023
|
+
const handleToggleDay = useCallback(
|
|
11024
|
+
(ruleId, day) => {
|
|
11025
|
+
emit(
|
|
11026
|
+
rules.map(
|
|
11027
|
+
(rule) => rule.id === ruleId ? {
|
|
11028
|
+
...rule,
|
|
11029
|
+
days: rule.days.includes(day) ? rule.days.filter((d) => d !== day) : [...rule.days, day]
|
|
11030
|
+
} : rule
|
|
11031
|
+
)
|
|
11032
|
+
);
|
|
11033
|
+
},
|
|
11034
|
+
[emit, rules]
|
|
11035
|
+
);
|
|
11036
|
+
const handleRuleChange = useCallback(
|
|
11037
|
+
(ruleId, field, value2) => {
|
|
11038
|
+
emit(
|
|
11039
|
+
rules.map(
|
|
11040
|
+
(rule) => rule.id === ruleId ? { ...rule, [field]: value2 } : rule
|
|
11041
|
+
)
|
|
11042
|
+
);
|
|
11043
|
+
},
|
|
11044
|
+
[emit, rules]
|
|
11045
|
+
);
|
|
11046
|
+
const orderedDays = getOrderedDays(weekStartsOn);
|
|
11047
|
+
return /* @__PURE__ */ jsxs(
|
|
11048
|
+
"div",
|
|
11049
|
+
{
|
|
11050
|
+
"data-slot": "business-hours-editor",
|
|
11051
|
+
className: cn("business-hours-editor space-y-3", className),
|
|
11052
|
+
children: [
|
|
11053
|
+
rules.map((rule) => /* @__PURE__ */ jsxs(
|
|
11054
|
+
"fieldset",
|
|
11055
|
+
{
|
|
11056
|
+
"data-slot": "business-hours-rule",
|
|
11057
|
+
className: "flex flex-wrap items-center gap-2 border-b border-gray-200 pb-3 last:border-0 dark:border-gray-700",
|
|
11058
|
+
children: [
|
|
11059
|
+
/* @__PURE__ */ jsx("legend", { className: "sr-only", children: "Availability rule" }),
|
|
11060
|
+
/* @__PURE__ */ jsx(
|
|
11061
|
+
"div",
|
|
11062
|
+
{
|
|
11063
|
+
"data-slot": "business-hours-rule-days",
|
|
11064
|
+
className: "flex shrink-0 gap-1",
|
|
11065
|
+
children: orderedDays.map((day) => {
|
|
11066
|
+
const selected = rule.days.includes(day);
|
|
11067
|
+
return /* @__PURE__ */ jsx(
|
|
11068
|
+
"button",
|
|
11069
|
+
{
|
|
11070
|
+
type: "button",
|
|
11071
|
+
"aria-pressed": selected,
|
|
11072
|
+
"aria-label": DAY_NAMES2[day],
|
|
11073
|
+
disabled,
|
|
11074
|
+
onClick: () => handleToggleDay(rule.id, day),
|
|
11075
|
+
className: cn(
|
|
11076
|
+
"inline-flex h-7 w-9 items-center justify-center rounded-full border text-xs font-medium transition-colors",
|
|
11077
|
+
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none",
|
|
11078
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
11079
|
+
selected ? "border-primary-800 bg-primary-800 text-white" : "border-border text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
11080
|
+
),
|
|
11081
|
+
children: DAY_NAMES_SHORT2[day]
|
|
11082
|
+
},
|
|
11083
|
+
day
|
|
11084
|
+
);
|
|
11085
|
+
})
|
|
11086
|
+
}
|
|
11087
|
+
),
|
|
11088
|
+
/* @__PURE__ */ jsx("div", { className: "w-32 sm:w-36", children: /* @__PURE__ */ jsx(
|
|
11089
|
+
DateInput,
|
|
11090
|
+
{
|
|
11091
|
+
inputType: "time",
|
|
11092
|
+
timeFormat,
|
|
11093
|
+
minuteStep: 15,
|
|
11094
|
+
value: rule.start,
|
|
11095
|
+
onChange: (time) => handleRuleChange(rule.id, "start", time),
|
|
11096
|
+
disabled,
|
|
11097
|
+
size: "sm",
|
|
11098
|
+
className: "text-sm",
|
|
11099
|
+
label: "Start time",
|
|
11100
|
+
hideLabel: true
|
|
11101
|
+
}
|
|
11102
|
+
) }),
|
|
11103
|
+
/* @__PURE__ */ jsx("span", { "data-slot": "business-hours-separator", className: "text-gray-400", children: "\u2013" }),
|
|
11104
|
+
/* @__PURE__ */ jsx("div", { className: "w-32 sm:w-36", children: /* @__PURE__ */ jsx(
|
|
11105
|
+
DateInput,
|
|
11106
|
+
{
|
|
11107
|
+
inputType: "time",
|
|
11108
|
+
timeFormat,
|
|
11109
|
+
minuteStep: 15,
|
|
11110
|
+
value: rule.end,
|
|
11111
|
+
onChange: (time) => handleRuleChange(rule.id, "end", time),
|
|
11112
|
+
disabled,
|
|
11113
|
+
size: "sm",
|
|
11114
|
+
className: "text-sm",
|
|
11115
|
+
label: "End time",
|
|
11116
|
+
hideLabel: true
|
|
11117
|
+
}
|
|
11118
|
+
) }),
|
|
11119
|
+
showDescription && /* @__PURE__ */ jsx("div", { className: "min-w-[120px] flex-1", children: /* @__PURE__ */ jsx(
|
|
11120
|
+
Input,
|
|
11121
|
+
{
|
|
11122
|
+
type: "text",
|
|
11123
|
+
value: rule.description || "",
|
|
11124
|
+
onChange: (e) => handleRuleChange(rule.id, "description", e.target.value),
|
|
11125
|
+
placeholder: "Description (optional)",
|
|
11126
|
+
disabled,
|
|
11127
|
+
className: "text-sm",
|
|
11128
|
+
"aria-label": "Description"
|
|
11129
|
+
}
|
|
11130
|
+
) }),
|
|
11131
|
+
/* @__PURE__ */ jsx(
|
|
11132
|
+
Button,
|
|
11133
|
+
{
|
|
11134
|
+
type: "button",
|
|
11135
|
+
variant: "ghost",
|
|
11136
|
+
size: "sm",
|
|
11137
|
+
onClick: () => handleRemoveRule(rule.id),
|
|
11138
|
+
disabled,
|
|
11139
|
+
className: "text-red-500 hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20",
|
|
11140
|
+
"aria-label": "Remove availability rule",
|
|
11141
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "h-4 w-4" })
|
|
11142
|
+
}
|
|
11143
|
+
)
|
|
11144
|
+
]
|
|
11145
|
+
},
|
|
11146
|
+
rule.id
|
|
11147
|
+
)),
|
|
11148
|
+
/* @__PURE__ */ jsxs(
|
|
11149
|
+
Button,
|
|
11150
|
+
{
|
|
11151
|
+
type: "button",
|
|
11152
|
+
variant: "ghost",
|
|
11153
|
+
size: "sm",
|
|
11154
|
+
onClick: handleAddRule,
|
|
11155
|
+
disabled,
|
|
11156
|
+
className: "text-xs",
|
|
11157
|
+
children: [
|
|
11158
|
+
/* @__PURE__ */ jsx(PlusIcon2, { className: "me-1 h-3 w-3" }),
|
|
11159
|
+
addHoursLabel
|
|
11160
|
+
]
|
|
11161
|
+
}
|
|
11162
|
+
)
|
|
11163
|
+
]
|
|
11164
|
+
}
|
|
11165
|
+
);
|
|
11166
|
+
}
|
|
10524
11167
|
function createDefaultSchedule() {
|
|
10525
11168
|
return [
|
|
10526
11169
|
{ day: 0, hours: [] },
|
|
@@ -35675,6 +36318,156 @@ function ScheduleCalendar({
|
|
|
35675
36318
|
}
|
|
35676
36319
|
);
|
|
35677
36320
|
}
|
|
36321
|
+
function PillSelect({
|
|
36322
|
+
options,
|
|
36323
|
+
value: controlledValue,
|
|
36324
|
+
defaultValue,
|
|
36325
|
+
onValueChange,
|
|
36326
|
+
label,
|
|
36327
|
+
disabled = false,
|
|
36328
|
+
className
|
|
36329
|
+
}) {
|
|
36330
|
+
const [internalValue, setInternalValue] = React10.useState(
|
|
36331
|
+
defaultValue ?? options[0]?.value ?? ""
|
|
36332
|
+
);
|
|
36333
|
+
const [expanded, setExpanded] = React10.useState(false);
|
|
36334
|
+
const triggerRef = React10.useRef(null);
|
|
36335
|
+
const menuRef = React10.useRef(null);
|
|
36336
|
+
const selectedOptionRef = React10.useRef(null);
|
|
36337
|
+
const firstEnabledOptionRef = React10.useRef(null);
|
|
36338
|
+
const listboxId = React10.useId();
|
|
36339
|
+
const [menuStyle, setMenuStyle] = React10.useState({});
|
|
36340
|
+
const value = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
36341
|
+
const selectedOption = options.find((o) => o.value === value);
|
|
36342
|
+
const close = React10.useCallback((restoreFocus = false) => {
|
|
36343
|
+
setExpanded(false);
|
|
36344
|
+
if (restoreFocus) {
|
|
36345
|
+
requestAnimationFrame(
|
|
36346
|
+
() => triggerRef.current?.focus({ preventScroll: true })
|
|
36347
|
+
);
|
|
36348
|
+
}
|
|
36349
|
+
}, []);
|
|
36350
|
+
const updateMenuPosition = React10.useCallback(() => {
|
|
36351
|
+
const trigger = triggerRef.current;
|
|
36352
|
+
if (!trigger) return;
|
|
36353
|
+
const rect = trigger.getBoundingClientRect();
|
|
36354
|
+
const viewportPadding = 8;
|
|
36355
|
+
const menuWidth = Math.max(rect.width, 160);
|
|
36356
|
+
const maxWidth = Math.max(window.innerWidth - viewportPadding * 2, 0);
|
|
36357
|
+
const left = Math.min(
|
|
36358
|
+
Math.max(rect.left, viewportPadding),
|
|
36359
|
+
window.innerWidth - menuWidth - viewportPadding
|
|
36360
|
+
);
|
|
36361
|
+
setMenuStyle({
|
|
36362
|
+
position: "fixed",
|
|
36363
|
+
top: rect.bottom + 4,
|
|
36364
|
+
left,
|
|
36365
|
+
minWidth: rect.width,
|
|
36366
|
+
width: menuWidth,
|
|
36367
|
+
maxWidth,
|
|
36368
|
+
zIndex: 9999
|
|
36369
|
+
});
|
|
36370
|
+
}, []);
|
|
36371
|
+
React10.useEffect(() => {
|
|
36372
|
+
if (!expanded) return;
|
|
36373
|
+
updateMenuPosition();
|
|
36374
|
+
window.addEventListener("scroll", updateMenuPosition, true);
|
|
36375
|
+
window.addEventListener("resize", updateMenuPosition);
|
|
36376
|
+
return () => {
|
|
36377
|
+
window.removeEventListener("scroll", updateMenuPosition, true);
|
|
36378
|
+
window.removeEventListener("resize", updateMenuPosition);
|
|
36379
|
+
};
|
|
36380
|
+
}, [expanded, updateMenuPosition]);
|
|
36381
|
+
React10.useEffect(() => {
|
|
36382
|
+
if (!expanded) return;
|
|
36383
|
+
const handleClickOutside = (event) => {
|
|
36384
|
+
const target = event.target;
|
|
36385
|
+
if (triggerRef.current?.contains(target) || menuRef.current?.contains(target)) {
|
|
36386
|
+
return;
|
|
36387
|
+
}
|
|
36388
|
+
close();
|
|
36389
|
+
};
|
|
36390
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
36391
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
36392
|
+
}, [close, expanded]);
|
|
36393
|
+
React10.useEffect(() => {
|
|
36394
|
+
if (!expanded) return;
|
|
36395
|
+
requestAnimationFrame(() => {
|
|
36396
|
+
(selectedOptionRef.current ?? firstEnabledOptionRef.current)?.focus({
|
|
36397
|
+
preventScroll: true
|
|
36398
|
+
});
|
|
36399
|
+
});
|
|
36400
|
+
}, [expanded, value]);
|
|
36401
|
+
useEscapeKey(() => close(true), expanded);
|
|
36402
|
+
function handleSelect(option) {
|
|
36403
|
+
if (disabled || option.disabled) return;
|
|
36404
|
+
if (controlledValue === void 0) setInternalValue(option.value);
|
|
36405
|
+
onValueChange?.(option.value);
|
|
36406
|
+
close(true);
|
|
36407
|
+
}
|
|
36408
|
+
const hasOptions = options.length > 0;
|
|
36409
|
+
const valuePart = selectedOption?.label ?? value;
|
|
36410
|
+
const collapsedLabel = label && valuePart ? `${label}: ${valuePart}` : label || valuePart || "No options";
|
|
36411
|
+
let firstEnabledOptionRefAssigned = false;
|
|
36412
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("inline-flex", className), children: [
|
|
36413
|
+
/* @__PURE__ */ jsx(
|
|
36414
|
+
"button",
|
|
36415
|
+
{
|
|
36416
|
+
ref: triggerRef,
|
|
36417
|
+
type: "button",
|
|
36418
|
+
disabled: disabled || !hasOptions,
|
|
36419
|
+
onClick: () => setExpanded((open) => !open),
|
|
36420
|
+
"aria-haspopup": "listbox",
|
|
36421
|
+
"aria-expanded": expanded,
|
|
36422
|
+
"aria-controls": expanded ? listboxId : void 0,
|
|
36423
|
+
className: cn(
|
|
36424
|
+
"border-border bg-muted text-foreground inline-flex items-center rounded-full border px-3 py-0.5 text-sm transition-colors",
|
|
36425
|
+
"hover:bg-muted/80 focus-visible:ring-ring focus:outline-none focus-visible:ring-2",
|
|
36426
|
+
(disabled || !hasOptions) && "cursor-not-allowed opacity-50"
|
|
36427
|
+
),
|
|
36428
|
+
children: collapsedLabel
|
|
36429
|
+
}
|
|
36430
|
+
),
|
|
36431
|
+
expanded && createPortal(
|
|
36432
|
+
/* @__PURE__ */ jsx(
|
|
36433
|
+
"div",
|
|
36434
|
+
{
|
|
36435
|
+
ref: menuRef,
|
|
36436
|
+
id: listboxId,
|
|
36437
|
+
role: "listbox",
|
|
36438
|
+
"aria-label": label ? `${label} options` : "Options",
|
|
36439
|
+
style: menuStyle,
|
|
36440
|
+
className: "border-border bg-card animate-in fade-in zoom-in-95 flex flex-col rounded-lg border p-1 shadow-lg duration-100",
|
|
36441
|
+
children: options.map((option) => {
|
|
36442
|
+
const selected = option.value === value;
|
|
36443
|
+
const optionDisabled = disabled || option.disabled;
|
|
36444
|
+
const isFirstEnabled = !optionDisabled && !firstEnabledOptionRefAssigned;
|
|
36445
|
+
if (isFirstEnabled) firstEnabledOptionRefAssigned = true;
|
|
36446
|
+
return /* @__PURE__ */ jsx(
|
|
36447
|
+
"button",
|
|
36448
|
+
{
|
|
36449
|
+
ref: selected && !optionDisabled ? selectedOptionRef : isFirstEnabled ? firstEnabledOptionRef : void 0,
|
|
36450
|
+
type: "button",
|
|
36451
|
+
role: "option",
|
|
36452
|
+
disabled: optionDisabled,
|
|
36453
|
+
onClick: () => handleSelect(option),
|
|
36454
|
+
"aria-selected": selected,
|
|
36455
|
+
className: cn(
|
|
36456
|
+
"focus-visible:ring-ring flex w-full items-center rounded-md px-3 py-1.5 text-start text-sm transition-colors focus:outline-none focus-visible:ring-2",
|
|
36457
|
+
selected ? "bg-muted text-foreground font-semibold" : "text-muted-foreground hover:bg-muted hover:text-foreground font-normal",
|
|
36458
|
+
optionDisabled && "cursor-not-allowed opacity-40"
|
|
36459
|
+
),
|
|
36460
|
+
children: option.label
|
|
36461
|
+
},
|
|
36462
|
+
option.value
|
|
36463
|
+
);
|
|
36464
|
+
})
|
|
36465
|
+
}
|
|
36466
|
+
),
|
|
36467
|
+
document.body
|
|
36468
|
+
)
|
|
36469
|
+
] });
|
|
36470
|
+
}
|
|
35678
36471
|
var accordionVariants = cva(
|
|
35679
36472
|
"service-accordion divide-y divide-neutral-200 dark:divide-neutral-700",
|
|
35680
36473
|
{
|
|
@@ -38681,11 +39474,11 @@ function Sidebar({
|
|
|
38681
39474
|
"data-testid": testId,
|
|
38682
39475
|
className: cn(
|
|
38683
39476
|
"flex h-screen flex-col",
|
|
38684
|
-
"border-
|
|
39477
|
+
"border-e border-neutral-200 bg-white dark:border-neutral-700 dark:bg-neutral-900",
|
|
38685
39478
|
"transition-all duration-300 ease-in-out",
|
|
38686
|
-
// Mobile positioning
|
|
38687
|
-
isMobileViewport && "fixed
|
|
38688
|
-
isMobileViewport && (isMobileOpen ? "translate-x-0" : "-translate-x-full"),
|
|
39479
|
+
// Mobile positioning (start-pinned; off-canvas direction flips in RTL)
|
|
39480
|
+
isMobileViewport && "fixed start-0 top-0 z-50",
|
|
39481
|
+
isMobileViewport && (isMobileOpen ? "translate-x-0" : "-translate-x-full rtl:translate-x-full"),
|
|
38689
39482
|
// Desktop positioning
|
|
38690
39483
|
!isMobileViewport && "relative",
|
|
38691
39484
|
className
|
|
@@ -38732,7 +39525,7 @@ function SidebarHeader({
|
|
|
38732
39525
|
"button",
|
|
38733
39526
|
{
|
|
38734
39527
|
onClick: closeMobile,
|
|
38735
|
-
className: "-
|
|
39528
|
+
className: "-me-2 rounded-lg p-2 text-neutral-500 transition-colors hover:bg-neutral-100 lg:hidden dark:hover:bg-neutral-800",
|
|
38736
39529
|
"aria-label": "Close navigation",
|
|
38737
39530
|
children: /* @__PURE__ */ jsx(XIcon3, {})
|
|
38738
39531
|
}
|
|
@@ -38819,18 +39612,18 @@ function SidebarNavGroup({
|
|
|
38819
39612
|
{
|
|
38820
39613
|
className: cn(
|
|
38821
39614
|
"text-muted-foreground h-5 w-5 flex-shrink-0",
|
|
38822
|
-
!showCollapsed && "
|
|
39615
|
+
!showCollapsed && "me-3"
|
|
38823
39616
|
),
|
|
38824
39617
|
children: icon
|
|
38825
39618
|
}
|
|
38826
39619
|
),
|
|
38827
39620
|
!showCollapsed && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
38828
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-
|
|
39621
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-start", children: label }),
|
|
38829
39622
|
/* @__PURE__ */ jsx(
|
|
38830
39623
|
"span",
|
|
38831
39624
|
{
|
|
38832
39625
|
className: cn(
|
|
38833
|
-
"
|
|
39626
|
+
"ms-2 flex-shrink-0 transition-transform duration-200",
|
|
38834
39627
|
effectiveExpanded && "rotate-180"
|
|
38835
39628
|
),
|
|
38836
39629
|
children: /* @__PURE__ */ jsx(ChevronDownIcon4, {})
|
|
@@ -38847,7 +39640,7 @@ function SidebarNavGroup({
|
|
|
38847
39640
|
"overflow-hidden transition-all duration-300",
|
|
38848
39641
|
effectiveExpanded ? "mt-1 max-h-[1000px] opacity-100" : "max-h-0 opacity-0"
|
|
38849
39642
|
),
|
|
38850
|
-
children: /* @__PURE__ */ jsx("div", { className: "
|
|
39643
|
+
children: /* @__PURE__ */ jsx("div", { className: "ps-2", children })
|
|
38851
39644
|
}
|
|
38852
39645
|
)
|
|
38853
39646
|
] });
|
|
@@ -38879,18 +39672,18 @@ function SidebarNavItem({
|
|
|
38879
39672
|
className: cn(
|
|
38880
39673
|
"h-5 w-5 flex-shrink-0",
|
|
38881
39674
|
isActive ? "text-primary-800 dark:text-primary-400" : "text-muted-foreground",
|
|
38882
|
-
!showCollapsed && "
|
|
39675
|
+
!showCollapsed && "me-3"
|
|
38883
39676
|
),
|
|
38884
39677
|
children: icon
|
|
38885
39678
|
}
|
|
38886
39679
|
),
|
|
38887
39680
|
!showCollapsed && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
38888
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-
|
|
39681
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-start", children: label }),
|
|
38889
39682
|
badge && /* @__PURE__ */ jsx(
|
|
38890
39683
|
"span",
|
|
38891
39684
|
{
|
|
38892
39685
|
className: cn(
|
|
38893
|
-
"
|
|
39686
|
+
"ms-2 rounded-full px-2 py-0.5 text-xs font-medium",
|
|
38894
39687
|
isActive ? "bg-primary-100 dark:bg-primary-900/30 text-primary-700 dark:text-primary-300" : "bg-neutral-100 text-neutral-600 dark:bg-neutral-700 dark:text-neutral-400"
|
|
38895
39688
|
),
|
|
38896
39689
|
children: badge
|
|
@@ -38955,7 +39748,7 @@ function SidebarToggle({
|
|
|
38955
39748
|
}
|
|
38956
39749
|
);
|
|
38957
39750
|
if (position === "floating") {
|
|
38958
|
-
return /* @__PURE__ */ jsx("div", { className: "absolute top-6
|
|
39751
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute -end-3 top-6 z-10 rounded-full border border-neutral-200 bg-white shadow-md dark:border-neutral-700 dark:bg-neutral-900", children: button });
|
|
38959
39752
|
}
|
|
38960
39753
|
return button;
|
|
38961
39754
|
}
|
|
@@ -39012,7 +39805,7 @@ function SidebarSearch({
|
|
|
39012
39805
|
}, [showCollapsed, setCollapsed]);
|
|
39013
39806
|
if (showCollapsed) return /* @__PURE__ */ jsx(Fragment, {});
|
|
39014
39807
|
return /* @__PURE__ */ jsx("div", { "data-slot": "sidebar-search", className: cn("px-3 py-2", className), children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
39015
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-1/2
|
|
39808
|
+
/* @__PURE__ */ jsx("div", { className: "absolute start-3 top-1/2 -translate-y-1/2 text-neutral-400", children: /* @__PURE__ */ jsx(SearchIcon6, {}) }),
|
|
39016
39809
|
/* @__PURE__ */ jsx(
|
|
39017
39810
|
"input",
|
|
39018
39811
|
{
|
|
@@ -39023,7 +39816,7 @@ function SidebarSearch({
|
|
|
39023
39816
|
placeholder: `${placeholder} (${shortcutHint})`,
|
|
39024
39817
|
"data-testid": testId,
|
|
39025
39818
|
className: cn(
|
|
39026
|
-
"w-full rounded-lg py-2
|
|
39819
|
+
"w-full rounded-lg py-2 ps-10 pe-4 text-sm",
|
|
39027
39820
|
"border-transparent bg-neutral-100 dark:bg-neutral-800",
|
|
39028
39821
|
"text-neutral-900 placeholder-neutral-400 dark:text-white dark:placeholder-neutral-500",
|
|
39029
39822
|
"focus:ring-primary-500 focus:bg-white focus:ring-2 focus:outline-none dark:focus:bg-neutral-700",
|
|
@@ -40768,7 +41561,7 @@ function StepIndicator({
|
|
|
40768
41561
|
onClick: () => handleStepClick(index),
|
|
40769
41562
|
disabled: !clickable,
|
|
40770
41563
|
"aria-label": `Step ${index + 1}: ${step.label}`,
|
|
40771
|
-
className: `${sizes.circle} flex shrink-0 items-center justify-center rounded-full font-medium transition-all duration-200 focus:ring-2 focus:ring-offset-2 focus:outline-none dark:focus:ring-offset-neutral-900 ${clickable ? "cursor-pointer" : "cursor-default"} ${step.hasError ? "bg-red-100 text-red-600 focus:ring-red-500 dark:bg-red-900/30 dark:text-red-400" : status === "completed" ? "bg-primary-800 focus:ring-primary-500 dark:bg-primary-800 text-white" : status === "current" ? "bg-primary-800 ring-primary-600 focus:ring-primary-500 dark:bg-primary-800 dark:ring-primary-500 text-white ring-2 ring-offset-2 dark:ring-offset-neutral-900" : "bg-neutral-200 text-neutral-500 focus:ring-neutral-400 dark:bg-neutral-700 dark:text-neutral-300"}`.trim(),
|
|
41564
|
+
className: `${sizes.circle} relative z-10 flex shrink-0 items-center justify-center rounded-full font-medium transition-all duration-200 focus:ring-2 focus:ring-offset-2 focus:outline-none dark:focus:ring-offset-neutral-900 ${clickable ? "cursor-pointer" : "cursor-default"} ${step.hasError ? "bg-red-100 text-red-600 focus:ring-red-500 dark:bg-red-900/30 dark:text-red-400" : status === "completed" ? "bg-primary-800 focus:ring-primary-500 dark:bg-primary-800 text-white" : status === "current" ? "bg-primary-800 ring-primary-600 focus:ring-primary-500 dark:bg-primary-800 dark:ring-primary-500 text-white ring-2 ring-offset-2 dark:ring-offset-neutral-900" : "bg-neutral-200 text-neutral-500 focus:ring-neutral-400 dark:bg-neutral-700 dark:text-neutral-300"}`.trim(),
|
|
40772
41565
|
"aria-current": status === "current" ? "step" : void 0,
|
|
40773
41566
|
children: step.hasError ? /* @__PURE__ */ jsx(ErrorIcon, { className: "h-4 w-4" }) : status === "completed" ? step.icon || /* @__PURE__ */ jsx(CheckIcon5, { className: "h-4 w-4" }) : step.icon || /* @__PURE__ */ jsx(
|
|
40774
41567
|
"span",
|
|
@@ -42621,6 +43414,6 @@ function WebsiteInputGroup({
|
|
|
42621
43414
|
}
|
|
42622
43415
|
WebsiteInputGroup.displayName = "WebsiteInputGroup";
|
|
42623
43416
|
|
|
42624
|
-
export { AIChat, AIChatModal, AIChatTrigger, AIReconciliationPanel, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, Assessment, AuthButtons, AuthDialog, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, CHANGE_TYPE_LABELS, CONCERN_STATUS_LABELS, CSVColumnMapper, CSVFileUpload, CardSkeleton, CheckrIntegration, ClaimListingButton, ClaimProviderForm, CodingChips, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ConditionEditor, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, CookieConsentBanner, CopyrightText, CountBadge, CreateInvoiceModal, CreateReferralModal, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DialogOverlay, DisclaimerText, DocumentDetectionOverlay, DocumentScanner, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HandsFreeChat, HealthSurveillance, HelpSupportPanel, HeroSearchBar, HeyOzwell, HeyOzwellToggle, HoursSummary, ImagingOrderEditor, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LabOrderEditor, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MODEL_MANIFEST, MaintenancePage, MobileBackButton, MobileMenuButton, MobileMenuPanel, ModelInfoList, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, ORDER_TYPE_META, ORDER_TYPE_SEARCH_DOMAINS, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderEditor, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, OzwellSettingsMenu, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PresentingProblems, ProblemList, ProcedureOrderEditor, ProductVersion, ProductVersionBadge, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, RELEVANCE_LABELS, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, ReferralEditor, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ReportTimeRange, ResultsEntryCard, ResultsEntryForm, ResultsEntryModal, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, ServerErrorPage, ServiceAccordion, ServiceBadge, ServiceBadgeGroup, ServiceCard, ServiceCategoryBadge, ServiceGeneralSettings, ServiceGrid, ServiceLink, ServiceList, ServiceMultiSelect, ServicePicker, ServicePricingManager, ServiceSelect, ServiceShippingSettings, ServiceTagCloud, ServiceTagCloudBadges, SetupServiceModal, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMobileToggle, SidebarNav, SidebarNavGroup, SidebarNavItem, SidebarProvider, SidebarSearch, SidebarToggle, SimpleFooter, SiteFooter, SiteHeader, SiteLogo, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, UncertaintyBadge, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, VisitScribe, VoiceManager, VoiceSetup, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, askOzwell, askOzwellStream, attributeSegments, calculateDateRange, centroid, chime, clearVoiceprints, clearWhatPrints, clusterEmbeddings, concernGroupKey, concernHistoryContent, cosine, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, currentAssertion, decodeTo16kMono, defaultOrderTabs, defaultReconciliationIsEqual, endsWithDone, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, generateId, getDefaultPresets, getDictationLoad, getExtendedPresets, getGoogleMapsSearchUrl, getGoogleMapsUrl, getOzwellConfig, getVoiceprints, getWakeWarm, inferSpeakerRoles, isConditionCodetype, isOzwellConfigured, isValidUrl, isWhisperLoaded, labelClusters, loadWhatPrints, medicationToOrder, mergeTurns, openRollingRecorder, orderToMedication, orderTypeForCodetype, panelVariants as reconciliationPanelVariants, saveWhatPrints, setVoiceprints, stripStopPhrase, subscribeDictationLoad, subscribeWakeWarm, toOzwellMessages, transcribeBlob, transcribeGate, transcribeSamples, transcribeSegments, transcribeServer, trimTrailingStopPhrase, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDiarization, useDocumentDetection, useDropzone, useFileUpload, useHeyOzwell, useSidebar, useSpeakerVerify, useToast, useVisitScribe, useVoiceSetup, useWakeWord, warmStopGate, warmWakeModels, warmWhisper, widgetVariants };
|
|
43417
|
+
export { AIChat, AIChatModal, AIChatTrigger, AIReconciliationPanel, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, Assessment, AuthButtons, AuthDialog, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, CHANGE_TYPE_LABELS, CONCERN_STATUS_LABELS, CSVColumnMapper, CSVFileUpload, CardSkeleton, CheckrIntegration, ClaimListingButton, ClaimProviderForm, CodingChips, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ComposerModelSelector, ConditionEditor, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, CookieConsentBanner, CopyrightText, CountBadge, CreateInvoiceModal, CreateReferralModal, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DialogOverlay, DisclaimerText, DocumentDetectionOverlay, DocumentScanner, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HandsFreeChat, HealthSurveillance, HelpSupportPanel, HeroSearchBar, HeyOzwell, HeyOzwellToggle, HoursSummary, ImagingOrderEditor, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LabOrderEditor, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MODEL_MANIFEST, MaintenancePage, MobileBackButton, MobileMenuButton, MobileMenuPanel, ModelInfoList, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, ORDER_TYPE_META, ORDER_TYPE_SEARCH_DOMAINS, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderEditor, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, OzwellSettingsMenu, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PillSelect, PresentingProblems, ProblemList, ProcedureOrderEditor, ProductVersion, ProductVersionBadge, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, RELEVANCE_LABELS, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, ReferralEditor, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ReportTimeRange, ResultsEntryCard, ResultsEntryForm, ResultsEntryModal, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, ServerErrorPage, ServiceAccordion, ServiceBadge, ServiceBadgeGroup, ServiceCard, ServiceCategoryBadge, ServiceGeneralSettings, ServiceGrid, ServiceLink, ServiceList, ServiceMultiSelect, ServicePicker, ServicePricingManager, ServiceSelect, ServiceShippingSettings, ServiceTagCloud, ServiceTagCloudBadges, SetupServiceModal, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMobileToggle, SidebarNav, SidebarNavGroup, SidebarNavItem, SidebarProvider, SidebarSearch, SidebarToggle, SimpleFooter, SiteFooter, SiteHeader, SiteLogo, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, UncertaintyBadge, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, VisitScribe, VoiceManager, VoiceSetup, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, askOzwell, askOzwellStream, attributeSegments, calculateDateRange, centroid, chime, clearVoiceprints, clearWhatPrints, clusterEmbeddings, concernGroupKey, concernHistoryContent, cosine, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, currentAssertion, decodeTo16kMono, defaultOrderTabs, defaultReconciliationIsEqual, endsWithDone, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, generateId, getDefaultPresets, getDictationLoad, getExtendedPresets, getGoogleMapsSearchUrl, getGoogleMapsUrl, getOzwellConfig, getVoiceprints, getWakeWarm, inferSpeakerRoles, isConditionCodetype, isOzwellConfigured, isValidUrl, isWhisperLoaded, labelClusters, loadWhatPrints, medicationToOrder, mergeTurns, openRollingRecorder, orderToMedication, orderTypeForCodetype, panelVariants as reconciliationPanelVariants, saveWhatPrints, setVoiceprints, stripStopPhrase, subscribeDictationLoad, subscribeWakeWarm, toOzwellMessages, transcribeBlob, transcribeGate, transcribeSamples, transcribeSegments, transcribeServer, trimTrailingStopPhrase, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDiarization, useDocumentDetection, useDropzone, useFileUpload, useHeyOzwell, useSidebar, useSpeakerVerify, useToast, useVisitScribe, useVoiceSetup, useWakeWord, warmStopGate, warmWakeModels, warmWhisper, widgetVariants };
|
|
42625
43418
|
//# sourceMappingURL=index.js.map
|
|
42626
43419
|
//# sourceMappingURL=index.js.map
|