@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.
Files changed (88) hide show
  1. package/LICENSE +39 -15
  2. package/README.md +9 -1
  3. package/dist/brands/index.cjs +7 -7
  4. package/dist/brands/index.js +2 -2
  5. package/dist/{chunk-CLNOI5J7.js → chunk-4SMSH4OY.js} +4 -4
  6. package/dist/chunk-4SMSH4OY.js.map +1 -0
  7. package/dist/chunk-4T2ZNPTC.js +220 -0
  8. package/dist/chunk-4T2ZNPTC.js.map +1 -0
  9. package/dist/chunk-5T3AWNHG.cjs +471 -0
  10. package/dist/chunk-5T3AWNHG.cjs.map +1 -0
  11. package/dist/{chunk-LEE3NMNP.cjs → chunk-5UUL5EEO.cjs} +131 -81
  12. package/dist/chunk-5UUL5EEO.cjs.map +1 -0
  13. package/dist/chunk-74K3RRU7.cjs +4 -0
  14. package/dist/{chunk-ZO46CFVN.cjs.map → chunk-74K3RRU7.cjs.map} +1 -1
  15. package/dist/{chunk-VWXGUNBR.cjs → chunk-AKTUXJPI.cjs} +107 -18
  16. package/dist/chunk-AKTUXJPI.cjs.map +1 -0
  17. package/dist/chunk-BV75DAKO.cjs +245 -0
  18. package/dist/chunk-BV75DAKO.cjs.map +1 -0
  19. package/dist/{chunk-6DP6RKUA.cjs → chunk-CLJZHS7Y.cjs} +2 -2
  20. package/dist/{chunk-6DP6RKUA.cjs.map → chunk-CLJZHS7Y.cjs.map} +1 -1
  21. package/dist/{chunk-NH2JVQ6V.cjs → chunk-I7L6CQXR.cjs} +21 -9
  22. package/dist/chunk-I7L6CQXR.cjs.map +1 -0
  23. package/dist/{chunk-BR2XGATJ.cjs → chunk-NNEFAUHV.cjs} +4 -4
  24. package/dist/chunk-NNEFAUHV.cjs.map +1 -0
  25. package/dist/{chunk-KJOFWJHV.js → chunk-QSMMFATL.js} +131 -81
  26. package/dist/chunk-QSMMFATL.js.map +1 -0
  27. package/dist/{chunk-FIUNOH6W.js → chunk-S4DK5WN6.js} +2 -2
  28. package/dist/{chunk-FIUNOH6W.js.map → chunk-S4DK5WN6.js.map} +1 -1
  29. package/dist/chunk-SCV7C55E.cjs +11 -0
  30. package/dist/chunk-SCV7C55E.cjs.map +1 -0
  31. package/dist/{chunk-D5IBXXF2.js → chunk-SD44QJIP.js} +20 -8
  32. package/dist/chunk-SD44QJIP.js.map +1 -0
  33. package/dist/{chunk-QBWVTJKF.js → chunk-UBRDKNLQ.js} +107 -18
  34. package/dist/chunk-UBRDKNLQ.js.map +1 -0
  35. package/dist/chunk-V2DF2GUE.js +3 -0
  36. package/dist/{chunk-ZQ4XMJH7.js.map → chunk-V2DF2GUE.js.map} +1 -1
  37. package/dist/chunk-VSQF22GL.js +9 -0
  38. package/dist/chunk-VSQF22GL.js.map +1 -0
  39. package/dist/chunk-XVZ4SLQB.js +447 -0
  40. package/dist/chunk-XVZ4SLQB.js.map +1 -0
  41. package/dist/components/AudioPlayer/index.cjs +6 -6
  42. package/dist/components/AudioPlayer/index.d.cts +5 -1
  43. package/dist/components/AudioPlayer/index.d.ts +5 -1
  44. package/dist/components/AudioPlayer/index.js +1 -1
  45. package/dist/components/Modal/index.cjs +11 -10
  46. package/dist/components/Modal/index.js +3 -2
  47. package/dist/components/RecordButton/index.cjs +4 -8
  48. package/dist/components/RecordButton/index.d.cts +57 -44
  49. package/dist/components/RecordButton/index.d.ts +57 -44
  50. package/dist/components/RecordButton/index.js +1 -1
  51. package/dist/components/Select/index.cjs +3 -4
  52. package/dist/components/Select/index.js +1 -2
  53. package/dist/components/Slider/index.cjs +25 -0
  54. package/dist/components/Slider/index.cjs.map +1 -0
  55. package/dist/components/Slider/index.d.cts +82 -0
  56. package/dist/components/Slider/index.d.ts +82 -0
  57. package/dist/components/Slider/index.js +4 -0
  58. package/dist/components/Slider/index.js.map +1 -0
  59. package/dist/components/Spinner/index.d.cts +1 -1
  60. package/dist/components/Spinner/index.d.ts +1 -1
  61. package/dist/hooks/index.cjs +3 -2
  62. package/dist/hooks/index.js +2 -1
  63. package/dist/index.cjs +1899 -1238
  64. package/dist/index.cjs.map +1 -1
  65. package/dist/index.d.cts +68 -25
  66. package/dist/index.d.ts +68 -25
  67. package/dist/index.js +1793 -1148
  68. package/dist/index.js.map +1 -1
  69. package/dist/styles.css +1 -1
  70. package/dist/utils/index.cjs +6 -1
  71. package/dist/utils/index.d.cts +14 -1
  72. package/dist/utils/index.d.ts +14 -1
  73. package/dist/utils/index.js +2 -1
  74. package/package.json +7 -7
  75. package/dist/chunk-BR2XGATJ.cjs.map +0 -1
  76. package/dist/chunk-CLNOI5J7.js.map +0 -1
  77. package/dist/chunk-D5IBXXF2.js.map +0 -1
  78. package/dist/chunk-FQ5G7J24.js +0 -297
  79. package/dist/chunk-FQ5G7J24.js.map +0 -1
  80. package/dist/chunk-HLW3XD5R.cjs +0 -322
  81. package/dist/chunk-HLW3XD5R.cjs.map +0 -1
  82. package/dist/chunk-KJOFWJHV.js.map +0 -1
  83. package/dist/chunk-LEE3NMNP.cjs.map +0 -1
  84. package/dist/chunk-NH2JVQ6V.cjs.map +0 -1
  85. package/dist/chunk-QBWVTJKF.js.map +0 -1
  86. package/dist/chunk-VWXGUNBR.cjs.map +0 -1
  87. package/dist/chunk-ZO46CFVN.cjs +0 -4
  88. 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-FIUNOH6W.js';
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
- export { enterpriseHealthBrand } from './chunk-MTZPVOP6.js';
13
- import { Select } from './chunk-KJOFWJHV.js';
14
- export { Select, selectTriggerVariants } from './chunk-KJOFWJHV.js';
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 { Textarea } from './chunk-4AWW5WPF.js';
27
- export { Textarea, textareaVariants } from './chunk-4AWW5WPF.js';
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, recordingIndicatorVariants } from './chunk-FQ5G7J24.js';
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-CLNOI5J7.js';
58
- export { useFocusTrap } from './chunk-CLNOI5J7.js';
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-ZQ4XMJH7.js';
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-QBWVTJKF.js';
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, FileUp, Upload, Edit2, Check, X, ChevronUp, MapPin, Shield, ChevronRight, Building2, AlertCircle, Trash2, Scan, Camera, ScanLine, RefreshCw, FileText, Image } from 'lucide-react';
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", "Searched");
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 statusColors2 = {
7890
- pending: "bg-yellow-100 text-yellow-800",
7891
- running: "bg-blue-100 text-blue-800",
7892
- complete: "bg-green-100 text-green-800",
7893
- failed: "bg-red-100 text-red-800",
7894
- expired: "bg-gray-100 text-gray-800"
7895
- };
7896
- const resultColors = {
7897
- clear: "text-green-600",
7898
- consider: "text-yellow-600",
7899
- adverse_action: "text-red-600"
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 bg-emerald-100", children: /* @__PURE__ */ jsx("i", { className: "fas fa-user-shield text-xl text-emerald-600" }) }),
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
- "button",
7941
- {
7942
- type: "button",
7943
- onClick: onDisconnect,
7944
- className: "rounded-lg border border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-50",
7945
- children: disconnect
7946
- }
7947
- ) : /* @__PURE__ */ jsxs(
7948
- "button",
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
- type: "button",
7951
- onClick: onConnect,
7952
- className: "rounded-lg bg-emerald-600 px-4 py-2 text-white hover:bg-emerald-700",
7953
- children: [
7954
- /* @__PURE__ */ jsx("i", { className: "fas fa-link mr-2" }),
7955
- connect
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__ */ jsxs("div", { className: "mb-6 flex flex-wrap gap-3", children: [
7966
- /* @__PURE__ */ jsxs(
7967
- "button",
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
- type: "button",
7970
- onClick: () => setShowInviteModal(true),
7971
- className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2 text-white",
7972
- children: [
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
- "button",
7980
- {
7981
- type: "button",
7982
- onClick: onRefresh,
7983
- className: "rounded-lg border border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-50",
7984
- children: [
7985
- /* @__PURE__ */ jsx("i", { className: "fas fa-sync-alt mr-2" }),
7986
- refresh
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-b bg-gray-50 px-4 py-3", children: /* @__PURE__ */ jsx("h4", { className: "font-medium", children: viewReports }) }),
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__ */ jsx("div", { className: "divide-y", children: reports.map((report) => /* @__PURE__ */ jsxs(
7994
- "div",
7995
- {
7996
- className: "flex items-center justify-between p-4 hover:bg-gray-50",
7997
- children: [
7998
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsxs("div", { children: [
7999
- /* @__PURE__ */ jsx("p", { className: "font-medium", children: report.candidate.name }),
8000
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: report.candidate.email }),
8001
- report.packageName && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: report.packageName })
8002
- ] }) }),
8003
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
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-2 py-0.5 text-xs font-medium",
8010
- statusColors2[report.status]
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
- resultColors[report.result]
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
- report.reportUrl && /* @__PURE__ */ jsx(
8028
- "button",
8029
- {
8030
- type: "button",
8031
- onClick: () => onViewReport?.(report),
8032
- className: "rounded-lg border border-gray-300 p-2 hover:bg-gray-100",
8033
- title: "View Report",
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
- "input",
8265
+ Button,
8096
8266
  {
8097
- type: "email",
8098
- value: candidateEmail,
8099
- onChange: (e) => setCandidateEmail(e.target.value),
8100
- className: "w-full rounded-lg border border-gray-300 px-3 py-2",
8101
- required: true
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
- "input",
8275
+ Button,
8109
8276
  {
8110
- type: "tel",
8111
- value: candidatePhone,
8112
- onChange: (e) => setCandidatePhone(e.target.value),
8113
- className: "w-full rounded-lg border border-gray-300 px-3 py-2"
8277
+ variant: "primary",
8278
+ size: "sm",
8279
+ onClick: handleViewSelected,
8280
+ disabled: selectedReports.size === 0,
8281
+ children: viewDetails
8114
8282
  }
8115
8283
  )
8116
- ] }),
8117
- /* @__PURE__ */ jsxs("div", { children: [
8118
- /* @__PURE__ */ jsx("label", { className: "mb-1 block text-sm font-medium", children: packageLabel }),
8119
- /* @__PURE__ */ jsx(
8120
- "select",
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
- value: selectedPackage,
8123
- onChange: (e) => setSelectedPackage(e.target.value),
8124
- className: "w-full rounded-lg border border-gray-300 px-3 py-2",
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__ */ jsxs("div", { className: "mt-6 flex justify-end gap-3", children: [
8132
- /* @__PURE__ */ jsx(
8133
- "button",
8134
- {
8135
- type: "button",
8136
- onClick: () => setShowInviteModal(false),
8137
- className: "rounded-lg border border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-50",
8138
- children: cancel
8139
- }
8140
- ),
8141
- /* @__PURE__ */ jsx(
8142
- "button",
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
- type: "submit",
8145
- className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2 text-white",
8146
- children: submit
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 bg-black/50", children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-lg rounded-lg bg-white shadow-xl", children: [
9291
- /* @__PURE__ */ jsx("div", { className: "bg-primary p-4 text-white", children: /* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold", children: "Processing Employees" }) }),
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 bg-gray-200", children: /* @__PURE__ */ jsx(
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 bg-green-500 transition-all duration-300",
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
- "button",
9561
+ Button,
9309
9562
  {
9310
- type: "button",
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
- "button",
9570
+ Button,
9318
9571
  {
9319
- type: "button",
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
- "button",
9579
+ Button,
9327
9580
  {
9328
- type: "button",
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 border-blue-200 bg-blue-50 p-4", children: [
9336
- /* @__PURE__ */ jsx("h4", { className: "mb-1 font-semibold text-blue-800", children: ensureAccurateData }),
9337
- /* @__PURE__ */ jsx("p", { className: "text-sm text-blue-700", children: ensureAccurateDataDescription })
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-lg border bg-white shadow-sm",
9383
- column.ignored && "opacity-50",
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__ */ jsx("div", { className: "border-b bg-gray-50 p-3", children: /* @__PURE__ */ jsx(
9388
- "h6",
9389
- {
9390
- className: "truncate text-center text-sm font-medium",
9391
- title: column.name,
9392
- children: column.name
9393
- }
9394
- ) }),
9395
- /* @__PURE__ */ jsxs("div", { className: "p-4", children: [
9396
- /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
9397
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-xs", children: labels.incomingSample }),
9398
- /* @__PURE__ */ jsx("div", { className: "truncate text-sm", title: column.sampleValue, children: column.sampleValue || /* @__PURE__ */ jsx("em", { className: "text-muted-foreground", children: "Empty" }) })
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__ */ jsx("hr", { className: "my-3" }),
9401
- /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
9402
- /* @__PURE__ */ jsx("label", { htmlFor: formatHtmlId(column.name), className: "sr-only", children: labels.fieldType }),
9403
- /* @__PURE__ */ jsxs(
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
- "w-full rounded-lg border p-2 text-sm",
9412
- column.ignored && "cursor-not-allowed bg-gray-100"
9683
+ "rounded-md",
9684
+ hasError && !column.ignored && "ring-warning/50 ring-2"
9413
9685
  ),
9414
- children: [
9415
- /* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Select field..." }),
9416
- fieldOptions.map((opt) => /* @__PURE__ */ jsx(
9417
- "option",
9418
- {
9419
- value: opt.value,
9420
- disabled: opt.disabled,
9421
- className: opt.disabled ? "text-red-500" : "",
9422
- children: opt.label
9423
- },
9424
- opt.value
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
- childFieldOptions && childFieldOptions.length > 0 && column.mappedTo && /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
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
- "label",
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
- onChange: (e) => onMappingChange(column.mappedTo, e.target.value),
9713
+ onValueChange: (value) => onMappingChange(column.mappedTo, value),
9445
9714
  disabled: column.ignored,
9446
- className: cn(
9447
- "w-full rounded-lg border p-2 text-sm",
9448
- column.ignored && "cursor-not-allowed bg-gray-100"
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
- /* @__PURE__ */ jsx("div", { className: "border-t bg-gray-50 p-3 text-center", children: /* @__PURE__ */ jsx(
9468
- "button",
9469
- {
9470
- type: "button",
9471
- onClick: () => onIgnoreToggle(!column.ignored),
9472
- className: cn(
9473
- "w-full rounded-lg px-4 py-2 text-sm font-medium",
9474
- column.ignored ? "bg-red-600 text-white hover:bg-red-700" : "bg-primary hover:bg-primary/90 text-white"
9475
- ),
9476
- children: column.ignored ? labels.include : labels.ignore
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-gray-300 bg-gray-50",
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 text-gray-400" }),
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 text-white",
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("div", { className: "space-y-4", children: [
12325
- user && /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-gray-50 p-3 dark:bg-gray-800", children: [
12326
- /* @__PURE__ */ jsx("p", { className: "font-medium text-gray-900 dark:text-white", children: user.name }),
12327
- /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: user.email })
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: "rounded-lg border border-red-200 bg-red-50 p-3 dark:border-red-800 dark:bg-red-900/20", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
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 text-red-500",
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-sm text-red-600 dark:text-red-400", children: errorMessage })
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 bg-blue-50 p-3 dark:bg-blue-900/20", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-blue-700 dark:text-blue-300", children: selectedRole.description }) }),
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 text-gray-700 dark:text-gray-300", children: "Permissions" }),
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: "rounded-full bg-gray-100 px-2 py-1 text-xs font-medium text-gray-700 dark:bg-gray-700 dark:text-gray-300",
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("div", { className: "space-y-4", children: [
13854
- 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 }) }),
13855
- service && /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-blue-200 bg-blue-50 p-3 dark:border-blue-800 dark:bg-blue-900/20", children: [
13856
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-blue-900 dark:text-blue-100", children: service.name }),
13857
- /* @__PURE__ */ jsxs("p", { className: "text-xs text-blue-600 dark:text-blue-400", children: [
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 text-gray-700 dark:text-gray-300", children: "Pricing" }),
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-sm text-gray-900 dark:text-white", children: "Use Base Price" }),
13867
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Use the service's default pricing" })
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 border-gray-200 pl-4 dark:border-gray-700", children: [
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 text-gray-700 dark:text-gray-300",
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 text-gray-500", children: "$" }),
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 border-gray-300 py-2 pr-4 pl-7 shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-800 dark:text-white",
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 text-gray-700 dark:text-gray-300", children: "Order Handling" }),
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-sm text-gray-900 dark:text-white", children: "Auto-Accept Orders" }),
13925
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Automatically accept orders from this employer" })
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-sm text-gray-900 dark:text-white", children: "Requires Approval" }),
13938
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Orders need manual approval before processing" })
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 text-gray-700 dark:text-gray-300", children: "Notifications" }),
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-sm text-gray-900 dark:text-white", children: "Notify on New Orders" }),
13954
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Send email when orders are placed" })
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 border-gray-200 pl-4 dark:border-gray-700", children: /* @__PURE__ */ jsx(
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 text-gray-700 dark:text-gray-300",
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 border-gray-300 px-3 py-2 shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-800 dark:text-white",
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(baseClasses, variantClasses, "inline-block text-center"),
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
- "button",
14549
+ Button,
14260
14550
  {
14261
14551
  type: "button",
14262
14552
  onClick,
14263
- className: cn(baseClasses, variantClasses),
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: "rounded-lg border bg-gray-50 p-4", children: [
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-300 bg-yellow-50 p-3 text-yellow-800", children: [
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 border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-100",
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 text-gray-400", children: /* @__PURE__ */ jsx("i", { className: "fas fa-search" }) }),
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 border-gray-300 py-2 pr-4 pl-10 focus:ring-1 focus:outline-none"
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 border-gray-200 bg-white p-4 shadow-sm transition-shadow hover:shadow-md",
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 text-gray-400" })
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 border-gray-200 bg-white p-4 shadow-sm",
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 bg-gray-200" }),
15373
- /* @__PURE__ */ jsx("div", { className: "h-4 w-20 animate-pulse rounded bg-gray-200" })
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 border-gray-200 bg-white p-4 shadow-sm transition-shadow hover:shadow-md",
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__ */ jsx(
15386
- "img",
15387
- {
15388
- src: provider.logoUrl,
15389
- alt: provider.displayName,
15390
- className: "max-h-full max-w-full object-contain"
15391
- }
15392
- ) : /* @__PURE__ */ jsx("i", { className: "fas fa-building text-4xl text-gray-400" }) }),
15393
- /* @__PURE__ */ jsx("span", { className: "text-center text-sm font-medium", children: provider.displayName })
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 text-gray-900 dark:text-white", children: "Remaining Inventory" }) }),
15456
- /* @__PURE__ */ jsxs("div", { className: "text-2xl font-bold text-gray-900 dark:text-white", children: [
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 text-gray-500", children: "units" })
15759
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm font-normal", children: "units" })
15460
15760
  ] })
15461
15761
  ] }),
15462
- /* @__PURE__ */ jsx("hr", { className: "mb-4 border-gray-200 dark:border-gray-700" }),
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 text-gray-900 dark:text-white", children: "Inventory Log" }),
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 text-blue-600 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300",
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: "mb-4 border-gray-200 dark:border-gray-700" }),
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-b border-gray-200 dark:border-gray-700", children: [
15498
- /* @__PURE__ */ jsx("th", { className: "py-2 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400", children: "Date" }),
15499
- /* @__PURE__ */ jsx("th", { className: "py-2 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400", children: "User" }),
15500
- /* @__PURE__ */ jsx("th", { className: "py-2 text-left text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400", children: "Change" }),
15501
- /* @__PURE__ */ jsx("th", { className: "py-2 text-right text-xs font-medium tracking-wider text-gray-500 uppercase dark:text-gray-400", children: "Quantity" })
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-y divide-gray-100 dark:divide-gray-800", children: logEntries.map((entry) => /* @__PURE__ */ jsxs(React46.Fragment, { children: [
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 text-gray-600 dark:text-gray-400",
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 text-gray-600 dark:text-gray-400", children: entry.createdBy.name }),
15514
- /* @__PURE__ */ jsx("td", { className: "py-2 text-sm text-gray-600 dark:text-gray-400", children: entry.type === "credit" ? "Added" : "Removed" }),
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-gray-50 dark:bg-gray-800/50", children: /* @__PURE__ */ jsx("td", { colSpan: 4, className: "px-2 py-1 text-right", children: /* @__PURE__ */ jsxs("span", { className: "text-xs text-gray-500 italic dark:text-gray-400", children: [
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 text-gray-500 dark:text-gray-400", children: [
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 text-gray-300 dark:text-gray-600",
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("div", { className: "space-y-4", children: [
15599
- /* @__PURE__ */ jsx("div", { className: "mb-4", children: /* @__PURE__ */ jsx("h4", { className: "font-semibold text-gray-900 dark:text-white", children: serviceName }) }),
15600
- /* @__PURE__ */ jsxs("div", { children: [
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-blue-600 bg-blue-600 text-white" : "border-gray-300 bg-white text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700"} `,
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-blue-600 bg-blue-600 text-white" : "border-gray-300 bg-white text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700"} `,
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-yellow-50 p-3 dark:bg-yellow-900/20", children: [
15686
- /* @__PURE__ */ jsx("h5", { className: "mb-2 text-sm font-medium text-yellow-800 dark:text-yellow-200", children: "Description" }),
15687
- /* @__PURE__ */ jsxs("ul", { className: "list-inside list-disc text-sm text-yellow-700 dark:text-yellow-300", children: [
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("div", { className: "space-y-4", children: [
15764
- entityDisplayName && /* @__PURE__ */ jsx("div", { className: "rounded-lg bg-gray-50 p-3 dark:bg-gray-800", children: /* @__PURE__ */ jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: [
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: "font-medium text-gray-900 dark:text-white", children: entityDisplayName })
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 text-gray-700 dark:text-gray-300",
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 border-gray-300 px-3 py-2 shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-800 dark:text-white",
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-xs text-gray-500 dark:text-gray-400", 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." })
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 = "/images/bluehive/logo-white.svg",
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 bg-white",
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("div", { className: "border-primary h-12 w-12 animate-spin rounded-full border-4 border-t-transparent" }),
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("div", { className: "border-destructive bg-destructive/10 text-destructive mb-4 rounded-lg border p-4", children: error }),
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
- "button",
18853
+ Button,
18557
18854
  {
18558
- type: "button",
18855
+ variant: "secondary",
18856
+ size: "sm",
18559
18857
  onClick: handleSkip,
18560
- className: "rounded-full bg-gray-800 px-4 py-1.5 text-sm text-white shadow hover:bg-gray-700",
18858
+ className: "rounded-full",
18561
18859
  children: skip
18562
18860
  }
18563
18861
  ) }),
18564
- /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-4 bg-white", children: [
18565
- backEnabled && !isFirstStep ? /* @__PURE__ */ jsxs(
18566
- "button",
18862
+ /* @__PURE__ */ jsxs("div", { className: "bg-background flex w-full items-center gap-4", children: [
18863
+ /* @__PURE__ */ jsxs(
18864
+ Button,
18567
18865
  {
18568
- type: "button",
18866
+ variant: "outline",
18569
18867
  onClick: handleBack,
18570
- className: "rounded-lg border border-gray-300 px-6 py-3 text-gray-700 hover:bg-gray-50",
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
- isLastStep ? /* @__PURE__ */ jsx(
18601
- "button",
18875
+ /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
18876
+ Progress,
18602
18877
  {
18603
- type: "button",
18604
- onClick: handleNext,
18605
- className: "bg-primary hover:bg-primary/90 rounded-lg px-6 py-3 text-white",
18606
- children: finish
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
- ) : /* @__PURE__ */ jsxs(
18609
- "button",
18885
+ ) }),
18886
+ /* @__PURE__ */ jsxs(
18887
+ Button,
18610
18888
  {
18611
- type: "button",
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 bg-gray-800 p-3 text-white", children: /* @__PURE__ */ jsx("i", { className: cn(icon, "text-lg") }) }),
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
- "button",
18923
+ Button,
18650
18924
  {
18651
- type: "button",
18925
+ variant: option.selected ? "primary" : "outline",
18652
18926
  onClick: () => onSelect?.(option.id),
18653
- className: cn(
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
- "button",
18687
- {
18688
- type: "button",
18689
- onClick: onStartOrder,
18690
- className: "bg-primary hover:bg-primary/90 rounded-lg px-4 py-2 text-white",
18691
- children: [
18692
- /* @__PURE__ */ jsx("i", { className: "fas fa-shopping-cart mr-2" }),
18693
- "Start your first order"
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
- "button",
18977
+ Button,
18731
18978
  {
18732
- type: "button",
18979
+ variant: "outline",
18733
18980
  onClick: () => onGoToStep?.(step),
18734
- className: "border-primary text-primary hover:bg-primary/10 rounded-full border px-4 py-2",
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-2 ring-blue-500 dark:ring-blue-400" : ""} ${className} `.trim(),
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: "font-semibold text-gray-900 dark:text-white", children: [
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 text-gray-500 dark:text-gray-400",
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: "font-semibold text-gray-900 dark:text-white", children: formatCurrency(totalAmount, currency) }) })
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("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-blue-100 dark:bg-blue-900", children: /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium text-blue-600 dark:text-blue-400", children: [
18850
- employee.firstName[0],
18851
- employee.lastName[0]
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 text-gray-900 dark:text-white", children: [
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: "truncate text-sm text-gray-500 dark:text-gray-400", children: employer.name })
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 text-gray-500 uppercase dark:text-gray-400", children: [
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 bg-gray-100 px-2 py-0.5 text-xs font-medium text-gray-700 dark:bg-gray-800 dark:text-gray-300",
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 bg-gray-100 px-2 py-0.5 text-xs font-medium text-gray-500 dark:bg-gray-800 dark:text-gray-400", children: [
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 text-gray-600 dark:text-gray-400", children: [
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 bg-red-50 p-2 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-300", children: [
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 border-gray-100 pt-3 dark:border-gray-800", children: [
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-sm font-medium text-blue-600 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300",
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 text-red-600 transition-colors hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20",
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: "rounded-md bg-blue-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-blue-700",
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 pb-4 sm:flex-row sm:items-center sm:justify-between", children: [
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("div", { className: "flex flex-col items-center justify-center bg-gradient-to-br from-blue-600 to-blue-800 p-8 text-white md:w-1/2 dark:from-blue-800 dark:to-blue-950", children: [
19571
- providerLogo ? /* @__PURE__ */ jsx(
19572
- "img",
19573
- {
19574
- src: providerLogo,
19575
- alt: providerName || "Provider",
19576
- className: "mb-6 max-h-[100px] max-w-[200px] object-contain"
19577
- }
19578
- ) : /* @__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" }) }) }),
19579
- providerName && /* @__PURE__ */ jsx("h1", { className: "mb-2 text-center text-2xl font-bold", children: providerName }),
19580
- /* @__PURE__ */ jsx("p", { className: "max-w-xs text-center text-blue-100", children: welcomeMessage })
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("div", { className: "flex items-center justify-between gap-4", children: [
19866
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-3", children: [
19867
- icon && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 text-gray-500 dark:text-gray-400", children: icon }),
19868
- /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
19869
- /* @__PURE__ */ jsx(
19870
- "h1",
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: `${titleSizeClasses[size]} truncate text-gray-900 dark:text-white`,
19873
- children: title
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
- subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 truncate text-sm text-gray-500 dark:text-gray-400", children: subtitle })
19877
- ] })
19878
- ] }),
19879
- actions && /* @__PURE__ */ jsx("div", { className: "flex flex-shrink-0 items-center gap-2", children: actions })
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 text-gray-700 dark:text-gray-300", children: label }),
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 bg-white px-3 text-left transition-colors dark:bg-gray-800",
23801
- "border-gray-300 dark:border-gray-600",
23802
- "hover:border-gray-400 dark:hover:border-gray-500",
23803
- "focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none",
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 text-gray-400",
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-gray-500 dark:text-gray-400", children: "Loading..." })
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 bg-blue-100 text-xs font-medium text-blue-600 dark:bg-blue-900 dark:text-blue-300", children: getInitials3(selectedProvider.name) }),
23848
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
23849
- /* @__PURE__ */ jsx("div", { className: "truncate font-medium text-gray-900 dark:text-white", children: selectedProvider.name }),
23850
- selectedProvider.location && /* @__PURE__ */ jsx("div", { className: "truncate text-xs text-gray-500 dark:text-gray-400", children: selectedProvider.location })
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: "flex-1 text-gray-500 dark:text-gray-400", children: placeholder }),
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 text-gray-400 transition-transform",
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 border-gray-200 bg-white shadow-lg dark:border-gray-700 dark:bg-gray-800", children: [
23878
- searchable && /* @__PURE__ */ jsx("div", { className: "border-b border-gray-200 p-2 dark:border-gray-700", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
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 text-gray-400",
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 border-gray-300 bg-white py-2 pr-4 pl-9 text-sm text-gray-900 placeholder-gray-500 focus:ring-1 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-900 dark:text-white",
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 text-gray-500 dark:text-gray-400", children: "No providers found" }) : filteredProviders.map((provider) => /* @__PURE__ */ jsxs(
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-gray-50 dark:hover:bg-gray-700",
23917
- selectedProvider?.id === provider.id && "bg-blue-50 dark:bg-blue-900/30"
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 bg-gray-100 text-sm font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300", children: getInitials3(provider.name) }),
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: "font-medium text-gray-900 dark:text-white", children: provider.name }),
23931
- provider.code && /* @__PURE__ */ jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
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: "rounded bg-gray-200 px-1.5 py-0.5 text-xs font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-400", children: "Inactive" })
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: "truncate text-sm text-gray-500 dark:text-gray-400", children: [provider.type, provider.location].filter(Boolean).join(" \u2022 ") })
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 text-blue-500",
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-gray-500 dark:text-gray-400 ${layout === "grid" ? "mb-1" : "mr-3"} `,
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 text-gray-900 dark:text-white", children: link.label }),
24847
- link.description && layout !== "grid" && /* @__PURE__ */ jsx("span", { className: "block text-xs text-gray-500 dark:text-gray-400", children: link.description })
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 bg-blue-100 px-2 py-0.5 text-xs font-medium text-blue-600 dark:bg-blue-900 dark:text-blue-400", children: link.badge }),
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 text-gray-400",
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-lg border bg-white shadow-sm",
24921
- onEdit && "cursor-pointer transition-shadow hover:shadow-md",
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__ */ jsx("div", { className: "border-b bg-gray-50 px-4 py-3", children: /* @__PURE__ */ jsx("h6", { className: "font-medium", children: service.serviceName }) }),
24935
- /* @__PURE__ */ jsxs("div", { className: "p-4", children: [
24936
- showProvider && service.providerName && /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between text-sm", children: [
24937
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: provider }),
24938
- /* @__PURE__ */ jsx("span", { children: service.providerName })
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", { className: "mb-2 flex items-center justify-between text-sm", children: [
24941
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: occurrence }),
24942
- /* @__PURE__ */ jsx("span", { children: getOccurrenceLabel(service.occurrence) })
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__ */ jsx("hr", { className: "my-3" }),
24945
- /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center justify-between text-sm", children: [
24946
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: nextOrder }),
24947
- /* @__PURE__ */ jsx("span", { title: service.nextOrder?.toString(), children: formatDate4(service.nextOrder) })
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
- !service.overrideConsent && /* @__PURE__ */ jsx("div", { className: "mt-2 text-right text-xs text-red-600", children: consentNote })
24950
- ] }),
24951
- /* @__PURE__ */ jsx("div", { className: "border-t bg-gray-50 px-4 py-3 text-right", children: /* @__PURE__ */ jsxs(
24952
- "button",
24953
- {
24954
- type: "button",
24955
- onClick: (e) => {
24956
- e.stopPropagation();
24957
- onDelete?.(service);
24958
- },
24959
- className: "rounded-lg border border-red-300 px-3 py-1.5 text-sm text-red-600 hover:bg-red-50",
24960
- children: [
24961
- /* @__PURE__ */ jsx("i", { className: "fas fa-trash mr-1" }),
24962
- deleteLabel
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-lg border-2 border-dashed border-gray-300 bg-gray-50 p-4 transition-colors",
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 bg-black/50", children: /* @__PURE__ */ jsxs(
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 bg-white shadow-xl",
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 border-b p-4 text-white", children: [
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-sm font-medium", children: provider }),
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 border-gray-300 p-2",
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-sm font-medium", children: service }),
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 border-gray-300 p-2",
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-sm font-medium", children: occurrence }),
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 border-gray-300 p-2",
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 border-gray-300"
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 border-gray-300 px-4 py-2 text-gray-700 hover:bg-gray-50",
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 text-white disabled:bg-gray-300",
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("div", { className: "space-y-4", children: [
25223
- (description || itemDescription) && /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-gray-50 p-3 dark:bg-gray-800", children: [
25224
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: description }),
25225
- itemDescription && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm font-medium text-gray-900 dark:text-white", children: itemDescription })
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 border-red-200 bg-red-50 p-3 dark:border-red-800 dark:bg-red-900/20", children: [
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 text-red-500",
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-sm text-red-600 dark:text-red-400", children: "This action cannot be undone. The affected party will be notified of this rejection." })
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 text-gray-700 dark:text-gray-300", children: "Reason for rejection" }),
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: `flex cursor-pointer items-center gap-3 rounded-lg border p-3 transition-colors ${selectedReasonId === reason.id ? "border-blue-500 bg-blue-50 dark:border-blue-400 dark:bg-blue-900/20" : "border-gray-200 hover:border-gray-300 dark:border-gray-700 dark:hover:border-gray-600"} `,
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: "h-4 w-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600"
25681
+ className: "text-primary focus:ring-primary border-border h-4 w-4"
25264
25682
  }
25265
25683
  ),
25266
- /* @__PURE__ */ jsx("span", { className: "text-sm text-gray-900 dark:text-white", children: reason.label }),
25267
- reason.requiresDetails && /* @__PURE__ */ jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "(requires details)" })
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 text-gray-700 dark:text-gray-300", children: [
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 text-red-500", children: "*" })
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 border-gray-300 px-3 py-2 shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-800 dark:text-white",
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 text-red-500", children: "Please provide additional details for this rejection reason." })
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
- function ResultsEntryForm({
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__ */ jsxs("div", { className: "sm:w-1/2", children: [
25662
- /* @__PURE__ */ jsx("span", { className: "mr-2 font-semibold", children: testResults }),
25663
- /* @__PURE__ */ jsxs("div", { className: "mt-2 flex gap-4 sm:mt-0 sm:inline-flex", children: [
25664
- /* @__PURE__ */ jsx(
25665
- Radio,
25666
- {
25667
- name: "result",
25668
- value: "passed",
25669
- label: passed,
25670
- checked: result === "passed",
25671
- onChange: () => {
25672
- setResult("passed");
25673
- setShowError(false);
25674
- }
25675
- }
25676
- ),
25677
- /* @__PURE__ */ jsx(
25678
- Radio,
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 ResultsEntryCard({
26306
+ });
26307
+ function ResultsEntryModal({
25869
26308
  serviceName,
25870
26309
  employeeFirstName,
25871
26310
  employeeLastName,
25872
- isOpen = true,
25873
- onClose,
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
- if (!isOpen) return null;
25881
- const handleSubmit = (data) => {
25882
- onSubmit(data);
25883
- onClose();
25884
- };
25885
- return /* @__PURE__ */ jsxs("div", { className: "bg-background w-full max-w-2xl rounded-lg border shadow-lg", children: [
25886
- /* @__PURE__ */ jsxs("div", { className: "bg-primary text-primary-foreground rounded-t-lg p-4", children: [
25887
- /* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold", children: serviceName }),
25888
- employeeName && /* @__PURE__ */ jsx("p", { className: "text-sm opacity-90", children: employeeName })
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__ */ jsx("div", { className: "p-6", children: /* @__PURE__ */ jsx(
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
- onClick: () => {
25907
- const form = document.querySelector("[data-results-form]");
25908
- if (form) {
25909
- form.dispatchEvent(new Event("submit", { bubbles: true }));
25910
- }
25911
- },
25912
- children: submit
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-2 ring-blue-500 dark:ring-blue-400" : ""} ${!currentlyOffered ? "opacity-60" : ""} ${className} `.trim(),
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 text-gray-900 dark:text-white", children: name }),
27121
- category && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: category })
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 text-gray-600 dark:text-gray-400", children: description }),
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 bg-gray-100 px-2 py-0.5 text-xs font-medium text-gray-600 dark:bg-gray-800 dark:text-gray-400",
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-xs text-gray-500 dark:text-gray-400", children: [
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 text-gray-500 uppercase dark:text-gray-400", children: "Base Price" }),
27143
- /* @__PURE__ */ jsx("span", { className: "text-lg font-bold text-gray-900 dark:text-white", children: formatCurrency2(price, currency) })
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-gray-500 dark:text-gray-400", children: "Inventory" }),
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-red-600 dark:text-red-400" : "text-gray-900 dark:text-white"}`,
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 text-gray-500 dark:text-gray-400", children: [
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 justify-end gap-2 border-t border-gray-100 pt-2 dark:border-gray-800", children: [
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: "p-1.5 text-gray-400 transition-colors hover:text-red-500 dark:hover:text-red-400",
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: "p-1.5 text-gray-400 transition-colors hover:text-blue-500 dark:hover:text-blue-400",
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 text-blue-600 transition-colors hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-900/20",
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: `h-full cursor-pointer border-2 border-dashed border-gray-300 bg-gray-50 transition-all duration-200 hover:border-blue-400 hover:bg-gray-100 dark:border-gray-600 dark:bg-gray-800/50 dark:hover:border-blue-500 dark:hover:bg-gray-800 ${className} `.trim(),
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 bg-gray-200 dark:bg-gray-700", children: /* @__PURE__ */ jsx(
27260
- "svg",
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 border-gray-200 p-4 dark:border-gray-700", children: [
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 bg-gray-200 dark:bg-gray-700" }),
27463
- /* @__PURE__ */ jsx("div", { className: "h-5 w-16 rounded bg-gray-200 dark:bg-gray-700" })
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 bg-gray-200 dark:bg-gray-700" }),
27467
- /* @__PURE__ */ jsx("div", { className: "h-4 w-3/4 rounded bg-gray-200 dark:bg-gray-700" })
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 bg-gray-200 dark:bg-gray-700" }),
27471
- /* @__PURE__ */ jsx("div", { className: "h-6 w-20 rounded-full bg-gray-200 dark:bg-gray-700" })
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 text-gray-400",
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-gray-500 dark:text-gray-400", children: emptyMessage })
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("flex flex-col", !fullWidth && "lg:max-w-md", className),
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 text-gray-900 dark:text-gray-100", children: heading }),
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 text-gray-400" }) }),
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 bg-red-50 p-4 text-red-700 dark:bg-red-900/20 dark:text-red-400", children: /* @__PURE__ */ jsx("strong", { children: error }) }),
27669
- loading ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-gray-500", children: [
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: "rounded-lg bg-yellow-50 p-4 text-yellow-700 dark:bg-yellow-900/20 dark:text-yellow-400", children: /* @__PURE__ */ jsx("strong", { children: emptyMessage }) }) }) })
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: "rounded-lg bg-yellow-50 p-4 text-yellow-700 dark:bg-yellow-900/20 dark:text-yellow-400", children: /* @__PURE__ */ jsx("strong", { children: emptyMessage }) }) }) })
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-gray-100 dark:hover:bg-gray-800",
28166
+ "text-muted-foreground text-left text-sm font-medium",
28167
+ "hover:bg-muted",
27728
28168
  "transition-colors",
27729
- depth > 0 && "ml-4 text-gray-600 dark:text-gray-400"
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-brand-500 h-2 w-2 rounded-full",
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-gray-100 dark:hover:bg-gray-800",
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__ */ jsx(
27800
- "input",
27801
- {
27802
- type: "checkbox",
27803
- checked: selected,
27804
- onChange: onToggle,
27805
- disabled: service.disabled,
27806
- className: "text-brand-600 focus:ring-brand-500 h-4 w-4 rounded border-gray-300"
27807
- }
27808
- ) : /* @__PURE__ */ jsx(
27809
- "input",
27810
- {
27811
- type: "radio",
27812
- checked: selected,
27813
- onChange: onToggle,
27814
- disabled: service.disabled,
27815
- className: "text-brand-600 focus:ring-brand-500 h-4 w-4 border-gray-300"
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 text-gray-900 dark:text-gray-100", children: service.name }),
27821
- service.code && /* @__PURE__ */ jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [
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: "truncate text-xs text-gray-500 dark:text-gray-400", children: service.description })
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 text-gray-700 dark:text-gray-300", children: [
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("div", { className: "space-y-4", children: [
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 text-gray-700 dark:text-gray-300",
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 border-gray-300 px-3 py-2 shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-800 dark:text-white",
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 text-gray-700 dark:text-gray-300",
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 text-gray-500", children: "$" }),
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 border-gray-300 py-2 pr-4 pl-7 shadow-sm focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-gray-600 dark:bg-gray-800 dark:text-white",
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 text-gray-900 dark:text-white", children: "Currently Offered" }),
28579
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Service is available for orders" })
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 text-gray-900 dark:text-white", children: "Limited Inventory" }),
28595
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Track inventory for this service" })
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 border-gray-200 pl-4 dark:border-gray-700", children: /* @__PURE__ */ jsx(
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 text-gray-900 dark:text-white", children: "Auto-Accept Referrals" }),
28625
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Automatically accept incoming referrals" })
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 CheckIcon4({ className }) {
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
- return /* @__PURE__ */ jsx(
30783
- "nav",
31258
+ const circleButton = (step, index, status, clickable) => /* @__PURE__ */ jsx(
31259
+ "button",
30784
31260
  {
30785
- className: ` ${orientation === "horizontal" ? "flex items-center" : "flex flex-col"} ${sizes.gap} ${className} `.trim(),
30786
- "aria-label": "Progress",
30787
- children: steps.map((step, index) => {
30788
- const status = getStepStatus(index);
30789
- const isLast = index === steps.length - 1;
30790
- const clickable = isClickable(index);
30791
- return /* @__PURE__ */ jsxs(React46.Fragment, { children: [
30792
- /* @__PURE__ */ jsxs(
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 items-center ${orientation === "vertical" ? "flex-row" : "flex-col"} ${sizes.gap} `.trim(),
30796
- children: [
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: ` ${orientation === "horizontal" ? "min-w-8 flex-1" : "ml-4 min-h-4"} flex items-center justify-center`.trim(),
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: ` ${orientation === "horizontal" ? "w-full" : "h-full min-h-4"} ${sizes.line} ${index < currentStep ? "bg-blue-600 dark:bg-blue-500" : "bg-gray-200 dark:bg-gray-700"} `.trim()
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 getStepState = (index) => {
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("flex items-start overflow-x-auto py-4", className),
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
- "div",
31011
- {
31012
- className: cn(
31013
- "flex flex-1 flex-col items-center",
31014
- !isLast && "mr-2"
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
- children: [
31017
- showTimestamps && /* @__PURE__ */ jsx("div", { className: "mb-1 h-5 text-center text-xs text-gray-500", children: step.completedAt ? formatTimestamp(step.completedAt) : "\xA0" }),
31018
- /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center", children: [
31019
- /* @__PURE__ */ jsx(
31020
- "div",
31021
- {
31022
- className: cn(
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 h-6 w-6 shrink-0 items-center justify-center rounded-full border-2",
31034
- state === "completed" && "border-brand-500 bg-brand-500 text-white",
31035
- state === "current" && "border-brand-500 bg-white dark:bg-gray-900",
31036
- state === "pending" && "border-gray-300 bg-white dark:border-gray-600 dark:bg-gray-900"
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(CheckIcon5, { className: "h-3 w-3" }),
31040
- state === "current" && /* @__PURE__ */ jsx("div", { className: "bg-brand-500 h-2 w-2 rounded-full" })
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
- /* @__PURE__ */ jsx(
31056
- "div",
31057
- {
31058
- className: cn(
31059
- "mt-2 text-center text-xs font-medium capitalize",
31060
- state === "completed" && "text-brand-600 dark:text-brand-400",
31061
- state === "current" && "text-gray-900 dark:text-gray-100",
31062
- state === "pending" && "text-gray-400 dark:text-gray-500"
31063
- ),
31064
- children: step.label
31065
- }
31066
- )
31067
- ]
31068
- },
31069
- step.key
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-100 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400";
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-100 text-green-600 dark:bg-green-900/30 dark:text-green-400";
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-100 text-purple-600 dark:bg-purple-900/30 dark:text-purple-400";
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-100 text-orange-600 dark:bg-orange-900/30 dark:text-orange-400";
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-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400";
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-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400";
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-gray-500", className), children: "No activity yet." });
31736
+ return /* @__PURE__ */ jsx("div", { className: cn("py-8 text-center text-neutral-500", className), children: "No activity yet." });
31135
31737
  }
31136
- return /* @__PURE__ */ jsx("div", { className: cn("space-y-4", className), children: events.map((event, index) => /* @__PURE__ */ jsxs("div", { className: "relative flex gap-4", children: [
31137
- index < events.length - 1 && /* @__PURE__ */ jsx("div", { className: "absolute top-10 left-5 h-full w-px bg-gray-200 dark:bg-gray-700" }),
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: cn(
31142
- "relative z-10 flex h-10 w-10 shrink-0 items-center justify-center rounded-full",
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-1 pt-1", children: [
31149
- /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
31150
- /* @__PURE__ */ jsxs("div", { children: [
31151
- /* @__PURE__ */ jsx("h4", { className: "font-medium text-gray-900 dark:text-gray-100", children: event.title }),
31152
- event.author && /* @__PURE__ */ jsxs("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: [
31153
- "by ",
31154
- event.author
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("time", { className: "shrink-0 text-xs text-gray-400 dark:text-gray-500", children: formatTime4(event.timestamp) })
31158
- ] }),
31159
- event.content && /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300", children: event.content })
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-gray-800", children: [
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-gray-900 dark:text-gray-100",
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-gray-500 dark:text-gray-400", children: [
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-gray-600 dark:text-gray-300", children: message }),
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-brand-600 hover:bg-brand-700 text-white",
31205
- "dark:bg-brand-500 dark:hover:bg-brand-600",
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 CheckIcon5({ className }) {
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 CheckIcon6 = () => /* @__PURE__ */ jsx(
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 XIcon4 = () => /* @__PURE__ */ jsx(
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(CheckIcon6, {}),
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(XIcon4, {})
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 [offcanvasOpen, setOffcanvasOpen] = React46.useState(false);
32301
+ const [modalOpen, setModalOpen] = React46.useState(false);
31672
32302
  const handleReportClick = (report) => {
31673
32303
  onReportSelect?.(report);
31674
- setOffcanvasOpen(true);
32304
+ setModalOpen(true);
31675
32305
  };
31676
32306
  const handleClose = () => {
31677
- setOffcanvasOpen(false);
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__ */ jsx("div", { className: "mb-4 rounded-lg border border-yellow-300 bg-yellow-50 p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
31686
- /* @__PURE__ */ jsx("i", { className: "fas fa-exclamation-triangle mt-0.5 text-yellow-600" }),
31687
- /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
31688
- /* @__PURE__ */ jsx("span", { className: "font-medium text-yellow-800", children: error }),
31689
- /* @__PURE__ */ jsxs("p", { className: "mt-1 text-sm text-yellow-700", children: [
31690
- "If this error persists, you can try reconnecting",
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
- "button",
32323
+ Button,
31697
32324
  {
31698
- type: "button",
32325
+ variant: "secondary",
32326
+ size: "sm",
31699
32327
  onClick: onReconnect,
31700
- className: "mt-2 rounded-lg border border-gray-300 bg-white px-4 py-2 text-gray-700 hover:bg-gray-50",
32328
+ className: "mt-2",
31701
32329
  children: [
31702
- /* @__PURE__ */ jsx("i", { className: "fas fa-link mr-2" }),
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
- "button",
31711
- {
31712
- type: "button",
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("div", { className: "animate-pulse", children: /* @__PURE__ */ jsx("div", { className: "h-12 rounded-lg bg-gray-200" }) }, i)) })
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
- "button",
32347
+ Card,
31729
32348
  {
31730
- type: "button",
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
- className: "border-primary text-primary hover:bg-primary w-full truncate rounded-lg border bg-white p-3 text-left hover:text-white",
31733
- title: report.description ? `${report.name}: ${report.description}` : report.name,
31734
- children: report.name
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
- offcanvasOpen && /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50 flex", children: [
31740
- /* @__PURE__ */ jsx(
31741
- "div",
31742
- {
31743
- role: "button",
31744
- tabIndex: 0,
31745
- "aria-label": "Close panel",
31746
- className: "fixed inset-0 bg-black/50",
31747
- onClick: handleClose,
31748
- onKeyDown: (e) => e.key === "Enter" && handleClose()
31749
- }
31750
- ),
31751
- /* @__PURE__ */ jsxs("div", { className: "fixed right-0 bottom-0 left-0 flex h-3/4 flex-col rounded-t-xl bg-white shadow-xl", children: [
31752
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b p-4", children: [
31753
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
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
- "input",
31776
- {
31777
- type: "date",
31778
- value: formatDate4(dateRange.start),
31779
- onChange: (e) => onDateRangeChange(e.target.value, dateRange.end),
31780
- className: "rounded-lg border border-gray-300 px-2 py-1 text-sm"
31781
- }
31782
- ),
31783
- /* @__PURE__ */ jsxs("label", { className: "text-muted-foreground text-sm", children: [
31784
- dateTo,
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
- "input",
32424
+ Button,
31789
32425
  {
31790
- type: "date",
31791
- value: formatDate4(dateRange.end),
31792
- onChange: (e) => onDateRangeChange(dateRange.start, e.target.value),
31793
- className: "rounded-lg border border-gray-300 px-2 py-1 text-sm"
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
- "button",
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
- type: "button",
31801
- onClick: onRefreshReport,
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
- /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto p-4", children: loadingReport ? /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
31809
- /* @__PURE__ */ jsx("div", { className: "border-primary h-12 w-12 animate-spin rounded-full border-4 border-t-transparent" }),
31810
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground mt-4", children: loadingData })
31811
- ] }) : reportResult?.error ? /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-red-200 bg-red-50 p-4 text-red-600", children: [
31812
- /* @__PURE__ */ jsx("i", { className: "fas fa-exclamation-circle mr-2" }),
31813
- reportResult.error
31814
- ] }) : reportResult?.data ? typeof reportResult.data === "string" ? /* @__PURE__ */ jsx(
31815
- "div",
31816
- {
31817
- className: "prose max-w-none",
31818
- dangerouslySetInnerHTML: { __html: reportResult.data }
31819
- }
31820
- ) : /* @__PURE__ */ jsx("pre", { className: "overflow-auto rounded-lg bg-gray-100 p-4 text-sm", children: JSON.stringify(reportResult.data, null, 2) }) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground py-8 text-center", children: "No data available" }) })
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
- let end = now;
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
- "select",
32519
+ Select,
31877
32520
  {
31878
32521
  value: preset,
31879
- onChange: (e) => handlePresetChange(e.target.value),
31880
- className: "rounded-lg border border-gray-300 px-3 py-2",
31881
- children: presets.map((p) => /* @__PURE__ */ jsx("option", { value: p.value, children: p.label }, p.value))
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
- "input",
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: "rounded-lg border border-gray-300 px-3 py-2"
32535
+ className: "w-auto"
31892
32536
  }
31893
32537
  ),
31894
32538
  /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "to" }),
31895
32539
  /* @__PURE__ */ jsx(
31896
- "input",
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: "rounded-lg border border-gray-300 px-3 py-2"
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