@mieweb/ui 0.1.0 → 0.2.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/LICENSE +39 -15
- package/README.md +9 -1
- package/dist/brands/index.cjs +7 -7
- package/dist/brands/index.js +2 -2
- package/dist/{chunk-CLNOI5J7.js → chunk-4SMSH4OY.js} +4 -4
- package/dist/chunk-4SMSH4OY.js.map +1 -0
- package/dist/chunk-4T2ZNPTC.js +220 -0
- package/dist/chunk-4T2ZNPTC.js.map +1 -0
- package/dist/chunk-5T3AWNHG.cjs +471 -0
- package/dist/chunk-5T3AWNHG.cjs.map +1 -0
- package/dist/{chunk-LEE3NMNP.cjs → chunk-5UUL5EEO.cjs} +131 -81
- package/dist/chunk-5UUL5EEO.cjs.map +1 -0
- package/dist/chunk-74K3RRU7.cjs +4 -0
- package/dist/{chunk-ZO46CFVN.cjs.map → chunk-74K3RRU7.cjs.map} +1 -1
- package/dist/{chunk-VWXGUNBR.cjs → chunk-AKTUXJPI.cjs} +107 -18
- package/dist/chunk-AKTUXJPI.cjs.map +1 -0
- package/dist/chunk-BV75DAKO.cjs +245 -0
- package/dist/chunk-BV75DAKO.cjs.map +1 -0
- package/dist/{chunk-6DP6RKUA.cjs → chunk-CLJZHS7Y.cjs} +2 -2
- package/dist/{chunk-6DP6RKUA.cjs.map → chunk-CLJZHS7Y.cjs.map} +1 -1
- package/dist/{chunk-NH2JVQ6V.cjs → chunk-I7L6CQXR.cjs} +21 -9
- package/dist/chunk-I7L6CQXR.cjs.map +1 -0
- package/dist/{chunk-BR2XGATJ.cjs → chunk-NNEFAUHV.cjs} +4 -4
- package/dist/chunk-NNEFAUHV.cjs.map +1 -0
- package/dist/{chunk-KJOFWJHV.js → chunk-QSMMFATL.js} +131 -81
- package/dist/chunk-QSMMFATL.js.map +1 -0
- package/dist/{chunk-FIUNOH6W.js → chunk-S4DK5WN6.js} +2 -2
- package/dist/{chunk-FIUNOH6W.js.map → chunk-S4DK5WN6.js.map} +1 -1
- package/dist/chunk-SCV7C55E.cjs +11 -0
- package/dist/chunk-SCV7C55E.cjs.map +1 -0
- package/dist/{chunk-D5IBXXF2.js → chunk-SD44QJIP.js} +20 -8
- package/dist/chunk-SD44QJIP.js.map +1 -0
- package/dist/{chunk-QBWVTJKF.js → chunk-UBRDKNLQ.js} +107 -18
- package/dist/chunk-UBRDKNLQ.js.map +1 -0
- package/dist/chunk-V2DF2GUE.js +3 -0
- package/dist/{chunk-ZQ4XMJH7.js.map → chunk-V2DF2GUE.js.map} +1 -1
- package/dist/chunk-VSQF22GL.js +9 -0
- package/dist/chunk-VSQF22GL.js.map +1 -0
- package/dist/chunk-XVZ4SLQB.js +447 -0
- package/dist/chunk-XVZ4SLQB.js.map +1 -0
- package/dist/components/AudioPlayer/index.cjs +6 -6
- package/dist/components/AudioPlayer/index.d.cts +5 -1
- package/dist/components/AudioPlayer/index.d.ts +5 -1
- package/dist/components/AudioPlayer/index.js +1 -1
- package/dist/components/Modal/index.cjs +11 -10
- package/dist/components/Modal/index.js +3 -2
- package/dist/components/RecordButton/index.cjs +4 -8
- package/dist/components/RecordButton/index.d.cts +57 -44
- package/dist/components/RecordButton/index.d.ts +57 -44
- package/dist/components/RecordButton/index.js +1 -1
- package/dist/components/Select/index.cjs +3 -4
- package/dist/components/Select/index.js +1 -2
- package/dist/components/Slider/index.cjs +25 -0
- package/dist/components/Slider/index.cjs.map +1 -0
- package/dist/components/Slider/index.d.cts +82 -0
- package/dist/components/Slider/index.d.ts +82 -0
- package/dist/components/Slider/index.js +4 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Spinner/index.d.cts +1 -1
- package/dist/components/Spinner/index.d.ts +1 -1
- package/dist/hooks/index.cjs +3 -2
- package/dist/hooks/index.js +2 -1
- package/dist/index.cjs +1899 -1238
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +68 -25
- package/dist/index.d.ts +68 -25
- package/dist/index.js +1793 -1148
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils/index.cjs +6 -1
- package/dist/utils/index.d.cts +14 -1
- package/dist/utils/index.d.ts +14 -1
- package/dist/utils/index.js +2 -1
- package/package.json +7 -7
- package/dist/chunk-BR2XGATJ.cjs.map +0 -1
- package/dist/chunk-CLNOI5J7.js.map +0 -1
- package/dist/chunk-D5IBXXF2.js.map +0 -1
- package/dist/chunk-FQ5G7J24.js +0 -297
- package/dist/chunk-FQ5G7J24.js.map +0 -1
- package/dist/chunk-HLW3XD5R.cjs +0 -322
- package/dist/chunk-HLW3XD5R.cjs.map +0 -1
- package/dist/chunk-KJOFWJHV.js.map +0 -1
- package/dist/chunk-LEE3NMNP.cjs.map +0 -1
- package/dist/chunk-NH2JVQ6V.cjs.map +0 -1
- package/dist/chunk-QBWVTJKF.js.map +0 -1
- package/dist/chunk-VWXGUNBR.cjs.map +0 -1
- package/dist/chunk-ZO46CFVN.cjs +0 -4
- package/dist/chunk-ZQ4XMJH7.js +0 -3
package/dist/index.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
|
+
import { Textarea } from './chunk-4AWW5WPF.js';
|
|
2
|
+
export { Textarea, textareaVariants } from './chunk-4AWW5WPF.js';
|
|
1
3
|
export { ThemeProvider, ThemeProviderContext, ThemeToggle, themeToggleIconVariants, themeToggleVariants, useThemeContext } from './chunk-TA6FVVCM.js';
|
|
2
4
|
import { Tooltip } from './chunk-UZUBLXVC.js';
|
|
3
5
|
export { Tooltip } from './chunk-UZUBLXVC.js';
|
|
4
6
|
export { VisuallyHidden } from './chunk-H2CIKJQI.js';
|
|
5
|
-
export { brands } from './chunk-
|
|
7
|
+
export { brands } from './chunk-S4DK5WN6.js';
|
|
8
|
+
export { enterpriseHealthBrand } from './chunk-MTZPVOP6.js';
|
|
6
9
|
export { miewebBrand } from './chunk-UHSPAFY6.js';
|
|
7
10
|
export { wagglelineBrand } from './chunk-OWPWP46L.js';
|
|
8
11
|
export { webchartBrand } from './chunk-C6MDPPPL.js';
|
|
9
12
|
export { createBrandPreset, generateBrandCSS, generateTailwindTheme } from './chunk-SOFX4T7M.js';
|
|
10
13
|
export { bluehiveBrand } from './chunk-ULOA7WBW.js';
|
|
11
14
|
export { defaultBrand } from './chunk-4LTN2LEN.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
import { Select } from './chunk-QSMMFATL.js';
|
|
16
|
+
export { Select, selectTriggerVariants } from './chunk-QSMMFATL.js';
|
|
17
|
+
import { Skeleton } from './chunk-6OCIIIAI.js';
|
|
15
18
|
export { Skeleton, SkeletonCard, SkeletonTable, SkeletonText, skeletonVariants } from './chunk-6OCIIIAI.js';
|
|
19
|
+
export { Slider, sliderRangeVariants, sliderThumbVariants, sliderTrackVariants } from './chunk-4T2ZNPTC.js';
|
|
16
20
|
import { Spinner, SpinnerWithLabel } from './chunk-GV5JQBPX.js';
|
|
17
21
|
export { FullPageSpinner, Spinner, SpinnerWithLabel, spinnerVariants } from './chunk-GV5JQBPX.js';
|
|
18
22
|
import { Switch } from './chunk-QL2YTVTR.js';
|
|
@@ -23,23 +27,21 @@ import { Tabs, TabsList, TabsTrigger, TabsContent } from './chunk-JFAXLE2J.js';
|
|
|
23
27
|
export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from './chunk-JFAXLE2J.js';
|
|
24
28
|
import { Text } from './chunk-RCMF6KZA.js';
|
|
25
29
|
export { SmallMuted, Text, textVariants } from './chunk-RCMF6KZA.js';
|
|
26
|
-
import {
|
|
27
|
-
export {
|
|
28
|
-
import { Modal, ModalHeader, ModalTitle, ModalBody, ModalFooter, ModalClose } from './chunk-D5IBXXF2.js';
|
|
29
|
-
export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-D5IBXXF2.js';
|
|
30
|
+
import { Modal, ModalHeader, ModalTitle, ModalBody, ModalFooter, ModalClose } from './chunk-SD44QJIP.js';
|
|
31
|
+
export { Modal, ModalBody, ModalClose, ModalFooter, ModalHeader, ModalTitle, modalContentVariants, modalOverlayVariants } from './chunk-SD44QJIP.js';
|
|
30
32
|
export { Pagination, SimplePagination, paginationButtonVariants } from './chunk-ONWOB76P.js';
|
|
31
33
|
export { PhoneInput, PhoneInputGroup } from './chunk-4YRAEFYW.js';
|
|
32
34
|
import { Progress } from './chunk-4MHTSFPX.js';
|
|
33
35
|
export { CircularProgress, Progress, circularProgressVariants, progressBarFillVariants, progressBarTrackVariants } from './chunk-4MHTSFPX.js';
|
|
34
36
|
export { QuickAction, QuickActionGroup, QuickActionIcons, quickActionIconVariants, quickActionVariants } from './chunk-6Q4SU72T.js';
|
|
35
|
-
import { Radio } from './chunk-OW2BWGST.js';
|
|
37
|
+
import { RadioGroup, Radio } from './chunk-OW2BWGST.js';
|
|
36
38
|
export { Radio, RadioGroup, radioVariants } from './chunk-OW2BWGST.js';
|
|
37
|
-
export { RecordButton, formatDuration, recordButtonVariants
|
|
39
|
+
export { RecordButton, formatDuration, recordButtonVariants } from './chunk-XVZ4SLQB.js';
|
|
38
40
|
export { DateButton, DatePicker, RadioOption, SchedulePicker, TimeButton, TimePicker, dateButtonVariants, radioOptionVariants, timeButtonVariants } from './chunk-DMA74PZ7.js';
|
|
39
41
|
import { Badge } from './chunk-3NJ72QU6.js';
|
|
40
42
|
export { Badge, badgeVariants } from './chunk-3NJ72QU6.js';
|
|
41
43
|
export { Breadcrumb, BreadcrumbSlash } from './chunk-B3L43JGH.js';
|
|
42
|
-
import { Button } from './chunk-N5EKL4DH.js';
|
|
44
|
+
import { Button, buttonVariants } from './chunk-N5EKL4DH.js';
|
|
43
45
|
export { Button, buttonVariants } from './chunk-N5EKL4DH.js';
|
|
44
46
|
import { Card, CardHeader, CardTitle, CardContent } from './chunk-XXOBTAKA.js';
|
|
45
47
|
export { Card, CardActions, CardBadge, CardCollapsible, CardContent, CardDescription, CardDivider, CardFooter, CardHeader, CardMedia, CardStat, CardTitle, cardAccentVariants, cardVariants } from './chunk-XXOBTAKA.js';
|
|
@@ -54,19 +56,20 @@ import { useCommandK, useIsMobile, useMediaQuery } from './chunk-CP7NPDQW.js';
|
|
|
54
56
|
export { useCommandK, useIsDesktop, useIsLargeDesktop, useIsMobile, useIsMobileOrTablet, useIsSmallTablet, useIsTablet, useKeyboardShortcut, useMediaQuery } from './chunk-CP7NPDQW.js';
|
|
55
57
|
export { useTheme } from './chunk-KJZNEVYM.js';
|
|
56
58
|
export { usePrefersReducedMotion } from './chunk-HB7C7NB5.js';
|
|
57
|
-
import { useFocusTrap } from './chunk-
|
|
58
|
-
export { useFocusTrap } from './chunk-
|
|
59
|
+
import { useFocusTrap } from './chunk-4SMSH4OY.js';
|
|
60
|
+
export { useFocusTrap } from './chunk-4SMSH4OY.js';
|
|
59
61
|
import { useClickOutside } from './chunk-OT36EMM5.js';
|
|
60
62
|
export { useClickOutside } from './chunk-OT36EMM5.js';
|
|
61
63
|
import { useEscapeKey } from './chunk-T4ME7QCT.js';
|
|
62
64
|
export { useEscapeKey } from './chunk-T4ME7QCT.js';
|
|
63
|
-
import './chunk-
|
|
65
|
+
import './chunk-V2DF2GUE.js';
|
|
64
66
|
export { formatPhoneNumber, isPhoneNumberEmpty, isValidPhoneNumber, unformatPhoneNumber } from './chunk-CEHWXAAI.js';
|
|
65
67
|
export { calculateAge, formatDateValue, isDateEmpty, isDateInFuture, isDateInPast, isValidDate, isValidDrivingAge, parseDateValue } from './chunk-SN52QMRT.js';
|
|
68
|
+
export { isStorybookDocsMode } from './chunk-VSQF22GL.js';
|
|
66
69
|
export { miewebUIPreset, miewebUISafelist } from './chunk-O7WRE2WX.js';
|
|
67
70
|
import { Alert, AlertTitle, AlertDescription } from './chunk-B26RIQ5R.js';
|
|
68
71
|
export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-B26RIQ5R.js';
|
|
69
|
-
export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime as formatAudioTime, playButtonVariants } from './chunk-
|
|
72
|
+
export { AudioPlayer, ProgressBar, audioPlayerVariants, formatTime as formatAudioTime, playButtonVariants } from './chunk-UBRDKNLQ.js';
|
|
70
73
|
export { AudioRecorder, audioRecorderVariants, controlButtonVariants, formatTime, waveformContainerVariants } from './chunk-QZLRB3UG.js';
|
|
71
74
|
import { Avatar } from './chunk-NIHESA7O.js';
|
|
72
75
|
export { Avatar, AvatarGroup, avatarVariants, getInitials } from './chunk-NIHESA7O.js';
|
|
@@ -79,7 +82,7 @@ import { cva } from 'class-variance-authority';
|
|
|
79
82
|
import { AgGridReact } from 'ag-grid-react';
|
|
80
83
|
export { AgGridReact } from 'ag-grid-react';
|
|
81
84
|
import { ModuleRegistry, AllCommunityModule } from 'ag-grid-community';
|
|
82
|
-
import { Mail, Phone, Linkedin, Globe, CheckCircle, Clock, Filter, ChevronDown, Calendar, Printer, Download, FolderUp,
|
|
85
|
+
import { FileUp, X, AlertCircle, Mail, Phone, Linkedin, Globe, CheckCircle, Clock, Filter, ChevronDown, Calendar, Printer, Download, FolderUp, Upload, Edit2, Check, ChevronUp, MapPin, Shield, ChevronRight, Building2, SlidersHorizontal, Trash2, Pencil, Plus, Link, AlertTriangle, RefreshCw, Scan, Camera, ScanLine, FileText, Image } from 'lucide-react';
|
|
83
86
|
|
|
84
87
|
var SEX_OPTIONS = [
|
|
85
88
|
{ value: "F", label: "Female" },
|
|
@@ -2286,6 +2289,35 @@ var TOOL_ICONS = {
|
|
|
2286
2289
|
)
|
|
2287
2290
|
}
|
|
2288
2291
|
),
|
|
2292
|
+
// Provider tools
|
|
2293
|
+
search_providers: /* @__PURE__ */ jsxs(
|
|
2294
|
+
"svg",
|
|
2295
|
+
{
|
|
2296
|
+
className: "h-4 w-4",
|
|
2297
|
+
fill: "none",
|
|
2298
|
+
viewBox: "0 0 24 24",
|
|
2299
|
+
stroke: "currentColor",
|
|
2300
|
+
strokeWidth: "1.5",
|
|
2301
|
+
children: [
|
|
2302
|
+
/* @__PURE__ */ jsx(
|
|
2303
|
+
"path",
|
|
2304
|
+
{
|
|
2305
|
+
strokeLinecap: "round",
|
|
2306
|
+
strokeLinejoin: "round",
|
|
2307
|
+
d: "M15 10.5a3 3 0 11-6 0 3 3 0 016 0z"
|
|
2308
|
+
}
|
|
2309
|
+
),
|
|
2310
|
+
/* @__PURE__ */ jsx(
|
|
2311
|
+
"path",
|
|
2312
|
+
{
|
|
2313
|
+
strokeLinecap: "round",
|
|
2314
|
+
strokeLinejoin: "round",
|
|
2315
|
+
d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z"
|
|
2316
|
+
}
|
|
2317
|
+
)
|
|
2318
|
+
]
|
|
2319
|
+
}
|
|
2320
|
+
),
|
|
2289
2321
|
// Default tool icon
|
|
2290
2322
|
default: /* @__PURE__ */ jsx(
|
|
2291
2323
|
"svg",
|
|
@@ -2389,6 +2421,34 @@ function ResourceLink({ link, onClick, className }) {
|
|
|
2389
2421
|
)
|
|
2390
2422
|
}
|
|
2391
2423
|
),
|
|
2424
|
+
provider: /* @__PURE__ */ jsxs(
|
|
2425
|
+
"svg",
|
|
2426
|
+
{
|
|
2427
|
+
className: "h-4 w-4",
|
|
2428
|
+
fill: "none",
|
|
2429
|
+
viewBox: "0 0 24 24",
|
|
2430
|
+
stroke: "currentColor",
|
|
2431
|
+
strokeWidth: "1.5",
|
|
2432
|
+
children: [
|
|
2433
|
+
/* @__PURE__ */ jsx(
|
|
2434
|
+
"path",
|
|
2435
|
+
{
|
|
2436
|
+
strokeLinecap: "round",
|
|
2437
|
+
strokeLinejoin: "round",
|
|
2438
|
+
d: "M15 10.5a3 3 0 11-6 0 3 3 0 016 0z"
|
|
2439
|
+
}
|
|
2440
|
+
),
|
|
2441
|
+
/* @__PURE__ */ jsx(
|
|
2442
|
+
"path",
|
|
2443
|
+
{
|
|
2444
|
+
strokeLinecap: "round",
|
|
2445
|
+
strokeLinejoin: "round",
|
|
2446
|
+
d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z"
|
|
2447
|
+
}
|
|
2448
|
+
)
|
|
2449
|
+
]
|
|
2450
|
+
}
|
|
2451
|
+
),
|
|
2392
2452
|
external: /* @__PURE__ */ jsx(
|
|
2393
2453
|
"svg",
|
|
2394
2454
|
{
|
|
@@ -2575,7 +2635,8 @@ var TOOL_FRIENDLY_NAMES = {
|
|
|
2575
2635
|
search_documents: "Searching documents",
|
|
2576
2636
|
create_order: "Creating order",
|
|
2577
2637
|
send_message: "Sending message",
|
|
2578
|
-
search: "Searching"
|
|
2638
|
+
search: "Searching",
|
|
2639
|
+
search_providers: "Searching for providers"
|
|
2579
2640
|
};
|
|
2580
2641
|
function getToolFriendlyName(toolName, status) {
|
|
2581
2642
|
const baseName = TOOL_FRIENDLY_NAMES[toolName] || toolName.replace(/_/g, " ");
|
|
@@ -2584,8 +2645,10 @@ function getToolFriendlyName(toolName, status) {
|
|
|
2584
2645
|
return baseName.replace("Creating", "Created");
|
|
2585
2646
|
if (baseName.startsWith("Scheduling"))
|
|
2586
2647
|
return baseName.replace("Scheduling", "Scheduled");
|
|
2648
|
+
if (baseName.startsWith("Searching for"))
|
|
2649
|
+
return baseName.replace("Searching for", "Found");
|
|
2587
2650
|
if (baseName.startsWith("Searching"))
|
|
2588
|
-
return baseName.replace("Searching", "
|
|
2651
|
+
return baseName.replace("Searching", "Found");
|
|
2589
2652
|
if (baseName.startsWith("Looking"))
|
|
2590
2653
|
return baseName.replace("Looking", "Found");
|
|
2591
2654
|
if (baseName.startsWith("Updating"))
|
|
@@ -2615,6 +2678,10 @@ function getParameterSummary(toolName, params) {
|
|
|
2615
2678
|
const date = paramMap.preferredDate || paramMap.date;
|
|
2616
2679
|
return date ? `${paramMap.patientName} on ${date}` : String(paramMap.patientName);
|
|
2617
2680
|
}
|
|
2681
|
+
if (toolName === "search_providers" && paramMap.zipcode) {
|
|
2682
|
+
const service = paramMap.service;
|
|
2683
|
+
return service ? `${service} near ${paramMap.zipcode}` : `near ${paramMap.zipcode}`;
|
|
2684
|
+
}
|
|
2618
2685
|
return null;
|
|
2619
2686
|
}
|
|
2620
2687
|
function MCPToolCallDisplay({
|
|
@@ -7839,6 +7906,8 @@ function CheckrIntegration({
|
|
|
7839
7906
|
onDisconnect,
|
|
7840
7907
|
onInviteCandidate,
|
|
7841
7908
|
onViewReport,
|
|
7909
|
+
onViewSelected,
|
|
7910
|
+
onExportSelected,
|
|
7842
7911
|
onRefresh,
|
|
7843
7912
|
loading = false,
|
|
7844
7913
|
error,
|
|
@@ -7865,7 +7934,10 @@ function CheckrIntegration({
|
|
|
7865
7934
|
phone = "Phone",
|
|
7866
7935
|
package: packageLabel = "Package",
|
|
7867
7936
|
submit = "Send Invitation",
|
|
7868
|
-
cancel = "Cancel"
|
|
7937
|
+
cancel = "Cancel",
|
|
7938
|
+
exportSelected = "Export Selected",
|
|
7939
|
+
viewDetails = "View Details",
|
|
7940
|
+
noReportsSelected = "No reports selected"
|
|
7869
7941
|
} = labels;
|
|
7870
7942
|
const [showInviteModal, setShowInviteModal] = React46.useState(false);
|
|
7871
7943
|
const [candidateName, setCandidateName] = React46.useState("");
|
|
@@ -7874,6 +7946,12 @@ function CheckrIntegration({
|
|
|
7874
7946
|
const [selectedPackage, setSelectedPackage] = React46.useState(
|
|
7875
7947
|
packages[0]?.id || ""
|
|
7876
7948
|
);
|
|
7949
|
+
const [selectedReports, setSelectedReports] = React46.useState(
|
|
7950
|
+
/* @__PURE__ */ new Set()
|
|
7951
|
+
);
|
|
7952
|
+
React46.useEffect(() => {
|
|
7953
|
+
setSelectedReports(/* @__PURE__ */ new Set());
|
|
7954
|
+
}, [reports, connected]);
|
|
7877
7955
|
const statusLabels = {
|
|
7878
7956
|
pending,
|
|
7879
7957
|
running,
|
|
@@ -7886,18 +7964,44 @@ function CheckrIntegration({
|
|
|
7886
7964
|
consider,
|
|
7887
7965
|
adverse_action: adverseAction
|
|
7888
7966
|
};
|
|
7889
|
-
const
|
|
7890
|
-
pending: "
|
|
7891
|
-
running: "
|
|
7892
|
-
complete: "
|
|
7893
|
-
failed: "
|
|
7894
|
-
expired: "
|
|
7895
|
-
};
|
|
7896
|
-
const
|
|
7897
|
-
clear: "text-
|
|
7898
|
-
consider: "text-
|
|
7899
|
-
adverse_action: "text-
|
|
7900
|
-
};
|
|
7967
|
+
const statusStyles = {
|
|
7968
|
+
pending: "border-warning text-warning bg-warning/10",
|
|
7969
|
+
running: "border-warning text-warning bg-warning/10",
|
|
7970
|
+
complete: "border-success text-success bg-success/10",
|
|
7971
|
+
failed: "border-destructive text-destructive bg-destructive/10",
|
|
7972
|
+
expired: "border-muted-foreground text-muted-foreground bg-muted"
|
|
7973
|
+
};
|
|
7974
|
+
const resultStyles = {
|
|
7975
|
+
clear: "text-success",
|
|
7976
|
+
consider: "text-warning",
|
|
7977
|
+
adverse_action: "text-destructive"
|
|
7978
|
+
};
|
|
7979
|
+
const statusDotColors = {
|
|
7980
|
+
pending: "bg-warning",
|
|
7981
|
+
running: "bg-warning",
|
|
7982
|
+
complete: "bg-success",
|
|
7983
|
+
failed: "bg-destructive",
|
|
7984
|
+
expired: "bg-muted-foreground"
|
|
7985
|
+
};
|
|
7986
|
+
const statusCounts = React46.useMemo(() => {
|
|
7987
|
+
const counts = {
|
|
7988
|
+
pending: 0,
|
|
7989
|
+
running: 0,
|
|
7990
|
+
complete: 0,
|
|
7991
|
+
failed: 0,
|
|
7992
|
+
expired: 0
|
|
7993
|
+
};
|
|
7994
|
+
reports.forEach((report) => {
|
|
7995
|
+
if (counts[report.status] !== void 0) {
|
|
7996
|
+
counts[report.status]++;
|
|
7997
|
+
}
|
|
7998
|
+
});
|
|
7999
|
+
return counts;
|
|
8000
|
+
}, [reports]);
|
|
8001
|
+
const packageOptions = packages.map((pkg) => ({
|
|
8002
|
+
value: pkg.id,
|
|
8003
|
+
label: pkg.name
|
|
8004
|
+
}));
|
|
7901
8005
|
const handleInviteSubmit = (e) => {
|
|
7902
8006
|
e.preventDefault();
|
|
7903
8007
|
if (candidateName && candidateEmail && selectedPackage) {
|
|
@@ -7915,6 +8019,29 @@ function CheckrIntegration({
|
|
|
7915
8019
|
setCandidatePhone("");
|
|
7916
8020
|
}
|
|
7917
8021
|
};
|
|
8022
|
+
const handleToggleReport = (reportId) => {
|
|
8023
|
+
setSelectedReports((prev) => {
|
|
8024
|
+
const next = new Set(prev);
|
|
8025
|
+
if (next.has(reportId)) {
|
|
8026
|
+
next.delete(reportId);
|
|
8027
|
+
} else {
|
|
8028
|
+
next.add(reportId);
|
|
8029
|
+
}
|
|
8030
|
+
return next;
|
|
8031
|
+
});
|
|
8032
|
+
};
|
|
8033
|
+
const handleViewSelected = () => {
|
|
8034
|
+
const selected = reports.filter((r) => selectedReports.has(r.id));
|
|
8035
|
+
if (onViewSelected) {
|
|
8036
|
+
onViewSelected(selected);
|
|
8037
|
+
} else if (selected.length === 1 && onViewReport) {
|
|
8038
|
+
onViewReport(selected[0]);
|
|
8039
|
+
}
|
|
8040
|
+
};
|
|
8041
|
+
const handleExportSelected = () => {
|
|
8042
|
+
const selected = reports.filter((r) => selectedReports.has(r.id));
|
|
8043
|
+
onExportSelected?.(selected);
|
|
8044
|
+
};
|
|
7918
8045
|
const formatDate4 = (date) => {
|
|
7919
8046
|
if (!date) return "";
|
|
7920
8047
|
const d = typeof date === "string" ? new Date(date) : date;
|
|
@@ -7923,9 +8050,26 @@ function CheckrIntegration({
|
|
|
7923
8050
|
return /* @__PURE__ */ jsxs("div", { className: cn("checkr-integration", className), children: [
|
|
7924
8051
|
/* @__PURE__ */ jsxs("div", { className: "mb-6 flex items-center justify-between", children: [
|
|
7925
8052
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7926
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-lg
|
|
8053
|
+
/* @__PURE__ */ jsx("div", { className: "bg-success/10 flex h-12 w-12 items-center justify-center rounded-lg", children: /* @__PURE__ */ jsx(
|
|
8054
|
+
"svg",
|
|
8055
|
+
{
|
|
8056
|
+
className: "text-success h-6 w-6",
|
|
8057
|
+
fill: "none",
|
|
8058
|
+
viewBox: "0 0 24 24",
|
|
8059
|
+
stroke: "currentColor",
|
|
8060
|
+
strokeWidth: 2,
|
|
8061
|
+
children: /* @__PURE__ */ jsx(
|
|
8062
|
+
"path",
|
|
8063
|
+
{
|
|
8064
|
+
strokeLinecap: "round",
|
|
8065
|
+
strokeLinejoin: "round",
|
|
8066
|
+
d: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"
|
|
8067
|
+
}
|
|
8068
|
+
)
|
|
8069
|
+
}
|
|
8070
|
+
) }),
|
|
7927
8071
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
7928
|
-
/* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold", children: "Checkr" }),
|
|
8072
|
+
/* @__PURE__ */ jsx("h3", { className: "text-foreground text-lg font-semibold", children: "Checkr" }),
|
|
7929
8073
|
connected && account?.name && /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground text-sm", children: [
|
|
7930
8074
|
account.name,
|
|
7931
8075
|
account.plan && /* @__PURE__ */ jsxs("span", { className: "ml-2 text-xs", children: [
|
|
@@ -7936,78 +8080,164 @@ function CheckrIntegration({
|
|
|
7936
8080
|
] })
|
|
7937
8081
|
] })
|
|
7938
8082
|
] }),
|
|
7939
|
-
connected ? /* @__PURE__ */ jsx(
|
|
7940
|
-
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7944
|
-
|
|
7945
|
-
|
|
7946
|
-
|
|
7947
|
-
|
|
7948
|
-
|
|
8083
|
+
connected ? /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: onDisconnect, children: disconnect }) : /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: onConnect, children: [
|
|
8084
|
+
/* @__PURE__ */ jsx(
|
|
8085
|
+
"svg",
|
|
8086
|
+
{
|
|
8087
|
+
className: "mr-2 h-4 w-4",
|
|
8088
|
+
fill: "none",
|
|
8089
|
+
viewBox: "0 0 24 24",
|
|
8090
|
+
stroke: "currentColor",
|
|
8091
|
+
strokeWidth: 2,
|
|
8092
|
+
children: /* @__PURE__ */ jsx(
|
|
8093
|
+
"path",
|
|
8094
|
+
{
|
|
8095
|
+
strokeLinecap: "round",
|
|
8096
|
+
strokeLinejoin: "round",
|
|
8097
|
+
d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
|
|
8098
|
+
}
|
|
8099
|
+
)
|
|
8100
|
+
}
|
|
8101
|
+
),
|
|
8102
|
+
connect
|
|
8103
|
+
] })
|
|
8104
|
+
] }),
|
|
8105
|
+
error && /* @__PURE__ */ jsxs("div", { className: "bg-destructive/10 border-destructive/20 text-destructive mb-4 rounded-lg border p-4", children: [
|
|
8106
|
+
/* @__PURE__ */ jsx(
|
|
8107
|
+
"svg",
|
|
7949
8108
|
{
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
8109
|
+
className: "mr-2 inline-block h-4 w-4",
|
|
8110
|
+
fill: "none",
|
|
8111
|
+
viewBox: "0 0 24 24",
|
|
8112
|
+
stroke: "currentColor",
|
|
8113
|
+
strokeWidth: 2,
|
|
8114
|
+
children: /* @__PURE__ */ jsx(
|
|
8115
|
+
"path",
|
|
8116
|
+
{
|
|
8117
|
+
strokeLinecap: "round",
|
|
8118
|
+
strokeLinejoin: "round",
|
|
8119
|
+
d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
|
8120
|
+
}
|
|
8121
|
+
)
|
|
7957
8122
|
}
|
|
7958
|
-
)
|
|
7959
|
-
] }),
|
|
7960
|
-
error && /* @__PURE__ */ jsxs("div", { className: "mb-4 rounded-lg border border-red-200 bg-red-50 p-4 text-red-600", children: [
|
|
7961
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-exclamation-circle mr-2" }),
|
|
8123
|
+
),
|
|
7962
8124
|
error
|
|
7963
8125
|
] }),
|
|
7964
8126
|
connected && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7965
|
-
/* @__PURE__ */
|
|
7966
|
-
/* @__PURE__ */
|
|
7967
|
-
"
|
|
8127
|
+
reports.length > 0 && /* @__PURE__ */ jsx("div", { className: "text-muted-foreground mb-4 flex flex-wrap items-center gap-4 text-sm", children: Object.entries(statusCounts).filter(([, count]) => count > 0).map(([status, count]) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
8128
|
+
/* @__PURE__ */ jsx(
|
|
8129
|
+
"span",
|
|
7968
8130
|
{
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-user-plus mr-2" }),
|
|
7974
|
-
inviteCandidate
|
|
7975
|
-
]
|
|
8131
|
+
className: cn(
|
|
8132
|
+
"h-2.5 w-2.5 rounded-full",
|
|
8133
|
+
statusDotColors[status]
|
|
8134
|
+
)
|
|
7976
8135
|
}
|
|
7977
8136
|
),
|
|
7978
|
-
/* @__PURE__ */ jsxs(
|
|
7979
|
-
|
|
7980
|
-
|
|
7981
|
-
|
|
7982
|
-
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
|
|
7986
|
-
|
|
7987
|
-
|
|
7988
|
-
|
|
7989
|
-
|
|
8137
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
8138
|
+
count,
|
|
8139
|
+
" ",
|
|
8140
|
+
statusLabels[status]?.toLowerCase()
|
|
8141
|
+
] })
|
|
8142
|
+
] }, status)) }),
|
|
8143
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-6 flex flex-wrap gap-3", children: [
|
|
8144
|
+
/* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: () => setShowInviteModal(true), children: [
|
|
8145
|
+
/* @__PURE__ */ jsx(
|
|
8146
|
+
"svg",
|
|
8147
|
+
{
|
|
8148
|
+
className: "mr-2 h-4 w-4",
|
|
8149
|
+
fill: "none",
|
|
8150
|
+
viewBox: "0 0 24 24",
|
|
8151
|
+
stroke: "currentColor",
|
|
8152
|
+
strokeWidth: 2,
|
|
8153
|
+
children: /* @__PURE__ */ jsx(
|
|
8154
|
+
"path",
|
|
8155
|
+
{
|
|
8156
|
+
strokeLinecap: "round",
|
|
8157
|
+
strokeLinejoin: "round",
|
|
8158
|
+
d: "M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z"
|
|
8159
|
+
}
|
|
8160
|
+
)
|
|
8161
|
+
}
|
|
8162
|
+
),
|
|
8163
|
+
inviteCandidate
|
|
8164
|
+
] }),
|
|
8165
|
+
/* @__PURE__ */ jsxs(Button, { variant: "outline", onClick: onRefresh, children: [
|
|
8166
|
+
/* @__PURE__ */ jsx(
|
|
8167
|
+
"svg",
|
|
8168
|
+
{
|
|
8169
|
+
className: "mr-2 h-4 w-4",
|
|
8170
|
+
fill: "none",
|
|
8171
|
+
viewBox: "0 0 24 24",
|
|
8172
|
+
stroke: "currentColor",
|
|
8173
|
+
strokeWidth: 2,
|
|
8174
|
+
children: /* @__PURE__ */ jsx(
|
|
8175
|
+
"path",
|
|
8176
|
+
{
|
|
8177
|
+
strokeLinecap: "round",
|
|
8178
|
+
strokeLinejoin: "round",
|
|
8179
|
+
d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
|
|
8180
|
+
}
|
|
8181
|
+
)
|
|
8182
|
+
}
|
|
8183
|
+
),
|
|
8184
|
+
refresh
|
|
8185
|
+
] })
|
|
7990
8186
|
] }),
|
|
7991
|
-
/* @__PURE__ */ jsxs("div", { className: "rounded-lg border", children: [
|
|
7992
|
-
/* @__PURE__ */ jsx("div", { className: "border-
|
|
7993
|
-
loading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx("div", { className: "border-primary h-8 w-8 animate-spin rounded-full border-4 border-t-transparent" }) }) : reports.length > 0 ? /* @__PURE__ */
|
|
7994
|
-
"div",
|
|
7995
|
-
|
|
7996
|
-
|
|
7997
|
-
|
|
7998
|
-
|
|
7999
|
-
/* @__PURE__ */
|
|
8000
|
-
|
|
8001
|
-
|
|
8002
|
-
|
|
8003
|
-
|
|
8187
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-card border-border overflow-hidden rounded-lg border", children: [
|
|
8188
|
+
/* @__PURE__ */ jsx("div", { className: "border-border border-b px-4 py-3", children: /* @__PURE__ */ jsx("h4", { className: "text-card-foreground font-medium", children: viewReports }) }),
|
|
8189
|
+
loading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx("div", { className: "border-primary h-8 w-8 animate-spin rounded-full border-4 border-t-transparent" }) }) : reports.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8190
|
+
/* @__PURE__ */ jsx("div", { className: "divide-border divide-y", children: reports.map((report) => /* @__PURE__ */ jsxs(
|
|
8191
|
+
"div",
|
|
8192
|
+
{
|
|
8193
|
+
className: "hover:bg-muted/50 flex items-center justify-between px-4 py-4 transition-colors",
|
|
8194
|
+
children: [
|
|
8195
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
8196
|
+
/* @__PURE__ */ jsx(
|
|
8197
|
+
"button",
|
|
8198
|
+
{
|
|
8199
|
+
type: "button",
|
|
8200
|
+
onClick: () => handleToggleReport(report.id),
|
|
8201
|
+
className: cn(
|
|
8202
|
+
"flex h-5 w-5 shrink-0 items-center justify-center rounded border-2 transition-colors",
|
|
8203
|
+
selectedReports.has(report.id) ? "border-primary bg-primary" : "border-muted-foreground/40 hover:border-muted-foreground"
|
|
8204
|
+
),
|
|
8205
|
+
"aria-label": `Select ${report.candidate.name}`,
|
|
8206
|
+
"aria-checked": selectedReports.has(report.id),
|
|
8207
|
+
role: "checkbox",
|
|
8208
|
+
children: selectedReports.has(report.id) && /* @__PURE__ */ jsx(
|
|
8209
|
+
"svg",
|
|
8210
|
+
{
|
|
8211
|
+
className: "text-primary-foreground h-3 w-3",
|
|
8212
|
+
fill: "none",
|
|
8213
|
+
viewBox: "0 0 24 24",
|
|
8214
|
+
stroke: "currentColor",
|
|
8215
|
+
strokeWidth: 3,
|
|
8216
|
+
children: /* @__PURE__ */ jsx(
|
|
8217
|
+
"path",
|
|
8218
|
+
{
|
|
8219
|
+
strokeLinecap: "round",
|
|
8220
|
+
strokeLinejoin: "round",
|
|
8221
|
+
d: "M5 13l4 4L19 7"
|
|
8222
|
+
}
|
|
8223
|
+
)
|
|
8224
|
+
}
|
|
8225
|
+
)
|
|
8226
|
+
}
|
|
8227
|
+
),
|
|
8228
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
8229
|
+
/* @__PURE__ */ jsx("p", { className: "text-card-foreground font-medium", children: report.candidate.name }),
|
|
8230
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: report.candidate.email }),
|
|
8231
|
+
report.packageName && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: report.packageName })
|
|
8232
|
+
] })
|
|
8233
|
+
] }),
|
|
8004
8234
|
/* @__PURE__ */ jsxs("div", { className: "text-right", children: [
|
|
8005
8235
|
/* @__PURE__ */ jsx(
|
|
8006
8236
|
"span",
|
|
8007
8237
|
{
|
|
8008
8238
|
className: cn(
|
|
8009
|
-
"inline-block rounded-full px-
|
|
8010
|
-
|
|
8239
|
+
"inline-block rounded-full border px-3 py-0.5 text-xs font-medium",
|
|
8240
|
+
statusStyles[report.status]
|
|
8011
8241
|
),
|
|
8012
8242
|
children: statusLabels[report.status] || report.status
|
|
8013
8243
|
}
|
|
@@ -8017,136 +8247,163 @@ function CheckrIntegration({
|
|
|
8017
8247
|
{
|
|
8018
8248
|
className: cn(
|
|
8019
8249
|
"mt-1 text-sm font-medium",
|
|
8020
|
-
|
|
8250
|
+
resultStyles[report.result]
|
|
8021
8251
|
),
|
|
8022
8252
|
children: resultLabels[report.result] || report.result
|
|
8023
8253
|
}
|
|
8024
8254
|
),
|
|
8025
|
-
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: formatDate4(report.completedAt || report.createdAt) })
|
|
8026
|
-
] })
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
children: /* @__PURE__ */ jsx("i", { className: "fas fa-external-link-alt text-gray-600" })
|
|
8035
|
-
}
|
|
8036
|
-
)
|
|
8037
|
-
] })
|
|
8038
|
-
]
|
|
8039
|
-
},
|
|
8040
|
-
report.id
|
|
8041
|
-
)) }) : /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground py-8 text-center", children: [
|
|
8042
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-clipboard-list mb-2 text-3xl text-gray-300" }),
|
|
8043
|
-
/* @__PURE__ */ jsx("p", { children: noReports })
|
|
8044
|
-
] })
|
|
8045
|
-
] })
|
|
8046
|
-
] }),
|
|
8047
|
-
!connected && !error && /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-dashed p-8 text-center", children: [
|
|
8048
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-link-slash mb-4 text-4xl text-gray-300" }),
|
|
8049
|
-
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-4", children: "Connect your Checkr account to run background checks on candidates" }),
|
|
8050
|
-
/* @__PURE__ */ jsxs(
|
|
8051
|
-
"button",
|
|
8052
|
-
{
|
|
8053
|
-
type: "button",
|
|
8054
|
-
onClick: onConnect,
|
|
8055
|
-
className: "rounded-lg bg-emerald-600 px-6 py-2 text-white hover:bg-emerald-700",
|
|
8056
|
-
children: [
|
|
8057
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-link mr-2" }),
|
|
8058
|
-
connect
|
|
8059
|
-
]
|
|
8060
|
-
}
|
|
8061
|
-
)
|
|
8062
|
-
] }),
|
|
8063
|
-
showInviteModal && /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
|
|
8064
|
-
/* @__PURE__ */ jsx(
|
|
8065
|
-
"div",
|
|
8066
|
-
{
|
|
8067
|
-
role: "button",
|
|
8068
|
-
tabIndex: 0,
|
|
8069
|
-
"aria-label": "Close modal",
|
|
8070
|
-
className: "fixed inset-0 bg-black/50",
|
|
8071
|
-
onClick: () => setShowInviteModal(false),
|
|
8072
|
-
onKeyDown: (e) => e.key === "Enter" && setShowInviteModal(false)
|
|
8073
|
-
}
|
|
8074
|
-
),
|
|
8075
|
-
/* @__PURE__ */ jsxs("div", { className: "relative z-10 w-full max-w-md rounded-xl bg-white p-6 shadow-xl", children: [
|
|
8076
|
-
/* @__PURE__ */ jsx("h3", { className: "mb-4 text-lg font-semibold", children: inviteCandidate }),
|
|
8077
|
-
/* @__PURE__ */ jsxs("form", { onSubmit: handleInviteSubmit, children: [
|
|
8078
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
8079
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
8080
|
-
/* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium", children: name }),
|
|
8081
|
-
/* @__PURE__ */ jsx(
|
|
8082
|
-
"input",
|
|
8083
|
-
{
|
|
8084
|
-
type: "text",
|
|
8085
|
-
value: candidateName,
|
|
8086
|
-
onChange: (e) => setCandidateName(e.target.value),
|
|
8087
|
-
className: "w-full rounded-lg border border-gray-300 px-3 py-2",
|
|
8088
|
-
required: true
|
|
8089
|
-
}
|
|
8090
|
-
)
|
|
8091
|
-
] }),
|
|
8092
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
8093
|
-
/* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium", children: email }),
|
|
8255
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: formatDate4(report.completedAt || report.createdAt) })
|
|
8256
|
+
] })
|
|
8257
|
+
]
|
|
8258
|
+
},
|
|
8259
|
+
report.id
|
|
8260
|
+
)) }),
|
|
8261
|
+
/* @__PURE__ */ jsxs("div", { className: "border-border bg-muted/30 flex items-center justify-between border-t px-4 py-3", children: [
|
|
8262
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm", children: selectedReports.size > 0 ? `${selectedReports.size} report${selectedReports.size > 1 ? "s" : ""} selected` : noReportsSelected }),
|
|
8263
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
8094
8264
|
/* @__PURE__ */ jsx(
|
|
8095
|
-
|
|
8265
|
+
Button,
|
|
8096
8266
|
{
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8267
|
+
variant: "outline",
|
|
8268
|
+
size: "sm",
|
|
8269
|
+
onClick: handleExportSelected,
|
|
8270
|
+
disabled: selectedReports.size === 0,
|
|
8271
|
+
children: exportSelected
|
|
8102
8272
|
}
|
|
8103
|
-
)
|
|
8104
|
-
] }),
|
|
8105
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
8106
|
-
/* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium", children: phone }),
|
|
8273
|
+
),
|
|
8107
8274
|
/* @__PURE__ */ jsx(
|
|
8108
|
-
|
|
8275
|
+
Button,
|
|
8109
8276
|
{
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8113
|
-
|
|
8277
|
+
variant: "primary",
|
|
8278
|
+
size: "sm",
|
|
8279
|
+
onClick: handleViewSelected,
|
|
8280
|
+
disabled: selectedReports.size === 0,
|
|
8281
|
+
children: viewDetails
|
|
8114
8282
|
}
|
|
8115
8283
|
)
|
|
8116
|
-
] })
|
|
8117
|
-
|
|
8118
|
-
|
|
8119
|
-
|
|
8120
|
-
|
|
8284
|
+
] })
|
|
8285
|
+
] })
|
|
8286
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground py-8 text-center", children: [
|
|
8287
|
+
/* @__PURE__ */ jsx(
|
|
8288
|
+
"svg",
|
|
8289
|
+
{
|
|
8290
|
+
className: "text-muted-foreground/30 mx-auto mb-2 h-12 w-12",
|
|
8291
|
+
fill: "none",
|
|
8292
|
+
viewBox: "0 0 24 24",
|
|
8293
|
+
stroke: "currentColor",
|
|
8294
|
+
strokeWidth: 1,
|
|
8295
|
+
children: /* @__PURE__ */ jsx(
|
|
8296
|
+
"path",
|
|
8121
8297
|
{
|
|
8122
|
-
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
required: true,
|
|
8126
|
-
children: packages.map((pkg) => /* @__PURE__ */ jsx("option", { value: pkg.id, children: pkg.name }, pkg.id))
|
|
8298
|
+
strokeLinecap: "round",
|
|
8299
|
+
strokeLinejoin: "round",
|
|
8300
|
+
d: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
|
|
8127
8301
|
}
|
|
8128
8302
|
)
|
|
8129
|
-
|
|
8130
|
-
|
|
8131
|
-
/* @__PURE__ */
|
|
8132
|
-
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
|
|
8138
|
-
|
|
8139
|
-
|
|
8140
|
-
|
|
8141
|
-
|
|
8142
|
-
|
|
8303
|
+
}
|
|
8304
|
+
),
|
|
8305
|
+
/* @__PURE__ */ jsx("p", { children: noReports })
|
|
8306
|
+
] })
|
|
8307
|
+
] })
|
|
8308
|
+
] }),
|
|
8309
|
+
!connected && !error && /* @__PURE__ */ jsxs("div", { className: "border-border rounded-lg border border-dashed p-8 text-center", children: [
|
|
8310
|
+
/* @__PURE__ */ jsx(
|
|
8311
|
+
"svg",
|
|
8312
|
+
{
|
|
8313
|
+
className: "text-muted-foreground/30 mx-auto mb-4 h-12 w-12",
|
|
8314
|
+
fill: "none",
|
|
8315
|
+
viewBox: "0 0 24 24",
|
|
8316
|
+
stroke: "currentColor",
|
|
8317
|
+
strokeWidth: 1,
|
|
8318
|
+
children: /* @__PURE__ */ jsx(
|
|
8319
|
+
"path",
|
|
8320
|
+
{
|
|
8321
|
+
strokeLinecap: "round",
|
|
8322
|
+
strokeLinejoin: "round",
|
|
8323
|
+
d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
|
|
8324
|
+
}
|
|
8325
|
+
)
|
|
8326
|
+
}
|
|
8327
|
+
),
|
|
8328
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-4", children: "Connect your Checkr account to run background checks on candidates" }),
|
|
8329
|
+
/* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: onConnect, children: [
|
|
8330
|
+
/* @__PURE__ */ jsx(
|
|
8331
|
+
"svg",
|
|
8332
|
+
{
|
|
8333
|
+
className: "mr-2 h-4 w-4",
|
|
8334
|
+
fill: "none",
|
|
8335
|
+
viewBox: "0 0 24 24",
|
|
8336
|
+
stroke: "currentColor",
|
|
8337
|
+
strokeWidth: 2,
|
|
8338
|
+
children: /* @__PURE__ */ jsx(
|
|
8339
|
+
"path",
|
|
8143
8340
|
{
|
|
8144
|
-
|
|
8145
|
-
|
|
8146
|
-
|
|
8341
|
+
strokeLinecap: "round",
|
|
8342
|
+
strokeLinejoin: "round",
|
|
8343
|
+
d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
|
|
8147
8344
|
}
|
|
8148
8345
|
)
|
|
8149
|
-
|
|
8346
|
+
}
|
|
8347
|
+
),
|
|
8348
|
+
connect
|
|
8349
|
+
] })
|
|
8350
|
+
] }),
|
|
8351
|
+
/* @__PURE__ */ jsxs(Modal, { open: showInviteModal, onOpenChange: setShowInviteModal, size: "md", children: [
|
|
8352
|
+
/* @__PURE__ */ jsxs(ModalHeader, { children: [
|
|
8353
|
+
/* @__PURE__ */ jsx(ModalTitle, { children: inviteCandidate }),
|
|
8354
|
+
/* @__PURE__ */ jsx(ModalClose, {})
|
|
8355
|
+
] }),
|
|
8356
|
+
/* @__PURE__ */ jsxs("form", { onSubmit: handleInviteSubmit, children: [
|
|
8357
|
+
/* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
8358
|
+
/* @__PURE__ */ jsx(
|
|
8359
|
+
Input,
|
|
8360
|
+
{
|
|
8361
|
+
label: name,
|
|
8362
|
+
value: candidateName,
|
|
8363
|
+
onChange: (e) => setCandidateName(e.target.value),
|
|
8364
|
+
required: true
|
|
8365
|
+
}
|
|
8366
|
+
),
|
|
8367
|
+
/* @__PURE__ */ jsx(
|
|
8368
|
+
Input,
|
|
8369
|
+
{
|
|
8370
|
+
label: email,
|
|
8371
|
+
type: "email",
|
|
8372
|
+
value: candidateEmail,
|
|
8373
|
+
onChange: (e) => setCandidateEmail(e.target.value),
|
|
8374
|
+
required: true
|
|
8375
|
+
}
|
|
8376
|
+
),
|
|
8377
|
+
/* @__PURE__ */ jsx(
|
|
8378
|
+
Input,
|
|
8379
|
+
{
|
|
8380
|
+
label: phone,
|
|
8381
|
+
type: "tel",
|
|
8382
|
+
value: candidatePhone,
|
|
8383
|
+
onChange: (e) => setCandidatePhone(e.target.value)
|
|
8384
|
+
}
|
|
8385
|
+
),
|
|
8386
|
+
/* @__PURE__ */ jsx(
|
|
8387
|
+
Select,
|
|
8388
|
+
{
|
|
8389
|
+
label: packageLabel,
|
|
8390
|
+
options: packageOptions,
|
|
8391
|
+
value: selectedPackage,
|
|
8392
|
+
onValueChange: setSelectedPackage
|
|
8393
|
+
}
|
|
8394
|
+
)
|
|
8395
|
+
] }) }),
|
|
8396
|
+
/* @__PURE__ */ jsxs(ModalFooter, { children: [
|
|
8397
|
+
/* @__PURE__ */ jsx(
|
|
8398
|
+
Button,
|
|
8399
|
+
{
|
|
8400
|
+
type: "button",
|
|
8401
|
+
variant: "outline",
|
|
8402
|
+
onClick: () => setShowInviteModal(false),
|
|
8403
|
+
children: cancel
|
|
8404
|
+
}
|
|
8405
|
+
),
|
|
8406
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", variant: "primary", children: submit })
|
|
8150
8407
|
] })
|
|
8151
8408
|
] })
|
|
8152
8409
|
] })
|
|
@@ -9275,10 +9532,6 @@ function CSVColumnMapper({
|
|
|
9275
9532
|
includeAll = "Include All",
|
|
9276
9533
|
ignoreUncompleted = "Ignore Uncompleted",
|
|
9277
9534
|
import: importLabel = "Import",
|
|
9278
|
-
ignore = "Ignore",
|
|
9279
|
-
include = "Include",
|
|
9280
|
-
incomingSample = "Incoming Sample",
|
|
9281
|
-
fieldType = "Field Type",
|
|
9282
9535
|
ensureAccurateData = "Ensure Accurate Employee Data",
|
|
9283
9536
|
ensureAccurateDataDescription = "Existing employee profiles will be automatically updated.",
|
|
9284
9537
|
instructions = "Map each column from your CSV to the corresponding employee field."
|
|
@@ -9287,13 +9540,13 @@ function CSVColumnMapper({
|
|
|
9287
9540
|
return [name, ...parts].join("-").replace(/[^a-zA-Z0-9-]/g, "-").toLowerCase();
|
|
9288
9541
|
};
|
|
9289
9542
|
return /* @__PURE__ */ jsxs("div", { className: cn("csv-column-mapper", className), children: [
|
|
9290
|
-
importing && /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center
|
|
9291
|
-
/* @__PURE__ */ jsx("div", { className: "bg-primary p-4
|
|
9543
|
+
importing && /* @__PURE__ */ jsx("div", { className: "bg-foreground/50 fixed inset-0 z-50 flex items-center justify-center", children: /* @__PURE__ */ jsxs("div", { className: "bg-card text-card-foreground w-full max-w-lg rounded-lg shadow-xl", children: [
|
|
9544
|
+
/* @__PURE__ */ jsx("div", { className: "bg-primary text-primary-foreground p-4", children: /* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold", children: "Processing Employees" }) }),
|
|
9292
9545
|
/* @__PURE__ */ jsxs("div", { className: "p-6", children: [
|
|
9293
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-full overflow-hidden rounded-full
|
|
9546
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-4 w-full overflow-hidden rounded-full", children: /* @__PURE__ */ jsx(
|
|
9294
9547
|
"div",
|
|
9295
9548
|
{
|
|
9296
|
-
className: "h-full
|
|
9549
|
+
className: "bg-success h-full transition-all duration-300",
|
|
9297
9550
|
style: { width: `${importProgress}%` }
|
|
9298
9551
|
}
|
|
9299
9552
|
) }),
|
|
@@ -9305,36 +9558,36 @@ function CSVColumnMapper({
|
|
|
9305
9558
|
] }) }),
|
|
9306
9559
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 flex flex-wrap gap-2", children: [
|
|
9307
9560
|
/* @__PURE__ */ jsx(
|
|
9308
|
-
|
|
9561
|
+
Button,
|
|
9309
9562
|
{
|
|
9310
|
-
|
|
9563
|
+
variant: "primary",
|
|
9564
|
+
size: "sm",
|
|
9311
9565
|
onClick: () => onBulkAction?.("ignoreAll"),
|
|
9312
|
-
className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2 text-white",
|
|
9313
9566
|
children: ignoreAll
|
|
9314
9567
|
}
|
|
9315
9568
|
),
|
|
9316
9569
|
/* @__PURE__ */ jsx(
|
|
9317
|
-
|
|
9570
|
+
Button,
|
|
9318
9571
|
{
|
|
9319
|
-
|
|
9572
|
+
variant: "primary",
|
|
9573
|
+
size: "sm",
|
|
9320
9574
|
onClick: () => onBulkAction?.("ignoreUncompleted"),
|
|
9321
|
-
className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2 text-white",
|
|
9322
9575
|
children: ignoreUncompleted
|
|
9323
9576
|
}
|
|
9324
9577
|
),
|
|
9325
9578
|
/* @__PURE__ */ jsx(
|
|
9326
|
-
|
|
9579
|
+
Button,
|
|
9327
9580
|
{
|
|
9328
|
-
|
|
9581
|
+
variant: "primary",
|
|
9582
|
+
size: "sm",
|
|
9329
9583
|
onClick: () => onBulkAction?.("includeAll"),
|
|
9330
|
-
className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2 text-white",
|
|
9331
9584
|
children: includeAll
|
|
9332
9585
|
}
|
|
9333
9586
|
)
|
|
9334
9587
|
] }),
|
|
9335
|
-
/* @__PURE__ */ jsxs("div", { className: "mb-4 rounded-lg border
|
|
9336
|
-
/* @__PURE__ */ jsx("h4", { className: "mb-1 font-semibold
|
|
9337
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
9588
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-primary/10 border-primary/30 mb-4 rounded-lg border p-4", children: [
|
|
9589
|
+
/* @__PURE__ */ jsx("h4", { className: "text-primary-800 dark:text-primary-200 mb-1 font-semibold", children: ensureAccurateData }),
|
|
9590
|
+
/* @__PURE__ */ jsx("p", { className: "text-primary-700 dark:text-primary-300 text-sm", children: ensureAccurateDataDescription })
|
|
9338
9591
|
] }),
|
|
9339
9592
|
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-4", children: instructions }),
|
|
9340
9593
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4", children: columns.map((column, index) => /* @__PURE__ */ jsx(
|
|
@@ -9346,21 +9599,11 @@ function CSVColumnMapper({
|
|
|
9346
9599
|
childFieldOptions: column.mappedTo ? childFieldOptions[column.mappedTo] : void 0,
|
|
9347
9600
|
onMappingChange: (mappedTo, childField) => onColumnChange?.(index, mappedTo, childField),
|
|
9348
9601
|
onIgnoreToggle: (ignored) => onIgnoreToggle?.(index, ignored),
|
|
9349
|
-
formatHtmlId
|
|
9350
|
-
labels: { ignore, include, incomingSample, fieldType }
|
|
9602
|
+
formatHtmlId
|
|
9351
9603
|
},
|
|
9352
9604
|
column.name
|
|
9353
9605
|
)) }),
|
|
9354
|
-
/* @__PURE__ */ jsx("div", { className: "mt-6 flex justify-end", children: /* @__PURE__ */ jsx(
|
|
9355
|
-
"button",
|
|
9356
|
-
{
|
|
9357
|
-
type: "button",
|
|
9358
|
-
onClick: onImport,
|
|
9359
|
-
disabled: importing,
|
|
9360
|
-
className: "rounded-lg bg-green-600 px-6 py-2 text-white hover:bg-green-700 disabled:bg-gray-300",
|
|
9361
|
-
children: importLabel
|
|
9362
|
-
}
|
|
9363
|
-
) })
|
|
9606
|
+
/* @__PURE__ */ jsx("div", { className: "mt-6 flex justify-end", children: /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: onImport, disabled: importing, children: importLabel }) })
|
|
9364
9607
|
] });
|
|
9365
9608
|
}
|
|
9366
9609
|
function CSVColumnCard({
|
|
@@ -9370,112 +9613,158 @@ function CSVColumnCard({
|
|
|
9370
9613
|
childFieldOptions,
|
|
9371
9614
|
onMappingChange,
|
|
9372
9615
|
onIgnoreToggle,
|
|
9373
|
-
formatHtmlId
|
|
9374
|
-
labels
|
|
9616
|
+
formatHtmlId
|
|
9375
9617
|
}) {
|
|
9376
9618
|
const needsMapping = !column.ignored && !column.mappedTo;
|
|
9377
9619
|
const hasError = column.hasError || needsMapping;
|
|
9620
|
+
const selectOptions = fieldOptions.map((opt) => ({
|
|
9621
|
+
value: opt.value,
|
|
9622
|
+
label: opt.label,
|
|
9623
|
+
disabled: opt.disabled
|
|
9624
|
+
}));
|
|
9625
|
+
const childSelectOptions = childFieldOptions?.map(
|
|
9626
|
+
(opt) => ({
|
|
9627
|
+
value: opt.value,
|
|
9628
|
+
label: opt.label,
|
|
9629
|
+
disabled: opt.disabled
|
|
9630
|
+
})
|
|
9631
|
+
);
|
|
9632
|
+
const isMapped = !!column.mappedTo && !column.ignored;
|
|
9378
9633
|
return /* @__PURE__ */ jsxs(
|
|
9379
9634
|
"div",
|
|
9380
9635
|
{
|
|
9381
9636
|
className: cn(
|
|
9382
|
-
"rounded-
|
|
9383
|
-
column.ignored
|
|
9384
|
-
hasError && !column.ignored && "border-red-500"
|
|
9637
|
+
"bg-card text-card-foreground rounded-xl border-2 shadow-sm",
|
|
9638
|
+
column.ignored ? "border-border opacity-50" : isMapped ? "border-success/30" : "border-warning/30"
|
|
9385
9639
|
),
|
|
9386
9640
|
children: [
|
|
9387
|
-
/* @__PURE__ */
|
|
9388
|
-
"
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9394
|
-
|
|
9395
|
-
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9641
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-4 py-3", children: [
|
|
9642
|
+
!column.ignored && (isMapped ? /* @__PURE__ */ jsx("span", { className: "bg-success text-success-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full", children: /* @__PURE__ */ jsx(
|
|
9643
|
+
"svg",
|
|
9644
|
+
{
|
|
9645
|
+
className: "h-3 w-3",
|
|
9646
|
+
fill: "none",
|
|
9647
|
+
viewBox: "0 0 24 24",
|
|
9648
|
+
stroke: "currentColor",
|
|
9649
|
+
strokeWidth: 3,
|
|
9650
|
+
children: /* @__PURE__ */ jsx(
|
|
9651
|
+
"path",
|
|
9652
|
+
{
|
|
9653
|
+
strokeLinecap: "round",
|
|
9654
|
+
strokeLinejoin: "round",
|
|
9655
|
+
d: "M5 13l4 4L19 7"
|
|
9656
|
+
}
|
|
9657
|
+
)
|
|
9658
|
+
}
|
|
9659
|
+
) }) : /* @__PURE__ */ jsx("span", { className: "bg-warning text-warning-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full", children: /* @__PURE__ */ jsxs("svg", { className: "h-3 w-3", fill: "currentColor", viewBox: "0 0 24 24", children: [
|
|
9660
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor" }),
|
|
9661
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "4", className: "fill-warning" })
|
|
9662
|
+
] }) })),
|
|
9663
|
+
/* @__PURE__ */ jsx("h6", { className: "truncate text-sm font-semibold", title: column.name, children: column.name })
|
|
9664
|
+
] }),
|
|
9665
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4 px-4 pb-4", children: [
|
|
9666
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
9667
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: "Sample Data" }),
|
|
9668
|
+
/* @__PURE__ */ jsx(
|
|
9669
|
+
"div",
|
|
9670
|
+
{
|
|
9671
|
+
className: "bg-muted truncate rounded-md px-3 py-2 font-mono text-sm",
|
|
9672
|
+
title: column.sampleValue,
|
|
9673
|
+
children: column.sampleValue || /* @__PURE__ */ jsx("em", { className: "text-muted-foreground", children: "Empty" })
|
|
9674
|
+
}
|
|
9675
|
+
)
|
|
9399
9676
|
] }),
|
|
9400
|
-
/* @__PURE__ */
|
|
9401
|
-
|
|
9402
|
-
/* @__PURE__ */ jsx(
|
|
9403
|
-
|
|
9404
|
-
"select",
|
|
9677
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
9678
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: "Map to Field" }),
|
|
9679
|
+
/* @__PURE__ */ jsx(
|
|
9680
|
+
"div",
|
|
9405
9681
|
{
|
|
9406
|
-
id: formatHtmlId(column.name),
|
|
9407
|
-
value: column.mappedTo || "",
|
|
9408
|
-
onChange: (e) => onMappingChange(e.target.value, void 0),
|
|
9409
|
-
disabled: column.ignored,
|
|
9410
9682
|
className: cn(
|
|
9411
|
-
"
|
|
9412
|
-
column.ignored && "
|
|
9683
|
+
"rounded-md",
|
|
9684
|
+
hasError && !column.ignored && "ring-warning/50 ring-2"
|
|
9413
9685
|
),
|
|
9414
|
-
children:
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9686
|
+
children: /* @__PURE__ */ jsx(
|
|
9687
|
+
Select,
|
|
9688
|
+
{
|
|
9689
|
+
id: formatHtmlId(column.name),
|
|
9690
|
+
options: selectOptions,
|
|
9691
|
+
value: column.mappedTo || "",
|
|
9692
|
+
onValueChange: (value) => onMappingChange(value, void 0),
|
|
9693
|
+
disabled: column.ignored,
|
|
9694
|
+
placeholder: "Select a field...",
|
|
9695
|
+
size: "sm",
|
|
9696
|
+
hideLabel: true,
|
|
9697
|
+
className: cn(
|
|
9698
|
+
hasError && !column.ignored && "border-warning text-warning placeholder:text-warning"
|
|
9699
|
+
)
|
|
9700
|
+
}
|
|
9701
|
+
)
|
|
9427
9702
|
}
|
|
9428
9703
|
)
|
|
9429
9704
|
] }),
|
|
9430
|
-
|
|
9705
|
+
childSelectOptions && childSelectOptions.length > 0 && column.mappedTo && /* @__PURE__ */ jsxs("div", { children: [
|
|
9706
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: "Sub-field" }),
|
|
9431
9707
|
/* @__PURE__ */ jsx(
|
|
9432
|
-
|
|
9433
|
-
{
|
|
9434
|
-
htmlFor: formatHtmlId(column.name, column.mappedTo),
|
|
9435
|
-
className: "sr-only",
|
|
9436
|
-
children: "Sub-field"
|
|
9437
|
-
}
|
|
9438
|
-
),
|
|
9439
|
-
/* @__PURE__ */ jsxs(
|
|
9440
|
-
"select",
|
|
9708
|
+
Select,
|
|
9441
9709
|
{
|
|
9442
9710
|
id: formatHtmlId(column.name, column.mappedTo),
|
|
9711
|
+
options: childSelectOptions,
|
|
9443
9712
|
value: column.childField || "",
|
|
9444
|
-
|
|
9713
|
+
onValueChange: (value) => onMappingChange(column.mappedTo, value),
|
|
9445
9714
|
disabled: column.ignored,
|
|
9446
|
-
|
|
9447
|
-
|
|
9448
|
-
|
|
9449
|
-
),
|
|
9450
|
-
children: [
|
|
9451
|
-
/* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Select sub-field..." }),
|
|
9452
|
-
childFieldOptions.map((opt) => /* @__PURE__ */ jsx(
|
|
9453
|
-
"option",
|
|
9454
|
-
{
|
|
9455
|
-
value: opt.value,
|
|
9456
|
-
disabled: opt.disabled,
|
|
9457
|
-
className: opt.disabled ? "text-red-500" : "",
|
|
9458
|
-
children: opt.label
|
|
9459
|
-
},
|
|
9460
|
-
opt.value
|
|
9461
|
-
))
|
|
9462
|
-
]
|
|
9715
|
+
placeholder: "Select sub-field...",
|
|
9716
|
+
size: "sm",
|
|
9717
|
+
hideLabel: true
|
|
9463
9718
|
}
|
|
9464
9719
|
)
|
|
9465
|
-
] })
|
|
9466
|
-
|
|
9467
|
-
|
|
9468
|
-
|
|
9469
|
-
|
|
9470
|
-
|
|
9471
|
-
|
|
9472
|
-
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9477
|
-
|
|
9478
|
-
|
|
9720
|
+
] }),
|
|
9721
|
+
/* @__PURE__ */ jsxs(
|
|
9722
|
+
"button",
|
|
9723
|
+
{
|
|
9724
|
+
type: "button",
|
|
9725
|
+
onClick: () => onIgnoreToggle(!column.ignored),
|
|
9726
|
+
className: "text-muted-foreground hover:text-foreground mx-auto flex items-center gap-1 text-xs transition-colors",
|
|
9727
|
+
children: [
|
|
9728
|
+
column.ignored ? /* @__PURE__ */ jsx(
|
|
9729
|
+
"svg",
|
|
9730
|
+
{
|
|
9731
|
+
className: "h-3 w-3",
|
|
9732
|
+
fill: "none",
|
|
9733
|
+
viewBox: "0 0 24 24",
|
|
9734
|
+
stroke: "currentColor",
|
|
9735
|
+
strokeWidth: 2,
|
|
9736
|
+
children: /* @__PURE__ */ jsx(
|
|
9737
|
+
"path",
|
|
9738
|
+
{
|
|
9739
|
+
strokeLinecap: "round",
|
|
9740
|
+
strokeLinejoin: "round",
|
|
9741
|
+
d: "M12 4v16m8-8H4"
|
|
9742
|
+
}
|
|
9743
|
+
)
|
|
9744
|
+
}
|
|
9745
|
+
) : /* @__PURE__ */ jsx(
|
|
9746
|
+
"svg",
|
|
9747
|
+
{
|
|
9748
|
+
className: "h-3 w-3",
|
|
9749
|
+
fill: "none",
|
|
9750
|
+
viewBox: "0 0 24 24",
|
|
9751
|
+
stroke: "currentColor",
|
|
9752
|
+
strokeWidth: 2,
|
|
9753
|
+
children: /* @__PURE__ */ jsx(
|
|
9754
|
+
"path",
|
|
9755
|
+
{
|
|
9756
|
+
strokeLinecap: "round",
|
|
9757
|
+
strokeLinejoin: "round",
|
|
9758
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
9759
|
+
}
|
|
9760
|
+
)
|
|
9761
|
+
}
|
|
9762
|
+
),
|
|
9763
|
+
column.ignored ? "Include Column" : "Ignore Column"
|
|
9764
|
+
]
|
|
9765
|
+
}
|
|
9766
|
+
)
|
|
9767
|
+
] })
|
|
9479
9768
|
]
|
|
9480
9769
|
}
|
|
9481
9770
|
);
|
|
@@ -9525,7 +9814,7 @@ function CSVFileUpload({
|
|
|
9525
9814
|
{
|
|
9526
9815
|
className: cn(
|
|
9527
9816
|
"flex min-h-[300px] flex-col items-center justify-center rounded-lg border-2 border-dashed p-8 text-center transition-colors",
|
|
9528
|
-
isDragging ? "border-primary bg-primary/5" : "border-
|
|
9817
|
+
isDragging ? "border-primary bg-primary/5" : "border-border bg-muted",
|
|
9529
9818
|
className
|
|
9530
9819
|
),
|
|
9531
9820
|
onDrop: handleDrop,
|
|
@@ -9547,14 +9836,14 @@ function CSVFileUpload({
|
|
|
9547
9836
|
/* @__PURE__ */ jsx("div", { className: "border-primary h-12 w-12 animate-spin rounded-full border-4 border-t-transparent" }),
|
|
9548
9837
|
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mt-4", children: "Processing file..." })
|
|
9549
9838
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9550
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-file-csv mb-4 text-5xl
|
|
9839
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-file-csv text-muted-foreground mb-4 text-5xl" }),
|
|
9551
9840
|
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-4 text-lg", children: selectFile }),
|
|
9552
9841
|
/* @__PURE__ */ jsx(
|
|
9553
9842
|
"button",
|
|
9554
9843
|
{
|
|
9555
9844
|
type: "button",
|
|
9556
9845
|
onClick: () => inputRef.current?.click(),
|
|
9557
|
-
className: "bg-primary hover:bg-primary/90 rounded-lg px-6 py-3
|
|
9846
|
+
className: "bg-primary text-primary-foreground hover:bg-primary/90 rounded-lg px-6 py-3",
|
|
9558
9847
|
children: selectButton
|
|
9559
9848
|
}
|
|
9560
9849
|
)
|
|
@@ -12321,16 +12610,16 @@ function EditUserRoleModal({
|
|
|
12321
12610
|
};
|
|
12322
12611
|
return /* @__PURE__ */ jsxs(Modal, { open, onOpenChange, size: "md", children: [
|
|
12323
12612
|
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(ModalTitle, { children: "Edit User Role" }) }),
|
|
12324
|
-
/* @__PURE__ */ jsxs(
|
|
12325
|
-
user && /* @__PURE__ */ jsxs("div", { className: "rounded-lg
|
|
12326
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
12327
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
12613
|
+
/* @__PURE__ */ jsxs(ModalBody, { className: "space-y-4", children: [
|
|
12614
|
+
user && /* @__PURE__ */ jsxs("div", { className: "bg-muted rounded-lg p-3", children: [
|
|
12615
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground font-medium", children: user.name }),
|
|
12616
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: user.email })
|
|
12328
12617
|
] }),
|
|
12329
|
-
errorMessage && /* @__PURE__ */ jsx("div", { className: "
|
|
12618
|
+
errorMessage && /* @__PURE__ */ jsx("div", { className: "border-destructive/30 bg-destructive/10 rounded-lg border p-3", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
12330
12619
|
/* @__PURE__ */ jsx(
|
|
12331
12620
|
"svg",
|
|
12332
12621
|
{
|
|
12333
|
-
className: "h-5 w-5
|
|
12622
|
+
className: "text-destructive h-5 w-5",
|
|
12334
12623
|
fill: "none",
|
|
12335
12624
|
viewBox: "0 0 24 24",
|
|
12336
12625
|
stroke: "currentColor",
|
|
@@ -12345,7 +12634,7 @@ function EditUserRoleModal({
|
|
|
12345
12634
|
)
|
|
12346
12635
|
}
|
|
12347
12636
|
),
|
|
12348
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
12637
|
+
/* @__PURE__ */ jsx("p", { className: "text-destructive text-sm", children: errorMessage })
|
|
12349
12638
|
] }) }),
|
|
12350
12639
|
/* @__PURE__ */ jsx(
|
|
12351
12640
|
Select,
|
|
@@ -12360,13 +12649,13 @@ function EditUserRoleModal({
|
|
|
12360
12649
|
}))
|
|
12361
12650
|
}
|
|
12362
12651
|
),
|
|
12363
|
-
selectedRole?.description && /* @__PURE__ */ jsx("div", { className: "rounded-lg
|
|
12652
|
+
selectedRole?.description && /* @__PURE__ */ jsx("div", { className: "bg-primary/10 rounded-lg p-3", children: /* @__PURE__ */ jsx("p", { className: "text-primary text-sm", children: selectedRole.description }) }),
|
|
12364
12653
|
selectedRole?.permissions && selectedRole.permissions.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
12365
|
-
/* @__PURE__ */ jsx("span", { className: "mb-2 block text-sm font-medium
|
|
12654
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground mb-2 block text-sm font-medium", children: "Permissions" }),
|
|
12366
12655
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: selectedRole.permissions.map((permission) => /* @__PURE__ */ jsx(
|
|
12367
12656
|
"span",
|
|
12368
12657
|
{
|
|
12369
|
-
className: "
|
|
12658
|
+
className: "bg-muted text-muted-foreground rounded-full px-2 py-1 text-xs font-medium",
|
|
12370
12659
|
children: permission
|
|
12371
12660
|
},
|
|
12372
12661
|
permission
|
|
@@ -13850,21 +14139,21 @@ function EmployerServiceModal({
|
|
|
13850
14139
|
"Configure Service for ",
|
|
13851
14140
|
employer?.name || "Employer"
|
|
13852
14141
|
] }) }),
|
|
13853
|
-
/* @__PURE__ */ jsxs(
|
|
13854
|
-
errorMessage && /* @__PURE__ */ jsx("div", { className: "
|
|
13855
|
-
service && /* @__PURE__ */ jsxs("div", { className: "
|
|
13856
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
13857
|
-
/* @__PURE__ */ jsxs("p", { className: "text-
|
|
14142
|
+
/* @__PURE__ */ jsxs(ModalBody, { className: "space-y-4", children: [
|
|
14143
|
+
errorMessage && /* @__PURE__ */ jsx("div", { className: "border-destructive/30 bg-destructive/10 rounded-lg border p-3", children: /* @__PURE__ */ jsx("p", { className: "text-destructive text-sm", children: errorMessage }) }),
|
|
14144
|
+
service && /* @__PURE__ */ jsxs("div", { className: "border-primary/30 bg-primary/10 rounded-lg border p-3", children: [
|
|
14145
|
+
/* @__PURE__ */ jsx("p", { className: "text-primary text-sm font-medium", children: service.name }),
|
|
14146
|
+
/* @__PURE__ */ jsxs("p", { className: "text-primary/80 text-xs", children: [
|
|
13858
14147
|
"Base price: $",
|
|
13859
14148
|
service.basePrice.toFixed(2)
|
|
13860
14149
|
] })
|
|
13861
14150
|
] }),
|
|
13862
14151
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
13863
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
14152
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm font-medium", children: "Pricing" }),
|
|
13864
14153
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
13865
14154
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
13866
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
13867
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
14155
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm", children: "Use Base Price" }),
|
|
14156
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Use the service's default pricing" })
|
|
13868
14157
|
] }),
|
|
13869
14158
|
/* @__PURE__ */ jsx(
|
|
13870
14159
|
Switch,
|
|
@@ -13878,17 +14167,17 @@ function EmployerServiceModal({
|
|
|
13878
14167
|
}
|
|
13879
14168
|
)
|
|
13880
14169
|
] }),
|
|
13881
|
-
!config.useBasePrice && /* @__PURE__ */ jsxs("div", { className: "ml-4 border-l-2
|
|
14170
|
+
!config.useBasePrice && /* @__PURE__ */ jsxs("div", { className: "border-border ml-4 border-l-2 pl-4", children: [
|
|
13882
14171
|
/* @__PURE__ */ jsx(
|
|
13883
14172
|
"label",
|
|
13884
14173
|
{
|
|
13885
14174
|
htmlFor: "custom-price",
|
|
13886
|
-
className: "mb-1 block text-sm font-medium
|
|
14175
|
+
className: "text-foreground mb-1 block text-sm font-medium",
|
|
13887
14176
|
children: "Custom Price"
|
|
13888
14177
|
}
|
|
13889
14178
|
),
|
|
13890
14179
|
/* @__PURE__ */ jsxs("div", { className: "relative w-40", children: [
|
|
13891
|
-
/* @__PURE__ */ jsx("span", { className: "absolute top-1/2 left-3 -translate-y-1/2
|
|
14180
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground absolute top-1/2 left-3 -translate-y-1/2", children: "$" }),
|
|
13892
14181
|
/* @__PURE__ */ jsx(
|
|
13893
14182
|
"input",
|
|
13894
14183
|
{
|
|
@@ -13896,7 +14185,7 @@ function EmployerServiceModal({
|
|
|
13896
14185
|
type: "number",
|
|
13897
14186
|
min: "0",
|
|
13898
14187
|
step: "0.01",
|
|
13899
|
-
className: "w-full rounded-md border
|
|
14188
|
+
className: "border-input bg-background text-foreground focus:ring-ring w-full rounded-md border py-2 pr-4 pl-7 shadow-sm focus:ring-2 focus:outline-none",
|
|
13900
14189
|
value: config.customPrice ?? "",
|
|
13901
14190
|
onChange: (e) => setConfig((prev) => ({
|
|
13902
14191
|
...prev,
|
|
@@ -13918,11 +14207,11 @@ function EmployerServiceModal({
|
|
|
13918
14207
|
}
|
|
13919
14208
|
),
|
|
13920
14209
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
13921
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
14210
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm font-medium", children: "Order Handling" }),
|
|
13922
14211
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
13923
14212
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
13924
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
13925
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
14213
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm", children: "Auto-Accept Orders" }),
|
|
14214
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Automatically accept orders from this employer" })
|
|
13926
14215
|
] }),
|
|
13927
14216
|
/* @__PURE__ */ jsx(
|
|
13928
14217
|
Switch,
|
|
@@ -13934,8 +14223,8 @@ function EmployerServiceModal({
|
|
|
13934
14223
|
] }),
|
|
13935
14224
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
13936
14225
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
13937
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
13938
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
14226
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm", children: "Requires Approval" }),
|
|
14227
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Orders need manual approval before processing" })
|
|
13939
14228
|
] }),
|
|
13940
14229
|
/* @__PURE__ */ jsx(
|
|
13941
14230
|
Switch,
|
|
@@ -13947,11 +14236,11 @@ function EmployerServiceModal({
|
|
|
13947
14236
|
] })
|
|
13948
14237
|
] }),
|
|
13949
14238
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
13950
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
14239
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm font-medium", children: "Notifications" }),
|
|
13951
14240
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
13952
14241
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
13953
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
13954
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
14242
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm", children: "Notify on New Orders" }),
|
|
14243
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Send email when orders are placed" })
|
|
13955
14244
|
] }),
|
|
13956
14245
|
/* @__PURE__ */ jsx(
|
|
13957
14246
|
Switch,
|
|
@@ -13961,7 +14250,7 @@ function EmployerServiceModal({
|
|
|
13961
14250
|
}
|
|
13962
14251
|
)
|
|
13963
14252
|
] }),
|
|
13964
|
-
config.notifyOnOrder && /* @__PURE__ */ jsx("div", { className: "ml-4 border-l-2
|
|
14253
|
+
config.notifyOnOrder && /* @__PURE__ */ jsx("div", { className: "border-border ml-4 border-l-2 pl-4", children: /* @__PURE__ */ jsx(
|
|
13965
14254
|
Input,
|
|
13966
14255
|
{
|
|
13967
14256
|
label: "Notification Email",
|
|
@@ -13980,7 +14269,7 @@ function EmployerServiceModal({
|
|
|
13980
14269
|
"label",
|
|
13981
14270
|
{
|
|
13982
14271
|
htmlFor: "employer-service-notes",
|
|
13983
|
-
className: "mb-1 block text-sm font-medium
|
|
14272
|
+
className: "text-foreground mb-1 block text-sm font-medium",
|
|
13984
14273
|
children: "Internal Notes"
|
|
13985
14274
|
}
|
|
13986
14275
|
),
|
|
@@ -13988,7 +14277,7 @@ function EmployerServiceModal({
|
|
|
13988
14277
|
"textarea",
|
|
13989
14278
|
{
|
|
13990
14279
|
id: "employer-service-notes",
|
|
13991
|
-
className: "w-full rounded-md border
|
|
14280
|
+
className: "border-input bg-background text-foreground focus:ring-ring w-full rounded-md border px-3 py-2 shadow-sm focus:ring-2 focus:outline-none",
|
|
13992
14281
|
rows: 3,
|
|
13993
14282
|
value: config.notes || "",
|
|
13994
14283
|
onChange: (e) => setConfig((prev) => ({ ...prev, notes: e.target.value })),
|
|
@@ -14243,24 +14532,27 @@ function AccessDeniedPage({
|
|
|
14243
14532
|
);
|
|
14244
14533
|
}
|
|
14245
14534
|
function ActionButton({ label, onClick, href, variant }) {
|
|
14246
|
-
const baseClasses = "px-6 py-2.5 rounded-lg font-medium transition-colors min-w-[140px]";
|
|
14247
|
-
const variantClasses = variant === "primary" ? "bg-primary-600 text-white hover:bg-primary-700" : "bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-200 hover:bg-gray-200 dark:hover:bg-gray-600";
|
|
14248
14535
|
if (href) {
|
|
14249
14536
|
return /* @__PURE__ */ jsx(
|
|
14250
14537
|
"a",
|
|
14251
14538
|
{
|
|
14252
14539
|
href,
|
|
14253
|
-
className: cn(
|
|
14540
|
+
className: cn(
|
|
14541
|
+
buttonVariants({ variant, size: "md" }),
|
|
14542
|
+
"min-w-[140px] text-center"
|
|
14543
|
+
),
|
|
14254
14544
|
children: label
|
|
14255
14545
|
}
|
|
14256
14546
|
);
|
|
14257
14547
|
}
|
|
14258
14548
|
return /* @__PURE__ */ jsx(
|
|
14259
|
-
|
|
14549
|
+
Button,
|
|
14260
14550
|
{
|
|
14261
14551
|
type: "button",
|
|
14262
14552
|
onClick,
|
|
14263
|
-
|
|
14553
|
+
variant,
|
|
14554
|
+
size: "md",
|
|
14555
|
+
className: "min-w-[140px]",
|
|
14264
14556
|
children: label
|
|
14265
14557
|
}
|
|
14266
14558
|
);
|
|
@@ -15251,7 +15543,7 @@ function HRISProviderSelector({
|
|
|
15251
15543
|
return d.toLocaleString();
|
|
15252
15544
|
};
|
|
15253
15545
|
if (currentProvider) {
|
|
15254
|
-
return /* @__PURE__ */ jsx("div", { className: cn("hris-provider-selector", className), children: /* @__PURE__ */ jsxs("div", { className: "
|
|
15546
|
+
return /* @__PURE__ */ jsx("div", { className: cn("hris-provider-selector", className), children: /* @__PURE__ */ jsxs("div", { className: "border-border bg-muted/50 rounded-lg border p-4", children: [
|
|
15255
15547
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 md:flex-row md:items-center", children: [
|
|
15256
15548
|
currentProvider.logoUrl && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx(
|
|
15257
15549
|
"img",
|
|
@@ -15262,7 +15554,7 @@ function HRISProviderSelector({
|
|
|
15262
15554
|
}
|
|
15263
15555
|
) }),
|
|
15264
15556
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
15265
|
-
/* @__PURE__ */ jsx("h4", { className: "text-lg font-bold", children: currentProvider.displayName }),
|
|
15557
|
+
/* @__PURE__ */ jsx("h4", { className: "text-foreground text-lg font-bold", children: currentProvider.displayName }),
|
|
15266
15558
|
/* @__PURE__ */ jsxs("p", { className: "text-muted-foreground text-sm", children: [
|
|
15267
15559
|
"Your data will automatically sync as we receive updates from",
|
|
15268
15560
|
" ",
|
|
@@ -15287,7 +15579,7 @@ function HRISProviderSelector({
|
|
|
15287
15579
|
" ",
|
|
15288
15580
|
/* @__PURE__ */ jsx("span", { className: "text-primary", children: formatLastSync(currentProvider.lastSync) })
|
|
15289
15581
|
] }),
|
|
15290
|
-
!currentProvider.lastSync && /* @__PURE__ */ jsxs("div", { className: "mt-3 flex items-center gap-2 rounded-lg border border-yellow-
|
|
15582
|
+
!currentProvider.lastSync && /* @__PURE__ */ jsxs("div", { className: "mt-3 flex items-center gap-2 rounded-lg border border-yellow-400 bg-yellow-50 p-3 text-yellow-800 dark:border-yellow-600 dark:bg-yellow-900/30 dark:text-yellow-300", children: [
|
|
15291
15583
|
/* @__PURE__ */ jsx("i", { className: "fas fa-exclamation-triangle text-lg" }),
|
|
15292
15584
|
/* @__PURE__ */ jsx("span", { className: "text-sm", children: syncPending })
|
|
15293
15585
|
] })
|
|
@@ -15299,7 +15591,7 @@ function HRISProviderSelector({
|
|
|
15299
15591
|
{
|
|
15300
15592
|
type: "button",
|
|
15301
15593
|
onClick: onDisconnect,
|
|
15302
|
-
className: "rounded-lg border
|
|
15594
|
+
className: "border-border bg-card text-foreground hover:bg-muted rounded-lg border px-4 py-2",
|
|
15303
15595
|
children: [
|
|
15304
15596
|
/* @__PURE__ */ jsx("i", { className: "fas fa-link-slash mr-2" }),
|
|
15305
15597
|
disconnect
|
|
@@ -15323,7 +15615,7 @@ function HRISProviderSelector({
|
|
|
15323
15615
|
}
|
|
15324
15616
|
return /* @__PURE__ */ jsxs("div", { className: cn("hris-provider-selector", className), children: [
|
|
15325
15617
|
/* @__PURE__ */ jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
15326
|
-
/* @__PURE__ */ jsx("span", { className: "absolute top-1/2 left-3 -translate-y-1/2
|
|
15618
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground absolute top-1/2 left-3 -translate-y-1/2", children: /* @__PURE__ */ jsx("i", { className: "fas fa-search" }) }),
|
|
15327
15619
|
/* @__PURE__ */ jsx(
|
|
15328
15620
|
"input",
|
|
15329
15621
|
{
|
|
@@ -15331,7 +15623,7 @@ function HRISProviderSelector({
|
|
|
15331
15623
|
placeholder: search,
|
|
15332
15624
|
value: searchQuery,
|
|
15333
15625
|
onChange: (e) => onSearchChange?.(e.target.value),
|
|
15334
|
-
className: "focus:border-primary focus:ring-primary w-full rounded-lg border
|
|
15626
|
+
className: "focus:border-primary focus:ring-primary border-input bg-background text-foreground placeholder:text-muted-foreground w-full rounded-lg border py-2 pr-4 pl-10 focus:ring-1 focus:outline-none"
|
|
15335
15627
|
}
|
|
15336
15628
|
)
|
|
15337
15629
|
] }) }),
|
|
@@ -15341,7 +15633,7 @@ function HRISProviderSelector({
|
|
|
15341
15633
|
{
|
|
15342
15634
|
type: "button",
|
|
15343
15635
|
onClick: onCSVImport,
|
|
15344
|
-
className: "flex flex-col items-center justify-center rounded-lg border
|
|
15636
|
+
className: "border-border bg-card dark:hover:bg-muted/50 flex flex-col items-center justify-center rounded-lg border p-4 shadow-sm transition-shadow hover:shadow-md",
|
|
15345
15637
|
children: [
|
|
15346
15638
|
/* @__PURE__ */ jsxs("div", { className: "mb-3 flex h-16 w-16 items-center justify-center", children: [
|
|
15347
15639
|
/* @__PURE__ */ jsx(
|
|
@@ -15358,19 +15650,19 @@ function HRISProviderSelector({
|
|
|
15358
15650
|
}
|
|
15359
15651
|
}
|
|
15360
15652
|
),
|
|
15361
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-file-csv hidden text-4xl
|
|
15653
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-file-csv text-muted-foreground hidden text-4xl" })
|
|
15362
15654
|
] }),
|
|
15363
|
-
/* @__PURE__ */ jsx("span", { className: "text-center text-sm font-medium", children: importCSV })
|
|
15655
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground text-center text-sm font-medium", children: importCSV })
|
|
15364
15656
|
]
|
|
15365
15657
|
}
|
|
15366
15658
|
),
|
|
15367
15659
|
loading && /* @__PURE__ */ jsx(Fragment, { children: [1, 2, 3, 4, 5, 6].map((i) => /* @__PURE__ */ jsxs(
|
|
15368
15660
|
"div",
|
|
15369
15661
|
{
|
|
15370
|
-
className: "flex flex-col items-center justify-center rounded-lg border
|
|
15662
|
+
className: "border-border bg-card flex flex-col items-center justify-center rounded-lg border p-4 shadow-sm",
|
|
15371
15663
|
children: [
|
|
15372
|
-
/* @__PURE__ */ jsx("div", { className: "mb-3 h-16 w-16 animate-pulse rounded-lg
|
|
15373
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-20 animate-pulse rounded
|
|
15664
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted mb-3 h-16 w-16 animate-pulse rounded-lg" }),
|
|
15665
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-4 w-20 animate-pulse rounded" })
|
|
15374
15666
|
]
|
|
15375
15667
|
},
|
|
15376
15668
|
i
|
|
@@ -15380,17 +15672,25 @@ function HRISProviderSelector({
|
|
|
15380
15672
|
{
|
|
15381
15673
|
type: "button",
|
|
15382
15674
|
onClick: () => onProviderSelect?.(provider),
|
|
15383
|
-
className: "flex flex-col items-center justify-center rounded-lg border
|
|
15675
|
+
className: "border-border bg-card dark:hover:bg-muted/50 flex flex-col items-center justify-center rounded-lg border p-4 shadow-sm transition-shadow hover:shadow-md",
|
|
15384
15676
|
children: [
|
|
15385
|
-
/* @__PURE__ */ jsx("div", { className: "mb-3 flex h-16 w-16 items-center justify-center", children: provider.logoUrl ? /* @__PURE__ */
|
|
15386
|
-
|
|
15387
|
-
|
|
15388
|
-
|
|
15389
|
-
|
|
15390
|
-
|
|
15391
|
-
|
|
15392
|
-
|
|
15393
|
-
|
|
15677
|
+
/* @__PURE__ */ jsx("div", { className: "mb-3 flex h-16 w-16 items-center justify-center", children: provider.logoUrl ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15678
|
+
/* @__PURE__ */ jsx(
|
|
15679
|
+
"img",
|
|
15680
|
+
{
|
|
15681
|
+
src: provider.logoUrl,
|
|
15682
|
+
alt: provider.displayName,
|
|
15683
|
+
className: "max-h-full max-w-full object-contain",
|
|
15684
|
+
onError: (e) => {
|
|
15685
|
+
e.currentTarget.style.display = "none";
|
|
15686
|
+
const fallback = e.currentTarget.nextElementSibling;
|
|
15687
|
+
if (fallback) fallback.classList.remove("hidden");
|
|
15688
|
+
}
|
|
15689
|
+
}
|
|
15690
|
+
),
|
|
15691
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground hidden h-12 w-12 items-center justify-center rounded-lg text-lg font-bold", children: provider.displayName.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase() })
|
|
15692
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-12 w-12 items-center justify-center rounded-lg text-lg font-bold", children: provider.displayName.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase() }) }),
|
|
15693
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground text-center text-sm font-medium", children: provider.displayName })
|
|
15394
15694
|
]
|
|
15395
15695
|
},
|
|
15396
15696
|
provider.id
|
|
@@ -15452,22 +15752,22 @@ function InventoryManager({
|
|
|
15452
15752
|
const previewChange = updateAmount ? updateType === "credit" ? currentInventory + parseInt(updateAmount, 10) : currentInventory - parseInt(updateAmount, 10) : null;
|
|
15453
15753
|
return /* @__PURE__ */ jsxs("div", { className, children: [
|
|
15454
15754
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
15455
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold
|
|
15456
|
-
/* @__PURE__ */ jsxs("div", { className: "text-2xl font-bold
|
|
15755
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h3", { className: "text-foreground text-lg font-semibold", children: "Remaining Inventory" }) }),
|
|
15756
|
+
/* @__PURE__ */ jsxs("div", { className: "text-foreground text-2xl font-bold", children: [
|
|
15457
15757
|
currentInventory,
|
|
15458
15758
|
" ",
|
|
15459
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-normal
|
|
15759
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm font-normal", children: "units" })
|
|
15460
15760
|
] })
|
|
15461
15761
|
] }),
|
|
15462
|
-
/* @__PURE__ */ jsx("hr", { className: "
|
|
15762
|
+
/* @__PURE__ */ jsx("hr", { className: "border-border mb-4" }),
|
|
15463
15763
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
15464
|
-
/* @__PURE__ */ jsx("h4", { className: "text-base font-semibold
|
|
15764
|
+
/* @__PURE__ */ jsx("h4", { className: "text-foreground text-base font-semibold", children: "Inventory Log" }),
|
|
15465
15765
|
onUpdateClick && /* @__PURE__ */ jsxs(
|
|
15466
15766
|
"button",
|
|
15467
15767
|
{
|
|
15468
15768
|
type: "button",
|
|
15469
15769
|
onClick: onUpdateClick,
|
|
15470
|
-
className: "flex items-center gap-1 text-sm font-medium
|
|
15770
|
+
className: "text-primary hover:text-primary/80 flex items-center gap-1 text-sm font-medium",
|
|
15471
15771
|
children: [
|
|
15472
15772
|
"Update Inventory",
|
|
15473
15773
|
/* @__PURE__ */ jsx(
|
|
@@ -15492,26 +15792,26 @@ function InventoryManager({
|
|
|
15492
15792
|
}
|
|
15493
15793
|
)
|
|
15494
15794
|
] }),
|
|
15495
|
-
/* @__PURE__ */ jsx("hr", { className: "
|
|
15795
|
+
/* @__PURE__ */ jsx("hr", { className: "border-border mb-4" }),
|
|
15496
15796
|
logEntries.length > 0 ? /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "w-full", children: [
|
|
15497
|
-
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: "border-
|
|
15498
|
-
/* @__PURE__ */ jsx("th", { className: "py-2 text-left text-xs font-medium tracking-wider
|
|
15499
|
-
/* @__PURE__ */ jsx("th", { className: "py-2 text-left text-xs font-medium tracking-wider
|
|
15500
|
-
/* @__PURE__ */ jsx("th", { className: "py-2 text-left text-xs font-medium tracking-wider
|
|
15501
|
-
/* @__PURE__ */ jsx("th", { className: "py-2 text-right text-xs font-medium tracking-wider
|
|
15797
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: "border-border border-b", children: [
|
|
15798
|
+
/* @__PURE__ */ jsx("th", { className: "text-muted-foreground py-2 text-left text-xs font-medium tracking-wider uppercase", children: "Date" }),
|
|
15799
|
+
/* @__PURE__ */ jsx("th", { className: "text-muted-foreground py-2 text-left text-xs font-medium tracking-wider uppercase", children: "User" }),
|
|
15800
|
+
/* @__PURE__ */ jsx("th", { className: "text-muted-foreground py-2 text-left text-xs font-medium tracking-wider uppercase", children: "Change" }),
|
|
15801
|
+
/* @__PURE__ */ jsx("th", { className: "text-muted-foreground py-2 text-right text-xs font-medium tracking-wider uppercase", children: "Quantity" })
|
|
15502
15802
|
] }) }),
|
|
15503
|
-
/* @__PURE__ */ jsx("tbody", { className: "divide-
|
|
15803
|
+
/* @__PURE__ */ jsx("tbody", { className: "divide-border/50 divide-y", children: logEntries.map((entry) => /* @__PURE__ */ jsxs(React46.Fragment, { children: [
|
|
15504
15804
|
/* @__PURE__ */ jsxs("tr", { children: [
|
|
15505
15805
|
/* @__PURE__ */ jsx(
|
|
15506
15806
|
"td",
|
|
15507
15807
|
{
|
|
15508
|
-
className: "py-2 text-sm
|
|
15808
|
+
className: "text-muted-foreground py-2 text-sm",
|
|
15509
15809
|
title: formatDate2(entry.createdAt),
|
|
15510
15810
|
children: formatRelativeTime(entry.createdAt)
|
|
15511
15811
|
}
|
|
15512
15812
|
),
|
|
15513
|
-
/* @__PURE__ */ jsx("td", { className: "py-2 text-sm
|
|
15514
|
-
/* @__PURE__ */ jsx("td", { className: "py-2 text-sm
|
|
15813
|
+
/* @__PURE__ */ jsx("td", { className: "text-muted-foreground py-2 text-sm", children: entry.createdBy.name }),
|
|
15814
|
+
/* @__PURE__ */ jsx("td", { className: "text-muted-foreground py-2 text-sm", children: entry.type === "credit" ? "Added" : "Removed" }),
|
|
15515
15815
|
/* @__PURE__ */ jsx("td", { className: "py-2 text-right text-sm", children: /* @__PURE__ */ jsxs(
|
|
15516
15816
|
"span",
|
|
15517
15817
|
{
|
|
@@ -15557,16 +15857,16 @@ function InventoryManager({
|
|
|
15557
15857
|
}
|
|
15558
15858
|
) })
|
|
15559
15859
|
] }),
|
|
15560
|
-
entry.memo && /* @__PURE__ */ jsx("tr", { className: "bg-
|
|
15860
|
+
entry.memo && /* @__PURE__ */ jsx("tr", { className: "bg-muted/50", children: /* @__PURE__ */ jsx("td", { colSpan: 4, className: "px-2 py-1 text-right", children: /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground text-xs italic", children: [
|
|
15561
15861
|
"Memo: ",
|
|
15562
15862
|
entry.memo
|
|
15563
15863
|
] }) }) })
|
|
15564
15864
|
] }, entry.id)) })
|
|
15565
|
-
] }) }) : /* @__PURE__ */ jsxs("div", { className: "py-8 text-center
|
|
15865
|
+
] }) }) : /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground py-8 text-center", children: [
|
|
15566
15866
|
/* @__PURE__ */ jsx(
|
|
15567
15867
|
"svg",
|
|
15568
15868
|
{
|
|
15569
|
-
className: "mx-auto mb-3 h-12 w-12
|
|
15869
|
+
className: "text-muted-foreground/50 mx-auto mb-3 h-12 w-12",
|
|
15570
15870
|
fill: "none",
|
|
15571
15871
|
viewBox: "0 0 24 24",
|
|
15572
15872
|
stroke: "currentColor",
|
|
@@ -15595,19 +15895,16 @@ function InventoryManager({
|
|
|
15595
15895
|
size: "lg",
|
|
15596
15896
|
children: [
|
|
15597
15897
|
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(ModalTitle, { children: "Inventory Manager" }) }),
|
|
15598
|
-
/* @__PURE__ */ jsxs(
|
|
15599
|
-
/* @__PURE__ */ jsx("div", {
|
|
15600
|
-
/* @__PURE__ */
|
|
15601
|
-
/* @__PURE__ */ jsx("h5", { className: "mb-2 text-sm font-medium text-gray-700 dark:text-gray-300", children: "Update Inventory" }),
|
|
15602
|
-
/* @__PURE__ */ jsx("hr", { className: "mb-3 border-gray-200 dark:border-gray-700" })
|
|
15603
|
-
] }),
|
|
15898
|
+
/* @__PURE__ */ jsxs(ModalBody, { className: "space-y-4", children: [
|
|
15899
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h4", { className: "text-foreground text-lg font-semibold", children: serviceName }) }),
|
|
15900
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h5", { className: "text-muted-foreground mb-2 text-sm font-medium", children: "Update Inventory" }) }),
|
|
15604
15901
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-0", children: [
|
|
15605
15902
|
/* @__PURE__ */ jsxs(
|
|
15606
15903
|
"button",
|
|
15607
15904
|
{
|
|
15608
15905
|
type: "button",
|
|
15609
15906
|
onClick: () => setUpdateType("debit"),
|
|
15610
|
-
className: `rounded-l-md border px-4 py-2 text-sm font-medium ${updateType === "debit" ? "border-
|
|
15907
|
+
className: `rounded-l-md border px-4 py-2 text-sm font-medium transition-colors ${updateType === "debit" ? "border-primary bg-primary text-primary-foreground" : "border-input bg-card text-foreground hover:bg-muted"} `,
|
|
15611
15908
|
children: [
|
|
15612
15909
|
/* @__PURE__ */ jsx(
|
|
15613
15910
|
"svg",
|
|
@@ -15636,7 +15933,7 @@ function InventoryManager({
|
|
|
15636
15933
|
{
|
|
15637
15934
|
type: "button",
|
|
15638
15935
|
onClick: () => setUpdateType("credit"),
|
|
15639
|
-
className: `rounded-r-md border-t border-r border-b px-4 py-2 text-sm font-medium ${updateType === "credit" ? "border-
|
|
15936
|
+
className: `rounded-r-md border-t border-r border-b px-4 py-2 text-sm font-medium transition-colors ${updateType === "credit" ? "border-primary bg-primary text-primary-foreground" : "border-input bg-card text-foreground hover:bg-muted"} `,
|
|
15640
15937
|
children: [
|
|
15641
15938
|
/* @__PURE__ */ jsx(
|
|
15642
15939
|
"svg",
|
|
@@ -15682,9 +15979,9 @@ function InventoryManager({
|
|
|
15682
15979
|
rows: 2
|
|
15683
15980
|
}
|
|
15684
15981
|
),
|
|
15685
|
-
previewChange !== null && updateAmount && /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-
|
|
15686
|
-
/* @__PURE__ */ jsx("h5", { className: "mb-2 text-sm font-medium text-
|
|
15687
|
-
/* @__PURE__ */ jsxs("ul", { className: "list-inside list-disc text-sm text-
|
|
15982
|
+
previewChange !== null && updateAmount && /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-amber-200 bg-amber-50 p-3 dark:border-amber-700 dark:bg-amber-900/20", children: [
|
|
15983
|
+
/* @__PURE__ */ jsx("h5", { className: "mb-2 text-sm font-medium text-amber-800 dark:text-amber-200", children: "Description" }),
|
|
15984
|
+
/* @__PURE__ */ jsxs("ul", { className: "list-inside list-disc text-sm text-amber-700 dark:text-amber-300", children: [
|
|
15688
15985
|
/* @__PURE__ */ jsxs("li", { children: [
|
|
15689
15986
|
"This will",
|
|
15690
15987
|
" ",
|
|
@@ -15760,11 +16057,11 @@ function InviteUserModal({
|
|
|
15760
16057
|
const isValid = email && roleId;
|
|
15761
16058
|
return /* @__PURE__ */ jsx(Modal, { open, onOpenChange, size: "lg", children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, children: [
|
|
15762
16059
|
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(ModalTitle, { children: "Invite User" }) }),
|
|
15763
|
-
/* @__PURE__ */ jsxs(
|
|
15764
|
-
entityDisplayName && /* @__PURE__ */ jsx("div", { className: "rounded-lg
|
|
16060
|
+
/* @__PURE__ */ jsxs(ModalBody, { className: "space-y-4", children: [
|
|
16061
|
+
entityDisplayName && /* @__PURE__ */ jsx("div", { className: "bg-muted rounded-lg p-3", children: /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground text-sm", children: [
|
|
15765
16062
|
"Inviting user to:",
|
|
15766
16063
|
" ",
|
|
15767
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
16064
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground font-medium", children: entityDisplayName })
|
|
15768
16065
|
] }) }),
|
|
15769
16066
|
successMessage && /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-green-200 bg-green-50 p-3 dark:border-green-800 dark:bg-green-900/20", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
15770
16067
|
/* @__PURE__ */ jsx(
|
|
@@ -15861,7 +16158,7 @@ function InviteUserModal({
|
|
|
15861
16158
|
"label",
|
|
15862
16159
|
{
|
|
15863
16160
|
htmlFor: "invite-message",
|
|
15864
|
-
className: "mb-1 block text-sm font-medium
|
|
16161
|
+
className: "text-foreground mb-1 block text-sm font-medium",
|
|
15865
16162
|
children: "Personal Message (optional)"
|
|
15866
16163
|
}
|
|
15867
16164
|
),
|
|
@@ -15869,7 +16166,7 @@ function InviteUserModal({
|
|
|
15869
16166
|
"textarea",
|
|
15870
16167
|
{
|
|
15871
16168
|
id: "invite-message",
|
|
15872
|
-
className: "w-full rounded-md border
|
|
16169
|
+
className: "border-input bg-background text-foreground focus:ring-primary w-full rounded-md border px-3 py-2 shadow-sm focus:ring-2 focus:outline-none",
|
|
15873
16170
|
rows: 3,
|
|
15874
16171
|
value: message,
|
|
15875
16172
|
onChange: (e) => setMessage(e.target.value),
|
|
@@ -15877,7 +16174,7 @@ function InviteUserModal({
|
|
|
15877
16174
|
}
|
|
15878
16175
|
)
|
|
15879
16176
|
] }),
|
|
15880
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
16177
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "An email invitation will be sent to this address. If the user doesn't have an account, they'll be prompted to create one." })
|
|
15881
16178
|
] }),
|
|
15882
16179
|
/* @__PURE__ */ jsxs(ModalFooter, { children: [
|
|
15883
16180
|
/* @__PURE__ */ jsx(
|
|
@@ -18485,7 +18782,7 @@ function OnboardingWizard({
|
|
|
18485
18782
|
onStepChange,
|
|
18486
18783
|
onComplete,
|
|
18487
18784
|
onSkip,
|
|
18488
|
-
logoUrl = "/
|
|
18785
|
+
logoUrl = "https://mieweb.org/wp-content/uploads/2024/03/MIE-NEW-1.png",
|
|
18489
18786
|
brandName = "BlueHive",
|
|
18490
18787
|
brandSubname = "for employers",
|
|
18491
18788
|
loading = false,
|
|
@@ -18531,7 +18828,7 @@ function OnboardingWizard({
|
|
|
18531
18828
|
"div",
|
|
18532
18829
|
{
|
|
18533
18830
|
className: cn(
|
|
18534
|
-
"onboarding-wizard fixed inset-0 z-50 flex flex-col
|
|
18831
|
+
"onboarding-wizard bg-background text-foreground fixed inset-0 z-50 flex flex-col",
|
|
18535
18832
|
className
|
|
18536
18833
|
),
|
|
18537
18834
|
children: [
|
|
@@ -18546,78 +18843,55 @@ function OnboardingWizard({
|
|
|
18546
18843
|
headerContent
|
|
18547
18844
|
] }),
|
|
18548
18845
|
loading ? /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col items-center justify-center", children: [
|
|
18549
|
-
/* @__PURE__ */ jsx(
|
|
18846
|
+
/* @__PURE__ */ jsx(Spinner, { size: "xl" }),
|
|
18550
18847
|
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground mt-4 text-center text-lg", children: loadingMessage })
|
|
18551
18848
|
] }) : /* @__PURE__ */ jsxs("div", { className: "container mx-auto flex flex-1 flex-col p-4", children: [
|
|
18552
|
-
error && /* @__PURE__ */ jsx(
|
|
18849
|
+
error && /* @__PURE__ */ jsx(Alert, { variant: "danger", className: "mb-4", children: error }),
|
|
18553
18850
|
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto", children: currentStepData?.content }),
|
|
18554
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-auto border-t pt-4", children: [
|
|
18851
|
+
/* @__PURE__ */ jsxs("div", { className: "border-border mt-auto border-t pt-4", children: [
|
|
18555
18852
|
!isLastStep && currentStepData?.skippable !== false && /* @__PURE__ */ jsx("div", { className: "mb-3 flex justify-end", children: /* @__PURE__ */ jsx(
|
|
18556
|
-
|
|
18853
|
+
Button,
|
|
18557
18854
|
{
|
|
18558
|
-
|
|
18855
|
+
variant: "secondary",
|
|
18856
|
+
size: "sm",
|
|
18559
18857
|
onClick: handleSkip,
|
|
18560
|
-
className: "rounded-full
|
|
18858
|
+
className: "rounded-full",
|
|
18561
18859
|
children: skip
|
|
18562
18860
|
}
|
|
18563
18861
|
) }),
|
|
18564
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-4
|
|
18565
|
-
|
|
18566
|
-
|
|
18862
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-background flex w-full items-center gap-4", children: [
|
|
18863
|
+
/* @__PURE__ */ jsxs(
|
|
18864
|
+
Button,
|
|
18567
18865
|
{
|
|
18568
|
-
|
|
18866
|
+
variant: "outline",
|
|
18569
18867
|
onClick: handleBack,
|
|
18570
|
-
|
|
18868
|
+
disabled: !backEnabled || isFirstStep,
|
|
18571
18869
|
children: [
|
|
18572
18870
|
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: back }),
|
|
18573
18871
|
/* @__PURE__ */ jsx("i", { className: "fas fa-chevron-left sm:hidden" })
|
|
18574
18872
|
]
|
|
18575
18873
|
}
|
|
18576
|
-
) : /* @__PURE__ */ jsx("div", {}),
|
|
18577
|
-
/* @__PURE__ */ jsx(
|
|
18578
|
-
"div",
|
|
18579
|
-
{
|
|
18580
|
-
className: "flex-1",
|
|
18581
|
-
role: "progressbar",
|
|
18582
|
-
"aria-label": `Step ${currentStep + 1} of ${totalSteps}`,
|
|
18583
|
-
"aria-valuenow": progressPercent,
|
|
18584
|
-
"aria-valuemin": 0,
|
|
18585
|
-
"aria-valuemax": 100,
|
|
18586
|
-
children: /* @__PURE__ */ jsx("div", { className: "h-5 w-full overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsxs(
|
|
18587
|
-
"div",
|
|
18588
|
-
{
|
|
18589
|
-
className: "flex h-full items-center justify-center bg-green-500 text-xs font-medium text-white transition-all duration-300",
|
|
18590
|
-
style: { width: `${progressPercent}%` },
|
|
18591
|
-
children: [
|
|
18592
|
-
currentStep + 1,
|
|
18593
|
-
" of ",
|
|
18594
|
-
totalSteps
|
|
18595
|
-
]
|
|
18596
|
-
}
|
|
18597
|
-
) })
|
|
18598
|
-
}
|
|
18599
18874
|
),
|
|
18600
|
-
|
|
18601
|
-
|
|
18875
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
18876
|
+
Progress,
|
|
18602
18877
|
{
|
|
18603
|
-
|
|
18604
|
-
|
|
18605
|
-
|
|
18606
|
-
|
|
18878
|
+
value: progressPercent,
|
|
18879
|
+
size: "lg",
|
|
18880
|
+
variant: "success",
|
|
18881
|
+
showValue: true,
|
|
18882
|
+
formatValue: () => `${currentStep + 1} of ${totalSteps}`,
|
|
18883
|
+
label: `Step ${currentStep + 1} of ${totalSteps}`
|
|
18607
18884
|
}
|
|
18608
|
-
)
|
|
18609
|
-
|
|
18885
|
+
) }),
|
|
18886
|
+
/* @__PURE__ */ jsxs(
|
|
18887
|
+
Button,
|
|
18610
18888
|
{
|
|
18611
|
-
|
|
18889
|
+
variant: "primary",
|
|
18612
18890
|
onClick: handleNext,
|
|
18613
|
-
disabled: !nextEnabled,
|
|
18614
|
-
className: cn(
|
|
18615
|
-
"rounded-lg px-6 py-3 text-white",
|
|
18616
|
-
nextEnabled ? "bg-primary hover:bg-primary/90" : "cursor-not-allowed bg-gray-300"
|
|
18617
|
-
),
|
|
18891
|
+
disabled: !nextEnabled && !isLastStep,
|
|
18618
18892
|
children: [
|
|
18619
|
-
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: next }),
|
|
18620
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-chevron-right sm:hidden" })
|
|
18893
|
+
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: isLastStep ? finish : next }),
|
|
18894
|
+
!isLastStep && /* @__PURE__ */ jsx("i", { className: "fas fa-chevron-right sm:hidden" })
|
|
18621
18895
|
]
|
|
18622
18896
|
}
|
|
18623
18897
|
)
|
|
@@ -18639,21 +18913,18 @@ function OnboardingStepQuestion({
|
|
|
18639
18913
|
}) {
|
|
18640
18914
|
return /* @__PURE__ */ jsxs("div", { className: "py-4", children: [
|
|
18641
18915
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-start gap-3", children: [
|
|
18642
|
-
icon && /* @__PURE__ */ jsx("div", { className: "hidden rounded-full
|
|
18916
|
+
icon && /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground hidden rounded-full p-3", children: /* @__PURE__ */ jsx("i", { className: cn(icon, "text-lg") }) }),
|
|
18643
18917
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
18644
|
-
/* @__PURE__ */ jsx("h3", { className: "mb-2 text-2xl font-bold", children: title }),
|
|
18918
|
+
/* @__PURE__ */ jsx("h3", { className: "text-foreground mb-2 text-2xl font-bold", children: title }),
|
|
18645
18919
|
description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: description })
|
|
18646
18920
|
] })
|
|
18647
18921
|
] }),
|
|
18648
18922
|
options.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: options.map((option) => /* @__PURE__ */ jsxs(
|
|
18649
|
-
|
|
18923
|
+
Button,
|
|
18650
18924
|
{
|
|
18651
|
-
|
|
18925
|
+
variant: option.selected ? "primary" : "outline",
|
|
18652
18926
|
onClick: () => onSelect?.(option.id),
|
|
18653
|
-
className:
|
|
18654
|
-
"rounded-full border-2 px-4 py-2 transition-colors",
|
|
18655
|
-
option.selected ? "border-primary bg-primary text-white" : "hover:border-primary border-gray-300 bg-white text-gray-700"
|
|
18656
|
-
),
|
|
18927
|
+
className: "rounded-full",
|
|
18657
18928
|
children: [
|
|
18658
18929
|
option.icon && /* @__PURE__ */ jsx("i", { className: cn(option.icon, "mr-2") }),
|
|
18659
18930
|
option.label
|
|
@@ -18675,63 +18946,39 @@ function OnboardingCompletion({
|
|
|
18675
18946
|
if (completed) {
|
|
18676
18947
|
return /* @__PURE__ */ jsxs("div", { className: "py-4", children: [
|
|
18677
18948
|
/* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
18678
|
-
/* @__PURE__ */ jsxs("p", { className: "mb-0 text-2xl", children: [
|
|
18949
|
+
/* @__PURE__ */ jsxs("p", { className: "text-foreground mb-0 text-2xl", children: [
|
|
18679
18950
|
/* @__PURE__ */ jsx("i", { className: "fas fa-check-circle mr-2 text-green-500" }),
|
|
18680
18951
|
"Setup complete!"
|
|
18681
18952
|
] }),
|
|
18682
18953
|
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: "You're all set up! You can now start using BlueHive to manage your employees." })
|
|
18683
18954
|
] }),
|
|
18684
18955
|
/* @__PURE__ */ jsxs("div", { className: "my-6 flex flex-wrap gap-3", children: [
|
|
18685
|
-
/* @__PURE__ */ jsxs(
|
|
18686
|
-
"
|
|
18687
|
-
|
|
18688
|
-
|
|
18689
|
-
|
|
18690
|
-
|
|
18691
|
-
|
|
18692
|
-
|
|
18693
|
-
|
|
18694
|
-
|
|
18695
|
-
|
|
18696
|
-
)
|
|
18697
|
-
/* @__PURE__ */ jsxs(
|
|
18698
|
-
"button",
|
|
18699
|
-
{
|
|
18700
|
-
type: "button",
|
|
18701
|
-
onClick: onGoToDashboard,
|
|
18702
|
-
className: "rounded-lg border border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-50",
|
|
18703
|
-
children: [
|
|
18704
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-tachometer-alt mr-2" }),
|
|
18705
|
-
"Go to Dashboard"
|
|
18706
|
-
]
|
|
18707
|
-
}
|
|
18708
|
-
),
|
|
18709
|
-
/* @__PURE__ */ jsxs(
|
|
18710
|
-
"button",
|
|
18711
|
-
{
|
|
18712
|
-
type: "button",
|
|
18713
|
-
onClick: onGoToEmployees,
|
|
18714
|
-
className: "rounded-lg border border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-50",
|
|
18715
|
-
children: [
|
|
18716
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-users mr-2" }),
|
|
18717
|
-
"Go to Employees"
|
|
18718
|
-
]
|
|
18719
|
-
}
|
|
18720
|
-
)
|
|
18956
|
+
/* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: onStartOrder, children: [
|
|
18957
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-shopping-cart mr-2" }),
|
|
18958
|
+
"Start your first order"
|
|
18959
|
+
] }),
|
|
18960
|
+
/* @__PURE__ */ jsxs(Button, { variant: "outline", onClick: onGoToDashboard, children: [
|
|
18961
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-tachometer-alt mr-2" }),
|
|
18962
|
+
"Go to Dashboard"
|
|
18963
|
+
] }),
|
|
18964
|
+
/* @__PURE__ */ jsxs(Button, { variant: "outline", onClick: onGoToEmployees, children: [
|
|
18965
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-users mr-2" }),
|
|
18966
|
+
"Go to Employees"
|
|
18967
|
+
] })
|
|
18721
18968
|
] })
|
|
18722
18969
|
] });
|
|
18723
18970
|
}
|
|
18724
18971
|
return /* @__PURE__ */ jsxs("div", { className: "py-4", children: [
|
|
18725
18972
|
/* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
18726
|
-
/* @__PURE__ */ jsx("h3", { className: "mb-2 text-2xl font-bold", children: "Some steps not completed" }),
|
|
18973
|
+
/* @__PURE__ */ jsx("h3", { className: "text-foreground mb-2 text-2xl font-bold", children: "Some steps not completed" }),
|
|
18727
18974
|
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: "You still need to complete some steps to finish the full guided onboarding. If you're in a hurry, you can skip them for now and come back later." })
|
|
18728
18975
|
] }),
|
|
18729
18976
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3", children: incompleteSteps.map(({ step, label }) => /* @__PURE__ */ jsxs(
|
|
18730
|
-
|
|
18977
|
+
Button,
|
|
18731
18978
|
{
|
|
18732
|
-
|
|
18979
|
+
variant: "outline",
|
|
18733
18980
|
onClick: () => onGoToStep?.(step),
|
|
18734
|
-
className: "
|
|
18981
|
+
className: "rounded-full",
|
|
18735
18982
|
children: [
|
|
18736
18983
|
"Step ",
|
|
18737
18984
|
step,
|
|
@@ -18822,13 +19069,13 @@ function OrderCard({
|
|
|
18822
19069
|
return /* @__PURE__ */ jsx(
|
|
18823
19070
|
Card,
|
|
18824
19071
|
{
|
|
18825
|
-
className: `transition-all duration-200 ${onClick ? "cursor-pointer hover:shadow-md" : ""} ${selected ? "ring-
|
|
19072
|
+
className: `transition-all duration-200 ${onClick ? "cursor-pointer hover:shadow-md" : ""} ${selected ? "ring-primary ring-2" : ""} ${className} `.trim(),
|
|
18826
19073
|
onClick: onClick ? handleCardClick : void 0,
|
|
18827
19074
|
children: /* @__PURE__ */ jsxs("div", { className: "p-4", children: [
|
|
18828
19075
|
/* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-start justify-between gap-4", children: [
|
|
18829
19076
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
18830
19077
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
18831
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
19078
|
+
/* @__PURE__ */ jsxs("span", { className: "text-foreground font-semibold", children: [
|
|
18832
19079
|
"#",
|
|
18833
19080
|
orderNumber
|
|
18834
19081
|
] }),
|
|
@@ -18837,30 +19084,33 @@ function OrderCard({
|
|
|
18837
19084
|
/* @__PURE__ */ jsx(
|
|
18838
19085
|
"p",
|
|
18839
19086
|
{
|
|
18840
|
-
className: "mt-1 text-sm
|
|
19087
|
+
className: "text-muted-foreground mt-1 text-sm",
|
|
18841
19088
|
title: formatDate3(createdAt),
|
|
18842
19089
|
children: formatRelativeTime2(createdAt)
|
|
18843
19090
|
}
|
|
18844
19091
|
)
|
|
18845
19092
|
] }),
|
|
18846
|
-
totalAmount !== void 0 && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx("p", { className: "
|
|
19093
|
+
totalAmount !== void 0 && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx("p", { className: "text-foreground font-semibold", children: formatCurrency(totalAmount, currency) }) })
|
|
18847
19094
|
] }),
|
|
18848
19095
|
/* @__PURE__ */ jsx("div", { className: "mb-3", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
18849
|
-
/* @__PURE__ */ jsx(
|
|
18850
|
-
|
|
18851
|
-
|
|
18852
|
-
|
|
19096
|
+
/* @__PURE__ */ jsx(
|
|
19097
|
+
Avatar,
|
|
19098
|
+
{
|
|
19099
|
+
name: `${employee.firstName} ${employee.lastName}`,
|
|
19100
|
+
size: "sm"
|
|
19101
|
+
}
|
|
19102
|
+
),
|
|
18853
19103
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
18854
|
-
/* @__PURE__ */ jsxs("p", { className: "truncate font-medium
|
|
19104
|
+
/* @__PURE__ */ jsxs("p", { className: "text-foreground truncate font-medium", children: [
|
|
18855
19105
|
employee.firstName,
|
|
18856
19106
|
" ",
|
|
18857
19107
|
employee.lastName
|
|
18858
19108
|
] }),
|
|
18859
|
-
employer && /* @__PURE__ */ jsx("p", { className: "
|
|
19109
|
+
employer && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground truncate text-sm", children: employer.name })
|
|
18860
19110
|
] })
|
|
18861
19111
|
] }) }),
|
|
18862
19112
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
18863
|
-
/* @__PURE__ */ jsxs("p", { className: "mb-1 text-xs font-medium tracking-wider
|
|
19113
|
+
/* @__PURE__ */ jsxs("p", { className: "text-muted-foreground mb-1 text-xs font-medium tracking-wider uppercase", children: [
|
|
18864
19114
|
"Services (",
|
|
18865
19115
|
services.length,
|
|
18866
19116
|
")"
|
|
@@ -18869,19 +19119,19 @@ function OrderCard({
|
|
|
18869
19119
|
services.slice(0, 3).map((service) => /* @__PURE__ */ jsx(
|
|
18870
19120
|
"span",
|
|
18871
19121
|
{
|
|
18872
|
-
className: "inline-flex items-center rounded
|
|
19122
|
+
className: "bg-muted text-foreground inline-flex items-center rounded px-2 py-0.5 text-xs font-medium",
|
|
18873
19123
|
children: service.name
|
|
18874
19124
|
},
|
|
18875
19125
|
service.id
|
|
18876
19126
|
)),
|
|
18877
|
-
services.length > 3 && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center rounded
|
|
19127
|
+
services.length > 3 && /* @__PURE__ */ jsxs("span", { className: "bg-muted text-muted-foreground inline-flex items-center rounded px-2 py-0.5 text-xs font-medium", children: [
|
|
18878
19128
|
"+",
|
|
18879
19129
|
services.length - 3,
|
|
18880
19130
|
" more"
|
|
18881
19131
|
] })
|
|
18882
19132
|
] })
|
|
18883
19133
|
] }),
|
|
18884
|
-
scheduledDate && /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-2 text-sm
|
|
19134
|
+
scheduledDate && /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground mb-3 flex items-center gap-2 text-sm", children: [
|
|
18885
19135
|
/* @__PURE__ */ jsx(
|
|
18886
19136
|
"svg",
|
|
18887
19137
|
{
|
|
@@ -18905,18 +19155,18 @@ function OrderCard({
|
|
|
18905
19155
|
formatDate3(scheduledDate)
|
|
18906
19156
|
] })
|
|
18907
19157
|
] }),
|
|
18908
|
-
status === "rejected" && rejectionReason && /* @__PURE__ */ jsxs("div", { className: "mb-3 rounded
|
|
19158
|
+
status === "rejected" && rejectionReason && /* @__PURE__ */ jsxs("div", { className: "bg-destructive/10 text-destructive mb-3 rounded p-2 text-sm", children: [
|
|
18909
19159
|
/* @__PURE__ */ jsx("span", { className: "font-medium", children: "Reason:" }),
|
|
18910
19160
|
" ",
|
|
18911
19161
|
rejectionReason
|
|
18912
19162
|
] }),
|
|
18913
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-t
|
|
19163
|
+
/* @__PURE__ */ jsxs("div", { className: "border-border flex items-center justify-between border-t pt-3", children: [
|
|
18914
19164
|
onView && /* @__PURE__ */ jsx(
|
|
18915
19165
|
"button",
|
|
18916
19166
|
{
|
|
18917
19167
|
type: "button",
|
|
18918
19168
|
onClick: handleViewClick,
|
|
18919
|
-
className: "text-
|
|
19169
|
+
className: "text-primary hover:text-primary/80 text-sm font-medium",
|
|
18920
19170
|
children: "View Details"
|
|
18921
19171
|
}
|
|
18922
19172
|
),
|
|
@@ -18926,7 +19176,7 @@ function OrderCard({
|
|
|
18926
19176
|
{
|
|
18927
19177
|
type: "button",
|
|
18928
19178
|
onClick: handleRejectClick,
|
|
18929
|
-
className: "rounded-md px-3 py-1.5 text-sm font-medium
|
|
19179
|
+
className: "text-destructive hover:bg-destructive/10 rounded-md px-3 py-1.5 text-sm font-medium transition-colors",
|
|
18930
19180
|
children: "Reject"
|
|
18931
19181
|
}
|
|
18932
19182
|
),
|
|
@@ -18935,7 +19185,7 @@ function OrderCard({
|
|
|
18935
19185
|
{
|
|
18936
19186
|
type: "button",
|
|
18937
19187
|
onClick: handleAcceptClick,
|
|
18938
|
-
className: "
|
|
19188
|
+
className: "bg-primary hover:bg-primary/90 rounded-md px-3 py-1.5 text-sm font-medium text-white transition-colors",
|
|
18939
19189
|
children: "Accept"
|
|
18940
19190
|
}
|
|
18941
19191
|
)
|
|
@@ -19417,8 +19667,8 @@ function OrderList({
|
|
|
19417
19667
|
});
|
|
19418
19668
|
return counts;
|
|
19419
19669
|
}, [orders, tabs, getOrderStatus]);
|
|
19420
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", className), children: [
|
|
19421
|
-
/* @__PURE__ */ jsx("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 px-4
|
|
19670
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-full flex-col", className), children: [
|
|
19671
|
+
/* @__PURE__ */ jsx("div", { className: "border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 px-4 py-4 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
19422
19672
|
/* @__PURE__ */ jsx("div", { className: "flex gap-1 overflow-x-auto", children: tabs.map((tab) => {
|
|
19423
19673
|
const count = tab.count ?? tabCounts[tab.id];
|
|
19424
19674
|
return /* @__PURE__ */ jsxs(
|
|
@@ -19567,18 +19817,27 @@ function OrderLookupForm({
|
|
|
19567
19817
|
};
|
|
19568
19818
|
const isValid = formData.orderNumber.trim() && formData.dateOfBirth.trim() && formData.lastName.trim();
|
|
19569
19819
|
return /* @__PURE__ */ jsxs("div", { className: `flex min-h-screen flex-col md:flex-row ${className}`, children: [
|
|
19570
|
-
/* @__PURE__ */ jsxs(
|
|
19571
|
-
|
|
19572
|
-
|
|
19573
|
-
|
|
19574
|
-
|
|
19575
|
-
|
|
19576
|
-
|
|
19577
|
-
|
|
19578
|
-
|
|
19579
|
-
|
|
19580
|
-
|
|
19581
|
-
|
|
19820
|
+
/* @__PURE__ */ jsxs(
|
|
19821
|
+
"div",
|
|
19822
|
+
{
|
|
19823
|
+
className: "flex flex-col items-center justify-center p-8 text-white md:w-1/2",
|
|
19824
|
+
style: {
|
|
19825
|
+
background: "linear-gradient(to bottom right, var(--mieweb-primary-600, #1f98ca), var(--mieweb-primary-900, #086285))"
|
|
19826
|
+
},
|
|
19827
|
+
children: [
|
|
19828
|
+
providerLogo ? /* @__PURE__ */ jsx(
|
|
19829
|
+
"img",
|
|
19830
|
+
{
|
|
19831
|
+
src: providerLogo,
|
|
19832
|
+
alt: providerName || "Provider",
|
|
19833
|
+
className: "mb-6 max-h-[100px] max-w-[200px] object-contain"
|
|
19834
|
+
}
|
|
19835
|
+
) : /* @__PURE__ */ jsx("div", { className: "mb-6 flex h-20 w-20 items-center justify-center rounded-full bg-white/20", children: /* @__PURE__ */ jsx("svg", { className: "h-10 w-10", fill: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" }) }) }),
|
|
19836
|
+
providerName && /* @__PURE__ */ jsx("h1", { className: "mb-2 text-center text-2xl font-bold", children: providerName }),
|
|
19837
|
+
/* @__PURE__ */ jsx("p", { className: "max-w-xs text-center text-blue-100", children: welcomeMessage })
|
|
19838
|
+
]
|
|
19839
|
+
}
|
|
19840
|
+
),
|
|
19582
19841
|
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center bg-white p-8 md:w-1/2 dark:bg-gray-900", children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-md", children: [
|
|
19583
19842
|
/* @__PURE__ */ jsx("h2", { className: "mb-2 text-2xl font-bold text-gray-900 dark:text-white", children: "Order Lookup" }),
|
|
19584
19843
|
/* @__PURE__ */ jsx("p", { className: "mb-6 text-gray-600 dark:text-gray-400", children: "Enter your order details to view your information." }),
|
|
@@ -19841,6 +20100,7 @@ function PageHeader({
|
|
|
19841
20100
|
title,
|
|
19842
20101
|
subtitle,
|
|
19843
20102
|
icon,
|
|
20103
|
+
iconAlign = "center",
|
|
19844
20104
|
actions,
|
|
19845
20105
|
children,
|
|
19846
20106
|
className = "",
|
|
@@ -19862,22 +20122,40 @@ function PageHeader({
|
|
|
19862
20122
|
{
|
|
19863
20123
|
className: ` ${sizeClasses2[size]} ${bordered ? "border-b border-gray-200 dark:border-gray-700" : ""} ${className} `.trim(),
|
|
19864
20124
|
children: [
|
|
19865
|
-
/* @__PURE__ */ jsxs(
|
|
19866
|
-
|
|
19867
|
-
|
|
19868
|
-
|
|
19869
|
-
|
|
19870
|
-
|
|
20125
|
+
/* @__PURE__ */ jsxs(
|
|
20126
|
+
"div",
|
|
20127
|
+
{
|
|
20128
|
+
className: `flex justify-between gap-4 ${iconAlign === "top" ? "items-start" : "items-center"}`,
|
|
20129
|
+
children: [
|
|
20130
|
+
/* @__PURE__ */ jsxs(
|
|
20131
|
+
"div",
|
|
19871
20132
|
{
|
|
19872
|
-
className:
|
|
19873
|
-
children:
|
|
20133
|
+
className: `flex min-w-0 gap-3 ${iconAlign === "top" ? "items-start" : "items-center"}`,
|
|
20134
|
+
children: [
|
|
20135
|
+
icon && /* @__PURE__ */ jsx(
|
|
20136
|
+
"div",
|
|
20137
|
+
{
|
|
20138
|
+
className: `flex-shrink-0 text-gray-500 dark:text-gray-400 ${iconAlign === "top" ? "mt-1" : ""}`,
|
|
20139
|
+
children: icon
|
|
20140
|
+
}
|
|
20141
|
+
),
|
|
20142
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
20143
|
+
/* @__PURE__ */ jsx(
|
|
20144
|
+
"h1",
|
|
20145
|
+
{
|
|
20146
|
+
className: `${titleSizeClasses[size]} truncate text-gray-900 dark:text-white`,
|
|
20147
|
+
children: title
|
|
20148
|
+
}
|
|
20149
|
+
),
|
|
20150
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 truncate text-sm text-gray-500 dark:text-gray-400", children: subtitle })
|
|
20151
|
+
] })
|
|
20152
|
+
]
|
|
19874
20153
|
}
|
|
19875
20154
|
),
|
|
19876
|
-
|
|
19877
|
-
]
|
|
19878
|
-
|
|
19879
|
-
|
|
19880
|
-
] }),
|
|
20155
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex flex-shrink-0 items-center gap-2", children: actions })
|
|
20156
|
+
]
|
|
20157
|
+
}
|
|
20158
|
+
),
|
|
19881
20159
|
children && /* @__PURE__ */ jsx("div", { className: "mt-4", children })
|
|
19882
20160
|
]
|
|
19883
20161
|
}
|
|
@@ -23789,7 +24067,7 @@ function ProviderSelector({
|
|
|
23789
24067
|
return name.split(" ").map((word) => word[0]).join("").substring(0, 2).toUpperCase();
|
|
23790
24068
|
};
|
|
23791
24069
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative", className), ref: containerRef, children: [
|
|
23792
|
-
label && /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium
|
|
24070
|
+
label && /* @__PURE__ */ jsx("label", { className: "text-foreground mb-1 block text-sm font-medium", children: label }),
|
|
23793
24071
|
/* @__PURE__ */ jsxs(
|
|
23794
24072
|
"button",
|
|
23795
24073
|
{
|
|
@@ -23797,10 +24075,11 @@ function ProviderSelector({
|
|
|
23797
24075
|
onClick: () => !disabled && setIsOpen(!isOpen),
|
|
23798
24076
|
disabled,
|
|
23799
24077
|
className: cn(
|
|
23800
|
-
"flex w-full items-center gap-3 rounded-lg border
|
|
23801
|
-
"
|
|
23802
|
-
"
|
|
23803
|
-
"
|
|
24078
|
+
"flex w-full items-center gap-3 rounded-lg border px-3 text-left transition-colors",
|
|
24079
|
+
"bg-background text-foreground",
|
|
24080
|
+
"border-input",
|
|
24081
|
+
"hover:border-muted-foreground/50",
|
|
24082
|
+
"focus:ring-ring focus:border-transparent focus:ring-2 focus:outline-none",
|
|
23804
24083
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
23805
24084
|
sizeStyles[size]
|
|
23806
24085
|
),
|
|
@@ -23809,7 +24088,7 @@ function ProviderSelector({
|
|
|
23809
24088
|
/* @__PURE__ */ jsxs(
|
|
23810
24089
|
"svg",
|
|
23811
24090
|
{
|
|
23812
|
-
className: "h-5 w-5 animate-spin
|
|
24091
|
+
className: "text-muted-foreground h-5 w-5 animate-spin",
|
|
23813
24092
|
fill: "none",
|
|
23814
24093
|
viewBox: "0 0 24 24",
|
|
23815
24094
|
children: [
|
|
@@ -23835,7 +24114,7 @@ function ProviderSelector({
|
|
|
23835
24114
|
]
|
|
23836
24115
|
}
|
|
23837
24116
|
),
|
|
23838
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
24117
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Loading..." })
|
|
23839
24118
|
] }) : selectedProvider ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
23840
24119
|
selectedProvider.logoUrl ? /* @__PURE__ */ jsx(
|
|
23841
24120
|
"img",
|
|
@@ -23844,17 +24123,17 @@ function ProviderSelector({
|
|
|
23844
24123
|
alt: selectedProvider.name,
|
|
23845
24124
|
className: "h-6 w-6 rounded object-cover"
|
|
23846
24125
|
}
|
|
23847
|
-
) : /* @__PURE__ */ jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded
|
|
23848
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
23849
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
23850
|
-
selectedProvider.location && /* @__PURE__ */ jsx("div", { className: "
|
|
24126
|
+
) : /* @__PURE__ */ jsx("div", { className: "bg-primary/10 text-primary flex h-6 w-6 items-center justify-center rounded text-xs font-medium", children: getInitials3(selectedProvider.name) }),
|
|
24127
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 leading-tight", children: [
|
|
24128
|
+
/* @__PURE__ */ jsx("div", { className: "text-foreground truncate text-sm", children: selectedProvider.name }),
|
|
24129
|
+
selectedProvider.location && /* @__PURE__ */ jsx("div", { className: "text-muted-foreground truncate text-[11px]", children: selectedProvider.location })
|
|
23851
24130
|
] })
|
|
23852
|
-
] }) : /* @__PURE__ */ jsx("span", { className: "
|
|
24131
|
+
] }) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground flex-1", children: placeholder }),
|
|
23853
24132
|
/* @__PURE__ */ jsx(
|
|
23854
24133
|
"svg",
|
|
23855
24134
|
{
|
|
23856
24135
|
className: cn(
|
|
23857
|
-
"h-4 w-4 flex-shrink-0
|
|
24136
|
+
"text-muted-foreground h-4 w-4 flex-shrink-0 transition-transform",
|
|
23858
24137
|
isOpen && "rotate-180"
|
|
23859
24138
|
),
|
|
23860
24139
|
fill: "none",
|
|
@@ -23874,12 +24153,12 @@ function ProviderSelector({
|
|
|
23874
24153
|
]
|
|
23875
24154
|
}
|
|
23876
24155
|
),
|
|
23877
|
-
isOpen && /* @__PURE__ */ jsxs("div", { className: "absolute z-50 mt-1 w-full overflow-hidden rounded-lg border
|
|
23878
|
-
searchable && /* @__PURE__ */ jsx("div", { className: "border-
|
|
24156
|
+
isOpen && /* @__PURE__ */ jsxs("div", { className: "border-border bg-card absolute z-50 mt-1 w-full overflow-hidden rounded-lg border shadow-lg", children: [
|
|
24157
|
+
searchable && /* @__PURE__ */ jsx("div", { className: "border-border border-b p-2", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
23879
24158
|
/* @__PURE__ */ jsx(
|
|
23880
24159
|
"svg",
|
|
23881
24160
|
{
|
|
23882
|
-
className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2
|
|
24161
|
+
className: "text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2",
|
|
23883
24162
|
fill: "none",
|
|
23884
24163
|
viewBox: "0 0 24 24",
|
|
23885
24164
|
stroke: "currentColor",
|
|
@@ -23901,20 +24180,20 @@ function ProviderSelector({
|
|
|
23901
24180
|
placeholder: searchPlaceholder,
|
|
23902
24181
|
value: searchQuery,
|
|
23903
24182
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
23904
|
-
className: "w-full rounded-md border
|
|
24183
|
+
className: "border-input bg-background text-foreground placeholder:text-muted-foreground focus:ring-ring w-full rounded-md border py-2 pr-4 pl-9 text-sm focus:ring-1 focus:outline-none",
|
|
23905
24184
|
autoFocus: true
|
|
23906
24185
|
}
|
|
23907
24186
|
)
|
|
23908
24187
|
] }) }),
|
|
23909
|
-
/* @__PURE__ */ jsx("div", { className: "max-h-64 overflow-y-auto", children: filteredProviders.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-4 py-6 text-center
|
|
24188
|
+
/* @__PURE__ */ jsx("div", { className: "max-h-64 overflow-y-auto", children: filteredProviders.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-muted-foreground px-4 py-6 text-center", children: "No providers found" }) : filteredProviders.map((provider) => /* @__PURE__ */ jsxs(
|
|
23910
24189
|
"button",
|
|
23911
24190
|
{
|
|
23912
24191
|
type: "button",
|
|
23913
24192
|
onClick: () => handleSelect(provider),
|
|
23914
24193
|
className: cn(
|
|
23915
24194
|
"flex w-full items-center gap-3 px-4 py-3 text-left transition-colors",
|
|
23916
|
-
"hover:bg-
|
|
23917
|
-
selectedProvider?.id === provider.id && "bg-
|
|
24195
|
+
"hover:bg-muted",
|
|
24196
|
+
selectedProvider?.id === provider.id && "bg-primary/10"
|
|
23918
24197
|
),
|
|
23919
24198
|
children: [
|
|
23920
24199
|
provider.logoUrl ? /* @__PURE__ */ jsx(
|
|
@@ -23924,23 +24203,23 @@ function ProviderSelector({
|
|
|
23924
24203
|
alt: provider.name,
|
|
23925
24204
|
className: "h-8 w-8 rounded object-cover"
|
|
23926
24205
|
}
|
|
23927
|
-
) : /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center rounded
|
|
24206
|
+
) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-8 w-8 items-center justify-center rounded text-sm font-medium", children: getInitials3(provider.name) }),
|
|
23928
24207
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
23929
24208
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
23930
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
23931
|
-
provider.code && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
24209
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground font-medium", children: provider.name }),
|
|
24210
|
+
provider.code && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground text-xs", children: [
|
|
23932
24211
|
"(",
|
|
23933
24212
|
provider.code,
|
|
23934
24213
|
")"
|
|
23935
24214
|
] }),
|
|
23936
|
-
provider.isActive === false && /* @__PURE__ */ jsx("span", { className: "
|
|
24215
|
+
provider.isActive === false && /* @__PURE__ */ jsx("span", { className: "bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-xs font-medium", children: "Inactive" })
|
|
23937
24216
|
] }),
|
|
23938
|
-
(provider.location || provider.type) && /* @__PURE__ */ jsx("div", { className: "
|
|
24217
|
+
(provider.location || provider.type) && /* @__PURE__ */ jsx("div", { className: "text-muted-foreground truncate text-sm", children: [provider.type, provider.location].filter(Boolean).join(" \u2022 ") })
|
|
23939
24218
|
] }),
|
|
23940
24219
|
selectedProvider?.id === provider.id && /* @__PURE__ */ jsx(
|
|
23941
24220
|
"svg",
|
|
23942
24221
|
{
|
|
23943
|
-
className: "h-5 w-5 flex-shrink-0
|
|
24222
|
+
className: "text-primary h-5 w-5 flex-shrink-0",
|
|
23944
24223
|
fill: "none",
|
|
23945
24224
|
viewBox: "0 0 24 24",
|
|
23946
24225
|
stroke: "currentColor",
|
|
@@ -24838,19 +25117,19 @@ function QuickLinksCard({
|
|
|
24838
25117
|
link.icon && /* @__PURE__ */ jsx(
|
|
24839
25118
|
"span",
|
|
24840
25119
|
{
|
|
24841
|
-
className: `text-
|
|
25120
|
+
className: `text-muted-foreground ${layout === "grid" ? "mb-1" : "mr-3"} `,
|
|
24842
25121
|
children: link.icon
|
|
24843
25122
|
}
|
|
24844
25123
|
),
|
|
24845
25124
|
/* @__PURE__ */ jsxs("span", { className: "flex-1 text-left", children: [
|
|
24846
|
-
/* @__PURE__ */ jsx("span", { className: "block text-sm font-medium
|
|
24847
|
-
link.description && layout !== "grid" && /* @__PURE__ */ jsx("span", { className: "
|
|
25125
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground block text-sm font-medium", children: link.label }),
|
|
25126
|
+
link.description && layout !== "grid" && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground block text-xs", children: link.description })
|
|
24848
25127
|
] }),
|
|
24849
|
-
link.badge !== void 0 && /* @__PURE__ */ jsx("span", { className: "ml-2 rounded-full
|
|
25128
|
+
link.badge !== void 0 && /* @__PURE__ */ jsx("span", { className: "bg-primary/10 ml-2 rounded-full px-2 py-0.5 text-xs font-medium text-[var(--mieweb-primary-700)] dark:text-[var(--mieweb-primary-400)]", children: link.badge }),
|
|
24850
25129
|
!link.badge && layout !== "grid" && /* @__PURE__ */ jsx(
|
|
24851
25130
|
"svg",
|
|
24852
25131
|
{
|
|
24853
|
-
className: "h-4 w-4
|
|
25132
|
+
className: "text-muted-foreground h-4 w-4",
|
|
24854
25133
|
fill: "none",
|
|
24855
25134
|
stroke: "currentColor",
|
|
24856
25135
|
viewBox: "0 0 24 24",
|
|
@@ -24884,9 +25163,13 @@ function RecurringServiceCard({
|
|
|
24884
25163
|
onDelete,
|
|
24885
25164
|
onEdit,
|
|
24886
25165
|
showProvider = true,
|
|
25166
|
+
state,
|
|
24887
25167
|
className,
|
|
24888
25168
|
labels = {}
|
|
24889
25169
|
}) {
|
|
25170
|
+
if (!service) {
|
|
25171
|
+
return null;
|
|
25172
|
+
}
|
|
24890
25173
|
const {
|
|
24891
25174
|
provider = "Provider",
|
|
24892
25175
|
occurrence = "Occurrence",
|
|
@@ -24913,56 +25196,188 @@ function RecurringServiceCard({
|
|
|
24913
25196
|
const getOccurrenceLabel = (occ) => {
|
|
24914
25197
|
return occurrenceLabels[occ] || occ;
|
|
24915
25198
|
};
|
|
25199
|
+
const effectiveState = state ?? "default";
|
|
25200
|
+
const stateStyles = {
|
|
25201
|
+
default: {
|
|
25202
|
+
border: "border-border",
|
|
25203
|
+
icon: null,
|
|
25204
|
+
showNote: !service?.overrideConsent
|
|
25205
|
+
// Still show consent note if needed
|
|
25206
|
+
},
|
|
25207
|
+
success: {
|
|
25208
|
+
border: "border-success/30",
|
|
25209
|
+
icon: /* @__PURE__ */ jsx("span", { className: "bg-success text-success-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full", children: /* @__PURE__ */ jsx(
|
|
25210
|
+
"svg",
|
|
25211
|
+
{
|
|
25212
|
+
className: "h-3 w-3",
|
|
25213
|
+
fill: "none",
|
|
25214
|
+
viewBox: "0 0 24 24",
|
|
25215
|
+
stroke: "currentColor",
|
|
25216
|
+
strokeWidth: 3,
|
|
25217
|
+
children: /* @__PURE__ */ jsx(
|
|
25218
|
+
"path",
|
|
25219
|
+
{
|
|
25220
|
+
strokeLinecap: "round",
|
|
25221
|
+
strokeLinejoin: "round",
|
|
25222
|
+
d: "M5 13l4 4L19 7"
|
|
25223
|
+
}
|
|
25224
|
+
)
|
|
25225
|
+
}
|
|
25226
|
+
) }),
|
|
25227
|
+
showNote: false
|
|
25228
|
+
},
|
|
25229
|
+
primary: {
|
|
25230
|
+
border: "border-primary/30",
|
|
25231
|
+
icon: /* @__PURE__ */ jsx("span", { className: "bg-primary text-primary-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full", children: /* @__PURE__ */ jsx(
|
|
25232
|
+
"svg",
|
|
25233
|
+
{
|
|
25234
|
+
className: "h-3 w-3",
|
|
25235
|
+
fill: "none",
|
|
25236
|
+
viewBox: "0 0 24 24",
|
|
25237
|
+
stroke: "currentColor",
|
|
25238
|
+
strokeWidth: 2,
|
|
25239
|
+
children: /* @__PURE__ */ jsx(
|
|
25240
|
+
"path",
|
|
25241
|
+
{
|
|
25242
|
+
strokeLinecap: "round",
|
|
25243
|
+
strokeLinejoin: "round",
|
|
25244
|
+
d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
|
25245
|
+
}
|
|
25246
|
+
)
|
|
25247
|
+
}
|
|
25248
|
+
) }),
|
|
25249
|
+
showNote: false
|
|
25250
|
+
},
|
|
25251
|
+
warning: {
|
|
25252
|
+
border: "border-warning/30",
|
|
25253
|
+
icon: /* @__PURE__ */ jsx("span", { className: "bg-warning text-warning-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full", children: /* @__PURE__ */ jsxs("svg", { className: "h-3 w-3", fill: "currentColor", viewBox: "0 0 24 24", children: [
|
|
25254
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor" }),
|
|
25255
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "4", className: "fill-warning" })
|
|
25256
|
+
] }) }),
|
|
25257
|
+
showNote: true
|
|
25258
|
+
},
|
|
25259
|
+
error: {
|
|
25260
|
+
border: "border-destructive/30",
|
|
25261
|
+
icon: /* @__PURE__ */ jsx("span", { className: "bg-destructive text-destructive-foreground flex h-5 w-5 shrink-0 items-center justify-center rounded-full", children: /* @__PURE__ */ jsx(
|
|
25262
|
+
"svg",
|
|
25263
|
+
{
|
|
25264
|
+
className: "h-3 w-3",
|
|
25265
|
+
fill: "none",
|
|
25266
|
+
viewBox: "0 0 24 24",
|
|
25267
|
+
stroke: "currentColor",
|
|
25268
|
+
strokeWidth: 3,
|
|
25269
|
+
children: /* @__PURE__ */ jsx(
|
|
25270
|
+
"path",
|
|
25271
|
+
{
|
|
25272
|
+
strokeLinecap: "round",
|
|
25273
|
+
strokeLinejoin: "round",
|
|
25274
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
25275
|
+
}
|
|
25276
|
+
)
|
|
25277
|
+
}
|
|
25278
|
+
) }),
|
|
25279
|
+
showNote: true
|
|
25280
|
+
},
|
|
25281
|
+
disabled: {
|
|
25282
|
+
border: "border-border",
|
|
25283
|
+
icon: null,
|
|
25284
|
+
showNote: false
|
|
25285
|
+
}
|
|
25286
|
+
};
|
|
25287
|
+
const currentStyle = stateStyles[effectiveState];
|
|
25288
|
+
const isDisabled = effectiveState === "disabled";
|
|
24916
25289
|
return /* @__PURE__ */ jsxs(
|
|
24917
25290
|
"div",
|
|
24918
25291
|
{
|
|
24919
25292
|
className: cn(
|
|
24920
|
-
"rounded-
|
|
24921
|
-
|
|
25293
|
+
"bg-card text-card-foreground rounded-xl border-2 shadow-sm",
|
|
25294
|
+
currentStyle.border,
|
|
25295
|
+
isDisabled && "opacity-50",
|
|
25296
|
+
onEdit && !isDisabled && "cursor-pointer transition-shadow hover:shadow-md",
|
|
24922
25297
|
className
|
|
24923
25298
|
),
|
|
24924
|
-
onClick: () => onEdit?.(service),
|
|
24925
|
-
role: onEdit ? "button" : void 0,
|
|
24926
|
-
tabIndex: onEdit ? 0 : void 0,
|
|
25299
|
+
onClick: () => !isDisabled && onEdit?.(service),
|
|
25300
|
+
role: onEdit && !isDisabled ? "button" : void 0,
|
|
25301
|
+
tabIndex: onEdit && !isDisabled ? 0 : void 0,
|
|
24927
25302
|
onKeyDown: (e) => {
|
|
24928
|
-
if (onEdit && (e.key === "Enter" || e.key === " ")) {
|
|
25303
|
+
if (onEdit && !isDisabled && (e.key === "Enter" || e.key === " ")) {
|
|
24929
25304
|
e.preventDefault();
|
|
24930
25305
|
onEdit(service);
|
|
24931
25306
|
}
|
|
24932
25307
|
},
|
|
24933
25308
|
children: [
|
|
24934
|
-
/* @__PURE__ */
|
|
24935
|
-
|
|
24936
|
-
|
|
24937
|
-
|
|
24938
|
-
|
|
25309
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-4 py-3", children: [
|
|
25310
|
+
currentStyle.icon,
|
|
25311
|
+
/* @__PURE__ */ jsx(
|
|
25312
|
+
"h6",
|
|
25313
|
+
{
|
|
25314
|
+
className: "truncate text-sm font-semibold",
|
|
25315
|
+
title: service.serviceName,
|
|
25316
|
+
children: service.serviceName
|
|
25317
|
+
}
|
|
25318
|
+
)
|
|
25319
|
+
] }),
|
|
25320
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4 px-4 pb-4", children: [
|
|
25321
|
+
showProvider && service.providerName && /* @__PURE__ */ jsxs("div", { children: [
|
|
25322
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: provider }),
|
|
25323
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted truncate rounded-md px-3 py-2 text-sm", children: service.providerName })
|
|
24939
25324
|
] }),
|
|
24940
|
-
/* @__PURE__ */ jsxs("div", {
|
|
24941
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: occurrence }),
|
|
24942
|
-
/* @__PURE__ */ jsx("
|
|
25325
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
25326
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: occurrence }),
|
|
25327
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted rounded-md px-3 py-2 text-sm", children: getOccurrenceLabel(service.occurrence) })
|
|
24943
25328
|
] }),
|
|
24944
|
-
/* @__PURE__ */
|
|
24945
|
-
|
|
24946
|
-
/* @__PURE__ */ jsx(
|
|
24947
|
-
|
|
25329
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
25330
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: nextOrder }),
|
|
25331
|
+
/* @__PURE__ */ jsx(
|
|
25332
|
+
"div",
|
|
25333
|
+
{
|
|
25334
|
+
className: "bg-muted rounded-md px-3 py-2 text-sm",
|
|
25335
|
+
title: service.nextOrder?.toString(),
|
|
25336
|
+
children: formatDate4(service.nextOrder)
|
|
25337
|
+
}
|
|
25338
|
+
)
|
|
24948
25339
|
] }),
|
|
24949
|
-
|
|
24950
|
-
|
|
24951
|
-
|
|
24952
|
-
|
|
24953
|
-
{
|
|
24954
|
-
|
|
24955
|
-
|
|
24956
|
-
|
|
24957
|
-
|
|
24958
|
-
|
|
24959
|
-
|
|
24960
|
-
|
|
24961
|
-
|
|
24962
|
-
|
|
24963
|
-
|
|
24964
|
-
|
|
24965
|
-
|
|
25340
|
+
effectiveState === "warning" && /* @__PURE__ */ jsxs("div", { className: "bg-warning/10 text-warning-800 dark:text-warning-200 rounded-md px-3 py-2 text-xs", children: [
|
|
25341
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-exclamation-triangle mr-1" }),
|
|
25342
|
+
consentNote
|
|
25343
|
+
] }),
|
|
25344
|
+
effectiveState === "error" && /* @__PURE__ */ jsxs("div", { className: "bg-destructive/10 text-destructive rounded-md px-3 py-2 text-xs", children: [
|
|
25345
|
+
/* @__PURE__ */ jsx("i", { className: "fas fa-times-circle mr-1" }),
|
|
25346
|
+
consentNote
|
|
25347
|
+
] }),
|
|
25348
|
+
!isDisabled && /* @__PURE__ */ jsxs(
|
|
25349
|
+
"button",
|
|
25350
|
+
{
|
|
25351
|
+
type: "button",
|
|
25352
|
+
onClick: (e) => {
|
|
25353
|
+
e.stopPropagation();
|
|
25354
|
+
onDelete?.(service);
|
|
25355
|
+
},
|
|
25356
|
+
className: "text-muted-foreground hover:text-destructive mx-auto flex items-center gap-1 text-xs transition-colors",
|
|
25357
|
+
children: [
|
|
25358
|
+
/* @__PURE__ */ jsx(
|
|
25359
|
+
"svg",
|
|
25360
|
+
{
|
|
25361
|
+
className: "h-3 w-3",
|
|
25362
|
+
fill: "none",
|
|
25363
|
+
viewBox: "0 0 24 24",
|
|
25364
|
+
stroke: "currentColor",
|
|
25365
|
+
strokeWidth: 2,
|
|
25366
|
+
children: /* @__PURE__ */ jsx(
|
|
25367
|
+
"path",
|
|
25368
|
+
{
|
|
25369
|
+
strokeLinecap: "round",
|
|
25370
|
+
strokeLinejoin: "round",
|
|
25371
|
+
d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
|
|
25372
|
+
}
|
|
25373
|
+
)
|
|
25374
|
+
}
|
|
25375
|
+
),
|
|
25376
|
+
deleteLabel
|
|
25377
|
+
]
|
|
25378
|
+
}
|
|
25379
|
+
)
|
|
25380
|
+
] })
|
|
24966
25381
|
]
|
|
24967
25382
|
}
|
|
24968
25383
|
);
|
|
@@ -24978,7 +25393,7 @@ function RecurringServiceAddCard({
|
|
|
24978
25393
|
type: "button",
|
|
24979
25394
|
onClick,
|
|
24980
25395
|
className: cn(
|
|
24981
|
-
"text-muted-foreground hover:border-primary hover:bg-primary/5 hover:text-primary flex min-h-[200px] w-full flex-col items-center justify-center rounded-
|
|
25396
|
+
"text-muted-foreground hover:border-primary hover:bg-primary/5 hover:text-primary border-border bg-muted/50 flex min-h-[200px] w-full flex-col items-center justify-center rounded-xl border-2 border-dashed p-4 transition-colors",
|
|
24982
25397
|
className
|
|
24983
25398
|
),
|
|
24984
25399
|
children: [
|
|
@@ -25035,15 +25450,15 @@ function RecurringServiceSetupModal({
|
|
|
25035
25450
|
onSave(formData);
|
|
25036
25451
|
};
|
|
25037
25452
|
if (!open) return null;
|
|
25038
|
-
return /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center
|
|
25453
|
+
return /* @__PURE__ */ jsx("div", { className: "bg-foreground/50 fixed inset-0 z-50 flex items-center justify-center", children: /* @__PURE__ */ jsxs(
|
|
25039
25454
|
"div",
|
|
25040
25455
|
{
|
|
25041
25456
|
className: cn(
|
|
25042
|
-
"w-full max-w-lg rounded-lg
|
|
25457
|
+
"bg-card text-card-foreground w-full max-w-lg rounded-lg shadow-xl",
|
|
25043
25458
|
className
|
|
25044
25459
|
),
|
|
25045
25460
|
children: [
|
|
25046
|
-
/* @__PURE__ */ jsxs("div", { className: "bg-primary flex items-center justify-between
|
|
25461
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-primary text-primary-foreground flex items-center justify-between p-4", children: [
|
|
25047
25462
|
/* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold", children: title }),
|
|
25048
25463
|
/* @__PURE__ */ jsx(
|
|
25049
25464
|
"button",
|
|
@@ -25057,13 +25472,13 @@ function RecurringServiceSetupModal({
|
|
|
25057
25472
|
] }),
|
|
25058
25473
|
/* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "p-6", children: [
|
|
25059
25474
|
showProviderSelector && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
25060
|
-
/* @__PURE__ */ jsx("label", { className: "mb-1 block text-
|
|
25475
|
+
/* @__PURE__ */ jsx("label", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: provider }),
|
|
25061
25476
|
/* @__PURE__ */ jsxs(
|
|
25062
25477
|
"select",
|
|
25063
25478
|
{
|
|
25064
25479
|
value: formData.providerId,
|
|
25065
25480
|
onChange: (e) => setFormData({ ...formData, providerId: e.target.value }),
|
|
25066
|
-
className: "w-full rounded-lg border
|
|
25481
|
+
className: "bg-card border-input focus:ring-primary w-full rounded-lg border p-2 focus:ring-2 focus:outline-none",
|
|
25067
25482
|
required: showProviderSelector,
|
|
25068
25483
|
children: [
|
|
25069
25484
|
/* @__PURE__ */ jsx("option", { value: "", children: "Select provider..." }),
|
|
@@ -25073,13 +25488,13 @@ function RecurringServiceSetupModal({
|
|
|
25073
25488
|
)
|
|
25074
25489
|
] }),
|
|
25075
25490
|
/* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
25076
|
-
/* @__PURE__ */ jsx("label", { className: "mb-1 block text-
|
|
25491
|
+
/* @__PURE__ */ jsx("label", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: service }),
|
|
25077
25492
|
/* @__PURE__ */ jsxs(
|
|
25078
25493
|
"select",
|
|
25079
25494
|
{
|
|
25080
25495
|
value: formData.serviceId,
|
|
25081
25496
|
onChange: (e) => setFormData({ ...formData, serviceId: e.target.value }),
|
|
25082
|
-
className: "w-full rounded-lg border
|
|
25497
|
+
className: "bg-card border-input focus:ring-primary w-full rounded-lg border p-2 focus:ring-2 focus:outline-none",
|
|
25083
25498
|
required: true,
|
|
25084
25499
|
children: [
|
|
25085
25500
|
/* @__PURE__ */ jsx("option", { value: "", children: "Select service..." }),
|
|
@@ -25089,13 +25504,13 @@ function RecurringServiceSetupModal({
|
|
|
25089
25504
|
)
|
|
25090
25505
|
] }),
|
|
25091
25506
|
/* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
25092
|
-
/* @__PURE__ */ jsx("label", { className: "mb-1 block text-
|
|
25507
|
+
/* @__PURE__ */ jsx("label", { className: "text-muted-foreground mb-1 block text-xs font-semibold tracking-wider uppercase", children: occurrence }),
|
|
25093
25508
|
/* @__PURE__ */ jsxs(
|
|
25094
25509
|
"select",
|
|
25095
25510
|
{
|
|
25096
25511
|
value: formData.occurrence,
|
|
25097
25512
|
onChange: (e) => setFormData({ ...formData, occurrence: e.target.value }),
|
|
25098
|
-
className: "w-full rounded-lg border
|
|
25513
|
+
className: "bg-card border-input focus:ring-primary w-full rounded-lg border p-2 focus:ring-2 focus:outline-none",
|
|
25099
25514
|
required: true,
|
|
25100
25515
|
children: [
|
|
25101
25516
|
/* @__PURE__ */ jsx("option", { value: "monthly", children: "Monthly" }),
|
|
@@ -25117,7 +25532,7 @@ function RecurringServiceSetupModal({
|
|
|
25117
25532
|
...formData,
|
|
25118
25533
|
overrideConsent: e.target.checked
|
|
25119
25534
|
}),
|
|
25120
|
-
className: "h-4 w-4 rounded
|
|
25535
|
+
className: "border-input accent-primary h-4 w-4 rounded"
|
|
25121
25536
|
}
|
|
25122
25537
|
),
|
|
25123
25538
|
/* @__PURE__ */ jsx("span", { className: "text-sm", children: overrideConsent })
|
|
@@ -25130,7 +25545,7 @@ function RecurringServiceSetupModal({
|
|
|
25130
25545
|
{
|
|
25131
25546
|
type: "button",
|
|
25132
25547
|
onClick: onClose,
|
|
25133
|
-
className: "rounded-lg border
|
|
25548
|
+
className: "border-border text-muted-foreground hover:bg-muted rounded-lg border px-4 py-2 transition-colors",
|
|
25134
25549
|
children: cancel
|
|
25135
25550
|
}
|
|
25136
25551
|
),
|
|
@@ -25139,7 +25554,7 @@ function RecurringServiceSetupModal({
|
|
|
25139
25554
|
{
|
|
25140
25555
|
type: "submit",
|
|
25141
25556
|
disabled: saving,
|
|
25142
|
-
className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2
|
|
25557
|
+
className: "bg-primary text-primary-foreground hover:bg-primary/90 disabled:bg-muted disabled:text-muted-foreground rounded-lg px-4 py-2 transition-colors",
|
|
25143
25558
|
children: saving ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
|
|
25144
25559
|
/* @__PURE__ */ jsx("i", { className: "fas fa-spinner fa-spin" }),
|
|
25145
25560
|
"Saving..."
|
|
@@ -25219,16 +25634,16 @@ function RejectionModal({
|
|
|
25219
25634
|
};
|
|
25220
25635
|
return /* @__PURE__ */ jsx(Modal, { open, onOpenChange, size: "md", children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, children: [
|
|
25221
25636
|
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(ModalTitle, { children: title }) }),
|
|
25222
|
-
/* @__PURE__ */ jsxs(
|
|
25223
|
-
(description || itemDescription) && /* @__PURE__ */ jsxs("div", { className: "rounded-lg
|
|
25224
|
-
description && /* @__PURE__ */ jsx("p", { className: "text-
|
|
25225
|
-
itemDescription && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm font-medium
|
|
25637
|
+
/* @__PURE__ */ jsxs(ModalBody, { className: "space-y-4", children: [
|
|
25638
|
+
(description || itemDescription) && /* @__PURE__ */ jsxs("div", { className: "bg-muted rounded-lg p-3", children: [
|
|
25639
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: description }),
|
|
25640
|
+
itemDescription && /* @__PURE__ */ jsx("p", { className: "text-foreground mt-1 text-sm font-medium", children: itemDescription })
|
|
25226
25641
|
] }),
|
|
25227
|
-
variant === "danger" && /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 rounded-lg border
|
|
25642
|
+
variant === "danger" && /* @__PURE__ */ jsxs("div", { className: "border-destructive/30 bg-destructive/10 flex items-start gap-3 rounded-lg border p-3", children: [
|
|
25228
25643
|
/* @__PURE__ */ jsx(
|
|
25229
25644
|
"svg",
|
|
25230
25645
|
{
|
|
25231
|
-
className: "mt-0.5 h-5 w-5 flex-shrink-0
|
|
25646
|
+
className: "text-destructive mt-0.5 h-5 w-5 flex-shrink-0",
|
|
25232
25647
|
fill: "none",
|
|
25233
25648
|
viewBox: "0 0 24 24",
|
|
25234
25649
|
stroke: "currentColor",
|
|
@@ -25243,14 +25658,17 @@ function RejectionModal({
|
|
|
25243
25658
|
)
|
|
25244
25659
|
}
|
|
25245
25660
|
),
|
|
25246
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
25661
|
+
/* @__PURE__ */ jsx("p", { className: "text-destructive text-sm", children: "This action cannot be undone. The affected party will be notified of this rejection." })
|
|
25247
25662
|
] }),
|
|
25248
25663
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
25249
|
-
/* @__PURE__ */ jsx("span", { className: "mb-2 block text-sm font-medium
|
|
25664
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground mb-2 block text-sm font-medium", children: "Reason for rejection" }),
|
|
25250
25665
|
/* @__PURE__ */ jsx("div", { className: "space-y-2", children: reasons.map((reason) => /* @__PURE__ */ jsxs(
|
|
25251
25666
|
"label",
|
|
25252
25667
|
{
|
|
25253
|
-
className:
|
|
25668
|
+
className: cn(
|
|
25669
|
+
"flex cursor-pointer items-center gap-3 rounded-lg border p-3 transition-colors",
|
|
25670
|
+
selectedReasonId === reason.id ? "border-primary bg-primary/10" : "border-border hover:border-muted-foreground/50"
|
|
25671
|
+
),
|
|
25254
25672
|
children: [
|
|
25255
25673
|
/* @__PURE__ */ jsx(
|
|
25256
25674
|
"input",
|
|
@@ -25260,25 +25678,25 @@ function RejectionModal({
|
|
|
25260
25678
|
value: reason.id,
|
|
25261
25679
|
checked: selectedReasonId === reason.id,
|
|
25262
25680
|
onChange: (e) => setSelectedReasonId(e.target.value),
|
|
25263
|
-
className: "
|
|
25681
|
+
className: "text-primary focus:ring-primary border-border h-4 w-4"
|
|
25264
25682
|
}
|
|
25265
25683
|
),
|
|
25266
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
25267
|
-
reason.requiresDetails && /* @__PURE__ */ jsx("span", { className: "text-
|
|
25684
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground text-sm", children: reason.label }),
|
|
25685
|
+
reason.requiresDetails && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs", children: "(requires details)" })
|
|
25268
25686
|
]
|
|
25269
25687
|
},
|
|
25270
25688
|
reason.id
|
|
25271
25689
|
)) })
|
|
25272
25690
|
] }),
|
|
25273
25691
|
showDetails && /* @__PURE__ */ jsxs("div", { children: [
|
|
25274
|
-
/* @__PURE__ */ jsxs("label", { className: "mb-1 block text-sm font-medium
|
|
25692
|
+
/* @__PURE__ */ jsxs("label", { className: "text-foreground mb-1 block text-sm font-medium", children: [
|
|
25275
25693
|
detailsLabel,
|
|
25276
|
-
needsDetails && /* @__PURE__ */ jsx("span", { className: "ml-1
|
|
25694
|
+
needsDetails && /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
25277
25695
|
] }),
|
|
25278
25696
|
/* @__PURE__ */ jsx(
|
|
25279
25697
|
"textarea",
|
|
25280
25698
|
{
|
|
25281
|
-
className: "w-full rounded-md border
|
|
25699
|
+
className: "bg-background text-foreground border-input focus:ring-ring w-full rounded-md border px-3 py-2 shadow-sm focus:ring-2 focus:outline-none",
|
|
25282
25700
|
rows: 3,
|
|
25283
25701
|
value: details,
|
|
25284
25702
|
onChange: (e) => setDetails(e.target.value),
|
|
@@ -25286,7 +25704,7 @@ function RejectionModal({
|
|
|
25286
25704
|
required: needsDetails
|
|
25287
25705
|
}
|
|
25288
25706
|
),
|
|
25289
|
-
needsDetails && !details.trim() && selectedReasonId && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs
|
|
25707
|
+
needsDetails && !details.trim() && selectedReasonId && /* @__PURE__ */ jsx("p", { className: "text-destructive mt-1 text-xs", children: "Please provide additional details for this rejection reason." })
|
|
25290
25708
|
] })
|
|
25291
25709
|
] }),
|
|
25292
25710
|
/* @__PURE__ */ jsxs(ModalFooter, { children: [
|
|
@@ -25589,7 +26007,7 @@ function ReportDashboard({
|
|
|
25589
26007
|
] })
|
|
25590
26008
|
] });
|
|
25591
26009
|
}
|
|
25592
|
-
|
|
26010
|
+
var ResultsEntryForm = React46.forwardRef(function ResultsEntryForm2({
|
|
25593
26011
|
employeeFirstName,
|
|
25594
26012
|
employeeLastName,
|
|
25595
26013
|
initialData = {},
|
|
@@ -25599,7 +26017,7 @@ function ResultsEntryForm({
|
|
|
25599
26017
|
onSubmit,
|
|
25600
26018
|
labels = {},
|
|
25601
26019
|
className
|
|
25602
|
-
}) {
|
|
26020
|
+
}, ref) {
|
|
25603
26021
|
const {
|
|
25604
26022
|
testResults = "Test Results",
|
|
25605
26023
|
passed = "Passed",
|
|
@@ -25656,39 +26074,60 @@ function ResultsEntryForm({
|
|
|
25656
26074
|
(prev) => prev.includes(contactId) ? prev.filter((id) => id !== contactId) : [...prev, contactId]
|
|
25657
26075
|
);
|
|
25658
26076
|
};
|
|
26077
|
+
const validateAndSubmit = React46.useCallback(() => {
|
|
26078
|
+
if (!result) {
|
|
26079
|
+
setShowError(true);
|
|
26080
|
+
return;
|
|
26081
|
+
}
|
|
26082
|
+
setShowError(false);
|
|
26083
|
+
onSubmit({
|
|
26084
|
+
result,
|
|
26085
|
+
alternateText: alternateText || void 0,
|
|
26086
|
+
dateDrawn: dateDrawnValue || void 0,
|
|
26087
|
+
dateCompleted: dateCompletedValue || void 0,
|
|
26088
|
+
recommendations: recommendations || void 0,
|
|
26089
|
+
files: files.length > 0 ? files : void 0,
|
|
26090
|
+
providerContacts: selectedContacts.length > 0 ? selectedContacts : void 0,
|
|
26091
|
+
applyToAllServices: applyToAll
|
|
26092
|
+
});
|
|
26093
|
+
}, [
|
|
26094
|
+
result,
|
|
26095
|
+
alternateText,
|
|
26096
|
+
dateDrawnValue,
|
|
26097
|
+
dateCompletedValue,
|
|
26098
|
+
recommendations,
|
|
26099
|
+
files,
|
|
26100
|
+
selectedContacts,
|
|
26101
|
+
applyToAll,
|
|
26102
|
+
onSubmit
|
|
26103
|
+
]);
|
|
26104
|
+
React46.useImperativeHandle(
|
|
26105
|
+
ref,
|
|
26106
|
+
() => ({
|
|
26107
|
+
submit: validateAndSubmit
|
|
26108
|
+
}),
|
|
26109
|
+
[validateAndSubmit]
|
|
26110
|
+
);
|
|
25659
26111
|
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-6", className), children: [
|
|
25660
26112
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center", children: [
|
|
25661
|
-
/* @__PURE__ */
|
|
25662
|
-
|
|
25663
|
-
|
|
25664
|
-
|
|
25665
|
-
|
|
25666
|
-
|
|
25667
|
-
|
|
25668
|
-
|
|
25669
|
-
|
|
25670
|
-
|
|
25671
|
-
|
|
25672
|
-
|
|
25673
|
-
|
|
25674
|
-
|
|
25675
|
-
}
|
|
25676
|
-
|
|
25677
|
-
|
|
25678
|
-
|
|
25679
|
-
{
|
|
25680
|
-
name: "result",
|
|
25681
|
-
value: "failed",
|
|
25682
|
-
label: failed,
|
|
25683
|
-
checked: result === "failed",
|
|
25684
|
-
onChange: () => {
|
|
25685
|
-
setResult("failed");
|
|
25686
|
-
setShowError(false);
|
|
25687
|
-
}
|
|
25688
|
-
}
|
|
25689
|
-
)
|
|
25690
|
-
] })
|
|
25691
|
-
] }),
|
|
26113
|
+
/* @__PURE__ */ jsx("div", { className: "sm:w-1/2", children: /* @__PURE__ */ jsxs(
|
|
26114
|
+
RadioGroup,
|
|
26115
|
+
{
|
|
26116
|
+
name: "result",
|
|
26117
|
+
label: testResults,
|
|
26118
|
+
value: result ?? "",
|
|
26119
|
+
onValueChange: (value) => {
|
|
26120
|
+
setResult(value);
|
|
26121
|
+
setShowError(false);
|
|
26122
|
+
},
|
|
26123
|
+
orientation: "horizontal",
|
|
26124
|
+
error: showError ? pleaseSelectResult : void 0,
|
|
26125
|
+
children: [
|
|
26126
|
+
/* @__PURE__ */ jsx(Radio, { value: "passed", label: passed }),
|
|
26127
|
+
/* @__PURE__ */ jsx(Radio, { value: "failed", label: failed })
|
|
26128
|
+
]
|
|
26129
|
+
}
|
|
26130
|
+
) }),
|
|
25692
26131
|
/* @__PURE__ */ jsx("div", { className: "sm:w-1/2", children: /* @__PURE__ */ jsx(
|
|
25693
26132
|
Input,
|
|
25694
26133
|
{
|
|
@@ -25864,57 +26303,122 @@ function ResultsEntryForm({
|
|
|
25864
26303
|
] }),
|
|
25865
26304
|
showError && /* @__PURE__ */ jsx("p", { className: "text-destructive text-sm font-medium", children: pleaseSelectResult })
|
|
25866
26305
|
] });
|
|
25867
|
-
}
|
|
25868
|
-
function
|
|
26306
|
+
});
|
|
26307
|
+
function ResultsEntryModal({
|
|
25869
26308
|
serviceName,
|
|
25870
26309
|
employeeFirstName,
|
|
25871
26310
|
employeeLastName,
|
|
25872
|
-
|
|
25873
|
-
|
|
26311
|
+
open,
|
|
26312
|
+
onOpenChange,
|
|
25874
26313
|
onSubmit,
|
|
26314
|
+
isSubmitting = false,
|
|
25875
26315
|
labels = {},
|
|
25876
26316
|
...props
|
|
25877
26317
|
}) {
|
|
25878
26318
|
const { submit = "Submit", close = "Close" } = labels;
|
|
26319
|
+
const formRef = React46.useRef(null);
|
|
25879
26320
|
const employeeName = employeeFirstName || employeeLastName ? `${employeeFirstName ?? ""} ${employeeLastName ?? ""}`.trim() : void 0;
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25883
|
-
|
|
25884
|
-
|
|
25885
|
-
|
|
25886
|
-
|
|
25887
|
-
|
|
25888
|
-
|
|
26321
|
+
const handleSubmitClick = () => {
|
|
26322
|
+
formRef.current?.submit();
|
|
26323
|
+
};
|
|
26324
|
+
return /* @__PURE__ */ jsxs(Modal, { open, onOpenChange, size: "2xl", children: [
|
|
26325
|
+
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(ModalTitle, { children: serviceName }) }),
|
|
26326
|
+
/* @__PURE__ */ jsxs(ModalBody, { children: [
|
|
26327
|
+
employeeName && /* @__PURE__ */ jsx("div", { className: "bg-muted mb-4 rounded-lg p-3", children: /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground text-sm", children: [
|
|
26328
|
+
"Employee:",
|
|
26329
|
+
" ",
|
|
26330
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground font-medium", children: employeeName })
|
|
26331
|
+
] }) }),
|
|
26332
|
+
/* @__PURE__ */ jsx(
|
|
26333
|
+
ResultsEntryForm,
|
|
26334
|
+
{
|
|
26335
|
+
ref: formRef,
|
|
26336
|
+
employeeFirstName,
|
|
26337
|
+
employeeLastName,
|
|
26338
|
+
onSubmit,
|
|
26339
|
+
labels,
|
|
26340
|
+
...props
|
|
26341
|
+
}
|
|
26342
|
+
)
|
|
25889
26343
|
] }),
|
|
25890
|
-
/* @__PURE__ */
|
|
25891
|
-
ResultsEntryForm,
|
|
25892
|
-
{
|
|
25893
|
-
serviceName,
|
|
25894
|
-
employeeFirstName,
|
|
25895
|
-
employeeLastName,
|
|
25896
|
-
onSubmit: handleSubmit,
|
|
25897
|
-
labels,
|
|
25898
|
-
...props
|
|
25899
|
-
}
|
|
25900
|
-
) }),
|
|
25901
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-3 border-t p-4", children: [
|
|
25902
|
-
/* @__PURE__ */ jsx(Button, { variant: "outline", onClick: onClose, children: close }),
|
|
26344
|
+
/* @__PURE__ */ jsxs(ModalFooter, { children: [
|
|
25903
26345
|
/* @__PURE__ */ jsx(
|
|
25904
26346
|
Button,
|
|
25905
26347
|
{
|
|
25906
|
-
|
|
25907
|
-
|
|
25908
|
-
|
|
25909
|
-
|
|
25910
|
-
|
|
25911
|
-
|
|
25912
|
-
|
|
26348
|
+
type: "button",
|
|
26349
|
+
variant: "outline",
|
|
26350
|
+
onClick: () => onOpenChange(false),
|
|
26351
|
+
disabled: isSubmitting,
|
|
26352
|
+
children: close
|
|
26353
|
+
}
|
|
26354
|
+
),
|
|
26355
|
+
/* @__PURE__ */ jsx(
|
|
26356
|
+
Button,
|
|
26357
|
+
{
|
|
26358
|
+
type: "button",
|
|
26359
|
+
onClick: handleSubmitClick,
|
|
26360
|
+
disabled: isSubmitting,
|
|
26361
|
+
children: isSubmitting ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
26362
|
+
/* @__PURE__ */ jsxs(
|
|
26363
|
+
"svg",
|
|
26364
|
+
{
|
|
26365
|
+
className: "mr-2 -ml-1 h-4 w-4 animate-spin",
|
|
26366
|
+
fill: "none",
|
|
26367
|
+
viewBox: "0 0 24 24",
|
|
26368
|
+
children: [
|
|
26369
|
+
/* @__PURE__ */ jsx(
|
|
26370
|
+
"circle",
|
|
26371
|
+
{
|
|
26372
|
+
className: "opacity-25",
|
|
26373
|
+
cx: "12",
|
|
26374
|
+
cy: "12",
|
|
26375
|
+
r: "10",
|
|
26376
|
+
stroke: "currentColor",
|
|
26377
|
+
strokeWidth: "4"
|
|
26378
|
+
}
|
|
26379
|
+
),
|
|
26380
|
+
/* @__PURE__ */ jsx(
|
|
26381
|
+
"path",
|
|
26382
|
+
{
|
|
26383
|
+
className: "opacity-75",
|
|
26384
|
+
fill: "currentColor",
|
|
26385
|
+
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
26386
|
+
}
|
|
26387
|
+
)
|
|
26388
|
+
]
|
|
26389
|
+
}
|
|
26390
|
+
),
|
|
26391
|
+
"Processing..."
|
|
26392
|
+
] }) : submit
|
|
25913
26393
|
}
|
|
25914
26394
|
)
|
|
25915
26395
|
] })
|
|
25916
26396
|
] });
|
|
25917
26397
|
}
|
|
26398
|
+
function ResultsEntryCard({
|
|
26399
|
+
isOpen,
|
|
26400
|
+
onClose,
|
|
26401
|
+
onSubmit,
|
|
26402
|
+
...restProps
|
|
26403
|
+
}) {
|
|
26404
|
+
const handleSubmit = (data) => {
|
|
26405
|
+
onSubmit(data);
|
|
26406
|
+
onClose();
|
|
26407
|
+
};
|
|
26408
|
+
return /* @__PURE__ */ jsx(
|
|
26409
|
+
ResultsEntryModal,
|
|
26410
|
+
{
|
|
26411
|
+
open: isOpen,
|
|
26412
|
+
onOpenChange: (nextOpen) => {
|
|
26413
|
+
if (!nextOpen) {
|
|
26414
|
+
onClose();
|
|
26415
|
+
}
|
|
26416
|
+
},
|
|
26417
|
+
onSubmit: handleSubmit,
|
|
26418
|
+
...restProps
|
|
26419
|
+
}
|
|
26420
|
+
);
|
|
26421
|
+
}
|
|
25918
26422
|
function ScheduleCalendar({
|
|
25919
26423
|
appointments,
|
|
25920
26424
|
selectedDate = /* @__PURE__ */ new Date(),
|
|
@@ -27112,42 +27616,42 @@ function ServiceCard({
|
|
|
27112
27616
|
return /* @__PURE__ */ jsx(
|
|
27113
27617
|
Card,
|
|
27114
27618
|
{
|
|
27115
|
-
className: `h-full transition-all duration-200 ${onClick ? "cursor-pointer hover:shadow-md" : ""} ${selected ? "ring-
|
|
27619
|
+
className: `h-full transition-all duration-200 ${onClick ? "cursor-pointer hover:shadow-md" : ""} ${selected ? "ring-primary ring-2" : ""} ${!currentlyOffered ? "opacity-60" : ""} ${className} `.trim(),
|
|
27116
27620
|
onClick: onClick ? handleCardClick : void 0,
|
|
27117
27621
|
children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col p-4", children: [
|
|
27118
27622
|
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-start justify-between gap-2", children: [
|
|
27119
27623
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
27120
|
-
/* @__PURE__ */ jsx("h3", { className: "truncate font-semibold
|
|
27121
|
-
category && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs
|
|
27624
|
+
/* @__PURE__ */ jsx("h3", { className: "text-foreground truncate font-semibold", children: name }),
|
|
27625
|
+
category && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mt-0.5 text-xs", children: category })
|
|
27122
27626
|
] }),
|
|
27123
27627
|
!currentlyOffered && /* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", children: "Not Offered" })
|
|
27124
27628
|
] }),
|
|
27125
|
-
description && /* @__PURE__ */ jsx("p", { className: "mb-3 line-clamp-2 text-sm
|
|
27629
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-3 line-clamp-2 text-sm", children: description }),
|
|
27126
27630
|
tags.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-3 flex flex-wrap gap-1", children: [
|
|
27127
27631
|
tags.slice(0, 3).map((tag) => /* @__PURE__ */ jsx(
|
|
27128
27632
|
"span",
|
|
27129
27633
|
{
|
|
27130
|
-
className: "inline-flex items-center rounded
|
|
27634
|
+
className: "bg-muted text-muted-foreground inline-flex items-center rounded px-2 py-0.5 text-xs font-medium",
|
|
27131
27635
|
children: tag
|
|
27132
27636
|
},
|
|
27133
27637
|
tag
|
|
27134
27638
|
)),
|
|
27135
|
-
tags.length > 3 && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
27639
|
+
tags.length > 3 && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground text-xs", children: [
|
|
27136
27640
|
"+",
|
|
27137
27641
|
tags.length - 3
|
|
27138
27642
|
] })
|
|
27139
27643
|
] }),
|
|
27140
27644
|
/* @__PURE__ */ jsxs("div", { className: "mt-auto", children: [
|
|
27141
27645
|
price !== void 0 && /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-baseline justify-between", children: [
|
|
27142
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium
|
|
27143
|
-
/* @__PURE__ */ jsx("span", { className: "text-lg font-bold
|
|
27646
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs font-medium uppercase", children: "Base Price" }),
|
|
27647
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground text-lg font-bold", children: formatCurrency2(price, currency) })
|
|
27144
27648
|
] }),
|
|
27145
27649
|
showInventory && /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between text-sm", children: [
|
|
27146
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
27650
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Inventory" }),
|
|
27147
27651
|
/* @__PURE__ */ jsxs(
|
|
27148
27652
|
"span",
|
|
27149
27653
|
{
|
|
27150
|
-
className: `font-medium ${isLowInventory ? "text-
|
|
27654
|
+
className: `font-medium ${isLowInventory ? "text-destructive" : "text-foreground"}`,
|
|
27151
27655
|
children: [
|
|
27152
27656
|
inventoryCount,
|
|
27153
27657
|
inventoryTotal && ` / ${inventoryTotal}`
|
|
@@ -27155,53 +27659,19 @@ function ServiceCard({
|
|
|
27155
27659
|
}
|
|
27156
27660
|
)
|
|
27157
27661
|
] }),
|
|
27158
|
-
(hasCustomAvailability || customPricingCount > 0) && /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-2 text-xs
|
|
27159
|
-
/* @__PURE__ */ jsx(
|
|
27160
|
-
"svg",
|
|
27161
|
-
{
|
|
27162
|
-
className: "h-3.5 w-3.5",
|
|
27163
|
-
fill: "none",
|
|
27164
|
-
viewBox: "0 0 24 24",
|
|
27165
|
-
stroke: "currentColor",
|
|
27166
|
-
children: /* @__PURE__ */ jsx(
|
|
27167
|
-
"path",
|
|
27168
|
-
{
|
|
27169
|
-
strokeLinecap: "round",
|
|
27170
|
-
strokeLinejoin: "round",
|
|
27171
|
-
strokeWidth: 2,
|
|
27172
|
-
d: "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"
|
|
27173
|
-
}
|
|
27174
|
-
)
|
|
27175
|
-
}
|
|
27176
|
-
),
|
|
27662
|
+
(hasCustomAvailability || customPricingCount > 0) && /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground mb-3 flex items-center gap-2 text-xs", children: [
|
|
27663
|
+
/* @__PURE__ */ jsx(SlidersHorizontal, { className: "h-3.5 w-3.5" }),
|
|
27177
27664
|
/* @__PURE__ */ jsx("span", { children: customPricingCount > 0 ? `${customPricingCount} custom pricing tier${customPricingCount > 1 ? "s" : ""}` : "Custom availability" })
|
|
27178
27665
|
] }),
|
|
27179
|
-
(onEdit || onManage || onDelete) && /* @__PURE__ */ jsxs("div", { className: "flex items-center
|
|
27666
|
+
(onEdit || onManage || onDelete) && /* @__PURE__ */ jsxs("div", { className: "border-border flex items-center gap-2 border-t pt-2", children: [
|
|
27180
27667
|
onDelete && /* @__PURE__ */ jsx(
|
|
27181
27668
|
"button",
|
|
27182
27669
|
{
|
|
27183
27670
|
type: "button",
|
|
27184
27671
|
onClick: handleDeleteClick,
|
|
27185
|
-
className: "
|
|
27672
|
+
className: "text-muted-foreground hover:text-destructive p-1.5 transition-colors",
|
|
27186
27673
|
title: "Delete service",
|
|
27187
|
-
children: /* @__PURE__ */ jsx(
|
|
27188
|
-
"svg",
|
|
27189
|
-
{
|
|
27190
|
-
className: "h-4 w-4",
|
|
27191
|
-
fill: "none",
|
|
27192
|
-
viewBox: "0 0 24 24",
|
|
27193
|
-
stroke: "currentColor",
|
|
27194
|
-
children: /* @__PURE__ */ jsx(
|
|
27195
|
-
"path",
|
|
27196
|
-
{
|
|
27197
|
-
strokeLinecap: "round",
|
|
27198
|
-
strokeLinejoin: "round",
|
|
27199
|
-
strokeWidth: 2,
|
|
27200
|
-
d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
|
|
27201
|
-
}
|
|
27202
|
-
)
|
|
27203
|
-
}
|
|
27204
|
-
)
|
|
27674
|
+
children: /* @__PURE__ */ jsx(Trash2, { className: "h-4 w-4" })
|
|
27205
27675
|
}
|
|
27206
27676
|
),
|
|
27207
27677
|
onEdit && /* @__PURE__ */ jsx(
|
|
@@ -27209,26 +27679,9 @@ function ServiceCard({
|
|
|
27209
27679
|
{
|
|
27210
27680
|
type: "button",
|
|
27211
27681
|
onClick: handleEditClick,
|
|
27212
|
-
className: "
|
|
27682
|
+
className: "text-muted-foreground hover:text-primary p-1.5 transition-colors",
|
|
27213
27683
|
title: "Edit service",
|
|
27214
|
-
children: /* @__PURE__ */ jsx(
|
|
27215
|
-
"svg",
|
|
27216
|
-
{
|
|
27217
|
-
className: "h-4 w-4",
|
|
27218
|
-
fill: "none",
|
|
27219
|
-
viewBox: "0 0 24 24",
|
|
27220
|
-
stroke: "currentColor",
|
|
27221
|
-
children: /* @__PURE__ */ jsx(
|
|
27222
|
-
"path",
|
|
27223
|
-
{
|
|
27224
|
-
strokeLinecap: "round",
|
|
27225
|
-
strokeLinejoin: "round",
|
|
27226
|
-
strokeWidth: 2,
|
|
27227
|
-
d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
|
|
27228
|
-
}
|
|
27229
|
-
)
|
|
27230
|
-
}
|
|
27231
|
-
)
|
|
27684
|
+
children: /* @__PURE__ */ jsx(Pencil, { className: "h-4 w-4" })
|
|
27232
27685
|
}
|
|
27233
27686
|
),
|
|
27234
27687
|
onManage && /* @__PURE__ */ jsx(
|
|
@@ -27236,7 +27689,7 @@ function ServiceCard({
|
|
|
27236
27689
|
{
|
|
27237
27690
|
type: "button",
|
|
27238
27691
|
onClick: handleManageClick,
|
|
27239
|
-
className: "rounded px-3 py-1 text-sm font-medium
|
|
27692
|
+
className: "text-primary hover:bg-primary/10 ml-auto rounded px-3 py-1 text-sm font-medium transition-colors",
|
|
27240
27693
|
children: "Manage"
|
|
27241
27694
|
}
|
|
27242
27695
|
)
|
|
@@ -27253,28 +27706,11 @@ function AddServiceCard({
|
|
|
27253
27706
|
return /* @__PURE__ */ jsx(
|
|
27254
27707
|
Card,
|
|
27255
27708
|
{
|
|
27256
|
-
className: `
|
|
27709
|
+
className: `border-border bg-muted/50 hover:border-primary hover:bg-muted h-full cursor-pointer border-2 border-dashed transition-all duration-200 ${className} `.trim(),
|
|
27257
27710
|
onClick,
|
|
27258
27711
|
children: /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-[160px] flex-col items-center justify-center p-4", children: [
|
|
27259
|
-
/* @__PURE__ */ jsx("div", { className: "mb-3 flex h-12 w-12 items-center justify-center rounded-full
|
|
27260
|
-
|
|
27261
|
-
{
|
|
27262
|
-
className: "h-6 w-6 text-gray-500 dark:text-gray-400",
|
|
27263
|
-
fill: "none",
|
|
27264
|
-
viewBox: "0 0 24 24",
|
|
27265
|
-
stroke: "currentColor",
|
|
27266
|
-
children: /* @__PURE__ */ jsx(
|
|
27267
|
-
"path",
|
|
27268
|
-
{
|
|
27269
|
-
strokeLinecap: "round",
|
|
27270
|
-
strokeLinejoin: "round",
|
|
27271
|
-
strokeWidth: 2,
|
|
27272
|
-
d: "M12 4v16m8-8H4"
|
|
27273
|
-
}
|
|
27274
|
-
)
|
|
27275
|
-
}
|
|
27276
|
-
) }),
|
|
27277
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-gray-600 dark:text-gray-400", children: "Add New Service" })
|
|
27712
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted mb-3 flex h-12 w-12 items-center justify-center rounded-full", children: /* @__PURE__ */ jsx(Plus, { className: "text-muted-foreground h-6 w-6" }) }),
|
|
27713
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm font-medium", children: "Add New Service" })
|
|
27278
27714
|
] })
|
|
27279
27715
|
}
|
|
27280
27716
|
);
|
|
@@ -27457,18 +27893,18 @@ function ServiceGeneralSettings({
|
|
|
27457
27893
|
] });
|
|
27458
27894
|
}
|
|
27459
27895
|
function ServiceSkeleton() {
|
|
27460
|
-
return /* @__PURE__ */ jsxs("div", { className: "animate-pulse rounded-lg border
|
|
27896
|
+
return /* @__PURE__ */ jsxs("div", { className: "border-border animate-pulse rounded-lg border p-4", children: [
|
|
27461
27897
|
/* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-start justify-between", children: [
|
|
27462
|
-
/* @__PURE__ */ jsx("div", { className: "h-5 w-32 rounded
|
|
27463
|
-
/* @__PURE__ */ jsx("div", { className: "h-5 w-16 rounded
|
|
27898
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-5 w-32 rounded" }),
|
|
27899
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-5 w-16 rounded" })
|
|
27464
27900
|
] }),
|
|
27465
27901
|
/* @__PURE__ */ jsxs("div", { className: "mb-4 space-y-2", children: [
|
|
27466
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-full rounded
|
|
27467
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-3/4 rounded
|
|
27902
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-4 w-full rounded" }),
|
|
27903
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-4 w-3/4 rounded" })
|
|
27468
27904
|
] }),
|
|
27469
27905
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
27470
|
-
/* @__PURE__ */ jsx("div", { className: "h-6 w-20 rounded-full
|
|
27471
|
-
/* @__PURE__ */ jsx("div", { className: "h-6 w-20 rounded-full
|
|
27906
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-6 w-20 rounded-full" }),
|
|
27907
|
+
/* @__PURE__ */ jsx("div", { className: "bg-muted h-6 w-20 rounded-full" })
|
|
27472
27908
|
] })
|
|
27473
27909
|
] });
|
|
27474
27910
|
}
|
|
@@ -27516,7 +27952,7 @@ function ServiceGrid({
|
|
|
27516
27952
|
/* @__PURE__ */ jsx(
|
|
27517
27953
|
"svg",
|
|
27518
27954
|
{
|
|
27519
|
-
className: "mb-4 h-12 w-12
|
|
27955
|
+
className: "text-muted-foreground mb-4 h-12 w-12",
|
|
27520
27956
|
fill: "none",
|
|
27521
27957
|
viewBox: "0 0 24 24",
|
|
27522
27958
|
stroke: "currentColor",
|
|
@@ -27531,7 +27967,7 @@ function ServiceGrid({
|
|
|
27531
27967
|
)
|
|
27532
27968
|
}
|
|
27533
27969
|
),
|
|
27534
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
27970
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: emptyMessage })
|
|
27535
27971
|
] });
|
|
27536
27972
|
}
|
|
27537
27973
|
return /* @__PURE__ */ jsxs(
|
|
@@ -27645,12 +28081,16 @@ function ServicePicker({
|
|
|
27645
28081
|
return /* @__PURE__ */ jsxs(
|
|
27646
28082
|
"div",
|
|
27647
28083
|
{
|
|
27648
|
-
className: cn(
|
|
28084
|
+
className: cn(
|
|
28085
|
+
"bg-card text-card-foreground border-border shadow-card flex flex-col rounded-xl border",
|
|
28086
|
+
!fullWidth && "lg:max-w-md",
|
|
28087
|
+
className
|
|
28088
|
+
),
|
|
27649
28089
|
children: [
|
|
27650
28090
|
/* @__PURE__ */ jsxs("div", { className: "p-3", children: [
|
|
27651
|
-
!hideHeading && /* @__PURE__ */ jsx("h2", { className: "mb-3 text-xl font-bold
|
|
28091
|
+
!hideHeading && /* @__PURE__ */ jsx("h2", { className: "text-foreground mb-3 text-xl font-bold", children: heading }),
|
|
27652
28092
|
showSearch && /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
27653
|
-
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3", children: /* @__PURE__ */ jsx(SearchIcon5, { className: "h-5 w-5
|
|
28093
|
+
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3", children: /* @__PURE__ */ jsx(SearchIcon5, { className: "text-muted-foreground h-5 w-5" }) }),
|
|
27654
28094
|
/* @__PURE__ */ jsx(
|
|
27655
28095
|
Input,
|
|
27656
28096
|
{
|
|
@@ -27665,8 +28105,8 @@ function ServicePicker({
|
|
|
27665
28105
|
] })
|
|
27666
28106
|
] }),
|
|
27667
28107
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-3", children: [
|
|
27668
|
-
error && /* @__PURE__ */ jsx("div", { className: "mb-4 rounded-lg
|
|
27669
|
-
loading ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2
|
|
28108
|
+
error && /* @__PURE__ */ jsx("div", { className: "bg-destructive/10 text-destructive mb-4 rounded-lg p-4", children: /* @__PURE__ */ jsx("strong", { children: error }) }),
|
|
28109
|
+
loading ? /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground flex items-center gap-2", children: [
|
|
27670
28110
|
/* @__PURE__ */ jsx(SpinnerIcon5, { className: "h-5 w-5 animate-spin" }),
|
|
27671
28111
|
/* @__PURE__ */ jsx("span", { children: "Loading available services..." })
|
|
27672
28112
|
] }) : isSearching ? (
|
|
@@ -27680,7 +28120,7 @@ function ServicePicker({
|
|
|
27680
28120
|
multiple
|
|
27681
28121
|
},
|
|
27682
28122
|
service.id
|
|
27683
|
-
)) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("div", { className: "
|
|
28123
|
+
)) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground rounded-lg p-4", children: /* @__PURE__ */ jsx("strong", { children: emptyMessage }) }) }) })
|
|
27684
28124
|
) : (
|
|
27685
28125
|
// Grouped list - accordion style
|
|
27686
28126
|
/* @__PURE__ */ jsx("ul", { className: "space-y-1", children: filteredGroups.length > 0 ? filteredGroups.map((group) => /* @__PURE__ */ jsx(
|
|
@@ -27695,7 +28135,7 @@ function ServicePicker({
|
|
|
27695
28135
|
multiple
|
|
27696
28136
|
},
|
|
27697
28137
|
group.id
|
|
27698
|
-
)) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("div", { className: "
|
|
28138
|
+
)) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground rounded-lg p-4", children: /* @__PURE__ */ jsx("strong", { children: emptyMessage }) }) }) })
|
|
27699
28139
|
)
|
|
27700
28140
|
] })
|
|
27701
28141
|
]
|
|
@@ -27723,10 +28163,10 @@ function ServiceGroupItem({
|
|
|
27723
28163
|
onClick: () => onToggleGroup(group.id),
|
|
27724
28164
|
className: cn(
|
|
27725
28165
|
"flex w-full items-center justify-between rounded-lg px-3 py-2",
|
|
27726
|
-
"text-left text-sm font-medium",
|
|
27727
|
-
"hover:bg-
|
|
28166
|
+
"text-muted-foreground text-left text-sm font-medium",
|
|
28167
|
+
"hover:bg-muted",
|
|
27728
28168
|
"transition-colors",
|
|
27729
|
-
depth > 0 && "ml-4
|
|
28169
|
+
depth > 0 && "ml-4"
|
|
27730
28170
|
),
|
|
27731
28171
|
"aria-expanded": isExpanded,
|
|
27732
28172
|
children: [
|
|
@@ -27735,7 +28175,7 @@ function ServiceGroupItem({
|
|
|
27735
28175
|
hasSelection && /* @__PURE__ */ jsx(
|
|
27736
28176
|
"span",
|
|
27737
28177
|
{
|
|
27738
|
-
className: "bg-
|
|
28178
|
+
className: "bg-primary h-2 w-2 rounded-full",
|
|
27739
28179
|
"aria-label": "Has selected items"
|
|
27740
28180
|
}
|
|
27741
28181
|
)
|
|
@@ -27744,7 +28184,7 @@ function ServiceGroupItem({
|
|
|
27744
28184
|
ChevronIcon2,
|
|
27745
28185
|
{
|
|
27746
28186
|
className: cn(
|
|
27747
|
-
"h-5 w-5 transition-transform",
|
|
28187
|
+
"text-muted-foreground h-5 w-5 transition-transform",
|
|
27748
28188
|
isExpanded && "rotate-180"
|
|
27749
28189
|
)
|
|
27750
28190
|
}
|
|
@@ -27791,42 +28231,62 @@ function ServiceItem({
|
|
|
27791
28231
|
{
|
|
27792
28232
|
className: cn(
|
|
27793
28233
|
"flex cursor-pointer items-center gap-3 rounded-lg px-3 py-2",
|
|
27794
|
-
"hover:bg-
|
|
28234
|
+
"hover:bg-muted",
|
|
27795
28235
|
"transition-colors",
|
|
27796
28236
|
service.disabled && "cursor-not-allowed opacity-50"
|
|
27797
28237
|
),
|
|
27798
28238
|
children: [
|
|
27799
|
-
multiple ? /* @__PURE__ */
|
|
27800
|
-
|
|
27801
|
-
|
|
27802
|
-
|
|
27803
|
-
|
|
27804
|
-
|
|
27805
|
-
|
|
27806
|
-
|
|
27807
|
-
|
|
27808
|
-
|
|
27809
|
-
|
|
27810
|
-
|
|
27811
|
-
|
|
27812
|
-
|
|
27813
|
-
|
|
27814
|
-
|
|
27815
|
-
|
|
27816
|
-
|
|
27817
|
-
|
|
28239
|
+
multiple ? /* @__PURE__ */ jsxs("span", { className: "relative inline-flex shrink-0 items-center justify-center", children: [
|
|
28240
|
+
/* @__PURE__ */ jsx(
|
|
28241
|
+
"input",
|
|
28242
|
+
{
|
|
28243
|
+
type: "checkbox",
|
|
28244
|
+
checked: selected,
|
|
28245
|
+
onChange: onToggle,
|
|
28246
|
+
disabled: service.disabled,
|
|
28247
|
+
className: cn(
|
|
28248
|
+
"peer h-4 w-4 shrink-0 appearance-none rounded",
|
|
28249
|
+
"border-input bg-background border-2",
|
|
28250
|
+
"cursor-pointer transition-all duration-150",
|
|
28251
|
+
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
|
|
28252
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
28253
|
+
"checked:bg-primary-500 checked:border-primary-500"
|
|
28254
|
+
)
|
|
28255
|
+
}
|
|
28256
|
+
),
|
|
28257
|
+
/* @__PURE__ */ jsx(CheckIcon4, { className: "pointer-events-none absolute h-3 w-3 text-white opacity-0 transition-opacity peer-checked:opacity-100" })
|
|
28258
|
+
] }) : /* @__PURE__ */ jsxs("span", { className: "relative inline-flex shrink-0 items-center justify-center", children: [
|
|
28259
|
+
/* @__PURE__ */ jsx(
|
|
28260
|
+
"input",
|
|
28261
|
+
{
|
|
28262
|
+
type: "radio",
|
|
28263
|
+
checked: selected,
|
|
28264
|
+
onChange: onToggle,
|
|
28265
|
+
disabled: service.disabled,
|
|
28266
|
+
className: cn(
|
|
28267
|
+
"peer h-4 w-4 shrink-0 appearance-none rounded-full",
|
|
28268
|
+
"border-input bg-background border-2",
|
|
28269
|
+
"cursor-pointer transition-all duration-150",
|
|
28270
|
+
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
|
|
28271
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
28272
|
+
"checked:border-primary-500"
|
|
28273
|
+
)
|
|
28274
|
+
}
|
|
28275
|
+
),
|
|
28276
|
+
/* @__PURE__ */ jsx("span", { className: "bg-primary-500 pointer-events-none absolute h-2 w-2 scale-0 rounded-full transition-transform peer-checked:scale-100" })
|
|
28277
|
+
] }),
|
|
27818
28278
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
27819
28279
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
27820
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium
|
|
27821
|
-
service.code && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
28280
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground text-sm font-medium", children: service.name }),
|
|
28281
|
+
service.code && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground text-xs", children: [
|
|
27822
28282
|
"(",
|
|
27823
28283
|
service.code,
|
|
27824
28284
|
")"
|
|
27825
28285
|
] })
|
|
27826
28286
|
] }),
|
|
27827
|
-
service.description && /* @__PURE__ */ jsx("p", { className: "
|
|
28287
|
+
service.description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground truncate text-xs", children: service.description })
|
|
27828
28288
|
] }),
|
|
27829
|
-
service.price !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium
|
|
28289
|
+
service.price !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-foreground text-sm font-medium", children: [
|
|
27830
28290
|
"$",
|
|
27831
28291
|
service.price.toFixed(2)
|
|
27832
28292
|
] })
|
|
@@ -27834,6 +28294,19 @@ function ServiceItem({
|
|
|
27834
28294
|
}
|
|
27835
28295
|
) });
|
|
27836
28296
|
}
|
|
28297
|
+
function CheckIcon4({ className }) {
|
|
28298
|
+
return /* @__PURE__ */ jsx(
|
|
28299
|
+
"svg",
|
|
28300
|
+
{
|
|
28301
|
+
className,
|
|
28302
|
+
fill: "none",
|
|
28303
|
+
viewBox: "0 0 24 24",
|
|
28304
|
+
stroke: "currentColor",
|
|
28305
|
+
strokeWidth: 3,
|
|
28306
|
+
children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" })
|
|
28307
|
+
}
|
|
28308
|
+
);
|
|
28309
|
+
}
|
|
27837
28310
|
function SearchIcon5({ className }) {
|
|
27838
28311
|
return /* @__PURE__ */ jsx(
|
|
27839
28312
|
"svg",
|
|
@@ -28479,7 +28952,7 @@ function SetupServiceModal({
|
|
|
28479
28952
|
const isValid = formData.name.trim() && formData.price >= 0;
|
|
28480
28953
|
return /* @__PURE__ */ jsx(Modal, { open, onOpenChange, size: "lg", children: /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, children: [
|
|
28481
28954
|
/* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(ModalTitle, { children: title }) }),
|
|
28482
|
-
/* @__PURE__ */ jsxs(
|
|
28955
|
+
/* @__PURE__ */ jsxs(ModalBody, { className: "min-w-[320px] space-y-4", children: [
|
|
28483
28956
|
errorMessage && /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-red-200 bg-red-50 p-3 dark:border-red-800 dark:bg-red-900/20", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-red-600 dark:text-red-400", children: errorMessage }) }),
|
|
28484
28957
|
showServicePicker && availableServices.length > 0 && /* @__PURE__ */ jsx(
|
|
28485
28958
|
Select,
|
|
@@ -28510,7 +28983,7 @@ function SetupServiceModal({
|
|
|
28510
28983
|
"label",
|
|
28511
28984
|
{
|
|
28512
28985
|
htmlFor: "setup-service-description",
|
|
28513
|
-
className: "mb-1 block text-sm font-medium
|
|
28986
|
+
className: "text-foreground mb-1 block text-sm font-medium",
|
|
28514
28987
|
children: "Description"
|
|
28515
28988
|
}
|
|
28516
28989
|
),
|
|
@@ -28518,7 +28991,7 @@ function SetupServiceModal({
|
|
|
28518
28991
|
"textarea",
|
|
28519
28992
|
{
|
|
28520
28993
|
id: "setup-service-description",
|
|
28521
|
-
className: "w-full rounded-md border
|
|
28994
|
+
className: "bg-background text-foreground border-input focus:ring-ring w-full rounded-md border px-3 py-2 shadow-sm focus:ring-2 focus:outline-none",
|
|
28522
28995
|
rows: 3,
|
|
28523
28996
|
value: formData.description,
|
|
28524
28997
|
onChange: (e) => setFormData((prev) => ({
|
|
@@ -28547,12 +29020,12 @@ function SetupServiceModal({
|
|
|
28547
29020
|
"label",
|
|
28548
29021
|
{
|
|
28549
29022
|
htmlFor: "setup-service-price",
|
|
28550
|
-
className: "mb-1 block text-sm font-medium
|
|
29023
|
+
className: "text-foreground mb-1 block text-sm font-medium",
|
|
28551
29024
|
children: "Base Price"
|
|
28552
29025
|
}
|
|
28553
29026
|
),
|
|
28554
29027
|
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
28555
|
-
/* @__PURE__ */ jsx("span", { className: "absolute top-1/2 left-3 -translate-y-1/2
|
|
29028
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground absolute top-1/2 left-3 -translate-y-1/2", children: "$" }),
|
|
28556
29029
|
/* @__PURE__ */ jsx(
|
|
28557
29030
|
"input",
|
|
28558
29031
|
{
|
|
@@ -28560,7 +29033,7 @@ function SetupServiceModal({
|
|
|
28560
29033
|
type: "number",
|
|
28561
29034
|
min: "0",
|
|
28562
29035
|
step: "0.01",
|
|
28563
|
-
className: "w-full rounded-md border
|
|
29036
|
+
className: "bg-background text-foreground border-input focus:ring-ring w-full rounded-md border py-2 pr-4 pl-7 shadow-sm focus:ring-2 focus:outline-none",
|
|
28564
29037
|
value: formData.price,
|
|
28565
29038
|
onChange: (e) => setFormData((prev) => ({
|
|
28566
29039
|
...prev,
|
|
@@ -28573,14 +29046,15 @@ function SetupServiceModal({
|
|
|
28573
29046
|
] })
|
|
28574
29047
|
] }),
|
|
28575
29048
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3 pt-2", children: [
|
|
28576
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
28577
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
28578
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
28579
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
29049
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
|
|
29050
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
29051
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm font-medium", children: "Currently Offered" }),
|
|
29052
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Service is available for orders" })
|
|
28580
29053
|
] }),
|
|
28581
29054
|
/* @__PURE__ */ jsx(
|
|
28582
29055
|
Switch,
|
|
28583
29056
|
{
|
|
29057
|
+
className: "flex-shrink-0",
|
|
28584
29058
|
checked: formData.currentlyOffered,
|
|
28585
29059
|
onCheckedChange: (checked) => setFormData((prev) => ({
|
|
28586
29060
|
...prev,
|
|
@@ -28589,14 +29063,15 @@ function SetupServiceModal({
|
|
|
28589
29063
|
}
|
|
28590
29064
|
)
|
|
28591
29065
|
] }),
|
|
28592
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
28593
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
28594
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
28595
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
29066
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
|
|
29067
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
29068
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm font-medium", children: "Limited Inventory" }),
|
|
29069
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Track inventory for this service" })
|
|
28596
29070
|
] }),
|
|
28597
29071
|
/* @__PURE__ */ jsx(
|
|
28598
29072
|
Switch,
|
|
28599
29073
|
{
|
|
29074
|
+
className: "flex-shrink-0",
|
|
28600
29075
|
checked: formData.limitedInventory,
|
|
28601
29076
|
onCheckedChange: (checked) => setFormData((prev) => ({
|
|
28602
29077
|
...prev,
|
|
@@ -28605,7 +29080,7 @@ function SetupServiceModal({
|
|
|
28605
29080
|
}
|
|
28606
29081
|
)
|
|
28607
29082
|
] }),
|
|
28608
|
-
formData.limitedInventory && /* @__PURE__ */ jsx("div", { className: "ml-4 border-l-2
|
|
29083
|
+
formData.limitedInventory && /* @__PURE__ */ jsx("div", { className: "border-border ml-4 border-l-2 pl-4", children: /* @__PURE__ */ jsx(
|
|
28609
29084
|
Input,
|
|
28610
29085
|
{
|
|
28611
29086
|
label: "Initial Inventory",
|
|
@@ -28619,14 +29094,15 @@ function SetupServiceModal({
|
|
|
28619
29094
|
placeholder: "Enter quantity"
|
|
28620
29095
|
}
|
|
28621
29096
|
) }),
|
|
28622
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
28623
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
28624
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium
|
|
28625
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
29097
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
|
|
29098
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
29099
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm font-medium", children: "Auto-Accept Referrals" }),
|
|
29100
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: "Automatically accept incoming referrals" })
|
|
28626
29101
|
] }),
|
|
28627
29102
|
/* @__PURE__ */ jsx(
|
|
28628
29103
|
Switch,
|
|
28629
29104
|
{
|
|
29105
|
+
className: "flex-shrink-0",
|
|
28630
29106
|
checked: formData.autoAcceptReferrals,
|
|
28631
29107
|
onCheckedChange: (checked) => setFormData((prev) => ({
|
|
28632
29108
|
...prev,
|
|
@@ -30694,7 +31170,7 @@ function SSOConfigForm({
|
|
|
30694
31170
|
] })
|
|
30695
31171
|
] });
|
|
30696
31172
|
}
|
|
30697
|
-
function
|
|
31173
|
+
function CheckIcon5({ className }) {
|
|
30698
31174
|
return /* @__PURE__ */ jsx(
|
|
30699
31175
|
"svg",
|
|
30700
31176
|
{
|
|
@@ -30779,66 +31255,89 @@ function StepIndicator({
|
|
|
30779
31255
|
if (allowCompletedStepsOnly) return index <= currentStep;
|
|
30780
31256
|
return true;
|
|
30781
31257
|
};
|
|
30782
|
-
|
|
30783
|
-
"
|
|
31258
|
+
const circleButton = (step, index, status, clickable) => /* @__PURE__ */ jsx(
|
|
31259
|
+
"button",
|
|
30784
31260
|
{
|
|
30785
|
-
|
|
30786
|
-
|
|
30787
|
-
|
|
30788
|
-
|
|
30789
|
-
|
|
30790
|
-
|
|
30791
|
-
|
|
30792
|
-
|
|
31261
|
+
type: "button",
|
|
31262
|
+
onClick: () => handleStepClick(index),
|
|
31263
|
+
disabled: !clickable,
|
|
31264
|
+
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-600 focus:ring-primary-500 dark:bg-primary-500 text-white" : status === "current" ? "bg-primary-600 ring-primary-600 focus:ring-primary-500 dark:bg-primary-500 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(),
|
|
31265
|
+
"aria-current": status === "current" ? "step" : void 0,
|
|
31266
|
+
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(
|
|
31267
|
+
"span",
|
|
31268
|
+
{
|
|
31269
|
+
className: status === "current" ? "text-white" : "text-neutral-500 dark:text-neutral-300",
|
|
31270
|
+
children: index + 1
|
|
31271
|
+
}
|
|
31272
|
+
)
|
|
31273
|
+
}
|
|
31274
|
+
);
|
|
31275
|
+
const stepLabel = (step, status, horizontal) => /* @__PURE__ */ jsxs("div", { className: `${horizontal ? "text-center" : "flex-1"} ${sizes.text}`, children: [
|
|
31276
|
+
/* @__PURE__ */ jsxs(
|
|
31277
|
+
"p",
|
|
31278
|
+
{
|
|
31279
|
+
className: `font-medium ${step.hasError ? "text-red-600 dark:text-red-400" : status === "completed" || status === "current" ? "text-neutral-900 dark:text-white" : "text-neutral-500 dark:text-neutral-400"}`.trim(),
|
|
31280
|
+
children: [
|
|
31281
|
+
step.label,
|
|
31282
|
+
step.optional && /* @__PURE__ */ jsxs("span", { className: "font-normal text-neutral-500 dark:text-neutral-400", children: [
|
|
31283
|
+
" ",
|
|
31284
|
+
"(optional)"
|
|
31285
|
+
] })
|
|
31286
|
+
]
|
|
31287
|
+
}
|
|
31288
|
+
),
|
|
31289
|
+
step.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-neutral-500 dark:text-neutral-400", children: step.description })
|
|
31290
|
+
] });
|
|
31291
|
+
if (orientation === "horizontal") {
|
|
31292
|
+
return /* @__PURE__ */ jsx("nav", { className: `flex ${className}`.trim(), "aria-label": "Progress", children: steps.map((step, index) => {
|
|
31293
|
+
const status = getStepStatus(index);
|
|
31294
|
+
const isLast = index === steps.length - 1;
|
|
31295
|
+
const clickable = isClickable(index);
|
|
31296
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col items-center", children: [
|
|
31297
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center", children: [
|
|
31298
|
+
index > 0 ? /* @__PURE__ */ jsx(
|
|
30793
31299
|
"div",
|
|
30794
31300
|
{
|
|
30795
|
-
className: `flex
|
|
30796
|
-
|
|
30797
|
-
/* @__PURE__ */ jsx(
|
|
30798
|
-
"button",
|
|
30799
|
-
{
|
|
30800
|
-
type: "button",
|
|
30801
|
-
onClick: () => handleStepClick(index),
|
|
30802
|
-
disabled: !clickable,
|
|
30803
|
-
className: ` ${sizes.circle} flex items-center justify-center rounded-full font-medium transition-all duration-200 focus:ring-2 focus:ring-offset-2 focus:outline-none ${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-blue-600 text-white focus:ring-blue-500 dark:bg-blue-500" : status === "current" ? "bg-blue-600 text-white ring-2 ring-blue-600 ring-offset-2 focus:ring-blue-500 dark:bg-blue-500 dark:ring-blue-500" : "bg-gray-200 text-gray-500 focus:ring-gray-400 dark:bg-gray-700 dark:text-gray-400"} `.trim(),
|
|
30804
|
-
"aria-current": status === "current" ? "step" : void 0,
|
|
30805
|
-
children: step.hasError ? /* @__PURE__ */ jsx(ErrorIcon, { className: "h-4 w-4" }) : status === "completed" ? step.icon || /* @__PURE__ */ jsx(CheckIcon4, { className: "h-4 w-4" }) : step.icon || /* @__PURE__ */ jsx("span", { children: index + 1 })
|
|
30806
|
-
}
|
|
30807
|
-
),
|
|
30808
|
-
/* @__PURE__ */ jsxs(
|
|
30809
|
-
"div",
|
|
30810
|
-
{
|
|
30811
|
-
className: ` ${orientation === "horizontal" ? "text-center" : "flex-1"} ${sizes.text} `.trim(),
|
|
30812
|
-
children: [
|
|
30813
|
-
/* @__PURE__ */ jsxs(
|
|
30814
|
-
"p",
|
|
30815
|
-
{
|
|
30816
|
-
className: `font-medium ${step.hasError ? "text-red-600 dark:text-red-400" : status === "completed" || status === "current" ? "text-gray-900 dark:text-white" : "text-gray-500 dark:text-gray-400"} `.trim(),
|
|
30817
|
-
children: [
|
|
30818
|
-
step.label,
|
|
30819
|
-
step.optional && /* @__PURE__ */ jsxs("span", { className: "font-normal text-gray-500 dark:text-gray-400", children: [
|
|
30820
|
-
" ",
|
|
30821
|
-
"(optional)"
|
|
30822
|
-
] })
|
|
30823
|
-
]
|
|
30824
|
-
}
|
|
30825
|
-
),
|
|
30826
|
-
step.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-gray-500 dark:text-gray-400", children: step.description })
|
|
30827
|
-
]
|
|
30828
|
-
}
|
|
30829
|
-
)
|
|
30830
|
-
]
|
|
31301
|
+
className: `flex-1 ${sizes.line} ${index <= currentStep ? "bg-primary-600 dark:bg-primary-500" : "bg-neutral-200 dark:bg-neutral-700"}`,
|
|
31302
|
+
"aria-hidden": "true"
|
|
30831
31303
|
}
|
|
30832
|
-
),
|
|
31304
|
+
) : /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
31305
|
+
circleButton(step, index, status, clickable),
|
|
31306
|
+
!isLast ? /* @__PURE__ */ jsx(
|
|
31307
|
+
"div",
|
|
31308
|
+
{
|
|
31309
|
+
className: `flex-1 ${sizes.line} ${index < currentStep ? "bg-primary-600 dark:bg-primary-500" : "bg-neutral-200 dark:bg-neutral-700"}`,
|
|
31310
|
+
"aria-hidden": "true"
|
|
31311
|
+
}
|
|
31312
|
+
) : /* @__PURE__ */ jsx("div", { className: "flex-1" })
|
|
31313
|
+
] }),
|
|
31314
|
+
/* @__PURE__ */ jsx("div", { className: "mt-2", children: stepLabel(step, status, true) })
|
|
31315
|
+
] }, step.id);
|
|
31316
|
+
}) });
|
|
31317
|
+
}
|
|
31318
|
+
return /* @__PURE__ */ jsx(
|
|
31319
|
+
"nav",
|
|
31320
|
+
{
|
|
31321
|
+
className: `flex flex-col ${sizes.gap} ${className}`.trim(),
|
|
31322
|
+
"aria-label": "Progress",
|
|
31323
|
+
children: steps.map((step, index) => {
|
|
31324
|
+
const status = getStepStatus(index);
|
|
31325
|
+
const isLast = index === steps.length - 1;
|
|
31326
|
+
const clickable = isClickable(index);
|
|
31327
|
+
return /* @__PURE__ */ jsxs(React46.Fragment, { children: [
|
|
31328
|
+
/* @__PURE__ */ jsxs("div", { className: `flex flex-row items-center ${sizes.gap}`, children: [
|
|
31329
|
+
circleButton(step, index, status, clickable),
|
|
31330
|
+
stepLabel(step, status, false)
|
|
31331
|
+
] }),
|
|
30833
31332
|
!isLast && /* @__PURE__ */ jsx(
|
|
30834
31333
|
"div",
|
|
30835
31334
|
{
|
|
30836
|
-
className: ` ${
|
|
31335
|
+
className: `flex min-h-4 justify-center ${size === "sm" ? "w-6" : size === "lg" ? "w-10" : "w-8"}`,
|
|
30837
31336
|
"aria-hidden": "true",
|
|
30838
31337
|
children: /* @__PURE__ */ jsx(
|
|
30839
31338
|
"div",
|
|
30840
31339
|
{
|
|
30841
|
-
className: `
|
|
31340
|
+
className: `h-full min-h-4 ${sizes.line} ${index < currentStep ? "bg-primary-600 dark:bg-primary-500" : "bg-neutral-200 dark:bg-neutral-700"}`
|
|
30842
31341
|
}
|
|
30843
31342
|
)
|
|
30844
31343
|
}
|
|
@@ -30982,11 +31481,68 @@ function TimelineProgress({
|
|
|
30982
31481
|
steps,
|
|
30983
31482
|
currentStep,
|
|
30984
31483
|
showTimestamps = true,
|
|
31484
|
+
size = "md",
|
|
31485
|
+
pulse = true,
|
|
30985
31486
|
className
|
|
30986
31487
|
}) {
|
|
30987
31488
|
const visibleSteps = steps.filter((step) => !step.hidden);
|
|
30988
31489
|
const currentIndex = visibleSteps.findIndex((s) => s.key === currentStep);
|
|
30989
|
-
const
|
|
31490
|
+
const sizeConfig = {
|
|
31491
|
+
sm: {
|
|
31492
|
+
wrapper: "h-6 w-6",
|
|
31493
|
+
completed: "h-5 w-5",
|
|
31494
|
+
current: "h-6 w-6",
|
|
31495
|
+
pending: "h-5 w-5",
|
|
31496
|
+
error: "h-6 w-6",
|
|
31497
|
+
checkIcon: "h-3 w-3",
|
|
31498
|
+
xIcon: "h-3.5 w-3.5",
|
|
31499
|
+
currentDot: "h-1.5 w-1.5",
|
|
31500
|
+
pendingDot: "h-1.5 w-1.5",
|
|
31501
|
+
connector: "h-px",
|
|
31502
|
+
timestamp: "text-[10px]",
|
|
31503
|
+
label: "text-[10px]",
|
|
31504
|
+
padding: "py-2",
|
|
31505
|
+
labelMargin: "mt-1.5",
|
|
31506
|
+
timestampMargin: "mb-1"
|
|
31507
|
+
},
|
|
31508
|
+
md: {
|
|
31509
|
+
wrapper: "h-10 w-10",
|
|
31510
|
+
completed: "h-8 w-8",
|
|
31511
|
+
current: "h-10 w-10",
|
|
31512
|
+
pending: "h-8 w-8",
|
|
31513
|
+
error: "h-10 w-10",
|
|
31514
|
+
checkIcon: "h-4 w-4",
|
|
31515
|
+
xIcon: "h-5 w-5",
|
|
31516
|
+
currentDot: "h-2.5 w-2.5",
|
|
31517
|
+
pendingDot: "h-2 w-2",
|
|
31518
|
+
connector: "h-0.5",
|
|
31519
|
+
timestamp: "text-xs",
|
|
31520
|
+
label: "text-xs",
|
|
31521
|
+
padding: "py-4",
|
|
31522
|
+
labelMargin: "mt-2.5",
|
|
31523
|
+
timestampMargin: "mb-2"
|
|
31524
|
+
},
|
|
31525
|
+
lg: {
|
|
31526
|
+
wrapper: "h-14 w-14",
|
|
31527
|
+
completed: "h-11 w-11",
|
|
31528
|
+
current: "h-14 w-14",
|
|
31529
|
+
pending: "h-11 w-11",
|
|
31530
|
+
error: "h-14 w-14",
|
|
31531
|
+
checkIcon: "h-5 w-5",
|
|
31532
|
+
xIcon: "h-6 w-6",
|
|
31533
|
+
currentDot: "h-3.5 w-3.5",
|
|
31534
|
+
pendingDot: "h-2.5 w-2.5",
|
|
31535
|
+
connector: "h-1",
|
|
31536
|
+
timestamp: "text-sm",
|
|
31537
|
+
label: "text-sm",
|
|
31538
|
+
padding: "py-6",
|
|
31539
|
+
labelMargin: "mt-3",
|
|
31540
|
+
timestampMargin: "mb-3"
|
|
31541
|
+
}
|
|
31542
|
+
};
|
|
31543
|
+
const sizes = sizeConfig[size];
|
|
31544
|
+
const getStepState = (index, step) => {
|
|
31545
|
+
if (step.error) return "error";
|
|
30990
31546
|
if (index < currentIndex) return "completed";
|
|
30991
31547
|
if (index === currentIndex) return "current";
|
|
30992
31548
|
return "pending";
|
|
@@ -30998,77 +31554,123 @@ function TimelineProgress({
|
|
|
30998
31554
|
return /* @__PURE__ */ jsx(
|
|
30999
31555
|
"div",
|
|
31000
31556
|
{
|
|
31001
|
-
className: cn("
|
|
31557
|
+
className: cn(sizes.padding, "overflow-x-auto", className),
|
|
31002
31558
|
role: "progressbar",
|
|
31003
31559
|
"aria-valuenow": currentIndex + 1,
|
|
31004
31560
|
"aria-valuemin": 1,
|
|
31005
31561
|
"aria-valuemax": visibleSteps.length,
|
|
31006
|
-
children: visibleSteps.map((step, index) => {
|
|
31007
|
-
const state = getStepState(index);
|
|
31562
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative flex items-start", children: visibleSteps.map((step, index) => {
|
|
31563
|
+
const state = getStepState(index, step);
|
|
31008
31564
|
const isLast = index === visibleSteps.length - 1;
|
|
31009
|
-
return /* @__PURE__ */ jsxs(
|
|
31010
|
-
|
|
31011
|
-
|
|
31012
|
-
|
|
31013
|
-
|
|
31014
|
-
|
|
31565
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col items-center", children: [
|
|
31566
|
+
showTimestamps && /* @__PURE__ */ jsx(
|
|
31567
|
+
"div",
|
|
31568
|
+
{
|
|
31569
|
+
className: cn(
|
|
31570
|
+
"h-4 text-center text-neutral-500 dark:text-neutral-400",
|
|
31571
|
+
sizes.timestamp,
|
|
31572
|
+
sizes.timestampMargin
|
|
31573
|
+
),
|
|
31574
|
+
children: step.completedAt ? formatTimestamp(step.completedAt) : "\xA0"
|
|
31575
|
+
}
|
|
31576
|
+
),
|
|
31577
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex w-full items-center", children: [
|
|
31578
|
+
index > 0 && /* @__PURE__ */ jsx(
|
|
31579
|
+
"div",
|
|
31580
|
+
{
|
|
31581
|
+
className: cn(
|
|
31582
|
+
"flex-1",
|
|
31583
|
+
sizes.connector,
|
|
31584
|
+
state === "completed" || state === "current" || state === "error" ? "bg-primary-600 dark:bg-primary-500" : "bg-neutral-200 dark:bg-neutral-700"
|
|
31585
|
+
)
|
|
31586
|
+
}
|
|
31015
31587
|
),
|
|
31016
|
-
|
|
31017
|
-
|
|
31018
|
-
|
|
31019
|
-
|
|
31020
|
-
|
|
31021
|
-
|
|
31022
|
-
|
|
31023
|
-
"h-1 flex-1",
|
|
31024
|
-
index === 0 ? "bg-transparent" : "",
|
|
31025
|
-
state === "completed" || state === "current" && index > 0 ? "bg-brand-500" : "bg-gray-200 dark:bg-gray-700"
|
|
31026
|
-
)
|
|
31027
|
-
}
|
|
31588
|
+
index === 0 && /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
31589
|
+
/* @__PURE__ */ jsx(
|
|
31590
|
+
"div",
|
|
31591
|
+
{
|
|
31592
|
+
className: cn(
|
|
31593
|
+
"flex shrink-0 items-center justify-center",
|
|
31594
|
+
sizes.wrapper
|
|
31028
31595
|
),
|
|
31029
|
-
/* @__PURE__ */ jsxs(
|
|
31596
|
+
children: /* @__PURE__ */ jsxs(
|
|
31030
31597
|
"div",
|
|
31031
31598
|
{
|
|
31032
31599
|
className: cn(
|
|
31033
|
-
"relative z-10 flex
|
|
31034
|
-
state === "completed" &&
|
|
31035
|
-
|
|
31036
|
-
|
|
31600
|
+
"relative z-10 flex items-center justify-center rounded-full transition-all duration-200",
|
|
31601
|
+
state === "completed" && cn(
|
|
31602
|
+
"bg-primary-100 text-primary-600 ring-primary-200 dark:bg-primary-900/40 dark:text-primary-400 dark:ring-primary-800 ring-2",
|
|
31603
|
+
sizes.completed
|
|
31604
|
+
),
|
|
31605
|
+
state === "current" && cn(
|
|
31606
|
+
"bg-primary-500 shadow-primary-500/30 ring-primary-100 dark:bg-primary-500 dark:ring-primary-900/50 text-white shadow-md ring-4",
|
|
31607
|
+
sizes.current,
|
|
31608
|
+
pulse && "animate-pulse"
|
|
31609
|
+
),
|
|
31610
|
+
state === "pending" && cn(
|
|
31611
|
+
"bg-neutral-100 text-neutral-400 ring-2 ring-neutral-200 dark:bg-neutral-800 dark:text-neutral-500 dark:ring-neutral-700",
|
|
31612
|
+
sizes.pending
|
|
31613
|
+
),
|
|
31614
|
+
state === "error" && cn(
|
|
31615
|
+
"bg-red-500 text-white shadow-md ring-4 shadow-red-500/30 ring-red-100 dark:bg-red-500 dark:ring-red-900/50",
|
|
31616
|
+
sizes.error
|
|
31617
|
+
)
|
|
31037
31618
|
),
|
|
31038
31619
|
children: [
|
|
31039
|
-
state === "completed" && /* @__PURE__ */ jsx(
|
|
31040
|
-
state === "current" && /* @__PURE__ */ jsx(
|
|
31620
|
+
state === "completed" && /* @__PURE__ */ jsx(CheckIcon6, { className: sizes.checkIcon }),
|
|
31621
|
+
state === "current" && /* @__PURE__ */ jsx(
|
|
31622
|
+
"div",
|
|
31623
|
+
{
|
|
31624
|
+
className: cn(
|
|
31625
|
+
"rounded-full bg-white",
|
|
31626
|
+
sizes.currentDot
|
|
31627
|
+
)
|
|
31628
|
+
}
|
|
31629
|
+
),
|
|
31630
|
+
state === "pending" && /* @__PURE__ */ jsx(
|
|
31631
|
+
"div",
|
|
31632
|
+
{
|
|
31633
|
+
className: cn(
|
|
31634
|
+
"rounded-full bg-neutral-300 dark:bg-neutral-600",
|
|
31635
|
+
sizes.pendingDot
|
|
31636
|
+
)
|
|
31637
|
+
}
|
|
31638
|
+
),
|
|
31639
|
+
state === "error" && /* @__PURE__ */ jsx(XIcon4, { className: sizes.xIcon })
|
|
31041
31640
|
]
|
|
31042
31641
|
}
|
|
31043
|
-
),
|
|
31044
|
-
/* @__PURE__ */ jsx(
|
|
31045
|
-
"div",
|
|
31046
|
-
{
|
|
31047
|
-
className: cn(
|
|
31048
|
-
"h-1 flex-1",
|
|
31049
|
-
isLast ? "bg-transparent" : "",
|
|
31050
|
-
state === "completed" ? "bg-brand-500" : "bg-gray-200 dark:bg-gray-700"
|
|
31051
|
-
)
|
|
31052
|
-
}
|
|
31053
31642
|
)
|
|
31054
|
-
|
|
31055
|
-
|
|
31056
|
-
|
|
31057
|
-
|
|
31058
|
-
|
|
31059
|
-
|
|
31060
|
-
|
|
31061
|
-
|
|
31062
|
-
|
|
31063
|
-
|
|
31064
|
-
|
|
31065
|
-
|
|
31066
|
-
|
|
31067
|
-
|
|
31068
|
-
|
|
31069
|
-
|
|
31070
|
-
|
|
31071
|
-
|
|
31643
|
+
}
|
|
31644
|
+
),
|
|
31645
|
+
!isLast && /* @__PURE__ */ jsx(
|
|
31646
|
+
"div",
|
|
31647
|
+
{
|
|
31648
|
+
className: cn(
|
|
31649
|
+
"flex-1",
|
|
31650
|
+
sizes.connector,
|
|
31651
|
+
state === "completed" ? "bg-primary-600 dark:bg-primary-500" : "bg-neutral-200 dark:bg-neutral-700"
|
|
31652
|
+
)
|
|
31653
|
+
}
|
|
31654
|
+
),
|
|
31655
|
+
isLast && /* @__PURE__ */ jsx("div", { className: "flex-1" })
|
|
31656
|
+
] }),
|
|
31657
|
+
/* @__PURE__ */ jsx(
|
|
31658
|
+
"div",
|
|
31659
|
+
{
|
|
31660
|
+
className: cn(
|
|
31661
|
+
"text-center font-medium capitalize",
|
|
31662
|
+
sizes.label,
|
|
31663
|
+
sizes.labelMargin,
|
|
31664
|
+
state === "completed" && "text-primary-700 dark:text-primary-300",
|
|
31665
|
+
state === "current" && "font-semibold text-neutral-900 dark:text-white",
|
|
31666
|
+
state === "pending" && "text-neutral-400 dark:text-neutral-500",
|
|
31667
|
+
state === "error" && "font-semibold text-red-600 dark:text-red-400"
|
|
31668
|
+
),
|
|
31669
|
+
children: step.label
|
|
31670
|
+
}
|
|
31671
|
+
)
|
|
31672
|
+
] }, step.key);
|
|
31673
|
+
}) })
|
|
31072
31674
|
}
|
|
31073
31675
|
);
|
|
31074
31676
|
}
|
|
@@ -31117,48 +31719,56 @@ function TimelineEventList({
|
|
|
31117
31719
|
const getEventColor = (type) => {
|
|
31118
31720
|
switch (type) {
|
|
31119
31721
|
case "message":
|
|
31120
|
-
return "bg-blue-
|
|
31722
|
+
return "bg-blue-50 text-blue-500 ring-blue-100 dark:bg-blue-900/20 dark:text-blue-400 dark:ring-blue-800/40";
|
|
31121
31723
|
case "status":
|
|
31122
|
-
return "bg-green-
|
|
31724
|
+
return "bg-green-50 text-green-500 ring-green-100 dark:bg-green-900/20 dark:text-green-400 dark:ring-green-800/40";
|
|
31123
31725
|
case "attachment":
|
|
31124
|
-
return "bg-purple-
|
|
31726
|
+
return "bg-purple-50 text-purple-500 ring-purple-100 dark:bg-purple-900/20 dark:text-purple-400 dark:ring-purple-800/40";
|
|
31125
31727
|
case "assignment":
|
|
31126
|
-
return "bg-orange-
|
|
31728
|
+
return "bg-orange-50 text-orange-500 ring-orange-100 dark:bg-orange-900/20 dark:text-orange-400 dark:ring-orange-800/40";
|
|
31127
31729
|
case "note":
|
|
31128
|
-
return "bg-
|
|
31730
|
+
return "bg-neutral-50 text-neutral-500 ring-neutral-100 dark:bg-neutral-800/50 dark:text-neutral-400 dark:ring-neutral-700/40";
|
|
31129
31731
|
default:
|
|
31130
|
-
return "bg-
|
|
31732
|
+
return "bg-neutral-50 text-neutral-500 ring-neutral-100 dark:bg-neutral-800/50 dark:text-neutral-400 dark:ring-neutral-700/40";
|
|
31131
31733
|
}
|
|
31132
31734
|
};
|
|
31133
31735
|
if (events.length === 0) {
|
|
31134
|
-
return /* @__PURE__ */ jsx("div", { className: cn("py-8 text-center text-
|
|
31736
|
+
return /* @__PURE__ */ jsx("div", { className: cn("py-8 text-center text-neutral-500", className), children: "No activity yet." });
|
|
31135
31737
|
}
|
|
31136
|
-
return /* @__PURE__ */
|
|
31137
|
-
|
|
31138
|
-
/* @__PURE__ */ jsx(
|
|
31738
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("relative", className), children: [
|
|
31739
|
+
events.length > 1 && /* @__PURE__ */ jsx(
|
|
31139
31740
|
"div",
|
|
31140
31741
|
{
|
|
31141
|
-
className:
|
|
31142
|
-
|
|
31143
|
-
getEventColor(event.type)
|
|
31144
|
-
),
|
|
31145
|
-
children: getEventIcon(event.type)
|
|
31742
|
+
className: "absolute top-0 bottom-0 left-5 w-px bg-neutral-200 dark:bg-neutral-700",
|
|
31743
|
+
"aria-hidden": "true"
|
|
31146
31744
|
}
|
|
31147
31745
|
),
|
|
31148
|
-
/* @__PURE__ */ jsxs("div", { className: "flex
|
|
31149
|
-
/* @__PURE__ */
|
|
31150
|
-
|
|
31151
|
-
|
|
31152
|
-
|
|
31153
|
-
"
|
|
31154
|
-
event.
|
|
31155
|
-
|
|
31746
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-6", children: events.map((event) => /* @__PURE__ */ jsxs("div", { className: "relative flex gap-4", children: [
|
|
31747
|
+
/* @__PURE__ */ jsx(
|
|
31748
|
+
"div",
|
|
31749
|
+
{
|
|
31750
|
+
className: cn(
|
|
31751
|
+
"relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full ring-2",
|
|
31752
|
+
getEventColor(event.type)
|
|
31753
|
+
),
|
|
31754
|
+
children: getEventIcon(event.type)
|
|
31755
|
+
}
|
|
31756
|
+
),
|
|
31757
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 pt-0.5", children: [
|
|
31758
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
|
|
31759
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
31760
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-neutral-900 dark:text-neutral-100", children: event.title }),
|
|
31761
|
+
event.author && /* @__PURE__ */ jsxs("p", { className: "text-sm text-neutral-500 dark:text-neutral-400", children: [
|
|
31762
|
+
"by ",
|
|
31763
|
+
event.author
|
|
31764
|
+
] })
|
|
31765
|
+
] }),
|
|
31766
|
+
/* @__PURE__ */ jsx("time", { className: "shrink-0 pt-0.5 text-xs text-neutral-400 dark:text-neutral-500", children: formatTime4(event.timestamp) })
|
|
31156
31767
|
] }),
|
|
31157
|
-
/* @__PURE__ */ jsx("
|
|
31158
|
-
] })
|
|
31159
|
-
|
|
31160
|
-
|
|
31161
|
-
] }, event.id)) });
|
|
31768
|
+
event.content && /* @__PURE__ */ jsx("p", { className: "mt-1.5 text-sm text-neutral-600 dark:text-neutral-300", children: event.content })
|
|
31769
|
+
] })
|
|
31770
|
+
] }, event.id)) })
|
|
31771
|
+
] });
|
|
31162
31772
|
}
|
|
31163
31773
|
TimelineEventList.displayName = "TimelineEventList";
|
|
31164
31774
|
function OrderConfirmation({
|
|
@@ -31179,21 +31789,21 @@ function OrderConfirmation({
|
|
|
31179
31789
|
role: "dialog",
|
|
31180
31790
|
"aria-modal": "true",
|
|
31181
31791
|
"aria-labelledby": "order-confirmation-title",
|
|
31182
|
-
children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-md rounded-xl bg-white p-6 shadow-xl dark:bg-
|
|
31792
|
+
children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-md rounded-xl bg-white p-6 shadow-xl dark:bg-neutral-800", children: [
|
|
31183
31793
|
/* @__PURE__ */ jsx("div", { className: "mb-6 flex justify-center", children: /* @__PURE__ */ jsx("div", { className: "flex h-20 w-20 items-center justify-center rounded-full bg-green-100 dark:bg-green-900/30", children: /* @__PURE__ */ jsx("div", { className: "animate-bounce", children: /* @__PURE__ */ jsx(PlaneIcon, { className: "h-10 w-10 text-green-600 dark:text-green-400" }) }) }) }),
|
|
31184
31794
|
/* @__PURE__ */ jsx(
|
|
31185
31795
|
"h2",
|
|
31186
31796
|
{
|
|
31187
31797
|
id: "order-confirmation-title",
|
|
31188
|
-
className: "mb-2 text-center text-2xl font-bold text-
|
|
31798
|
+
className: "mb-2 text-center text-2xl font-bold text-neutral-900 dark:text-neutral-100",
|
|
31189
31799
|
children: "Order Submitted!"
|
|
31190
31800
|
}
|
|
31191
31801
|
),
|
|
31192
|
-
orderNumber && /* @__PURE__ */ jsxs("p", { className: "mb-4 text-center text-sm text-
|
|
31802
|
+
orderNumber && /* @__PURE__ */ jsxs("p", { className: "mb-4 text-center text-sm text-neutral-500 dark:text-neutral-400", children: [
|
|
31193
31803
|
"Order #",
|
|
31194
31804
|
orderNumber
|
|
31195
31805
|
] }),
|
|
31196
|
-
/* @__PURE__ */ jsx("p", { className: "mb-6 text-center text-
|
|
31806
|
+
/* @__PURE__ */ jsx("p", { className: "mb-6 text-center text-neutral-600 dark:text-neutral-300", children: message }),
|
|
31197
31807
|
/* @__PURE__ */ jsx(
|
|
31198
31808
|
"button",
|
|
31199
31809
|
{
|
|
@@ -31201,8 +31811,8 @@ function OrderConfirmation({
|
|
|
31201
31811
|
onClick: onClose,
|
|
31202
31812
|
className: cn(
|
|
31203
31813
|
"w-full rounded-lg px-4 py-3 font-medium",
|
|
31204
|
-
"bg-
|
|
31205
|
-
"dark:bg-
|
|
31814
|
+
"bg-primary-600 hover:bg-primary-700 text-white",
|
|
31815
|
+
"dark:bg-primary-500 dark:hover:bg-primary-600",
|
|
31206
31816
|
"transition-colors"
|
|
31207
31817
|
),
|
|
31208
31818
|
children: "Got It"
|
|
@@ -31213,7 +31823,7 @@ function OrderConfirmation({
|
|
|
31213
31823
|
);
|
|
31214
31824
|
}
|
|
31215
31825
|
OrderConfirmation.displayName = "OrderConfirmation";
|
|
31216
|
-
function
|
|
31826
|
+
function CheckIcon6({ className }) {
|
|
31217
31827
|
return /* @__PURE__ */ jsx(
|
|
31218
31828
|
"svg",
|
|
31219
31829
|
{
|
|
@@ -31233,6 +31843,26 @@ function CheckIcon5({ className }) {
|
|
|
31233
31843
|
}
|
|
31234
31844
|
);
|
|
31235
31845
|
}
|
|
31846
|
+
function XIcon4({ className }) {
|
|
31847
|
+
return /* @__PURE__ */ jsx(
|
|
31848
|
+
"svg",
|
|
31849
|
+
{
|
|
31850
|
+
className,
|
|
31851
|
+
fill: "none",
|
|
31852
|
+
viewBox: "0 0 24 24",
|
|
31853
|
+
stroke: "currentColor",
|
|
31854
|
+
strokeWidth: 3,
|
|
31855
|
+
children: /* @__PURE__ */ jsx(
|
|
31856
|
+
"path",
|
|
31857
|
+
{
|
|
31858
|
+
strokeLinecap: "round",
|
|
31859
|
+
strokeLinejoin: "round",
|
|
31860
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
31861
|
+
}
|
|
31862
|
+
)
|
|
31863
|
+
}
|
|
31864
|
+
);
|
|
31865
|
+
}
|
|
31236
31866
|
function MessageIcon({ className }) {
|
|
31237
31867
|
return /* @__PURE__ */ jsx(
|
|
31238
31868
|
"svg",
|
|
@@ -31353,7 +31983,7 @@ function PlaneIcon({ className }) {
|
|
|
31353
31983
|
}
|
|
31354
31984
|
);
|
|
31355
31985
|
}
|
|
31356
|
-
var
|
|
31986
|
+
var CheckIcon7 = () => /* @__PURE__ */ jsx(
|
|
31357
31987
|
"svg",
|
|
31358
31988
|
{
|
|
31359
31989
|
className: "h-5 w-5",
|
|
@@ -31418,7 +32048,7 @@ var InfoIcon = () => /* @__PURE__ */ jsx(
|
|
|
31418
32048
|
)
|
|
31419
32049
|
}
|
|
31420
32050
|
);
|
|
31421
|
-
var
|
|
32051
|
+
var XIcon5 = () => /* @__PURE__ */ jsx(
|
|
31422
32052
|
"svg",
|
|
31423
32053
|
{
|
|
31424
32054
|
className: "h-4 w-4",
|
|
@@ -31455,7 +32085,7 @@ var variantStyles = {
|
|
|
31455
32085
|
}
|
|
31456
32086
|
};
|
|
31457
32087
|
var defaultIcons = {
|
|
31458
|
-
success: /* @__PURE__ */ jsx(
|
|
32088
|
+
success: /* @__PURE__ */ jsx(CheckIcon7, {}),
|
|
31459
32089
|
error: /* @__PURE__ */ jsx(XCircleIcon, {}),
|
|
31460
32090
|
warning: /* @__PURE__ */ jsx(ExclamationIcon, {}),
|
|
31461
32091
|
info: /* @__PURE__ */ jsx(InfoIcon, {})
|
|
@@ -31501,7 +32131,7 @@ function Toast({
|
|
|
31501
32131
|
onClick: onClose,
|
|
31502
32132
|
className: "flex-shrink-0 rounded p-1 transition-colors hover:bg-black/10 focus:ring-2 focus:ring-current focus:outline-none dark:hover:bg-white/10",
|
|
31503
32133
|
"aria-label": "Dismiss notification",
|
|
31504
|
-
children: /* @__PURE__ */ jsx(
|
|
32134
|
+
children: /* @__PURE__ */ jsx(XIcon5, {})
|
|
31505
32135
|
}
|
|
31506
32136
|
)
|
|
31507
32137
|
]
|
|
@@ -31655,6 +32285,7 @@ function WebChartReportViewer({
|
|
|
31655
32285
|
onDateRangeChange,
|
|
31656
32286
|
webchartBrand: webchartBrand2 = { name: "Enterprise Health" },
|
|
31657
32287
|
onReconnect,
|
|
32288
|
+
columnRenderers,
|
|
31658
32289
|
className,
|
|
31659
32290
|
labels = {}
|
|
31660
32291
|
}) {
|
|
@@ -31664,17 +32295,16 @@ function WebChartReportViewer({
|
|
|
31664
32295
|
reconnect = "Reconnect",
|
|
31665
32296
|
noReports = "No reports available",
|
|
31666
32297
|
loadingData = "Fetching latest data from Enterprise Health...",
|
|
31667
|
-
close = "Close",
|
|
31668
32298
|
dateFrom = "From",
|
|
31669
32299
|
dateTo = "To"
|
|
31670
32300
|
} = labels;
|
|
31671
|
-
const [
|
|
32301
|
+
const [modalOpen, setModalOpen] = React46.useState(false);
|
|
31672
32302
|
const handleReportClick = (report) => {
|
|
31673
32303
|
onReportSelect?.(report);
|
|
31674
|
-
|
|
32304
|
+
setModalOpen(true);
|
|
31675
32305
|
};
|
|
31676
32306
|
const handleClose = () => {
|
|
31677
|
-
|
|
32307
|
+
setModalOpen(false);
|
|
31678
32308
|
onClose?.();
|
|
31679
32309
|
};
|
|
31680
32310
|
const formatDate4 = (date) => {
|
|
@@ -31682,144 +32312,153 @@ function WebChartReportViewer({
|
|
|
31682
32312
|
return d.toISOString().split("T")[0];
|
|
31683
32313
|
};
|
|
31684
32314
|
return /* @__PURE__ */ jsxs("div", { className: cn("webchart-report-viewer", className), children: [
|
|
31685
|
-
error && /* @__PURE__ */
|
|
31686
|
-
/* @__PURE__ */ jsx(
|
|
31687
|
-
/* @__PURE__ */ jsxs(
|
|
31688
|
-
|
|
31689
|
-
|
|
31690
|
-
|
|
31691
|
-
|
|
31692
|
-
webchartBrand2.name,
|
|
31693
|
-
"."
|
|
31694
|
-
] }),
|
|
32315
|
+
error && /* @__PURE__ */ jsxs(Alert, { variant: "warning", icon: /* @__PURE__ */ jsx(AlertTriangle, {}), className: "mb-4", children: [
|
|
32316
|
+
/* @__PURE__ */ jsx(AlertTitle, { children: error }),
|
|
32317
|
+
/* @__PURE__ */ jsxs(AlertDescription, { children: [
|
|
32318
|
+
"If this error persists, you can try reconnecting",
|
|
32319
|
+
" ",
|
|
32320
|
+
webchartBrand2.name,
|
|
32321
|
+
".",
|
|
31695
32322
|
onReconnect && /* @__PURE__ */ jsxs(
|
|
31696
|
-
|
|
32323
|
+
Button,
|
|
31697
32324
|
{
|
|
31698
|
-
|
|
32325
|
+
variant: "secondary",
|
|
32326
|
+
size: "sm",
|
|
31699
32327
|
onClick: onReconnect,
|
|
31700
|
-
className: "mt-2
|
|
32328
|
+
className: "mt-2",
|
|
31701
32329
|
children: [
|
|
31702
|
-
/* @__PURE__ */ jsx(
|
|
32330
|
+
/* @__PURE__ */ jsx(Link, { className: "mr-2 h-4 w-4" }),
|
|
31703
32331
|
reconnect
|
|
31704
32332
|
]
|
|
31705
32333
|
}
|
|
31706
32334
|
)
|
|
31707
32335
|
] })
|
|
31708
|
-
] })
|
|
31709
|
-
!error && !loading && /* @__PURE__ */ jsxs(
|
|
31710
|
-
"
|
|
31711
|
-
|
|
31712
|
-
|
|
31713
|
-
onClick: onRefreshReports,
|
|
31714
|
-
className: "bg-primary hover:bg-primary/90 mb-4 rounded-lg px-4 py-2 text-white",
|
|
31715
|
-
title: refreshReports,
|
|
31716
|
-
children: [
|
|
31717
|
-
/* @__PURE__ */ jsx("i", { className: "fas fa-sync-alt mr-2" }),
|
|
31718
|
-
refreshReports
|
|
31719
|
-
]
|
|
31720
|
-
}
|
|
31721
|
-
),
|
|
32336
|
+
] }),
|
|
32337
|
+
!error && !loading && /* @__PURE__ */ jsxs(Button, { onClick: onRefreshReports, className: "mb-4", children: [
|
|
32338
|
+
/* @__PURE__ */ jsx(RefreshCw, { className: "mr-2 h-4 w-4" }),
|
|
32339
|
+
refreshReports
|
|
32340
|
+
] }),
|
|
31722
32341
|
/* @__PURE__ */ jsx("div", { className: "mt-4 grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3", children: loading ? (
|
|
31723
32342
|
// Loading placeholders
|
|
31724
|
-
/* @__PURE__ */ jsx(Fragment, { children: [1, 2, 3, 4, 5, 6].map((i) => /* @__PURE__ */ jsx(
|
|
32343
|
+
/* @__PURE__ */ jsx(Fragment, { children: [1, 2, 3, 4, 5, 6].map((i) => /* @__PURE__ */ jsx(Skeleton, { variant: "button", className: "h-12 w-full" }, i)) })
|
|
31725
32344
|
) : reports.length > 0 ? (
|
|
31726
32345
|
// Report buttons
|
|
31727
32346
|
reports.map((report) => /* @__PURE__ */ jsx(
|
|
31728
|
-
|
|
32347
|
+
Card,
|
|
31729
32348
|
{
|
|
31730
|
-
|
|
32349
|
+
interactive: true,
|
|
32350
|
+
padding: "none",
|
|
32351
|
+
role: "button",
|
|
32352
|
+
tabIndex: 0,
|
|
32353
|
+
"aria-label": report.description ? `${report.name}: ${report.description}` : report.name,
|
|
31731
32354
|
onClick: () => handleReportClick(report),
|
|
31732
|
-
|
|
31733
|
-
|
|
31734
|
-
|
|
32355
|
+
onKeyDown: (e) => {
|
|
32356
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
32357
|
+
e.preventDefault();
|
|
32358
|
+
handleReportClick(report);
|
|
32359
|
+
}
|
|
32360
|
+
},
|
|
32361
|
+
className: "cursor-pointer",
|
|
32362
|
+
children: /* @__PURE__ */ jsx(CardContent, { className: "p-3", children: /* @__PURE__ */ jsx(
|
|
32363
|
+
"span",
|
|
32364
|
+
{
|
|
32365
|
+
className: "block truncate text-sm font-medium",
|
|
32366
|
+
title: report.description ? `${report.name}: ${report.description}` : report.name,
|
|
32367
|
+
children: report.name
|
|
32368
|
+
}
|
|
32369
|
+
) })
|
|
31735
32370
|
},
|
|
31736
32371
|
report.id
|
|
31737
32372
|
))
|
|
31738
32373
|
) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground col-span-full py-8 text-center", children: noReports }) }),
|
|
31739
|
-
|
|
31740
|
-
|
|
31741
|
-
|
|
31742
|
-
|
|
31743
|
-
|
|
31744
|
-
|
|
31745
|
-
|
|
31746
|
-
|
|
31747
|
-
|
|
31748
|
-
|
|
31749
|
-
|
|
31750
|
-
|
|
31751
|
-
|
|
31752
|
-
|
|
31753
|
-
|
|
31754
|
-
/* @__PURE__ */ jsx("h5", { className: "text-lg font-semibold", children: currentReport?.name || "Report Results" }),
|
|
31755
|
-
reportResult?.error ? /* @__PURE__ */ jsx("span", { className: "text-yellow-500", title: reportResult.error, children: /* @__PURE__ */ jsx("i", { className: "fas fa-exclamation-triangle" }) }) : reportResult?.success ? /* @__PURE__ */ jsx("span", { className: "text-green-500", children: /* @__PURE__ */ jsx("i", { className: "fas fa-check-circle" }) }) : null
|
|
31756
|
-
] }),
|
|
31757
|
-
/* @__PURE__ */ jsx(
|
|
31758
|
-
"button",
|
|
31759
|
-
{
|
|
31760
|
-
type: "button",
|
|
31761
|
-
onClick: handleClose,
|
|
31762
|
-
className: "text-2xl text-gray-400 hover:text-gray-600",
|
|
31763
|
-
"aria-label": close,
|
|
31764
|
-
children: "\xD7"
|
|
31765
|
-
}
|
|
31766
|
-
)
|
|
31767
|
-
] }),
|
|
31768
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3 border-b bg-gray-50 p-4", children: [
|
|
31769
|
-
onDateRangeChange && dateRange && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
31770
|
-
/* @__PURE__ */ jsxs("label", { className: "text-muted-foreground text-sm", children: [
|
|
31771
|
-
dateFrom,
|
|
31772
|
-
":"
|
|
32374
|
+
/* @__PURE__ */ jsxs(
|
|
32375
|
+
Modal,
|
|
32376
|
+
{
|
|
32377
|
+
open: modalOpen,
|
|
32378
|
+
onOpenChange: (open) => {
|
|
32379
|
+
if (!open) {
|
|
32380
|
+
handleClose();
|
|
32381
|
+
}
|
|
32382
|
+
},
|
|
32383
|
+
size: "4xl",
|
|
32384
|
+
children: [
|
|
32385
|
+
/* @__PURE__ */ jsxs(ModalHeader, { children: [
|
|
32386
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
32387
|
+
/* @__PURE__ */ jsx(ModalTitle, { children: currentReport?.name || "Report Results" }),
|
|
32388
|
+
reportResult?.error ? /* @__PURE__ */ jsx(AlertTriangle, { className: "h-5 w-5 text-yellow-500" }) : reportResult?.success ? /* @__PURE__ */ jsx(Check, { className: "h-5 w-5 text-green-500" }) : null
|
|
31773
32389
|
] }),
|
|
31774
|
-
/* @__PURE__ */ jsx(
|
|
31775
|
-
|
|
31776
|
-
|
|
31777
|
-
|
|
31778
|
-
|
|
31779
|
-
|
|
31780
|
-
|
|
31781
|
-
}
|
|
31782
|
-
|
|
31783
|
-
|
|
31784
|
-
|
|
31785
|
-
|
|
32390
|
+
/* @__PURE__ */ jsx(ModalClose, {})
|
|
32391
|
+
] }),
|
|
32392
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-muted/50 flex flex-wrap items-center gap-3 border-b px-6 py-4", children: [
|
|
32393
|
+
onDateRangeChange && dateRange && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
32394
|
+
/* @__PURE__ */ jsxs("label", { className: "text-muted-foreground text-sm", children: [
|
|
32395
|
+
dateFrom,
|
|
32396
|
+
":"
|
|
32397
|
+
] }),
|
|
32398
|
+
/* @__PURE__ */ jsx(
|
|
32399
|
+
Input,
|
|
32400
|
+
{
|
|
32401
|
+
type: "date",
|
|
32402
|
+
size: "sm",
|
|
32403
|
+
value: formatDate4(dateRange.start),
|
|
32404
|
+
onChange: (e) => onDateRangeChange(e.target.value, dateRange.end),
|
|
32405
|
+
className: "w-auto"
|
|
32406
|
+
}
|
|
32407
|
+
),
|
|
32408
|
+
/* @__PURE__ */ jsxs("label", { className: "text-muted-foreground text-sm", children: [
|
|
32409
|
+
dateTo,
|
|
32410
|
+
":"
|
|
32411
|
+
] }),
|
|
32412
|
+
/* @__PURE__ */ jsx(
|
|
32413
|
+
Input,
|
|
32414
|
+
{
|
|
32415
|
+
type: "date",
|
|
32416
|
+
size: "sm",
|
|
32417
|
+
value: formatDate4(dateRange.end),
|
|
32418
|
+
onChange: (e) => onDateRangeChange(dateRange.start, e.target.value),
|
|
32419
|
+
className: "w-auto"
|
|
32420
|
+
}
|
|
32421
|
+
)
|
|
31786
32422
|
] }),
|
|
31787
32423
|
/* @__PURE__ */ jsx(
|
|
31788
|
-
|
|
32424
|
+
Button,
|
|
31789
32425
|
{
|
|
31790
|
-
|
|
31791
|
-
|
|
31792
|
-
|
|
31793
|
-
|
|
32426
|
+
size: "sm",
|
|
32427
|
+
onClick: onRefreshReport,
|
|
32428
|
+
title: refreshReport,
|
|
32429
|
+
"aria-label": refreshReport,
|
|
32430
|
+
children: /* @__PURE__ */ jsx(RefreshCw, { className: "h-4 w-4" })
|
|
31794
32431
|
}
|
|
31795
32432
|
)
|
|
31796
32433
|
] }),
|
|
31797
|
-
/* @__PURE__ */ jsx(
|
|
31798
|
-
"
|
|
32434
|
+
/* @__PURE__ */ jsx(ModalBody, { className: "max-h-[60vh] overflow-auto", children: loadingReport ? /* @__PURE__ */ jsxs("div", { className: "flex h-64 flex-col items-center justify-center", children: [
|
|
32435
|
+
/* @__PURE__ */ jsx(Spinner, { size: "xl" }),
|
|
32436
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground mt-4", children: loadingData })
|
|
32437
|
+
] }) : reportResult?.error ? /* @__PURE__ */ jsx(Alert, { variant: "danger", icon: /* @__PURE__ */ jsx(AlertTriangle, {}), children: /* @__PURE__ */ jsx(AlertDescription, { children: reportResult.error }) }) : reportResult?.data ? typeof reportResult.data === "string" ? /* @__PURE__ */ jsx(
|
|
32438
|
+
"div",
|
|
31799
32439
|
{
|
|
31800
|
-
|
|
31801
|
-
|
|
31802
|
-
className: "bg-primary hover:bg-primary/90 rounded-lg px-3 py-1.5 text-white",
|
|
31803
|
-
title: refreshReport,
|
|
31804
|
-
children: /* @__PURE__ */ jsx("i", { className: "fas fa-sync-alt" })
|
|
32440
|
+
className: "prose dark:prose-invert max-w-none",
|
|
32441
|
+
dangerouslySetInnerHTML: { __html: reportResult.data }
|
|
31805
32442
|
}
|
|
31806
|
-
)
|
|
31807
|
-
|
|
31808
|
-
|
|
31809
|
-
|
|
31810
|
-
|
|
31811
|
-
|
|
31812
|
-
|
|
31813
|
-
|
|
31814
|
-
|
|
31815
|
-
|
|
31816
|
-
{
|
|
31817
|
-
|
|
31818
|
-
|
|
31819
|
-
|
|
31820
|
-
|
|
31821
|
-
|
|
31822
|
-
|
|
32443
|
+
) : Array.isArray(reportResult.data) && reportResult.data.length > 0 ? (() => {
|
|
32444
|
+
const rows = reportResult.data;
|
|
32445
|
+
const columns = Object.keys(rows[0]);
|
|
32446
|
+
return /* @__PURE__ */ jsxs(Table, { children: [
|
|
32447
|
+
/* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsx(TableRow, { children: columns.map((key) => /* @__PURE__ */ jsx(TableHead, { children: key }, key)) }) }),
|
|
32448
|
+
/* @__PURE__ */ jsx(TableBody, { children: rows.map((row) => {
|
|
32449
|
+
const rowKey = columns.map((key) => String(row[key])).join("|") || JSON.stringify(row);
|
|
32450
|
+
return /* @__PURE__ */ jsx(TableRow, { children: columns.map((key) => /* @__PURE__ */ jsx(TableCell, { children: columnRenderers?.[key] ? columnRenderers[key](row[key], row) : row[key] == null ? "" : String(row[key]) }, key)) }, rowKey);
|
|
32451
|
+
}) })
|
|
32452
|
+
] });
|
|
32453
|
+
})() : /* @__PURE__ */ jsx(Table, { children: /* @__PURE__ */ jsx(TableBody, { children: Object.entries(
|
|
32454
|
+
reportResult.data
|
|
32455
|
+
).map(([key, val]) => /* @__PURE__ */ jsxs(TableRow, { children: [
|
|
32456
|
+
/* @__PURE__ */ jsx(TableCell, { className: "text-muted-foreground font-medium", children: key }),
|
|
32457
|
+
/* @__PURE__ */ jsx(TableCell, { children: val == null ? "" : String(val) })
|
|
32458
|
+
] }, key)) }) }) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground py-8 text-center", children: "No data available" }) })
|
|
32459
|
+
]
|
|
32460
|
+
}
|
|
32461
|
+
)
|
|
31823
32462
|
] });
|
|
31824
32463
|
}
|
|
31825
32464
|
function ReportDatePicker({
|
|
@@ -31846,7 +32485,7 @@ function ReportDatePicker({
|
|
|
31846
32485
|
setPreset(value);
|
|
31847
32486
|
const now = /* @__PURE__ */ new Date();
|
|
31848
32487
|
let start;
|
|
31849
|
-
|
|
32488
|
+
const end = now;
|
|
31850
32489
|
switch (value) {
|
|
31851
32490
|
case "today":
|
|
31852
32491
|
start = now;
|
|
@@ -31871,34 +32510,40 @@ function ReportDatePicker({
|
|
|
31871
32510
|
}
|
|
31872
32511
|
onChange?.(start, end);
|
|
31873
32512
|
};
|
|
32513
|
+
const selectOptions = presets.map((p) => ({
|
|
32514
|
+
value: p.value,
|
|
32515
|
+
label: p.label
|
|
32516
|
+
}));
|
|
31874
32517
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center gap-3", className), children: [
|
|
31875
32518
|
/* @__PURE__ */ jsx(
|
|
31876
|
-
|
|
32519
|
+
Select,
|
|
31877
32520
|
{
|
|
31878
32521
|
value: preset,
|
|
31879
|
-
|
|
31880
|
-
|
|
31881
|
-
|
|
32522
|
+
onValueChange: (value) => handlePresetChange(value),
|
|
32523
|
+
options: selectOptions,
|
|
32524
|
+
size: "sm"
|
|
31882
32525
|
}
|
|
31883
32526
|
),
|
|
31884
32527
|
preset === "custom" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31885
32528
|
/* @__PURE__ */ jsx(
|
|
31886
|
-
|
|
32529
|
+
Input,
|
|
31887
32530
|
{
|
|
31888
32531
|
type: "date",
|
|
32532
|
+
size: "sm",
|
|
31889
32533
|
value: formatDate4(startDate),
|
|
31890
32534
|
onChange: (e) => onChange?.(e.target.value, endDate || /* @__PURE__ */ new Date()),
|
|
31891
|
-
className: "
|
|
32535
|
+
className: "w-auto"
|
|
31892
32536
|
}
|
|
31893
32537
|
),
|
|
31894
32538
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "to" }),
|
|
31895
32539
|
/* @__PURE__ */ jsx(
|
|
31896
|
-
|
|
32540
|
+
Input,
|
|
31897
32541
|
{
|
|
31898
32542
|
type: "date",
|
|
32543
|
+
size: "sm",
|
|
31899
32544
|
value: formatDate4(endDate),
|
|
31900
32545
|
onChange: (e) => onChange?.(startDate || /* @__PURE__ */ new Date(), e.target.value),
|
|
31901
|
-
className: "
|
|
32546
|
+
className: "w-auto"
|
|
31902
32547
|
}
|
|
31903
32548
|
)
|
|
31904
32549
|
] })
|
|
@@ -32157,6 +32802,6 @@ function WebsiteInputGroup({
|
|
|
32157
32802
|
}
|
|
32158
32803
|
WebsiteInputGroup.displayName = "WebsiteInputGroup";
|
|
32159
32804
|
|
|
32160
|
-
export { AGGrid, AIChat, AIChatModal, AIChatTrigger, AILogoIcon, AIMessageDisplay, AITypingIndicator, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, AttachmentPicker, AttachmentPreview, AttachmentPreviewItem, AuthButtons, AuthDialog, AvatarNameRenderer, BookAppointmentButton, BookingDialog, BooleanRenderer, BusinessHours, BusinessHoursEditor, CSVColumnMapper, CSVFileUpload, CameraButton, CardSkeleton, CellRenderers, CharacterCounter, CheckrIntegration, ChevronIcon, ClaimListingButton, ClaimProviderForm, CloseIcon, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, CompanyRenderer, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, ConversationHeader, ConversationListItem, ConversationListSkeleton, CookieConsentBanner, CopyrightText, CreateInvoiceModal, CreateReferralModal, CurrencyRenderer, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DateRangeFilter, DateRangePicker, DateRenderer, DateSeparator, DialogOverlay, DisclaimerText, DocumentDetectionOverlay, DocumentScanner, DomainRenderer, DragDropZone, DropZone, DropzoneOverlay, EditUserRoleModal, EmailRenderer, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, EmptyState, EngagementScoreRenderer, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HelpSupportPanel, HeroSearchBar, HoursSummary, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LightboxModal, LinkedInRenderer, LoadMoreButton, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MCPToolCallDisplay, MaintenancePage, MemoizedAvatarNameRenderer, MemoizedBooleanRenderer, MemoizedCompanyRenderer, MemoizedCurrencyRenderer, MemoizedDateRenderer, MemoizedDomainRenderer, MemoizedEmailRenderer, MemoizedEngagementScoreRenderer, MemoizedLinkedInRenderer, MemoizedNumberRenderer, MemoizedPhoneRenderer, MemoizedProgressRenderer, MemoizedStatusBadgeRenderer, MemoizedTagsRenderer, MessageAvatar, MessageBubble, MessageComposer, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, MobileBackButton, MobileMenuButton, MobileMenuPanel, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, NumberRenderer, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, PageHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PhoneRenderer, ProductVersion, ProductVersionBadge, ProgressRenderer, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, ReadReceiptIndicator, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, RefreshIcon, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ResourceLink, ResultsEntryCard, ResultsEntryForm, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, SendButton, SendIcon, 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, SkeletonMessage, SparklesIcon, SpinnerIcon2 as SpinnerIcon, StatusBadgeRenderer, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TagsRenderer, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, ToolStatusIcon, TypingIndicator, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, bubbleVariants2 as bubbleVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, defaultOrderTabs, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, formatDateLabel, formatFileSize2 as formatFileSize, formatLastSeen, formatPhoneDisplay, generateAttachmentId, generateId, getConversationSubtitle, getConversationTitle, getFileType, getGoogleMapsSearchUrl, getGoogleMapsUrl, getToolIcon, groupMessagesByDate, headerVariants, isSameSenderGroup, isValidUrl, sendButtonVariants, statusColors, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDocumentDetection, useDropzone, useFileUpload, useMessageScroll, useMessages, useReadReceipts, useSidebar, useToast, useTypingIndicator, validateFile };
|
|
32805
|
+
export { AGGrid, AIChat, AIChatModal, AIChatTrigger, AILogoIcon, AIMessageDisplay, AITypingIndicator, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, AttachmentPicker, AttachmentPreview, AttachmentPreviewItem, AuthButtons, AuthDialog, AvatarNameRenderer, BookAppointmentButton, BookingDialog, BooleanRenderer, BusinessHours, BusinessHoursEditor, CSVColumnMapper, CSVFileUpload, CameraButton, CardSkeleton, CellRenderers, CharacterCounter, CheckrIntegration, ChevronIcon, ClaimListingButton, ClaimProviderForm, CloseIcon, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, CompanyRenderer, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, ConversationHeader, ConversationListItem, ConversationListSkeleton, CookieConsentBanner, CopyrightText, CreateInvoiceModal, CreateReferralModal, CurrencyRenderer, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DateRangeFilter, DateRangePicker, DateRenderer, DateSeparator, DialogOverlay, DisclaimerText, DocumentDetectionOverlay, DocumentScanner, DomainRenderer, DragDropZone, DropZone, DropzoneOverlay, EditUserRoleModal, EmailRenderer, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, EmptyState, EngagementScoreRenderer, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HelpSupportPanel, HeroSearchBar, HoursSummary, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LightboxModal, LinkedInRenderer, LoadMoreButton, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MCPToolCallDisplay, MaintenancePage, MemoizedAvatarNameRenderer, MemoizedBooleanRenderer, MemoizedCompanyRenderer, MemoizedCurrencyRenderer, MemoizedDateRenderer, MemoizedDomainRenderer, MemoizedEmailRenderer, MemoizedEngagementScoreRenderer, MemoizedLinkedInRenderer, MemoizedNumberRenderer, MemoizedPhoneRenderer, MemoizedProgressRenderer, MemoizedStatusBadgeRenderer, MemoizedTagsRenderer, MessageAvatar, MessageBubble, MessageComposer, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, MobileBackButton, MobileMenuButton, MobileMenuPanel, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, NumberRenderer, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, PageHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PhoneRenderer, ProductVersion, ProductVersionBadge, ProgressRenderer, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, ReadReceiptIndicator, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, RefreshIcon, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ResourceLink, ResultsEntryCard, ResultsEntryForm, ResultsEntryModal, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, SendButton, SendIcon, 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, SkeletonMessage, SparklesIcon, SpinnerIcon2 as SpinnerIcon, StatusBadgeRenderer, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TagsRenderer, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, ToolStatusIcon, TypingIndicator, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, bubbleVariants2 as bubbleVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, defaultOrderTabs, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, formatDateLabel, formatFileSize2 as formatFileSize, formatLastSeen, formatPhoneDisplay, generateAttachmentId, generateId, getConversationSubtitle, getConversationTitle, getFileType, getGoogleMapsSearchUrl, getGoogleMapsUrl, getToolIcon, groupMessagesByDate, headerVariants, isSameSenderGroup, isValidUrl, sendButtonVariants, statusColors, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDocumentDetection, useDropzone, useFileUpload, useMessageScroll, useMessages, useReadReceipts, useSidebar, useToast, useTypingIndicator, validateFile };
|
|
32161
32806
|
//# sourceMappingURL=index.js.map
|
|
32162
32807
|
//# sourceMappingURL=index.js.map
|